@ovok/native 1.7.0 → 1.8.0

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 (109) hide show
  1. package/lib/commonjs/modules/data-sync/index.js +15 -0
  2. package/lib/commonjs/modules/data-sync/index.js.map +1 -1
  3. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js +25 -19
  4. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  5. package/lib/commonjs/modules/data-sync/services/managers/data-processor.js +73 -17
  6. package/lib/commonjs/modules/data-sync/services/managers/data-processor.js.map +1 -1
  7. package/lib/commonjs/modules/data-sync/services/managers/storage-manager.js +14 -0
  8. package/lib/commonjs/modules/data-sync/services/managers/storage-manager.js.map +1 -1
  9. package/lib/commonjs/modules/data-sync/utils/convert-generic-health-data.js +45 -7
  10. package/lib/commonjs/modules/data-sync/utils/convert-generic-health-data.js.map +1 -1
  11. package/lib/commonjs/modules/data-sync/utils/get-health-record-sync-id.js +15 -2
  12. package/lib/commonjs/modules/data-sync/utils/get-health-record-sync-id.js.map +1 -1
  13. package/lib/commonjs/modules/data-sync/utils/get-records-from-health-connect.js +103 -8
  14. package/lib/commonjs/modules/data-sync/utils/get-records-from-health-connect.js.map +1 -1
  15. package/lib/commonjs/modules/data-sync/utils/get-samples-from-health.js +66 -23
  16. package/lib/commonjs/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
  17. package/lib/commonjs/modules/data-sync/utils/get-total-records-count.js +4 -1
  18. package/lib/commonjs/modules/data-sync/utils/get-total-records-count.js.map +1 -1
  19. package/lib/commonjs/modules/data-sync/utils/get-total-samples-count.js +3 -3
  20. package/lib/commonjs/modules/data-sync/utils/get-total-samples-count.js.map +1 -1
  21. package/lib/commonjs/modules/data-sync/utils/health-data-catalog.js +364 -0
  22. package/lib/commonjs/modules/data-sync/utils/health-data-catalog.js.map +1 -0
  23. package/lib/commonjs/modules/data-sync/utils/health-units.js +13 -11
  24. package/lib/commonjs/modules/data-sync/utils/health-units.js.map +1 -1
  25. package/lib/commonjs/modules/data-sync/utils/healthkit-data-types.js +34 -0
  26. package/lib/commonjs/modules/data-sync/utils/healthkit-data-types.js.map +1 -0
  27. package/lib/module/modules/data-sync/index.js +1 -0
  28. package/lib/module/modules/data-sync/index.js.map +1 -1
  29. package/lib/module/modules/data-sync/services/base-health-sync-service.js +25 -19
  30. package/lib/module/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  31. package/lib/module/modules/data-sync/services/managers/data-processor.js +74 -18
  32. package/lib/module/modules/data-sync/services/managers/data-processor.js.map +1 -1
  33. package/lib/module/modules/data-sync/services/managers/storage-manager.js +14 -0
  34. package/lib/module/modules/data-sync/services/managers/storage-manager.js.map +1 -1
  35. package/lib/module/modules/data-sync/utils/convert-generic-health-data.js +45 -7
  36. package/lib/module/modules/data-sync/utils/convert-generic-health-data.js.map +1 -1
  37. package/lib/module/modules/data-sync/utils/get-health-record-sync-id.js +15 -2
  38. package/lib/module/modules/data-sync/utils/get-health-record-sync-id.js.map +1 -1
  39. package/lib/module/modules/data-sync/utils/get-records-from-health-connect.js +103 -8
  40. package/lib/module/modules/data-sync/utils/get-records-from-health-connect.js.map +1 -1
  41. package/lib/module/modules/data-sync/utils/get-samples-from-health.js +66 -22
  42. package/lib/module/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
  43. package/lib/module/modules/data-sync/utils/get-total-records-count.js +4 -1
  44. package/lib/module/modules/data-sync/utils/get-total-records-count.js.map +1 -1
  45. package/lib/module/modules/data-sync/utils/get-total-samples-count.js +2 -2
  46. package/lib/module/modules/data-sync/utils/get-total-samples-count.js.map +1 -1
  47. package/lib/module/modules/data-sync/utils/health-data-catalog.js +360 -0
  48. package/lib/module/modules/data-sync/utils/health-data-catalog.js.map +1 -0
  49. package/lib/module/modules/data-sync/utils/health-units.js +13 -11
  50. package/lib/module/modules/data-sync/utils/health-units.js.map +1 -1
  51. package/lib/module/modules/data-sync/utils/healthkit-data-types.js +26 -0
  52. package/lib/module/modules/data-sync/utils/healthkit-data-types.js.map +1 -0
  53. package/lib/typescript/commonjs/src/modules/data-sync/index.d.ts +1 -0
  54. package/lib/typescript/commonjs/src/modules/data-sync/index.d.ts.map +1 -1
  55. package/lib/typescript/commonjs/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  56. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts +2 -1
  57. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
  58. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/storage-manager.d.ts +2 -0
  59. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/storage-manager.d.ts.map +1 -1
  60. package/lib/typescript/commonjs/src/modules/data-sync/types/convert-data-props.d.ts +2 -0
  61. package/lib/typescript/commonjs/src/modules/data-sync/types/convert-data-props.d.ts.map +1 -1
  62. package/lib/typescript/commonjs/src/modules/data-sync/types/data-from-provider-result.d.ts +4 -0
  63. package/lib/typescript/commonjs/src/modules/data-sync/types/data-from-provider-result.d.ts.map +1 -1
  64. package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-props.d.ts +6 -1
  65. package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-props.d.ts.map +1 -1
  66. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-generic-health-data.d.ts +1 -1
  67. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-generic-health-data.d.ts.map +1 -1
  68. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-health-record-sync-id.d.ts +9 -1
  69. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-health-record-sync-id.d.ts.map +1 -1
  70. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-records-from-health-connect.d.ts.map +1 -1
  71. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts +49 -4
  72. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
  73. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-total-records-count.d.ts.map +1 -1
  74. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-total-samples-count.d.ts.map +1 -1
  75. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-data-catalog.d.ts +30 -0
  76. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-data-catalog.d.ts.map +1 -0
  77. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-units.d.ts +1 -1
  78. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-units.d.ts.map +1 -1
  79. package/lib/typescript/commonjs/src/modules/data-sync/utils/healthkit-data-types.d.ts +11 -0
  80. package/lib/typescript/commonjs/src/modules/data-sync/utils/healthkit-data-types.d.ts.map +1 -0
  81. package/lib/typescript/module/src/modules/data-sync/index.d.ts +1 -0
  82. package/lib/typescript/module/src/modules/data-sync/index.d.ts.map +1 -1
  83. package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  84. package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts +2 -1
  85. package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
  86. package/lib/typescript/module/src/modules/data-sync/services/managers/storage-manager.d.ts +2 -0
  87. package/lib/typescript/module/src/modules/data-sync/services/managers/storage-manager.d.ts.map +1 -1
  88. package/lib/typescript/module/src/modules/data-sync/types/convert-data-props.d.ts +2 -0
  89. package/lib/typescript/module/src/modules/data-sync/types/convert-data-props.d.ts.map +1 -1
  90. package/lib/typescript/module/src/modules/data-sync/types/data-from-provider-result.d.ts +4 -0
  91. package/lib/typescript/module/src/modules/data-sync/types/data-from-provider-result.d.ts.map +1 -1
  92. package/lib/typescript/module/src/modules/data-sync/types/health-sync-props.d.ts +6 -1
  93. package/lib/typescript/module/src/modules/data-sync/types/health-sync-props.d.ts.map +1 -1
  94. package/lib/typescript/module/src/modules/data-sync/utils/convert-generic-health-data.d.ts +1 -1
  95. package/lib/typescript/module/src/modules/data-sync/utils/convert-generic-health-data.d.ts.map +1 -1
  96. package/lib/typescript/module/src/modules/data-sync/utils/get-health-record-sync-id.d.ts +9 -1
  97. package/lib/typescript/module/src/modules/data-sync/utils/get-health-record-sync-id.d.ts.map +1 -1
  98. package/lib/typescript/module/src/modules/data-sync/utils/get-records-from-health-connect.d.ts.map +1 -1
  99. package/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts +49 -4
  100. package/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
  101. package/lib/typescript/module/src/modules/data-sync/utils/get-total-records-count.d.ts.map +1 -1
  102. package/lib/typescript/module/src/modules/data-sync/utils/get-total-samples-count.d.ts.map +1 -1
  103. package/lib/typescript/module/src/modules/data-sync/utils/health-data-catalog.d.ts +30 -0
  104. package/lib/typescript/module/src/modules/data-sync/utils/health-data-catalog.d.ts.map +1 -0
  105. package/lib/typescript/module/src/modules/data-sync/utils/health-units.d.ts +1 -1
  106. package/lib/typescript/module/src/modules/data-sync/utils/health-units.d.ts.map +1 -1
  107. package/lib/typescript/module/src/modules/data-sync/utils/healthkit-data-types.d.ts +11 -0
  108. package/lib/typescript/module/src/modules/data-sync/utils/healthkit-data-types.d.ts.map +1 -0
  109. package/package.json +1 -1
@@ -4,15 +4,29 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  var _exportNames = {
7
+ HEALTH_DATA_CATALOG: true,
8
+ getHealthDataCoding: true,
7
9
  HealthAuthorizationContext: true,
8
10
  useHealthAuthorization: true
9
11
  };
12
+ Object.defineProperty(exports, "HEALTH_DATA_CATALOG", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _healthDataCatalog.HEALTH_DATA_CATALOG;
16
+ }
17
+ });
10
18
  Object.defineProperty(exports, "HealthAuthorizationContext", {
11
19
  enumerable: true,
12
20
  get: function () {
13
21
  return _healthAuthorizationContext.HealthAuthorizationContext;
14
22
  }
15
23
  });
24
+ Object.defineProperty(exports, "getHealthDataCoding", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _healthDataCatalog.getHealthDataCoding;
28
+ }
29
+ });
16
30
  Object.defineProperty(exports, "useHealthAuthorization", {
17
31
  enumerable: true,
18
32
  get: function () {
@@ -127,5 +141,6 @@ Object.keys(_useHealthImport).forEach(function (key) {
127
141
  }
128
142
  });
129
143
  });
144
+ var _healthDataCatalog = require("./utils/health-data-catalog.js");
130
145
  var _healthAuthorizationContext = require("./contexts/health-authorization-context.js");
131
146
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_dataSync","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_appleHealthSyncProps","_syncProgressList","_syncProgress","_androidHealthSyncProps","_healthAuthorizationStatus","_healthSyncKeys","_healthSyncBatchError","_useHealthImport","_healthAuthorizationContext"],"sourceRoot":"../../../../src","sources":["modules/data-sync/index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_dataSync","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_appleHealthSyncProps","_syncProgressList","_syncProgress","_androidHealthSyncProps","_healthAuthorizationStatus","_healthSyncKeys","_healthSyncBatchError","_useHealthImport","_healthDataCatalog","_healthAuthorizationContext"],"sourceRoot":"../../../../src","sources":["modules/data-sync/index.ts"],"mappings":"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","ignoreList":[]}
@@ -75,7 +75,7 @@ class BaseHealthSyncService {
75
75
  if (!data) {
76
76
  continue;
77
77
  }
78
- const latestValidStartDate = this.dataProcessor.getLatestValidStartDate(this.stateManager.latestObservationDates, data, (0, _healthSyncKeys.getHealthDataMode)(measurementTypeKey, data.mode));
78
+ const latestValidStartDate = this.dataProcessor.getLatestValidStartDate(this.stateManager.latestObservationDates, data, measurementTypeKey, (0, _healthSyncKeys.getHealthDataMode)(measurementTypeKey, data.mode));
79
79
  const totalCount = await this.dataProcessor.getTotalRecordsCountForType(measurementTypeKey, data, latestValidStartDate);
80
80
  this.progressManager.setTotalObservations(measurementTypeKey, totalCount);
81
81
  }
@@ -96,12 +96,13 @@ class BaseHealthSyncService {
96
96
  }
97
97
  }
98
98
  async syncDataByType(measurementTypeKey, data) {
99
- const latestValidStartDate = this.dataProcessor.getLatestValidStartDate(this.stateManager.latestObservationDates, data, (0, _healthSyncKeys.getHealthDataMode)(measurementTypeKey, data.mode));
99
+ const latestValidStartDate = this.dataProcessor.getLatestValidStartDate(this.stateManager.latestObservationDates, data, measurementTypeKey, (0, _healthSyncKeys.getHealthDataMode)(measurementTypeKey, data.mode));
100
100
  let hasMore = true;
101
101
  while (hasMore && !this.stateManager.shouldStopSync) {
102
102
  const {
103
103
  observationBodies,
104
104
  observationSyncIds,
105
+ deletedObservationSyncIds,
105
106
  hasMore: currentHasMore,
106
107
  anchors
107
108
  } = await this.dataProcessor.getObservationBodiesForType(measurementTypeKey, data, latestValidStartDate);
@@ -110,25 +111,30 @@ class BaseHealthSyncService {
110
111
  break;
111
112
  }
112
113
  const entries = this.dataProcessor.generateObservationEntries(observationBodies, observationSyncIds, (0, _healthSyncKeys.getHealthDataMode)(measurementTypeKey, data.mode));
113
- if (entries.length !== 0 && !this.stateManager.shouldStopSync) {
114
+ if ((entries.length !== 0 || deletedObservationSyncIds.length !== 0) && !this.stateManager.shouldStopSync) {
114
115
  try {
115
- const startedAt = Date.now();
116
- const result = await (0, _retrySave.withSyncRetries)(() => this.storageManager.saveObservations(entries), () => this.stateManager.shouldStopSync);
117
- if (this.stateManager.shouldStopSync) {
118
- return;
116
+ if (entries.length !== 0) {
117
+ const startedAt = Date.now();
118
+ const result = await (0, _retrySave.withSyncRetries)(() => this.storageManager.saveObservations(entries), () => this.stateManager.shouldStopSync);
119
+ if (this.stateManager.shouldStopSync) {
120
+ return;
121
+ }
122
+ const responseEntries = result.entry ?? [];
123
+ const savedCount = responseEntries.length ? responseEntries.filter(entry => entry.response?.status.startsWith("2")).length : entries.length;
124
+ const createdCount = responseEntries.filter(entry => entry.response?.status.startsWith("201")).length;
125
+ (0, _telemetry.recordOvokMetric)("ovok.health.samples.imported", createdCount, {
126
+ provider: this.getProviderName(),
127
+ measurementTypeKey
128
+ });
129
+ (0, _telemetry.recordOvokDuration)("ovok.measurement.save.duration", Date.now() - startedAt, {
130
+ provider: this.getProviderName()
131
+ });
132
+ this.stateManager.addResult(result);
133
+ this.progressManager.incrementSyncedObservations(measurementTypeKey, savedCount, createdCount);
134
+ }
135
+ if (deletedObservationSyncIds.length !== 0) {
136
+ await this.storageManager.deleteObservations(deletedObservationSyncIds, this.patientId);
119
137
  }
120
- const responseEntries = result.entry ?? [];
121
- const savedCount = responseEntries.length ? responseEntries.filter(entry => entry.response?.status.startsWith("2")).length : entries.length;
122
- const createdCount = responseEntries.filter(entry => entry.response?.status.startsWith("201")).length;
123
- (0, _telemetry.recordOvokMetric)("ovok.health.samples.imported", createdCount, {
124
- provider: this.getProviderName(),
125
- measurementTypeKey
126
- });
127
- (0, _telemetry.recordOvokDuration)("ovok.measurement.save.duration", Date.now() - startedAt, {
128
- provider: this.getProviderName()
129
- });
130
- this.stateManager.addResult(result);
131
- this.progressManager.incrementSyncedObservations(measurementTypeKey, savedCount, createdCount);
132
138
  this.storageManager.saveAnchors(anchors);
133
139
  } catch (error) {
134
140
  if ((0, _retrySave.isSyncRetryCancelled)(error) || this.stateManager.shouldStopSync) {
@@ -1 +1 @@
1
- {"version":3,"names":["_telemetry","require","_constants","_healthSyncBatchError","_healthSyncKeys","_retrySave","_dataProcessor","_storageManager","_syncProgressManager","_syncStateManager","BaseHealthSyncService","constructor","props","client","patientId","dataToSync","onSyncError","progressManager","SyncProgressManager","updateProgress","stateManager","SyncStateManager","storageManager","StorageManager","getProviderName","dataProcessor","DataProcessor","chunkSize","DEFAULT_HEALTH_SYNC_CHUNK_SIZE","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","startSync","once","withOvokSpan","provider","runSync","isInitialized","Error","resume","setNotStartedStatuses","initialDataFetched","initializeSync","processAllDataTypes","setPauseStatuses","pauseReason","error","stopSync","resetAll","reset","shouldStopSync","pauseSync","reason","pause","latestObservationDates","getLatestObservationDates","calculateTotalCounts","key","Object","keys","measurementTypeKey","data","getDataForMeasurementType","latestValidStartDate","getLatestValidStartDate","getHealthDataMode","mode","totalCount","getTotalRecordsCountForType","setTotalObservations","setStatus","syncDataByType","hasMore","observationBodies","observationSyncIds","currentHasMore","anchors","getObservationBodiesForType","entries","generateObservationEntries","length","startedAt","Date","now","result","withSyncRetries","saveObservations","responseEntries","entry","savedCount","filter","response","status","startsWith","createdCount","recordOvokMetric","recordOvokDuration","addResult","incrementSyncedObservations","saveAnchors","isSyncRetryCancelled","toHealthSyncError","exports"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/services/base-health-sync-service.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_telemetry","require","_constants","_healthSyncBatchError","_healthSyncKeys","_retrySave","_dataProcessor","_storageManager","_syncProgressManager","_syncStateManager","BaseHealthSyncService","constructor","props","client","patientId","dataToSync","onSyncError","progressManager","SyncProgressManager","updateProgress","stateManager","SyncStateManager","storageManager","StorageManager","getProviderName","dataProcessor","DataProcessor","chunkSize","DEFAULT_HEALTH_SYNC_CHUNK_SIZE","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","startSync","once","withOvokSpan","provider","runSync","isInitialized","Error","resume","setNotStartedStatuses","initialDataFetched","initializeSync","processAllDataTypes","setPauseStatuses","pauseReason","error","stopSync","resetAll","reset","shouldStopSync","pauseSync","reason","pause","latestObservationDates","getLatestObservationDates","calculateTotalCounts","key","Object","keys","measurementTypeKey","data","getDataForMeasurementType","latestValidStartDate","getLatestValidStartDate","getHealthDataMode","mode","totalCount","getTotalRecordsCountForType","setTotalObservations","setStatus","syncDataByType","hasMore","observationBodies","observationSyncIds","deletedObservationSyncIds","currentHasMore","anchors","getObservationBodiesForType","entries","generateObservationEntries","length","startedAt","Date","now","result","withSyncRetries","saveObservations","responseEntries","entry","savedCount","filter","response","status","startsWith","createdCount","recordOvokMetric","recordOvokDuration","addResult","incrementSyncedObservations","deleteObservations","saveAnchors","isSyncRetryCancelled","toHealthSyncError","exports"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/services/base-health-sync-service.ts"],"mappings":";;;;;;AAKA,IAAAA,UAAA,GAAAC,OAAA;AAKA,IAAAC,UAAA,GAAAD,OAAA;AASA,IAAAE,qBAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AAEA,IAAAI,UAAA,GAAAJ,OAAA;AAEA,IAAAK,cAAA,GAAAL,OAAA;AACA,IAAAM,eAAA,GAAAN,OAAA;AACA,IAAAO,oBAAA,GAAAP,OAAA;AACA,IAAAQ,iBAAA,GAAAR,OAAA;AA3BA;;AA6BO,MAAeS,qBAAqB,CAKzC;EAeAC,WAAWA,CAACC,KAAoC,EAAE;IAChD,IAAI,CAACC,MAAM,GAAGD,KAAK,CAACC,MAAM;IAC1B,IAAI,CAACC,SAAS,GAAGF,KAAK,CAACE,SAAS;IAChC,IAAI,CAACC,UAAU,GAAGH,KAAK,CAACG,UAAU;IAClC,IAAI,CAACC,WAAW,GAAGJ,KAAK,CAACI,WAAW;IAEpC,IAAI,CAACC,eAAe,GAAG,IAAIC,wCAAmB,CAC5CN,KAAK,CAACO,cAAc,EACpBP,KAAK,CAACG,UACR,CAAC;IACD,IAAI,CAACK,YAAY,GAAG,IAAIC,kCAAgB,CAAC,CAAC;IAC1C,IAAI,CAACC,cAAc,GAAG,IAAIC,8BAAc,CACtCX,KAAK,CAACC,MAAM,EACZ,IAAI,CAACW,eAAe,CAAC,CACvB,CAAC;IACD,IAAI,CAACC,aAAa,GAAG,IAAIC,4BAAa,CACpCd,KAAK,CAACC,MAAM,EACZD,KAAK,CAACE,SAAS,EACf,IAAI,CAACU,eAAe,CAAC,CAAC,EACtBZ,KAAK,CAACe,SAAS,IAAIC,yCAA8B,EACjD,IAAI,CAACN,cAAc,EACnB,IAAI,CAACO,sBAAsB,CAAC,CAAC,EAC7B,IAAI,CAACC,2BAA2B,CAAC,CAAC,EAClC,IAAI,CAACC,oBAAoB,CAAC,CAC5B,CAAC;EACH;EAgBA;EACA,MAAaC,SAASA,CAAA,EAAkB;IACtC,OAAO,IAAI,CAACZ,YAAY,CAACa,IAAI,CAAC,MAC5B,IAAAC,uBAAY,EAAC,eAAe,EAAE;MAAEC,QAAQ,EAAE,IAAI,CAACX,eAAe,CAAC;IAAE,CAAC,EAAE,MAClE,IAAI,CAACY,OAAO,CAAC,CACf,CACF,CAAC;EACH;EAEA,MAAcA,OAAOA,CAAA,EAAkB;IACrC,IAAI;MACF,IAAI,CAAC,IAAI,CAACvB,MAAM,CAACwB,aAAa,EAAE;QAC9B,IAAI,CAACrB,WAAW,CAAC,IAAIsB,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAErD;MACF;MAEA,IAAI,CAAC,IAAI,CAACxB,SAAS,EAAE;QACnB,IAAI,CAACE,WAAW,CAAC,IAAIsB,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAEhD;MACF;MAEA,IAAI,CAAClB,YAAY,CAACmB,MAAM,CAAC,CAAC;MAC1B,IAAI,CAACtB,eAAe,CAACuB,qBAAqB,CAAC,CAAC;MAE5C,IAAI,CAAC,IAAI,CAACpB,YAAY,CAACqB,kBAAkB,EAAE;QACzC,MAAM,IAAI,CAACC,cAAc,CAAC,CAAC;MAC7B;MAEA,MAAM,IAAI,CAACC,mBAAmB,CAAC,CAAC;MAEhC,IAAI,CAAC1B,eAAe,CAAC2B,gBAAgB,CAAC,IAAI,CAACxB,YAAY,CAACyB,WAAW,CAAC;IACtE,CAAC,CAAC,OAAOC,KAAK,EAAE;MACd,IAAI,CAAC9B,WAAW,CAAC8B,KAAc,CAAC;IAClC;EACF;EAEA,MAAaC,QAAQA,CAAA,EAAkB;IACrC,IAAI,CAAC9B,eAAe,CAAC+B,QAAQ,CAAC,CAAC;IAC/B,IAAI,CAAC5B,YAAY,CAAC6B,KAAK,CAAC,CAAC;IACzB,IAAI,CAAC7B,YAAY,CAAC8B,cAAc,GAAG,IAAI;EACzC;EAEA,MAAaC,SAASA,CAACC,MAAwB,EAAiB;IAC9D,IAAI,CAAChC,YAAY,CAACiC,KAAK,CAACD,MAAM,CAAC;IAC/B,IAAI,CAACnC,eAAe,CAAC2B,gBAAgB,CAACQ,MAAM,CAAC;EAC/C;EAEA,MAAcV,cAAcA,CAAA,EAAkB;IAC5C,MAAMY,sBAAsB,GAC1B,MAAM,IAAI,CAAC7B,aAAa,CAAC8B,yBAAyB,CAAC,IAAI,CAACxC,UAAU,CAAC;IAErE,IAAI,CAACK,YAAY,CAACkC,sBAAsB,GAAGA,sBAAsB;IAEjE,MAAM,IAAI,CAACE,oBAAoB,CAAC,CAAC;IACjC,IAAI,CAACpC,YAAY,CAACqB,kBAAkB,GAAG,IAAI;EAC7C;EAEA,MAAce,oBAAoBA,CAAA,EAAkB;IAClD,KAAK,MAAMC,GAAG,IAAIC,MAAM,CAACC,IAAI,CAAC,IAAI,CAAC5C,UAAqC,CAAC,EAAE;MACzE,MAAM6C,kBAAkB,GAAGH,GAAoB;MAC/C,MAAMI,IAAI,GAAG,IAAI,CAACC,yBAAyB,CAACF,kBAAkB,CAAC;MAE/D,IAAI,CAACC,IAAI,EAAE;QACT;MACF;MAEA,MAAME,oBAAoB,GAAG,IAAI,CAACtC,aAAa,CAACuC,uBAAuB,CACrE,IAAI,CAAC5C,YAAY,CAACkC,sBAAsB,EACxCO,IAAI,EACJD,kBAAkB,EAClB,IAAAK,iCAAiB,EAACL,kBAAkB,EAAEC,IAAI,CAACK,IAAI,CACjD,CAAC;MAED,MAAMC,UAAU,GAAG,MAAM,IAAI,CAAC1C,aAAa,CAAC2C,2BAA2B,CACrER,kBAAkB,EAClBC,IAAI,EACJE,oBACF,CAAC;MAED,IAAI,CAAC9C,eAAe,CAACoD,oBAAoB,CAACT,kBAAkB,EAAEO,UAAU,CAAC;IAC3E;EACF;EAEA,MAAcxB,mBAAmBA,CAAA,EAAkB;IACjD,KAAK,MAAMc,GAAG,IAAIC,MAAM,CAACC,IAAI,CAC3B,IAAI,CAAC5C,UACP,CAAC,EAAE;MACD,IAAI,IAAI,CAACK,YAAY,CAAC8B,cAAc,EAAE;QACpC;MACF;MAEA,MAAMU,kBAAkB,GAAGH,GAAoB;MAC/C,MAAMI,IAAI,GAAG,IAAI,CAACC,yBAAyB,CAACF,kBAAkB,CAAC;MAE/D,IAAI,CAACC,IAAI,EAAE;QACT,IAAI,CAAC5C,eAAe,CAACqD,SAAS,CAACV,kBAAkB,EAAE,MAAM,CAAC;QAC1D;MACF;MAEA,IAAI,CAAC3C,eAAe,CAACqD,SAAS,CAACV,kBAAkB,EAAE,SAAS,CAAC;MAC7D,MAAM,IAAI,CAACW,cAAc,CAACX,kBAAkB,EAAEC,IAAI,CAAC;IACrD;EACF;EAEA,MAAcU,cAAcA,CAC1BX,kBAAiC,EACjCC,IAA6C,EAC9B;IACf,MAAME,oBAAoB,GAAG,IAAI,CAACtC,aAAa,CAACuC,uBAAuB,CACrE,IAAI,CAAC5C,YAAY,CAACkC,sBAAsB,EACxCO,IAAI,EACJD,kBAAkB,EAClB,IAAAK,iCAAiB,EAACL,kBAAkB,EAAEC,IAAI,CAACK,IAAI,CACjD,CAAC;IAED,IAAIM,OAAO,GAAG,IAAI;IAElB,OAAOA,OAAO,IAAI,CAAC,IAAI,CAACpD,YAAY,CAAC8B,cAAc,EAAE;MACnD,MAAM;QACJuB,iBAAiB;QACjBC,kBAAkB;QAClBC,yBAAyB;QACzBH,OAAO,EAAEI,cAAc;QACvBC;MACF,CAAC,GAAG,MAAM,IAAI,CAACpD,aAAa,CAACqD,2BAA2B,CACtDlB,kBAAkB,EAClBC,IAAI,EACJE,oBACF,CAAC;MAEDS,OAAO,GAAGI,cAAc;MAExB,IAAI,IAAI,CAACxD,YAAY,CAAC8B,cAAc,EAAE;QACpC;MACF;MAEA,MAAM6B,OAAO,GAAG,IAAI,CAACtD,aAAa,CAACuD,0BAA0B,CAC3DP,iBAAiB,EACjBC,kBAAkB,EAClB,IAAAT,iCAAiB,EAACL,kBAAkB,EAAEC,IAAI,CAACK,IAAI,CACjD,CAAC;MAED,IACE,CAACa,OAAO,CAACE,MAAM,KAAK,CAAC,IAAIN,yBAAyB,CAACM,MAAM,KAAK,CAAC,KAC/D,CAAC,IAAI,CAAC7D,YAAY,CAAC8B,cAAc,EACjC;QACA,IAAI;UACF,IAAI6B,OAAO,CAACE,MAAM,KAAK,CAAC,EAAE;YACxB,MAAMC,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;YAE5B,MAAMC,MAAM,GAAG,MAAM,IAAAC,0BAAe,EAClC,MAAM,IAAI,CAAChE,cAAc,CAACiE,gBAAgB,CAACR,OAAO,CAAC,EACnD,MAAM,IAAI,CAAC3D,YAAY,CAAC8B,cAC1B,CAAC;YAED,IAAI,IAAI,CAAC9B,YAAY,CAAC8B,cAAc,EAAE;cACpC;YACF;YAEA,MAAMsC,eAAe,GAAGH,MAAM,CAACI,KAAK,IAAI,EAAE;YAE1C,MAAMC,UAAU,GAAGF,eAAe,CAACP,MAAM,GACrCO,eAAe,CAACG,MAAM,CAAEF,KAAK,IAC3BA,KAAK,CAACG,QAAQ,EAAEC,MAAM,CAACC,UAAU,CAAC,GAAG,CACvC,CAAC,CAACb,MAAM,GACRF,OAAO,CAACE,MAAM;YAElB,MAAMc,YAAY,GAAGP,eAAe,CAACG,MAAM,CAAEF,KAAK,IAChDA,KAAK,CAACG,QAAQ,EAAEC,MAAM,CAACC,UAAU,CAAC,KAAK,CACzC,CAAC,CAACb,MAAM;YAER,IAAAe,2BAAgB,EAAC,8BAA8B,EAAED,YAAY,EAAE;cAC7D5D,QAAQ,EAAE,IAAI,CAACX,eAAe,CAAC,CAAC;cAChCoC;YACF,CAAC,CAAC;YACF,IAAAqC,6BAAkB,EAChB,gCAAgC,EAChCd,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGF,SAAS,EACtB;cACE/C,QAAQ,EAAE,IAAI,CAACX,eAAe,CAAC;YACjC,CACF,CAAC;YAED,IAAI,CAACJ,YAAY,CAAC8E,SAAS,CAACb,MAAM,CAAC;YACnC,IAAI,CAACpE,eAAe,CAACkF,2BAA2B,CAC9CvC,kBAAkB,EAClB8B,UAAU,EACVK,YACF,CAAC;UACH;UAEA,IAAIpB,yBAAyB,CAACM,MAAM,KAAK,CAAC,EAAE;YAC1C,MAAM,IAAI,CAAC3D,cAAc,CAAC8E,kBAAkB,CAC1CzB,yBAAyB,EACzB,IAAI,CAAC7D,SACP,CAAC;UACH;UAEA,IAAI,CAACQ,cAAc,CAAC+E,WAAW,CAACxB,OAAO,CAAC;QAC1C,CAAC,CAAC,OAAO/B,KAAK,EAAE;UACd,IAAI,IAAAwD,+BAAoB,EAACxD,KAAK,CAAC,IAAI,IAAI,CAAC1B,YAAY,CAAC8B,cAAc,EAAE;YACnE;UACF;UAEA,IAAI,CAACjC,eAAe,CAACqD,SAAS,CAACV,kBAAkB,EAAE,QAAQ,CAAC;UAC5D,IAAI,CAAC5C,WAAW,CAAC,IAAAuF,uCAAiB,EAACzD,KAAK,CAAC,CAAC;UAE1C;QACF;MACF,CAAC,MAAM;QACL,IAAI,CAACxB,cAAc,CAAC+E,WAAW,CAACxB,OAAO,CAAC;MAC1C;IACF;IAEA,IAAI,CAAC5D,eAAe,CAACqD,SAAS,CAC5BV,kBAAkB,EAClB,IAAI,CAACxC,YAAY,CAAC8B,cAAc,GAAG,MAAM,GAAG,WAC9C,CAAC;EACH;EAEQY,yBAAyBA,CAACF,kBAAiC,EAAE;IACnE,OAAO,IAAI,CAAC7C,UAAU,CAAC6C,kBAAkB,CAAC;EAC5C;AACF;AAAC4C,OAAA,CAAA9F,qBAAA,GAAAA,qBAAA","ignoreList":[]}
@@ -11,6 +11,9 @@ var _getHealthRecordSyncId = require("../../utils/get-health-record-sync-id.js")
11
11
  var _getLatestObservationDatesByCode = require("../../utils/get-latest-observation-dates-by-code.js");
12
12
  var _getLatestValidStartDate = require("../../utils/get-latest-valid-start-date.js");
13
13
  var _groupSleepSamples = require("../../utils/group-sleep-samples.js");
14
+ var _healthDataCatalog = require("../../utils/health-data-catalog.js");
15
+ /* eslint-disable max-lines */
16
+
14
17
  class DataProcessor {
15
18
  constructor(client, patientId, provider, chunkSize, storageManager, getTotalCountsFunction, getDataFromProviderFunction, getConverterFunction) {
16
19
  this.client = client;
@@ -23,7 +26,11 @@ class DataProcessor {
23
26
  this.getConverterFunction = getConverterFunction;
24
27
  }
25
28
  extractCodes(dataToSync) {
26
- return Object.values(dataToSync).flatMap(data => data?.typeIdentifiers.map(identifier => identifier.code) ?? []);
29
+ const entries = Object.entries(dataToSync);
30
+ return entries.flatMap(([key, data]) => data?.typeIdentifiers.map(({
31
+ typeIdentifier,
32
+ code
33
+ }) => String(code ?? (0, _healthDataCatalog.getHealthDataCoding)(this.provider, String(typeIdentifier), (0, _healthSyncKeys.getHealthDataMode)(key, data.mode)).code)) ?? []);
27
34
  }
28
35
  async getLatestObservationDates(dataToSync) {
29
36
  const codes = this.extractCodes(dataToSync);
@@ -51,24 +58,57 @@ class DataProcessor {
51
58
  }
52
59
  async getObservationBodiesForType(measurementTypeKey, data, latestValidStartDate) {
53
60
  const mode = (0, _healthSyncKeys.getHealthDataMode)(measurementTypeKey, data.mode);
54
- const typeIdentifierCodes = Object.fromEntries(data.typeIdentifiers.map(({
61
+ const configuredCodings = data.typeIdentifiers.map(({
62
+ typeIdentifier,
63
+ code,
64
+ system,
65
+ display
66
+ }) => {
67
+ const catalogCoding = (0, _healthDataCatalog.getHealthDataCoding)(this.provider, String(typeIdentifier), mode);
68
+ return {
69
+ typeIdentifier: String(typeIdentifier),
70
+ code: String(code ?? catalogCoding.code),
71
+ system: system ?? (code ? undefined : catalogCoding.system),
72
+ display: display ?? (code ? undefined : catalogCoding.display)
73
+ };
74
+ });
75
+ const typeIdentifierCodes = Object.fromEntries(configuredCodings.map(({
55
76
  typeIdentifier,
56
77
  code
57
- }) => [String(typeIdentifier), String(code)]));
78
+ }) => [typeIdentifier, code]));
79
+ const typeIdentifierCodeSystems = Object.fromEntries(configuredCodings.flatMap(({
80
+ typeIdentifier,
81
+ system
82
+ }) => system ? [[typeIdentifier, system]] : []));
83
+ const typeIdentifierCodeDisplays = Object.fromEntries(configuredCodings.flatMap(({
84
+ typeIdentifier,
85
+ display
86
+ }) => display ? [[typeIdentifier, display]] : []));
58
87
  const results = await Promise.all(data.typeIdentifiers?.map(async ({
59
88
  typeIdentifier
60
89
  }) => {
61
90
  const anchor = this.storageManager.getAnchor(typeIdentifier);
62
- return this.getDataFromProviderFunction({
63
- typeIdentifier: typeIdentifier,
64
- startDate: latestValidStartDate?.toISOString(),
65
- anchor,
66
- chunkSize: this.chunkSize,
67
- mode
68
- });
91
+ return {
92
+ typeIdentifier,
93
+ result: await this.getDataFromProviderFunction({
94
+ typeIdentifier: typeIdentifier,
95
+ startDate: mode === "daily-total" || mode === "daily-summary" ? data.minDate?.toISOString() : latestValidStartDate?.toISOString(),
96
+ anchor,
97
+ chunkSize: this.chunkSize,
98
+ mode
99
+ })
100
+ };
69
101
  }));
70
- const newAnchors = results.map(result => result.anchor).flat().filter(Boolean);
71
- const allData = results.flatMap(result => result.data);
102
+ const newAnchors = results.map(({
103
+ result
104
+ }) => result.anchor).flat().filter(Boolean);
105
+ const allData = results.flatMap(({
106
+ result
107
+ }) => result.data);
108
+ const deletedObservationSyncIds = results.flatMap(({
109
+ typeIdentifier,
110
+ result
111
+ }) => (result.deletedRecordIds ?? []).map(recordId => (0, _getHealthRecordSyncId.getHealthRecordDeletionSyncId)(typeIdentifier, recordId, measurementTypeKey, this.provider)));
72
112
  const dataGroups = this.provider === "apple-health" && measurementTypeKey === _healthSyncKeys.HealthDataType.sleep ? (0, _groupSleepSamples.groupSleepSamples)(allData) : this.provider === "apple-health" && measurementTypeKey === _core.MeasurementTypeKey.bloodPressure ? Array.from(allData.reduce((groups, sample) => {
73
113
  const value = sample;
74
114
  const key = `${new Date(value.startDate ?? 0).getTime()}:${new Date(value.endDate ?? value.startDate ?? 0).getTime()}`;
@@ -84,13 +124,18 @@ class DataProcessor {
84
124
  measurementTypeKey,
85
125
  typeIdentifier: data.typeIdentifiers?.length === 1 ? String(data.typeIdentifiers[0]?.typeIdentifier) : undefined,
86
126
  mode,
87
- typeIdentifierCodes
127
+ typeIdentifierCodes,
128
+ typeIdentifierCodeSystems,
129
+ typeIdentifierCodeDisplays
88
130
  })));
89
131
  const observationSyncIds = dataGroups.map(group => (0, _getHealthRecordSyncId.getHealthRecordSyncId)(group[0], measurementTypeKey));
90
132
  return {
91
133
  observationBodies,
92
134
  observationSyncIds,
93
- hasMore: results.some(result => result.data.length >= this.chunkSize && result.anchor),
135
+ deletedObservationSyncIds,
136
+ hasMore: results.some(({
137
+ result
138
+ }) => result.hasMore ?? ((result.data.length >= this.chunkSize || (result.deletedRecordIds?.length ?? 0) >= this.chunkSize) && Boolean(result.anchor))),
94
139
  anchors: newAnchors
95
140
  };
96
141
  }
@@ -103,11 +148,22 @@ class DataProcessor {
103
148
  patientId: this.patientId
104
149
  });
105
150
  }
106
- getLatestValidStartDate(latestObservationDates, data, mode) {
151
+ getLatestValidStartDate(latestObservationDates, data, measurementTypeKey, mode) {
152
+ const resolvedMode = (0, _healthSyncKeys.getHealthDataMode)(measurementTypeKey, mode ?? data.mode);
153
+ const resolvedData = {
154
+ ...data,
155
+ typeIdentifiers: data.typeIdentifiers.map(({
156
+ typeIdentifier,
157
+ code
158
+ }) => ({
159
+ typeIdentifier,
160
+ code: code ?? (0, _healthDataCatalog.getHealthDataCoding)(this.provider, String(typeIdentifier), resolvedMode).code
161
+ }))
162
+ };
107
163
  return (0, _getLatestValidStartDate.getLatestValidStartDate)({
108
164
  latestObservationDates,
109
- data: data,
110
- mode
165
+ data: resolvedData,
166
+ mode: resolvedMode
111
167
  });
112
168
  }
113
169
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_core","require","_healthSyncKeys","_generateObservationEntry","_getHealthRecordSyncId","_getLatestObservationDatesByCode","_getLatestValidStartDate","_groupSleepSamples","DataProcessor","constructor","client","patientId","provider","chunkSize","storageManager","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","extractCodes","dataToSync","Object","values","flatMap","data","typeIdentifiers","map","identifier","code","getLatestObservationDates","codes","getLatestObservationDatesByCode","getTotalRecordsCountForType","measurementTypeKey","latestValidStartDate","mode","getHealthDataMode","totalCounts","Promise","all","typeIdentifier","anchor","getAnchor","startDate","toISOString","reduce","acc","count","getObservationBodiesForType","typeIdentifierCodes","fromEntries","String","results","newAnchors","result","flat","filter","Boolean","allData","dataGroups","HealthDataType","sleep","groupSleepSamples","MeasurementTypeKey","bloodPressure","Array","from","groups","sample","value","key","Date","getTime","endDate","group","get","push","set","Map","observationBodies","length","undefined","observationSyncIds","getHealthRecordSyncId","hasMore","some","anchors","generateObservationEntries","generateObservationEntry","groupedObservationBodies","groupedObservationSyncIds","getLatestValidStartDate","latestObservationDates","exports"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/data-processor.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_core","require","_healthSyncKeys","_generateObservationEntry","_getHealthRecordSyncId","_getLatestObservationDatesByCode","_getLatestValidStartDate","_groupSleepSamples","_healthDataCatalog","DataProcessor","constructor","client","patientId","provider","chunkSize","storageManager","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","extractCodes","dataToSync","entries","Object","flatMap","key","data","typeIdentifiers","map","typeIdentifier","code","String","getHealthDataCoding","getHealthDataMode","mode","getLatestObservationDates","codes","getLatestObservationDatesByCode","getTotalRecordsCountForType","measurementTypeKey","latestValidStartDate","totalCounts","Promise","all","anchor","getAnchor","startDate","toISOString","reduce","acc","count","getObservationBodiesForType","configuredCodings","system","display","catalogCoding","undefined","typeIdentifierCodes","fromEntries","typeIdentifierCodeSystems","typeIdentifierCodeDisplays","results","result","minDate","newAnchors","flat","filter","Boolean","allData","deletedObservationSyncIds","deletedRecordIds","recordId","getHealthRecordDeletionSyncId","dataGroups","HealthDataType","sleep","groupSleepSamples","MeasurementTypeKey","bloodPressure","Array","from","groups","sample","value","Date","getTime","endDate","group","get","push","set","Map","values","observationBodies","length","observationSyncIds","getHealthRecordSyncId","hasMore","some","anchors","generateObservationEntries","generateObservationEntry","groupedObservationBodies","groupedObservationSyncIds","getLatestValidStartDate","latestObservationDates","resolvedMode","resolvedData","exports"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/data-processor.ts"],"mappings":"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","ignoreList":[]}
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.StorageManager = void 0;
7
7
  var _saveBundleObservations = require("../../utils/save-bundle-observations.js");
8
8
  class StorageManager {
9
+ static SYNC_ID_SYSTEM = "https://api.ovok.com/fhir/StructureDefinition/observation-sync-id";
10
+
9
11
  /**
10
12
  * Where an anchor goes when the host client has no storage.
11
13
  *
@@ -34,6 +36,18 @@ class StorageManager {
34
36
  client: this.client
35
37
  });
36
38
  }
39
+ async deleteObservations(syncIds, patientId) {
40
+ for (const syncId of new Set(syncIds)) {
41
+ const observations = [];
42
+ for await (const page of this.client.searchResourcePages("Observation", {
43
+ subject: `Patient/${patientId}`,
44
+ identifier: `${StorageManager.SYNC_ID_SYSTEM}|${this.provider}:${syncId}`
45
+ })) {
46
+ observations.push(...page);
47
+ }
48
+ await Promise.all(observations.filter(observation => observation.id).map(observation => this.client.deleteResource("Observation", observation.id)));
49
+ }
50
+ }
37
51
  saveAnchor(typeIdentifier, anchor) {
38
52
  const key = this.anchorKey(typeIdentifier);
39
53
  if (this.client.clientStorage) {
@@ -1 +1 @@
1
- {"version":3,"names":["_saveBundleObservations","require","StorageManager","inMemoryAnchors","Map","constructor","client","provider","saveObservations","entries","saveBundleObservations","saveAnchor","typeIdentifier","anchor","key","anchorKey","clientStorage","setString","set","getAnchor","getString","get","saveAnchors","anchors","forEach","exports"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/storage-manager.ts"],"mappings":";;;;;;AAIA,IAAAA,uBAAA,GAAAC,OAAA;AAEO,MAAMC,cAAc,CAAC;EAC1B;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACmBC,eAAe,GAAG,IAAIC,GAAG,CAAiB,CAAC;EAE5DC,WAAWA,CACDC,MAAkB,EAClBC,QAAwB,EAChC;IAAA,KAFQD,MAAkB,GAAlBA,MAAkB;IAAA,KAClBC,QAAwB,GAAxBA,QAAwB;EAC/B;EAEH,MAAMC,gBAAgBA,CACpBC,OAAgE,EAClC;IAC9B,OAAO,IAAAC,8CAAsB,EAAC;MAC5BD,OAAO;MACPH,MAAM,EAAE,IAAI,CAACA;IACf,CAAC,CAAC;EACJ;EAEAK,UAAUA,CAACC,cAAsB,EAAEC,MAAc,EAAQ;IACvD,MAAMC,GAAG,GAAG,IAAI,CAACC,SAAS,CAACH,cAAc,CAAC;IAE1C,IAAI,IAAI,CAACN,MAAM,CAACU,aAAa,EAAE;MAC7B,IAAI,CAACV,MAAM,CAACU,aAAa,CAACC,SAAS,CAACH,GAAG,EAAED,MAAM,CAAC;MAEhD;IACF;IAEA,IAAI,CAACV,eAAe,CAACe,GAAG,CAACJ,GAAG,EAAED,MAAM,CAAC;EACvC;EAEAM,SAASA,CAACP,cAAsB,EAAsB;IACpD,MAAME,GAAG,GAAG,IAAI,CAACC,SAAS,CAACH,cAAc,CAAC;IAE1C,OAAO,IAAI,CAACN,MAAM,CAACU,aAAa,GAC5B,IAAI,CAACV,MAAM,CAACU,aAAa,CAACI,SAAS,CAACN,GAAG,CAAC,GACxC,IAAI,CAACX,eAAe,CAACkB,GAAG,CAACP,GAAG,CAAC;EACnC;EAEQC,SAASA,CAACH,cAAsB,EAAU;IAChD,OAAO,GAAG,IAAI,CAACL,QAAQ,SAASK,cAAc,SAAS;EACzD;EAEAU,WAAWA,CACTC,OAA0D,EACpD;IACNA,OAAO,CAACC,OAAO,CAAC,CAAC;MAAEZ,cAAc;MAAEC;IAAO,CAAC,KAAK;MAC9C,IAAI,CAACF,UAAU,CAACC,cAAc,EAAEC,MAAM,CAAC;IACzC,CAAC,CAAC;EACJ;AACF;AAACY,OAAA,CAAAvB,cAAA,GAAAA,cAAA","ignoreList":[]}
1
+ {"version":3,"names":["_saveBundleObservations","require","StorageManager","SYNC_ID_SYSTEM","inMemoryAnchors","Map","constructor","client","provider","saveObservations","entries","saveBundleObservations","deleteObservations","syncIds","patientId","syncId","Set","observations","page","searchResourcePages","subject","identifier","push","Promise","all","filter","observation","id","map","deleteResource","saveAnchor","typeIdentifier","anchor","key","anchorKey","clientStorage","setString","set","getAnchor","getString","get","saveAnchors","anchors","forEach","exports"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/storage-manager.ts"],"mappings":";;;;;;AAIA,IAAAA,uBAAA,GAAAC,OAAA;AAEO,MAAMC,cAAc,CAAC;EAC1B,OAAwBC,cAAc,GACpC,mEAAmE;;EAErE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACmBC,eAAe,GAAG,IAAIC,GAAG,CAAiB,CAAC;EAE5DC,WAAWA,CACDC,MAAkB,EAClBC,QAAwB,EAChC;IAAA,KAFQD,MAAkB,GAAlBA,MAAkB;IAAA,KAClBC,QAAwB,GAAxBA,QAAwB;EAC/B;EAEH,MAAMC,gBAAgBA,CACpBC,OAAgE,EAClC;IAC9B,OAAO,IAAAC,8CAAsB,EAAC;MAC5BD,OAAO;MACPH,MAAM,EAAE,IAAI,CAACA;IACf,CAAC,CAAC;EACJ;EAEA,MAAMK,kBAAkBA,CACtBC,OAAiB,EACjBC,SAAiB,EACF;IACf,KAAK,MAAMC,MAAM,IAAI,IAAIC,GAAG,CAACH,OAAO,CAAC,EAAE;MACrC,MAAMI,YAAY,GAAG,EAAE;MAEvB,WAAW,MAAMC,IAAI,IAAI,IAAI,CAACX,MAAM,CAACY,mBAAmB,CAAC,aAAa,EAAE;QACtEC,OAAO,EAAE,WAAWN,SAAS,EAAE;QAC/BO,UAAU,EAAE,GAAGnB,cAAc,CAACC,cAAc,IAAI,IAAI,CAACK,QAAQ,IAAIO,MAAM;MACzE,CAAC,CAAC,EAAE;QACFE,YAAY,CAACK,IAAI,CAAC,GAAGJ,IAAI,CAAC;MAC5B;MAEA,MAAMK,OAAO,CAACC,GAAG,CACfP,YAAY,CACTQ,MAAM,CAAEC,WAAW,IAAKA,WAAW,CAACC,EAAE,CAAC,CACvCC,GAAG,CAAEF,WAAW,IACf,IAAI,CAACnB,MAAM,CAACsB,cAAc,CAAC,aAAa,EAAEH,WAAW,CAACC,EAAG,CAC3D,CACJ,CAAC;IACH;EACF;EAEAG,UAAUA,CAACC,cAAsB,EAAEC,MAAc,EAAQ;IACvD,MAAMC,GAAG,GAAG,IAAI,CAACC,SAAS,CAACH,cAAc,CAAC;IAE1C,IAAI,IAAI,CAACxB,MAAM,CAAC4B,aAAa,EAAE;MAC7B,IAAI,CAAC5B,MAAM,CAAC4B,aAAa,CAACC,SAAS,CAACH,GAAG,EAAED,MAAM,CAAC;MAEhD;IACF;IAEA,IAAI,CAAC5B,eAAe,CAACiC,GAAG,CAACJ,GAAG,EAAED,MAAM,CAAC;EACvC;EAEAM,SAASA,CAACP,cAAsB,EAAsB;IACpD,MAAME,GAAG,GAAG,IAAI,CAACC,SAAS,CAACH,cAAc,CAAC;IAE1C,OAAO,IAAI,CAACxB,MAAM,CAAC4B,aAAa,GAC5B,IAAI,CAAC5B,MAAM,CAAC4B,aAAa,CAACI,SAAS,CAACN,GAAG,CAAC,GACxC,IAAI,CAAC7B,eAAe,CAACoC,GAAG,CAACP,GAAG,CAAC;EACnC;EAEQC,SAASA,CAACH,cAAsB,EAAU;IAChD,OAAO,GAAG,IAAI,CAACvB,QAAQ,SAASuB,cAAc,SAAS;EACzD;EAEAU,WAAWA,CACTC,OAA0D,EACpD;IACNA,OAAO,CAACC,OAAO,CAAC,CAAC;MAAEZ,cAAc;MAAEC;IAAO,CAAC,KAAK;MAC9C,IAAI,CAACF,UAAU,CAACC,cAAc,EAAEC,MAAM,CAAC;IACzC,CAAC,CAAC;EACJ;AACF;AAACY,OAAA,CAAA1C,cAAA,GAAAA,cAAA","ignoreList":[]}
@@ -10,12 +10,15 @@ var _healthObservationDevice = require("./health-observation-device.js");
10
10
 
11
11
  const FHIR_UNIT_SYSTEM = "http://unitsofmeasure.org";
12
12
  const LOINC_SYSTEM = "http://loinc.org";
13
+ const HEALTH_RECORD_DATA_EXTENSION = "https://api.ovok.com/fhir/StructureDefinition/health-record-data";
13
14
  const convertGenericHealthDataToObservation = async ({
14
15
  data,
15
16
  patientId,
16
17
  mode,
17
18
  typeIdentifier: configuredTypeIdentifier,
18
- typeIdentifierCodes
19
+ typeIdentifierCodes,
20
+ typeIdentifierCodeSystems,
21
+ typeIdentifierCodeDisplays
19
22
  }) => {
20
23
  const first = data[0];
21
24
  if (!first) {
@@ -23,7 +26,10 @@ const convertGenericHealthDataToObservation = async ({
23
26
  }
24
27
  const value = first;
25
28
  const typeIdentifier = String(configuredTypeIdentifier ?? value.typeIdentifier ?? value.quantityType ?? value.categoryType ?? value.recordType ?? "health-data");
26
- const code = typeIdentifierCodes?.[typeIdentifier] ?? typeIdentifier;
29
+ const configuredCode = typeIdentifierCodes?.[typeIdentifier];
30
+ const code = configuredCode ?? typeIdentifier;
31
+ const configuredSystem = typeIdentifierCodeSystems?.[typeIdentifier];
32
+ const system = configuredSystem === LOINC_SYSTEM ? configuredCode && isLoincCode(configuredCode) ? LOINC_SYSTEM : undefined : configuredSystem;
27
33
  const interval = getInterval(data);
28
34
  const measurement = getMeasurement(first, mode, interval);
29
35
  if (!measurement || !patientId) {
@@ -47,13 +53,22 @@ const convertGenericHealthDataToObservation = async ({
47
53
  },
48
54
  code: {
49
55
  coding: [{
50
- system: LOINC_SYSTEM,
51
- code
56
+ ...(system ? {
57
+ system
58
+ } : {}),
59
+ code,
60
+ ...(typeIdentifierCodeDisplays?.[typeIdentifier] ? {
61
+ display: typeIdentifierCodeDisplays[typeIdentifier]
62
+ } : {})
52
63
  }]
53
64
  },
54
65
  ...(device ? {
55
66
  device
56
67
  } : {}),
68
+ extension: [{
69
+ url: HEALTH_RECORD_DATA_EXTENSION,
70
+ valueString: JSON.stringify(data.map(toPortableRecordData))
71
+ }],
57
72
  ...(interval ? {
58
73
  effectivePeriod: {
59
74
  start: interval.start.toISOString(),
@@ -74,11 +89,32 @@ const convertGenericHealthDataToObservation = async ({
74
89
  return [observation];
75
90
  };
76
91
  exports.convertGenericHealthDataToObservation = convertGenericHealthDataToObservation;
92
+ const isLoincCode = code => /^\d+(?:-\d+)?$/.test(code);
93
+ const OMITTED_RECORD_FIELDS = new Set(["device", "metadata", "sourceRevision", "uuid"]);
94
+
95
+ /**
96
+ * Keep structured platform fields that do not fit value[x] without copying
97
+ * platform identifiers or device/source metadata into a free-text field.
98
+ */
99
+ const toPortableRecordData = value => {
100
+ if (value instanceof Date) {
101
+ return value.toISOString();
102
+ }
103
+ if (Array.isArray(value)) {
104
+ return value.map(toPortableRecordData);
105
+ }
106
+ if (typeof value !== "object" || value === null) {
107
+ return value;
108
+ }
109
+ return Object.fromEntries(Object.entries(value).filter(([key]) => !OMITTED_RECORD_FIELDS.has(key)).map(([key, child]) => [key, toPortableRecordData(child)]));
110
+ };
77
111
  const getMeasurement = (value, mode, interval) => {
78
112
  const raw = value;
79
113
  if ((0, _healthData.isAggregatedHealthData)(value)) {
80
114
  const number = value.kind === "daily-summary" ? value.average : value.value;
81
- return number === undefined ? undefined : {
115
+ return number === undefined ? {
116
+ valueString: JSON.stringify(toPortableRecordData(value)) ?? String(value)
117
+ } : {
82
118
  valueQuantity: quantity(number, value.unit)
83
119
  };
84
120
  }
@@ -90,7 +126,9 @@ const getMeasurement = (value, mode, interval) => {
90
126
  const extracted = extractValue(raw);
91
127
  return extracted ? {
92
128
  valueQuantity: quantity(extracted.value, extracted.unit)
93
- } : undefined;
129
+ } : {
130
+ valueString: JSON.stringify(toPortableRecordData(raw)) ?? String(raw)
131
+ };
94
132
  };
95
133
  const extractValue = raw => {
96
134
  if (typeof raw.quantity === "number") {
@@ -226,7 +264,7 @@ const getStableObservationId = ({
226
264
  measurement
227
265
  }) => {
228
266
  const time = interval ? `${interval.start.toISOString()}-${interval.end.toISOString()}` : date?.toISOString() ?? "undated";
229
- const value = measurement.valueQuantity?.value ?? "empty";
267
+ const value = measurement.valueQuantity?.value ?? measurement.valueString ?? "empty";
230
268
  return `health-${[typeIdentifier, code, time, value].join("-").replace(/[^a-zA-Z0-9.-]/g, "-").slice(0, 64)}`;
231
269
  };
232
270
  //# sourceMappingURL=convert-generic-health-data.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_healthData","require","_healthObservationDevice","FHIR_UNIT_SYSTEM","LOINC_SYSTEM","convertGenericHealthDataToObservation","data","patientId","mode","typeIdentifier","configuredTypeIdentifier","typeIdentifierCodes","first","value","String","quantityType","categoryType","recordType","code","interval","getInterval","measurement","getMeasurement","metadata","getMetadata","device","getHealthObservationDevice","observationDate","start","getDate","observation","resourceType","id","getStableObservationId","date","status","subject","reference","coding","system","effectivePeriod","toISOString","end","effectiveDateTime","isAggregatedHealthData","component","minimum","undefined","unit","maximum","stageComponents","getSleepStageComponents","length","exports","raw","number","kind","average","valueQuantity","quantity","getTime","extracted","extractValue","candidates","containerKey","valueKey","fallbackUnit","container","normalizeUnit","alternateCandidates","scalarCandidates","key","intervals","map","item","startValue","startDate","startTime","Date","endValue","endDate","endTime","Number","isNaN","filter","Boolean","Math","min","max","time","parsed","sourceRevision","source","manufacturer","dataOrigin","model","sourceApp","name","recordingMethod","flatMap","stages","duration","isFinite","stage","label","text","kilometers","meters","miles","kilograms","grams","milligrams","kilocalories","calories","minutes","seconds","beatsPerMinute","join","replace","slice"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/convert-generic-health-data.ts"],"mappings":";;;;;;AAKA,IAAAA,WAAA,GAAAC,OAAA;AAGA,IAAAC,wBAAA,GAAAD,OAAA;AARA;;AAcA,MAAME,gBAAgB,GAAG,2BAA2B;AACpD,MAAMC,YAAY,GAAG,kBAAkB;AAEhC,MAAMC,qCAAqC,GAAG,MAAAA,CAAO;EAC1DC,IAAI;EACJC,SAAS;EACTC,IAAI;EACJC,cAAc,EAAEC,wBAAwB;EACxCC;AACsB,CAAC,KAA6B;EACpD,MAAMC,KAAK,GAAGN,IAAI,CAAC,CAAC,CAAC;EAErB,IAAI,CAACM,KAAK,EAAE;IACV,OAAO,EAAE;EACX;EAEA,MAAMC,KAAK,GAAGD,KAAgC;EAE9C,MAAMH,cAAc,GAAGK,MAAM,CAC3BJ,wBAAwB,IACtBG,KAAK,CAACJ,cAAc,IACpBI,KAAK,CAACE,YAAY,IAClBF,KAAK,CAACG,YAAY,IAClBH,KAAK,CAACI,UAAU,IAChB,aACJ,CAAC;EAED,MAAMC,IAAI,GAAGP,mBAAmB,GAAGF,cAAc,CAAC,IAAIA,cAAc;EACpE,MAAMU,QAAQ,GAAGC,WAAW,CAACd,IAAI,CAAC;EAClC,MAAMe,WAAW,GAAGC,cAAc,CAACV,KAAK,EAAEJ,IAAI,EAAEW,QAAQ,CAAC;EAEzD,IAAI,CAACE,WAAW,IAAI,CAACd,SAAS,EAAE;IAC9B,OAAO,EAAE;EACX;EAEA,MAAMgB,QAAQ,GAAGC,WAAW,CAACZ,KAAK,CAAC;EACnC,MAAMa,MAAM,GAAG,IAAAC,mDAA0B,EAACH,QAAQ,CAAC;EACnD,MAAMI,eAAe,GAAGR,QAAQ,EAAES,KAAK,IAAIC,OAAO,CAACjB,KAAK,CAAC;EAEzD,MAAMkB,WAAwB,GAAG;IAC/BC,YAAY,EAAE,aAAa;IAC3BC,EAAE,EAAEC,sBAAsB,CAAC;MACzBxB,cAAc;MACdS,IAAI;MACJC,QAAQ;MACRe,IAAI,EAAEP,eAAe;MACrBN;IACF,CAAC,CAAC;IACFc,MAAM,EAAE,YAAY;IACpBC,OAAO,EAAE;MAAEC,SAAS,EAAE,WAAW9B,SAAS;IAAG,CAAC;IAC9CW,IAAI,EAAE;MAAEoB,MAAM,EAAE,CAAC;QAAEC,MAAM,EAAEnC,YAAY;QAAEc;MAAK,CAAC;IAAE,CAAC;IAClD,IAAIO,MAAM,GAAG;MAAEA;IAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,IAAIN,QAAQ,GACR;MACEqB,eAAe,EAAE;QACfZ,KAAK,EAAET,QAAQ,CAACS,KAAK,CAACa,WAAW,CAAC,CAAC;QACnCC,GAAG,EAAEvB,QAAQ,CAACuB,GAAG,CAACD,WAAW,CAAC;MAChC;IACF,CAAC,GACDd,eAAe,GACb;MAAEgB,iBAAiB,EAAEhB,eAAe,CAACc,WAAW,CAAC;IAAE,CAAC,GACpD,CAAC,CAAC,CAAC;IACT,GAAGpB;EACL,CAAC;EAED,IAAIb,IAAI,KAAK,eAAe,IAAI,IAAAoC,kCAAsB,EAAChC,KAAK,CAAC,EAAE;IAC7DkB,WAAW,CAACe,SAAS,GAAG,CACtB,IAAIjC,KAAK,CAACkC,OAAO,KAAKC,SAAS,GAC3B,EAAE,GACF,CAACF,SAAS,CAAC,SAAS,EAAEjC,KAAK,CAACkC,OAAO,EAAElC,KAAK,CAACoC,IAAI,CAAC,CAAC,CAAC,EACtD,IAAIpC,KAAK,CAACqC,OAAO,KAAKF,SAAS,GAC3B,EAAE,GACF,CAACF,SAAS,CAAC,SAAS,EAAEjC,KAAK,CAACqC,OAAO,EAAErC,KAAK,CAACoC,IAAI,CAAC,CAAC,CAAC,CACvD;EACH;EAEA,MAAME,eAAe,GAAGC,uBAAuB,CAAC7C,IAAI,CAAC;EAErD,IAAI4C,eAAe,CAACE,MAAM,GAAG,CAAC,EAAE;IAC9BtB,WAAW,CAACe,SAAS,GAAG,CACtB,IAAIf,WAAW,CAACe,SAAS,IAAI,EAAE,CAAC,EAChC,GAAGK,eAAe,CACnB;EACH;EAEA,OAAO,CAACpB,WAAW,CAAC;AACtB,CAAC;AAACuB,OAAA,CAAAhD,qCAAA,GAAAA,qCAAA;AAEF,MAAMiB,cAAc,GAAGA,CACrBT,KAAc,EACdL,IAAoB,EACpBW,QAAgD,KACG;EACnD,MAAMmC,GAAG,GAAGzC,KAAgC;EAE5C,IAAI,IAAA+B,kCAAsB,EAAC/B,KAAK,CAAC,EAAE;IACjC,MAAM0C,MAAM,GACV1C,KAAK,CAAC2C,IAAI,KAAK,eAAe,GAAG3C,KAAK,CAAC4C,OAAO,GAAG5C,KAAK,CAACA,KAAK;IAE9D,OAAO0C,MAAM,KAAKR,SAAS,GACvBA,SAAS,GACT;MAAEW,aAAa,EAAEC,QAAQ,CAACJ,MAAM,EAAE1C,KAAK,CAACmC,IAAI;IAAE,CAAC;EACrD;EAEA,IAAIxC,IAAI,KAAK,SAAS,IAAIW,QAAQ,EAAE;IAClC,OAAO;MACLuC,aAAa,EAAEC,QAAQ,CACrB,CAACxC,QAAQ,CAACuB,GAAG,CAACkB,OAAO,CAAC,CAAC,GAAGzC,QAAQ,CAACS,KAAK,CAACgC,OAAO,CAAC,CAAC,IAAI,KAAK,EAC3D,KACF;IACF,CAAC;EACH;EAEA,MAAMC,SAAS,GAAGC,YAAY,CAACR,GAAG,CAAC;EAEnC,OAAOO,SAAS,GACZ;IAAEH,aAAa,EAAEC,QAAQ,CAACE,SAAS,CAAChD,KAAK,EAAEgD,SAAS,CAACb,IAAI;EAAE,CAAC,GAC5DD,SAAS;AACf,CAAC;AAED,MAAMe,YAAY,GAChBR,GAA4B,IACoB;EAChD,IAAI,OAAOA,GAAG,CAACK,QAAQ,KAAK,QAAQ,EAAE;IACpC,OAAO;MAAE9C,KAAK,EAAEyC,GAAG,CAACK,QAAQ;MAAEX,IAAI,EAAElC,MAAM,CAACwC,GAAG,CAACN,IAAI,IAAI,GAAG;IAAE,CAAC;EAC/D;EAEA,MAAMe,UAA2C,GAAG,CAClD,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,CAAC,EAC3B,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,CAAC,EAC9B,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,EAC7B,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,CAAC,EAC/B,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,CAAC,EAC7B,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,CAAC,CACrC;EAED,KAAK,MAAM,CAACC,YAAY,EAAEC,QAAQ,EAAEC,YAAY,CAAC,IAAIH,UAAU,EAAE;IAC/D,MAAMI,SAAS,GAAGb,GAAG,CAACU,YAAY,CAAwC;IAE1E,IAAI,OAAOG,SAAS,GAAGF,QAAQ,CAAC,KAAK,QAAQ,EAAE;MAC7C,OAAO;QACLpD,KAAK,EAAEsD,SAAS,CAACF,QAAQ,CAAW;QACpCjB,IAAI,EAAEoB,aAAa,CAACtD,MAAM,CAACqD,SAAS,CAACnB,IAAI,IAAIkB,YAAY,CAAC;MAC5D,CAAC;IACH;EACF;EAEA,MAAMG,mBAAoD,GAAG,CAC3D,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,EACxB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EACvB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,EACzB,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,EAC1B,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAC5B;EAED,KAAK,MAAM,CAACL,YAAY,EAAEC,QAAQ,EAAEC,YAAY,CAAC,IAAIG,mBAAmB,EAAE;IACxE,MAAMF,SAAS,GAAGb,GAAG,CAACU,YAAY,CAAwC;IAE1E,IAAI,OAAOG,SAAS,GAAGF,QAAQ,CAAC,KAAK,QAAQ,EAAE;MAC7C,OAAO;QACLpD,KAAK,EAAEsD,SAAS,CAACF,QAAQ,CAAW;QACpCjB,IAAI,EAAEoB,aAAa,CAACtD,MAAM,CAACqD,SAAS,CAACnB,IAAI,IAAIkB,YAAY,CAAC;MAC5D,CAAC;IACH;EACF;EAEA,MAAMI,gBAAyC,GAAG,CAChD,CAAC,OAAO,EAAE,OAAO,CAAC,EAClB,CAAC,QAAQ,EAAE,OAAO,CAAC,EACnB,CAAC,MAAM,EAAE,WAAW,CAAC,EACrB,CAAC,gBAAgB,EAAE,WAAW,CAAC,EAC/B,CAAC,YAAY,EAAE,GAAG,CAAC,EACnB,CAAC,iCAAiC,EAAE,WAAW,CAAC,CACjD;EAED,KAAK,MAAM,CAACC,GAAG,EAAEvB,IAAI,CAAC,IAAIsB,gBAAgB,EAAE;IAC1C,IAAI,OAAOhB,GAAG,CAACiB,GAAG,CAAC,KAAK,QAAQ,EAAE;MAChC,OAAO;QAAE1D,KAAK,EAAEyC,GAAG,CAACiB,GAAG,CAAW;QAAEvB;MAAK,CAAC;IAC5C;EACF;EAEA,OAAOD,SAAS;AAClB,CAAC;AAED,MAAM3B,WAAW,GACfd,IAAe,IAC4B;EAC3C,MAAMkE,SAAS,GAAGlE,IAAI,CACnBmE,GAAG,CAAEC,IAAI,IAAK;IACb,MAAMpB,GAAG,GAAGoB,IAA+B;IAC3C,MAAMC,UAAU,GAAGrB,GAAG,CAACsB,SAAS,IAAItB,GAAG,CAACuB,SAAS,IAAI,CAAC;IACtD,MAAMjD,KAAK,GAAG,IAAIkD,IAAI,CAACH,UAAoC,CAAC;IAC5D,MAAMI,QAAQ,GAAGzB,GAAG,CAAC0B,OAAO,IAAI1B,GAAG,CAAC2B,OAAO,IAAIrD,KAAK;IACpD,MAAMc,GAAG,GAAG,IAAIoC,IAAI,CAACC,QAAkC,CAAC;IAExD,OAAOG,MAAM,CAACC,KAAK,CAACvD,KAAK,CAACgC,OAAO,CAAC,CAAC,CAAC,IAAIsB,MAAM,CAACC,KAAK,CAACzC,GAAG,CAACkB,OAAO,CAAC,CAAC,CAAC,GAC/Db,SAAS,GACT;MAAEnB,KAAK;MAAEc;IAAI,CAAC;EACpB,CAAC,CAAC,CACD0C,MAAM,CAACC,OAAO,CAAiC;EAElD,IAAIb,SAAS,CAACpB,MAAM,KAAK,CAAC,EAAE;IAC1B,OAAOL,SAAS;EAClB;EAEA,OAAO;IACLnB,KAAK,EAAE,IAAIkD,IAAI,CAACQ,IAAI,CAACC,GAAG,CAAC,GAAGf,SAAS,CAACC,GAAG,CAAC,CAAC;MAAE7C;IAAM,CAAC,KAAKA,KAAK,CAACgC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3ElB,GAAG,EAAE,IAAIoC,IAAI,CAACQ,IAAI,CAACE,GAAG,CAAC,GAAGhB,SAAS,CAACC,GAAG,CAAC,CAAC;MAAE/B;IAAI,CAAC,KAAKA,GAAG,CAACkB,OAAO,CAAC,CAAC,CAAC,CAAC;EACtE,CAAC;AACH,CAAC;AAED,MAAM/B,OAAO,GAAIhB,KAAc,IAAuB;EACpD,MAAMyC,GAAG,GAAGzC,KAAgC;EAC5C,MAAMqB,IAAI,GAAGoB,GAAG,CAAC0B,OAAO,IAAI1B,GAAG,CAAC2B,OAAO,IAAI3B,GAAG,CAACsB,SAAS,IAAItB,GAAG,CAACuB,SAAS,IAAIvB,GAAG,CAACmC,IAAI;EAErF,IAAI,CAACvD,IAAI,EAAE;IACT,OAAOa,SAAS;EAClB;EAEA,MAAM2C,MAAM,GAAG,IAAIZ,IAAI,CAAC5C,IAAqB,CAAC;EAE9C,OAAOgD,MAAM,CAACC,KAAK,CAACO,MAAM,CAAC9B,OAAO,CAAC,CAAC,CAAC,GAAGb,SAAS,GAAG2C,MAAM;AAC5D,CAAC;AAED,MAAMlE,WAAW,GAAIX,KAAc,IAAK;EACtC,MAAMyC,GAAG,GAAGzC,KAAgC;EAC5C,MAAMU,QAAQ,GAAI+B,GAAG,CAAC/B,QAAQ,IAAI,CAAC,CAA6B;EAChE,MAAMoE,cAAc,GAAGrC,GAAG,CAACqC,cAAqD;EAChF,MAAMC,MAAM,GAAGD,cAAc,EAAEC,MAA6C;EAE5E,MAAMnE,MAAM,GACT6B,GAAG,CAAC7B,MAAM,IACVF,QAAQ,CAACE,MAA8C;EAE1D,OAAO;IACLoE,YAAY,EAAE/E,MAAM,CAACW,MAAM,EAAEoE,YAAY,IAAItE,QAAQ,CAACuE,UAAU,IAAI,EAAE,CAAC,IAAI/C,SAAS;IACpFgD,KAAK,EAAE,OAAOtE,MAAM,EAAEsE,KAAK,KAAK,QAAQ,GAAGtE,MAAM,CAACsE,KAAK,GAAGhD,SAAS;IACnEiD,SAAS,EAAElF,MAAM,CACf8E,MAAM,EAAEK,IAAI,IAAI3C,GAAG,CAAC0C,SAAS,IAAIzE,QAAQ,CAACuE,UAAU,IAAI,EAC1D,CAAC,IAAI/C,SAAS;IACdmD,eAAe,EACb,OAAO3E,QAAQ,CAAC2E,eAAe,KAAK,QAAQ,GACxC3E,QAAQ,CAAC2E,eAAe,GACxBnD;EACR,CAAC;AACH,CAAC;AAED,MAAMI,uBAAuB,GAAI7C,IAAe,IAC9CA,IAAI,CAAC6F,OAAO,CAAEzB,IAAI,IAAK;EACrB,MAAM0B,MAAM,GAAI1B,IAAI,CAA4B0B,MAAM,IAAI,EAAE;EAE5D,IAAIA,MAAM,CAAChD,MAAM,KAAK,CAAC,EAAE;IACvB,MAAME,GAAG,GAAGoB,IAA+B;IAC3C,MAAM9C,KAAK,GAAG0B,GAAG,CAACsB,SAAS,IAAItB,GAAG,CAACuB,SAAS;IAC5C,MAAMnC,GAAG,GAAGY,GAAG,CAAC0B,OAAO,IAAI1B,GAAG,CAAC2B,OAAO;IAEtC,MAAMoB,QAAQ,GACZzE,KAAK,IAAIc,GAAG,GACR,CAAC,IAAIoC,IAAI,CAACpC,GAAoB,CAAC,CAACkB,OAAO,CAAC,CAAC,GACvC,IAAIkB,IAAI,CAAClD,KAAsB,CAAC,CAACgC,OAAO,CAAC,CAAC,IAC5C,KAAK,GACL,CAAC;IAEP,OAAOsB,MAAM,CAACoB,QAAQ,CAACD,QAAQ,CAAC,IAAIA,QAAQ,GAAG,CAAC,IAAI/C,GAAG,CAACzC,KAAK,KAAKkC,SAAS,GACvE,CAACF,SAAS,CAAC,eAAe/B,MAAM,CAACwC,GAAG,CAACzC,KAAK,CAAC,EAAE,EAAEwF,QAAQ,EAAE,KAAK,CAAC,CAAC,GAChE,EAAE;EACR;EAEA,OAAOD,MAAM,CAACD,OAAO,CAAEI,KAAK,IAAK;IAC/B,MAAMjD,GAAG,GAAGiD,KAAgC;IAC5C,MAAM3E,KAAK,GAAG,IAAIkD,IAAI,CAACxB,GAAG,CAACuB,SAAmB,CAAC;IAC/C,MAAMnC,GAAG,GAAG,IAAIoC,IAAI,CAACxB,GAAG,CAAC2B,OAAiB,CAAC;IAC3C,MAAMoB,QAAQ,GAAG,CAAC3D,GAAG,CAACkB,OAAO,CAAC,CAAC,GAAGhC,KAAK,CAACgC,OAAO,CAAC,CAAC,IAAI,KAAK;IAE1D,OAAOsB,MAAM,CAACoB,QAAQ,CAACD,QAAQ,CAAC,IAAIA,QAAQ,GAAG,CAAC,GAC5C,CAACxD,SAAS,CAAC,eAAe/B,MAAM,CAACwC,GAAG,CAACiD,KAAK,CAAC,EAAE,EAAEF,QAAQ,EAAE,KAAK,CAAC,CAAC,GAChE,EAAE;EACR,CAAC,CAAC;AACJ,CAAC,CAAC;AAEJ,MAAMxD,SAAS,GAAGA,CAAC2D,KAAa,EAAE3F,KAAa,EAAEmC,IAAY,MAAM;EACjE9B,IAAI,EAAE;IAAEuF,IAAI,EAAED;EAAM,CAAC;EACrB9C,aAAa,EAAEC,QAAQ,CAAC9C,KAAK,EAAEmC,IAAI;AACrC,CAAC,CAAC;AAEF,MAAMW,QAAQ,GAAGA,CAAC9C,KAAa,EAAEmC,IAAY,MAAM;EACjDnC,KAAK;EACLmC,IAAI;EACJT,MAAM,EAAEpC,gBAAgB;EACxBe,IAAI,EAAEkD,aAAa,CAACpB,IAAI;AAC1B,CAAC,CAAC;AAEF,MAAMoB,aAAa,GAAIpB,IAAY,IACjC,CAAC;EACC0D,UAAU,EAAE,IAAI;EAChBC,MAAM,EAAE,GAAG;EACXC,KAAK,EAAE,IAAI;EACXC,SAAS,EAAE,IAAI;EACfC,KAAK,EAAE,GAAG;EACVC,UAAU,EAAE,IAAI;EAChBC,YAAY,EAAE,MAAM;EACpBC,QAAQ,EAAE,KAAK;EACfC,OAAO,EAAE,KAAK;EACdC,OAAO,EAAE,GAAG;EACZC,cAAc,EAAE;AAClB,CAAC,EAAEpE,IAAI,CAAC,IAAIA,IAAI;AAElB,MAAMf,sBAAsB,GAAGA,CAAC;EAC9BxB,cAAc;EACdS,IAAI;EACJC,QAAQ;EACRe,IAAI;EACJb;AAOF,CAAC,KAAa;EACZ,MAAMoE,IAAI,GAAGtE,QAAQ,GACjB,GAAGA,QAAQ,CAACS,KAAK,CAACa,WAAW,CAAC,CAAC,IAAItB,QAAQ,CAACuB,GAAG,CAACD,WAAW,CAAC,CAAC,EAAE,GAC/DP,IAAI,EAAEO,WAAW,CAAC,CAAC,IAAI,SAAS;EAEpC,MAAM5B,KAAK,GAAGQ,WAAW,CAACqC,aAAa,EAAE7C,KAAK,IAAI,OAAO;EAEzD,OAAO,UAAU,CAACJ,cAAc,EAAES,IAAI,EAAEuE,IAAI,EAAE5E,KAAK,CAAC,CACjDwG,IAAI,CAAC,GAAG,CAAC,CACTC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAC/BC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AACnB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_healthData","require","_healthObservationDevice","FHIR_UNIT_SYSTEM","LOINC_SYSTEM","HEALTH_RECORD_DATA_EXTENSION","convertGenericHealthDataToObservation","data","patientId","mode","typeIdentifier","configuredTypeIdentifier","typeIdentifierCodes","typeIdentifierCodeSystems","typeIdentifierCodeDisplays","first","value","String","quantityType","categoryType","recordType","configuredCode","code","configuredSystem","system","isLoincCode","undefined","interval","getInterval","measurement","getMeasurement","metadata","getMetadata","device","getHealthObservationDevice","observationDate","start","getDate","observation","resourceType","id","getStableObservationId","date","status","subject","reference","coding","display","extension","url","valueString","JSON","stringify","map","toPortableRecordData","effectivePeriod","toISOString","end","effectiveDateTime","isAggregatedHealthData","component","minimum","unit","maximum","stageComponents","getSleepStageComponents","length","exports","test","OMITTED_RECORD_FIELDS","Set","Date","Array","isArray","Object","fromEntries","entries","filter","key","has","child","raw","number","kind","average","valueQuantity","quantity","getTime","extracted","extractValue","candidates","containerKey","valueKey","fallbackUnit","container","normalizeUnit","alternateCandidates","scalarCandidates","intervals","item","startValue","startDate","startTime","endValue","endDate","endTime","Number","isNaN","Boolean","Math","min","max","time","parsed","sourceRevision","source","manufacturer","dataOrigin","model","sourceApp","name","recordingMethod","flatMap","stages","duration","isFinite","stage","label","text","kilometers","meters","miles","kilograms","grams","milligrams","kilocalories","calories","minutes","seconds","beatsPerMinute","join","replace","slice"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/convert-generic-health-data.ts"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getHealthRecordSyncId = void 0;
6
+ exports.getHealthRecordSyncId = exports.getHealthRecordDeletionSyncId = void 0;
7
+ const appleTypesWithoutRecordDiscriminator = new Set(["HKDataTypeIdentifierHeartbeatSeries", "HKStateOfMindTypeIdentifier", "HKWorkoutTypeIdentifier"]);
7
8
  const asText = value => {
8
9
  if (value instanceof Date) {
9
10
  return value.toISOString();
@@ -18,7 +19,7 @@ const asText = value => {
18
19
  */
19
20
  const getHealthRecordSyncId = (record, measurementTypeKey) => {
20
21
  const healthRecord = record;
21
- const type = asText(healthRecord.quantityType ?? healthRecord.recordType) ?? measurementTypeKey;
22
+ const type = asText(healthRecord.quantityType ?? healthRecord.categoryType ?? healthRecord.correlationType ?? healthRecord.recordType) ?? measurementTypeKey;
22
23
  const sourceId = asText(healthRecord.uuid ?? healthRecord.metadata?.id);
23
24
  if (sourceId) {
24
25
  return `${type}:${sourceId}`;
@@ -34,5 +35,17 @@ const getHealthRecordSyncId = (record, measurementTypeKey) => {
34
35
  }
35
36
  return undefined;
36
37
  };
38
+
39
+ /**
40
+ * Health Connect deletion events contain only the source ID. Its imported
41
+ * Observation identity therefore uses the measurement key (the wrapper's
42
+ * returned record omits RecordType); these Apple sample families likewise
43
+ * have no discriminator on the sample object.
44
+ */
37
45
  exports.getHealthRecordSyncId = getHealthRecordSyncId;
46
+ const getHealthRecordDeletionSyncId = (typeIdentifier, recordId, measurementTypeKey, provider) => {
47
+ const type = provider === "android-health-connect" || provider === "apple-health" && appleTypesWithoutRecordDiscriminator.has(typeIdentifier) ? measurementTypeKey : typeIdentifier;
48
+ return `${type}:${recordId}`;
49
+ };
50
+ exports.getHealthRecordDeletionSyncId = getHealthRecordDeletionSyncId;
38
51
  //# sourceMappingURL=get-health-record-sync-id.js.map