# 個案
---
API清單
- [身分證查詢householdMemberId](#身分證查詢householdMemberId)
- [新增個案](#新增個案)
- [QRCode收案檢查](#QRCode收案檢查)
- [QRCode收案](#QRCode收案)
---
## 身分證查詢householdMemberId
```url
GET /householdMember/searchIdCardNo?idCardNo=${idCardNo}
```
###Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
idCardNo | string | Y | | 身分證
###Response
欄位 | 型態 | 說明
-----| -----|--------
name | string | 科別名稱
status | boolean | 狀態
updateTime | int | 最後更新時間
```javascript
{
"httpCode": 200,
"result": {
"data": [
{
"memberId": "c0db3d14-0ff3-4b54-baff-d98b7ca6cc8d",
"visitStatus": 0,
"healthStatus": 0,
"idCardNo": "A189316853",
"idCardNoUpdatable": true,
"updateTime": "",
"lastVisitDate": ""
},
{
"memberId": "29cf3b1e-fce7-4209-b9d7-8ab43c5d1250",
"visitStatus": 0,
"healthStatus": 0,
"idCardNo": "A162174511",
"idCardNoUpdatable": true,
"updateTime": "",
"lastVisitDate": ""
}
]
}
}
```
## 新增個案
```url
POST /vpnCaseGeneral/add
```
### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
householdMemberId | string | Y | | 由/householdMember/searchIdCardNo取得
patIdNo | string | Y | | 身份證
patName | string | Y | | 由/householdMember/searchIdCardNo取得
chartNo | string | | | 編號
diseaseType | string | | Y | 疾病Id
diseaseTypeStage | string | | | 疾病階段Id
medicalStaffId | string | | | 收案人員Id
remark | string | | | 備註
acceptDate | timestamp | | | 收案日期
```javascript
{
"householdMemberId": "9731a4dd-ea0b-4f38-ab10-bbb02fc95fb0",
"patIdNo": "C198124276",
"patName": "自註冊",
"chartNo": null,
"diseaseType": "DM",
"diseaseTypeStage": null,
"medicalStaffId": "7a17be34-13ae-4687-b971-1e5f586c8e3a",
"remark": "1234",
"acceptDate": 1611006630138
}
```
### Response
欄位 | 型態 | 說明
-----| -----|--------
caseId | string | 個案Id, 若為 -1 則代表使用者尚未同意收案,所以直接加入待收案清單中
```javascript
{
"httpCode": 200,
"result": {
"data": {
"caseId": "3d43c0e6-6dc6-4193-aed2-be24c67fd4b2"
}
}
}
```
### Error
錯誤碼 | 錯誤字串 | 說明
--- |--- |---
422 | SERVICE_ERROR.WAITING_CASE_DUPLICATE | 新增待同意個案失敗,因為已存在相同的個案與機構和疾病的組合
422 | SERVICE_ERROR.ADD_CASE_WAITING_ERROR | 新增待同意個案失敗
## QRCode收案檢查
```url
POST /vpnCase/check-from-qrcode
```
* App使用者掃QRCode收案時先執行此API檢查是否已被收案
* QRCode內容格式有2種
- health365://add-case-qrcode?tenantId=xxxxxxxx
- health365://add-case-qrcode?tenantId=xxxxxxxx&staffId=xxxxx
- tenantId為必需參數, 表示收案租戶id
- staffId非必需參數, 表示收案處理人員id
* 依據返回內容, 若尚未被收案, App端跳出同意畫面後, 再接著執行 /vpnCase/add-from-qrcode API進行收案
### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
tenantId | string | Y | | 收案租戶id
```javascript
{
"tenantId": "1af0a4c2-ef73-4385-aa8e-8e7ae8afe155"
}
```
### Response
欄位 | 型態 | 說明
--- | --- |---
tenantName | string | 租戶名稱
tenantShortName | string | 租戶稱稱
tenantType | string | 租戶類別, DEALER: 經銷單位, HOSPITAL:醫療機構, WMT:緯創醫學, BUSINESS:企業客戶, AD:廣告商
added | boolean | 是否已被收案
```javascript
{
"httpCode": 200,
"result": {
"data": {
"tenantType": "HOSPITAL",
"tenantName": "小港醫院",
"added": true
}
}
}
```
### Error
錯誤碼 | 錯誤字串 | 說明
--- | --- | ---
400 | API_ERROR.NOT_EXIST | 無此租戶
400 | API_ERROR.USER_INFO_ERROR | 無此使用者
422 | SERVICE_ERROR.CASE_QR_TENANT_NOT_ENABLED | 收案醫院未啟用
422 | SERVICE_ERROR.CASE_QR_TENANT_NOT_ALLOWED | 非收案醫院
## QRCode收案
```url
POST /vpnCase/add-from-qrcode
```
* App使用者掃QRCode收案用
* QRCode內容格式有2種
- health365://add-case-qrcode?tenantId=xxxxxxxx
- health365://add-case-qrcode?tenantId=xxxxxxxx&staffId=xxxxx
- tenantId為必需參數, 表示收案租戶id
- staffId非必需參數, 表示收案處理人員id
* QRCode收案成功後,請再執行 /user/profile API,更新profile內容,以啟用SOS服務
### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
tenantId | string | Y | | 收案租戶id
staffId | string | | | 收案處理人員
```javascript
{
"tenantId": "1af0a4c2-ef73-4385-aa8e-8e7ae8afe155",
"staffId": null
}
```
### Response
欄位 | 型態 | 說明
--- | --- |---
caseId | string | 收案id
```javascript
{
"httpCode": 200,
"result": {
"data": {
"caseId": "d85a700f-cfe3-4351-8947-6e49c682d3f8"
}
}
}
```
### Error
錯誤碼 | 錯誤字串 | 說明
--- | --- | ---
400 | API_ERROR.NOT_EXIST | 無此租戶
400 | API_ERROR.USER_INFO_ERROR | 無此使用者
422 | SERVICE_ERROR.CASE_QR_TENANT_NOT_ENABLED | 收案醫院未啟用
422 | SERVICE_ERROR.CASE_QR_TENANT_NOT_ALLOWED | 非收案醫院
422 | SERVICE_ERROR.EXIST_NON_CLOSED_CASE | 存在未結案之VPN收案,無法收案