# Jubo API
## Read vitalsign list
列出機構內住民指定區間內的所有生命徵象紀錄。
### Request
GET /api/vitalLink/vitalsignList
#### Query parameter(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| patientId | string | 查詢指定 patient ID |
| \*startTime | string | 查詢起始時間(YYYY-MM-DD) |
| \*endTime | string | 查詢結束時間(YYYY-MM-DD),查詢區間最多 30 天 |
#### Header(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| \*apikey | string | APIKEY |
### Response
`[VitalSign]` (參考 [VitalSign Schema](#VitalSign-Schema))
### Response Example
```json=
[
{
"_id": "5f8644d4eabe0100285f18e1",
"TP": 36.5,
"PR": 70,
"RR": 16,
"SYS": 130,
"DIA": 80,
"SPO2": 100,
"PAIN": 2,
"mood": "calm",
"patient": "5f6da4425b5c71002766e9f0",
"organization": "5f6da126926446033e5f50a0",
"user": [
"5f6da2f7926446033e5f50a2"
],
"createdDate": "2020-10-14T00:22:42.823Z"
}
]
```
------------------------------------------------
## Read latest vitalsign
列出機構內所有住民最新一筆生命徵象紀錄。
### Request
GET /api/vitalLink/vitalsign
#### Query parameter(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| patientId | string | 查詢指定 patient ID |
#### Header(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| \*apikey | string | APIKEY |
### Response
`[VitalSign]` (參考 [VitalSign Schema](#VitalSign-Schema))
(Webhook 範例可參考 [VitalSign Webhook Example](#VitalSign-Webhook-Example))
### Response Example
```json=
[
{
"_id": "5f8644d4eabe0100285f18e1",
"TP": 36.5,
"PR": 70,
"RR": 16,
"SYS": 130,
"DIA": 80,
"SPO2": 100,
"PAIN": 2,
"mood": "calm",
"patient": "5f6da4425b5c71002766e9f0",
"organization": "5f6da126926446033e5f50a0",
"user": [
"5f6da2f7926446033e5f50a2"
],
"createdDate": "2020-10-14T00:22:42.823Z"
}
]
```
------------------------------------------------
## Create vitalsign list
新增生命徵象紀錄。
### Request
POST /api/vitalLink/vitalsign
#### Header(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| \*apikey | string | APIKEY |
#### Body(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| \*vitalsigns | array | 生命徵象紀錄(參考 [Vitalsign Schema](#Vitalsign-Schema)) |
| \*userId | string | 操作者 id |
### Response
`[Vitalsign]` (參考最下方 [Vitalsign Schema](#Vitalsign-Schema))
### Request Example
```json=
{
"vitalsigns": [{
"patient" : "5f1fd8df0dac9d003b2dc327",
"DIA" : 78,
"mood" : "happy",
"O2THERAPY" : -1,
"PAIN" : 0,
"PR" : 90,
"RR" : 16,
"SPO2" : 99,
"SYS" : 137,
"TP" : 33.2
},
{
"patient" : "5f34cb2d1a5ca30027ab2234",
"DIA" : -1,
"mood" : "happy",
"O2THERAPY" : -1,
"PAIN" : 0,
"PR" : -1,
"RR" : -1,
"SPO2" : -1,
"SYS" : -1,
"TP" : 36.9
}],
"userId": "5f1e6a8ec16426064e7ea1f2"
}
```
### Response Example
```json=
[
{
"_id": "5fd036a6a4f2c0240d76aa86",
"patient": "5f1fd8df0dac9d003b2dc327",
"DIA": 78,
"mood": "happy",
"O2THERAPY": -1,
"PAIN": 0,
"PR": 90,
"RR": 16,
"SPO2": 99,
"SYS": 137,
"TP": 33.2,
"organization": "5f07ec8c412ac20b5b73360f",
"user": "5f1e6a8ec16426064e7ea1f2",
"createdDate": "2020-12-09T02:29:58.494Z",
"__v": 0
},
{
"_id": "5fd036a6a4f2c0240d76aa87",
"patient": "5f34cb2d1a5ca30027ab2234",
"DIA": -1,
"mood": "happy",
"O2THERAPY": -1,
"PAIN": 0,
"PR": -1,
"RR": -1,
"SPO2": -1,
"SYS": -1,
"TP": 36.9,
"organization": "5f07ec8c412ac20b5b73360f",
"user": "5f1e6a8ec16426064e7ea1f2",
"createdDate": "2020-12-09T02:29:58.496Z",
"__v": 0
}
]
```
------------------------------------------------
## Update vitalsign list
更新生命徵象紀錄。
### Request
PUT /api/vitalLink/vitalsign
#### Header(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| \*apikey | string | APIKEY |
#### Body(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| \*vitalsigns | array | 生命徵象紀錄(參考 [Vitalsign Schema](#Vitalsign-Schema)) |
| \*userId | string | 操作者 id |
### Response
`[Vitalsign]` (參考最下方 [Vitalsign Schema](#Vitalsign-Schema))
### Request Example
```json=
{
"vitalsigns": [{
"_id": "5fd036a6a4f2c0240d76aa87",
"PR" : 93
},
{
"_id" : "5fd036a6a4f2c0240d76aa86",
"TP" : 35.8,
"SPO2" : 98
}],
"userId": "5f1e6a8ec16426064e7ea1f2"
}
```
### Response Example
```json=
[
{
"_id" : "5fd036a6a4f2c0240d76aa87",
"PR" : 93
},
{
"_id" : "5fd036a6a4f2c0240d76aa86",
"TP" : 35.8,
"SPO2" : 98
}
]
```
------------------------------------------------
## Delete vitalsign list
刪除生命徵象紀錄。
### Request
DELETE /api/vitalLink/vitalsign
#### Header(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| \*apikey | string | APIKEY |
#### Body(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| \*vitalsigns | array | 生命徵象紀錄(參考 [Vitalsign Schema](#Vitalsign-Schema)) |
| \*userId | string | 操作者 id |
### Response
`[Vitalsign]` (參考最下方 [Vitalsign Schema](#Vitalsign-Schema))
### Request Example
```json=
{
"vitalsigns": [{
"_id": "5fd036a6a4f2c0240d76aa87"
},
{
"_id" : "5fd036a6a4f2c0240d76aa86"
}],
"userId": "5f1e6a8ec16426064e7ea1f2"
}
```
### Response Example
```json=
[
{
"_id": "5fd036a6a4f2c0240d76aa87"
},
{
"_id": "5fd036a6a4f2c0240d76aa86"
}
]
```
------------------------------------------------
## Read treatmentRecord list
列出住民指定區間內的就診紀錄。
### Request
GET /api/vitalLink/treatmentRecord
#### Query parameter(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| patientId | string | 查詢指定 patient ID(預設全機構) |
| \*startTime | string | 查詢起始時間(YYYY-MM-DD) |
| \*endTime | string | 查詢結束時間(YYYY-MM-DD),查詢區間最多 90 天 |
#### Header(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| \*apikey | string | APIKEY |
### Response
`[TreatmentRecord]` (參考 [TreatmentRecord Schema](#TreatmentRecord-Schema))
### Response Example
```json=
[
{
"_id": "610756b0492b9e0027d52674",
"patientSelected": [
"5d886cb3484772002e4fefce"
],
"deleted": false,
"task": "1-109A 陳大明 金門縣-衛生福利部金門醫院 腎臟科",
"startTime": "2021-09-04T00:30:00.000Z",
"endTime": "2021-09-04T04:00:00.000Z",
"category": "treatmentRecord",
"subCategory": "取藥",
"treatmentRecord": {
"_id": "610756af492b9e0027d52672",
"pickUpMethod": [
"facility"
],
"Protective": [
"Masks"
],
"status": "open",
"patient": "5d886cb3484772002e4fefce",
"visitDate": "2021-09-04T02:20:00.000Z",
"visitTime": "morning",
"hospital": "金門縣-衛生福利部金門醫院",
"department": "腎臟科",
"situation": "rgewrga",
"accompany": "兒子",
"type": "取藥",
"organization": "5c10bdf47b43650f407de7d6",
"user": "5c134df8d900d7002153d3b3",
"createdDate": "2021-08-02T02:21:35.992Z",
"updatedDate": "2021-08-02T02:21:35.992Z",
"treatmentRecordTrackings": [
{
"_id": "61711797a2a71500261e9252",
"hospitalized": [],
"recordDate": "2021-10-21T07:32:18.132Z",
"method": "Visit",
"trackingType": "contactFamily",
"contactObject": "家屬親人",
"note": "測試內容",
"formMode": "tracking",
"patient": "5d886cb3484772002e4fefce",
"treatmentRecord": "610756af492b9e0027d52672",
"organization": "5c10bdf47b43650f407de7d6",
"user": "5c134df8d900d7002153d3b3",
"createdDate": "2021-10-21T07:32:39.249Z",
"updatedDate": "2021-10-21T07:32:39.249Z",
}
]
},
"user": "5c134df8d900d7002153d3b3",
"organization": "5c10bdf47b43650f407de7d6",
"createdDate": "2021-08-02T02:21:36.001Z",
"updatedDate": "2021-08-02T02:21:36.001Z",
}
]
```
------------------------------------------------
## Read transfermanage list
列出住民指定區間內的異動紀錄。
### Request
GET /api/vitalLink/transfermanage
#### Query parameter(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| patientId | string | 查詢指定 patient ID(預設全機構) |
| \*startTime | string | 查詢起始時間(YYYY-MM-DD) |
| \*endTime | string | 查詢結束時間(YYYY-MM-DD),查詢區間最多 90 天 |
#### Header(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| \*apikey | string | APIKEY |
### Response
`[Transfermanage]` (參考 [Transfermanage Schema](#Transfermanage-Schema))
### Response Example
```json=
[
{
"_id": "613ffd0681b0e400274e9048",
"status": "unplannedHosp",
"patient": "5ed4afcdbb8d2417c5c1db94",
"user": "5c134df8d900d7002153d3b3",
"organization": "5c10bdf47b43650f407de7d6",
"room": "101",
"bed": "A",
"branch": "1",
"reason": "fracture",
"bedHold": "yes",
"cause": "improperCare",
"type": "uncontrollable",
"afterwards": "observation",
"createdDate": "2021-09-14T01:36:51.721Z",
}
]
```
------------------------------------------------
## Read user
取得指定使用者資料。
### Request
GET /api/vitalLink/users/{userId}
#### Query parameter(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| \*userId | string | 使用者 id |
#### Header(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| \*apikey | string | APIKEY |
### Response
`User` (參考最下方 [User Schema](#User-Schema))
### Response Example
```json=
{
"_id": "5f6da2f7926446033e5f50a2",
"firstName": "理員",
"lastName": "管",
"roles": [
"organization-manager",
"system-admin"
],
"staffStatus": "employed",
"displayName": "管理員",
"organization": "5f6da126926446033e5f50a0"
}
```
------------------------------------------------
## Read user list
列出機構內所有使用者資料。
### Request
GET /api/vitalLink/users
#### Header(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| \*apikey | string | APIKEY |
### Response
`[User]` (參考最下方 [User Schema](#User-Schema))
### Response Example
```json=
[
{
"_id": "5f6da2f7926446033e5f50a2",
"firstName": "理員",
"lastName": "管",
"roles": [
"organization-manager",
"system-admin"
],
"staffStatus": "employed",
"displayName": "管理員",
"organization": "5f6da126926446033e5f50a0"
},
{
"_id": "5f6f08d0b344970027cd54f9",
"firstName": "Test",
"lastName": "測試",
"roles": [
"care-giver"
],
"staffStatus": "employed",
"displayName": "測試Test",
"organization": "5f6da126926446033e5f50a0"
}
]
```
------------------------------------------------
## Create user
新增使用者。
### Request
POST /api/vitalLink/users
#### Header(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| \*apikey | string | APIKEY |
#### Body(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| \*employeeNumber | string | 人員編號 |
| \*lastName | string | 人員姓氏 |
| \*firstName | string | 人員名字 |
| \*username | string | 人員帳號 |
| \*password | string | 人員密碼 |
| \*staffStatus | string | 在職狀態(employed/resigned) |
| 其他 | | (參考 [User Schema](#User-Schema)) |
| \*userId | string | 操作者 id |
### Response
`[User]` (參考最下方 [User Schema](#User-Schema))
------------------------------------------------
## Update user
更新使用者資料。
### Request
PUT /api/vitalLink/users/{userId}
#### Query parameter(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| \*userId | string | 人員 id |
#### Header(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| \*apikey | string | APIKEY |
#### Body(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| 其他 | | (參考 [User Schema](#User-Schema)) |
| \*userId | string | 操作者 id |
### Response
`[User]` (參考最下方 [User Schema](#User-Schema))
------------------------------------------------
## Read patient
取得指定住民資料。
### Request
GET /api/vitalLink/patient/{patientId}
#### Query parameter(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| \*patientId | string | 住民 id |
#### Header(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| \*apikey | string | APIKEY |
### Response
`Patient` (參考最下方 [Patient Schema](#Patient-Schema))
------------------------------------------------
## Read patient list
列出機構內所有住民資料。
### Request
GET /api/vitalLink/patient
#### Header(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| \*apikey | string | APIKEY |
### Response
`[Patient]` (參考最下方 [Patient Schema](#Patient-Schema))
### Response Example
```json=
[
{
"_id": "5f6da4425b5c71002766e9f0",
"sex": "male",
"lastName": "王",
"firstName": "小明",
"branch": "1",
"room": "101",
"bed": "A",
"idNumber": "F128751604",
"status": "present",
"checkInDate": "2020-09-25T08:02:16.312Z",
"createdDate": "2020-09-25T08:03:14.457Z",
"organization": "5f6da126926446033e5f50a0"
},
{
"_id": "5f729e570e70da0028a4d855",
"sex": "male",
"lastName": "測",
"firstName": "試個案",
"branch": "1",
"room": "101",
"bed": "AE",
"idNumber": "F128751640",
"status": "present",
"checkInDate": "2020-09-29T02:39:19.587Z",
"createdDate": "2020-09-29T02:39:19.587Z",
"organization": "5f6da126926446033e5f50a0"
}
]
```
------------------------------------------------
## Create patient
新建住民資料。
### Request
POST /api/vitalLink/patient
#### Header(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| \*apikey | string | APIKEY |
#### Body(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| \*lastName | string | 姓氏 |
| \*firstName | string | 名字 |
| \*branch | string | 院區 |
| \*room | string | 房號 |
| \*bed | string | 床號 |
| \*idNumber | string | 身分證字號 |
| \*sex | string | 性別 |
| \*status | string | 住民狀態("present") |
| 其他 | | (參考 [Patient Schema](#Patient-Schema)) |
| \*userId | string | 操作者 id |
### Response
`Patient` (參考最下方 [Patient Schema](#Patient-Schema))
### Response Example
```json=
{
"_id": "5f6da4425b5c71002766e9f0",
"sex": "male",
"lastName": "王",
"firstName": "小明",
"branch": "1",
"room": "101",
"bed": "A",
"idNumber": "F128751604",
"status": "present",
"checkInDate": "2020-09-25T08:02:16.312Z",
"createdDate": "2020-09-25T08:03:14.457Z",
"organization": "5f6da126926446033e5f50a0"
}
```
------------------------------------------------
## Update patient
更新指定住民資料。
### Request
PUT /api/vitalLink/patient/{patientId}
#### Query parameter(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| \*patientId | string | 住民 id |
#### Header(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| \*apikey | string | APIKEY |
#### Body(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| 其他 | | (參考 [Patient Schema](#Patient-Schema)) |
| \*userId | string | 操作者 id |
### Response
`Patient` (參考最下方 [Patient Schema](#Patient-Schema))
------------------------------------------------
## Read organization branch
取得機構的分區列表。
### Request
GET /api/vitalLink/organization/branch
#### Header(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| \*apikey | string | APIKEY |
### Response Example
```json=
[
"0001",
"0002",
"0003",
"0004",
"0005"
]
```
------------------------------------------------
## Update organization branch
更新機構的分區列表。
### Request
PUT /api/vitalLink/organization/branch
#### Header(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| \*apikey | string | APIKEY |
#### Body(\*必填欄位)
| 欄位 | 格式 | 說明 |
| - | - | - |
| \*branch | [string] | 新的分區列表 |
### Request Example
```json=
{
"branch": ["0001", "0002", "0003", "0004", "0005", "0006"]
}
```
------------------------------------------------
## VitalSign Schema
```jsonld
{
organization: String, // 機構的 id
patient: String, // 住民的 id
user: String, // 操作者的 id
TP: Number, // 體溫
PR: Number, // 脈搏
RR: Number, // 呼吸
SYS: Number, // 收縮壓
DIA: Number, // 舒張壓
SPO2: Number, // 血氧
PAIN: Number, // 疼痛
mood: String, // 心情
PAINRECORD: String,
O2THERAPY: Number,
uuid: String,
reviewer: Object,
vitalSignTrack: Object,
deviceMac: String,
deviceTime: Date,
trackStatus: String,
createdDate: Date,
status: {
sys: Number,
dia: Number,
pain: Number,
pr: Number,
rr: Number,
spo2: Number,
therapy: Number,
tp: Number
}
}
```
## VitalSign Webhook Example
```jsonld
{
type: 'vitalsign',
data: [{
_id: 5f6b0c2c7158ef5552602055,
createdDate: 2020-09-23T08:49:43.394Z,
TP: 39.5,
DIA: 80,
PAIN: 5,
PR: 84,
RR: 18,
SPO2: 99,
SYS: 155,
patient: 5ea0fce6e8fd14483aa55b3f,
user: 5df705e3bf147d0217201a14,
organization: 5df7030ebf147d0217201a13
}]
}
```
## Treatment Record Schema
```jsonld
{
organization: String, // 機構的 id
patientSelected: [String], // 住民們的 id
user: String, // 操作者的 id
task: String,
startTime: Date,
endTime: Date,
category: String,
subCategory: String, // 就診類型 (使用者自定義)
customCategory: String,
note: String,
freq: { // 重複頻率
type: {
interval: Number,
unit: String,
hours: [Number],
weekdays: [String],
days: [Number],
months: [Number],
endType: String,
tail: Date,
date: Date,
times: Number,
},
},
deleted: Boolean,
treatmentRecord: {
organization: String, // 機構的 id
patient: String, // 住民的 id
user: String, // 操作者的 id
visitDate: Date, // 就診日期
visitTime: String, // 就診時段 Enum:['morning'(上午), 'afternoon'(下午), 'night'(夜間)]
hospital: String, // 就診院所
department: String, // 就診科別
doctor: String, // 就診醫師
consultationNumber: String, // 就診診號
situation: String, // 住民現況
reason: String, // 就診原因
pickUpMethod: [String], // 接送方式 Enum:['facility'(機構接送), 'family'(家屬接送)]
Protective: [String], // 防護措施 Enum:['Masks'(口罩), 'gloves'(手套), 'gowns'(隔離衣), 使用者自定義]
accompany: String, // 陪診者
note: String, // 備註
status: String, // 是否結案 Enum:['yes', 'no']
closeDate: Date, // 結案日期
treatmentRecordTrackings: [{
organization: String, // 機構的 id
patient: String, // 住民的 id
user: String, // 操作者的 id
recordDate: Date, // 紀錄日期
formMode: String, // 追蹤 or 結案
note: String,
// 追蹤(tracking)才會有的欄位
trackingType: String, // 追蹤類型
method: String, // 追蹤方式 Enum:['Visit'(探訪), 'Televise'(電話訪問), 'Message'(訊息), 'Email'(email), 使用者自定義]
contactObject: String, // 聯繫對象
// 結案(result)才會有的欄位
hospitalized: [String], // 後續追蹤方式 Enum:['nextVisit'(回診), 'hospTransfer'(一般住院), 'unplannedHosp'(非計畫住院), 使用者自定義]
reason_hospTransfer: String, // 一般住院原因 Enum:['outpatient'(門診治療), 'inpatient'(住院治療), 'examination'(醫療檢查), 使用者自定義]
reason_unplannedHosp: String, // 非計畫住院原因 Enum:['fracture'(骨折治療或評估), 'infection'(感染), 'giBleeding'(腸胃道出血), 'decompensation'(心血管機能減退), 'innerOrSurgical'(其他內外科因素)]
Handling: String, // 處理與說明
diagnosis: String, // 診斷
visitDate: Date, // 下次回診日期
visitTime: String, // 下次回診時段 Enum:['morning'(上午), 'afternoon'(下午), 'night'(夜間)]
nextSchedule: String, // 下次回診的 id
hospital: String, // 下次回診院所
department: String, // 下次回診科別
doctor: String, // 下次回診醫師
consultationNumber: String, // 下次回診診號
}]
},
}
```
## Transfermanage Schema
```jsonld
{
organization: String, // 機構的 id
patient: String, // 住民的 id
user: String, // 操作者的 id
status: String, // 異動後狀態 Enum 如下
// newcomer: '新入住'
// hospTransfer: '一般住院'
// unplannedHosp: '非計畫住院'
// return: '返院'
// bedTransfer: '換床'
// reservation: '預約入住'
// present: '在院'
// absent: '請假'
// pause: '暫停服務'
// discharge: '退住'
// unpresented: '預約取消'
// askAwait: '諮詢候補'
// signAwait: '登記候補'
// cancelAwait: '取消候補'
// startSoon: '即將服務'
// continue: '繼續服務'
// branchTransfer: '換區域/組別'
// startServer: '開始服務'
// closed: '結案'
// closedTracking: '結案追蹤'
reason: String, // 住院原因 Enum 如下
// 請假(absent)時的 reason
// Out: '外出'
// goHome: '家人帶回'
// 使用者自定義
// 一般住院(hospTransfer)時的 reason
// outpatient: '門診治療'
// inpatient: '住院治療'
// examination: '醫療檢查'
// 使用者自定義
// 非計畫住院(unplannedHosp)時的 reason
// fracture: '骨折治療或評估'
// infection: '感染'
// giBleeding: '腸胃道出血'
// decompensation: '心血管機能減退'
// innerOrSurgical: '其他內外科因素'
hospital: String, // 住院院所
hospitalRoom: String, // 住院房號
hospitalBed: String, // 住院床號
doctor: String, // 主治醫師
in72hours: String, // 是否入住 72 小時內 Enum:['yes', 'no']
cause: String, // 導因分析 Enum:['diseaseProgression'(本身疾病變化), 'unstableCondition'(入住時病情不穩), 'improperCare'(照護不當), 使用者自定義]
type: String, // 類別分析 Enum:['controllable'(可控), 'uncontrollable'(不可控)]
afterwards: String, // 後續動態 Enum:['observation'(留觀), 'treatment'(住院治療中), 'death'(死亡), 使用者自定義]
bedHold: String, // 是否保留床位 Enum:['yes', 'no']
note: String, // 說明
oldBranch: String, // 舊區域/組別
oldRoom: String, // 舊房號
oldBed: String, // 舊床號
branch: String, // 新區域/組別
room: String, // 新房號
bed: String, // 新床號
checkInDate: Date, // 入住日期
firstServerDate: Date, // 首次服務時間
createdDate: Date, // 紀錄時間
}
```
## User Schema
```jsonld
{
_id: String, // 操作者的 id
lastName: String, // 姓氏
firstName: String, // 名字
displayName: String, // 姓氏+名字
staffContPhone: String,
birthday: Date,
sex: String,
jobTitle: String,
Address: String,
employDate: Date,
employeeNumber: String,
staffRank: String,
username: String,
password: String,
salt: String,
staffStatus: String,
photoUrl: String,
provider: String,
providerData: Object,
additionalProvidersData: Object,
roles: [String],
updated: Date,
organization: Object,
created: Date,
preference: Object,
resetPasswordToken: String,
resetPasswordExpires: Date,
lineStatus: Boolean,
lineId: String,
lineVerificationCode: Number,
lineVerificationExpires: Date,
notificationLastOpenedDate: Date,
employType: String,
resignDate: Date,
idNumber: String,
education: String,
sfaaAccount: String
}
```
## Patient Schema
```jsonld
{
_id: String,// 住民 ID
organization: String, // 機構 ID
photoUrl: String, // 大頭照網址
sex: String, // 性別
lastName: String, // 姓氏
firstName: String, // 名字
branch: String, // 分區
room: String, // 房號
bed: String, // 床號
idNumber: String, // 身分證字號
status: String, // 狀態("present" 表示在院)
checkInDate: Date, // 住民實際入住日期
createdDate: Date, // 住民資料建立日期
birthday: Date, // 生日
patientNumber: String, // 住民編號
recordNumber: String, // 病歷號
serviceType: String, // 服務類型
patientNote: String, // 特殊備註
blood: String, // 血型
height: Number, // 身高(cm)
weight: Number, // 體重(kg)
registeredAddressFull: String, // 戶籍地址
nativeLanguage: [String], // 主要語言
religion: [String], // 宗教信仰
education: String, // 教育程度
marriage: String, // 婚姻狀況
habits: [String], // 習慣嗜好
medications: [String], // 個人病史
drugAllergies: [String], // 過敏藥物
foodAllergies: [String], // 過敏食物
surgeries: String, // 個人手術史
familyHealthProblems: [String], // 家族病史
hospital: String, // 指定醫院 1
hospitalPhone: String, // 醫院電話 1
doctor: String, // 主治醫生 1
doctorDivision: String, // 醫生科別 1
hospital1: String, // 指定醫院 2
hospitalPhone1: String, // 醫院電話 2
doctor1: String, // 主治醫生 2
doctorDivision1: String, // 醫生科別 2
hospital2: String, // 指定醫院 3
hospitalPhone2: String, // 醫院電話 3
doctor2: String, // 主治醫生 3
doctorDivision2: String, // 醫生科別 3
emgcyCont: String, // 緊急聯絡人
emgcyContRelation: String, // 緊急聯絡人關係
emgcyContPhone: String, // 聯絡電話
emgcyContAddressFull: String, // 聯絡人地址
cont: String, // 其他關係人 1
contRelation: String, // 關係 1
contPhone: String, // 聯絡電話 1
contAddressFull: String, // 聯絡地址 1
cont1: String, // 其他關係人 2
contRelation1: String, // 關係 2
contPhone1: String, // 聯絡電話 2
contAddress1Full: String, // 聯絡地址 2
cont2: String, // 其他關係人 3
contRelation2Full: String, // 關係 3
contPhone2: String, // 聯絡電話 3
contAddress2: String, // 聯絡地址 3
DNR: String, // DNR
DNR_note: String, // DNR備註
hospitalBeforeResidency: String, // 入住前醫院
hospitalAfterResidencey: String, // 入住後醫院
sourceOfFinance: [String], // 經濟來源
assistiveDevice: [String], // 輔具
socialWelfareStatus: [String], // 福利身份
handBookKind: String, // 身障手冊新舊制
disabilityCategoryNew: [Object], // 新制身心障礙類別
disabilityCategory: String, // 障礙類別 1
disabilityLevel: String, // 障礙等級 1
disabilityCategory2: String, // 障礙類別 2
disabilityLevel2: String, // 障礙等級 2
disabilityCategory3: String, // 障礙類別 3
disabilityLevel3: String, // 障礙等級 3
}
```