---
# System prepended metadata

title: Jubo API

---

# 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
}
```
