H365V2
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • Write
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Help
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Owners
  • Owners
  • Signed-in users
  • Everyone
Owners Signed-in users Everyone
Write
Owners
  • Owners
  • Signed-in users
  • Everyone
Owners Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # 生理資料 ## 更新記錄 | 日期 | 說明 | | -------- | -------- | | 2020/12/18 | 建立生理資料 API 初版 | | 2020/12/23 | 修改生理資料 API 輸出格式 | | 2021/02/19 | 修改查詢喝水量 API 輸出格式 | | 2021/06/04 | 修改新增生理資料API, 加上GPS資料 | | 2022/01/06 | 修改新增生理資料API, 加上時段, 餐別欄位<br/>修改查詢血糖胰島素API, 加上時段, 餐別欄位<br/>新增血糖各餐前後比較API | | 2022/01/17 | 修改新增生理資料API, 加上設備資訊欄位<br/>修改查詢API, 增加設備資訊欄位 | | 2022/04/13 | 修改新增生理資料API, 加上肌肉量欄位<br/>修改查詢API, 增加肌肉量欄位 | | 2022/04/18 | 修改查詢最近量測-含異常資訊API, 加上資料來源、量測裝置<br/> | | 2023/07/10 | 修改新增生理資料API, 加上腰圍, 臀圍欄位<br/>修改查詢API, 增加腰圍, 臀圍欄位 | * [新增生理資料](#新增生理資料) * [刪除生理資料](#刪除生理資料) * [查詢最近量測](#查詢最近量測) * [查詢最近量測-含異常資訊](#查詢最近量測-含異常資訊) * [查詢體重BMI體脂](#查詢體重BMI體脂) * [查詢血壓心律](#查詢血壓心律) * [查詢血糖胰島素](#查詢血糖胰島素) * [查詢體溫血氧](#查詢體溫血氧) * [查詢喝水量](#查詢喝水量) * [查詢血氧](#查詢血氧) * [查詢體溫](#查詢體溫) --- ## 新增生理資料 ### 新增或更新 ```url POST /phy/bulkUpdate ``` ### Query Params | 欄位 | Required | 型態 | 預設 | 說明 | |--- |--- |--- |--- |--- | | temperature | N | String | | 體溫 | | systolic | N | String | | 舒張壓 | | diastolic | N | String | | 縮收壓 | | heartRate | N | String | | 脈搏 | | oxygen | N | String | | 血氧 | | bodyWeight | N | String | | 體重, 體重和BMI需一起上傳,否則視為無效 | | bmi | N | String | | BMI, 體重和BMI需一起上傳,否則視為無效 | | fat | N | String | | 體脂 | | insulin | N | String | | 胰島素劑量, insulin和insulinId需一起上傳,否則視為無效 | | insulinId | N | String | | 胰島素編號, insulin和insulinId需一起上傳,否則視為無效| | beforeMeals | N | String | | 空腹血糖值 | | afterMeals | N | String | | 飯後血糖值 | | waterVolume | N | String | | 喝水量 | | measureDate | Y | String | | 測量時間 UTC+0 milliseconds | | deviceId | N | String | | 有帶表示 設備上傳,否之,手動輸入,最長50字,若dataList裡的json沒有帶deviceId,則會帶入外層json的deviceId | | devicePairId | N | String | | 配對裝置device(後端)的Id | | lat | N | float | | 緯度 | | lng | N | float | | 經度 | | timePeriod | N | int | | 血糖記錄時段 enum: [1: “早上”, 2: “中午”, 3: “晚上”, 4: “睡前”] | | timePeriodType | N | int | | 血糖記錄餐別 enum: [10: “早餐”, 11: “早午餐”, 20: “午餐”, 21: “下午茶”, 30: “晚餐”, 31: “點心”, 40: “宵夜”] | | deviceName | N | String | | 設備名稱,最長200字,若dataList裡的json沒有帶deviceName,則會帶入外層json的deviceName | | muscle | N | String | | 肌肉量 | | waist | N | String | | 腰圍(cm) | | hips | N | String | | 臀圍(cm) | ### Request Body Example ```javascript { "deviceId":"my_device_id", "deviceName":"my_device_name", "devicePairId": "a081310a-575e-4095-8f7c-786fe1e391c9", "dataList": [ { "temperature": "36.7", "systolic": "110", "diastolic": "78", "heartRate": "80", "oxygen": "98", "bodyWeight": "70.1", "bmi": "22.5", "fat": "32", "insulinId": "1", "insulin": "50", "beforeMeals": "50", "afterMeals": "90", "waterVolume": "1800", "measureDate": "1550628000000", "lat":22.357741, "lng":120.901022, "timePeriod": 1, "timePeriodType": 10, "deviceId": "56E09AE1-DAC1-0C7F-671B-7F31D3FB48C3", "deviceName": "Osmile", "muscle": "32", "waist": "90", "hips": "100" }, ... ] } ``` ### Response Body Param | 欄位 | 型態 | 說明 | | -----| -----|-------- | | setOxygen| boolean | 成功設定血氧 | | setTemperature| boolean | 成功設定體溫 | | setBloodPressure| boolean | 成功設定血壓/心跳 | | setBody| boolean | 成功設定 體重,BMI / FAT | | setInsulin| boolean | 成功設定胰島素 | | setSugar| boolean | 成功設定血糖 | | setWater| boolean | 成功設定喝水量 | ### Response Body Example ```javascript { "httpCode": 200, "result": { "data": [ { "setSpo2": true, "setBloodPressure": true, "setTemperature": true, "setBody": true, "setInsulin": true, "setSugar": true, "setWater":true }, ... ] } } ``` --- ## 刪除生理資料 ### 指定時間/類型的生理量測數值 ```url POST /phy/delete ``` ### Query Params | 欄位 | 型態 | 預設 | 說明 | | --------- | -------- | -------- |-------- | | measureDate | Y | String | 測量時間 UTC+0 milliseconds | | physiolMeasType | String | Y | 要刪除的數值類型. e.g.: OXYGEN/WEIGHT/WATER/HEART/INSULIN ### Request Body Example ```javascript { "measureDate": 1617154391047, "physiolMeasType": "OXYGEN" } ``` ### Response Body Param | 欄位 | 型態 | 說明 | | -----| -----|-------- | | data| int | 成功刪除筆數 | ### Response Body Example ```javascript { "httpCode": 200, "result": { "data": 0 } } ``` --- ## 查詢最近量測 ### 查詢 ```url GET /phy/recent ``` ### Request Params - 手機使用者 none - 網頁使用者 | 欄位 | 型態 | 預設 | 說明 | | --------- | -------- | -------- |-------- | | householdMemberId | Y | String | householdMemberId | ### Response Body Param | 欄位 | 型態 | 說明 | |---|---|---| |bodyWeight | number | 最新一筆體重資訊| |bmi | number | 最新一筆 bmi 資訊| |fat | number | 最新一筆體脂資訊| |systolic | number | 最新一筆收縮壓資訊| |diastolic | number | 最新一筆舒張壓資訊| |heartRate | number | 最新一筆心跳資訊| |beforeMeals | number | 最新一筆飯前血糖資訊| |afterMeals | number | 最新一筆飯後血糖資訊| |insulin | number | 最新一筆胰島素資訊| |temperature | number | 最新一筆體溫資訊| |oxygen | number | 最新一筆血氧資訊| |waterVolume | number | 最新一筆有記錄的當天喝水量資訊| |muscle | number | 最新一筆肌肉量資訊| |waist | number | 最新一筆腰圍資訊| |hips | number | 最新一筆臀圍資訊| ### Response Body Example ```javascript { "httpCode": 200, "result": { "data": { "bodyWeight": 82.4, "bodyWeightDate": 1642492308534, "bmi": 27.5, "bmiDate": 1642492308534, "fat": 25.0, "fatDate": 1642492308534, "systolic": 138, "systolicDate": 1646115780163, "diastolic": 87, "diastolicDate": 1646115780163, "heartRate": 73, "heartRateDate": 1646115780163, "beforeMeals": 31, "beforeMealsDate": 1642495022144, "afterMeals": 31, "afterMealsDate": 1642495587173, "insulin": 8, "insulinDate": 1642491561000, "temperature": 36.2, "temperatureDate": 1642492155764, "oxygen": 99, "oxygenDate": 1642492175239, "waterVolume": 500, "waterVolumeDate": 1642492227061, "hasPdHistoryRecords": false, "muscle": 32.27, "muscleDate": 1642492308534, "waist": 90, "waistDate": 1642492308534, "hips": 110, "hipsDate": 1642492308534 } } } ``` --- ## 查詢最近量測-含異常資訊 <!-- 須同步修改 更新最近一次生理量測資料(for openVidu) https://hackmd.io/2SAcKmt9SRyDV3WYWmRZ9g#%E6%9B%B4%E6%96%B0%E6%9C%80%E8%BF%91%E4%B8%80%E6%AC%A1%E7%94%9F%E7%90%86%E9%87%8F%E6%B8%AC%E8%B3%87%E6%96%99 --> ### 查詢 ```url GET /phy/recentDetail ``` ### Response Body Param | 欄位 | 型態 | 說明 | |---|---|---| |bodyWeight | number | 最新一筆體重資訊| |bmi | number | 最新一筆 bmi 資訊| |fat | number | 最新一筆體脂資訊| |systolic | number | 最新一筆收縮壓資訊| |diastolic | number | 最新一筆舒張壓資訊| |heartRate | number | 最新一筆心跳資訊| |beforeMeals | number | 最新一筆飯前血糖資訊| |afterMeals | number | 最新一筆飯後血糖資訊| |insulin | number | 最新一筆胰島素資訊| |temperature | number | 最新一筆體溫資訊| |oxygen | number | 最新一筆血氧資訊| |waterVolume | number | 最新一筆有記錄的當天喝水量資訊| |dailyDehydration|number|今日脫水量| |hasPdHistoryRecords|boolean| 往前一個月內是否有上傳腹膜透析紀錄| |abnormalNum | number | 量測值異常的數量| |value | number | 量測值| |isNormal | boolean | 量測值是否異常| |unit | string | 量測值單位| |measureData | number | 量測時間| |resource | String | 資料來源,<br/>MANUAL: 手動輸入<br/>DEVICE: App測量上傳<br/>ALL_IN_ONE: ALL_IN_ONE| |deviceName | String | 量測裝置| |name | String | 姓名| |gender | Integer | 性別| |age | Integer | 年齡| |mobile | String | 電話| |muscle | number | 最新一筆肌肉量資訊| |waist | number | 最新一筆腰圍資訊| |hips | number | 最新一筆臀圍資訊| ### Response Body Example ```javascript { "httpCode": 200, "result": { "data": { "userInfo": { "name": "蘇凱文", "gender": 1, "age": 33, "mobile": "0925309365" }, "bodyWeight": { "value": "100.0", "isNormal": false, "unit": "%", "measureDate": 1622785318397, "resource": "MANUAL", "deviceName": "MMA-1" }, "bmi": { "value": "32.0", "isNormal": false, "measureDate": 1622785318397, "resource": "MANUAL", "deviceName": "MMA-1" }, "fat": { "value": "34.0", "isNormal": false, "unit": "%", "measureDate": 1622785318397, "resource": "MANUAL", "deviceName": "MMA-1" }, "systolic": { "value": "210", "isNormal": false, "unit": "mmHg", "measureDate": 1622522397833, "resource": "MANUAL" }, "diastolic": { "value": "210", "isNormal": false, "unit": "mmHg", "measureDate": 1622522397833, "resource": "MANUAL" }, "heartRate": { "value": "89", "isNormal": true, "unit": "次/分鐘", "measureDate": 1622522397833, "resource": "MANUAL" }, "insulin": { "isNormal": true, "measureDate": 1617154484047 }, "temperature": { "value": "37.6", "isNormal": false, "unit": "度", "measureDate": 1622624296291, "resource": "MANUAL" }, "oxygen": { "value": "99", "isNormal": true, "unit": "%", "measureDate": 1617154391047, "resource": "MANUAL" }, "waterVolume": { "value": "55", "isNormal": true, "unit": "ml", "measureDate": 1617154391047, "resource": "MANUAL" }, "muscle": { "value": "32.27", "isNormal": true, "unit": "kg", "measureData": 1622785318397, "resource": "MANUAL" }, "waist": { "value": "90", "isNormal": true, "unit": "cm", "measureData": 1622785318397, "resource": "MANUAL" }, "hips": { "value": "110", "isNormal": true, "unit": "cm", "measureData": 1622785318397, "resource": "MANUAL" }, "hasPdHistoryRecords": false, "abnormalNum": 6 } } } ``` --- ## 查詢體重BMI體脂肌肉量 ### 查詢 ```url POST /phy/weight ``` ### Query Params | 欄位 | 型態 | 必填 | 說明 | |---|---|---|---| | startAt | timestamp | true | 從(測量時間)| | endAt | timestamp | true | 結束(測量時間)| | householdMemberId | String | false | 若不填則以 Token 為準 | | avg | Int | true | 0:當日 1:日計算 2:月計算 | | pagination | JSON | false | 分頁 | | current | Int | false | 當前頁數| | pageSize | Int | false | 每頁結果數量,-1 為顯示所有| | sorter | JSON | false | 排序欄位, 預設是用 measureDate 以降序排列 | ### Request Body Example ```javascript { "query": { "startAt": "1550448000000", "endAt": "1550799654741", "householdMemberId": "7890bcfd11724a36a7077dc9ade21611", "avg": 1 }, "pagination": { "current": "1", "pageSize": "10" }, "sorter": { "field": "measureDate", "order": "desc" } } ``` ### Response Body Param | 欄位 | 型態 | 說明 | |---|---|---| |bodyWeightAvg | number | 日/月平均體重| |bmiAvg | number | 日/月平均BMI| |fatAvg | number | 日/月平均體脂| |bodyWeightMax | number | 日/月最高體重| |bmiMax | number | 日/月最高BMI| |fatMax | number | 日/月最高體脂| |bodyWeightMin | number | 日/月最低體重| |bmiMin | number | 日/月最低BMI| |fatMin | number | 日/月最低體脂| |resource | string | 資料來源, 僅查詢當日紀錄會回傳.(MANUAL/DEVICE) | |deviceId | string | 設備id | |deviceName | string | 設備名稱 | |muscleAvg | number | 日/月平均肌肉量| |muscleMax | number | 日/月最高肌肉量| |muscleMin | number | 日/月最低肌肉量| |waistAvg | number | 日/月平均腰圍| |waistMax | number | 日/月最高腰圍| |waistMin | number | 日/月最低腰圍| |hipsAvg | number | 日/月平均臀圍| |hipsMax | number | 日/月最高臀圍| |hipsMin | number | 日/月最低臀圍| ### Response Body Example ```javascript { "httpCode": 200, "result": { "data": { "bodyWeightAvg": 71.2, "bodyWeightMax": 71.2, "bodyWeightMin": 71.2, "bmiAvg": 25.5, "bmiMax": 25.5, "bmiMin": 25.5, "fatAvg": 34.0, "fatMax": 34.0, "fatMin": 34.0, "muscleAvg": 32.27, "muscleMax": 32.27, "muscleMin": 32.27, "dataList": [ { "fatMin": 34.0, "bodyWeight": 71.2, "bmi": 25.5, "fat": 34.0, "muscle": 32.27, "waist": 90, "hips": 110, "dateTime": 1607529600000, "resource": "MANUAL", "deviceId": "56E09AE1-DAC1-0C7F-671B-7F31D3FB48C3", "deviceName": "Osmile" } ] }, "pagination": { "total": 1 } } } ``` --- ## 查詢血壓心律 ### 查詢 ```url POST /phy/heart ``` ### Query Params | 欄位 | 型態 | 必填 | 說明 | |---|---|---|---| | startAt | timestamp | true | 從(測量時間)| | endAt | timestamp | true | 結束(測量時間)| | householdMemberId | String | false | 若不填則以 Token 為準 | | avg | Int | true | 0:當日 1:日計算 2:月計算 | | pagination | JSON | false | 分頁 | | current | Int | false | 當前頁數| | pageSize | Int | false | 每頁結果數量,-1 為顯示所有| | sorter | JSON | false | 排序欄位, 預設是用 measureDate 以降序排列 | ### Request Body Example ```javascript { "query": { "startAt": "1550448000000", "endAt": "1550799654741", "householdMemberId": "7890bcfd11724a36a7077dc9ade21611", "avg": 1 }, "pagination": { "current": "1", "pageSize": "10" }, "sorter": { "field": "measureDate", "order": "desc" } } ``` ### Response Body Param | 欄位 | 型態 | 說明 | |---|---|---| |systolicAvg | number | 日/月平均收縮壓| |diastolicAvg | number | 日/月平均舒張壓| |heartRateAvg | number | 日/月平均心律| |systolicMax | number | 日/月最高收縮壓| |diastolicMax | number | 日/月最高舒張壓| |heartRateMax | number | 日/月最高心律| |systolicMin | number | 日/月最低收縮壓| |diastolicMin | number | 日/月最低舒張壓| |heartRateMin | number | 日/月最低心律| |resource | string | 資料來源, 僅查詢當日紀錄會回傳.(MANUAL/DEVICE) | |deviceId | string | 設備id | |deviceName | string | 設備名稱 | ### Response Body Example ```javascript { "httpCode": 200, "result": { "data": { "systolicAvg": 139.8, "systolicMax": 142.5, "systolicMin": 138.5, "diastolicAvg": 85.3, "diastolicMax": 86.0, "diastolicMin": 83.8, "heartRateAvg": 78.4, "heartRateMax": 80.0, "heartRateMin": 75.9, "dataList": [ { "systolic": 142.5, "diastolic": 83.8, "heartRate": 75.9, "dateTime": 1606752000000, "resource": "MANUAL", "deviceId": "56E09AE1-DAC1-0C7F-671B-7F31D3FB48C3", "deviceName": "Osmile" } ] }, "pagination": { "total": 3 } } } ``` --- ## 查詢血糖胰島素 ### 查詢 ```url POST /phy/insulin ``` ### Query Params | 欄位 | 型態 | 必填 | 說明 | |---|---|---|---| | startAt | timestamp | true | 從(測量時間)| | endAt | timestamp | true | 結束(測量時間)| | householdMemberId | String | false | 若不填則以 Token 為準 | | avg | Int | true | 0:當日 1:日計算 2:月計算 | | pagination | JSON | false | 分頁 | | current | Int | false | 當前頁數| | pageSize | Int | false | 每頁結果數量,-1 為顯示所有| | sorter | JSON | false | 排序欄位, 預設是用 measureDate 以降序排列 | ### Request Body Example ```javascript { "query": { "startAt": "1550448000000", "endAt": "1550799654741", "householdMemberId": "7890bcfd11724a36a7077dc9ade21611", "avg": 1 }, "pagination": { "current": "1", "pageSize": "10" }, "sorter": { "field": "measureDate", "order": "desc" } } ``` ### Response Body Param | 欄位 | 型態 | 說明 | |---|---|---| |beforeMealsAvg | number | 日/月平均餐前血糖| |afterMealsAvg | number | 日/月平均餐後血糖| |insulinAvg | number | 日/月平均胰島素| |beforeMealsMax | number | 日/月最高餐前血糖| |afterMealsMax | number | 日/月最高餐後血糖| |insulinMax | number | 日/月最高胰島素| |beforeMealsMin | number | 日/月最低餐前血糖| |afterMealsMin | number | 日/月最低餐後血糖| |insulinMin | number | 日/月最低胰島素| |resource | string | 資料來源, 僅查詢當日紀錄會回傳.(MANUAL/DEVICE) | |timePeriod | int | 血糖記錄時段 enum: [1: “早上”, 2: “中午”, 3: “晚上”, 4: “睡前”] | |timePeriodType | int | 血糖記錄餐別 enum: [10: “早餐”, 11: “早午餐”, 20: “午餐”, 21: “下午茶”, 30: “晚餐”, 31: “點心”, 40: “宵夜”] | |mealPeriodType | string | 血糖量測類型, AC: 空腹, PC: 飯後 | |deviceId | string | 設備id | |deviceName | string | 設備名稱 | ### Response Body Example ```javascript { "httpCode": 200, "result": { "data": { "beforeMealsAvg": 64.5, "beforeMealsMax": 75.0, "beforeMealsMin": 54.0, "afterMealsAvg": 58.2, "afterMealsMax": 111.4, "afterMealsMin": 5.0, "insulinAvg": 83.0, "insulinMax": 90.6, "insulinMin": 75.3, "dataList": [ { "dateTime": 1606752000000, "afterMeals": 111.42857, "insulin": 75.3, "resource": "MANUAL", "timePeriod": 1, "timePeriodType": 10, "mealPeriodType": "PC", "deviceId": "56E09AE1-DAC1-0C7F-671B-7F31D3FB48C3", "deviceName": "Osmile" }, { "dateTime": 1604160000000, "beforeMeals": 54.0, "insulin": 90.6, "resource": "MANUAL", "timePeriod": 2, "timePeriodType": 20, "mealPeriodType": "AC", "deviceId": "56E09AE1-DAC1-0C7F-671B-7F31D3FB48C3", "deviceName": "Osmile" } ] }, "pagination": { "total": 2 } } } ``` --- ## 查詢體溫血氧 ### 查詢 ```url POST /phy/oxygen ``` ### Query Params | 欄位 | 型態 | 必填 | 說明 | |---|---|---|---| | startAt | timestamp | true | 從(測量時間)| | endAt | timestamp | true | 結束(測量時間)| | householdMemberId | String | false | 若不填則以 Token 為準 | | avg | Int | true | 0:當日 1:日計算 2:月計算 | | pagination | JSON | false | 分頁 | | current | Int | false | 當前頁數| | pageSize | Int | false | 每頁結果數量,-1 為顯示所有| | sorter | JSON | false | 排序欄位, 預設是用 measureDate 以降序排列 | ### Request Body Example ```javascript { "query": { "startAt": "1550448000000", "endAt": "1550799654741", "householdMemberId": "7890bcfd11724a36a7077dc9ade21611", "avg": 1 }, "pagination": { "current": "1", "pageSize": "10" }, "sorter": { "field": "measureDate", "order": "desc" } } ``` ### Response Body Param | 欄位 | 型態 | 說明 | |---|---|---| |temperatureAvg | number | 日/月平均體溫| |oxygenAvg | number | 日/月平均血氧| |temperatureMax | number | 日/月最高體溫| |oxygenMax | number | 日/月最高血氧| |temperatureMin | number | 日/月最低體溫| |oxygenMin | number | 日/月最低血氧| |resource | string | 資料來源, 僅查詢當日紀錄會回傳.(MANUAL/DEVICE) | |deviceId | string | 設備id | |deviceName | string | 設備名稱 | ### Response Body Example ```javascript { "httpCode": 200, "result": { "data": { "temperatureAvg": 36.7, "temperatureMax": 38.7, "temperatureMin": 34.5, "oxygenAvg": 96.9, "oxygenMax": 97.6, "oxygenMin": 96.1, "dataList": [ { "dateTime": 1606752000000, "temperature": 36.7, "oxygen": 96.14286, "resource": "MANUAL", "deviceId": "56E09AE1-DAC1-0C7F-671B-7F31D3FB48C3", "deviceName": "Osmile" } ] }, "pagination": { "total": 5 } } } ``` --- ## 查詢喝水量 ### 查詢 ```url POST /phy/water ``` ### Query Params | 欄位 | 型態 | 必填 | 說明 | |---|---|---|---| | startAt | timestamp | true | 從(測量時間)| | endAt | timestamp | true | 結束(測量時間)| | householdMemberId | String | false | 若不填則以 Token 為準 | | avg | Int | true | 0:當日 1:日計算 2:月計算 | | pagination | JSON | false | 分頁 | | current | Int | false | 當前頁數| | pageSize | Int | false | 每頁結果數量,-1 為顯示所有| | sorter | JSON | false | 排序欄位,預設是用 dateTime 以降序排列,排序支援 asc 和 desc 兩種方式,目前只支援 dateTime 排序| ### Request Body Example ```javascript { "query": { "startAt": "1550448000000", "endAt": "1550799654741", "householdMemberId": "7890bcfd11724a36a7077dc9ade21611", "avg": 1 }, "pagination": { "current": "1", "pageSize": "10" }, "sorter": { "field": "dateTime", "order": "desc" } } ``` ### Response Body Param | 欄位 | 型態 | 說明 | |---|---|---| |waterAvg | number | 日/月平均喝水量| |waterMax | number | 日/月最高喝水量| |waterMin | number | 日/月最低喝水量| |waterTotal | number | 日/月累計喝水量| |dataList | | 詳細資料列表| |dateTime | number | 紀錄時間| |waterVolume | number | 喝水量| |resource | string | 資料來源, 僅查詢當日紀錄會回傳.(MANUAL/DEVICE) | ### Response Body Example ```javascript { "httpCode": 200, "result": { "data": { "waterAvg": 1270.0, "waterMax": 5760, "waterMin": 100, "waterTotal": 7620, "dataList": [ { "dateTime": 1606752000000, "waterVolume": 5760, "resource": "MANUAL" }, { "dateTime": 1604160000000, "waterVolume": 240, "resource": "MANUAL" } ] }, "pagination": { "current": 3, "pageSize": 10, "total": 75 }, "sorter": { "field": "dateTime", "order": "asc" } } } ``` --- ## 查詢體溫 ### 查詢 ```url POST /phy/temperature ``` ### Query Params | 欄位 | 型態 | 必填 | 說明 | |---|---|---|---| | startAt | timestamp | true | 從(測量時間)| | endAt | timestamp | true | 結束(測量時間)| | householdMemberId | String | false | 若不填則以 Token 為準 | | avg | Int | true | 0:當日 1:日計算 2:月計算 | | pagination | JSON | false | 分頁 | | current | Int | false | 當前頁數| | pageSize | Int | false | 每頁結果數量,-1 為顯示所有| | sorter | JSON | false | 排序欄位, 預設是用 measureDate 以降序排列 | ### Request Body Example ```javascript { "query": { "startAt": "1550448000000", "endAt": "1550799654741", "householdMemberId": "7890bcfd11724a36a7077dc9ade21611", "avg": 1 }, "pagination": { "current": "1", "pageSize": "10" }, "sorter": { "field": "measureDate", "order": "desc" } } ``` ### Response Body Param | 欄位 | 型態 | 說明 | |---|---|---| |temperatureAvg | number | 日/月平均體溫| |temperatureMax | number | 日/月最高體溫| |temperatureMin | number | 日/月最低體溫| |resource | string | 資料來源, 僅查詢當日紀錄會回傳.(MANUAL/DEVICE) | |deviceId | string | 設備id | |deviceName | string | 設備名稱 | ### Response Body Example ```javascript { "httpCode": 200, "result": { "data": { "temperatureAvg": 36.7, "temperatureMax": 38.7, "temperatureMin": 34.5, "dataList": [ { "dateTime": 1606752000000, "temperature": 36.7, "resource": "MANUAL", "deviceId": "56E09AE1-DAC1-0C7F-671B-7F31D3FB48C3", "deviceName": "Osmile" } ] }, "pagination": { "total": 1 } } } ``` --- ## 查詢血氧 ### 查詢 ```url POST /phy/oxygenOnly ``` ### Query Params | 欄位 | 型態 | 必填 | 說明 | |---|---|---|---| | startAt | timestamp | true | 從(測量時間)| | endAt | timestamp | true | 結束(測量時間)| | householdMemberId | String | false | 若不填則以 Token 為準 | | avg | Int | true | 0:當日 1:日計算 2:月計算 | | pagination | JSON | false | 分頁 | | current | Int | false | 當前頁數| | pageSize | Int | false | 每頁結果數量,-1 為顯示所有| | sorter | JSON | false | 排序欄位, 預設是用 measureDate 以降序排列 | ### Request Body Example ```javascript { "query": { "startAt": "1550448000000", "endAt": "1550799654741", "householdMemberId": "7890bcfd11724a36a7077dc9ade21611", "avg": 1 }, "pagination": { "current": "1", "pageSize": "10" }, "sorter": { "field": "measureDate", "order": "desc" } } ``` ### Response Body Param | 欄位 | 型態 | 說明 | |---|---|---| |oxygenAvg | number | 日/月平均血氧| |oxygenMax | number | 日/月最高血氧| |oxygenMin | number | 日/月最低血氧| |resource | string | 資料來源, 僅查詢當日紀錄會回傳.(MANUAL/DEVICE) | |deviceId | string | 設備id | |deviceName | string | 設備名稱 | ### Response Body Example ```javascript { "httpCode": 200, "result": { "data": { "oxygenAvg": 96.9, "oxygenMax": 97.6, "oxygenMin": 96.1, "dataList": [ { "dateTime": 1606752000000, "oxygen": 96.14286, "resource": "MANUAL", "deviceId": "56E09AE1-DAC1-0C7F-671B-7F31D3FB48C3", "deviceName": "Osmile" } ] }, "pagination": { "total": 1 } } } ``` --- ## 查詢血糖各餐前後比較 ### 查詢 ```url POST /phy/sugar-delta ``` ### Query Params | 欄位 | 型態 | 必填 | 說明 | |---|---|---|---| | startAt | timestamp | true | 從(測量時間)| | endAt | timestamp | true | 結束(測量時間)| | householdMemberId | String | false | 若不填則以 Token 為準 | | avg | Int | true | 0:當日 1:日計算 2:月計算 | ### Request Body Example ```javascript { "startAt": "1609430400000", "endAt": "1612108799000", "householdMemberId": null, "avg": 2 } ``` ### Response Body Param | 欄位 | 型態 | 說明 | |---|---|---| |timePeriodType | int | 血糖記錄餐別 enum: [10: “早餐”, 11: “早午餐”, 20: “午餐”, 21: “下午茶”, 30: “晚餐”, 31: “點心”, 40: “宵夜”] | |beforeMeals | number | 餐前血糖| |afterMeals | number | 餐後血糖| |delta | number | 餐後-餐前差異值,若為null表示此餐別缺少餐前或餐後記錄而無法比較 | ### Response Body Example ```javascript { "httpCode": 200, "result": { "data": [ { "timePeriodType": 10, "beforeMeals": 78.6, "afterMeals": 105.6, "delta": 27.0 }, { "timePeriodType": 20, "beforeMeals": 85.4, "afterMeals": 121.1, "delta": 35.7 }, { "timePeriodType": 30, "beforeMeals": 81.4, "afterMeals": 87.3, "delta": 5.9 } ] } } ```

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully