@ovok/native 1.6.2 → 1.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. package/lib/commonjs/modules/background-sync/android-background-sync.js +6 -1
  2. package/lib/commonjs/modules/background-sync/android-background-sync.js.map +1 -1
  3. package/lib/commonjs/modules/background-sync/android-bluetooth-foreground-service.js +7 -1
  4. package/lib/commonjs/modules/background-sync/android-bluetooth-foreground-service.js.map +1 -1
  5. package/lib/commonjs/modules/bt-management/components/android-bluetooth-foreground-service.js +7 -1
  6. package/lib/commonjs/modules/bt-management/components/android-bluetooth-foreground-service.js.map +1 -1
  7. package/lib/commonjs/modules/bt-management/components/bluetooth-device-picker.js +108 -39
  8. package/lib/commonjs/modules/bt-management/components/bluetooth-device-picker.js.map +1 -1
  9. package/lib/commonjs/modules/bt-management/constants/measurement-field-catalog.js +15 -7
  10. package/lib/commonjs/modules/bt-management/constants/measurement-field-catalog.js.map +1 -1
  11. package/lib/commonjs/modules/data-sync/components/android/android-health-sync.js.map +1 -1
  12. package/lib/commonjs/modules/data-sync/components/apple/apple-health-sync.js.map +1 -1
  13. package/lib/commonjs/modules/data-sync/index.js +11 -0
  14. package/lib/commonjs/modules/data-sync/index.js.map +1 -1
  15. package/lib/commonjs/modules/data-sync/services/android-health-sync-service.js.map +1 -1
  16. package/lib/commonjs/modules/data-sync/services/apple-health-sync-service.js.map +1 -1
  17. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js +3 -2
  18. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  19. package/lib/commonjs/modules/data-sync/services/managers/data-processor.js +25 -7
  20. package/lib/commonjs/modules/data-sync/services/managers/data-processor.js.map +1 -1
  21. package/lib/commonjs/modules/data-sync/services/managers/sync-progress-manager.js.map +1 -1
  22. package/lib/commonjs/modules/data-sync/types/get-data-from-provider-props.js +4 -0
  23. package/lib/commonjs/modules/data-sync/types/get-total-count-props.js +4 -0
  24. package/lib/commonjs/modules/data-sync/types/health-data.js +12 -0
  25. package/lib/commonjs/modules/data-sync/types/health-data.js.map +1 -0
  26. package/lib/commonjs/modules/data-sync/types/health-sync-keys.js +39 -0
  27. package/lib/commonjs/modules/data-sync/types/health-sync-keys.js.map +1 -1
  28. package/lib/commonjs/modules/data-sync/utils/convert-generic-health-data.js +232 -0
  29. package/lib/commonjs/modules/data-sync/utils/convert-generic-health-data.js.map +1 -0
  30. package/lib/commonjs/modules/data-sync/utils/convert-records-to-observation.js +27 -10
  31. package/lib/commonjs/modules/data-sync/utils/convert-records-to-observation.js.map +1 -1
  32. package/lib/commonjs/modules/data-sync/utils/convert-samples-to-observation.js +22 -6
  33. package/lib/commonjs/modules/data-sync/utils/convert-samples-to-observation.js.map +1 -1
  34. package/lib/commonjs/modules/data-sync/utils/generate-observation-entry.js +70 -32
  35. package/lib/commonjs/modules/data-sync/utils/generate-observation-entry.js.map +1 -1
  36. package/lib/commonjs/modules/data-sync/utils/get-health-record-sync-id.js +35 -0
  37. package/lib/commonjs/modules/data-sync/utils/get-health-record-sync-id.js.map +1 -0
  38. package/lib/commonjs/modules/data-sync/utils/get-latest-observation-dates-by-code.js.map +1 -1
  39. package/lib/commonjs/modules/data-sync/utils/get-records-from-health-connect.js +90 -14
  40. package/lib/commonjs/modules/data-sync/utils/get-records-from-health-connect.js.map +1 -1
  41. package/lib/commonjs/modules/data-sync/utils/get-samples-from-health.js +100 -14
  42. package/lib/commonjs/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
  43. package/lib/commonjs/modules/data-sync/utils/get-total-records-count.js +12 -1
  44. package/lib/commonjs/modules/data-sync/utils/get-total-records-count.js.map +1 -1
  45. package/lib/commonjs/modules/data-sync/utils/get-total-samples-count.js +21 -17
  46. package/lib/commonjs/modules/data-sync/utils/get-total-samples-count.js.map +1 -1
  47. package/lib/commonjs/modules/data-sync/utils/group-sleep-samples.js +30 -0
  48. package/lib/commonjs/modules/data-sync/utils/group-sleep-samples.js.map +1 -0
  49. package/lib/commonjs/modules/ui/components/urine-test-result.js +6 -4
  50. package/lib/commonjs/modules/ui/components/urine-test-result.js.map +1 -1
  51. package/lib/module/modules/background-sync/android-background-sync.js +6 -1
  52. package/lib/module/modules/background-sync/android-background-sync.js.map +1 -1
  53. package/lib/module/modules/background-sync/android-bluetooth-foreground-service.js +7 -1
  54. package/lib/module/modules/background-sync/android-bluetooth-foreground-service.js.map +1 -1
  55. package/lib/module/modules/bt-management/components/android-bluetooth-foreground-service.js +7 -1
  56. package/lib/module/modules/bt-management/components/android-bluetooth-foreground-service.js.map +1 -1
  57. package/lib/module/modules/bt-management/components/bluetooth-device-picker.js +109 -41
  58. package/lib/module/modules/bt-management/components/bluetooth-device-picker.js.map +1 -1
  59. package/lib/module/modules/bt-management/constants/measurement-field-catalog.js +15 -7
  60. package/lib/module/modules/bt-management/constants/measurement-field-catalog.js.map +1 -1
  61. package/lib/module/modules/data-sync/components/android/android-health-sync.js.map +1 -1
  62. package/lib/module/modules/data-sync/components/apple/apple-health-sync.js.map +1 -1
  63. package/lib/module/modules/data-sync/index.js +1 -0
  64. package/lib/module/modules/data-sync/index.js.map +1 -1
  65. package/lib/module/modules/data-sync/services/android-health-sync-service.js.map +1 -1
  66. package/lib/module/modules/data-sync/services/apple-health-sync-service.js.map +1 -1
  67. package/lib/module/modules/data-sync/services/base-health-sync-service.js +3 -2
  68. package/lib/module/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  69. package/lib/module/modules/data-sync/services/managers/data-processor.js +25 -7
  70. package/lib/module/modules/data-sync/services/managers/data-processor.js.map +1 -1
  71. package/lib/module/modules/data-sync/services/managers/sync-progress-manager.js.map +1 -1
  72. package/lib/module/modules/data-sync/types/get-data-from-provider-props.js +2 -0
  73. package/lib/module/modules/data-sync/types/get-total-count-props.js +2 -0
  74. package/lib/module/modules/data-sync/types/health-data.js +7 -0
  75. package/lib/module/modules/data-sync/types/health-data.js.map +1 -0
  76. package/lib/module/modules/data-sync/types/health-sync-keys.js +38 -1
  77. package/lib/module/modules/data-sync/types/health-sync-keys.js.map +1 -1
  78. package/lib/module/modules/data-sync/utils/convert-generic-health-data.js +227 -0
  79. package/lib/module/modules/data-sync/utils/convert-generic-health-data.js.map +1 -0
  80. package/lib/module/modules/data-sync/utils/convert-records-to-observation.js +28 -11
  81. package/lib/module/modules/data-sync/utils/convert-records-to-observation.js.map +1 -1
  82. package/lib/module/modules/data-sync/utils/convert-samples-to-observation.js +23 -7
  83. package/lib/module/modules/data-sync/utils/convert-samples-to-observation.js.map +1 -1
  84. package/lib/module/modules/data-sync/utils/generate-observation-entry.js +70 -32
  85. package/lib/module/modules/data-sync/utils/generate-observation-entry.js.map +1 -1
  86. package/lib/module/modules/data-sync/utils/get-health-record-sync-id.js +30 -0
  87. package/lib/module/modules/data-sync/utils/get-health-record-sync-id.js.map +1 -0
  88. package/lib/module/modules/data-sync/utils/get-latest-observation-dates-by-code.js.map +1 -1
  89. package/lib/module/modules/data-sync/utils/get-records-from-health-connect.js +92 -16
  90. package/lib/module/modules/data-sync/utils/get-records-from-health-connect.js.map +1 -1
  91. package/lib/module/modules/data-sync/utils/get-samples-from-health.js +100 -14
  92. package/lib/module/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
  93. package/lib/module/modules/data-sync/utils/get-total-records-count.js +12 -1
  94. package/lib/module/modules/data-sync/utils/get-total-records-count.js.map +1 -1
  95. package/lib/module/modules/data-sync/utils/get-total-samples-count.js +20 -16
  96. package/lib/module/modules/data-sync/utils/get-total-samples-count.js.map +1 -1
  97. package/lib/module/modules/data-sync/utils/group-sleep-samples.js +25 -0
  98. package/lib/module/modules/data-sync/utils/group-sleep-samples.js.map +1 -0
  99. package/lib/module/modules/ui/components/urine-test-result.js +6 -4
  100. package/lib/module/modules/ui/components/urine-test-result.js.map +1 -1
  101. package/lib/typescript/commonjs/src/modules/background-sync/android-background-sync.d.ts +9 -10
  102. package/lib/typescript/commonjs/src/modules/background-sync/android-background-sync.d.ts.map +1 -1
  103. package/lib/typescript/commonjs/src/modules/background-sync/android-bluetooth-foreground-service.d.ts.map +1 -1
  104. package/lib/typescript/commonjs/src/modules/bt-management/components/android-bluetooth-foreground-service.d.ts.map +1 -1
  105. package/lib/typescript/commonjs/src/modules/bt-management/components/bluetooth-device-picker.d.ts +13 -4
  106. package/lib/typescript/commonjs/src/modules/bt-management/components/bluetooth-device-picker.d.ts.map +1 -1
  107. package/lib/typescript/commonjs/src/modules/bt-management/constants/measurement-field-catalog.d.ts +4 -0
  108. package/lib/typescript/commonjs/src/modules/bt-management/constants/measurement-field-catalog.d.ts.map +1 -1
  109. package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-sync.d.ts.map +1 -1
  110. package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-sync.d.ts.map +1 -1
  111. package/lib/typescript/commonjs/src/modules/data-sync/index.d.ts +1 -0
  112. package/lib/typescript/commonjs/src/modules/data-sync/index.d.ts.map +1 -1
  113. package/lib/typescript/commonjs/src/modules/data-sync/services/android-health-sync-service.d.ts +4 -4
  114. package/lib/typescript/commonjs/src/modules/data-sync/services/android-health-sync-service.d.ts.map +1 -1
  115. package/lib/typescript/commonjs/src/modules/data-sync/services/apple-health-sync-service.d.ts +5 -5
  116. package/lib/typescript/commonjs/src/modules/data-sync/services/apple-health-sync-service.d.ts.map +1 -1
  117. package/lib/typescript/commonjs/src/modules/data-sync/services/base-health-sync-service.d.ts +1 -3
  118. package/lib/typescript/commonjs/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  119. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts +9 -10
  120. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
  121. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +6 -6
  122. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-progress-manager.d.ts.map +1 -1
  123. package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-authorization-provider-props.d.ts +2 -2
  124. package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-authorization-provider-props.d.ts.map +1 -1
  125. package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-sync-props.d.ts +2 -2
  126. package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-sync-props.d.ts.map +1 -1
  127. package/lib/typescript/commonjs/src/modules/data-sync/types/convert-data-props.d.ts +6 -2
  128. package/lib/typescript/commonjs/src/modules/data-sync/types/convert-data-props.d.ts.map +1 -1
  129. package/lib/typescript/commonjs/src/modules/data-sync/types/get-data-from-provider-props.d.ts +2 -0
  130. package/lib/typescript/commonjs/src/modules/data-sync/types/get-data-from-provider-props.d.ts.map +1 -1
  131. package/lib/typescript/commonjs/src/modules/data-sync/types/get-total-count-props.d.ts +2 -0
  132. package/lib/typescript/commonjs/src/modules/data-sync/types/get-total-count-props.d.ts.map +1 -1
  133. package/lib/typescript/commonjs/src/modules/data-sync/types/health-authorization-status.d.ts +3 -3
  134. package/lib/typescript/commonjs/src/modules/data-sync/types/health-authorization-status.d.ts.map +1 -1
  135. package/lib/typescript/commonjs/src/modules/data-sync/types/health-data.d.ts +14 -0
  136. package/lib/typescript/commonjs/src/modules/data-sync/types/health-data.d.ts.map +1 -0
  137. package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-keys.d.ts +19 -1
  138. package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-keys.d.ts.map +1 -1
  139. package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-props.d.ts +7 -5
  140. package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-props.d.ts.map +1 -1
  141. package/lib/typescript/commonjs/src/modules/data-sync/types/sync-progress.d.ts +2 -2
  142. package/lib/typescript/commonjs/src/modules/data-sync/types/sync-progress.d.ts.map +1 -1
  143. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-generic-health-data.d.ts +9 -0
  144. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-generic-health-data.d.ts.map +1 -0
  145. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-records-to-observation.d.ts +1 -2
  146. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-records-to-observation.d.ts.map +1 -1
  147. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-samples-to-observation.d.ts +1 -2
  148. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-samples-to-observation.d.ts.map +1 -1
  149. package/lib/typescript/commonjs/src/modules/data-sync/utils/generate-observation-entry.d.ts +9 -2
  150. package/lib/typescript/commonjs/src/modules/data-sync/utils/generate-observation-entry.d.ts.map +1 -1
  151. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-health-record-sync-id.d.ts +7 -0
  152. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-health-record-sync-id.d.ts.map +1 -0
  153. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-latest-observation-dates-by-code.d.ts +3 -3
  154. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-latest-observation-dates-by-code.d.ts.map +1 -1
  155. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-latest-valid-start-date.d.ts +2 -2
  156. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-latest-valid-start-date.d.ts.map +1 -1
  157. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-records-from-health-connect.d.ts +6 -8
  158. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-records-from-health-connect.d.ts.map +1 -1
  159. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts +20 -4
  160. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
  161. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-total-records-count.d.ts +1 -1
  162. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-total-records-count.d.ts.map +1 -1
  163. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-total-samples-count.d.ts +3 -8
  164. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-total-samples-count.d.ts.map +1 -1
  165. package/lib/typescript/commonjs/src/modules/data-sync/utils/group-sleep-samples.d.ts +2 -0
  166. package/lib/typescript/commonjs/src/modules/data-sync/utils/group-sleep-samples.d.ts.map +1 -0
  167. package/lib/typescript/commonjs/src/modules/ui/components/urine-test-result.d.ts.map +1 -1
  168. package/lib/typescript/module/src/modules/background-sync/android-background-sync.d.ts +9 -10
  169. package/lib/typescript/module/src/modules/background-sync/android-background-sync.d.ts.map +1 -1
  170. package/lib/typescript/module/src/modules/background-sync/android-bluetooth-foreground-service.d.ts.map +1 -1
  171. package/lib/typescript/module/src/modules/bt-management/components/android-bluetooth-foreground-service.d.ts.map +1 -1
  172. package/lib/typescript/module/src/modules/bt-management/components/bluetooth-device-picker.d.ts +13 -4
  173. package/lib/typescript/module/src/modules/bt-management/components/bluetooth-device-picker.d.ts.map +1 -1
  174. package/lib/typescript/module/src/modules/bt-management/constants/measurement-field-catalog.d.ts +4 -0
  175. package/lib/typescript/module/src/modules/bt-management/constants/measurement-field-catalog.d.ts.map +1 -1
  176. package/lib/typescript/module/src/modules/data-sync/components/android/android-health-sync.d.ts.map +1 -1
  177. package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-sync.d.ts.map +1 -1
  178. package/lib/typescript/module/src/modules/data-sync/index.d.ts +1 -0
  179. package/lib/typescript/module/src/modules/data-sync/index.d.ts.map +1 -1
  180. package/lib/typescript/module/src/modules/data-sync/services/android-health-sync-service.d.ts +4 -4
  181. package/lib/typescript/module/src/modules/data-sync/services/android-health-sync-service.d.ts.map +1 -1
  182. package/lib/typescript/module/src/modules/data-sync/services/apple-health-sync-service.d.ts +5 -5
  183. package/lib/typescript/module/src/modules/data-sync/services/apple-health-sync-service.d.ts.map +1 -1
  184. package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts +1 -3
  185. package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  186. package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts +9 -10
  187. package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
  188. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +6 -6
  189. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-progress-manager.d.ts.map +1 -1
  190. package/lib/typescript/module/src/modules/data-sync/types/apple-health-authorization-provider-props.d.ts +2 -2
  191. package/lib/typescript/module/src/modules/data-sync/types/apple-health-authorization-provider-props.d.ts.map +1 -1
  192. package/lib/typescript/module/src/modules/data-sync/types/apple-health-sync-props.d.ts +2 -2
  193. package/lib/typescript/module/src/modules/data-sync/types/apple-health-sync-props.d.ts.map +1 -1
  194. package/lib/typescript/module/src/modules/data-sync/types/convert-data-props.d.ts +6 -2
  195. package/lib/typescript/module/src/modules/data-sync/types/convert-data-props.d.ts.map +1 -1
  196. package/lib/typescript/module/src/modules/data-sync/types/get-data-from-provider-props.d.ts +2 -0
  197. package/lib/typescript/module/src/modules/data-sync/types/get-data-from-provider-props.d.ts.map +1 -1
  198. package/lib/typescript/module/src/modules/data-sync/types/get-total-count-props.d.ts +2 -0
  199. package/lib/typescript/module/src/modules/data-sync/types/get-total-count-props.d.ts.map +1 -1
  200. package/lib/typescript/module/src/modules/data-sync/types/health-authorization-status.d.ts +3 -3
  201. package/lib/typescript/module/src/modules/data-sync/types/health-authorization-status.d.ts.map +1 -1
  202. package/lib/typescript/module/src/modules/data-sync/types/health-data.d.ts +14 -0
  203. package/lib/typescript/module/src/modules/data-sync/types/health-data.d.ts.map +1 -0
  204. package/lib/typescript/module/src/modules/data-sync/types/health-sync-keys.d.ts +19 -1
  205. package/lib/typescript/module/src/modules/data-sync/types/health-sync-keys.d.ts.map +1 -1
  206. package/lib/typescript/module/src/modules/data-sync/types/health-sync-props.d.ts +7 -5
  207. package/lib/typescript/module/src/modules/data-sync/types/health-sync-props.d.ts.map +1 -1
  208. package/lib/typescript/module/src/modules/data-sync/types/sync-progress.d.ts +2 -2
  209. package/lib/typescript/module/src/modules/data-sync/types/sync-progress.d.ts.map +1 -1
  210. package/lib/typescript/module/src/modules/data-sync/utils/convert-generic-health-data.d.ts +9 -0
  211. package/lib/typescript/module/src/modules/data-sync/utils/convert-generic-health-data.d.ts.map +1 -0
  212. package/lib/typescript/module/src/modules/data-sync/utils/convert-records-to-observation.d.ts +1 -2
  213. package/lib/typescript/module/src/modules/data-sync/utils/convert-records-to-observation.d.ts.map +1 -1
  214. package/lib/typescript/module/src/modules/data-sync/utils/convert-samples-to-observation.d.ts +1 -2
  215. package/lib/typescript/module/src/modules/data-sync/utils/convert-samples-to-observation.d.ts.map +1 -1
  216. package/lib/typescript/module/src/modules/data-sync/utils/generate-observation-entry.d.ts +9 -2
  217. package/lib/typescript/module/src/modules/data-sync/utils/generate-observation-entry.d.ts.map +1 -1
  218. package/lib/typescript/module/src/modules/data-sync/utils/get-health-record-sync-id.d.ts +7 -0
  219. package/lib/typescript/module/src/modules/data-sync/utils/get-health-record-sync-id.d.ts.map +1 -0
  220. package/lib/typescript/module/src/modules/data-sync/utils/get-latest-observation-dates-by-code.d.ts +3 -3
  221. package/lib/typescript/module/src/modules/data-sync/utils/get-latest-observation-dates-by-code.d.ts.map +1 -1
  222. package/lib/typescript/module/src/modules/data-sync/utils/get-latest-valid-start-date.d.ts +2 -2
  223. package/lib/typescript/module/src/modules/data-sync/utils/get-latest-valid-start-date.d.ts.map +1 -1
  224. package/lib/typescript/module/src/modules/data-sync/utils/get-records-from-health-connect.d.ts +6 -8
  225. package/lib/typescript/module/src/modules/data-sync/utils/get-records-from-health-connect.d.ts.map +1 -1
  226. package/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts +20 -4
  227. package/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
  228. package/lib/typescript/module/src/modules/data-sync/utils/get-total-records-count.d.ts +1 -1
  229. package/lib/typescript/module/src/modules/data-sync/utils/get-total-records-count.d.ts.map +1 -1
  230. package/lib/typescript/module/src/modules/data-sync/utils/get-total-samples-count.d.ts +3 -8
  231. package/lib/typescript/module/src/modules/data-sync/utils/get-total-samples-count.d.ts.map +1 -1
  232. package/lib/typescript/module/src/modules/data-sync/utils/group-sleep-samples.d.ts +2 -0
  233. package/lib/typescript/module/src/modules/data-sync/utils/group-sleep-samples.d.ts.map +1 -0
  234. package/lib/typescript/module/src/modules/ui/components/urine-test-result.d.ts.map +1 -1
  235. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"names":["recordOvokDuration","recordOvokMetric","withOvokSpan","isSyncRetryCancelled","withSyncRetries","DataProcessor","StorageManager","SyncProgressManager","SyncStateManager","BaseHealthSyncService","constructor","props","client","patientId","dataToSync","onSyncError","progressManager","updateProgress","stateManager","storageManager","getProviderName","dataProcessor","chunkSize","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","startSync","once","provider","runSync","isInitialized","Error","resume","setNotStartedStatuses","initialDataFetched","initializeSync","processAllDataTypes","setPauseStatuses","pauseReason","error","stopSync","resetAll","reset","shouldStopSync","pauseSync","reason","pause","latestObservationDates","getLatestObservationDates","calculateTotalCounts","key","Object","keys","measurementTypeKey","data","getDataForMeasurementType","latestValidStartDate","getLatestValidStartDate","totalCount","getTotalRecordsCountForType","setTotalObservations","setStatus","syncDataByType","hasAnchor","observationBodies","currentHasAnchor","anchors","getObservationBodiesForType","entries","generateObservationEntries","length","startedAt","Date","now","result","saveObservations","addResult","incrementSyncedObservations","saveAnchors"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/services/base-health-sync-service.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["recordOvokDuration","recordOvokMetric","withOvokSpan","isSyncRetryCancelled","withSyncRetries","DataProcessor","StorageManager","SyncProgressManager","SyncStateManager","BaseHealthSyncService","constructor","props","client","patientId","dataToSync","onSyncError","progressManager","updateProgress","stateManager","storageManager","getProviderName","dataProcessor","chunkSize","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","startSync","once","provider","runSync","isInitialized","Error","resume","setNotStartedStatuses","initialDataFetched","initializeSync","processAllDataTypes","setPauseStatuses","pauseReason","error","stopSync","resetAll","reset","shouldStopSync","pauseSync","reason","pause","latestObservationDates","getLatestObservationDates","calculateTotalCounts","key","Object","keys","measurementTypeKey","data","getDataForMeasurementType","latestValidStartDate","getLatestValidStartDate","totalCount","getTotalRecordsCountForType","setTotalObservations","setStatus","syncDataByType","hasAnchor","observationBodies","observationSyncIds","currentHasAnchor","anchors","getObservationBodiesForType","entries","generateObservationEntries","length","startedAt","Date","now","result","saveObservations","addResult","incrementSyncedObservations","saveAnchors"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/services/base-health-sync-service.ts"],"mappings":"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","ignoreList":[]}
@@ -1,9 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  import { MeasurementTypeKey } from "@ovok/core";
4
+ import { getHealthDataMode, HealthDataType } from "../../types/health-sync-keys.js";
4
5
  import { generateObservationEntry } from "../../utils/generate-observation-entry.js";
6
+ import { getHealthRecordSyncId } from "../../utils/get-health-record-sync-id.js";
5
7
  import { getLatestObservationDatesByCode } from "../../utils/get-latest-observation-dates-by-code.js";
6
8
  import { getLatestValidStartDate } from "../../utils/get-latest-valid-start-date.js";
9
+ import { groupSleepSamples } from "../../utils/group-sleep-samples.js";
7
10
  export class DataProcessor {
8
11
  constructor(client, patientId, provider, chunkSize, storageManager, getTotalCountsFunction, getDataFromProviderFunction, getConverterFunction) {
9
12
  this.client = client;
@@ -27,7 +30,8 @@ export class DataProcessor {
27
30
  provider: this.provider
28
31
  });
29
32
  }
30
- async getTotalRecordsCountForType(data, latestValidStartDate) {
33
+ async getTotalRecordsCountForType(measurementTypeKey, data, latestValidStartDate) {
34
+ const mode = getHealthDataMode(measurementTypeKey, data.mode);
31
35
  const totalCounts = await Promise.all(data.typeIdentifiers?.map(async ({
32
36
  typeIdentifier
33
37
  }) => {
@@ -35,12 +39,18 @@ export class DataProcessor {
35
39
  return this.getTotalCountsFunction({
36
40
  typeIdentifier: typeIdentifier,
37
41
  startDate: latestValidStartDate?.toISOString(),
38
- anchor
42
+ anchor,
43
+ mode
39
44
  });
40
45
  }));
41
46
  return totalCounts.reduce((acc, count) => acc + count, 0);
42
47
  }
43
48
  async getObservationBodiesForType(measurementTypeKey, data, latestValidStartDate) {
49
+ const mode = getHealthDataMode(measurementTypeKey, data.mode);
50
+ const typeIdentifierCodes = Object.fromEntries(data.typeIdentifiers.map(({
51
+ typeIdentifier,
52
+ code
53
+ }) => [String(typeIdentifier), String(code)]));
44
54
  const results = await Promise.all(data.typeIdentifiers?.map(async ({
45
55
  typeIdentifier
46
56
  }) => {
@@ -49,12 +59,13 @@ export class DataProcessor {
49
59
  typeIdentifier: typeIdentifier,
50
60
  startDate: latestValidStartDate?.toISOString(),
51
61
  anchor,
52
- chunkSize: this.chunkSize
62
+ chunkSize: this.chunkSize,
63
+ mode
53
64
  });
54
65
  }));
55
66
  const newAnchors = results.map(result => result.anchor).flat().filter(Boolean);
56
67
  const allData = results.flatMap(result => result.data);
57
- const dataGroups = this.provider === "apple-health" && measurementTypeKey === MeasurementTypeKey.bloodPressure ? Array.from(allData.reduce((groups, sample) => {
68
+ const dataGroups = this.provider === "apple-health" && measurementTypeKey === HealthDataType.sleep ? groupSleepSamples(allData) : this.provider === "apple-health" && measurementTypeKey === MeasurementTypeKey.bloodPressure ? Array.from(allData.reduce((groups, sample) => {
58
69
  const value = sample;
59
70
  const key = `${new Date(value.startDate ?? 0).getTime()}:${new Date(value.endDate ?? value.startDate ?? 0).getTime()}`;
60
71
  const group = groups.get(key) ?? [];
@@ -65,18 +76,25 @@ export class DataProcessor {
65
76
  const observationBodies = await Promise.all(dataGroups.map(group => this.getConverterFunction({
66
77
  data: group,
67
78
  client: this.client,
68
- measurementTypeKey
79
+ patientId: this.patientId,
80
+ measurementTypeKey,
81
+ typeIdentifier: data.typeIdentifiers?.length === 1 ? String(data.typeIdentifiers[0]?.typeIdentifier) : undefined,
82
+ mode,
83
+ typeIdentifierCodes
69
84
  })));
85
+ const observationSyncIds = dataGroups.map(group => getHealthRecordSyncId(group[0], measurementTypeKey));
70
86
  return {
71
87
  observationBodies,
88
+ observationSyncIds,
72
89
  hasAnchor: newAnchors.length > 0,
73
90
  anchors: newAnchors
74
91
  };
75
92
  }
76
- generateObservationEntries(observationBodies) {
93
+ generateObservationEntries(observationBodies, observationSyncIds) {
77
94
  return generateObservationEntry({
78
95
  groupedObservationBodies: observationBodies,
79
- provider: this.provider
96
+ provider: this.provider,
97
+ groupedObservationSyncIds: observationSyncIds
80
98
  });
81
99
  }
82
100
  getLatestValidStartDate(latestObservationDates, data) {
@@ -1 +1 @@
1
- {"version":3,"names":["MeasurementTypeKey","generateObservationEntry","getLatestObservationDatesByCode","getLatestValidStartDate","DataProcessor","constructor","client","patientId","provider","chunkSize","storageManager","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","extractCodes","dataToSync","Object","values","flatMap","data","typeIdentifiers","map","identifier","code","getLatestObservationDates","codes","getTotalRecordsCountForType","latestValidStartDate","totalCounts","Promise","all","typeIdentifier","anchor","getAnchor","startDate","toISOString","reduce","acc","count","getObservationBodiesForType","measurementTypeKey","results","newAnchors","result","flat","filter","Boolean","allData","dataGroups","bloodPressure","Array","from","groups","sample","value","key","Date","getTime","endDate","group","get","push","set","Map","observationBodies","hasAnchor","length","anchors","generateObservationEntries","groupedObservationBodies","latestObservationDates"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/data-processor.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["MeasurementTypeKey","getHealthDataMode","HealthDataType","generateObservationEntry","getHealthRecordSyncId","getLatestObservationDatesByCode","getLatestValidStartDate","groupSleepSamples","DataProcessor","constructor","client","patientId","provider","chunkSize","storageManager","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","extractCodes","dataToSync","Object","values","flatMap","data","typeIdentifiers","map","identifier","code","getLatestObservationDates","codes","getTotalRecordsCountForType","measurementTypeKey","latestValidStartDate","mode","totalCounts","Promise","all","typeIdentifier","anchor","getAnchor","startDate","toISOString","reduce","acc","count","getObservationBodiesForType","typeIdentifierCodes","fromEntries","String","results","newAnchors","result","flat","filter","Boolean","allData","dataGroups","sleep","bloodPressure","Array","from","groups","sample","value","key","Date","getTime","endDate","group","get","push","set","Map","observationBodies","length","undefined","observationSyncIds","hasAnchor","anchors","generateObservationEntries","groupedObservationBodies","groupedObservationSyncIds","latestObservationDates"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/data-processor.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["defaultSyncData","syncedObservations","totalObservations","status","SyncProgressManager","syncData","constructor","updateProgress","dataToSync","key","Object","keys","measurementTypeKey","setPauseStatuses","reason","currentStatus","getStatus","setStatus","setNotStartedStatuses","getProgress","done","total","setTotalObservations","notifyProgress","incrementSyncedObservations","count","undefined","resetAll","forEach","progress"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/sync-progress-manager.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["defaultSyncData","syncedObservations","totalObservations","status","SyncProgressManager","syncData","constructor","updateProgress","dataToSync","key","Object","keys","measurementTypeKey","setPauseStatuses","reason","currentStatus","getStatus","setStatus","setNotStartedStatuses","getProgress","done","total","setTotalObservations","notifyProgress","incrementSyncedObservations","count","undefined","resetAll","forEach","progress"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/sync-progress-manager.ts"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,4 @@
1
1
  "use strict";
2
+
3
+ export {};
2
4
  //# sourceMappingURL=get-data-from-provider-props.js.map
@@ -1,2 +1,4 @@
1
1
  "use strict";
2
+
3
+ export {};
2
4
  //# sourceMappingURL=get-total-count-props.js.map
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ export const isAggregatedHealthData = value => {
4
+ const candidate = value;
5
+ return candidate?.kind === "daily-total" || candidate?.kind === "daily-summary";
6
+ };
7
+ //# sourceMappingURL=health-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isAggregatedHealthData","value","candidate","kind"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/types/health-data.ts"],"mappings":";;AAaA,OAAO,MAAMA,sBAAsB,GACjCC,KAAc,IACoB;EAClC,MAAMC,SAAS,GAAGD,KAAkD;EAEpE,OACEC,SAAS,EAAEC,IAAI,KAAK,aAAa,IAAID,SAAS,EAAEC,IAAI,KAAK,eAAe;AAE5E,CAAC","ignoreList":[]}
@@ -1,4 +1,41 @@
1
1
  "use strict";
2
2
 
3
- export {};
3
+ import { MeasurementTypeKey } from "@ovok/core";
4
+ /** Health data that is not represented by a core measurement service. */
5
+ var HealthDataType = /*#__PURE__*/function (HealthDataType) {
6
+ HealthDataType["height"] = "height";
7
+ HealthDataType["bodyFatPercentage"] = "body-fat-percentage";
8
+ HealthDataType["bodyMassIndex"] = "body-mass-index";
9
+ HealthDataType["leanBodyMass"] = "lean-body-mass";
10
+ HealthDataType["distance"] = "distance";
11
+ HealthDataType["activeEnergy"] = "active-energy";
12
+ HealthDataType["flightsClimbed"] = "flights-climbed";
13
+ HealthDataType["exerciseMinutes"] = "exercise-minutes";
14
+ HealthDataType["heartRateSummary"] = "heart-rate-summary";
15
+ HealthDataType["sleep"] = "sleep";
16
+ HealthDataType["workout"] = "workout";
17
+ return HealthDataType;
18
+ }(HealthDataType || {});
19
+ const getHealthDataMode = (key, configuredMode) => {
20
+ if (configuredMode) {
21
+ return configuredMode;
22
+ }
23
+ switch (key) {
24
+ case MeasurementTypeKey.stepCount:
25
+ case HealthDataType.distance:
26
+ case HealthDataType.activeEnergy:
27
+ case HealthDataType.flightsClimbed:
28
+ case HealthDataType.exerciseMinutes:
29
+ return "daily-total";
30
+ case MeasurementTypeKey.heartRate:
31
+ case HealthDataType.heartRateSummary:
32
+ return "daily-summary";
33
+ case HealthDataType.sleep:
34
+ case HealthDataType.workout:
35
+ return "session";
36
+ default:
37
+ return "point";
38
+ }
39
+ };
40
+ export { HealthDataType, getHealthDataMode };
4
41
  //# sourceMappingURL=health-sync-keys.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/data-sync/types/health-sync-keys.ts"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":["MeasurementTypeKey","HealthDataType","getHealthDataMode","key","configuredMode","stepCount","distance","activeEnergy","flightsClimbed","exerciseMinutes","heartRate","heartRateSummary","sleep","workout"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/types/health-sync-keys.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,YAAY;AAO/C;AAAA,IACKC,cAAc,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA,EAAdA,cAAc;AAsBnB,MAAMC,iBAAiB,GAAGA,CACxBC,GAAkB,EAClBC,cAA+B,KACZ;EACnB,IAAIA,cAAc,EAAE;IAClB,OAAOA,cAAc;EACvB;EAEA,QAAQD,GAAG;IACT,KAAKH,kBAAkB,CAACK,SAAS;IACjC,KAAKJ,cAAc,CAACK,QAAQ;IAC5B,KAAKL,cAAc,CAACM,YAAY;IAChC,KAAKN,cAAc,CAACO,cAAc;IAClC,KAAKP,cAAc,CAACQ,eAAe;MACjC,OAAO,aAAa;IACtB,KAAKT,kBAAkB,CAACU,SAAS;IACjC,KAAKT,cAAc,CAACU,gBAAgB;MAClC,OAAO,eAAe;IACxB,KAAKV,cAAc,CAACW,KAAK;IACzB,KAAKX,cAAc,CAACY,OAAO;MACzB,OAAO,SAAS;IAClB;MACE,OAAO,OAAO;EAClB;AACF,CAAC;AAED,SACEZ,cAAc,EACdC,iBAAiB","ignoreList":[]}
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+
3
+ /* eslint-disable max-lines */
4
+
5
+ import { isAggregatedHealthData } from "../types/health-data.js";
6
+ import { getHealthObservationDevice } from "./health-observation-device.js";
7
+ const FHIR_UNIT_SYSTEM = "http://unitsofmeasure.org";
8
+ const LOINC_SYSTEM = "http://loinc.org";
9
+ export const convertGenericHealthDataToObservation = async ({
10
+ data,
11
+ patientId,
12
+ mode,
13
+ typeIdentifier: configuredTypeIdentifier,
14
+ typeIdentifierCodes
15
+ }) => {
16
+ const first = data[0];
17
+ if (!first) {
18
+ return [];
19
+ }
20
+ const value = first;
21
+ const typeIdentifier = String(configuredTypeIdentifier ?? value.typeIdentifier ?? value.quantityType ?? value.categoryType ?? value.recordType ?? "health-data");
22
+ const code = typeIdentifierCodes?.[typeIdentifier] ?? typeIdentifier;
23
+ const interval = getInterval(data);
24
+ const measurement = getMeasurement(first, mode, interval);
25
+ if (!measurement || !patientId) {
26
+ return [];
27
+ }
28
+ const metadata = getMetadata(first);
29
+ const device = getHealthObservationDevice(metadata);
30
+ const observationDate = interval?.start ?? getDate(first);
31
+ const observation = {
32
+ resourceType: "Observation",
33
+ id: getStableObservationId({
34
+ typeIdentifier,
35
+ code,
36
+ interval,
37
+ date: observationDate,
38
+ measurement
39
+ }),
40
+ status: "registered",
41
+ subject: {
42
+ reference: `Patient/${patientId}`
43
+ },
44
+ code: {
45
+ coding: [{
46
+ system: LOINC_SYSTEM,
47
+ code
48
+ }]
49
+ },
50
+ ...(device ? {
51
+ device
52
+ } : {}),
53
+ ...(interval ? {
54
+ effectivePeriod: {
55
+ start: interval.start.toISOString(),
56
+ end: interval.end.toISOString()
57
+ }
58
+ } : observationDate ? {
59
+ effectiveDateTime: observationDate.toISOString()
60
+ } : {}),
61
+ ...measurement
62
+ };
63
+ if (mode === "daily-summary" && isAggregatedHealthData(first)) {
64
+ observation.component = [...(first.minimum === undefined ? [] : [component("Minimum", first.minimum, first.unit)]), ...(first.maximum === undefined ? [] : [component("Maximum", first.maximum, first.unit)])];
65
+ }
66
+ const stageComponents = getSleepStageComponents(data);
67
+ if (stageComponents.length > 0) {
68
+ observation.component = [...(observation.component ?? []), ...stageComponents];
69
+ }
70
+ return [observation];
71
+ };
72
+ const getMeasurement = (value, mode, interval) => {
73
+ const raw = value;
74
+ if (isAggregatedHealthData(value)) {
75
+ const number = value.kind === "daily-summary" ? value.average : value.value;
76
+ return number === undefined ? undefined : {
77
+ valueQuantity: quantity(number, value.unit)
78
+ };
79
+ }
80
+ if (mode === "session" && interval) {
81
+ return {
82
+ valueQuantity: quantity((interval.end.getTime() - interval.start.getTime()) / 60000, "min")
83
+ };
84
+ }
85
+ const extracted = extractValue(raw);
86
+ return extracted ? {
87
+ valueQuantity: quantity(extracted.value, extracted.unit)
88
+ } : undefined;
89
+ };
90
+ const extractValue = raw => {
91
+ if (typeof raw.quantity === "number") {
92
+ return {
93
+ value: raw.quantity,
94
+ unit: String(raw.unit ?? "1")
95
+ };
96
+ }
97
+ const candidates = [["height", "inMeters", "m"], ["bodyFat", "percentage", "%"], ["mass", "inKilograms", "kg"], ["weight", "inKilograms", "kg"], ["distance", "inMeters", "m"], ["energy", "inKilocalories", "kcal"]];
98
+ for (const [containerKey, valueKey, fallbackUnit] of candidates) {
99
+ const container = raw[containerKey];
100
+ if (typeof container?.[valueKey] === "number") {
101
+ return {
102
+ value: container[valueKey],
103
+ unit: normalizeUnit(String(container.unit ?? fallbackUnit))
104
+ };
105
+ }
106
+ }
107
+ const alternateCandidates = [["height", "value", "m"], ["mass", "value", "kg"], ["weight", "value", "kg"], ["distance", "value", "m"], ["energy", "value", "kcal"]];
108
+ for (const [containerKey, valueKey, fallbackUnit] of alternateCandidates) {
109
+ const container = raw[containerKey];
110
+ if (typeof container?.[valueKey] === "number") {
111
+ return {
112
+ value: container[valueKey],
113
+ unit: normalizeUnit(String(container.unit ?? fallbackUnit))
114
+ };
115
+ }
116
+ }
117
+ const scalarCandidates = [["count", "count"], ["floors", "count"], ["rate", "count/min"], ["beatsPerMinute", "count/min"], ["percentage", "%"], ["vo2MillilitersPerMinuteKilogram", "mL/kg/min"]];
118
+ for (const [key, unit] of scalarCandidates) {
119
+ if (typeof raw[key] === "number") {
120
+ return {
121
+ value: raw[key],
122
+ unit
123
+ };
124
+ }
125
+ }
126
+ return undefined;
127
+ };
128
+ const getInterval = data => {
129
+ const intervals = data.map(item => {
130
+ const raw = item;
131
+ const startValue = raw.startDate ?? raw.startTime ?? 0;
132
+ const start = new Date(startValue);
133
+ const endValue = raw.endDate ?? raw.endTime ?? start;
134
+ const end = new Date(endValue);
135
+ return Number.isNaN(start.getTime()) || Number.isNaN(end.getTime()) ? undefined : {
136
+ start,
137
+ end
138
+ };
139
+ }).filter(Boolean);
140
+ if (intervals.length === 0) {
141
+ return undefined;
142
+ }
143
+ return {
144
+ start: new Date(Math.min(...intervals.map(({
145
+ start
146
+ }) => start.getTime()))),
147
+ end: new Date(Math.max(...intervals.map(({
148
+ end
149
+ }) => end.getTime())))
150
+ };
151
+ };
152
+ const getDate = value => {
153
+ const raw = value;
154
+ const date = raw.endDate ?? raw.endTime ?? raw.startDate ?? raw.startTime ?? raw.time;
155
+ if (!date) {
156
+ return undefined;
157
+ }
158
+ const parsed = new Date(date);
159
+ return Number.isNaN(parsed.getTime()) ? undefined : parsed;
160
+ };
161
+ const getMetadata = value => {
162
+ const raw = value;
163
+ const metadata = raw.metadata ?? {};
164
+ const sourceRevision = raw.sourceRevision;
165
+ const source = sourceRevision?.source;
166
+ const device = raw.device ?? metadata.device;
167
+ return {
168
+ manufacturer: String(device?.manufacturer ?? metadata.dataOrigin ?? "") || undefined,
169
+ model: typeof device?.model === "string" ? device.model : undefined,
170
+ sourceApp: String(source?.name ?? raw.sourceApp ?? metadata.dataOrigin ?? "") || undefined,
171
+ recordingMethod: typeof metadata.recordingMethod === "number" ? metadata.recordingMethod : undefined
172
+ };
173
+ };
174
+ const getSleepStageComponents = data => data.flatMap(item => {
175
+ const stages = item.stages ?? [];
176
+ if (stages.length === 0) {
177
+ const raw = item;
178
+ const start = raw.startDate ?? raw.startTime;
179
+ const end = raw.endDate ?? raw.endTime;
180
+ const duration = start && end ? (new Date(end).getTime() - new Date(start).getTime()) / 60000 : 0;
181
+ return Number.isFinite(duration) && duration > 0 && raw.value !== undefined ? [component(`Sleep stage ${String(raw.value)}`, duration, "min")] : [];
182
+ }
183
+ return stages.flatMap(stage => {
184
+ const raw = stage;
185
+ const start = new Date(raw.startTime);
186
+ const end = new Date(raw.endTime);
187
+ const duration = (end.getTime() - start.getTime()) / 60000;
188
+ return Number.isFinite(duration) && duration > 0 ? [component(`Sleep stage ${String(raw.stage)}`, duration, "min")] : [];
189
+ });
190
+ });
191
+ const component = (label, value, unit) => ({
192
+ code: {
193
+ text: label
194
+ },
195
+ valueQuantity: quantity(value, unit)
196
+ });
197
+ const quantity = (value, unit) => ({
198
+ value,
199
+ unit,
200
+ system: FHIR_UNIT_SYSTEM,
201
+ code: normalizeUnit(unit)
202
+ });
203
+ const normalizeUnit = unit => ({
204
+ kilometers: "km",
205
+ meters: "m",
206
+ miles: "mi",
207
+ kilograms: "kg",
208
+ grams: "g",
209
+ milligrams: "mg",
210
+ kilocalories: "kcal",
211
+ calories: "cal",
212
+ minutes: "min",
213
+ seconds: "s",
214
+ beatsPerMinute: "count/min"
215
+ })[unit] ?? unit;
216
+ const getStableObservationId = ({
217
+ typeIdentifier,
218
+ code,
219
+ interval,
220
+ date,
221
+ measurement
222
+ }) => {
223
+ const time = interval ? `${interval.start.toISOString()}-${interval.end.toISOString()}` : date?.toISOString() ?? "undated";
224
+ const value = measurement.valueQuantity?.value ?? "empty";
225
+ return `health-${[typeIdentifier, code, time, value].join("-").replace(/[^a-zA-Z0-9.-]/g, "-").slice(0, 64)}`;
226
+ };
227
+ //# sourceMappingURL=convert-generic-health-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isAggregatedHealthData","getHealthObservationDevice","FHIR_UNIT_SYSTEM","LOINC_SYSTEM","convertGenericHealthDataToObservation","data","patientId","mode","typeIdentifier","configuredTypeIdentifier","typeIdentifierCodes","first","value","String","quantityType","categoryType","recordType","code","interval","getInterval","measurement","getMeasurement","metadata","getMetadata","device","observationDate","start","getDate","observation","resourceType","id","getStableObservationId","date","status","subject","reference","coding","system","effectivePeriod","toISOString","end","effectiveDateTime","component","minimum","undefined","unit","maximum","stageComponents","getSleepStageComponents","length","raw","number","kind","average","valueQuantity","quantity","getTime","extracted","extractValue","candidates","containerKey","valueKey","fallbackUnit","container","normalizeUnit","alternateCandidates","scalarCandidates","key","intervals","map","item","startValue","startDate","startTime","Date","endValue","endDate","endTime","Number","isNaN","filter","Boolean","Math","min","max","time","parsed","sourceRevision","source","manufacturer","dataOrigin","model","sourceApp","name","recordingMethod","flatMap","stages","duration","isFinite","stage","label","text","kilometers","meters","miles","kilograms","grams","milligrams","kilocalories","calories","minutes","seconds","beatsPerMinute","join","replace","slice"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/convert-generic-health-data.ts"],"mappings":"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","ignoreList":[]}
@@ -1,18 +1,34 @@
1
1
  "use strict";
2
2
 
3
- import { ObservationServiceCreator } from "@ovok/core";
3
+ import { MeasurementTypeKey, ObservationServiceCreator } from "@ovok/core";
4
+ import { convertGenericHealthDataToObservation } from "./convert-generic-health-data.js";
4
5
  import { getHealthObservationDevice } from "./health-observation-device.js";
5
- export const convertRecordsToObservation = async ({
6
- data,
7
- client,
8
- measurementTypeKey
9
- }) => {
6
+ export const convertRecordsToObservation = async props => {
7
+ const {
8
+ data,
9
+ client,
10
+ measurementTypeKey,
11
+ mode = "point"
12
+ } = props;
13
+ if (mode !== "point") {
14
+ return convertGenericHealthDataToObservation({
15
+ ...props,
16
+ mode
17
+ });
18
+ }
10
19
  const record = data[0];
11
20
  if (!record) {
12
21
  return [];
13
22
  }
23
+ if (!isCoreMeasurementTypeKey(measurementTypeKey)) {
24
+ return convertGenericHealthDataToObservation({
25
+ ...props,
26
+ mode
27
+ });
28
+ }
14
29
  const service = ObservationServiceCreator.getInstance().getService(measurementTypeKey);
15
- const measurement = service?.convertRecordToMeasurement?.(record);
30
+ const typedRecord = record;
31
+ const measurement = service?.convertRecordToMeasurement?.(typedRecord);
16
32
  if (!measurement) {
17
33
  return [];
18
34
  }
@@ -21,10 +37,10 @@ export const convertRecordsToObservation = async ({
21
37
  });
22
38
  const recordTime = getRecordTime(record);
23
39
  const device = getHealthObservationDevice({
24
- manufacturer: record.metadata?.device?.manufacturer,
25
- model: record.metadata?.device?.model,
26
- sourceApp: record.metadata?.dataOrigin,
27
- recordingMethod: record.metadata?.recordingMethod
40
+ manufacturer: typedRecord.metadata?.device?.manufacturer,
41
+ model: typedRecord.metadata?.device?.model,
42
+ sourceApp: typedRecord.metadata?.dataOrigin,
43
+ recordingMethod: typedRecord.metadata?.recordingMethod
28
44
  });
29
45
  return observationBody.map(observation => ({
30
46
  ...observation,
@@ -37,6 +53,7 @@ export const convertRecordsToObservation = async ({
37
53
  effectiveDateTime: recordTime ?? observation.effectiveDateTime
38
54
  }));
39
55
  };
56
+ const isCoreMeasurementTypeKey = value => Object.values(MeasurementTypeKey).includes(value);
40
57
  const getRecordTime = record => {
41
58
  if ("time" in record) {
42
59
  return record.time;
@@ -1 +1 @@
1
- {"version":3,"names":["ObservationServiceCreator","getHealthObservationDevice","convertRecordsToObservation","data","client","measurementTypeKey","record","service","getInstance","getService","measurement","convertRecordToMeasurement","observationBody","generateObservationBodiesByMeasurement","recordTime","getRecordTime","device","manufacturer","metadata","model","sourceApp","dataOrigin","recordingMethod","map","observation","effectiveDateTime","time","endTime","startTime","undefined"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/convert-records-to-observation.ts"],"mappings":";;AACA,SAASA,yBAAyB,QAAQ,YAAY;AAKtD,SAASC,0BAA0B,QAAQ,gCAA6B;AAExE,OAAO,MAAMC,2BAA2B,GAAG,MAAAA,CAAO;EAChDC,IAAI;EACJC,MAAM;EACNC;AAC0C,CAAC,KAA6B;EACxE,MAAMC,MAAM,GAAGH,IAAI,CAAC,CAAC,CAAC;EAEtB,IAAI,CAACG,MAAM,EAAE;IACX,OAAO,EAAE;EACX;EAEA,MAAMC,OAAO,GACXP,yBAAyB,CAACQ,WAAW,CAAC,CAAC,CAACC,UAAU,CAACJ,kBAAkB,CAAC;EAExE,MAAMK,WAAW,GAAGH,OAAO,EAAEI,0BAA0B,GAAGL,MAAM,CAAC;EAEjE,IAAI,CAACI,WAAW,EAAE;IAChB,OAAO,EAAE;EACX;EAEA,MAAME,eAAe,GAAG,MAAMR,MAAM,CAACS,sCAAsC,CAAC;IAC1EH;EACF,CAAC,CAAC;EAEF,MAAMI,UAAU,GAAGC,aAAa,CAACT,MAAM,CAAC;EAExC,MAAMU,MAAM,GAAGf,0BAA0B,CAAC;IACxCgB,YAAY,EAAEX,MAAM,CAACY,QAAQ,EAAEF,MAAM,EAAEC,YAAY;IACnDE,KAAK,EAAEb,MAAM,CAACY,QAAQ,EAAEF,MAAM,EAAEG,KAAK;IACrCC,SAAS,EAAEd,MAAM,CAACY,QAAQ,EAAEG,UAAU;IACtCC,eAAe,EAAEhB,MAAM,CAACY,QAAQ,EAAEI;EACpC,CAAC,CAAC;EAEF,OAAOV,eAAe,CAACW,GAAG,CAAEC,WAAW,KAAM;IAC3C,GAAGA,WAAW;IACd,IAAIR,MAAM,GACN;MAAEA,MAAM,EAAE;QAAE,IAAIQ,WAAW,CAACR,MAAM,IAAI,CAAC,CAAC,CAAC;QAAE,GAAGA;MAAO;IAAE,CAAC,GACxD,CAAC,CAAC,CAAC;IACPS,iBAAiB,EAAEX,UAAU,IAAIU,WAAW,CAACC;EAC/C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAMV,aAAa,GACjBT,MAAgC,IACT;EACvB,IAAI,MAAM,IAAIA,MAAM,EAAE;IACpB,OAAOA,MAAM,CAACoB,IAAI;EACpB;EAEA,IAAI,SAAS,IAAIpB,MAAM,EAAE;IACvB,OAAOA,MAAM,CAACqB,OAAO;EACvB;EAEA,IAAI,WAAW,IAAIrB,MAAM,EAAE;IACzB,OAAOA,MAAM,CAACsB,SAAS;EACzB;EAEA,OAAOC,SAAS;AAClB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["MeasurementTypeKey","ObservationServiceCreator","convertGenericHealthDataToObservation","getHealthObservationDevice","convertRecordsToObservation","props","data","client","measurementTypeKey","mode","record","isCoreMeasurementTypeKey","service","getInstance","getService","typedRecord","measurement","convertRecordToMeasurement","observationBody","generateObservationBodiesByMeasurement","recordTime","getRecordTime","device","manufacturer","metadata","model","sourceApp","dataOrigin","recordingMethod","map","observation","effectiveDateTime","value","Object","values","includes","time","endTime","startTime","undefined"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/convert-records-to-observation.ts"],"mappings":";;AACA,SAASA,kBAAkB,EAAEC,yBAAyB,QAAQ,YAAY;AAK1E,SAASC,qCAAqC,QAAQ,kCAA+B;AACrF,SAASC,0BAA0B,QAAQ,gCAA6B;AAExE,OAAO,MAAMC,2BAA2B,GAAG,MACzCC,KAAgC,IACL;EAC3B,MAAM;IAAEC,IAAI;IAAEC,MAAM;IAAEC,kBAAkB;IAAEC,IAAI,GAAG;EAAQ,CAAC,GAAGJ,KAAK;EAElE,IAAII,IAAI,KAAK,OAAO,EAAE;IACpB,OAAOP,qCAAqC,CAAC;MAAE,GAAGG,KAAK;MAAEI;IAAK,CAAC,CAAC;EAClE;EAEA,MAAMC,MAAM,GAAGJ,IAAI,CAAC,CAAC,CAAC;EAEtB,IAAI,CAACI,MAAM,EAAE;IACX,OAAO,EAAE;EACX;EAEA,IAAI,CAACC,wBAAwB,CAACH,kBAAkB,CAAC,EAAE;IACjD,OAAON,qCAAqC,CAAC;MAAE,GAAGG,KAAK;MAAEI;IAAK,CAAC,CAAC;EAClE;EAEA,MAAMG,OAAO,GAAGX,yBAAyB,CAACY,WAAW,CAAC,CAAC,CAACC,UAAU,CAChEN,kBACF,CAAC;EAED,MAAMO,WAAW,GAAGL,MAAkC;EACtD,MAAMM,WAAW,GAAGJ,OAAO,EAAEK,0BAA0B,GAAGF,WAAW,CAAC;EAEtE,IAAI,CAACC,WAAW,EAAE;IAChB,OAAO,EAAE;EACX;EAEA,MAAME,eAAe,GAAG,MAAMX,MAAM,CAACY,sCAAsC,CAAC;IAC1EH;EACF,CAAC,CAAC;EAEF,MAAMI,UAAU,GAAGC,aAAa,CAACX,MAAkC,CAAC;EAEpE,MAAMY,MAAM,GAAGnB,0BAA0B,CAAC;IACxCoB,YAAY,EAAER,WAAW,CAACS,QAAQ,EAAEF,MAAM,EAAEC,YAAY;IACxDE,KAAK,EAAEV,WAAW,CAACS,QAAQ,EAAEF,MAAM,EAAEG,KAAK;IAC1CC,SAAS,EAAEX,WAAW,CAACS,QAAQ,EAAEG,UAAU;IAC3CC,eAAe,EAAEb,WAAW,CAACS,QAAQ,EAAEI;EACzC,CAAC,CAAC;EAEF,OAAOV,eAAe,CAACW,GAAG,CAAEC,WAAW,KAAM;IAC3C,GAAGA,WAAW;IACd,IAAIR,MAAM,GACN;MAAEA,MAAM,EAAE;QAAE,IAAIQ,WAAW,CAACR,MAAM,IAAI,CAAC,CAAC,CAAC;QAAE,GAAGA;MAAO;IAAE,CAAC,GACxD,CAAC,CAAC,CAAC;IACPS,iBAAiB,EAAEX,UAAU,IAAIU,WAAW,CAACC;EAC/C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAMpB,wBAAwB,GAC5BqB,KAAa,IAEbC,MAAM,CAACC,MAAM,CAAClC,kBAAkB,CAAC,CAACmC,QAAQ,CAACH,KAA2B,CAAC;AAEzE,MAAMX,aAAa,GACjBX,MAAgC,IACT;EACvB,IAAI,MAAM,IAAIA,MAAM,EAAE;IACpB,OAAOA,MAAM,CAAC0B,IAAI;EACpB;EAEA,IAAI,SAAS,IAAI1B,MAAM,EAAE;IACvB,OAAOA,MAAM,CAAC2B,OAAO;EACvB;EAEA,IAAI,WAAW,IAAI3B,MAAM,EAAE;IACzB,OAAOA,MAAM,CAAC4B,SAAS;EACzB;EAEA,OAAOC,SAAS;AAClB,CAAC","ignoreList":[]}
@@ -1,15 +1,30 @@
1
1
  "use strict";
2
2
 
3
- import { ObservationServiceCreator } from "@ovok/core";
3
+ import { MeasurementTypeKey, ObservationServiceCreator } from "@ovok/core";
4
+ import { convertGenericHealthDataToObservation } from "./convert-generic-health-data.js";
4
5
  import { getHealthObservationDevice } from "./health-observation-device.js";
5
- export const convertSamplesToObservation = async ({
6
- data,
7
- client,
8
- measurementTypeKey
9
- }) => {
6
+ export const convertSamplesToObservation = async props => {
7
+ const {
8
+ data,
9
+ client,
10
+ measurementTypeKey,
11
+ mode = "point"
12
+ } = props;
13
+ if (mode !== "point") {
14
+ return convertGenericHealthDataToObservation({
15
+ ...props,
16
+ mode
17
+ });
18
+ }
10
19
  if (data.length === 0) {
11
20
  return [];
12
21
  }
22
+ if (!isCoreMeasurementTypeKey(measurementTypeKey)) {
23
+ return convertGenericHealthDataToObservation({
24
+ ...props,
25
+ mode
26
+ });
27
+ }
13
28
  const service = ObservationServiceCreator.getInstance().getService(measurementTypeKey);
14
29
  const measurement = service.convertSamplesToMeasurement(data);
15
30
  if (!measurement) {
@@ -19,7 +34,7 @@ export const convertSamplesToObservation = async ({
19
34
  measurement
20
35
  });
21
36
  return observationBody.map((observation, index) => {
22
- const sample = data?.[index] ?? data?.[0];
37
+ const sample = data?.[index];
23
38
  const device = sample ? getHealthObservationDevice({
24
39
  manufacturer: sample.device?.manufacturer,
25
40
  model: sample.device?.model,
@@ -37,4 +52,5 @@ export const convertSamplesToObservation = async ({
37
52
  };
38
53
  });
39
54
  };
55
+ const isCoreMeasurementTypeKey = value => Object.values(MeasurementTypeKey).includes(value);
40
56
  //# sourceMappingURL=convert-samples-to-observation.js.map