@ovok/native 1.5.2 → 1.5.3

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 (79) hide show
  1. package/lib/commonjs/modules/background-sync/android-background-sync.js +35 -2
  2. package/lib/commonjs/modules/background-sync/android-background-sync.js.map +1 -1
  3. package/lib/commonjs/modules/bt-management/constants/measurement-field-catalog.js +80 -88
  4. package/lib/commonjs/modules/bt-management/constants/measurement-field-catalog.js.map +1 -1
  5. package/lib/commonjs/modules/data-sync/components/android/android-health-connect-authorization-provider.js +95 -40
  6. package/lib/commonjs/modules/data-sync/components/android/android-health-connect-authorization-provider.js.map +1 -1
  7. package/lib/commonjs/modules/data-sync/components/android/android-health-sync.js +1 -1
  8. package/lib/commonjs/modules/data-sync/components/android/android-health-sync.js.map +1 -1
  9. package/lib/commonjs/modules/data-sync/components/apple/apple-health-authorization-provider.js +94 -12
  10. package/lib/commonjs/modules/data-sync/components/apple/apple-health-authorization-provider.js.map +1 -1
  11. package/lib/commonjs/modules/data-sync/components/apple/apple-health-sync.js +1 -1
  12. package/lib/commonjs/modules/data-sync/components/apple/apple-health-sync.js.map +1 -1
  13. package/lib/commonjs/modules/data-sync/index.js +11 -0
  14. package/lib/commonjs/modules/data-sync/index.js.map +1 -1
  15. package/lib/commonjs/modules/data-sync/services/managers/sync-state-manager.js +15 -1
  16. package/lib/commonjs/modules/data-sync/services/managers/sync-state-manager.js.map +1 -1
  17. package/lib/commonjs/modules/data-sync/types/health-authorization-status.js +6 -0
  18. package/lib/commonjs/modules/data-sync/types/health-authorization-status.js.map +1 -0
  19. package/lib/module/modules/background-sync/android-background-sync.js +33 -1
  20. package/lib/module/modules/background-sync/android-background-sync.js.map +1 -1
  21. package/lib/module/modules/bt-management/constants/measurement-field-catalog.js +81 -89
  22. package/lib/module/modules/bt-management/constants/measurement-field-catalog.js.map +1 -1
  23. package/lib/module/modules/data-sync/components/android/android-health-connect-authorization-provider.js +95 -40
  24. package/lib/module/modules/data-sync/components/android/android-health-connect-authorization-provider.js.map +1 -1
  25. package/lib/module/modules/data-sync/components/android/android-health-sync.js +1 -1
  26. package/lib/module/modules/data-sync/components/android/android-health-sync.js.map +1 -1
  27. package/lib/module/modules/data-sync/components/apple/apple-health-authorization-provider.js +95 -13
  28. package/lib/module/modules/data-sync/components/apple/apple-health-authorization-provider.js.map +1 -1
  29. package/lib/module/modules/data-sync/components/apple/apple-health-sync.js +1 -1
  30. package/lib/module/modules/data-sync/components/apple/apple-health-sync.js.map +1 -1
  31. package/lib/module/modules/data-sync/index.js +1 -0
  32. package/lib/module/modules/data-sync/index.js.map +1 -1
  33. package/lib/module/modules/data-sync/services/managers/sync-state-manager.js +15 -1
  34. package/lib/module/modules/data-sync/services/managers/sync-state-manager.js.map +1 -1
  35. package/lib/module/modules/data-sync/types/health-authorization-status.js +4 -0
  36. package/lib/module/modules/data-sync/types/health-authorization-status.js.map +1 -0
  37. package/lib/typescript/commonjs/src/modules/background-sync/android-background-sync.d.ts +24 -1
  38. package/lib/typescript/commonjs/src/modules/background-sync/android-background-sync.d.ts.map +1 -1
  39. package/lib/typescript/commonjs/src/modules/bt-management/constants/measurement-field-catalog.d.ts.map +1 -1
  40. package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts +1 -1
  41. package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts.map +1 -1
  42. package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-sync.d.ts.map +1 -1
  43. package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-authorization-provider.d.ts +1 -1
  44. package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-authorization-provider.d.ts.map +1 -1
  45. package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-sync.d.ts.map +1 -1
  46. package/lib/typescript/commonjs/src/modules/data-sync/components/data-sync.d.ts +2 -2
  47. package/lib/typescript/commonjs/src/modules/data-sync/index.d.ts +1 -0
  48. package/lib/typescript/commonjs/src/modules/data-sync/index.d.ts.map +1 -1
  49. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +1 -1
  50. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-state-manager.d.ts +1 -0
  51. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-state-manager.d.ts.map +1 -1
  52. package/lib/typescript/commonjs/src/modules/data-sync/types/android-health-connect-authorization-provider-props.d.ts +3 -0
  53. package/lib/typescript/commonjs/src/modules/data-sync/types/android-health-connect-authorization-provider-props.d.ts.map +1 -1
  54. package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-authorization-provider-props.d.ts +5 -1
  55. package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-authorization-provider-props.d.ts.map +1 -1
  56. package/lib/typescript/commonjs/src/modules/data-sync/types/health-authorization-status.d.ts +15 -0
  57. package/lib/typescript/commonjs/src/modules/data-sync/types/health-authorization-status.d.ts.map +1 -0
  58. package/lib/typescript/module/src/modules/background-sync/android-background-sync.d.ts +24 -1
  59. package/lib/typescript/module/src/modules/background-sync/android-background-sync.d.ts.map +1 -1
  60. package/lib/typescript/module/src/modules/bt-management/constants/measurement-field-catalog.d.ts.map +1 -1
  61. package/lib/typescript/module/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts +1 -1
  62. package/lib/typescript/module/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts.map +1 -1
  63. package/lib/typescript/module/src/modules/data-sync/components/android/android-health-sync.d.ts.map +1 -1
  64. package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-authorization-provider.d.ts +1 -1
  65. package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-authorization-provider.d.ts.map +1 -1
  66. package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-sync.d.ts.map +1 -1
  67. package/lib/typescript/module/src/modules/data-sync/components/data-sync.d.ts +2 -2
  68. package/lib/typescript/module/src/modules/data-sync/index.d.ts +1 -0
  69. package/lib/typescript/module/src/modules/data-sync/index.d.ts.map +1 -1
  70. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +1 -1
  71. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-state-manager.d.ts +1 -0
  72. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-state-manager.d.ts.map +1 -1
  73. package/lib/typescript/module/src/modules/data-sync/types/android-health-connect-authorization-provider-props.d.ts +3 -0
  74. package/lib/typescript/module/src/modules/data-sync/types/android-health-connect-authorization-provider-props.d.ts.map +1 -1
  75. package/lib/typescript/module/src/modules/data-sync/types/apple-health-authorization-provider-props.d.ts +5 -1
  76. package/lib/typescript/module/src/modules/data-sync/types/apple-health-authorization-provider-props.d.ts.map +1 -1
  77. package/lib/typescript/module/src/modules/data-sync/types/health-authorization-status.d.ts +15 -0
  78. package/lib/typescript/module/src/modules/data-sync/types/health-authorization-status.d.ts.map +1 -0
  79. package/package.json +2 -2
@@ -3,8 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.stopAndroidBluetoothForegroundService = exports.startAndroidBluetoothForegroundService = exports.scheduleAndroidHealthConnectSync = exports.registerAndroidHealthConnectBackgroundTask = exports.cancelAndroidHealthConnectSync = exports.ANDROID_HEALTH_CONNECT_BACKGROUND_TASK = void 0;
6
+ exports.stopAndroidBluetoothForegroundService = exports.startAndroidBluetoothForegroundService = exports.scheduleAndroidHealthConnectSync = exports.runAndroidHealthConnectSync = exports.registerAndroidHealthConnectBackgroundTask = exports.cancelAndroidHealthConnectSync = exports.ANDROID_HEALTH_CONNECT_BACKGROUND_TASK = void 0;
7
7
  var _reactNative = require("react-native");
8
+ var _androidHealthSyncService = require("../data-sync/services/android-health-sync-service.js");
8
9
  const ANDROID_HEALTH_CONNECT_BACKGROUND_TASK = exports.ANDROID_HEALTH_CONNECT_BACKGROUND_TASK = "OvokHealthConnectBackgroundSync";
9
10
  const getNativeModule = () => {
10
11
  const nativeModule = _reactNative.NativeModules.OvokBackgroundSync;
@@ -53,12 +54,44 @@ const cancelAndroidHealthConnectSync = async () => {
53
54
  await getNativeModule().cancelHealthConnectSync();
54
55
  };
55
56
 
57
+ /**
58
+ * Runs one Health Connect import without mounting React components.
59
+ *
60
+ * Headless JS tasks have no React tree, so AndroidHealthSync cannot be rendered
61
+ * after the OS recreates the app process. The host app still restores its own
62
+ * client and patient identity, then calls this function with the same mapping
63
+ * it uses in the foreground.
64
+ */
65
+ exports.cancelAndroidHealthConnectSync = cancelAndroidHealthConnectSync;
66
+ const runAndroidHealthConnectSync = async ({
67
+ client,
68
+ patientId,
69
+ dataToSync,
70
+ chunkSize,
71
+ onError,
72
+ onProgress
73
+ }) => {
74
+ const progress = {};
75
+ const service = _androidHealthSyncService.AndroidHealthSyncService.getInstance({
76
+ client,
77
+ patientId,
78
+ dataToSync,
79
+ chunkSize,
80
+ onSyncError: error => onError?.(error),
81
+ updateProgress: nextProgress => {
82
+ progress[nextProgress.measurementTypeKey] = nextProgress;
83
+ onProgress?.(progress);
84
+ }
85
+ });
86
+ await service.startSync();
87
+ };
88
+
56
89
  /**
57
90
  * Registers the JS entry point WorkManager invokes after process death. Call
58
91
  * this once from the app entry point, not from a screen component, so it is
59
92
  * registered before Android wakes the headless runtime.
60
93
  */
61
- exports.cancelAndroidHealthConnectSync = cancelAndroidHealthConnectSync;
94
+ exports.runAndroidHealthConnectSync = runAndroidHealthConnectSync;
62
95
  const registerAndroidHealthConnectBackgroundTask = (task, taskName = ANDROID_HEALTH_CONNECT_BACKGROUND_TASK) => {
63
96
  if (_reactNative.Platform.OS !== "android") {
64
97
  return;
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","ANDROID_HEALTH_CONNECT_BACKGROUND_TASK","exports","getNativeModule","nativeModule","NativeModules","OvokBackgroundSync","Error","startAndroidBluetoothForegroundService","options","Platform","OS","startBluetoothForegroundService","stopAndroidBluetoothForegroundService","stopBluetoothForegroundService","scheduleAndroidHealthConnectSync","scheduleHealthConnectSync","cancelAndroidHealthConnectSync","cancelHealthConnectSync","registerAndroidHealthConnectBackgroundTask","task","taskName","AppRegistry","registerHeadlessTask"],"sourceRoot":"../../../../src","sources":["modules/background-sync/android-background-sync.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,MAAMC,sCAAsC,GAAAC,OAAA,CAAAD,sCAAA,GAC1C,iCAAiC;AAmCnC,MAAME,eAAe,GAAGA,CAAA,KAAkC;EACxD,MAAMC,YAAY,GAAGC,0BAAa,CAACC,kBAEtB;EAEb,IAAI,CAACF,YAAY,EAAE;IACjB,MAAM,IAAIG,KAAK,CACb,8GACF,CAAC;EACH;EAEA,OAAOH,YAAY;AACrB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAMI,sCAAsC,GAAG,MAAAA,CAC7CC,OAAiD,GAAG,CAAC,CAAC,KACpC;EAClB,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC7B;EACF;EAEA,MAAMR,eAAe,CAAC,CAAC,CAACS,+BAA+B,CAACH,OAAO,CAAC;AAClE,CAAC;AAACP,OAAA,CAAAM,sCAAA,GAAAA,sCAAA;AAEF,MAAMK,qCAAqC,GAAG,MAAAA,CAAA,KAA2B;EACvE,IAAIH,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC7B;EACF;EAEA,MAAMR,eAAe,CAAC,CAAC,CAACW,8BAA8B,CAAC,CAAC;AAC1D,CAAC;;AAED;AACA;AACA;AACA;AACA;AAJAZ,OAAA,CAAAW,qCAAA,GAAAA,qCAAA;AAKA,MAAME,gCAAgC,GAAG,MAAAA,CACvCN,OAAkD,GAAG,CAAC,CAAC,KACrC;EAClB,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC7B;EACF;EAEA,MAAMR,eAAe,CAAC,CAAC,CAACa,yBAAyB,CAACP,OAAO,CAAC;AAC5D,CAAC;AAACP,OAAA,CAAAa,gCAAA,GAAAA,gCAAA;AAEF,MAAME,8BAA8B,GAAG,MAAAA,CAAA,KAA2B;EAChE,IAAIP,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC7B;EACF;EAEA,MAAMR,eAAe,CAAC,CAAC,CAACe,uBAAuB,CAAC,CAAC;AACnD,CAAC;;AAED;AACA;AACA;AACA;AACA;AAJAhB,OAAA,CAAAe,8BAAA,GAAAA,8BAAA;AAKA,MAAME,0CAA0C,GAAGA,CACjDC,IAAwC,EACxCC,QAAQ,GAAGpB,sCAAsC,KACxC;EACT,IAAIS,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC7B;EACF;EAEAW,wBAAW,CAACC,oBAAoB,CAACF,QAAQ,EAAE,MAAMD,IAAI,CAAC;AACxD,CAAC;AAAClB,OAAA,CAAAiB,0CAAA,GAAAA,0CAAA","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_androidHealthSyncService","ANDROID_HEALTH_CONNECT_BACKGROUND_TASK","exports","getNativeModule","nativeModule","NativeModules","OvokBackgroundSync","Error","startAndroidBluetoothForegroundService","options","Platform","OS","startBluetoothForegroundService","stopAndroidBluetoothForegroundService","stopBluetoothForegroundService","scheduleAndroidHealthConnectSync","scheduleHealthConnectSync","cancelAndroidHealthConnectSync","cancelHealthConnectSync","runAndroidHealthConnectSync","client","patientId","dataToSync","chunkSize","onError","onProgress","progress","service","AndroidHealthSyncService","getInstance","onSyncError","error","updateProgress","nextProgress","measurementTypeKey","startSync","registerAndroidHealthConnectBackgroundTask","task","taskName","AppRegistry","registerHeadlessTask"],"sourceRoot":"../../../../src","sources":["modules/background-sync/android-background-sync.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,yBAAA,GAAAD,OAAA;AAIA,MAAME,sCAAsC,GAAAC,OAAA,CAAAD,sCAAA,GAC1C,iCAAiC;AAoDnC,MAAME,eAAe,GAAGA,CAAA,KAAkC;EACxD,MAAMC,YAAY,GAAGC,0BAAa,CAACC,kBAEtB;EAEb,IAAI,CAACF,YAAY,EAAE;IACjB,MAAM,IAAIG,KAAK,CACb,8GACF,CAAC;EACH;EAEA,OAAOH,YAAY;AACrB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAMI,sCAAsC,GAAG,MAAAA,CAC7CC,OAAiD,GAAG,CAAC,CAAC,KACpC;EAClB,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC7B;EACF;EAEA,MAAMR,eAAe,CAAC,CAAC,CAACS,+BAA+B,CAACH,OAAO,CAAC;AAClE,CAAC;AAACP,OAAA,CAAAM,sCAAA,GAAAA,sCAAA;AAEF,MAAMK,qCAAqC,GAAG,MAAAA,CAAA,KAA2B;EACvE,IAAIH,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC7B;EACF;EAEA,MAAMR,eAAe,CAAC,CAAC,CAACW,8BAA8B,CAAC,CAAC;AAC1D,CAAC;;AAED;AACA;AACA;AACA;AACA;AAJAZ,OAAA,CAAAW,qCAAA,GAAAA,qCAAA;AAKA,MAAME,gCAAgC,GAAG,MAAAA,CACvCN,OAAkD,GAAG,CAAC,CAAC,KACrC;EAClB,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC7B;EACF;EAEA,MAAMR,eAAe,CAAC,CAAC,CAACa,yBAAyB,CAACP,OAAO,CAAC;AAC5D,CAAC;AAACP,OAAA,CAAAa,gCAAA,GAAAA,gCAAA;AAEF,MAAME,8BAA8B,GAAG,MAAAA,CAAA,KAA2B;EAChE,IAAIP,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC7B;EACF;EAEA,MAAMR,eAAe,CAAC,CAAC,CAACe,uBAAuB,CAAC,CAAC;AACnD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPAhB,OAAA,CAAAe,8BAAA,GAAAA,8BAAA;AAQA,MAAME,2BAA2B,GAAG,MAAAA,CAAO;EACzCC,MAAM;EACNC,SAAS;EACTC,UAAU;EACVC,SAAS;EACTC,OAAO;EACPC;AACkC,CAAC,KAAoB;EACvD,MAAMC,QAA2D,GAAG,CAAC,CAAC;EAEtE,MAAMC,OAAO,GAAGC,kDAAwB,CAACC,WAAW,CAAC;IACnDT,MAAM;IACNC,SAAS;IACTC,UAAU;IACVC,SAAS;IACTO,WAAW,EAAGC,KAAK,IAAKP,OAAO,GAAGO,KAAK,CAAC;IACxCC,cAAc,EAAGC,YAAY,IAAK;MAChCP,QAAQ,CAACO,YAAY,CAACC,kBAAkB,CAAC,GAAGD,YAAY;MACxDR,UAAU,GAAGC,QAAQ,CAAC;IACxB;EACF,CAAC,CAAC;EAEF,MAAMC,OAAO,CAACQ,SAAS,CAAC,CAAC;AAC3B,CAAC;;AAED;AACA;AACA;AACA;AACA;AAJAjC,OAAA,CAAAiB,2BAAA,GAAAA,2BAAA;AAKA,MAAMiB,0CAA0C,GAAGA,CACjDC,IAAwC,EACxCC,QAAQ,GAAGrC,sCAAsC,KACxC;EACT,IAAIS,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC7B;EACF;EAEA4B,wBAAW,CAACC,oBAAoB,CAACF,QAAQ,EAAE,MAAMD,IAAI,CAAC;AACxD,CAAC;AAACnC,OAAA,CAAAkC,0CAAA,GAAAA,0CAAA","ignoreList":[]}
@@ -23,6 +23,85 @@ var _core = require("@ovok/core");
23
23
  * record of something that was never measured. A "result" case must declare all of them.
24
24
  */
25
25
 
26
+ const urineAnalyteRanges = {
27
+ uro: {
28
+ min: 0.2,
29
+ max: 8,
30
+ normalMin: 0.1,
31
+ normalMax: 1
32
+ },
33
+ bld: {
34
+ min: 0,
35
+ max: 250,
36
+ normalMin: 0,
37
+ normalMax: 0
38
+ },
39
+ bil: {
40
+ min: 0,
41
+ max: 6,
42
+ normalMin: 0,
43
+ normalMax: 0
44
+ },
45
+ ket: {
46
+ min: 0,
47
+ max: 80,
48
+ normalMin: 0,
49
+ normalMax: 15
50
+ },
51
+ glu: {
52
+ min: 0,
53
+ max: 1000,
54
+ normalMin: 0,
55
+ normalMax: 0
56
+ },
57
+ pro: {
58
+ min: 0,
59
+ max: 300,
60
+ normalMin: 0,
61
+ normalMax: 14
62
+ },
63
+ ph: {
64
+ min: 5,
65
+ max: 8.5,
66
+ normalMin: 4.5,
67
+ normalMax: 8
68
+ },
69
+ nit: {
70
+ min: 0,
71
+ max: 1,
72
+ normalMin: 0,
73
+ normalMax: 0
74
+ },
75
+ leu: {
76
+ min: 0,
77
+ max: 500,
78
+ normalMin: 0,
79
+ normalMax: 25
80
+ },
81
+ sg: {
82
+ min: 1.005,
83
+ max: 1.03,
84
+ normalMin: 1.003,
85
+ normalMax: 1.03
86
+ },
87
+ vc: {
88
+ min: 0,
89
+ max: 100
90
+ }
91
+ };
92
+ const urineAnalyteCatalog = Object.fromEntries(Object.entries(urineAnalyteRanges).map(([key, range]) => {
93
+ const definition = _core.URINE_ANALYTE_DEFINITIONS.find(analyte => analyte.key === key);
94
+ if (!definition) {
95
+ throw new Error(`Missing shared urine analyte definition for ${key}`);
96
+ }
97
+ return [key, {
98
+ ...range,
99
+ display: definition.display,
100
+ // UCUM's dimensionless unit is the safe declaration value when the
101
+ // analyte has no display unit (pH and specific gravity).
102
+ unit: definition.unit ?? "1"
103
+ }];
104
+ }));
26
105
  const measurementFieldCatalog = exports.measurementFieldCatalog = {
27
106
  [_core.MeasurementTypeKey.bloodPressure]: {
28
107
  systolic: {
@@ -107,93 +186,6 @@ const measurementFieldCatalog = exports.measurementFieldCatalog = {
107
186
  required: true
108
187
  }
109
188
  },
110
- [_core.MeasurementTypeKey.uricAcid]: {
111
- uro: {
112
- unit: "mg/dL",
113
- min: 0,
114
- max: 6,
115
- display: "Urobilinogen",
116
- normalMin: 0.1,
117
- normalMax: 1
118
- },
119
- bld: {
120
- unit: "RBC/µL",
121
- min: 0,
122
- max: 6,
123
- display: "Hemoglobin",
124
- normalMin: 0,
125
- normalMax: 0
126
- },
127
- bil: {
128
- unit: "mg/dL",
129
- min: 0,
130
- max: 6,
131
- display: "Bilirubin",
132
- normalMin: 0,
133
- normalMax: 0
134
- },
135
- ket: {
136
- unit: "mg/dL",
137
- min: 0,
138
- max: 6,
139
- display: "Ketones",
140
- normalMin: 0,
141
- normalMax: 15
142
- },
143
- glu: {
144
- unit: "mg/dL",
145
- min: 0,
146
- max: 6,
147
- display: "Glucose",
148
- normalMin: 0,
149
- normalMax: 0
150
- },
151
- pro: {
152
- unit: "mg/dL",
153
- min: 0,
154
- max: 6,
155
- display: "Protein",
156
- normalMin: 0,
157
- normalMax: 14
158
- },
159
- ph: {
160
- unit: "pH",
161
- min: 0,
162
- max: 14,
163
- display: "Urine pH",
164
- normalMin: 4.5,
165
- normalMax: 8
166
- },
167
- nit: {
168
- unit: "qualitative",
169
- min: 0,
170
- max: 6,
171
- display: "Nitrite",
172
- normalMin: 0,
173
- normalMax: 0
174
- },
175
- leu: {
176
- unit: "WBC/µL",
177
- min: 0,
178
- max: 6,
179
- display: "Leukocyte esterase",
180
- normalMin: 0,
181
- normalMax: 25
182
- },
183
- sg: {
184
- unit: "specific gravity",
185
- min: 0,
186
- max: 6,
187
- display: "Specific gravity",
188
- normalMin: 1.003,
189
- normalMax: 1.03
190
- },
191
- vc: {
192
- unit: "mg/dL",
193
- min: 0,
194
- max: 6,
195
- display: "Ascorbate (vitamin C)"
196
- }
197
- }
189
+ [_core.MeasurementTypeKey.uricAcid]: urineAnalyteCatalog
198
190
  };
199
191
  //# sourceMappingURL=measurement-field-catalog.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_core","require","measurementFieldCatalog","exports","MeasurementTypeKey","bloodPressure","systolic","unit","min","max","required","diastolic","heartRate","bodyWeight","temperature","bodyTemp","bloodGlucose","bloodOxygenPulseRate","bloodOxygen","pulseRate","perfusionIndex","rrInterval","respiratoryRate","uricAcid","uro","display","normalMin","normalMax","bld","bil","ket","glu","pro","ph","nit","leu","sg","vc"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/constants/measurement-field-catalog.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_core","require","urineAnalyteRanges","uro","min","max","normalMin","normalMax","bld","bil","ket","glu","pro","ph","nit","leu","sg","vc","urineAnalyteCatalog","Object","fromEntries","entries","map","key","range","definition","URINE_ANALYTE_DEFINITIONS","find","analyte","Error","display","unit","measurementFieldCatalog","exports","MeasurementTypeKey","bloodPressure","systolic","required","diastolic","heartRate","bodyWeight","temperature","bodyTemp","bloodGlucose","bloodOxygenPulseRate","bloodOxygen","pulseRate","perfusionIndex","rrInterval","respiratoryRate","uricAcid"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/constants/measurement-field-catalog.ts"],"mappings":"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","ignoreList":[]}
@@ -5,43 +5,99 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.AndroidHealthConnectAuthorizationProvider = void 0;
7
7
  var React = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
8
9
  var _reactNativeHealthConnect = require("react-native-health-connect");
9
10
  var _jsxRuntime = require("react/jsx-runtime");
10
11
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
11
- const useHealthConnectAuthorization = (readIdentifiers, writeIdentifiers, backgroundAccess = false) => {
12
- const [status, setStatus] = React.useState("shouldRequest");
13
- const requestAuthorization = React.useCallback(async () => {
12
+ const toError = error => error instanceof Error ? error : new Error(String(error));
13
+ const useHealthConnectAuthorization = (readIdentifiers, writeIdentifiers, backgroundAccess = false, onStatusChange) => {
14
+ const [status, setStatus] = React.useState({
15
+ state: "unknown"
16
+ });
17
+ const hasRequestedRef = React.useRef(false);
18
+ const identifiersRef = React.useRef({
19
+ readIdentifiers,
20
+ writeIdentifiers
21
+ });
22
+ const permissionsRef = React.useRef([]);
23
+ identifiersRef.current = {
24
+ readIdentifiers,
25
+ writeIdentifiers
26
+ };
27
+ permissionsRef.current = (() => {
28
+ const readPermissions = identifiersRef.current.readIdentifiers.map(recordType => ({
29
+ accessType: "read",
30
+ recordType
31
+ }));
32
+ const writePermissions = (identifiersRef.current.writeIdentifiers || []).map(recordType => ({
33
+ accessType: "write",
34
+ recordType
35
+ }));
36
+ const backgroundPermissions = backgroundAccess ? [{
37
+ accessType: "read",
38
+ recordType: "BackgroundAccessPermission"
39
+ }] : [];
40
+ return [...readPermissions, ...writePermissions, ...backgroundPermissions];
41
+ })();
42
+ const updateStatus = React.useCallback(nextStatus => {
43
+ setStatus(nextStatus);
44
+ onStatusChange?.(nextStatus);
45
+ }, [onStatusChange]);
46
+ const checkAuthorization = React.useCallback(async () => {
14
47
  try {
15
48
  const isInitialized = await (0, _reactNativeHealthConnect.initialize)();
16
49
  if (!isInitialized) {
17
- setStatus("error");
50
+ const error = new Error("Health Connect is not available");
51
+ updateStatus({
52
+ state: "error",
53
+ error
54
+ });
18
55
  return;
19
56
  }
20
- const readPermissions = readIdentifiers.map(recordType => ({
21
- accessType: "read",
22
- recordType
23
- }));
24
- const writePermissions = (writeIdentifiers || []).map(recordType => ({
25
- accessType: "write",
26
- recordType
27
- }));
28
- const backgroundPermissions = backgroundAccess ? [{
29
- accessType: "read",
30
- recordType: "BackgroundAccessPermission"
31
- }] : [];
32
- const permissions = [...readPermissions, ...writePermissions, ...backgroundPermissions];
33
- await (0, _reactNativeHealthConnect.requestPermission)(permissions);
34
57
  const grantedPermissions = await (0, _reactNativeHealthConnect.getGrantedPermissions)();
35
- const allGranted = permissions.every(permission => grantedPermissions.some(granted => granted.accessType === permission.accessType && granted.recordType === permission.recordType));
36
- setStatus(allGranted ? "authorized" : "shouldRequest");
37
- } catch {
38
- setStatus("error");
58
+ const allGranted = permissionsRef.current.every(permission => grantedPermissions.some(granted => granted.accessType === permission.accessType && granted.recordType === permission.recordType));
59
+ updateStatus({
60
+ state: allGranted ? "authorized" : hasRequestedRef.current ? "refused" : "shouldRequest"
61
+ });
62
+ } catch (error) {
63
+ updateStatus({
64
+ state: "error",
65
+ error: toError(error)
66
+ });
39
67
  }
40
- }, [backgroundAccess, readIdentifiers, writeIdentifiers]);
68
+ }, [updateStatus]);
69
+ const requestAuthorization = React.useCallback(async () => {
70
+ hasRequestedRef.current = true;
71
+ updateStatus({
72
+ state: "requesting"
73
+ });
74
+ try {
75
+ const isInitialized = await (0, _reactNativeHealthConnect.initialize)();
76
+ if (!isInitialized) {
77
+ throw new Error("Health Connect is not available");
78
+ }
79
+ await (0, _reactNativeHealthConnect.requestPermission)(permissionsRef.current);
80
+ await checkAuthorization();
81
+ } catch (error) {
82
+ updateStatus({
83
+ state: "error",
84
+ error: toError(error)
85
+ });
86
+ }
87
+ }, [checkAuthorization, updateStatus]);
88
+ React.useEffect(() => {
89
+ void checkAuthorization();
90
+ }, [checkAuthorization]);
91
+ React.useEffect(() => {
92
+ const subscription = _reactNative.AppState.addEventListener("change", state => {
93
+ if (state === "active") {
94
+ void checkAuthorization();
95
+ }
96
+ });
97
+ return () => subscription.remove();
98
+ }, [checkAuthorization]);
41
99
  return [status, requestAuthorization];
42
100
  };
43
-
44
- // TODO: add error handling
45
101
  const AndroidHealthConnectAuthorizationProvider = exports.AndroidHealthConnectAuthorizationProvider = /*#__PURE__*/React.memo(({
46
102
  readIdentifiers,
47
103
  writeIdentifiers,
@@ -49,21 +105,22 @@ const AndroidHealthConnectAuthorizationProvider = exports.AndroidHealthConnectAu
49
105
  children,
50
106
  skipRequest,
51
107
  renderManualRequestUI,
52
- backgroundAccess
108
+ backgroundAccess,
109
+ onAuthorizationStatusChange
53
110
  }) => {
54
- const [authorizationStatus, requestAuthorization] = useHealthConnectAuthorization(readIdentifiers, writeIdentifiers, backgroundAccess);
55
- const shouldRenderManualRequestUI = renderManualRequestUI && authorizationStatus === "shouldRequest" && !skipRequest;
56
- const shouldRenderFallback = fallback && authorizationStatus === "shouldRequest" && !skipRequest;
111
+ const [authorizationStatus, requestAuthorization] = useHealthConnectAuthorization(readIdentifiers, writeIdentifiers, backgroundAccess, onAuthorizationStatusChange);
112
+ const shouldRenderManualRequestUI = renderManualRequestUI && ["unknown", "shouldRequest", "refused"].includes(authorizationStatus.state) && !skipRequest;
113
+ const shouldRenderFallback = fallback && ["shouldRequest", "refused", "requesting", "error"].includes(authorizationStatus.state) && !skipRequest;
57
114
  React.useEffect(() => {
58
- if (renderManualRequestUI) {
115
+ if (renderManualRequestUI || skipRequest || authorizationStatus.state !== "shouldRequest") {
59
116
  return;
60
117
  }
61
- if (authorizationStatus === "shouldRequest") {
62
- requestAuthorization();
63
- }
64
- }, [authorizationStatus, requestAuthorization, renderManualRequestUI]);
65
- if (authorizationStatus === "unknown") {
66
- return null;
118
+ void requestAuthorization();
119
+ }, [authorizationStatus.state, renderManualRequestUI, requestAuthorization, skipRequest]);
120
+ if (skipRequest || authorizationStatus.state === "authorized") {
121
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
122
+ children: children
123
+ });
67
124
  }
68
125
  if (shouldRenderManualRequestUI) {
69
126
  return renderManualRequestUI?.(requestAuthorization);
@@ -73,10 +130,8 @@ const AndroidHealthConnectAuthorizationProvider = exports.AndroidHealthConnectAu
73
130
  children: fallback || null
74
131
  });
75
132
  }
76
- if (authorizationStatus === "authorized") {
77
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
78
- children: children
79
- });
133
+ if (authorizationStatus.state === "unknown") {
134
+ return null;
80
135
  }
81
136
  return null;
82
137
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","_interopRequireWildcard","require","_reactNativeHealthConnect","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useHealthConnectAuthorization","readIdentifiers","writeIdentifiers","backgroundAccess","status","setStatus","useState","requestAuthorization","useCallback","isInitialized","initialize","readPermissions","map","recordType","accessType","writePermissions","backgroundPermissions","permissions","requestPermission","grantedPermissions","getGrantedPermissions","allGranted","every","permission","some","granted","AndroidHealthConnectAuthorizationProvider","exports","memo","fallback","children","skipRequest","renderManualRequestUI","authorizationStatus","shouldRenderManualRequestUI","shouldRenderFallback","useEffect","jsx","Fragment"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/components/android/android-health-connect-authorization-provider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_reactNativeHealthConnect","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","toError","error","Error","String","useHealthConnectAuthorization","readIdentifiers","writeIdentifiers","backgroundAccess","onStatusChange","status","setStatus","useState","state","hasRequestedRef","useRef","identifiersRef","permissionsRef","current","readPermissions","map","recordType","accessType","writePermissions","backgroundPermissions","updateStatus","useCallback","nextStatus","checkAuthorization","isInitialized","initialize","grantedPermissions","getGrantedPermissions","allGranted","every","permission","some","granted","requestAuthorization","requestPermission","useEffect","subscription","AppState","addEventListener","remove","AndroidHealthConnectAuthorizationProvider","exports","memo","fallback","children","skipRequest","renderManualRequestUI","onAuthorizationStatusChange","authorizationStatus","shouldRenderManualRequestUI","includes","shouldRenderFallback","jsx","Fragment"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/components/android/android-health-connect-authorization-provider.tsx"],"mappings":"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","ignoreList":[]}
@@ -52,7 +52,7 @@ const AndroidHealthSync = exports.AndroidHealthSync = /*#__PURE__*/React.memo(({
52
52
  if (!serviceRef.current) {
53
53
  return;
54
54
  }
55
- const pauseReason = !isConnected ? "offline" : wifiOnly && type !== "wifi" ? "wifi-only" : undefined;
55
+ const pauseReason = isConnected === false ? "offline" : wifiOnly && type !== "wifi" ? "wifi-only" : undefined;
56
56
  if (pauseReason) {
57
57
  serviceRef.current.pauseSync(pauseReason);
58
58
  return;
@@ -1 +1 @@
1
- {"version":3,"names":["_core","require","_netinfo","React","_interopRequireWildcard","_androidHealthSyncService","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AndroidHealthSync","exports","memo","dataToSync","chunkSize","wifiOnly","onError","onProgress","client","useClient","patient","useMedplumProfile","serviceRef","useRef","isConnected","type","useNetInfo","onErrorRef","onProgressRef","progressRef","updateProgress","useCallback","progress","current","measurementTypeKey","syncData","AndroidHealthSyncService","getInstance","patientId","id","onSyncError","error","startSync","useEffect","pauseReason","undefined","pauseSync","stopSync"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/components/android/android-health-sync.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_core","require","_netinfo","React","_interopRequireWildcard","_androidHealthSyncService","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AndroidHealthSync","exports","memo","dataToSync","chunkSize","wifiOnly","onError","onProgress","client","useClient","patient","useMedplumProfile","serviceRef","useRef","isConnected","type","useNetInfo","onErrorRef","onProgressRef","progressRef","updateProgress","useCallback","progress","current","measurementTypeKey","syncData","AndroidHealthSyncService","getInstance","patientId","id","onSyncError","error","startSync","useEffect","pauseReason","undefined","pauseSync","stopSync"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/components/android/android-health-sync.tsx"],"mappings":"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","ignoreList":[]}