# 健康叮嚀
---
API 清單
- 健康叮嚀管理[WEB]
- [取得健康叮嚀最新N筆列表](#取得健康叮嚀最新N筆列表)
- [健康叮嚀列表](#健康叮嚀列表)
- [健康叮嚀發送者列表](#健康叮嚀發送者列表)
- [取得上傳網址](#取得上傳網址)
- [新增健康叮嚀](#新增健康叮嚀)
- [編輯健康叮嚀](#編輯健康叮嚀)
- [刪除健康叮嚀](#刪除健康叮嚀)
- 健康叮嚀[APP]
- [取得健康叮嚀列表](#取得健康叮嚀列表)
- [取得健康叮嚀明細](#取得健康叮嚀明細)
- [全部已讀健康叮嚀](#全部已讀健康叮嚀)
---
## 取得健康叮嚀最新N筆列表
```url
POST /health-remind-mgmt/latest
```
#### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
query | json | Y | | 查詢條件json
latestLimit | int | | 3 | 查詢最近N筆的筆數, 若未填入此值, 系統預設為最近3筆
* query(查詢條件json)
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
householdMemberId | string | Y | | 個案householdMemberId
tenantId | string | | | 收案租戶id, 一般租戶使用者/管理者可不用填,會由userToken取得, 若為平台管理員,需填入此值
```javascript
{
"query": {
"householdMemberId": "8a9e980a-c612-4f87-af07-a97a5f0fbed5",
"tenantId": null
} ,
"latestLimit": 3
}
```
#### Response
欄位 | 型態 | 說明
--- | --- | ---
id | string | 健康叮嚀id
tenantId | string | 收案租戶id
roleId | string | 角色Id
tenantRoleId | string | 收案租戶自訂角色id
roleName | string | 角色名稱
content | string | 健康叮嚀內容
creator | string | 健康叮嚀發送者accountId
creatorName | string | 健康叮嚀發送者名稱
read | boolean | 已讀狀態, true: 已讀, false: 未讀
createTime | Date | 建立時間
updateTime | Date | 最後更新時間
```javascript
{
"httpCode": 200,
"result": {
"data": [
{
"id": "175f2140-8891-4d8e-901c-6b47e4eea917",
"tenantId": "858b7fbb-3ba0-4d49-9882-c893a1ef07dc",
"roleId": "TENANT_ROLE_USER",
"tenantRoleId": "2ad9aaad-f651-4d8d-9309-e015c0fb24d3",
"roleName": "腳科醫生",
"content": "WAIT for DELETE",
"creator": "7a17be34-13ae-4687-b971-1e5f586c8e3a",
"creatorName": "Dr. W",
"read": true,
"createTime": 1636629386107,
"updateTime": 1636629865748
},
{
"id": "4ec50437-7b87-4059-bcfc-ba1b9c2720e0",
"tenantId": "858b7fbb-3ba0-4d49-9882-c893a1ef07dc",
"roleId": "TENANT_ROLE_USER",
"tenantRoleId": "2ad9aaad-f651-4d8d-9309-e015c0fb24d3",
"roleName": "腳科醫生",
"content": "Remind-1-2-3",
"creator": "7a17be34-13ae-4687-b971-1e5f586c8e3a",
"creatorName": "Dr. W",
"read": false,
"createTime": 1636629431937,
"updateTime": 1636629431937
}
]
}
}
```
## 健康叮嚀列表
```url
POST /health-remind-mgmt/list
```
#### Request
* query(查詢條件json)
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
householdMemberId | string | Y | | 個案householdMemberId
tenantId | string | | | 收案租戶id, 一般租戶使用者/管理者可不用填,會由userToken取得, 若為平台管理員,需填入此值
creator | string | | | 發送者accountId
updateTimeStart | string | | | 最後更新時間起日, 格式為YYYY-MM-DD
updateTimeEnd | string | | | 最後更新時間迄日, 格式為YYYY-MM-DD
* pagination(分頁json)
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
current | int | | 1 | 當前頁數
pageSize | int | | 10 | 每頁結果數量,-1 為顯示所有
* sorter(排序json), 預設是用更新時間降序排列
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
field | string | | updateTime | 排序欄位,可排序欄位有 createTime, updateTime, creatorName
order | string | | desc | 生序或降序
```javascript
{
"query": {
"householdMemberId": "8a9e980a-c612-4f87-af07-a97a5f0fbed5",
"tenantId": null,
"creator": null,
"updateTimeStart": null,
"updateTimeEnd": null
} ,
"pagination": {
"current": 1,
"pageSize": 10
},
"sorter": {
"field": "updateTime",
"order": "desc"
}
}
```
#### Response
欄位 | 型態 | 說明
--- | --- | ---
id | string | 健康叮嚀id
tenantId | string | 收案租戶id
roleId | string | 角色Id
tenantRoleId | string | 收案租戶自訂角色id
roleName | string | 角色名稱
content | string | 健康叮嚀內容
creator | string | 健康叮嚀發送者accountId
creatorName | string | 健康叮嚀發送者名稱
read | boolean | 已讀狀態, true: 已讀, false: 未讀
createTime | Date | 建立時間
updateTime | Date | 最後更新時間
```javascript
{
"httpCode": 200,
"result": {
"data": [
{
"id": "175f2140-8891-4d8e-901c-6b47e4eea917",
"tenantId": "858b7fbb-3ba0-4d49-9882-c893a1ef07dc",
"roleId": "TENANT_ROLE_USER",
"tenantRoleId": "2ad9aaad-f651-4d8d-9309-e015c0fb24d3",
"roleName": "腳科醫生",
"content": "WAIT for DELETE",
"creator": "7a17be34-13ae-4687-b971-1e5f586c8e3a",
"creatorName": "Dr. W",
"read": true,
"createTime": 1636629386107,
"updateTime": 1636629865748
},
{
"id": "4ec50437-7b87-4059-bcfc-ba1b9c2720e0",
"tenantId": "858b7fbb-3ba0-4d49-9882-c893a1ef07dc",
"roleId": "TENANT_ROLE_USER",
"tenantRoleId": "2ad9aaad-f651-4d8d-9309-e015c0fb24d3",
"roleName": "腳科醫生",
"content": "Remind-1-2-3",
"creator": "7a17be34-13ae-4687-b971-1e5f586c8e3a",
"creatorName": "Dr. W",
"read": false,
"createTime": 1636629431937,
"updateTime": 1636629431937
}
],
"pagination": {
"current": 1,
"pageSize": 10,
"total": 2
},
"sorter": {
"field": "updateTime",
"order": "desc"
},
"total": 2
}
}
```
## 健康叮嚀發送者列表
```url
POST /health-remind-mgmt/creator-list
```
#### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
tenantId | string | | | 收案租戶id, 一般租戶使用者/管理者可不用填,會由userToken取得, 若為平台管理員,需填入此值
```javascript
{
"tenantId": null
}
```
#### Response
欄位 | 型態 | 說明
--- | --- | ---
id | string | 租戶角色使用者accountId
name | string | 租戶角色使用者名稱
tenantRoleId | string | 租戶自訂角色id
tenantRoleName | string | 角色名稱
divisionId | string | 科室id
divisionName | string | 科室名稱
```javascript
{
"httpCode": 200,
"result": {
"data": [
{
"id": "81532cd6-3cae-4d26-a9a3-70812874638e",
"name": "AS",
"tenantRoleId": "2ad9aaad-f651-4d8d-9309-e015c0fb24d3",
"tenantRoleName": "腳科醫生",
"divisionId": "2c18cc98-bd67-4d83-afdd-36bb5b370387",
"divisionName": "腎臟科"
},
{
"id": "e46a26e5-192a-4db3-a423-f4689361d270",
"name": "yo",
"tenantRoleId": "9f96a66a-08e9-4ea2-9e41-f0165edb580a",
"tenantRoleName": "手科醫生",
"divisionId": "2c18cc98-bd67-4d83-afdd-36bb5b370387",
"divisionName": "腎臟科"
},
{
"id": "ba78940b-854b-48be-855f-6c8562f0afbc",
"name": "123",
"tenantRoleId": "9f96a66a-08e9-4ea2-9e41-f0165edb580a",
"tenantRoleName": "手科醫生",
"divisionId": "84225c8d-5304-4fa5-95f8-84811528b99d",
"divisionName": "內科"
},
{
"id": "7a17be34-13ae-4687-b971-1e5f586c8e3a",
"name": "Dr. W",
"tenantRoleId": "2ad9aaad-f651-4d8d-9309-e015c0fb24d3",
"tenantRoleName": "腳科醫生",
"divisionId": "e1e8b66d-c425-4b3a-9b29-d5d02082b185",
"divisionName": "外科"
}
]
}
}
```
## 取得上傳網址
```url
POST /health-remind-mgmt/audio/get-upload-url
```
* 新增編輯語音叮嚀時取得上傳網址
#### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
fileName | String | Y | | 檔名,不包含副檔名,限制最多50字
fileType | String | Y | | 副檔名, 限制最多10字(mp3/wav/webm)
```javascript
{
"fileName": "hm_bg_jp",
"fileType": "mp3"
}
```
#### Response
* data
欄位 | 型態 | 說明
--- | --- | ---
objectKey | string | storage 中的 objectKey, **unique**
uploadId | string | 識別該次上傳的 uploadId
fileName | string | 名稱
fileType | string | 副檔名
url | string | 單檔上傳的時候,才會回傳該 url, 時效 3600 秒
parts | [...part] | multipart上傳各part的url
* part(Object)
欄位 | 型態 | 說明
--- | --- | ---
chunkSize | int | 該 chunk 的大小, bytes
md5 | string | 該 part 的 md5
part | int | part number, 第幾塊 chunk
url | string | 可上傳的 url, 時效 3600 秒
```javascript
// HttpStatus:422, 上傳的檔案類型不允許
{
"errorMsg": "SERVICE_ERROR.EVENT_MGMT_UPLOAD_FILE_TYPE_NOT_ALLOWED",
"httpCode": 422
}
// HttpStatus: 200
// 單檔
{
"httpCode": 200,
"result": {
"data": {
"objectKey": "health_remind/bcd1c0f3-d49d-4715-88f7-a45e8146599a.mp3",
"uploadId": "8765bdee-fb40-44a2-be17-9d4b9e7c8a92",
"fileName": "xxxx.mp3",
"fileType": "mp3",
"url": "http://10.31.104.23/swift/v1/AUTH_test/kmuh/health_remind/bcd1c0f3-d49d-4715-88f7-a45e8146599a.mp3?temp_url_sig=8113f3ad025f17c617480655cbbd1652eece3afd&temp_url_expires=1671080699"
}
}
}
```
## 新增健康叮嚀
```url
POST /health-remind-mgmt/add
```
#### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
householdMemberId | string | Y | | 個案householdMemberId
content | string | N(與objectKey擇一必填) | | 如果沒有objectKey該欄位為健康叮嚀內容, 如果有objectKey該欄位為備註, 最多500字
objectKey | string | N(與content擇一必填) | | 語音叮嚀的objectKey
recordingTime | int | 若ObjectKey有值則必填 | | 語音叮嚀的錄音長度, 單位秒
```javascript
{
"householdMemberId": "8a9e980a-c612-4f87-af07-a97a5f0fbed5",
"content": "多喝溫開水",
"objectKey": "health_remind/8cde5230-a6e7-4b03-8618-45290ab10c1e.mp3",
"recordingTime": 65
}
```
#### Response
欄位 | 型態 | 說明
--- | --- | ---
id | string | 健康叮嚀id
householdMemberId | string | 個案householdMemberId
tenantId | string | 收案租戶id
creator | string | 健康叮嚀發送者accountId
content | string | 健康叮嚀內容
objectKey | String | 語音叮嚀objectKey
recordingTime|int| 語音叮嚀錄音長度, 單位秒
read | boolean | 已讀狀態, true: 已讀, false: 未讀
createTime | Date | 建立時間
updateTime | Date | 最後更新時間
```javascript
{
"httpCode": 200,
"result": {
"data": {
"id": "640a54b9-7a68-42a4-aa2a-d964e553a22f",
"householdMemberId": "8a9e980a-c612-4f87-af07-a97a5f0fbed5",
"tenantId": "858b7fbb-3ba0-4d49-9882-c893a1ef07dc",
"creator": "7a17be34-13ae-4687-b971-1e5f586c8e3a",
"content": "多喝溫開水",
"objectKey": "health_remind/8cde5230-a6e7-4b03-8618-45290ab10c1e.mp3",
"read": false,
"createTime": 1636685924510,
"updateTime": 1636685924510
}
}
}
```
## 編輯健康叮嚀
```url
POST /health-remind-mgmt/update
```
#### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
id | string | Y | | 健康叮嚀id
content | string | N(與objectKey擇一必填) | | 如果沒有objectKey該欄位為健康叮嚀內容, 如果有objectKey該欄位為備註, 最多500字
objectKey | string | N(與content擇一必填) | | 語音叮嚀的objectKey
recordingTime | int | 若ObjectKey有值則必填 | | 語音叮嚀的錄音長度, 單位秒
```javascript
{
"id": "640a54b9-7a68-42a4-aa2a-d964e553a22f",
"content": "iPad 溫開水"
}
```
#### Response
欄位 | 型態 | 說明
--- | --- | ---
id | string | 健康叮嚀id
householdMemberId | string | 個案householdMemberId
tenantId | string | 收案租戶id
creator | string | 健康叮嚀發送者accountId
content | string | 健康叮嚀內容
objectKey | String | 語音叮嚀objectKey
recordingTime|int| 語音叮嚀錄音長度, 單位秒
read | boolean | 已讀狀態, true: 已讀, false: 未讀
createTime | Date | 建立時間
updateTime | Date | 最後更新時間
```javascript
// HttpStatus:400, 資料不存在
{
"errorMsg": "API_ERROR.NOT_EXIST",
"httpCode": 400
}
// HttpStatus:400, 操作被拒絕, 非原始建立的租戶id
{
"errorMsg": "API_ERROR.PERMISSION_DENIED",
"errorDesc": "tenantId not matched.",
"httpCode": 400
}
// HttpStatus:400, 叮嚀內容不存在
{
"errorMsg": "SERVICE_ERROR.HEALTH_REMIND_CONTENT_NOT_EXIST",
"httpCode": 400
}
// HttpStatus:400, 操作被拒絕, 非原始建立的使用者accountId
{
"errorMsg": "API_ERROR.PERMISSION_DENIED",
"errorDesc": "creator not matched.",
"httpCode": 400
}
// HttpStatus:200
{
"httpCode": 200,
"result": {
"data": {
"id": "640a54b9-7a68-42a4-aa2a-d964e553a22f",
"householdMemberId": "8a9e980a-c612-4f87-af07-a97a5f0fbed5",
"tenantId": "858b7fbb-3ba0-4d49-9882-c893a1ef07dc",
"creator": "7a17be34-13ae-4687-b971-1e5f586c8e3a",
"content": "多喝溫開水",
"objectKey": "health_remind/8cde5230-a6e7-4b03-8618-45290ab10c1e.mp3",
"read": false,
"createTime": 1636685924510,
"updateTime": 1636685924510
}
}
}
```
## 刪除健康叮嚀
```url
POST /health-remind-mgmt/delete
```
#### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
id | string | Y | | 健康叮嚀id
```javascript
{
"id": "175f2140-8891-4d8e-901c-6b47e4eea917"
}
```
#### Response
欄位 | 型態 | 說明
--- | --- | ---
count | int | 刪除筆數, > 0 表示成功刪除
```javascript
// HttpStatus:400, 資料不存在
{
"errorMsg": "API_ERROR.NOT_EXIST",
"httpCode": 400
}
// HttpStatus:400, 操作被拒絕, 非原始建立的租戶id
{
"errorMsg": "API_ERROR.PERMISSION_DENIED",
"errorDesc": "tenantId not matched.",
"httpCode": 400
}
// HttpStatus:400, 操作被拒絕, 非原始建立的使用者accountId
{
"errorMsg": "API_ERROR.PERMISSION_DENIED",
"errorDesc": "creator not matched.",
"httpCode": 400
}
// HttpStatus:422, 不允許刪除已讀健康叮嚀
{
"errorMsg": "SERVICE_ERROR.HEALTH_REMIND_HAD_READ",
"httpCode": 422
}
// HttpStatus:200
{
"httpCode": 200,
"result": {
"data": {
"count": 1
}
}
}
```
## 取得健康叮嚀列表
```url
POST /health-remind/list
```
#### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
householdMemberId | string | | | 個案householdMemberId, AppUser不需填, 會由userToken取得
tenantId | string | | | 收案租戶id, 若有帶值,則只查詢該收案租戶的健康叮嚀
```javascript
{
"householdMemberId": null,
"tenantId": null
}
```
#### Response
欄位 | 型態 | 說明
--- | --- | ---
id | string | 健康叮嚀id
tenantId | string | 收案租戶id
tenantName | string | 收案租戶名稱
divisionName | string | 科室名稱
roleId | string | 角色Id
tenantRoleId | string | 收案租戶自訂角色id
roleName | string | 角色名稱
content | string | APP端<br>如果objectKey不存在, 這欄位作為健康叮嚀內容<br>如果objectKey存在, 這欄位不顯示, 改顯示UI定義的固定標題<br>WEB端<BR>如果objectKey不存在, 這欄位作為健康叮嚀內容<br>如果objectKey存在, 這欄位作為備註顯示
objectKey | string | 語音叮嚀objectKey
recordingTime|int| 語音叮嚀錄音長度, 單位秒
url | string | 語音叮嚀url
creator | string | 健康叮嚀發送者accountId
creatorName | string | 健康叮嚀發送者名稱
read | boolean | 已讀狀態, true: 已讀, false: 未讀
createTime | Date | 建立時間
updateTime | Date | 最後更新時間
```javascript
{
"httpCode": 200,
"result": {
"data": [
{
"id": "640a54b9-7a68-42a4-aa2a-d964e553a22f",
"tenantId": "858b7fbb-3ba0-4d49-9882-c893a1ef07dc",
"tenantName": "緯緯醫學",
"divisionName": "外科",
"roleId": "TENANT_ROLE_USER",
"tenantRoleId": "2ad9aaad-f651-4d8d-9309-e015c0fb24d3",
"roleName": "腳科醫生",
"content": "iPad 溫開水",
"creator": "7a17be34-13ae-4687-b971-1e5f586c8e3a",
"creatorName": "Dr. W",
"objectKey": "health_remind/8cde5230-a6e7-4b03-8618-45290ab10c1e.mp3",
"url": "http://10.31.104.23/swift/v1/AUTH_test/kmuh/health_remind/8cde5230-a6e7-4b03-8618-45290ab10c1e.mp3?temp_url_sig=57f2380c73ce3c2ddb816174f383829a6927625c&temp_url_expires=1671081324"
"read": false,
"createTime": 1636685924510,
"updateTime": 1636686396280
},
{
"id": "175f2140-8891-4d8e-901c-6b47e4eea917",
"tenantId": "858b7fbb-3ba0-4d49-9882-c893a1ef07dc",
"tenantName": "緯緯醫學",
"divisionName": "外科",
"roleId": "TENANT_ROLE_USER",
"tenantRoleId": "2ad9aaad-f651-4d8d-9309-e015c0fb24d3",
"roleName": "腳科醫生",
"content": "WAIT for DELETE",
"creator": "7a17be34-13ae-4687-b971-1e5f586c8e3a",
"creatorName": "Dr. W",
"read": true,
"createTime": 1636629386107,
"updateTime": 1636629865748
},
{
"id": "4ec50437-7b87-4059-bcfc-ba1b9c2720e0",
"tenantId": "858b7fbb-3ba0-4d49-9882-c893a1ef07dc",
"tenantName": "緯緯醫學",
"divisionName": "外科",
"roleId": "TENANT_ROLE_USER",
"tenantRoleId": "2ad9aaad-f651-4d8d-9309-e015c0fb24d3",
"roleName": "腳科醫生",
"content": "Remind-1-2-3",
"creator": "7a17be34-13ae-4687-b971-1e5f586c8e3a",
"creatorName": "Dr. W",
"read": false,
"createTime": 1636629431937,
"updateTime": 1636629431937
}
]
}
}
```
## 取得健康叮嚀明細
```url
POST /health-remind/detail
```
#### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
id | string | Y | | 健康叮嚀id
```javascript
{
"id": "175f2140-8891-4d8e-901c-6b47e4eea917"
}
```
#### Response
欄位 | 型態 | 說明
--- | --- | ---
id | string | 健康叮嚀id
tenantId | string | 收案租戶id
tenantName | string | 收案租戶名稱
divisionName | string | 科室名稱
roleId | string | 角色Id
tenantRoleId | string | 收案租戶自訂角色id
roleName | string | 角色名稱
content | string | APP端<br>如果objectKey不存在, 這欄位作為健康叮嚀內容<br>如果objectKey存在, 這欄位不顯示, 改顯示UI定義的固定標題<br>WEB端<BR>如果objectKey不存在, 這欄位作為健康叮嚀內容<br>如果objectKey存在, 這欄位作為備註顯示
objectKey | string | 語音叮嚀objectKey
recordingTime|int| 語音叮嚀錄音長度, 單位秒
url | string | 語音叮嚀url
creator | string | 健康叮嚀發送者accountId
creatorName | string | 健康叮嚀發送者名稱
read | boolean | 已讀狀態, true: 已讀, false: 未讀
createTime | Date | 建立時間
updateTime | Date | 最後更新時間
```javascript
// HttpStatus:400, 資料不存在
{
"errorMsg": "API_ERROR.NOT_EXIST",
"httpCode": 400
}
// HttpStatus:200
{
"httpCode": 200,
"result": {
"data": {
"id": "175f2140-8891-4d8e-901c-6b47e4eea917",
"tenantId": "858b7fbb-3ba0-4d49-9882-c893a1ef07dc",
"tenantName": "緯緯醫學",
"divisionName": "外科",
"roleId": "TENANT_ROLE_USER",
"tenantRoleId": "2ad9aaad-f651-4d8d-9309-e015c0fb24d3",
"roleName": "腳科醫生",
"content": "WAIT for DELETE",
"creator": "7a17be34-13ae-4687-b971-1e5f586c8e3a",
"creatorName": "Dr. W",
"read": true,
"createTime": 1636629386107,
"updateTime": 1636629865748
}
}
}
```
## 全部已讀健康叮嚀
```url
POST /health-remind/read-all
```
#### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
householdMemberId | string | | | 個案householdMemberId, AppUser不需填, 會由userToken取得
tenantId | string | | | 收案租戶id, 若有帶值,則只查詢該收案租戶的健康叮嚀
```javascript
{
"householdMemberId": null,
"tenantId": null
}
```
#### Response
欄位 | 型態 | 說明
--- | --- | ---
count | int | 改為已讀的筆數
```javascript
{
"httpCode": 200,
"result": {
"data": {
"count": 3
}
}
}
```