@ovok/native 1.10.2 → 1.10.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 (570) hide show
  1. package/README.md +5 -5
  2. package/lib/commonjs/modules/auth/default-translation.js +22 -0
  3. package/lib/commonjs/modules/auth/default-translation.js.map +1 -1
  4. package/lib/commonjs/modules/auth/hooks/use-session.js +3 -0
  5. package/lib/commonjs/modules/auth/hooks/use-session.js.map +1 -1
  6. package/lib/commonjs/modules/auth/profile/components/profile-form-provider.js +3 -6
  7. package/lib/commonjs/modules/auth/profile/components/profile-form-provider.js.map +1 -1
  8. package/lib/commonjs/modules/auth/register/components/form/register-form-provider.js +1 -0
  9. package/lib/commonjs/modules/auth/register/components/form/register-form-provider.js.map +1 -1
  10. package/lib/commonjs/modules/auth/reset-password/components/form/reset-password-form-provider.js +4 -3
  11. package/lib/commonjs/modules/auth/reset-password/components/form/reset-password-form-provider.js.map +1 -1
  12. package/lib/commonjs/modules/auth/session/logout-session.js +5 -2
  13. package/lib/commonjs/modules/auth/session/logout-session.js.map +1 -1
  14. package/lib/commonjs/modules/auth/session/session-store-refresh.js +125 -0
  15. package/lib/commonjs/modules/auth/session/session-store-refresh.js.map +1 -0
  16. package/lib/commonjs/modules/auth/session/session-store-request-state.js +73 -0
  17. package/lib/commonjs/modules/auth/session/session-store-request-state.js.map +1 -0
  18. package/lib/commonjs/modules/auth/session/session-store-types.js +17 -0
  19. package/lib/commonjs/modules/auth/session/session-store-types.js.map +1 -0
  20. package/lib/commonjs/modules/auth/session/session-store.js +56 -123
  21. package/lib/commonjs/modules/auth/session/session-store.js.map +1 -1
  22. package/lib/commonjs/modules/auth/utils/sign-in-error.js +10 -4
  23. package/lib/commonjs/modules/auth/utils/sign-in-error.js.map +1 -1
  24. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js +5 -0
  25. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  26. package/lib/commonjs/modules/bt-management/hooks/declined-device-storage.js +36 -1
  27. package/lib/commonjs/modules/bt-management/hooks/declined-device-storage.js.map +1 -1
  28. package/lib/commonjs/modules/bt-management/hooks/nearby-device-offer-state.js +25 -0
  29. package/lib/commonjs/modules/bt-management/hooks/nearby-device-offer-state.js.map +1 -0
  30. package/lib/commonjs/modules/bt-management/hooks/nearby-device-offer-types.js +6 -0
  31. package/lib/commonjs/modules/bt-management/hooks/nearby-device-offer-types.js.map +1 -0
  32. package/lib/commonjs/modules/bt-management/hooks/use-nearby-device-offer.js +22 -36
  33. package/lib/commonjs/modules/bt-management/hooks/use-nearby-device-offer.js.map +1 -1
  34. package/lib/commonjs/modules/bt-management/services/background-sync/background-sync-coordinator.js +11 -0
  35. package/lib/commonjs/modules/bt-management/services/background-sync/background-sync-coordinator.js.map +1 -1
  36. package/lib/commonjs/modules/data-sync/components/apple/apple-health-authorization-provider.js.map +1 -1
  37. package/lib/commonjs/modules/data-sync/hooks/use-listen-changes.js.map +1 -1
  38. package/lib/commonjs/modules/data-sync/services/apple-health-sync-service.js.map +1 -1
  39. package/lib/commonjs/modules/data-sync/utils/convert-generic-health-data.js +74 -34
  40. package/lib/commonjs/modules/data-sync/utils/convert-generic-health-data.js.map +1 -1
  41. package/lib/commonjs/modules/data-sync/utils/convert-records-to-observation.js +19 -16
  42. package/lib/commonjs/modules/data-sync/utils/convert-records-to-observation.js.map +1 -1
  43. package/lib/commonjs/modules/data-sync/utils/convert-samples-to-observation.js +17 -4
  44. package/lib/commonjs/modules/data-sync/utils/convert-samples-to-observation.js.map +1 -1
  45. package/lib/commonjs/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
  46. package/lib/commonjs/modules/data-sync/utils/get-total-samples-count.js.map +1 -1
  47. package/lib/commonjs/modules/data-sync/utils/health-data-catalog.js +219 -16
  48. package/lib/commonjs/modules/data-sync/utils/health-data-catalog.js.map +1 -1
  49. package/lib/commonjs/modules/data-sync/utils/health-record-timing.js +52 -0
  50. package/lib/commonjs/modules/data-sync/utils/health-record-timing.js.map +1 -0
  51. package/lib/commonjs/modules/data-sync/utils/health-units.js +1 -0
  52. package/lib/commonjs/modules/data-sync/utils/health-units.js.map +1 -1
  53. package/lib/commonjs/modules/data-sync/utils/healthkit-data-types.js.map +1 -1
  54. package/lib/commonjs/modules/data-sync/utils/normalize-core-health-observation.js +74 -0
  55. package/lib/commonjs/modules/data-sync/utils/normalize-core-health-observation.js.map +1 -0
  56. package/lib/commonjs/modules/picker-sheet/components/value-wheel-picker.js +41 -0
  57. package/lib/commonjs/modules/picker-sheet/components/value-wheel-picker.js.map +1 -0
  58. package/lib/commonjs/modules/picker-sheet/components/wheel-picker.js +56 -15
  59. package/lib/commonjs/modules/picker-sheet/components/wheel-picker.js.map +1 -1
  60. package/lib/commonjs/modules/picker-sheet/index.js +11 -0
  61. package/lib/commonjs/modules/picker-sheet/index.js.map +1 -1
  62. package/lib/commonjs/modules/questionnaire-response-form/README.md +59 -20
  63. package/lib/commonjs/modules/questionnaire-response-form/components/content/questionnaire-content-item.js +8 -0
  64. package/lib/commonjs/modules/questionnaire-response-form/components/content/questionnaire-content-item.js.map +1 -1
  65. package/lib/commonjs/modules/questionnaire-response-form/components/content/questionnaire-content-specific-item.js +8 -0
  66. package/lib/commonjs/modules/questionnaire-response-form/components/content/questionnaire-content-specific-item.js.map +1 -1
  67. package/lib/commonjs/modules/questionnaire-response-form/components/fields/common/questionnaire-field-wrapper.js +8 -3
  68. package/lib/commonjs/modules/questionnaire-response-form/components/fields/common/questionnaire-field-wrapper.js.map +1 -1
  69. package/lib/commonjs/modules/questionnaire-response-form/components/fields/questionnaire-choice-field.js +9 -3
  70. package/lib/commonjs/modules/questionnaire-response-form/components/fields/questionnaire-choice-field.js.map +1 -1
  71. package/lib/commonjs/modules/questionnaire-response-form/components/fields/questionnaire-date-field.js +18 -8
  72. package/lib/commonjs/modules/questionnaire-response-form/components/fields/questionnaire-date-field.js.map +1 -1
  73. package/lib/commonjs/modules/questionnaire-response-form/components/fields/questionnaire-item-renderer.js +41 -2
  74. package/lib/commonjs/modules/questionnaire-response-form/components/fields/questionnaire-item-renderer.js.map +1 -1
  75. package/lib/commonjs/modules/questionnaire-response-form/components/fields/questionnaire-text-field.js +43 -5
  76. package/lib/commonjs/modules/questionnaire-response-form/components/fields/questionnaire-text-field.js.map +1 -1
  77. package/lib/commonjs/modules/questionnaire-response-form/components/header/questionnaire-header-title.js +3 -1
  78. package/lib/commonjs/modules/questionnaire-response-form/components/header/questionnaire-header-title.js.map +1 -1
  79. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-form-provider.js +37 -11
  80. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-form-provider.js.map +1 -1
  81. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-form.js +1 -0
  82. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-form.js.map +1 -1
  83. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-navigation-provider.js +9 -3
  84. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-navigation-provider.js.map +1 -1
  85. package/lib/commonjs/modules/questionnaire-response-form/hooks/use-initial-selected-values.js +5 -3
  86. package/lib/commonjs/modules/questionnaire-response-form/hooks/use-initial-selected-values.js.map +1 -1
  87. package/lib/commonjs/modules/questionnaire-response-form/hooks/use-navigation-handlers.js +15 -4
  88. package/lib/commonjs/modules/questionnaire-response-form/hooks/use-navigation-handlers.js.map +1 -1
  89. package/lib/commonjs/modules/questionnaire-response-form/hooks/use-questionnaire-navigation-state.js +14 -7
  90. package/lib/commonjs/modules/questionnaire-response-form/hooks/use-questionnaire-navigation-state.js.map +1 -1
  91. package/lib/commonjs/modules/questionnaire-response-form/index.js +20 -0
  92. package/lib/commonjs/modules/questionnaire-response-form/index.js.map +1 -1
  93. package/lib/commonjs/modules/questionnaire-response-form/types/questionnaire-form-values.js +4 -0
  94. package/lib/commonjs/modules/questionnaire-response-form/types/questionnaire-item-render-props.js +6 -0
  95. package/lib/commonjs/modules/questionnaire-response-form/types/questionnaire-item-render-props.js.map +1 -0
  96. package/lib/commonjs/modules/questionnaire-response-form/types/response-values.js +4 -0
  97. package/lib/commonjs/modules/questionnaire-response-form/utils/condition-utils.js +37 -6
  98. package/lib/commonjs/modules/questionnaire-response-form/utils/condition-utils.js.map +1 -1
  99. package/lib/commonjs/modules/questionnaire-response-form/utils/conditions/fhir-condition.js +148 -0
  100. package/lib/commonjs/modules/questionnaire-response-form/utils/conditions/fhir-condition.js.map +1 -0
  101. package/lib/commonjs/modules/questionnaire-response-form/utils/create-answer-from-value.js +127 -0
  102. package/lib/commonjs/modules/questionnaire-response-form/utils/create-answer-from-value.js.map +1 -0
  103. package/lib/commonjs/modules/questionnaire-response-form/utils/fields/get-option-text.js +4 -3
  104. package/lib/commonjs/modules/questionnaire-response-form/utils/fields/get-option-text.js.map +1 -1
  105. package/lib/commonjs/modules/questionnaire-response-form/utils/form-utils.js +71 -64
  106. package/lib/commonjs/modules/questionnaire-response-form/utils/form-utils.js.map +1 -1
  107. package/lib/commonjs/modules/questionnaire-response-form/utils/form-validation.js +23 -5
  108. package/lib/commonjs/modules/questionnaire-response-form/utils/form-validation.js.map +1 -1
  109. package/lib/commonjs/modules/questionnaire-response-form/utils/is-answerable-questionnaire-item.js +10 -0
  110. package/lib/commonjs/modules/questionnaire-response-form/utils/is-answerable-questionnaire-item.js.map +1 -0
  111. package/lib/commonjs/modules/questionnaire-response-form/utils/is-valid-questionnaire-answer.js +83 -0
  112. package/lib/commonjs/modules/questionnaire-response-form/utils/is-valid-questionnaire-answer.js.map +1 -0
  113. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-date-utils.js +54 -0
  114. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-date-utils.js.map +1 -0
  115. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-item-constraints.js +75 -0
  116. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-item-constraints.js.map +1 -0
  117. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-item-value-constraint-validators.js +63 -0
  118. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-item-value-constraint-validators.js.map +1 -0
  119. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-navigation-utils.js +49 -18
  120. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-navigation-utils.js.map +1 -1
  121. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-picker-options.js +117 -0
  122. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-picker-options.js.map +1 -0
  123. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-string-constraint-validator.js +109 -0
  124. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-string-constraint-validator.js.map +1 -0
  125. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-submit-utils.js +2 -2
  126. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-submit-utils.js.map +1 -1
  127. package/lib/commonjs/modules/questionnaire-response-form/utils/translate-fhir-text.js +36 -0
  128. package/lib/commonjs/modules/questionnaire-response-form/utils/translate-fhir-text.js.map +1 -0
  129. package/lib/commonjs/modules/questionnaire-response-form/utils/validate-questionnaire-item-value.js +49 -0
  130. package/lib/commonjs/modules/questionnaire-response-form/utils/validate-questionnaire-item-value.js.map +1 -0
  131. package/lib/commonjs/modules/ui/components/bluetooth-state-notice.js +31 -15
  132. package/lib/commonjs/modules/ui/components/bluetooth-state-notice.js.map +1 -1
  133. package/lib/commonjs/modules/ui/components/prerequisite-gate.js +73 -0
  134. package/lib/commonjs/modules/ui/components/prerequisite-gate.js.map +1 -0
  135. package/lib/commonjs/modules/ui/default-translation.js +50 -0
  136. package/lib/commonjs/modules/ui/default-translation.js.map +1 -0
  137. package/lib/commonjs/modules/ui/index.js +11 -0
  138. package/lib/commonjs/modules/ui/index.js.map +1 -1
  139. package/lib/commonjs/polyfills/index.js +9 -7
  140. package/lib/commonjs/polyfills/index.js.map +1 -1
  141. package/lib/module/modules/auth/default-translation.js +22 -0
  142. package/lib/module/modules/auth/default-translation.js.map +1 -1
  143. package/lib/module/modules/auth/hooks/use-session.js +3 -0
  144. package/lib/module/modules/auth/hooks/use-session.js.map +1 -1
  145. package/lib/module/modules/auth/profile/components/profile-form-provider.js +3 -6
  146. package/lib/module/modules/auth/profile/components/profile-form-provider.js.map +1 -1
  147. package/lib/module/modules/auth/register/components/form/register-form-provider.js +1 -0
  148. package/lib/module/modules/auth/register/components/form/register-form-provider.js.map +1 -1
  149. package/lib/module/modules/auth/reset-password/components/form/reset-password-form-provider.js +3 -3
  150. package/lib/module/modules/auth/reset-password/components/form/reset-password-form-provider.js.map +1 -1
  151. package/lib/module/modules/auth/session/logout-session.js +5 -2
  152. package/lib/module/modules/auth/session/logout-session.js.map +1 -1
  153. package/lib/module/modules/auth/session/session-store-refresh.js +121 -0
  154. package/lib/module/modules/auth/session/session-store-refresh.js.map +1 -0
  155. package/lib/module/modules/auth/session/session-store-request-state.js +69 -0
  156. package/lib/module/modules/auth/session/session-store-request-state.js.map +1 -0
  157. package/lib/module/modules/auth/session/session-store-types.js +13 -0
  158. package/lib/module/modules/auth/session/session-store-types.js.map +1 -0
  159. package/lib/module/modules/auth/session/session-store.js +56 -123
  160. package/lib/module/modules/auth/session/session-store.js.map +1 -1
  161. package/lib/module/modules/auth/utils/sign-in-error.js +9 -4
  162. package/lib/module/modules/auth/utils/sign-in-error.js.map +1 -1
  163. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js +5 -0
  164. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  165. package/lib/module/modules/bt-management/hooks/declined-device-storage.js +33 -1
  166. package/lib/module/modules/bt-management/hooks/declined-device-storage.js.map +1 -1
  167. package/lib/module/modules/bt-management/hooks/nearby-device-offer-state.js +20 -0
  168. package/lib/module/modules/bt-management/hooks/nearby-device-offer-state.js.map +1 -0
  169. package/lib/module/modules/bt-management/hooks/nearby-device-offer-types.js +4 -0
  170. package/lib/module/modules/bt-management/hooks/nearby-device-offer-types.js.map +1 -0
  171. package/lib/module/modules/bt-management/hooks/use-nearby-device-offer.js +21 -35
  172. package/lib/module/modules/bt-management/hooks/use-nearby-device-offer.js.map +1 -1
  173. package/lib/module/modules/bt-management/services/background-sync/background-sync-coordinator.js +11 -0
  174. package/lib/module/modules/bt-management/services/background-sync/background-sync-coordinator.js.map +1 -1
  175. package/lib/module/modules/data-sync/components/apple/apple-health-authorization-provider.js.map +1 -1
  176. package/lib/module/modules/data-sync/hooks/use-listen-changes.js.map +1 -1
  177. package/lib/module/modules/data-sync/services/apple-health-sync-service.js.map +1 -1
  178. package/lib/module/modules/data-sync/utils/convert-generic-health-data.js +74 -34
  179. package/lib/module/modules/data-sync/utils/convert-generic-health-data.js.map +1 -1
  180. package/lib/module/modules/data-sync/utils/convert-records-to-observation.js +19 -16
  181. package/lib/module/modules/data-sync/utils/convert-records-to-observation.js.map +1 -1
  182. package/lib/module/modules/data-sync/utils/convert-samples-to-observation.js +17 -4
  183. package/lib/module/modules/data-sync/utils/convert-samples-to-observation.js.map +1 -1
  184. package/lib/module/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
  185. package/lib/module/modules/data-sync/utils/get-total-samples-count.js.map +1 -1
  186. package/lib/module/modules/data-sync/utils/health-data-catalog.js +219 -16
  187. package/lib/module/modules/data-sync/utils/health-data-catalog.js.map +1 -1
  188. package/lib/module/modules/data-sync/utils/health-record-timing.js +47 -0
  189. package/lib/module/modules/data-sync/utils/health-record-timing.js.map +1 -0
  190. package/lib/module/modules/data-sync/utils/health-units.js +1 -0
  191. package/lib/module/modules/data-sync/utils/health-units.js.map +1 -1
  192. package/lib/module/modules/data-sync/utils/healthkit-data-types.js.map +1 -1
  193. package/lib/module/modules/data-sync/utils/normalize-core-health-observation.js +69 -0
  194. package/lib/module/modules/data-sync/utils/normalize-core-health-observation.js.map +1 -0
  195. package/lib/module/modules/picker-sheet/components/value-wheel-picker.js +36 -0
  196. package/lib/module/modules/picker-sheet/components/value-wheel-picker.js.map +1 -0
  197. package/lib/module/modules/picker-sheet/components/wheel-picker.js +56 -15
  198. package/lib/module/modules/picker-sheet/components/wheel-picker.js.map +1 -1
  199. package/lib/module/modules/picker-sheet/index.js +1 -0
  200. package/lib/module/modules/picker-sheet/index.js.map +1 -1
  201. package/lib/module/modules/questionnaire-response-form/README.md +59 -20
  202. package/lib/module/modules/questionnaire-response-form/components/content/questionnaire-content-item.js +8 -0
  203. package/lib/module/modules/questionnaire-response-form/components/content/questionnaire-content-item.js.map +1 -1
  204. package/lib/module/modules/questionnaire-response-form/components/content/questionnaire-content-specific-item.js +8 -0
  205. package/lib/module/modules/questionnaire-response-form/components/content/questionnaire-content-specific-item.js.map +1 -1
  206. package/lib/module/modules/questionnaire-response-form/components/fields/common/questionnaire-field-wrapper.js +8 -3
  207. package/lib/module/modules/questionnaire-response-form/components/fields/common/questionnaire-field-wrapper.js.map +1 -1
  208. package/lib/module/modules/questionnaire-response-form/components/fields/questionnaire-choice-field.js +9 -3
  209. package/lib/module/modules/questionnaire-response-form/components/fields/questionnaire-choice-field.js.map +1 -1
  210. package/lib/module/modules/questionnaire-response-form/components/fields/questionnaire-date-field.js +18 -8
  211. package/lib/module/modules/questionnaire-response-form/components/fields/questionnaire-date-field.js.map +1 -1
  212. package/lib/module/modules/questionnaire-response-form/components/fields/questionnaire-item-renderer.js +42 -3
  213. package/lib/module/modules/questionnaire-response-form/components/fields/questionnaire-item-renderer.js.map +1 -1
  214. package/lib/module/modules/questionnaire-response-form/components/fields/questionnaire-text-field.js +41 -3
  215. package/lib/module/modules/questionnaire-response-form/components/fields/questionnaire-text-field.js.map +1 -1
  216. package/lib/module/modules/questionnaire-response-form/components/header/questionnaire-header-title.js +3 -1
  217. package/lib/module/modules/questionnaire-response-form/components/header/questionnaire-header-title.js.map +1 -1
  218. package/lib/module/modules/questionnaire-response-form/components/questionnaire-form-provider.js +37 -11
  219. package/lib/module/modules/questionnaire-response-form/components/questionnaire-form-provider.js.map +1 -1
  220. package/lib/module/modules/questionnaire-response-form/components/questionnaire-form.js +1 -0
  221. package/lib/module/modules/questionnaire-response-form/components/questionnaire-form.js.map +1 -1
  222. package/lib/module/modules/questionnaire-response-form/components/questionnaire-navigation-provider.js +9 -3
  223. package/lib/module/modules/questionnaire-response-form/components/questionnaire-navigation-provider.js.map +1 -1
  224. package/lib/module/modules/questionnaire-response-form/hooks/use-initial-selected-values.js +5 -3
  225. package/lib/module/modules/questionnaire-response-form/hooks/use-initial-selected-values.js.map +1 -1
  226. package/lib/module/modules/questionnaire-response-form/hooks/use-navigation-handlers.js +15 -4
  227. package/lib/module/modules/questionnaire-response-form/hooks/use-navigation-handlers.js.map +1 -1
  228. package/lib/module/modules/questionnaire-response-form/hooks/use-questionnaire-navigation-state.js +14 -7
  229. package/lib/module/modules/questionnaire-response-form/hooks/use-questionnaire-navigation-state.js.map +1 -1
  230. package/lib/module/modules/questionnaire-response-form/index.js +2 -0
  231. package/lib/module/modules/questionnaire-response-form/index.js.map +1 -1
  232. package/lib/module/modules/questionnaire-response-form/types/questionnaire-form-values.js +2 -0
  233. package/lib/module/modules/questionnaire-response-form/types/questionnaire-item-render-props.js +4 -0
  234. package/lib/module/modules/questionnaire-response-form/types/questionnaire-item-render-props.js.map +1 -0
  235. package/lib/module/modules/questionnaire-response-form/types/response-values.js +2 -0
  236. package/lib/module/modules/questionnaire-response-form/utils/condition-utils.js +37 -6
  237. package/lib/module/modules/questionnaire-response-form/utils/condition-utils.js.map +1 -1
  238. package/lib/module/modules/questionnaire-response-form/utils/conditions/fhir-condition.js +140 -0
  239. package/lib/module/modules/questionnaire-response-form/utils/conditions/fhir-condition.js.map +1 -0
  240. package/lib/module/modules/questionnaire-response-form/utils/create-answer-from-value.js +122 -0
  241. package/lib/module/modules/questionnaire-response-form/utils/create-answer-from-value.js.map +1 -0
  242. package/lib/module/modules/questionnaire-response-form/utils/fields/get-option-text.js +4 -3
  243. package/lib/module/modules/questionnaire-response-form/utils/fields/get-option-text.js.map +1 -1
  244. package/lib/module/modules/questionnaire-response-form/utils/form-utils.js +71 -64
  245. package/lib/module/modules/questionnaire-response-form/utils/form-utils.js.map +1 -1
  246. package/lib/module/modules/questionnaire-response-form/utils/form-validation.js +23 -5
  247. package/lib/module/modules/questionnaire-response-form/utils/form-validation.js.map +1 -1
  248. package/lib/module/modules/questionnaire-response-form/utils/is-answerable-questionnaire-item.js +5 -0
  249. package/lib/module/modules/questionnaire-response-form/utils/is-answerable-questionnaire-item.js.map +1 -0
  250. package/lib/module/modules/questionnaire-response-form/utils/is-valid-questionnaire-answer.js +77 -0
  251. package/lib/module/modules/questionnaire-response-form/utils/is-valid-questionnaire-answer.js.map +1 -0
  252. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-date-utils.js +49 -0
  253. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-date-utils.js.map +1 -0
  254. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-item-constraints.js +71 -0
  255. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-item-constraints.js.map +1 -0
  256. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-item-value-constraint-validators.js +57 -0
  257. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-item-value-constraint-validators.js.map +1 -0
  258. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-navigation-utils.js +49 -18
  259. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-navigation-utils.js.map +1 -1
  260. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-picker-options.js +112 -0
  261. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-picker-options.js.map +1 -0
  262. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-string-constraint-validator.js +105 -0
  263. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-string-constraint-validator.js.map +1 -0
  264. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-submit-utils.js +2 -2
  265. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-submit-utils.js.map +1 -1
  266. package/lib/module/modules/questionnaire-response-form/utils/translate-fhir-text.js +31 -0
  267. package/lib/module/modules/questionnaire-response-form/utils/translate-fhir-text.js.map +1 -0
  268. package/lib/module/modules/questionnaire-response-form/utils/validate-questionnaire-item-value.js +44 -0
  269. package/lib/module/modules/questionnaire-response-form/utils/validate-questionnaire-item-value.js.map +1 -0
  270. package/lib/module/modules/ui/components/bluetooth-state-notice.js +31 -15
  271. package/lib/module/modules/ui/components/bluetooth-state-notice.js.map +1 -1
  272. package/lib/module/modules/ui/components/prerequisite-gate.js +67 -0
  273. package/lib/module/modules/ui/components/prerequisite-gate.js.map +1 -0
  274. package/lib/module/modules/ui/default-translation.js +45 -0
  275. package/lib/module/modules/ui/default-translation.js.map +1 -0
  276. package/lib/module/modules/ui/index.js +1 -0
  277. package/lib/module/modules/ui/index.js.map +1 -1
  278. package/lib/module/polyfills/index.js +11 -1
  279. package/lib/module/polyfills/index.js.map +1 -1
  280. package/lib/typescript/commonjs/src/modules/auth/default-translation.d.ts +22 -0
  281. package/lib/typescript/commonjs/src/modules/auth/default-translation.d.ts.map +1 -1
  282. package/lib/typescript/commonjs/src/modules/auth/hooks/use-session.d.ts +4 -1
  283. package/lib/typescript/commonjs/src/modules/auth/hooks/use-session.d.ts.map +1 -1
  284. package/lib/typescript/commonjs/src/modules/auth/profile/components/profile-form-provider.d.ts.map +1 -1
  285. package/lib/typescript/commonjs/src/modules/auth/register/components/form/register-form-provider.d.ts.map +1 -1
  286. package/lib/typescript/commonjs/src/modules/auth/reset-password/components/form/reset-password-form-provider.d.ts.map +1 -1
  287. package/lib/typescript/commonjs/src/modules/auth/session/logout-session.d.ts.map +1 -1
  288. package/lib/typescript/commonjs/src/modules/auth/session/session-store-refresh.d.ts +8 -0
  289. package/lib/typescript/commonjs/src/modules/auth/session/session-store-refresh.d.ts.map +1 -0
  290. package/lib/typescript/commonjs/src/modules/auth/session/session-store-request-state.d.ts +23 -0
  291. package/lib/typescript/commonjs/src/modules/auth/session/session-store-request-state.d.ts.map +1 -0
  292. package/lib/typescript/commonjs/src/modules/auth/session/session-store-types.d.ts +33 -0
  293. package/lib/typescript/commonjs/src/modules/auth/session/session-store-types.d.ts.map +1 -0
  294. package/lib/typescript/commonjs/src/modules/auth/session/session-store.d.ts +1 -18
  295. package/lib/typescript/commonjs/src/modules/auth/session/session-store.d.ts.map +1 -1
  296. package/lib/typescript/commonjs/src/modules/auth/utils/sign-in-error.d.ts +4 -2
  297. package/lib/typescript/commonjs/src/modules/auth/utils/sign-in-error.d.ts.map +1 -1
  298. package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  299. package/lib/typescript/commonjs/src/modules/bt-management/hooks/declined-device-storage.d.ts +10 -1
  300. package/lib/typescript/commonjs/src/modules/bt-management/hooks/declined-device-storage.d.ts.map +1 -1
  301. package/lib/typescript/commonjs/src/modules/bt-management/hooks/nearby-device-offer-state.d.ts +6 -0
  302. package/lib/typescript/commonjs/src/modules/bt-management/hooks/nearby-device-offer-state.d.ts.map +1 -0
  303. package/lib/typescript/commonjs/src/modules/bt-management/hooks/nearby-device-offer-types.d.ts +15 -0
  304. package/lib/typescript/commonjs/src/modules/bt-management/hooks/nearby-device-offer-types.d.ts.map +1 -0
  305. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-nearby-device-offer.d.ts +6 -14
  306. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-nearby-device-offer.d.ts.map +1 -1
  307. package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts.map +1 -1
  308. package/lib/typescript/commonjs/src/modules/bt-management/types/background-sync.d.ts +7 -0
  309. package/lib/typescript/commonjs/src/modules/bt-management/types/background-sync.d.ts.map +1 -1
  310. package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-authorization-provider.d.ts.map +1 -1
  311. package/lib/typescript/commonjs/src/modules/data-sync/hooks/use-listen-changes.d.ts +2 -3
  312. package/lib/typescript/commonjs/src/modules/data-sync/hooks/use-listen-changes.d.ts.map +1 -1
  313. package/lib/typescript/commonjs/src/modules/data-sync/services/apple-health-sync-service.d.ts +4 -5
  314. package/lib/typescript/commonjs/src/modules/data-sync/services/apple-health-sync-service.d.ts.map +1 -1
  315. package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-authorization-provider-props.d.ts +4 -2
  316. package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-authorization-provider-props.d.ts.map +1 -1
  317. package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-sync-props.d.ts +7 -1
  318. package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-sync-props.d.ts.map +1 -1
  319. package/lib/typescript/commonjs/src/modules/data-sync/types/health-authorization-status.d.ts +2 -1
  320. package/lib/typescript/commonjs/src/modules/data-sync/types/health-authorization-status.d.ts.map +1 -1
  321. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-generic-health-data.d.ts +3 -2
  322. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-generic-health-data.d.ts.map +1 -1
  323. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-records-to-observation.d.ts.map +1 -1
  324. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-samples-to-observation.d.ts.map +1 -1
  325. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts +5 -4
  326. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
  327. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-total-samples-count.d.ts +2 -2
  328. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-total-samples-count.d.ts.map +1 -1
  329. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-data-catalog.d.ts +5 -1
  330. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-data-catalog.d.ts.map +1 -1
  331. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-record-timing.d.ts +10 -0
  332. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-record-timing.d.ts.map +1 -0
  333. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-units.d.ts.map +1 -1
  334. package/lib/typescript/commonjs/src/modules/data-sync/utils/healthkit-data-types.d.ts +6 -5
  335. package/lib/typescript/commonjs/src/modules/data-sync/utils/healthkit-data-types.d.ts.map +1 -1
  336. package/lib/typescript/commonjs/src/modules/data-sync/utils/normalize-core-health-observation.d.ts +13 -0
  337. package/lib/typescript/commonjs/src/modules/data-sync/utils/normalize-core-health-observation.d.ts.map +1 -0
  338. package/lib/typescript/commonjs/src/modules/picker-sheet/components/value-wheel-picker.d.ts +21 -0
  339. package/lib/typescript/commonjs/src/modules/picker-sheet/components/value-wheel-picker.d.ts.map +1 -0
  340. package/lib/typescript/commonjs/src/modules/picker-sheet/components/wheel-picker.d.ts +7 -3
  341. package/lib/typescript/commonjs/src/modules/picker-sheet/components/wheel-picker.d.ts.map +1 -1
  342. package/lib/typescript/commonjs/src/modules/picker-sheet/index.d.ts +1 -0
  343. package/lib/typescript/commonjs/src/modules/picker-sheet/index.d.ts.map +1 -1
  344. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/content/questionnaire-content-item.d.ts.map +1 -1
  345. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/content/questionnaire-content-specific-item.d.ts.map +1 -1
  346. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/fields/common/questionnaire-field-wrapper.d.ts.map +1 -1
  347. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/fields/questionnaire-choice-field.d.ts.map +1 -1
  348. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/fields/questionnaire-date-field.d.ts +3 -1
  349. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/fields/questionnaire-date-field.d.ts.map +1 -1
  350. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/fields/questionnaire-item-renderer.d.ts +9 -3
  351. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/fields/questionnaire-item-renderer.d.ts.map +1 -1
  352. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/fields/questionnaire-text-field.d.ts +5 -1
  353. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/fields/questionnaire-text-field.d.ts.map +1 -1
  354. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/header/questionnaire-header-title.d.ts.map +1 -1
  355. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/questionnaire-form-provider.d.ts +1 -1
  356. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/questionnaire-form-provider.d.ts.map +1 -1
  357. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/questionnaire-form.d.ts.map +1 -1
  358. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/questionnaire-navigation-provider.d.ts.map +1 -1
  359. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/hooks/use-initial-selected-values.d.ts.map +1 -1
  360. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/hooks/use-navigation-handlers.d.ts +6 -1
  361. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/hooks/use-navigation-handlers.d.ts.map +1 -1
  362. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/hooks/use-questionnaire-navigation-state.d.ts +2 -1
  363. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/hooks/use-questionnaire-navigation-state.d.ts.map +1 -1
  364. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/index.d.ts +4 -1
  365. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/index.d.ts.map +1 -1
  366. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/extended-questionnaire-item.d.ts +7 -1
  367. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/extended-questionnaire-item.d.ts.map +1 -1
  368. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-form-context-type.d.ts +6 -0
  369. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-form-context-type.d.ts.map +1 -1
  370. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-form-props.d.ts +3 -1
  371. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-form-props.d.ts.map +1 -1
  372. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-form-provider-props.d.ts +11 -0
  373. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-form-provider-props.d.ts.map +1 -1
  374. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-form-values.d.ts +5 -2
  375. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-form-values.d.ts.map +1 -1
  376. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-item-render-props.d.ts +15 -0
  377. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-item-render-props.d.ts.map +1 -0
  378. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-navigation-provider-props.d.ts +5 -0
  379. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-navigation-provider-props.d.ts.map +1 -1
  380. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/response-values.d.ts +2 -1
  381. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/response-values.d.ts.map +1 -1
  382. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/condition-utils.d.ts.map +1 -1
  383. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/conditions/fhir-condition.d.ts +9 -0
  384. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/conditions/fhir-condition.d.ts.map +1 -0
  385. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/create-answer-from-value.d.ts +7 -0
  386. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/create-answer-from-value.d.ts.map +1 -0
  387. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/fields/get-option-text.d.ts +1 -1
  388. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/fields/get-option-text.d.ts.map +1 -1
  389. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/form-utils.d.ts +4 -1
  390. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/form-utils.d.ts.map +1 -1
  391. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/form-validation.d.ts +4 -1
  392. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/form-validation.d.ts.map +1 -1
  393. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/is-answerable-questionnaire-item.d.ts +3 -0
  394. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/is-answerable-questionnaire-item.d.ts.map +1 -0
  395. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/is-valid-questionnaire-answer.d.ts +8 -0
  396. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/is-valid-questionnaire-answer.d.ts.map +1 -0
  397. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-date-utils.d.ts +5 -0
  398. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-date-utils.d.ts.map +1 -0
  399. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-item-constraints.d.ts +22 -0
  400. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-item-constraints.d.ts.map +1 -0
  401. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-item-value-constraint-validators.d.ts +10 -0
  402. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-item-value-constraint-validators.d.ts.map +1 -0
  403. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-navigation-utils.d.ts +2 -1
  404. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-navigation-utils.d.ts.map +1 -1
  405. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-picker-options.d.ts +15 -0
  406. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-picker-options.d.ts.map +1 -0
  407. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-string-constraint-validator.d.ts +5 -0
  408. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-string-constraint-validator.d.ts.map +1 -0
  409. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-submit-utils.d.ts +3 -1
  410. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-submit-utils.d.ts.map +1 -1
  411. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/translate-fhir-text.d.ts +4 -0
  412. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/translate-fhir-text.d.ts.map +1 -0
  413. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/validate-questionnaire-item-value.d.ts +6 -0
  414. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/validate-questionnaire-item-value.d.ts.map +1 -0
  415. package/lib/typescript/commonjs/src/modules/ui/components/bluetooth-state-notice.d.ts +8 -5
  416. package/lib/typescript/commonjs/src/modules/ui/components/bluetooth-state-notice.d.ts.map +1 -1
  417. package/lib/typescript/commonjs/src/modules/ui/components/prerequisite-gate.d.ts +19 -0
  418. package/lib/typescript/commonjs/src/modules/ui/components/prerequisite-gate.d.ts.map +1 -0
  419. package/lib/typescript/commonjs/src/modules/ui/default-translation.d.ts +30 -0
  420. package/lib/typescript/commonjs/src/modules/ui/default-translation.d.ts.map +1 -0
  421. package/lib/typescript/commonjs/src/modules/ui/index.d.ts +1 -0
  422. package/lib/typescript/commonjs/src/modules/ui/index.d.ts.map +1 -1
  423. package/lib/typescript/commonjs/src/polyfills/index.d.ts +7 -1
  424. package/lib/typescript/commonjs/src/polyfills/index.d.ts.map +1 -1
  425. package/lib/typescript/module/src/modules/auth/default-translation.d.ts +22 -0
  426. package/lib/typescript/module/src/modules/auth/default-translation.d.ts.map +1 -1
  427. package/lib/typescript/module/src/modules/auth/hooks/use-session.d.ts +4 -1
  428. package/lib/typescript/module/src/modules/auth/hooks/use-session.d.ts.map +1 -1
  429. package/lib/typescript/module/src/modules/auth/profile/components/profile-form-provider.d.ts.map +1 -1
  430. package/lib/typescript/module/src/modules/auth/register/components/form/register-form-provider.d.ts.map +1 -1
  431. package/lib/typescript/module/src/modules/auth/reset-password/components/form/reset-password-form-provider.d.ts.map +1 -1
  432. package/lib/typescript/module/src/modules/auth/session/logout-session.d.ts.map +1 -1
  433. package/lib/typescript/module/src/modules/auth/session/session-store-refresh.d.ts +8 -0
  434. package/lib/typescript/module/src/modules/auth/session/session-store-refresh.d.ts.map +1 -0
  435. package/lib/typescript/module/src/modules/auth/session/session-store-request-state.d.ts +23 -0
  436. package/lib/typescript/module/src/modules/auth/session/session-store-request-state.d.ts.map +1 -0
  437. package/lib/typescript/module/src/modules/auth/session/session-store-types.d.ts +33 -0
  438. package/lib/typescript/module/src/modules/auth/session/session-store-types.d.ts.map +1 -0
  439. package/lib/typescript/module/src/modules/auth/session/session-store.d.ts +1 -18
  440. package/lib/typescript/module/src/modules/auth/session/session-store.d.ts.map +1 -1
  441. package/lib/typescript/module/src/modules/auth/utils/sign-in-error.d.ts +4 -2
  442. package/lib/typescript/module/src/modules/auth/utils/sign-in-error.d.ts.map +1 -1
  443. package/lib/typescript/module/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  444. package/lib/typescript/module/src/modules/bt-management/hooks/declined-device-storage.d.ts +10 -1
  445. package/lib/typescript/module/src/modules/bt-management/hooks/declined-device-storage.d.ts.map +1 -1
  446. package/lib/typescript/module/src/modules/bt-management/hooks/nearby-device-offer-state.d.ts +6 -0
  447. package/lib/typescript/module/src/modules/bt-management/hooks/nearby-device-offer-state.d.ts.map +1 -0
  448. package/lib/typescript/module/src/modules/bt-management/hooks/nearby-device-offer-types.d.ts +15 -0
  449. package/lib/typescript/module/src/modules/bt-management/hooks/nearby-device-offer-types.d.ts.map +1 -0
  450. package/lib/typescript/module/src/modules/bt-management/hooks/use-nearby-device-offer.d.ts +6 -14
  451. package/lib/typescript/module/src/modules/bt-management/hooks/use-nearby-device-offer.d.ts.map +1 -1
  452. package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts.map +1 -1
  453. package/lib/typescript/module/src/modules/bt-management/types/background-sync.d.ts +7 -0
  454. package/lib/typescript/module/src/modules/bt-management/types/background-sync.d.ts.map +1 -1
  455. package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-authorization-provider.d.ts.map +1 -1
  456. package/lib/typescript/module/src/modules/data-sync/hooks/use-listen-changes.d.ts +2 -3
  457. package/lib/typescript/module/src/modules/data-sync/hooks/use-listen-changes.d.ts.map +1 -1
  458. package/lib/typescript/module/src/modules/data-sync/services/apple-health-sync-service.d.ts +4 -5
  459. package/lib/typescript/module/src/modules/data-sync/services/apple-health-sync-service.d.ts.map +1 -1
  460. package/lib/typescript/module/src/modules/data-sync/types/apple-health-authorization-provider-props.d.ts +4 -2
  461. package/lib/typescript/module/src/modules/data-sync/types/apple-health-authorization-provider-props.d.ts.map +1 -1
  462. package/lib/typescript/module/src/modules/data-sync/types/apple-health-sync-props.d.ts +7 -1
  463. package/lib/typescript/module/src/modules/data-sync/types/apple-health-sync-props.d.ts.map +1 -1
  464. package/lib/typescript/module/src/modules/data-sync/types/health-authorization-status.d.ts +2 -1
  465. package/lib/typescript/module/src/modules/data-sync/types/health-authorization-status.d.ts.map +1 -1
  466. package/lib/typescript/module/src/modules/data-sync/utils/convert-generic-health-data.d.ts +3 -2
  467. package/lib/typescript/module/src/modules/data-sync/utils/convert-generic-health-data.d.ts.map +1 -1
  468. package/lib/typescript/module/src/modules/data-sync/utils/convert-records-to-observation.d.ts.map +1 -1
  469. package/lib/typescript/module/src/modules/data-sync/utils/convert-samples-to-observation.d.ts.map +1 -1
  470. package/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts +5 -4
  471. package/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
  472. package/lib/typescript/module/src/modules/data-sync/utils/get-total-samples-count.d.ts +2 -2
  473. package/lib/typescript/module/src/modules/data-sync/utils/get-total-samples-count.d.ts.map +1 -1
  474. package/lib/typescript/module/src/modules/data-sync/utils/health-data-catalog.d.ts +5 -1
  475. package/lib/typescript/module/src/modules/data-sync/utils/health-data-catalog.d.ts.map +1 -1
  476. package/lib/typescript/module/src/modules/data-sync/utils/health-record-timing.d.ts +10 -0
  477. package/lib/typescript/module/src/modules/data-sync/utils/health-record-timing.d.ts.map +1 -0
  478. package/lib/typescript/module/src/modules/data-sync/utils/health-units.d.ts.map +1 -1
  479. package/lib/typescript/module/src/modules/data-sync/utils/healthkit-data-types.d.ts +6 -5
  480. package/lib/typescript/module/src/modules/data-sync/utils/healthkit-data-types.d.ts.map +1 -1
  481. package/lib/typescript/module/src/modules/data-sync/utils/normalize-core-health-observation.d.ts +13 -0
  482. package/lib/typescript/module/src/modules/data-sync/utils/normalize-core-health-observation.d.ts.map +1 -0
  483. package/lib/typescript/module/src/modules/picker-sheet/components/value-wheel-picker.d.ts +21 -0
  484. package/lib/typescript/module/src/modules/picker-sheet/components/value-wheel-picker.d.ts.map +1 -0
  485. package/lib/typescript/module/src/modules/picker-sheet/components/wheel-picker.d.ts +7 -3
  486. package/lib/typescript/module/src/modules/picker-sheet/components/wheel-picker.d.ts.map +1 -1
  487. package/lib/typescript/module/src/modules/picker-sheet/index.d.ts +1 -0
  488. package/lib/typescript/module/src/modules/picker-sheet/index.d.ts.map +1 -1
  489. package/lib/typescript/module/src/modules/questionnaire-response-form/components/content/questionnaire-content-item.d.ts.map +1 -1
  490. package/lib/typescript/module/src/modules/questionnaire-response-form/components/content/questionnaire-content-specific-item.d.ts.map +1 -1
  491. package/lib/typescript/module/src/modules/questionnaire-response-form/components/fields/common/questionnaire-field-wrapper.d.ts.map +1 -1
  492. package/lib/typescript/module/src/modules/questionnaire-response-form/components/fields/questionnaire-choice-field.d.ts.map +1 -1
  493. package/lib/typescript/module/src/modules/questionnaire-response-form/components/fields/questionnaire-date-field.d.ts +3 -1
  494. package/lib/typescript/module/src/modules/questionnaire-response-form/components/fields/questionnaire-date-field.d.ts.map +1 -1
  495. package/lib/typescript/module/src/modules/questionnaire-response-form/components/fields/questionnaire-item-renderer.d.ts +9 -3
  496. package/lib/typescript/module/src/modules/questionnaire-response-form/components/fields/questionnaire-item-renderer.d.ts.map +1 -1
  497. package/lib/typescript/module/src/modules/questionnaire-response-form/components/fields/questionnaire-text-field.d.ts +5 -1
  498. package/lib/typescript/module/src/modules/questionnaire-response-form/components/fields/questionnaire-text-field.d.ts.map +1 -1
  499. package/lib/typescript/module/src/modules/questionnaire-response-form/components/header/questionnaire-header-title.d.ts.map +1 -1
  500. package/lib/typescript/module/src/modules/questionnaire-response-form/components/questionnaire-form-provider.d.ts +1 -1
  501. package/lib/typescript/module/src/modules/questionnaire-response-form/components/questionnaire-form-provider.d.ts.map +1 -1
  502. package/lib/typescript/module/src/modules/questionnaire-response-form/components/questionnaire-form.d.ts.map +1 -1
  503. package/lib/typescript/module/src/modules/questionnaire-response-form/components/questionnaire-navigation-provider.d.ts.map +1 -1
  504. package/lib/typescript/module/src/modules/questionnaire-response-form/hooks/use-initial-selected-values.d.ts.map +1 -1
  505. package/lib/typescript/module/src/modules/questionnaire-response-form/hooks/use-navigation-handlers.d.ts +6 -1
  506. package/lib/typescript/module/src/modules/questionnaire-response-form/hooks/use-navigation-handlers.d.ts.map +1 -1
  507. package/lib/typescript/module/src/modules/questionnaire-response-form/hooks/use-questionnaire-navigation-state.d.ts +2 -1
  508. package/lib/typescript/module/src/modules/questionnaire-response-form/hooks/use-questionnaire-navigation-state.d.ts.map +1 -1
  509. package/lib/typescript/module/src/modules/questionnaire-response-form/index.d.ts +4 -1
  510. package/lib/typescript/module/src/modules/questionnaire-response-form/index.d.ts.map +1 -1
  511. package/lib/typescript/module/src/modules/questionnaire-response-form/types/extended-questionnaire-item.d.ts +7 -1
  512. package/lib/typescript/module/src/modules/questionnaire-response-form/types/extended-questionnaire-item.d.ts.map +1 -1
  513. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-form-context-type.d.ts +6 -0
  514. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-form-context-type.d.ts.map +1 -1
  515. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-form-props.d.ts +3 -1
  516. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-form-props.d.ts.map +1 -1
  517. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-form-provider-props.d.ts +11 -0
  518. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-form-provider-props.d.ts.map +1 -1
  519. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-form-values.d.ts +5 -2
  520. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-form-values.d.ts.map +1 -1
  521. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-item-render-props.d.ts +15 -0
  522. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-item-render-props.d.ts.map +1 -0
  523. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-navigation-provider-props.d.ts +5 -0
  524. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-navigation-provider-props.d.ts.map +1 -1
  525. package/lib/typescript/module/src/modules/questionnaire-response-form/types/response-values.d.ts +2 -1
  526. package/lib/typescript/module/src/modules/questionnaire-response-form/types/response-values.d.ts.map +1 -1
  527. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/condition-utils.d.ts.map +1 -1
  528. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/conditions/fhir-condition.d.ts +9 -0
  529. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/conditions/fhir-condition.d.ts.map +1 -0
  530. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/create-answer-from-value.d.ts +7 -0
  531. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/create-answer-from-value.d.ts.map +1 -0
  532. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/fields/get-option-text.d.ts +1 -1
  533. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/fields/get-option-text.d.ts.map +1 -1
  534. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/form-utils.d.ts +4 -1
  535. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/form-utils.d.ts.map +1 -1
  536. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/form-validation.d.ts +4 -1
  537. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/form-validation.d.ts.map +1 -1
  538. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/is-answerable-questionnaire-item.d.ts +3 -0
  539. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/is-answerable-questionnaire-item.d.ts.map +1 -0
  540. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/is-valid-questionnaire-answer.d.ts +8 -0
  541. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/is-valid-questionnaire-answer.d.ts.map +1 -0
  542. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-date-utils.d.ts +5 -0
  543. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-date-utils.d.ts.map +1 -0
  544. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-item-constraints.d.ts +22 -0
  545. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-item-constraints.d.ts.map +1 -0
  546. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-item-value-constraint-validators.d.ts +10 -0
  547. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-item-value-constraint-validators.d.ts.map +1 -0
  548. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-navigation-utils.d.ts +2 -1
  549. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-navigation-utils.d.ts.map +1 -1
  550. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-picker-options.d.ts +15 -0
  551. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-picker-options.d.ts.map +1 -0
  552. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-string-constraint-validator.d.ts +5 -0
  553. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-string-constraint-validator.d.ts.map +1 -0
  554. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-submit-utils.d.ts +3 -1
  555. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-submit-utils.d.ts.map +1 -1
  556. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/translate-fhir-text.d.ts +4 -0
  557. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/translate-fhir-text.d.ts.map +1 -0
  558. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/validate-questionnaire-item-value.d.ts +6 -0
  559. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/validate-questionnaire-item-value.d.ts.map +1 -0
  560. package/lib/typescript/module/src/modules/ui/components/bluetooth-state-notice.d.ts +8 -5
  561. package/lib/typescript/module/src/modules/ui/components/bluetooth-state-notice.d.ts.map +1 -1
  562. package/lib/typescript/module/src/modules/ui/components/prerequisite-gate.d.ts +19 -0
  563. package/lib/typescript/module/src/modules/ui/components/prerequisite-gate.d.ts.map +1 -0
  564. package/lib/typescript/module/src/modules/ui/default-translation.d.ts +30 -0
  565. package/lib/typescript/module/src/modules/ui/default-translation.d.ts.map +1 -0
  566. package/lib/typescript/module/src/modules/ui/index.d.ts +1 -0
  567. package/lib/typescript/module/src/modules/ui/index.d.ts.map +1 -1
  568. package/lib/typescript/module/src/polyfills/index.d.ts +7 -1
  569. package/lib/typescript/module/src/polyfills/index.d.ts.map +1 -1
  570. package/package.json +5 -8
@@ -1 +1 @@
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
+ {"version":3,"names":["MeasurementTypeKey","ObservationServiceCreator","convertGenericHealthDataToObservation","getHealthObservationDevice","withHealthRecordTiming","hasConfiguredNonLoincCoding","normalizeCoreHealthObservation","convertRecordsToObservation","props","data","client","measurementTypeKey","mode","record","isCoreMeasurementTypeKey","service","getInstance","getService","typedRecord","measurement","convertRecordToMeasurement","observationBody","generateObservationBodiesByMeasurement","typedRecordTiming","device","manufacturer","metadata","model","sourceApp","dataOrigin","recordingMethod","map","observation","time","undefined","point","start","startTime","end","endTime","applyCatalogCoding","length","value","Object","values","includes"],"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;AACxE,SAASC,sBAAsB,QAAQ,2BAAwB;AAC/D,SACEC,2BAA2B,EAC3BC,8BAA8B,QACzB,wCAAqC;AAE5C,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,OAAOV,qCAAqC,CAAC;MAAE,GAAGM,KAAK;MAAEI;IAAK,CAAC,CAAC;EAClE;EAEA,MAAMC,MAAM,GAAGJ,IAAI,CAAC,CAAC,CAAC;EAEtB,IAAI,CAACI,MAAM,EAAE;IACX,OAAO,EAAE;EACX;EAEA,IAAIR,2BAA2B,CAACG,KAAK,CAAC,EAAE;IACtC,OAAON,qCAAqC,CAAC;MAAE,GAAGM,KAAK;MAAEI;IAAK,CAAC,CAAC;EAClE;EAEA,IAAI,CAACE,wBAAwB,CAACH,kBAAkB,CAAC,EAAE;IACjD,OAAOT,qCAAqC,CAAC;MAAE,GAAGM,KAAK;MAAEI;IAAK,CAAC,CAAC;EAClE;EAEA,MAAMG,OAAO,GAAGd,yBAAyB,CAACe,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,iBAAiB,GAAGV,MAIzB;EAED,MAAMW,MAAM,GAAGrB,0BAA0B,CAAC;IACxCsB,YAAY,EAAEP,WAAW,CAACQ,QAAQ,EAAEF,MAAM,EAAEC,YAAY;IACxDE,KAAK,EAAET,WAAW,CAACQ,QAAQ,EAAEF,MAAM,EAAEG,KAAK;IAC1CC,SAAS,EAAEV,WAAW,CAACQ,QAAQ,EAAEG,UAAU;IAC3CC,eAAe,EAAEZ,WAAW,CAACQ,QAAQ,EAAEI;EACzC,CAAC,CAAC;EAEF,OAAOT,eAAe,CAACU,GAAG,CAAEC,WAAW,IACrC1B,8BAA8B,CAC5BF,sBAAsB,CACpB;IACE,GAAG4B,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;EACR,CAAC,EACDD,iBAAiB,CAACU,IAAI,KAAKC,SAAS,GAChC;IAAEC,KAAK,EAAEZ,iBAAiB,CAACU;EAAK,CAAC,GACjC;IACEG,KAAK,EAAEb,iBAAiB,CAACc,SAAS;IAClCC,GAAG,EAAEf,iBAAiB,CAACgB;EACzB,CACN,CAAC,EACD;IACE,GAAG/B,KAAK;IACRgC,kBAAkB,EAAEnB,eAAe,CAACoB,MAAM,KAAK,CAAC,IAAIhC,IAAI,CAACgC,MAAM,KAAK;EACtE,CACF,CACF,CAAC;AACH,CAAC;AAED,MAAM3B,wBAAwB,GAC5B4B,KAAa,IAEbC,MAAM,CAACC,MAAM,CAAC5C,kBAAkB,CAAC,CAAC6C,QAAQ,CAACH,KAA2B,CAAC","ignoreList":[]}
@@ -3,6 +3,8 @@
3
3
  import { MeasurementTypeKey, ObservationServiceCreator } from "@ovok/core";
4
4
  import { convertGenericHealthDataToObservation } from "./convert-generic-health-data.js";
5
5
  import { getHealthObservationDevice } from "./health-observation-device.js";
6
+ import { withHealthRecordTiming } from "./health-record-timing.js";
7
+ import { hasConfiguredNonLoincCoding, normalizeCoreHealthObservation } from "./normalize-core-health-observation.js";
6
8
  export const convertSamplesToObservation = async props => {
7
9
  const {
8
10
  data,
@@ -19,6 +21,12 @@ export const convertSamplesToObservation = async props => {
19
21
  if (data.length === 0) {
20
22
  return [];
21
23
  }
24
+ if (hasConfiguredNonLoincCoding(props)) {
25
+ return convertGenericHealthDataToObservation({
26
+ ...props,
27
+ mode
28
+ });
29
+ }
22
30
  if (!isCoreMeasurementTypeKey(measurementTypeKey)) {
23
31
  return convertGenericHealthDataToObservation({
24
32
  ...props,
@@ -40,16 +48,21 @@ export const convertSamplesToObservation = async props => {
40
48
  model: sample.device?.model,
41
49
  sourceApp: sample.sourceRevision?.source?.name
42
50
  }) : undefined;
43
- return {
51
+ return normalizeCoreHealthObservation(withHealthRecordTiming({
44
52
  ...observation,
45
53
  ...(device ? {
46
54
  device: {
47
55
  ...(observation.device ?? {}),
48
56
  ...device
49
57
  }
50
- } : {}),
51
- effectiveDateTime: sample?.endDate?.toISOString() || sample?.startDate?.toISOString() || observation.effectiveDateTime
52
- };
58
+ } : {})
59
+ }, {
60
+ start: sample?.startDate,
61
+ end: sample?.endDate
62
+ }), {
63
+ ...props,
64
+ applyCatalogCoding: observationBody.length === 1 && data.length === 1
65
+ });
53
66
  });
54
67
  };
55
68
  const isCoreMeasurementTypeKey = value => Object.values(MeasurementTypeKey).includes(value);
@@ -1 +1 @@
1
- {"version":3,"names":["MeasurementTypeKey","ObservationServiceCreator","convertGenericHealthDataToObservation","getHealthObservationDevice","convertSamplesToObservation","props","data","client","measurementTypeKey","mode","length","isCoreMeasurementTypeKey","service","getInstance","getService","measurement","convertSamplesToMeasurement","observationBody","generateObservationBodiesByMeasurement","map","observation","index","sample","device","manufacturer","model","sourceApp","sourceRevision","source","name","undefined","effectiveDateTime","endDate","toISOString","startDate","value","Object","values","includes"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/convert-samples-to-observation.ts"],"mappings":";;AAKA,SAASA,kBAAkB,EAAEC,yBAAyB,QAAgB,YAAY;AAIlF,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,IAAIH,IAAI,CAACI,MAAM,KAAK,CAAC,EAAE;IACrB,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,GAAGH,OAAO,CAACI,2BAA2B,CACrDV,IACF,CAAC;EAED,IAAI,CAACS,WAAW,EAAE;IAChB,OAAO,EAAE;EACX;EAEA,MAAME,eAAe,GAAG,MAAMV,MAAM,CAACW,sCAAsC,CAAC;IAC1EH;EACF,CAAC,CAAC;EAEF,OAAOE,eAAe,CAACE,GAAG,CAAC,CAACC,WAAW,EAAEC,KAAK,KAAK;IACjD,MAAMC,MAAM,GAAGhB,IAAI,GAAGe,KAAK,CAA2D;IAEtF,MAAME,MAAM,GAAGD,MAAM,GACjBnB,0BAA0B,CAAC;MACzBqB,YAAY,EAAEF,MAAM,CAACC,MAAM,EAAEC,YAAY;MACzCC,KAAK,EAAEH,MAAM,CAACC,MAAM,EAAEE,KAAK;MAC3BC,SAAS,EAAEJ,MAAM,CAACK,cAAc,EAAEC,MAAM,EAAEC;IAC5C,CAAC,CAAC,GACFC,SAAS;IAEb,OAAO;MACL,GAAGV,WAAW;MACd,IAAIG,MAAM,GACN;QAAEA,MAAM,EAAE;UAAE,IAAIH,WAAW,CAACG,MAAM,IAAI,CAAC,CAAC,CAAC;UAAE,GAAGA;QAAO;MAAE,CAAC,GACxD,CAAC,CAAC,CAAC;MACPQ,iBAAiB,EACfT,MAAM,EAAEU,OAAO,EAAEC,WAAW,CAAC,CAAC,IAC9BX,MAAM,EAAEY,SAAS,EAAED,WAAW,CAAC,CAAC,IAChCb,WAAW,CAACW;IAChB,CAAC;EACH,CAAC,CAAC;AACJ,CAAC;AAED,MAAMpB,wBAAwB,GAC5BwB,KAAa,IAEbC,MAAM,CAACC,MAAM,CAACrC,kBAAkB,CAAC,CAACsC,QAAQ,CAACH,KAA2B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["MeasurementTypeKey","ObservationServiceCreator","convertGenericHealthDataToObservation","getHealthObservationDevice","withHealthRecordTiming","hasConfiguredNonLoincCoding","normalizeCoreHealthObservation","convertSamplesToObservation","props","data","client","measurementTypeKey","mode","length","isCoreMeasurementTypeKey","service","getInstance","getService","measurement","convertSamplesToMeasurement","observationBody","generateObservationBodiesByMeasurement","map","observation","index","sample","device","manufacturer","model","sourceApp","sourceRevision","source","name","undefined","start","startDate","end","endDate","applyCatalogCoding","value","Object","values","includes"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/convert-samples-to-observation.ts"],"mappings":";;AAKA,SAASA,kBAAkB,EAAEC,yBAAyB,QAAgB,YAAY;AAIlF,SAASC,qCAAqC,QAAQ,kCAA+B;AACrF,SAASC,0BAA0B,QAAQ,gCAA6B;AACxE,SAASC,sBAAsB,QAAQ,2BAAwB;AAC/D,SACEC,2BAA2B,EAC3BC,8BAA8B,QACzB,wCAAqC;AAE5C,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,OAAOV,qCAAqC,CAAC;MAAE,GAAGM,KAAK;MAAEI;IAAK,CAAC,CAAC;EAClE;EAEA,IAAIH,IAAI,CAACI,MAAM,KAAK,CAAC,EAAE;IACrB,OAAO,EAAE;EACX;EAEA,IAAIR,2BAA2B,CAACG,KAAK,CAAC,EAAE;IACtC,OAAON,qCAAqC,CAAC;MAAE,GAAGM,KAAK;MAAEI;IAAK,CAAC,CAAC;EAClE;EAEA,IAAI,CAACE,wBAAwB,CAACH,kBAAkB,CAAC,EAAE;IACjD,OAAOT,qCAAqC,CAAC;MAAE,GAAGM,KAAK;MAAEI;IAAK,CAAC,CAAC;EAClE;EAEA,MAAMG,OAAO,GAAGd,yBAAyB,CAACe,WAAW,CAAC,CAAC,CAACC,UAAU,CAChEN,kBACF,CAAC;EAED,MAAMO,WAAW,GAAGH,OAAO,CAACI,2BAA2B,CACrDV,IACF,CAAC;EAED,IAAI,CAACS,WAAW,EAAE;IAChB,OAAO,EAAE;EACX;EAEA,MAAME,eAAe,GAAG,MAAMV,MAAM,CAACW,sCAAsC,CAAC;IAC1EH;EACF,CAAC,CAAC;EAEF,OAAOE,eAAe,CAACE,GAAG,CAAC,CAACC,WAAW,EAAEC,KAAK,KAAK;IACjD,MAAMC,MAAM,GAAGhB,IAAI,GAAGe,KAAK,CAA2D;IAEtF,MAAME,MAAM,GAAGD,MAAM,GACjBtB,0BAA0B,CAAC;MACzBwB,YAAY,EAAEF,MAAM,CAACC,MAAM,EAAEC,YAAY;MACzCC,KAAK,EAAEH,MAAM,CAACC,MAAM,EAAEE,KAAK;MAC3BC,SAAS,EAAEJ,MAAM,CAACK,cAAc,EAAEC,MAAM,EAAEC;IAC5C,CAAC,CAAC,GACFC,SAAS;IAEb,OAAO3B,8BAA8B,CACnCF,sBAAsB,CACpB;MACE,GAAGmB,WAAW;MACd,IAAIG,MAAM,GACN;QAAEA,MAAM,EAAE;UAAE,IAAIH,WAAW,CAACG,MAAM,IAAI,CAAC,CAAC,CAAC;UAAE,GAAGA;QAAO;MAAE,CAAC,GACxD,CAAC,CAAC;IACR,CAAC,EACD;MAAEQ,KAAK,EAAET,MAAM,EAAEU,SAAS;MAAEC,GAAG,EAAEX,MAAM,EAAEY;IAAQ,CACnD,CAAC,EACD;MACE,GAAG7B,KAAK;MACR8B,kBAAkB,EAAElB,eAAe,CAACP,MAAM,KAAK,CAAC,IAAIJ,IAAI,CAACI,MAAM,KAAK;IACtE,CACF,CAAC;EACH,CAAC,CAAC;AACJ,CAAC;AAED,MAAMC,wBAAwB,GAC5ByB,KAAa,IAEbC,MAAM,CAACC,MAAM,CAACzC,kBAAkB,CAAC,CAAC0C,QAAQ,CAACH,KAA2B,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["Healthkit","HKStatisticsOptions","HKWorkoutTypeIdentifier","UnitOfEnergy","addDays","addSeconds","startOfDay","subDays","DEFAULT_HEALTH_SYNC_CHUNK_SIZE","healthUnitFor","isCategoryIdentifier","isCorrelationIdentifier","isQuantityIdentifier","UnsupportedHealthKitDataError","unsupportedHealthKitTypeReason","getSamplesFromHealth","startDate","_startDate","typeIdentifier","anchor","chunkSize","mode","Date","endDate","getDailyStatistics","options","from","to","limit","queryWorkoutSamplesWithAnchor","result","energyUnit","Kilocalories","distanceUnit","data","undefined","samples","deletedRecordIds","deletedSamples","newAnchor","queryHeartbeatSeriesSamplesWithAnchor","queryCategorySamplesWithAnchor","queryCorrelationSamples","queryStateOfMindSamples","ascending","queryQuantitySamplesWithAnchor","unit","recordIds","map","uuid","length","firstDay","today","cumulativeSum","discreteAverage","discreteMin","discreteMax","statistics","queryStatisticsCollectionForQuantity","day","flatMap","statistic","index","dayStart","dayEnd","total","sumQuantity","quantity","average","averageQuantity","minimum","minimumQuantity","maximum","maximumQuantity","kind","value"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/get-samples-from-health.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Healthkit","HKStatisticsOptions","HKWorkoutTypeIdentifier","UnitOfEnergy","addDays","addSeconds","startOfDay","subDays","DEFAULT_HEALTH_SYNC_CHUNK_SIZE","healthUnitFor","isCategoryIdentifier","isCorrelationIdentifier","isQuantityIdentifier","UnsupportedHealthKitDataError","unsupportedHealthKitTypeReason","getSamplesFromHealth","startDate","_startDate","typeIdentifier","anchor","chunkSize","mode","Date","endDate","getDailyStatistics","options","from","to","limit","queryWorkoutSamplesWithAnchor","result","energyUnit","Kilocalories","distanceUnit","data","undefined","samples","deletedRecordIds","deletedSamples","newAnchor","queryHeartbeatSeriesSamplesWithAnchor","queryCategorySamplesWithAnchor","queryCorrelationSamples","queryStateOfMindSamples","ascending","queryQuantitySamplesWithAnchor","unit","recordIds","map","uuid","length","firstDay","today","cumulativeSum","discreteAverage","discreteMin","discreteMax","statistics","queryStatisticsCollectionForQuantity","day","flatMap","statistic","index","dayStart","dayEnd","total","sumQuantity","quantity","average","averageQuantity","minimum","minimumQuantity","maximum","maximumQuantity","kind","value"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/get-samples-from-health.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["Healthkit","addSeconds","getSamplesFromHealth","healthUnitFor","getTotalSamplesCount","props","typeIdentifier","startDate","_startDate","anchor","mode","isQuantityIdentifier","result","data","length","undefined","queryQuantitySamplesWithAnchor","from","to","Date","unit","samples","startsWith"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/get-total-samples-count.ts"],"mappings":";;AAAA,OAAOA,SAAS,MAGT,oCAAoC;AAC3C,SAASC,UAAU,QAAQ,UAAU;AAIrC,SAASC,oBAAoB,QAAQ,8BAA2B;AAChE,SAASC,aAAa,QAAQ,mBAAgB;AAE9C,OAAO,MAAMC,oBAAoB,GAAG,MAClCC,KAAiD,IAC7B;EACpB,MAAM;IAAEC,cAAc;IAAEC,SAAS,EAAEC,UAAU;IAAEC,MAAM;IAAEC,IAAI,GAAG;EAAQ,CAAC,GAAGL,KAAK;EAE/E,IAAIK,IAAI,KAAK,OAAO,IAAI,CAACC,oBAAoB,CAACL,cAAc,CAAC,EAAE;IAC7D,IAAI;MACF,MAAMM,MAAM,GAAG,MAAMV,oBAAoB,CAACG,KAAK,CAAC;MAEhD,OAAOO,MAAM,CAACC,IAAI,CAACC,MAAM;IAC3B,CAAC,CAAC,MAAM;MACN,OAAO,CAAC;IACV;EACF;EAEA,MAAMP,SAAS,GAAGC,UAAU,GAAGP,UAAU,CAACO,UAAU,EAAE,CAAC,CAAC,GAAGO,SAAS;EAEpE,IAAI;IACF,MAAMH,MAAM,GAAG,MAAMZ,SAAS,CAACgB,8BAA8B,CAC3DV,cAAc,EACd;MACEW,IAAI,EAAEV,SAAS;MACfW,EAAE,EAAE,IAAIC,IAAI,CAAC,CAAC;MACdV,MAAM;MACNW,IAAI,EAAEjB,aAAa,CAACG,cAAc;IACpC,CACF,CAAC;IAED,OAAOM,MAAM,EAAES,OAAO,EAAEP,MAAM,IAAI,CAAC;EACrC,CAAC,CAAC,MAAM;IACN,OAAO,CAAC;EACV;AACF,CAAC;AAED,MAAMH,oBAAoB,GACxBL,cAAsC,IAEtC,OAAOA,cAAc,KAAK,QAAQ,IAClCA,cAAc,CAACgB,UAAU,CAAC,0BAA0B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Healthkit","addSeconds","getSamplesFromHealth","healthUnitFor","getTotalSamplesCount","props","typeIdentifier","startDate","_startDate","anchor","mode","isQuantityIdentifier","result","data","length","undefined","queryQuantitySamplesWithAnchor","from","to","Date","unit","samples","startsWith"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/get-total-samples-count.ts"],"mappings":";;AAAA,OAAOA,SAAS,MAET,oCAAoC;AAC3C,SAASC,UAAU,QAAQ,UAAU;AAKrC,SAASC,oBAAoB,QAAQ,8BAA2B;AAChE,SAASC,aAAa,QAAQ,mBAAgB;AAE9C,OAAO,MAAMC,oBAAoB,GAAG,MAClCC,KAAwD,IACpC;EACpB,MAAM;IAAEC,cAAc;IAAEC,SAAS,EAAEC,UAAU;IAAEC,MAAM;IAAEC,IAAI,GAAG;EAAQ,CAAC,GAAGL,KAAK;EAE/E,IAAIK,IAAI,KAAK,OAAO,IAAI,CAACC,oBAAoB,CAACL,cAAc,CAAC,EAAE;IAC7D,IAAI;MACF,MAAMM,MAAM,GAAG,MAAMV,oBAAoB,CAACG,KAAK,CAAC;MAEhD,OAAOO,MAAM,CAACC,IAAI,CAACC,MAAM;IAC3B,CAAC,CAAC,MAAM;MACN,OAAO,CAAC;IACV;EACF;EAEA,MAAMP,SAAS,GAAGC,UAAU,GAAGP,UAAU,CAACO,UAAU,EAAE,CAAC,CAAC,GAAGO,SAAS;EAEpE,IAAI;IACF,MAAMH,MAAM,GAAG,MAAMZ,SAAS,CAACgB,8BAA8B,CAC3DV,cAAc,EACd;MACEW,IAAI,EAAEV,SAAS;MACfW,EAAE,EAAE,IAAIC,IAAI,CAAC,CAAC;MACdV,MAAM;MACNW,IAAI,EAAEjB,aAAa,CAACG,cAAc;IACpC,CACF,CAAC;IAED,OAAOM,MAAM,EAAES,OAAO,EAAEP,MAAM,IAAI,CAAC;EACrC,CAAC,CAAC,MAAM;IACN,OAAO,CAAC;EACV;AACF,CAAC;AAED,MAAMH,oBAAoB,GACxBL,cAA6C,IAE7C,OAAOA,cAAc,KAAK,QAAQ,IAClCA,cAAc,CAACgB,UAAU,CAAC,0BAA0B,CAAC","ignoreList":[]}
@@ -5,10 +5,12 @@
5
5
  import { healthUnitFor } from "./health-units.js";
6
6
  const HEALTH_CONNECT_PERMISSION_PREFIX = "android.permission.health.READ_";
7
7
  const HEALTH_CONNECT_CODE_SYSTEM = "urn:ovok:health-connect:record-type";
8
+ const HEALTH_CONNECT_MEDICAL_CODE_SYSTEM = "urn:ovok:health-connect:medical-resource-type";
8
9
  const HEALTHKIT_CODE_SYSTEM = "urn:ovok:healthkit:sample-type";
9
10
  const APPLE_HEALTH_IDENTIFIERS = {
10
11
  height: "HKQuantityTypeIdentifierHeight",
11
12
  bodyMass: "HKQuantityTypeIdentifierBodyMass",
13
+ bodyMassIndex: "HKQuantityTypeIdentifierBodyMassIndex",
12
14
  bodyTemperature: "HKQuantityTypeIdentifierBodyTemperature",
13
15
  systolicBloodPressure: "HKQuantityTypeIdentifierBloodPressureSystolic",
14
16
  diastolicBloodPressure: "HKQuantityTypeIdentifierBloodPressureDiastolic",
@@ -22,54 +24,80 @@ const appleLoincMappings = {
22
24
  [APPLE_HEALTH_IDENTIFIERS.height]: {
23
25
  code: "8302-2",
24
26
  display: "Body height",
27
+ release: "2.83",
28
+ status: "Active",
25
29
  sourceUrl: "https://loinc.org/8302-2",
26
30
  modes: ["point"]
27
31
  },
28
32
  [APPLE_HEALTH_IDENTIFIERS.bodyMass]: {
29
33
  code: "29463-7",
30
34
  display: "Body weight",
35
+ release: "2.83",
36
+ status: "Active",
31
37
  sourceUrl: "https://loinc.org/29463-7",
32
38
  modes: ["point"]
33
39
  },
40
+ [APPLE_HEALTH_IDENTIFIERS.bodyMassIndex]: {
41
+ code: "39156-5",
42
+ display: "Body mass index (BMI) [Ratio]",
43
+ release: "2.83",
44
+ status: "Active",
45
+ sourceUrl: "https://loinc.org/39156-5",
46
+ modes: ["point"]
47
+ },
34
48
  [APPLE_HEALTH_IDENTIFIERS.bodyTemperature]: {
35
49
  code: "8310-5",
36
50
  display: "Body temperature",
51
+ release: "2.83",
52
+ status: "Active",
37
53
  sourceUrl: "https://loinc.org/8310-5",
38
54
  modes: ["point"]
39
55
  },
40
56
  [APPLE_HEALTH_IDENTIFIERS.systolicBloodPressure]: {
41
57
  code: "8480-6",
42
58
  display: "Systolic blood pressure",
59
+ release: "2.83",
60
+ status: "Active",
43
61
  sourceUrl: "https://loinc.org/8480-6",
44
62
  modes: ["point"]
45
63
  },
46
64
  [APPLE_HEALTH_IDENTIFIERS.diastolicBloodPressure]: {
47
65
  code: "8462-4",
48
66
  display: "Diastolic blood pressure",
67
+ release: "2.83",
68
+ status: "Active",
49
69
  sourceUrl: "https://loinc.org/8462-4",
50
70
  modes: ["point"]
51
71
  },
52
72
  [APPLE_HEALTH_IDENTIFIERS.heartRate]: {
53
73
  code: "8867-4",
54
74
  display: "Heart rate",
75
+ release: "2.83",
76
+ status: "Active",
55
77
  sourceUrl: "https://loinc.org/8867-4",
56
78
  modes: ["point"]
57
79
  },
58
80
  [APPLE_HEALTH_IDENTIFIERS.restingHeartRate]: {
59
81
  code: "40443-4",
60
82
  display: "Heart rate --resting",
83
+ release: "2.83",
84
+ status: "Active",
61
85
  sourceUrl: "https://loinc.org/40443-4",
62
86
  modes: ["point"]
63
87
  },
64
88
  [APPLE_HEALTH_IDENTIFIERS.heartRateVariabilitySDNN]: {
65
89
  code: "112429-6",
66
90
  display: "Heart rate variability SDNN [Time]",
91
+ release: "2.83",
92
+ status: "Active",
67
93
  sourceUrl: "https://loinc.org/112429-6",
68
94
  modes: ["point"]
69
95
  },
70
96
  [APPLE_HEALTH_IDENTIFIERS.respiratoryRate]: {
71
97
  code: "9279-1",
72
98
  display: "Respiratory rate",
99
+ release: "2.83",
100
+ status: "Active",
73
101
  sourceUrl: "https://loinc.org/9279-1",
74
102
  modes: ["point"]
75
103
  }
@@ -83,17 +111,22 @@ const appleQuantityIdentifiers = ["HKQuantityTypeIdentifierBodyMassIndex", "HKQu
83
111
  // The HealthKit wrapper's native entry point does not export the category and
84
112
  // correlation enums at runtime on every platform, so keep their identifiers as
85
113
  // explicit catalog data instead of enumerating a platform-specific value.
86
- const appleCategoryIdentifiers = ["HKCategoryTypeIdentifierSleepAnalysis", "HKCategoryTypeIdentifierAppleStandHour", "HKCategoryTypeIdentifierCervicalMucusQuality", "HKCategoryTypeIdentifierOvulationTestResult", "HKCategoryTypeIdentifierMenstrualFlow", "HKCategoryTypeIdentifierIntermenstrualBleeding", "HKCategoryTypeIdentifierSexualActivity", "HKCategoryTypeIdentifierMindfulSession", "HKCategoryTypeIdentifierHighHeartRateEvent", "HKCategoryTypeIdentifierLowHeartRateEvent", "HKCategoryTypeIdentifierIrregularHeartRhythmEvent", "HKCategoryTypeIdentifierAudioExposureEvent", "HKCategoryTypeIdentifierToothbrushingEvent", "HKCategoryTypeIdentifierLowCardioFitnessEvent", "HKCategoryTypeIdentifierContraceptive", "HKCategoryTypeIdentifierLactation", "HKCategoryTypeIdentifierPregnancy", "HKCategoryTypeIdentifierPregnancyTestResult", "HKCategoryTypeIdentifierProgesteroneTestResult", "HKCategoryTypeIdentifierEnvironmentalAudioExposureEvent", "HKCategoryTypeIdentifierHeadphoneAudioExposureEvent", "HKCategoryTypeIdentifierAppleWalkingSteadinessEvent", "HKCategoryTypeIdentifierHandwashingEvent", "HKCategoryTypeIdentifierAbdominalCramps", "HKCategoryTypeIdentifierAcne", "HKCategoryTypeIdentifierAppetiteChanges", "HKCategoryTypeIdentifierBladderIncontinence", "HKCategoryTypeIdentifierBloating", "HKCategoryTypeIdentifierBreastPain", "HKCategoryTypeIdentifierChestTightnessOrPain", "HKCategoryTypeIdentifierChills", "HKCategoryTypeIdentifierConstipation", "HKCategoryTypeIdentifierCoughing", "HKCategoryTypeIdentifierDiarrhea", "HKCategoryTypeIdentifierDizziness", "HKCategoryTypeIdentifierDrySkin", "HKCategoryTypeIdentifierFainting", "HKCategoryTypeIdentifierFatigue", "HKCategoryTypeIdentifierFever", "HKCategoryTypeIdentifierGeneralizedBodyAche", "HKCategoryTypeIdentifierHairLoss", "HKCategoryTypeIdentifierHeadache", "HKCategoryTypeIdentifierHeartburn", "HKCategoryTypeIdentifierHotFlashes", "HKCategoryTypeIdentifierLossOfSmell", "HKCategoryTypeIdentifierLossOfTaste", "HKCategoryTypeIdentifierLowerBackPain", "HKCategoryTypeIdentifierMemoryLapse", "HKCategoryTypeIdentifierMoodChanges", "HKCategoryTypeIdentifierNausea", "HKCategoryTypeIdentifierNightSweats", "HKCategoryTypeIdentifierPelvicPain", "HKCategoryTypeIdentifierRapidPoundingOrFlutteringHeartbeat", "HKCategoryTypeIdentifierRunnyNose", "HKCategoryTypeIdentifierShortnessOfBreath", "HKCategoryTypeIdentifierSinusCongestion", "HKCategoryTypeIdentifierSkippedHeartbeat", "HKCategoryTypeIdentifierSleepChanges", "HKCategoryTypeIdentifierSoreThroat", "HKCategoryTypeIdentifierVaginalDryness", "HKCategoryTypeIdentifierVomiting", "HKCategoryTypeIdentifierWheezing", "HKCategoryTypeIdentifierBleedingAfterPregnancy", "HKCategoryTypeIdentifierBleedingDuringPregnancy"];
114
+ const appleCategoryIdentifiers = ["HKCategoryTypeIdentifierSleepAnalysis", "HKCategoryTypeIdentifierAppleStandHour", "HKCategoryTypeIdentifierCervicalMucusQuality", "HKCategoryTypeIdentifierOvulationTestResult", "HKCategoryTypeIdentifierMenstrualFlow", "HKCategoryTypeIdentifierIntermenstrualBleeding", "HKCategoryTypeIdentifierSexualActivity", "HKCategoryTypeIdentifierMindfulSession", "HKCategoryTypeIdentifierHighHeartRateEvent", "HKCategoryTypeIdentifierLowHeartRateEvent", "HKCategoryTypeIdentifierIrregularHeartRhythmEvent", "HKCategoryTypeIdentifierAudioExposureEvent", "HKCategoryTypeIdentifierToothbrushingEvent", "HKCategoryTypeIdentifierLowCardioFitnessEvent", "HKCategoryTypeIdentifierContraceptive", "HKCategoryTypeIdentifierLactation", "HKCategoryTypeIdentifierPregnancy", "HKCategoryTypeIdentifierPregnancyTestResult", "HKCategoryTypeIdentifierProgesteroneTestResult", "HKCategoryTypeIdentifierEnvironmentalAudioExposureEvent", "HKCategoryTypeIdentifierHeadphoneAudioExposureEvent", "HKCategoryTypeIdentifierAppleWalkingSteadinessEvent", "HKCategoryTypeIdentifierHandwashingEvent", "HKCategoryTypeIdentifierAbdominalCramps", "HKCategoryTypeIdentifierAcne", "HKCategoryTypeIdentifierAppetiteChanges", "HKCategoryTypeIdentifierBladderIncontinence", "HKCategoryTypeIdentifierBloating", "HKCategoryTypeIdentifierBreastPain", "HKCategoryTypeIdentifierChestTightnessOrPain", "HKCategoryTypeIdentifierChills", "HKCategoryTypeIdentifierConstipation", "HKCategoryTypeIdentifierCoughing", "HKCategoryTypeIdentifierDiarrhea", "HKCategoryTypeIdentifierDizziness", "HKCategoryTypeIdentifierDrySkin", "HKCategoryTypeIdentifierFainting", "HKCategoryTypeIdentifierFatigue", "HKCategoryTypeIdentifierFever", "HKCategoryTypeIdentifierGeneralizedBodyAche", "HKCategoryTypeIdentifierHairLoss", "HKCategoryTypeIdentifierHeadache", "HKCategoryTypeIdentifierHeartburn", "HKCategoryTypeIdentifierHotFlashes", "HKCategoryTypeIdentifierLossOfSmell", "HKCategoryTypeIdentifierLossOfTaste", "HKCategoryTypeIdentifierLowerBackPain", "HKCategoryTypeIdentifierMemoryLapse", "HKCategoryTypeIdentifierMoodChanges", "HKCategoryTypeIdentifierNausea", "HKCategoryTypeIdentifierNightSweats", "HKCategoryTypeIdentifierPelvicPain", "HKCategoryTypeIdentifierRapidPoundingOrFlutteringHeartbeat", "HKCategoryTypeIdentifierRunnyNose", "HKCategoryTypeIdentifierShortnessOfBreath", "HKCategoryTypeIdentifierSinusCongestion", "HKCategoryTypeIdentifierSkippedHeartbeat", "HKCategoryTypeIdentifierSleepChanges", "HKCategoryTypeIdentifierSoreThroat", "HKCategoryTypeIdentifierVaginalDryness", "HKCategoryTypeIdentifierVomiting", "HKCategoryTypeIdentifierWheezing", "HKCategoryTypeIdentifierBleedingAfterPregnancy", "HKCategoryTypeIdentifierBleedingDuringPregnancy", "HKCategoryTypeIdentifierSleepApneaEvent"];
87
115
  const appleCorrelationIdentifiers = ["HKCorrelationTypeIdentifierBloodPressure", "HKCorrelationTypeIdentifierFood"];
116
+ const appleCharacteristicTypes = [["HKCharacteristicTypeIdentifierBiologicalSex", "getBiologicalSex"], ["HKCharacteristicTypeIdentifierBloodType", "getBloodType"], ["HKCharacteristicTypeIdentifierDateOfBirth", "getDateOfBirth"], ["HKCharacteristicTypeIdentifierFitzpatrickSkinType", "getFitzpatrickSkinType"], ["HKCharacteristicTypeIdentifierWheelchairUse", "getWheelchairUse"], ["HKCharacteristicTypeIdentifierActivityMoveMode", "not exposed by the pinned wrapper"]];
117
+ const assertNoMissingCatalogTypes = () => undefined;
118
+ assertNoMissingCatalogTypes();
119
+ assertNoMissingCatalogTypes();
88
120
  const healthConnectLoincMappings = {
89
121
  Height: appleLoincMappings[APPLE_HEALTH_IDENTIFIERS.height],
90
122
  Weight: appleLoincMappings[APPLE_HEALTH_IDENTIFIERS.bodyMass],
91
- HeartRate: appleLoincMappings[APPLE_HEALTH_IDENTIFIERS.heartRate],
92
123
  RestingHeartRate: appleLoincMappings[APPLE_HEALTH_IDENTIFIERS.restingHeartRate],
93
124
  RespiratoryRate: appleLoincMappings[APPLE_HEALTH_IDENTIFIERS.respiratoryRate],
94
125
  BodyWaterMass: {
95
126
  code: "101683-1",
96
127
  display: "Body water mass",
128
+ release: "2.83",
129
+ status: "Active",
97
130
  sourceUrl: "https://loinc.org/101683-1",
98
131
  modes: ["point"]
99
132
  }
@@ -107,7 +140,7 @@ const appleSupportedSamples = [...appleQuantityIdentifiers.map(identifier => ({
107
140
  readStrategy: "Anchored HealthKit quantity query",
108
141
  fhirResource: "Observation",
109
142
  sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
110
- unit: healthUnitFor(identifier) ?? "HealthKit preferred unit",
143
+ unit: identifier === APPLE_HEALTH_IDENTIFIERS.bodyMassIndex ? "count (serialized as kg/m2 for LOINC)" : healthUnitFor(identifier) ?? "HealthKit preferred unit",
111
144
  loincMapping: appleLoincMappings[identifier]
112
145
  })), ...appleCategoryIdentifiers.map(identifier => ({
113
146
  provider: "apple-health",
@@ -118,7 +151,11 @@ const appleSupportedSamples = [...appleQuantityIdentifiers.map(identifier => ({
118
151
  readStrategy: "Anchored HealthKit category query",
119
152
  fhirResource: "Observation",
120
153
  sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
121
- unit: "not applicable"
154
+ unit: "not applicable",
155
+ ...(identifier === "HKCategoryTypeIdentifierSleepApneaEvent" ? {
156
+ platformDocumentationUrl: "https://developer.apple.com/documentation/healthkit/hkcategorytypeidentifier/sleepapneaevent",
157
+ limitation: "HealthKit exposes this category only on compatible OS versions and devices; the pinned wrapper reads it through its generic category query, and query errors are reported through the normal sync error callback."
158
+ } : {})
122
159
  })), ...appleCorrelationIdentifiers.map(identifier => ({
123
160
  provider: "apple-health",
124
161
  identifier,
@@ -162,7 +199,43 @@ const appleSupportedSamples = [...appleQuantityIdentifiers.map(identifier => ({
162
199
  unit: "not applicable",
163
200
  limitation: "Requires iOS 18 or later; this wrapper does not expose an anchor or deleted-sample cursor."
164
201
  }];
165
- const appleExcludedTypes = [{
202
+ const appleExcludedTypes = [...[["HKScoredAssessmentTypeIdentifierGAD7", "GAD-7 assessment"], ["HKScoredAssessmentTypeIdentifierPHQ9", "PHQ-9 assessment"]].map(([identifier, display]) => ({
203
+ provider: "apple-health",
204
+ identifier,
205
+ category: "scored assessment",
206
+ shape: "sample",
207
+ readPermission: identifier,
208
+ readStrategy: "not exposed by the pinned wrapper",
209
+ fhirResource: "FHIR resource",
210
+ sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
211
+ platformDocumentationUrl: `https://developer.apple.com/documentation/healthkit/hkscoredassessmenttypeidentifier/${identifier.endsWith("GAD7") ? "gad7" : "phq9"}`,
212
+ unit: "assessment score",
213
+ limitation: `${display} is a public HealthKit scored-assessment type, but the pinned wrapper does not construct its type, query it, or preserve its assessment answers. The SDK cannot yet import it as a semantically complete FHIR resource.`
214
+ })), {
215
+ provider: "apple-health",
216
+ identifier: "HKDataTypeIdentifierUserAnnotatedMedicationConcept",
217
+ category: "medication concept",
218
+ shape: "sample",
219
+ readPermission: "HKDataTypeIdentifierUserAnnotatedMedicationConcept",
220
+ readStrategy: "not exposed by the pinned wrapper",
221
+ fhirResource: "FHIR resource",
222
+ sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
223
+ platformDocumentationUrl: "https://developer.apple.com/documentation/healthkit/hkdatatypeidentifieruserannotatedmedicationconcept",
224
+ unit: "not applicable",
225
+ limitation: "HealthKit exposes user-annotated medication concepts, but the pinned wrapper does not construct this sample type or expose its query and medication-concept serializer."
226
+ }, {
227
+ provider: "apple-health",
228
+ identifier: "HKMedicationDoseEventTypeIdentifierMedicationDoseEvent",
229
+ category: "medication dose event",
230
+ shape: "sample",
231
+ readPermission: "HKMedicationDoseEventTypeIdentifierMedicationDoseEvent",
232
+ readStrategy: "not exposed by the pinned wrapper",
233
+ fhirResource: "FHIR resource",
234
+ sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
235
+ platformDocumentationUrl: "https://developer.apple.com/documentation/healthkit/hkmedicationdoseeventtypeidentifiermedicationdoseevent",
236
+ unit: "medication-specific dose",
237
+ limitation: "HealthKit exposes medication dose events, but the pinned wrapper does not construct this sample type, query it, or map its dose/status fields to a FHIR MedicationAdministration."
238
+ }, {
166
239
  provider: "apple-health",
167
240
  identifier: "HKElectrocardiogramType",
168
241
  category: "electrocardiogram",
@@ -240,7 +313,7 @@ const appleExcludedTypes = [{
240
313
  unit: "geographic coordinates",
241
314
  limitation: "The wrapper requires a known workout UUID and the route is not a pageable sample query; routes are excluded from automatic import."
242
315
  }];
243
- const appleCharacteristics = [["HKCharacteristicTypeIdentifierBiologicalSex", "getBiologicalSex"], ["HKCharacteristicTypeIdentifierBloodType", "getBloodType"], ["HKCharacteristicTypeIdentifierDateOfBirth", "getDateOfBirth"], ["HKCharacteristicTypeIdentifierFitzpatrickSkinType", "getFitzpatrickSkinType"], ["HKCharacteristicTypeIdentifierWheelchairUse", "getWheelchairUse"], ["HKCharacteristicTypeIdentifierActivityMoveMode", "not exposed by the pinned wrapper"]].map(([identifier, readStrategy]) => ({
316
+ const appleCharacteristics = appleCharacteristicTypes.map(([identifier, readStrategy]) => ({
244
317
  provider: "apple-health",
245
318
  identifier,
246
319
  category: "characteristic",
@@ -253,6 +326,7 @@ const appleCharacteristics = [["HKCharacteristicTypeIdentifierBiologicalSex", "g
253
326
  limitation: "Characteristics are not HKSampleType values and are not accepted by dataToSync; they need a separate Patient mapping."
254
327
  }));
255
328
  const healthConnectRecords = [["ActiveCaloriesBurned", "Activity", "interval", "ACTIVE_CALORIES_BURNED", "kcal"], ["BasalBodyTemperature", "Cycle Tracking", "instantaneous", "BASAL_BODY_TEMPERATURE", "native temperature unit"], ["BasalMetabolicRate", "Body Measurement", "instantaneous", "BASAL_METABOLIC_RATE", "native power unit"], ["BloodGlucose", "Vitals", "instantaneous", "BLOOD_GLUCOSE", "native glucose unit"], ["BloodPressure", "Vitals", "instantaneous", "BLOOD_PRESSURE", "mm[Hg]"], ["BodyFat", "Body Measurement", "instantaneous", "BODY_FAT", "%"], ["BodyTemperature", "Vitals", "instantaneous", "BODY_TEMPERATURE", "native temperature unit"], ["BodyWaterMass", "Body Measurement", "instantaneous", "BODY_WATER_MASS", "kg"], ["BoneMass", "Body Measurement", "instantaneous", "BONE_MASS", "kg"], ["CervicalMucus", "Cycle Tracking", "instantaneous", "CERVICAL_MUCUS", "not applicable"], ["CyclingPedalingCadence", "Activity", "series", "EXERCISE", "rpm"], ["ElevationGained", "Activity", "interval", "ELEVATION_GAINED", "m"], ["ExerciseSession", "Activity", "interval", "EXERCISE", "record-specific"], ["FloorsClimbed", "Activity", "interval", "FLOORS_CLIMBED", "count"], ["HeartRate", "Vitals", "series", "HEART_RATE", "count/min"], ["RestingHeartRate", "Vitals", "instantaneous", "RESTING_HEART_RATE", "count/min"], ["Steps", "Activity", "interval", "STEPS", "count"], ["StepsCadence", "Activity", "series", "STEPS", "steps/min"], ["Distance", "Activity", "interval", "DISTANCE", "m"], ["Height", "Body Measurement", "instantaneous", "HEIGHT", "m"], ["Hydration", "Nutrition", "interval", "HYDRATION", "L"], ["HeartRateVariabilityRmssd", "Vitals", "instantaneous", "HEART_RATE_VARIABILITY", "ms"], ["SexualActivity", "Cycle Tracking", "instantaneous", "SEXUAL_ACTIVITY", "not applicable"], ["Weight", "Body Measurement", "instantaneous", "WEIGHT", "kg"], ["Nutrition", "Nutrition", "interval", "NUTRITION", "record-specific"], ["LeanBodyMass", "Body Measurement", "instantaneous", "LEAN_BODY_MASS", "kg"], ["IntermenstrualBleeding", "Cycle Tracking", "instantaneous", "INTERMENSTRUAL_BLEEDING", "not applicable"], ["Speed", "Activity", "series", "SPEED", "m/s"], ["MenstruationFlow", "Cycle Tracking", "instantaneous", "MENSTRUATION", "not applicable"], ["MenstruationPeriod", "Cycle Tracking", "interval", "MENSTRUATION", "not applicable"], ["SleepSession", "Sleep", "interval", "SLEEP", "min"], ["RespiratoryRate", "Vitals", "instantaneous", "RESPIRATORY_RATE", "count/min"], ["WheelchairPushes", "Activity", "interval", "WHEELCHAIR_PUSHES", "count"], ["Vo2Max", "Activity", "instantaneous", "VO2_MAX", "mL/kg/min"], ["OvulationTest", "Cycle Tracking", "instantaneous", "OVULATION_TEST", "not applicable"], ["TotalCaloriesBurned", "Activity", "interval", "TOTAL_CALORIES_BURNED", "kcal"], ["OxygenSaturation", "Vitals", "instantaneous", "OXYGEN_SATURATION", "%"], ["Power", "Activity", "series", "POWER", "W"]];
329
+ assertNoMissingCatalogTypes();
256
330
  const readPermissionOverrides = {
257
331
  CyclingPedalingCadence: "EXERCISE",
258
332
  ExerciseSession: "EXERCISE",
@@ -273,7 +347,115 @@ const healthConnectCatalog = healthConnectRecords.map(([identifier, category, sh
273
347
  unit,
274
348
  loincMapping: healthConnectLoincMappings[identifier]
275
349
  }));
350
+
351
+ // These Android API 37 record families are not in the pinned React Native
352
+ // wrapper's RecordType/readRecords implementation. Keep one row per symptom
353
+ // value because Android requires a distinct read permission for each one.
354
+ const healthConnectApi37SymptomTypes = ["ABDOMINAL_PAIN", "ACNE", "BACK_PAIN", "BLOATING", "BRAIN_FOG", "BREAST_TENDERNESS", "BRITTLE_NAILS", "BURNING_MOUTH", "CHEST_PAIN", "CHEST_TIGHTNESS", "CHILLS", "CONSTIPATION", "COUGH", "CRAMPS", "CRAVINGS", "DEHYDRATION", "DIARRHEA", "DIFFICULTY_SWALLOWING", "DIZZINESS", "DRY_SKIN", "EARACHES", "FATIGUE", "FEVER", "GENERALIZED_BODY_ACHE", "HAIR_LOSS", "HEADACHE", "HEARTBURN", "HEART_PALPITATIONS", "HOT_FLASHES", "INSOMNIA", "JOINT_PAIN", "JOINT_STIFFNESS", "LOSS_OF_APPETITE", "LOSS_OF_CONSCIOUSNESS", "LOWER_BACK_PAIN", "MEMORY_LAPSE", "MOOD_CHANGE", "MUSCLE_PAIN", "NAUSEA", "NIGHT_SWEATS", "PELVIC_PAIN", "RAPID_POUNDING_OR_FLUTTERING_HEARTBEAT", "REDUCED_CAPACITY_FOR_EXERCISE", "RUNNY_NOSE", "SHORTNESS_OF_BREATH", "SKIPPED_HEARTBEAT", "SLEEPINESS", "SLEEP_CHANGES", "SNEEZING", "SNORE", "SORE_THROAT", "STOMACH_ACHE", "STUFFY_NOSE", "UNEXPLAINED_WEIGHT_CHANGES", "UNKNOWN", "VAGINAL_DRYNESS", "VAGINAL_ITCHINESS", "VOMITING", "WATER_RETENTION", "WHEEZING"];
355
+ const healthConnectApi37UnsupportedTypes = [{
356
+ provider: "health-connect",
357
+ identifier: "AlcoholConsumption",
358
+ category: "unsupported platform type",
359
+ shape: "sample",
360
+ readPermission: `${HEALTH_CONNECT_PERMISSION_PREFIX}ALCOHOL_CONSUMPTION`,
361
+ readStrategy: "not exposed by the pinned react-native-health-connect wrapper",
362
+ timeSemantics: "instant, interval, or local date",
363
+ fhirResource: "Observation",
364
+ sourceCodeSystem: HEALTH_CONNECT_CODE_SYSTEM,
365
+ platformDocumentationUrl: "https://developer.android.com/reference/android/health/connect/datatypes/AlcoholConsumptionRecord",
366
+ unit: "servings, serving volume, alcohol by volume",
367
+ limitation: "AlcoholConsumptionRecord was added in Android API 37 / U Extensions 21, but pinned react-native-health-connect 3.5.3 (connect-client 1.1.0-alpha11) has no RecordType or readRecords mapping for it. It is not selectable or importable through this adapter."
368
+ }, {
369
+ provider: "health-connect",
370
+ identifier: "MenstrualCyclePhase",
371
+ category: "unsupported platform type",
372
+ shape: "sample",
373
+ readPermission: `${HEALTH_CONNECT_PERMISSION_PREFIX}MENSTRUAL_CYCLE_PHASE`,
374
+ readStrategy: "not exposed by the pinned react-native-health-connect wrapper",
375
+ timeSemantics: "local date",
376
+ fhirResource: "Observation",
377
+ sourceCodeSystem: HEALTH_CONNECT_CODE_SYSTEM,
378
+ platformDocumentationUrl: "https://developer.android.com/reference/android/health/connect/datatypes/MenstrualCyclePhaseRecord",
379
+ unit: "cycle phase and optional day of cycle",
380
+ limitation: "MenstrualCyclePhaseRecord was added in Android API 37 / U Extensions 22, but pinned react-native-health-connect 3.5.3 (connect-client 1.1.0-alpha11) has no RecordType or readRecords mapping for it. It is not selectable or importable through this adapter."
381
+ }, ...healthConnectApi37SymptomTypes.map(symptomType => ({
382
+ provider: "health-connect",
383
+ identifier: `SymptomRecord:${symptomType}`,
384
+ category: "unsupported platform type",
385
+ shape: "sample",
386
+ readPermission: `${HEALTH_CONNECT_PERMISSION_PREFIX}SYMPTOM_${symptomType}`,
387
+ readStrategy: "not exposed by the pinned react-native-health-connect wrapper",
388
+ timeSemantics: "instant, interval, or local date",
389
+ fhirResource: "Observation",
390
+ sourceCodeSystem: HEALTH_CONNECT_CODE_SYSTEM,
391
+ platformDocumentationUrl: "https://developer.android.com/reference/android/health/connect/datatypes/SymptomRecord",
392
+ unit: "count, severity, and optional notes",
393
+ limitation: "SymptomRecord was added in Android API 37 / U Extensions 21. Android requires a distinct READ_SYMPTOM_* permission for each symptom type; pinned react-native-health-connect 3.5.3 (connect-client 1.1.0-alpha11) has no RecordType or readRecords mapping, so this value is not selectable or importable through the adapter."
394
+ }))];
395
+ const healthConnectMedicalResourceTypes = [["ALLERGIES_INTOLERANCES", "AllergyIntolerance", "Allergies and intolerances"], ["CONDITIONS", "Condition", "Conditions"], ["LABORATORY_RESULTS", "Observation", "Laboratory results"], ["MEDICATIONS", "Medication / MedicationRequest / MedicationStatement", "Medications"], ["PERSONAL_DETAILS", "Patient", "Personal details"], ["PRACTITIONER_DETAILS", "Practitioner / PractitionerRole", "Practitioner details"], ["PREGNANCY", "Observation", "Pregnancy observations"], ["PROCEDURES", "Procedure", "Procedures"], ["SOCIAL_HISTORY", "Observation", "Social history"], ["VACCINES", "Immunization", "Vaccines"], ["VISITS", "Encounter / Location / Organization", "Visits"], ["VITAL_SIGNS", "Observation", "Vital signs"]];
396
+ const healthConnectMedicalResources = healthConnectMedicalResourceTypes.map(([type, fhirResource, display]) => ({
397
+ provider: "health-connect",
398
+ identifier: `MedicalResourceType:${type}`,
399
+ category: "unsupported platform resource",
400
+ shape: "document",
401
+ readPermission: `${HEALTH_CONNECT_PERMISSION_PREFIX}MEDICAL_DATA_${type}`,
402
+ readStrategy: "readMedicalResources pages; requires FEATURE_PERSONAL_HEALTH_RECORD",
403
+ timeSemantics: "FHIR resource-specific; preserve the source resource",
404
+ fhirResource: "FHIR resource",
405
+ sourceCodeSystem: HEALTH_CONNECT_MEDICAL_CODE_SYSTEM,
406
+ platformDocumentationUrl: "https://developer.android.com/health-and-fitness/health-connect/medical-records/data-format",
407
+ unit: "not applicable",
408
+ limitation: `${display} are Health Connect MedicalResource FHIR ${fhirResource} data, not scalar observations to recode. The pinned react-native-health-connect 3.5.3 wrapper does not expose readMedicalResources or the Medical Records permission/feature flow. Preserve embedded FHIR codings (including any LOINC coding) when this API is added; do not assign a LOINC code to the resource type.`
409
+ }));
276
410
  const healthConnectSpecialTypes = [{
411
+ provider: "health-connect",
412
+ identifier: "ActivityIntensity",
413
+ category: "unsupported platform type",
414
+ shape: "interval",
415
+ readPermission: "android.permission.health.READ_ACTIVITY_INTENSITY",
416
+ readStrategy: "not exposed by the pinned react-native-health-connect wrapper",
417
+ fhirResource: "Observation",
418
+ sourceCodeSystem: HEALTH_CONNECT_CODE_SYSTEM,
419
+ platformDocumentationUrl: "https://developer.android.com/reference/android/health/connect/datatypes/ActivityIntensityRecord",
420
+ unit: "duration by intensity",
421
+ limitation: "The current Health Connect catalog defines ActivityIntensityRecord with this read permission and FEATURE_ACTIVITY_INTENSITY, but pinned react-native-health-connect 3.5.3 omits it from RecordType and readRecords. It is not selectable or importable until the adapter supports it."
422
+ }, {
423
+ provider: "health-connect",
424
+ identifier: "MindfulnessSession",
425
+ category: "unsupported platform type",
426
+ shape: "interval",
427
+ readPermission: "android.permission.health.READ_MINDFULNESS",
428
+ readStrategy: "not exposed by the pinned react-native-health-connect wrapper",
429
+ fhirResource: "Observation",
430
+ sourceCodeSystem: HEALTH_CONNECT_CODE_SYSTEM,
431
+ platformDocumentationUrl: "https://developer.android.com/reference/android/health/connect/datatypes/MindfulnessSessionRecord",
432
+ unit: "duration and session type",
433
+ limitation: "The current Health Connect catalog defines MindfulnessSessionRecord with this read permission and FEATURE_MINDFULNESS_SESSION, but pinned react-native-health-connect 3.5.3 omits it from RecordType and readRecords. It is not selectable or importable until the adapter supports it."
434
+ }, {
435
+ provider: "health-connect",
436
+ identifier: "PlannedExerciseSession",
437
+ category: "unsupported platform type",
438
+ shape: "interval",
439
+ readPermission: "android.permission.health.READ_PLANNED_EXERCISE",
440
+ readStrategy: "not exposed by the pinned react-native-health-connect wrapper",
441
+ fhirResource: "FHIR resource",
442
+ sourceCodeSystem: HEALTH_CONNECT_CODE_SYSTEM,
443
+ platformDocumentationUrl: "https://developer.android.com/reference/android/health/connect/datatypes/PlannedExerciseSessionRecord",
444
+ unit: "planned exercise details",
445
+ limitation: "The current Health Connect catalog defines PlannedExerciseSessionRecord with this read permission and FEATURE_PLANNED_EXERCISE, but pinned react-native-health-connect 3.5.3 omits it from RecordType and readRecords. It is not selectable or importable until the adapter supports it."
446
+ }, {
447
+ provider: "health-connect",
448
+ identifier: "SkinTemperature",
449
+ category: "unsupported platform type",
450
+ shape: "series",
451
+ readPermission: "android.permission.health.READ_SKIN_TEMPERATURE",
452
+ readStrategy: "not exposed by the pinned react-native-health-connect wrapper",
453
+ fhirResource: "Observation",
454
+ sourceCodeSystem: HEALTH_CONNECT_CODE_SYSTEM,
455
+ platformDocumentationUrl: "https://developer.android.com/reference/android/health/connect/datatypes/SkinTemperatureRecord",
456
+ unit: "temperature deltas",
457
+ limitation: "The current Health Connect catalog defines SkinTemperatureRecord with this read permission and FEATURE_SKIN_TEMPERATURE, but pinned react-native-health-connect 3.5.3 omits it from RecordType and readRecords. It is not selectable or importable until the adapter supports it."
458
+ }, {
277
459
  provider: "health-connect",
278
460
  identifier: "ExerciseRoute",
279
461
  category: "route",
@@ -284,9 +466,18 @@ const healthConnectSpecialTypes = [{
284
466
  sourceCodeSystem: HEALTH_CONNECT_CODE_SYSTEM,
285
467
  unit: "geographic coordinates",
286
468
  limitation: "Routes are returned with exercise sessions only when the user grants per-session route access; the SDK does not expose a standalone route selector or requestExerciseRoute flow."
287
- }];
469
+ }, ...healthConnectApi37UnsupportedTypes, ...healthConnectMedicalResources];
288
470
  const catalogEntries = [...appleSupportedSamples, ...appleExcludedTypes, ...appleCharacteristics, ...healthConnectCatalog, ...healthConnectSpecialTypes];
289
471
  const getLoincLimitation = entry => {
472
+ if (entry.sourceCodeSystem === HEALTH_CONNECT_MEDICAL_CODE_SYSTEM) {
473
+ return "Not mapped: a MedicalResource is already a FHIR resource; preserve its embedded terminology codings instead of assigning a LOINC code to the resource type.";
474
+ }
475
+ if (entry.identifier.startsWith("SymptomRecord:")) {
476
+ return "Not mapped: this is a platform symptom value with its own read permission; the adapter does not yet normalize symptom type, temporal type, severity, count, and notes into a reviewed FHIR representation.";
477
+ }
478
+ if (entry.provider === "health-connect" && ["AlcoholConsumption", "MenstrualCyclePhase"].includes(entry.identifier)) {
479
+ return `Not mapped: Health Connect ${entry.identifier} is a structured, coded platform record and the pinned adapter does not import it into a type-specific FHIR representation.`;
480
+ }
290
481
  if (entry.provider === "apple-health" && entry.identifier === "HKQuantityTypeIdentifierBodyFatPercentage" || entry.provider === "health-connect" && entry.identifier === "BodyFat") {
291
482
  return "Not mapped: LOINC 41982-0 specifies the Measured method, but neither platform record type establishes how the body-fat percentage was derived.";
292
483
  }
@@ -299,6 +490,9 @@ const getLoincLimitation = entry => {
299
490
  if (entry.provider === "health-connect" && entry.identifier === "HeartRateVariabilityRmssd") {
300
491
  return "Not mapped: this source is RMSSD; it must not be coded as the distinct SDNN measure (LOINC 112429-6).";
301
492
  }
493
+ if (entry.provider === "health-connect" && entry.identifier === "HeartRate") {
494
+ return "Not mapped: Health Connect HeartRateRecord is a series of samples, but the point converter currently preserves that array as a structured value instead of emitting one Observation per sample; a point heart-rate LOINC code would misstate the output.";
495
+ }
302
496
  if (entry.provider === "health-connect" && entry.identifier === "BodyTemperature") {
303
497
  return "Not mapped: Health Connect exposes temperature as a structured value and includes a measurement location. The generic Observation converter does not yet normalize that value to a numeric UCUM quantity or preserve the location in bodySite.";
304
498
  }
@@ -308,25 +502,34 @@ const getLoincLimitation = entry => {
308
502
  if (entry.provider === "health-connect" && entry.identifier === "BasalMetabolicRate") {
309
503
  return "Not mapped: the source value is power (W), while the matching LOINC candidate is a basal metabolic rate index; these representations are not interchangeable.";
310
504
  }
311
- if (entry.provider === "apple-health" && entry.identifier === "HKQuantityTypeIdentifierBodyMassIndex") {
312
- return "Not mapped: the HealthKit quantity is dimensionless, while LOINC 39156-5 expects a body-mass-index ratio represented with kg/m2. The importer does not normalize this unit.";
313
- }
314
505
  if (entry.identifier === "BloodGlucose" || entry.identifier === "HKQuantityTypeIdentifierBloodGlucose") {
315
506
  return "Not mapped: the platform type alone does not guarantee a compatible specimen, method, and unit combination for one LOINC glucose term.";
316
507
  }
508
+ if (entry.provider === "health-connect" && entry.identifier === "Vo2Max") {
509
+ return "Not mapped: Health Connect exposes VO2 max using several measurement methods (including field-test estimates), while LOINC 94122-9 is specifically peak VO2 during exercise. The source method is retained, but this record does not guarantee that narrower concept.";
510
+ }
511
+ if (entry.provider === "apple-health" && entry.identifier === "HKQuantityTypeIdentifierVO2Max") {
512
+ return "Not mapped: Apple Watch VO2 max is estimated from sub-maximal outdoor walking/running data, while LOINC 94122-9 denotes peak VO2 during exercise. HealthKit also permits clinic-created samples, so the platform identifier alone cannot establish that method.";
513
+ }
317
514
  if (entry.category === "characteristic") {
318
- return "This is a Patient characteristic, not a dated Observation; no Observation LOINC mapping is asserted.";
515
+ return "Not mapped: this is a Patient characteristic, not a dated Observation; no Observation LOINC mapping is asserted.";
319
516
  }
320
517
  if (entry.category === "correlation") {
321
- return "This is a composite correlation; a single LOINC code could misrepresent its component observations.";
518
+ return "Not mapped: this is a composite correlation; a single LOINC code could misrepresent its component observations, which must be emitted and coded separately.";
322
519
  }
323
520
  if (entry.shape === "series") {
324
- return "This time series needs a clinically reviewed panel or series mapping before a LOINC code can be assigned.";
521
+ return "Not mapped: this is a time series, not one point Observation; the importer does not yet emit a type-specific series/panel representation that preserves its sample-level meaning.";
325
522
  }
326
523
  if (entry.shape === "sample" && entry.unit === "record-specific") {
327
- return "This structured sample needs its component/value semantics reviewed before a LOINC code can be assigned.";
524
+ return "Not mapped: this structured sample is currently serialized as a platform record; its components and answer semantics are not converted into a type-specific LOINC-coded Observation.";
525
+ }
526
+ if (entry.category === "category") {
527
+ return "Not mapped: this platform category carries an enumerated value set, but the importer does not translate its platform answers into a reviewed LOINC answer list; source coding and raw values are retained.";
528
+ }
529
+ if (entry.category === "quantity") {
530
+ return "Not mapped: the platform identifies a numeric quantity, but the current generic Observation does not establish the time basis, method, specimen/site, or unit constraints needed for a safe type-specific LOINC code; source coding and raw values are retained.";
328
531
  }
329
- return "No audited LOINC mapping is assigned for this identifier yet; this is not a claim that no valid LOINC term exists. The platform code is retained without asserting LOINC.";
532
+ return `Not mapped: no LOINC code is asserted for ${entry.provider} ${entry.identifier} because the current importer does not emit a type-specific clinical representation for this ${entry.category} record; its platform coding is retained.`;
330
533
  };
331
534
  const HEALTH_DATA_CATALOG = catalogEntries.map(entry => {
332
535
  if (!entry.loincMapping) {
@@ -337,7 +540,7 @@ const HEALTH_DATA_CATALOG = catalogEntries.map(entry => {
337
540
  }
338
541
  return entry.loincMapping.modes.length < 4 ? {
339
542
  ...entry,
340
- loincLimitation: `The reviewed mapping applies only to ${entry.loincMapping.modes.join(", ")} mode; other representations retain the platform code.`
543
+ loincLimitation: `Not mapped outside ${entry.loincMapping.modes.join(", ")} mode: the reviewed LOINC term matches only that representation; other modes retain the platform code.`
341
544
  } : entry;
342
545
  });
343
546
  const getHealthDataCoding = (provider, identifier, mode) => {