# 快篩 --- API 清單 * [快篩試劑清單](#快篩試劑清單) * [快篩記錄列表](#快篩記錄列表) * [新增快篩記錄](#新增快篩記錄) * [編輯快篩記錄](#編輯快篩記錄) * [刪除快篩記錄](#刪除快篩記錄) * [刪除快篩記錄照片](#刪除快篩記錄照片) * [取得上傳照片網址](#取得上傳照片網址) --- ## 快篩試劑清單 ```url GET /rapid-test/kit-list ``` Request 欄位 | 型態 | 必填 | 預設 | 說明 ---|---|---|---|--- ```javascript ``` Response 欄位 | 型態 | 說明 -----| -----|-------- id | string | 快篩試劑id name | string | 快篩試劑名稱 seq | int | 序號 ```javascript { "httpCode": 20, "result": { "data": [ { "id": "c5cb52be-29cd-4bc6-8e78-38d9ca78d07f", "name": "英斯特家用試劑", "seq": 1 }, { "id": "fe83e14a-d1ef-4467-9b36-45b4fb5d8812", "name": "萊析樂家用新冠病毒核酸檢測組", "seq": 2 },... } } } ``` ## 快篩記錄列表 ```url POST /rapid-test/record/list ``` Request 欄位 | 型態 | 必填 | 預設 | 說明 ---|---|---|---|--- householdMemberId | string | Y | | householdMemberId pagination | json | | | 分頁 -current | int | | 1 | 當前頁數 -pageSize | int | | 10 | 每頁結果數量,-1 為顯示所有 sorter | json | | 排序欄位 -field | string | | testTime | 排序欄位, 可排序欄位:testTime, name, resource -order | string | | desc | 升冪或降冪, 預設為desc ```javascript { "query": { "householdMemberId": "e9a3042a-7ae1-4069-a2f6-fef3bb69b50a" }, "pagination": { "current": 1, "total": 1, "pageSize": 10 }, "sorter": { "field": "testTime", "order": "desc" } } ``` Response 欄位 | 型態 | 說明 -----| -----|-------- id | string | 快篩記錄id name | string | 快篩試劑名稱 testTime | timestamp | 快篩測試日期 testResult | string | 快篩結果, NEGATIVE:陰性, POSITIVE:陽性 resource | string | 資料來源, Web: Web輸入(醫護輸入), App: App輸入 imageUrl | string | 可 download 的 快篩記錄照片url, 時效 3600 秒 ```javascript { "httpCode": 200, "result": { "data": [ { "id": "e9a3042a-7ae1-4069-a2f6-fef3bb69b50a", "name": "英斯特家用試劑", "testTime": 1609545600000, "testResult": "NEGATIVE", "resource": "Web", "imageUrl": "http://10.31.49.126/swift/v1/AUTH_test/kmuh/rapid_test_record/e1e21182-3aff-4c5c-93d4-42e711695836.png" }, ... ], "pagination": { "current": 1, "pageSize": 10, "total": 2 }, "sorter": {} } } ``` ## 新增快篩記錄 ```url POST /rapid-test/record/add ``` Request 欄位 | 型態 | 必填 | 預設 | 說明 ---|---|---|---|--- householdMemberId | string | Y | | Web端必填,App端可不填,由後端從token中取得 rapidTestKitId | string | Y | | 快篩試劑Id testTime | timestamp | Y | | 快篩測試日期 testResult | string | Y | | 快篩結果, NEGATIVE:陰性, POSITIVE:陽性 resource | string | Y | | 資料來源, Web: Web輸入(醫護輸入), App: App輸入 objectKey | string | N | | 上傳快篩照片的objectKey, 先取得快篩照片上傳網址並上傳成功,取其 objectKey。 isMultipart | boolean | N | | 快篩照片上傳時是否分塊上傳,預設為 false totalPart | int | **N** (isMultipart=false)<br>**Y** (isMultipart=true) | | 快篩照片上傳的總分塊數量,不可小於2 uploadId | string | **N** (isMultipart=false)<br>**Y** (isMultipart=true) | | 從 /rapid-test/record/get-upload-url 取得的 uploadId ```javascript { "householdMemberId": "e9a3042a-7ae1-4069-a2f6-fef3bb69b50a", "rapidTestKitId": "c5cb52be-29cd-4bc6-8e78-38d9ca78d07f", "testTime": 1609545600000, "testResult": "NEGATIVE", "resource": "App", "objectKey": "rapid_test_record/98386d85-592e-4e7d-80f3-0e22a389ff65.png", "isMultipart": false, "totalPart": null, "uploadId": null } ``` Response 欄位 | 型態 | 說明 -----| -----|-------- id | string | 快篩記錄id name | string | 接種疫苗名稱 testTime | timestamp | 快篩測試日期 testResult | string | 快篩結果, NEGATIVE:陰性, POSITIVE:陽性 resource | string | 資料來源, Web: Web輸入(醫護輸入), App: App輸入 ```javascript { "httpCode": 200, "result": { "data": { "id": "e9a3042a-7ae1-4069-a2f6-fef3bb69b50a", "name": "英斯特家用試劑", "testTime": 1609545600000, "testResult": "NEGATIVE", "resource": "Web" } } } ``` ## 編輯快篩記錄 ```url POST /rapid-test/record/update ``` Request 欄位 | 型態 | 必填 | 預設 | 說明 ---|---|---|---|--- id | string | Y | | 快篩記錄id rapidTestKitId | string | Y | | 快篩試劑Id testTime | timestamp | Y | | 快篩測試日期 testResult | string | Y | | 快篩結果, NEGATIVE:陰性, POSITIVE:陽性 resource | string | Y | | 資料來源, Web: Web輸入(醫護輸入), App: App輸入 objectKey | string | N | | 上傳快篩照片的objectKey, 先取得快篩照片上傳網址並上傳成功,取其 objectKey。 isMultipart | boolean | N | | 快篩照片上傳時是否分塊上傳,預設為 false totalPart | int | **N** (isMultipart=false)<br>**Y** (isMultipart=true) | | 快篩照片上傳的總分塊數量,不可小於2 uploadId | string | **N** (isMultipart=false)<br>**Y** (isMultipart=true) | | 從 /rapid-test/record/get-upload-url 取得的 uploadId ```javascript { "id": "e9a3042a-7ae1-4069-a2f6-fef3bb69b50a", "rapidTestKitId": "c5cb52be-29cd-4bc6-8e78-38d9ca78d07f", "testTime": 1609545600000, "testResult": "NEGATIVE", "resource": "App", "objectKey": "rapid_test_record/98386d85-592e-4e7d-80f3-0e22a389ff65.png", "isMultipart": false, "totalPart": null, "uploadId": null } ``` Response 欄位 | 型態 | 說明 -----| -----|-------- id | string | 快篩記錄id name | string | 接種疫苗名稱 testTime | timestamp | 快篩測試日期 testResult | string | 快篩結果, NEGATIVE:陰性, POSITIVE:陽性 resource | string | 資料來源, Web: Web輸入(醫護輸入), App: App輸入 ```javascript { "httpCode": 200, "result": { "data": { "id": "e9a3042a-7ae1-4069-a2f6-fef3bb69b50a", "name": "英斯特家用試劑", "testTime": 1609545600000, "testResult": "NEGATIVE", "resource": "Web" } } } ``` ## 刪除快篩記錄 ```url POST /rapid-test/record/delete ``` Request 欄位 | 型態 | 必填 | 預設 | 說明 ---|---|---|---|--- id | string | Y | | 快篩記錄id ```javascript { "id": "e9a3042a-7ae1-4069-a2f6-fef3bb69b50a" } ``` Response 欄位 | 型態 | 說明 -----| -----|-------- count | int | 刪除筆數, 1表示成功 ```javascript { "httpCode": 200, "result": { "data": { "count": 1 } } } ``` ## 刪除快篩記錄照片 ```url POST /rapid-test/record/delete-image ``` Request 欄位 | 型態 | 必填 | 預設 | 說明 ---|---|---|---|--- id | string | Y | | 快篩記錄id ```javascript { "id": "e9a3042a-7ae1-4069-a2f6-fef3bb69b50a" } ``` Response 欄位 | 型態 | 說明 -----| -----|-------- id | string | 快篩記錄id name | string | 接種疫苗名稱 testTime | timestamp | 快篩測試日期 testResult | string | 快篩結果, NEGATIVE:陰性, POSITIVE:陽性 resource | string | 資料來源, Web: Web輸入(醫護輸入), App: App輸入 ```javascript { "httpCode": 200, "result": { "data": { "id": "e9a3042a-7ae1-4069-a2f6-fef3bb69b50a", "name": "英斯特家用試劑", "testTime": 1609545600000, "testResult": "NEGATIVE", "resource": "Web" } } } ``` ## 取得上傳照片網址 ```url POST /rapid-test/record/get-upload-url ``` #### Request 欄位 | 型態 | 必填 | 預設 | 說明 ---|---|---|---|--- isMultipart | boolean | Y | false | 是否使用分段上傳 fileName | String | Y | | 檔名,不包含副檔名,限制最多50字 fileType | String | Y | | 副檔名, 限制最多10字 totalPart | int | **N** (isMultipart=false)<br>**Y** (isMultipart=true) | | 總分塊數量,不可小於2 parts | Array [...part] | **N** (isMultipart=false)<br>**Y** (isMultipart=true) | | part 資訊 * part(Object) 欄位 | 型態 | 必填 | 預設 | 說明 ---|---|---|---|--- chunkSize | int | Y | | 該 chunk 的大小, bytes md5 | string | Y | | 該 part 的 md5 part | int | Y | | part number, 第幾塊 chunk ```javascript // 單檔 { "isMultipart": false, "fileName": "ad_bg_jp", "fileType": "png" } // 分塊上傳 { "isMultipart": true, "fileName": "giphy (7)", "fileType": "mp4", "totalPart": 2, "parts": [ { "chunkSize": 5242880, "md5": "5AACA89868CD486D81192221CF9F9415", "part": 1 }, { "chunkSize": 3145728, "md5": "5AACA89868CD486D81192221CF9F9415", "part": 2 } ] } ``` #### 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.UPLOAD_FILE_TYPE_NOT_ALLOWED", "httpCode": 422 } // HttpStatus: 200 // 單檔 { "httpCode": 200, "result": { "data": { "objectKey": "event/9f9de11b-12b9-4964-bae8-3233e9da065b.png", "uploadId": "11becd09-7571-4b0d-b8ee-cb3f09f66cf0", "fileName": "ad_bg_jp", "fileType": "png", // 單檔 才有 url "url": "http://192.168.100.239:12345/v1/AUTH_test/kmuh/rapid_test_record%2F9f9de11b-12b9-4964-bae8-3233e9da065b.png?temp_url_sig=e61d9e721d860294bde4d0151e111ebf8ed57ed7&temp_url_expires=1554114780" } } } // 分塊上傳 { "httpCode": 200, "result": { "data": { "objectKey": "event/f76adf26-1e22-4b18-980d-b9a68efc5171.mp4", "uploadId": "53fde368-43d9-455f-a610-62091fc30be6", "fileName": "giphy (7)", "fileType": "mp4", "parts": [ { "chunkSize": 5242880, "md5": "5AACA89868CD486D81192221CF9F9415", "part": 1, "url": "http://192.168.100.239:12345/v1/AUTH_test/kmuh_segments/rapid_test_record%2Ff76adf26-1e22-4b18-980d-b9a68efc5171.mp4%2F1?temp_url_sig=796c52b00f75b62be658533b2fadbc7f14381e36&temp_url_expires=1554263771" }, { "chunkSize": 3145728, "md5": "5AACA89868CD486D81192221CF9F9415", "part": 2, "url": "http://192.168.100.239:12345/v1/AUTH_test/kmuh_segments/rapid_test_record%2Ff76adf26-1e22-4b18-980d-b9a68efc5171.mp4%2F2?temp_url_sig=ad71de81dfbcd94bce4a091f2630c6f1373ff3cd&temp_url_expires=1554263771" } ] } } } ```