# 健康叮嚀 --- 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 } } } ```