@ovok/native 1.6.3 → 1.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/lib/commonjs/modules/background-sync/android-background-sync.js +6 -1
  2. package/lib/commonjs/modules/background-sync/android-background-sync.js.map +1 -1
  3. package/lib/commonjs/modules/background-sync/android-bluetooth-foreground-service.js +1 -6
  4. package/lib/commonjs/modules/background-sync/android-bluetooth-foreground-service.js.map +1 -1
  5. package/lib/commonjs/modules/bt-management/components/android-bluetooth-foreground-service.js +1 -6
  6. package/lib/commonjs/modules/bt-management/components/android-bluetooth-foreground-service.js.map +1 -1
  7. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js +2 -1
  8. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  9. package/lib/commonjs/modules/data-sync/services/managers/data-processor.js +8 -25
  10. package/lib/commonjs/modules/data-sync/services/managers/data-processor.js.map +1 -1
  11. package/lib/commonjs/modules/data-sync/utils/generate-observation-entry.js +70 -32
  12. package/lib/commonjs/modules/data-sync/utils/generate-observation-entry.js.map +1 -1
  13. package/lib/commonjs/modules/data-sync/utils/get-health-record-sync-id.js +35 -0
  14. package/lib/commonjs/modules/data-sync/utils/get-health-record-sync-id.js.map +1 -0
  15. package/lib/commonjs/modules/data-sync/utils/group-sleep-samples.js +30 -0
  16. package/lib/commonjs/modules/data-sync/utils/group-sleep-samples.js.map +1 -0
  17. package/lib/module/modules/background-sync/android-background-sync.js +6 -1
  18. package/lib/module/modules/background-sync/android-background-sync.js.map +1 -1
  19. package/lib/module/modules/background-sync/android-bluetooth-foreground-service.js +1 -6
  20. package/lib/module/modules/background-sync/android-bluetooth-foreground-service.js.map +1 -1
  21. package/lib/module/modules/bt-management/components/android-bluetooth-foreground-service.js +1 -6
  22. package/lib/module/modules/bt-management/components/android-bluetooth-foreground-service.js.map +1 -1
  23. package/lib/module/modules/data-sync/services/base-health-sync-service.js +2 -1
  24. package/lib/module/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  25. package/lib/module/modules/data-sync/services/managers/data-processor.js +7 -24
  26. package/lib/module/modules/data-sync/services/managers/data-processor.js.map +1 -1
  27. package/lib/module/modules/data-sync/utils/generate-observation-entry.js +70 -32
  28. package/lib/module/modules/data-sync/utils/generate-observation-entry.js.map +1 -1
  29. package/lib/module/modules/data-sync/utils/get-health-record-sync-id.js +30 -0
  30. package/lib/module/modules/data-sync/utils/get-health-record-sync-id.js.map +1 -0
  31. package/lib/module/modules/data-sync/utils/group-sleep-samples.js +25 -0
  32. package/lib/module/modules/data-sync/utils/group-sleep-samples.js.map +1 -0
  33. package/lib/typescript/commonjs/src/modules/background-sync/android-background-sync.d.ts +6 -8
  34. package/lib/typescript/commonjs/src/modules/background-sync/android-background-sync.d.ts.map +1 -1
  35. package/lib/typescript/commonjs/src/modules/background-sync/android-bluetooth-foreground-service.d.ts.map +1 -1
  36. package/lib/typescript/commonjs/src/modules/bt-management/components/android-bluetooth-foreground-service.d.ts.map +1 -1
  37. package/lib/typescript/commonjs/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  38. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts +2 -1
  39. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
  40. package/lib/typescript/commonjs/src/modules/data-sync/utils/generate-observation-entry.d.ts +9 -2
  41. package/lib/typescript/commonjs/src/modules/data-sync/utils/generate-observation-entry.d.ts.map +1 -1
  42. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-health-record-sync-id.d.ts +7 -0
  43. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-health-record-sync-id.d.ts.map +1 -0
  44. package/lib/typescript/commonjs/src/modules/data-sync/utils/group-sleep-samples.d.ts +2 -0
  45. package/lib/typescript/commonjs/src/modules/data-sync/utils/group-sleep-samples.d.ts.map +1 -0
  46. package/lib/typescript/module/src/modules/background-sync/android-background-sync.d.ts +6 -8
  47. package/lib/typescript/module/src/modules/background-sync/android-background-sync.d.ts.map +1 -1
  48. package/lib/typescript/module/src/modules/background-sync/android-bluetooth-foreground-service.d.ts.map +1 -1
  49. package/lib/typescript/module/src/modules/bt-management/components/android-bluetooth-foreground-service.d.ts.map +1 -1
  50. package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  51. package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts +2 -1
  52. package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
  53. package/lib/typescript/module/src/modules/data-sync/utils/generate-observation-entry.d.ts +9 -2
  54. package/lib/typescript/module/src/modules/data-sync/utils/generate-observation-entry.d.ts.map +1 -1
  55. package/lib/typescript/module/src/modules/data-sync/utils/get-health-record-sync-id.d.ts +7 -0
  56. package/lib/typescript/module/src/modules/data-sync/utils/get-health-record-sync-id.d.ts.map +1 -0
  57. package/lib/typescript/module/src/modules/data-sync/utils/group-sleep-samples.d.ts +2 -0
  58. package/lib/typescript/module/src/modules/data-sync/utils/group-sleep-samples.d.ts.map +1 -0
  59. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["recordOvokDuration","recordOvokMetric","withOvokSpan","isSyncRetryCancelled","withSyncRetries","DataProcessor","StorageManager","SyncProgressManager","SyncStateManager","BaseHealthSyncService","constructor","props","client","patientId","dataToSync","onSyncError","progressManager","updateProgress","stateManager","storageManager","getProviderName","dataProcessor","chunkSize","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","startSync","once","provider","runSync","isInitialized","Error","resume","setNotStartedStatuses","initialDataFetched","initializeSync","processAllDataTypes","setPauseStatuses","pauseReason","error","stopSync","resetAll","reset","shouldStopSync","pauseSync","reason","pause","latestObservationDates","getLatestObservationDates","calculateTotalCounts","key","Object","keys","measurementTypeKey","data","getDataForMeasurementType","latestValidStartDate","getLatestValidStartDate","totalCount","getTotalRecordsCountForType","setTotalObservations","setStatus","syncDataByType","hasAnchor","observationBodies","currentHasAnchor","anchors","getObservationBodiesForType","entries","generateObservationEntries","length","startedAt","Date","now","result","saveObservations","addResult","incrementSyncedObservations","saveAnchors"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/services/base-health-sync-service.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["recordOvokDuration","recordOvokMetric","withOvokSpan","isSyncRetryCancelled","withSyncRetries","DataProcessor","StorageManager","SyncProgressManager","SyncStateManager","BaseHealthSyncService","constructor","props","client","patientId","dataToSync","onSyncError","progressManager","updateProgress","stateManager","storageManager","getProviderName","dataProcessor","chunkSize","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","startSync","once","provider","runSync","isInitialized","Error","resume","setNotStartedStatuses","initialDataFetched","initializeSync","processAllDataTypes","setPauseStatuses","pauseReason","error","stopSync","resetAll","reset","shouldStopSync","pauseSync","reason","pause","latestObservationDates","getLatestObservationDates","calculateTotalCounts","key","Object","keys","measurementTypeKey","data","getDataForMeasurementType","latestValidStartDate","getLatestValidStartDate","totalCount","getTotalRecordsCountForType","setTotalObservations","setStatus","syncDataByType","hasAnchor","observationBodies","observationSyncIds","currentHasAnchor","anchors","getObservationBodiesForType","entries","generateObservationEntries","length","startedAt","Date","now","result","saveObservations","addResult","incrementSyncedObservations","saveAnchors"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/services/base-health-sync-service.ts"],"mappings":"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","ignoreList":[]}
@@ -3,8 +3,10 @@
3
3
  import { MeasurementTypeKey } from "@ovok/core";
4
4
  import { getHealthDataMode, HealthDataType } from "../../types/health-sync-keys.js";
5
5
  import { generateObservationEntry } from "../../utils/generate-observation-entry.js";
6
+ import { getHealthRecordSyncId } from "../../utils/get-health-record-sync-id.js";
6
7
  import { getLatestObservationDatesByCode } from "../../utils/get-latest-observation-dates-by-code.js";
7
8
  import { getLatestValidStartDate } from "../../utils/get-latest-valid-start-date.js";
9
+ import { groupSleepSamples } from "../../utils/group-sleep-samples.js";
8
10
  export class DataProcessor {
9
11
  constructor(client, patientId, provider, chunkSize, storageManager, getTotalCountsFunction, getDataFromProviderFunction, getConverterFunction) {
10
12
  this.client = client;
@@ -80,16 +82,19 @@ export class DataProcessor {
80
82
  mode,
81
83
  typeIdentifierCodes
82
84
  })));
85
+ const observationSyncIds = dataGroups.map(group => getHealthRecordSyncId(group[0], measurementTypeKey));
83
86
  return {
84
87
  observationBodies,
88
+ observationSyncIds,
85
89
  hasAnchor: newAnchors.length > 0,
86
90
  anchors: newAnchors
87
91
  };
88
92
  }
89
- generateObservationEntries(observationBodies) {
93
+ generateObservationEntries(observationBodies, observationSyncIds) {
90
94
  return generateObservationEntry({
91
95
  groupedObservationBodies: observationBodies,
92
- provider: this.provider
96
+ provider: this.provider,
97
+ groupedObservationSyncIds: observationSyncIds
93
98
  });
94
99
  }
95
100
  getLatestValidStartDate(latestObservationDates, data) {
@@ -99,26 +104,4 @@ export class DataProcessor {
99
104
  });
100
105
  }
101
106
  }
102
- const groupSleepSamples = samples => {
103
- const sorted = [...samples].sort((left, right) => getIntervalStart(left) - getIntervalStart(right));
104
- const groups = [];
105
- for (const sample of sorted) {
106
- const current = groups.at(-1);
107
- const currentEnd = current?.at(-1) ? getIntervalEnd(current.at(-1)) : undefined;
108
- if (current && currentEnd !== undefined && getIntervalStart(sample) <= currentEnd + 30 * 60 * 1000) {
109
- current.push(sample);
110
- } else {
111
- groups.push([sample]);
112
- }
113
- }
114
- return groups;
115
- };
116
- const getIntervalStart = value => {
117
- const item = value;
118
- return new Date(item.startDate ?? item.startTime ?? 0).getTime();
119
- };
120
- const getIntervalEnd = value => {
121
- const item = value;
122
- return new Date(item.endDate ?? item.endTime ?? item.startDate ?? item.startTime ?? 0).getTime();
123
- };
124
107
  //# sourceMappingURL=data-processor.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["MeasurementTypeKey","getHealthDataMode","HealthDataType","generateObservationEntry","getLatestObservationDatesByCode","getLatestValidStartDate","DataProcessor","constructor","client","patientId","provider","chunkSize","storageManager","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","extractCodes","dataToSync","Object","values","flatMap","data","typeIdentifiers","map","identifier","code","getLatestObservationDates","codes","getTotalRecordsCountForType","measurementTypeKey","latestValidStartDate","mode","totalCounts","Promise","all","typeIdentifier","anchor","getAnchor","startDate","toISOString","reduce","acc","count","getObservationBodiesForType","typeIdentifierCodes","fromEntries","String","results","newAnchors","result","flat","filter","Boolean","allData","dataGroups","sleep","groupSleepSamples","bloodPressure","Array","from","groups","sample","value","key","Date","getTime","endDate","group","get","push","set","Map","observationBodies","length","undefined","hasAnchor","anchors","generateObservationEntries","groupedObservationBodies","latestObservationDates","samples","sorted","sort","left","right","getIntervalStart","current","at","currentEnd","getIntervalEnd","item","startTime","endTime"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/data-processor.ts"],"mappings":";;AACA,SAASA,kBAAkB,QAAoB,YAAY;AAS3D,SACEC,iBAAiB,EACjBC,cAAc,QAET,iCAA8B;AACrC,SAASC,wBAAwB,QAAQ,2CAAwC;AACjF,SAASC,+BAA+B,QAAQ,qDAAkD;AAClG,SAASC,uBAAuB,QAAQ,4CAAyC;AAIjF,OAAO,MAAMC,aAAa,CAMxB;EACAC,WAAWA,CACDC,MAAkB,EAClBC,SAAiB,EACjBC,QAAwB,EACxBC,SAAiB,EACjBC,cAA8B,EAC9BC,sBAEY,EACZC,2BAEgE,EAChEC,oBAEmB,EAC3B;IAAA,KAdQP,MAAkB,GAAlBA,MAAkB;IAAA,KAClBC,SAAiB,GAAjBA,SAAiB;IAAA,KACjBC,QAAwB,GAAxBA,QAAwB;IAAA,KACxBC,SAAiB,GAAjBA,SAAiB;IAAA,KACjBC,cAA8B,GAA9BA,cAA8B;IAAA,KAC9BC,sBAEY,GAFZA,sBAEY;IAAA,KACZC,2BAEgE,GAFhEA,2BAEgE;IAAA,KAChEC,oBAEmB,GAFnBA,oBAEmB;EAC1B;EAEHC,YAAYA,CAACC,UAAuB,EAAY;IAC9C,OAAOC,MAAM,CAACC,MAAM,CAACF,UAAU,CAAC,CAACG,OAAO,CACrCC,IAA6C,IAC5CA,IAAI,EAAEC,eAAe,CAACC,GAAG,CAAEC,UAAU,IAAKA,UAAU,CAACC,IAAI,CAAC,IAAI,EAClE,CAAC;EACH;EAEA,MAAMC,yBAAyBA,CAACT,UAAuB,EAKrD;IACA,MAAMU,KAAK,GAAG,IAAI,CAACX,YAAY,CAACC,UAAU,CAAC;IAE3C,OAAOb,+BAA+B,CAAC;MACrCI,MAAM,EAAE,IAAI,CAACA,MAAM;MACnBmB,KAAK;MACLlB,SAAS,EAAE,IAAI,CAACA,SAAS;MACzBC,QAAQ,EAAE,IAAI,CAACA;IACjB,CAAC,CAAC;EACJ;EAEA,MAAMkB,2BAA2BA,CAC/BC,kBAAiC,EACjCR,IAA6C,EAC7CS,oBAAsC,EACrB;IACjB,MAAMC,IAAI,GAAG9B,iBAAiB,CAAC4B,kBAAkB,EAAER,IAAI,CAACU,IAAI,CAAC;IAE7D,MAAMC,WAAW,GAAG,MAAMC,OAAO,CAACC,GAAG,CACnCb,IAAI,CAACC,eAAe,EAAEC,GAAG,CAAC,OAAO;MAAEY;IAAe,CAAC,KAAK;MACtD,MAAMC,MAAM,GAAG,IAAI,CAACxB,cAAc,CAACyB,SAAS,CAACF,cAAc,CAAC;MAE5D,OAAO,IAAI,CAACtB,sBAAsB,CAAC;QACjCsB,cAAc,EAAEA,cAAiC;QACjDG,SAAS,EAAER,oBAAoB,EAAES,WAAW,CAAC,CAAC;QAC9CH,MAAM;QACNL;MACF,CAAC,CAAC;IACJ,CAAC,CACH,CAAC;IAED,OAAOC,WAAW,CAACQ,MAAM,CAAC,CAACC,GAAG,EAAEC,KAAK,KAAKD,GAAG,GAAGC,KAAK,EAAE,CAAC,CAAC;EAC3D;EAEA,MAAMC,2BAA2BA,CAC/Bd,kBAAiC,EACjCR,IAA6C,EAC7CS,oBAAsC,EAKrC;IACD,MAAMC,IAAI,GAAG9B,iBAAiB,CAAC4B,kBAAkB,EAAER,IAAI,CAACU,IAAI,CAAC;IAE7D,MAAMa,mBAAmB,GAAG1B,MAAM,CAAC2B,WAAW,CAC5CxB,IAAI,CAACC,eAAe,CAACC,GAAG,CAAC,CAAC;MAAEY,cAAc;MAAEV;IAAK,CAAC,KAAK,CACrDqB,MAAM,CAACX,cAAc,CAAC,EACtBW,MAAM,CAACrB,IAAI,CAAC,CACb,CACH,CAAC;IAED,MAAMsB,OAAO,GAAG,MAAMd,OAAO,CAACC,GAAG,CAC/Bb,IAAI,CAACC,eAAe,EAAEC,GAAG,CAAC,OAAO;MAAEY;IAAe,CAAC,KAAK;MACtD,MAAMC,MAAM,GAAG,IAAI,CAACxB,cAAc,CAACyB,SAAS,CAACF,cAAc,CAAC;MAE5D,OAAO,IAAI,CAACrB,2BAA2B,CAAC;QACtCqB,cAAc,EAAEA,cAAiC;QACjDG,SAAS,EAAER,oBAAoB,EAAES,WAAW,CAAC,CAAC;QAC9CH,MAAM;QACNzB,SAAS,EAAE,IAAI,CAACA,SAAS;QACzBoB;MACF,CAAC,CAAC;IACJ,CAAC,CACH,CAAC;IAED,MAAMiB,UAAU,GAAGD,OAAO,CACvBxB,GAAG,CAAE0B,MAAM,IAAKA,MAAM,CAACb,MAAM,CAAC,CAC9Bc,IAAI,CAAC,CAAC,CACNC,MAAM,CAACC,OAAO,CAAsD;IAEvE,MAAMC,OAAO,GAAGN,OAAO,CAAC3B,OAAO,CAAE6B,MAAM,IAAKA,MAAM,CAAC5B,IAAI,CAAC;IAExD,MAAMiC,UAAiC,GACrC,IAAI,CAAC5C,QAAQ,KAAK,cAAc,IAChCmB,kBAAkB,KAAK3B,cAAc,CAACqD,KAAK,GACvCC,iBAAiB,CAACH,OAAO,CAAC,GAC1B,IAAI,CAAC3C,QAAQ,KAAK,cAAc,IAChCmB,kBAAkB,KAAK7B,kBAAkB,CAACyD,aAAa,GACvDC,KAAK,CAACC,IAAI,CACRN,OAAO,CAACb,MAAM,CAAC,CAACoB,MAAM,EAAEC,MAAM,KAAK;MACjC,MAAMC,KAAK,GAAGD,MAGb;MAED,MAAME,GAAG,GAAG,GAAG,IAAIC,IAAI,CAACF,KAAK,CAACxB,SAAS,IAAI,CAAC,CAAC,CAAC2B,OAAO,CAAC,CAAC,IAAI,IAAID,IAAI,CACjEF,KAAK,CAACI,OAAO,IAAIJ,KAAK,CAACxB,SAAS,IAAI,CACtC,CAAC,CAAC2B,OAAO,CAAC,CAAC,EAAE;MAEb,MAAME,KAAK,GAAGP,MAAM,CAACQ,GAAG,CAACL,GAAG,CAAC,IAAI,EAAE;MAEnCI,KAAK,CAACE,IAAI,CAACR,MAAM,CAAC;MAClBD,MAAM,CAACU,GAAG,CAACP,GAAG,EAAEI,KAAK,CAAC;MAEtB,OAAOP,MAAM;IACf,CAAC,EAAE,IAAIW,GAAG,CAA8B,CAAC,CAAC,CAACpD,MAAM,CAAC,CACpD,CAAC,GACDkC,OAAO,CAAC9B,GAAG,CAAEF,IAAI,IAAK,CAACA,IAAI,CAAC,CAAC;IAEnC,MAAMmD,iBAAiB,GAAG,MAAMvC,OAAO,CAACC,GAAG,CACzCoB,UAAU,CAAC/B,GAAG,CAAE4C,KAAK,IACnB,IAAI,CAACpD,oBAAoB,CAAC;MACxBM,IAAI,EAAE8C,KAAK;MACX3D,MAAM,EAAE,IAAI,CAACA,MAAM;MACnBC,SAAS,EAAE,IAAI,CAACA,SAAS;MACzBoB,kBAAkB;MAClBM,cAAc,EACZd,IAAI,CAACC,eAAe,EAAEmD,MAAM,KAAK,CAAC,GAC9B3B,MAAM,CAACzB,IAAI,CAACC,eAAe,CAAC,CAAC,CAAC,EAAEa,cAAc,CAAC,GAC/CuC,SAAS;MACf3C,IAAI;MACJa;IACF,CAAC,CACH,CACF,CAAC;IAED,OAAO;MACL4B,iBAAiB;MACjBG,SAAS,EAAE3B,UAAU,CAACyB,MAAM,GAAG,CAAC;MAChCG,OAAO,EAAE5B;IACX,CAAC;EACH;EAEA6B,0BAA0BA,CAACL,iBAAkC,EAAE;IAC7D,OAAOrE,wBAAwB,CAAC;MAC9B2E,wBAAwB,EAAEN,iBAAiB;MAC3C9D,QAAQ,EAAE,IAAI,CAACA;IACjB,CAAC,CAAC;EACJ;EAEAL,uBAAuBA,CACrB0E,sBAGE,EACF1D,IAA6C,EAC3B;IAClB,OAAOhB,uBAAuB,CAAC;MAC7B0E,sBAAsB;MACtB1D,IAAI,EAAEA;IACR,CAAC,CAAC;EACJ;AACF;AAEA,MAAMmC,iBAAiB,GAAQwB,OAAY,IAAY;EACrD,MAAMC,MAAM,GAAG,CAAC,GAAGD,OAAO,CAAC,CAACE,IAAI,CAC9B,CAACC,IAAI,EAAEC,KAAK,KAAKC,gBAAgB,CAACF,IAAI,CAAC,GAAGE,gBAAgB,CAACD,KAAK,CAClE,CAAC;EAED,MAAMxB,MAAa,GAAG,EAAE;EAExB,KAAK,MAAMC,MAAM,IAAIoB,MAAM,EAAE;IAC3B,MAAMK,OAAO,GAAG1B,MAAM,CAAC2B,EAAE,CAAC,CAAC,CAAC,CAAC;IAE7B,MAAMC,UAAU,GAAGF,OAAO,EAAEC,EAAE,CAAC,CAAC,CAAC,CAAC,GAC9BE,cAAc,CAACH,OAAO,CAACC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAC9Bb,SAAS;IAEb,IAAIY,OAAO,IAAIE,UAAU,KAAKd,SAAS,IAAIW,gBAAgB,CAACxB,MAAM,CAAC,IAAI2B,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE;MAClGF,OAAO,CAACjB,IAAI,CAACR,MAAM,CAAC;IACtB,CAAC,MAAM;MACLD,MAAM,CAACS,IAAI,CAAC,CAACR,MAAM,CAAC,CAAC;IACvB;EACF;EAEA,OAAOD,MAAM;AACf,CAAC;AAED,MAAMyB,gBAAgB,GAAIvB,KAAc,IAAa;EACnD,MAAM4B,IAAI,GAAG5B,KAA0D;EAEvE,OAAO,IAAIE,IAAI,CAAC0B,IAAI,CAACpD,SAAS,IAAIoD,IAAI,CAACC,SAAS,IAAI,CAAC,CAAC,CAAC1B,OAAO,CAAC,CAAC;AAClE,CAAC;AAED,MAAMwB,cAAc,GAAI3B,KAAc,IAAa;EACjD,MAAM4B,IAAI,GAAG5B,KAKZ;EAED,OAAO,IAAIE,IAAI,CACb0B,IAAI,CAACxB,OAAO,IAAIwB,IAAI,CAACE,OAAO,IAAIF,IAAI,CAACpD,SAAS,IAAIoD,IAAI,CAACC,SAAS,IAAI,CACtE,CAAC,CAAC1B,OAAO,CAAC,CAAC;AACb,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["MeasurementTypeKey","getHealthDataMode","HealthDataType","generateObservationEntry","getHealthRecordSyncId","getLatestObservationDatesByCode","getLatestValidStartDate","groupSleepSamples","DataProcessor","constructor","client","patientId","provider","chunkSize","storageManager","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","extractCodes","dataToSync","Object","values","flatMap","data","typeIdentifiers","map","identifier","code","getLatestObservationDates","codes","getTotalRecordsCountForType","measurementTypeKey","latestValidStartDate","mode","totalCounts","Promise","all","typeIdentifier","anchor","getAnchor","startDate","toISOString","reduce","acc","count","getObservationBodiesForType","typeIdentifierCodes","fromEntries","String","results","newAnchors","result","flat","filter","Boolean","allData","dataGroups","sleep","bloodPressure","Array","from","groups","sample","value","key","Date","getTime","endDate","group","get","push","set","Map","observationBodies","length","undefined","observationSyncIds","hasAnchor","anchors","generateObservationEntries","groupedObservationBodies","groupedObservationSyncIds","latestObservationDates"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/data-processor.ts"],"mappings":"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","ignoreList":[]}
@@ -1,40 +1,78 @@
1
1
  "use strict";
2
2
 
3
- export const generateObservationEntry = ({
3
+ const getObservationCode = observation => observation.code?.coding?.map(coding => `${coding.system ?? ""}|${coding.code ?? ""}`).join(",") || observation.code?.text || "unknown";
4
+ const getObservationTime = observation => {
5
+ if (observation.effectivePeriod) {
6
+ return `${observation.effectivePeriod.start ?? ""}:${observation.effectivePeriod.end ?? ""}`;
7
+ }
8
+ return observation.effectiveDateTime?.slice(0, 19) ?? "unknown";
9
+ };
10
+ const getStableObservationId = ({
11
+ observation,
12
+ provider,
13
+ sourceId,
14
+ bodyIndex
15
+ }) => observation.id && !sourceId ? `${provider}:${observation.id}` : [provider, sourceId ?? getObservationTime(observation), getObservationCode(observation), bodyIndex].join(":");
16
+ const createBundleUuid = () => {
17
+ const cryptoApi = globalThis.crypto;
18
+ const randomUuid = typeof cryptoApi === "object" && cryptoApi !== null && "randomUUID" in cryptoApi && typeof cryptoApi.randomUUID === "function" ? cryptoApi.randomUUID : undefined;
19
+ if (randomUuid) {
20
+ return randomUuid.call(cryptoApi);
21
+ }
22
+ const bytes = Array.from({
23
+ length: 16
24
+ }, () => Math.floor(Math.random() * 256));
25
+ bytes[6] = bytes[6] & 0x0f | 0x40;
26
+ bytes[8] = bytes[8] & 0x3f | 0x80;
27
+ const hex = bytes.map(byte => byte.toString(16).padStart(2, "0")).join("");
28
+ return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
29
+ };
30
+ const generateObservationEntry = ({
4
31
  groupedObservationBodies,
5
- provider
32
+ provider,
33
+ groupedObservationSyncIds
6
34
  }) => {
7
- return groupedObservationBodies.map((observationBodies, groupIndex) => observationBodies.map((observationBody, bodyIndex) => {
8
- const syncIdentifier = `${provider}:${observationBody.id ?? `${groupIndex}-${bodyIndex}`}`;
9
- const syncIdentifierSystem = "https://api.ovok.com/fhir/StructureDefinition/observation-sync-id";
10
- return {
11
- fullUrl: `urn:uuid:60081479-c0a1-4b9e-9c52-039cf80f45${groupIndex}-${bodyIndex}`,
12
- request: {
13
- method: "POST",
14
- url: "Observation",
15
- ifNoneExist: `identifier=${encodeURIComponent(syncIdentifierSystem)}|${encodeURIComponent(syncIdentifier)}`
16
- },
17
- resource: {
18
- ...observationBody,
19
- identifier: [...(observationBody.identifier || []), {
20
- system: "https://api.ovok.com/fhir/StructureDefinition/observation-sync-provider",
21
- value: provider
22
- }, {
23
- system: syncIdentifierSystem,
24
- value: syncIdentifier
25
- }],
26
- device: {
27
- ...(observationBody.device ?? {}),
28
- identifier: {
35
+ return groupedObservationBodies.map((observationBodies, groupIndex) => {
36
+ const fullUrls = observationBodies.map(() => `urn:uuid:${createBundleUuid()}`);
37
+ return observationBodies.map((observationBody, bodyIndex) => {
38
+ const syncIdentifier = getStableObservationId({
39
+ observation: observationBody,
40
+ provider,
41
+ sourceId: groupedObservationSyncIds?.[groupIndex],
42
+ bodyIndex
43
+ });
44
+ const fullUrl = fullUrls[bodyIndex];
45
+ const syncIdentifierSystem = "https://api.ovok.com/fhir/StructureDefinition/observation-sync-id";
46
+ return {
47
+ fullUrl,
48
+ request: {
49
+ method: "POST",
50
+ url: "Observation",
51
+ ifNoneExist: `identifier=${encodeURIComponent(syncIdentifierSystem)}|${encodeURIComponent(syncIdentifier)}`
52
+ },
53
+ resource: {
54
+ ...observationBody,
55
+ identifier: [...(observationBody.identifier || []), {
29
56
  system: "https://api.ovok.com/fhir/StructureDefinition/observation-sync-provider",
30
57
  value: provider
31
- }
32
- },
33
- hasMember: bodyIndex === 0 ? [] : [{
34
- reference: `urn:uuid:60081479-c0a1-4b9e-9c52-039cf80f45${groupIndex}-0`
35
- }]
36
- }
37
- };
38
- })).flat();
58
+ }, {
59
+ system: syncIdentifierSystem,
60
+ value: syncIdentifier
61
+ }],
62
+ device: {
63
+ ...(observationBody.device ?? {}),
64
+ identifier: {
65
+ system: "https://api.ovok.com/fhir/StructureDefinition/observation-sync-provider",
66
+ value: provider
67
+ }
68
+ },
69
+ hasMember: bodyIndex === 0 ? [] : [{
70
+ reference: fullUrls[0]
71
+ }]
72
+ }
73
+ };
74
+ });
75
+ }).flat();
39
76
  };
77
+ export { generateObservationEntry, getStableObservationId };
40
78
  //# sourceMappingURL=generate-observation-entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["generateObservationEntry","groupedObservationBodies","provider","map","observationBodies","groupIndex","observationBody","bodyIndex","syncIdentifier","id","syncIdentifierSystem","fullUrl","request","method","url","ifNoneExist","encodeURIComponent","resource","identifier","system","value","device","hasMember","reference","flat"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/generate-observation-entry.ts"],"mappings":";;AASA,OAAO,MAAMA,wBAAwB,GAAGA,CAAC;EACvCC,wBAAwB;EACxBC;AAC6B,CAAC,KAAiC;EAC/D,OAAOD,wBAAwB,CAC5BE,GAAG,CAAC,CAACC,iBAAiB,EAAEC,UAAU,KACjCD,iBAAiB,CAACD,GAAG,CAAC,CAACG,eAAe,EAAEC,SAAS,KAAK;IACpD,MAAMC,cAAc,GAAG,GAAGN,QAAQ,IAAII,eAAe,CAACG,EAAE,IAAI,GAAGJ,UAAU,IAAIE,SAAS,EAAE,EAAE;IAE1F,MAAMG,oBAAoB,GACxB,mEAAmE;IAErE,OAAO;MACLC,OAAO,EAAE,8CAA8CN,UAAU,IAAIE,SAAS,EAAE;MAChFK,OAAO,EAAE;QACPC,MAAM,EAAE,MAAe;QACvBC,GAAG,EAAE,aAAa;QAClBC,WAAW,EAAE,cAAcC,kBAAkB,CAACN,oBAAoB,CAAC,IAAIM,kBAAkB,CAACR,cAAc,CAAC;MAC3G,CAAC;MACDS,QAAQ,EAAE;QACR,GAAGX,eAAe;QAClBY,UAAU,EAAE,CACV,IAAIZ,eAAe,CAACY,UAAU,IAAI,EAAE,CAAC,EACrC;UACEC,MAAM,EACJ,yEAAyE;UAC3EC,KAAK,EAAElB;QACT,CAAC,EACD;UACEiB,MAAM,EAAET,oBAAoB;UAC5BU,KAAK,EAAEZ;QACT,CAAC,CACF;QACDa,MAAM,EAAE;UACN,IAAIf,eAAe,CAACe,MAAM,IAAI,CAAC,CAAC,CAAC;UACjCH,UAAU,EAAE;YACVC,MAAM,EACJ,yEAAyE;YAC3EC,KAAK,EAAElB;UACT;QACF,CAAC;QACDoB,SAAS,EACPf,SAAS,KAAK,CAAC,GACX,EAAE,GACF,CACE;UACEgB,SAAS,EAAE,8CAA8ClB,UAAU;QACrE,CAAC;MAEX;IACF,CAAC;EACH,CAAC,CACH,CAAC,CACAmB,IAAI,CAAC,CAAC;AACX,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["getObservationCode","observation","code","coding","map","system","join","text","getObservationTime","effectivePeriod","start","end","effectiveDateTime","slice","getStableObservationId","provider","sourceId","bodyIndex","id","createBundleUuid","cryptoApi","globalThis","crypto","randomUuid","randomUUID","undefined","call","bytes","Array","from","length","Math","floor","random","hex","byte","toString","padStart","generateObservationEntry","groupedObservationBodies","groupedObservationSyncIds","observationBodies","groupIndex","fullUrls","observationBody","syncIdentifier","fullUrl","syncIdentifierSystem","request","method","url","ifNoneExist","encodeURIComponent","resource","identifier","value","device","hasMember","reference","flat"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/generate-observation-entry.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ const asText = value => {
4
+ if (value instanceof Date) {
5
+ return value.toISOString();
6
+ }
7
+ return typeof value === "string" || typeof value === "number" ? String(value) : undefined;
8
+ };
9
+
10
+ /**
11
+ * Builds an import identity from the source record's type and interval.
12
+ * Values are deliberately excluded so an updated daily total replaces the
13
+ * previous total instead of creating a second observation.
14
+ */
15
+ export const getHealthRecordSyncId = (record, measurementTypeKey) => {
16
+ const healthRecord = record;
17
+ const type = asText(healthRecord.quantityType ?? healthRecord.recordType) ?? measurementTypeKey;
18
+ const start = asText(healthRecord.startDate ?? healthRecord.startTime);
19
+ const end = asText(healthRecord.endDate ?? healthRecord.endTime);
20
+ if (start || end) {
21
+ return `${type}:${start ?? end}:${end ?? start}`;
22
+ }
23
+ const time = asText(healthRecord.time);
24
+ if (time) {
25
+ return `${type}:${time.slice(0, 10)}`;
26
+ }
27
+ const sourceId = asText(healthRecord.uuid ?? healthRecord.metadata?.id);
28
+ return sourceId ? `${type}:${sourceId}` : undefined;
29
+ };
30
+ //# sourceMappingURL=get-health-record-sync-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["asText","value","Date","toISOString","String","undefined","getHealthRecordSyncId","record","measurementTypeKey","healthRecord","type","quantityType","recordType","start","startDate","startTime","end","endDate","endTime","time","slice","sourceId","uuid","metadata","id"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/get-health-record-sync-id.ts"],"mappings":";;AAYA,MAAMA,MAAM,GAAIC,KAAc,IAAyB;EACrD,IAAIA,KAAK,YAAYC,IAAI,EAAE;IACzB,OAAOD,KAAK,CAACE,WAAW,CAAC,CAAC;EAC5B;EAEA,OAAO,OAAOF,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,GACzDG,MAAM,CAACH,KAAK,CAAC,GACbI,SAAS;AACf,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,qBAAqB,GAAGA,CACnCC,MAAe,EACfC,kBAA0B,KACH;EACvB,MAAMC,YAAY,GAAGF,MAA0B;EAE/C,MAAMG,IAAI,GACRV,MAAM,CAACS,YAAY,CAACE,YAAY,IAAIF,YAAY,CAACG,UAAU,CAAC,IAC5DJ,kBAAkB;EAEpB,MAAMK,KAAK,GAAGb,MAAM,CAACS,YAAY,CAACK,SAAS,IAAIL,YAAY,CAACM,SAAS,CAAC;EACtE,MAAMC,GAAG,GAAGhB,MAAM,CAACS,YAAY,CAACQ,OAAO,IAAIR,YAAY,CAACS,OAAO,CAAC;EAEhE,IAAIL,KAAK,IAAIG,GAAG,EAAE;IAChB,OAAO,GAAGN,IAAI,IAAIG,KAAK,IAAIG,GAAG,IAAIA,GAAG,IAAIH,KAAK,EAAE;EAClD;EAEA,MAAMM,IAAI,GAAGnB,MAAM,CAACS,YAAY,CAACU,IAAI,CAAC;EAEtC,IAAIA,IAAI,EAAE;IACR,OAAO,GAAGT,IAAI,IAAIS,IAAI,CAACC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;EACvC;EAEA,MAAMC,QAAQ,GAAGrB,MAAM,CAACS,YAAY,CAACa,IAAI,IAAIb,YAAY,CAACc,QAAQ,EAAEC,EAAE,CAAC;EAEvE,OAAOH,QAAQ,GAAG,GAAGX,IAAI,IAAIW,QAAQ,EAAE,GAAGhB,SAAS;AACrD,CAAC","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ export const groupSleepSamples = samples => {
4
+ const sorted = [...samples].sort((left, right) => getIntervalStart(left) - getIntervalStart(right));
5
+ const groups = [];
6
+ for (const sample of sorted) {
7
+ const current = groups.at(-1);
8
+ const currentEnd = current?.at(-1) ? getIntervalEnd(current.at(-1)) : undefined;
9
+ if (current && currentEnd !== undefined && getIntervalStart(sample) <= currentEnd + 30 * 60 * 1000) {
10
+ current.push(sample);
11
+ } else {
12
+ groups.push([sample]);
13
+ }
14
+ }
15
+ return groups;
16
+ };
17
+ const getIntervalStart = value => {
18
+ const item = value;
19
+ return new Date(item.startDate ?? item.startTime ?? 0).getTime();
20
+ };
21
+ const getIntervalEnd = value => {
22
+ const item = value;
23
+ return new Date(item.endDate ?? item.endTime ?? item.startDate ?? item.startTime ?? 0).getTime();
24
+ };
25
+ //# sourceMappingURL=group-sleep-samples.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["groupSleepSamples","samples","sorted","sort","left","right","getIntervalStart","groups","sample","current","at","currentEnd","getIntervalEnd","undefined","push","value","item","Date","startDate","startTime","getTime","endDate","endTime"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/group-sleep-samples.ts"],"mappings":";;AAAA,OAAO,MAAMA,iBAAiB,GAAQC,OAAY,IAAY;EAC5D,MAAMC,MAAM,GAAG,CAAC,GAAGD,OAAO,CAAC,CAACE,IAAI,CAC9B,CAACC,IAAI,EAAEC,KAAK,KAAKC,gBAAgB,CAACF,IAAI,CAAC,GAAGE,gBAAgB,CAACD,KAAK,CAClE,CAAC;EAED,MAAME,MAAa,GAAG,EAAE;EAExB,KAAK,MAAMC,MAAM,IAAIN,MAAM,EAAE;IAC3B,MAAMO,OAAO,GAAGF,MAAM,CAACG,EAAE,CAAC,CAAC,CAAC,CAAC;IAE7B,MAAMC,UAAU,GAAGF,OAAO,EAAEC,EAAE,CAAC,CAAC,CAAC,CAAC,GAC9BE,cAAc,CAACH,OAAO,CAACC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAC9BG,SAAS;IAEb,IACEJ,OAAO,IACPE,UAAU,KAAKE,SAAS,IACxBP,gBAAgB,CAACE,MAAM,CAAC,IAAIG,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EACvD;MACAF,OAAO,CAACK,IAAI,CAACN,MAAM,CAAC;IACtB,CAAC,MAAM;MACLD,MAAM,CAACO,IAAI,CAAC,CAACN,MAAM,CAAC,CAAC;IACvB;EACF;EAEA,OAAOD,MAAM;AACf,CAAC;AAED,MAAMD,gBAAgB,GAAIS,KAAc,IAAa;EACnD,MAAMC,IAAI,GAAGD,KAA0D;EAEvE,OAAO,IAAIE,IAAI,CAACD,IAAI,CAACE,SAAS,IAAIF,IAAI,CAACG,SAAS,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;AAClE,CAAC;AAED,MAAMR,cAAc,GAAIG,KAAc,IAAa;EACjD,MAAMC,IAAI,GAAGD,KAKZ;EAED,OAAO,IAAIE,IAAI,CACbD,IAAI,CAACK,OAAO,IAAIL,IAAI,CAACM,OAAO,IAAIN,IAAI,CAACE,SAAS,IAAIF,IAAI,CAACG,SAAS,IAAI,CACtE,CAAC,CAACC,OAAO,CAAC,CAAC;AACb,CAAC","ignoreList":[]}
@@ -4,16 +4,12 @@ import { HealthSyncKey } from "../data-sync/types/health-sync-keys";
4
4
  import { SyncProgress } from "../data-sync/types/sync-progress";
5
5
  declare const ANDROID_HEALTH_CONNECT_BACKGROUND_TASK = "OvokHealthConnectBackgroundSync";
6
6
  interface AndroidBluetoothForegroundServiceOptions {
7
- /** Text shown while the service keeps the BLE scan alive. */
8
7
  notificationTitle?: string;
9
8
  notificationBody?: string;
10
- /** Ask Android to exempt this app from Doze when the service starts. Defaults to false. */
11
9
  requestBatteryOptimizationExemption?: boolean;
12
10
  }
13
11
  interface AndroidHealthConnectBackgroundSyncOptions {
14
- /** WorkManager's minimum supported interval is 15 minutes. */
15
12
  intervalMinutes?: number;
16
- /** Must match the task name registered with `register...Task`. */
17
13
  taskName?: string;
18
14
  notificationTitle?: string;
19
15
  notificationBody?: string;
@@ -22,11 +18,8 @@ type AndroidHealthConnectBackgroundTask = (input: {
22
18
  reason?: string;
23
19
  }) => Promise<void>;
24
20
  type AndroidHealthConnectSyncRunOptions = {
25
- /** A restored, authenticated core client. */
26
21
  client: OvokClient;
27
- /** The patient whose Health Connect records should be imported. */
28
22
  patientId: string;
29
- /** The same record-to-Observation mapping used by AndroidHealthSync. */
30
23
  dataToSync: AndroidHealthSyncProps["dataToSync"];
31
24
  chunkSize?: number;
32
25
  onError?: (error: Error) => void;
@@ -41,7 +34,12 @@ declare const startAndroidBluetoothForegroundService: (options?: AndroidBluetoot
41
34
  declare const stopAndroidBluetoothForegroundService: () => Promise<void>;
42
35
  /** Returns whether Android currently exempts the app from Doze battery optimizations. */
43
36
  declare const isAndroidBatteryOptimizationIgnored: () => Promise<boolean>;
44
- /** Opens Android's consent screen for a Doze exemption. This is always explicit opt-in. */
37
+ /**
38
+ * Opens Android's consent screen for a Doze exemption. This is always explicit
39
+ * opt-in. A false result means the exemption is not active yet; it can also
40
+ * mean the user has already answered or the prompt was already shown. Recheck
41
+ * `isAndroidBatteryOptimizationIgnored` after returning to the foreground.
42
+ */
45
43
  declare const requestAndroidBatteryOptimizationExemption: () => Promise<boolean>;
46
44
  /**
47
45
  * Schedules a WorkManager wake-up that starts the registered headless JS task.
@@ -1 +1 @@
1
- {"version":3,"file":"android-background-sync.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/background-sync/android-background-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAIxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,QAAA,MAAM,sCAAsC,oCACT,CAAC;AAepC,UAAU,wCAAwC;IAEhD,6DAA6D;IAC7D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,2FAA2F;IAC3F,mCAAmC,CAAC,EAAE,OAAO,CAAC;CAC/C;AAED,UAAU,yCAAyC;IAEjD,8DAA8D;IAC9D,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,KAAK,kCAAkC,GAAG,CAAC,KAAK,EAAE;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEpB,KAAK,kCAAkC,GAAG;IAExC,6CAA6C;IAC7C,MAAM,EAAE,UAAU,CAAC;IAEnB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAElB,wEAAwE;IACxE,UAAU,EAAE,sBAAsB,CAAC,YAAY,CAAC,CAAC;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,UAAU,CAAC,EAAE,CACX,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,KACnD,IAAI,CAAC;CACX,CAAC;AAgBF;;;;GAIG;AACH,QAAA,MAAM,sCAAsC,GAC1C,UAAS,wCAA6C,KACrD,OAAO,CAAC,IAAI,CAMd,CAAC;AAEF,QAAA,MAAM,qCAAqC,QAAa,OAAO,CAAC,IAAI,CAMnE,CAAC;AAEF,yFAAyF;AACzF,QAAA,MAAM,mCAAmC,QAAa,OAAO,CAAC,OAAO,CAMpE,CAAC;AAEF,2FAA2F;AAC3F,QAAA,MAAM,0CAA0C,QAAa,OAAO,CAAC,OAAO,CAM3E,CAAC;AAEF;;;;GAIG;AACH,QAAA,MAAM,gCAAgC,GACpC,UAAS,yCAA8C,KACtD,OAAO,CAAC,IAAI,CAMd,CAAC;AAEF,QAAA,MAAM,8BAA8B,QAAa,OAAO,CAAC,IAAI,CAM5D,CAAC;AAEF;;;;;;;GAOG;AACH,QAAA,MAAM,2BAA2B,GAAU,oEAOxC,kCAAkC,KAAG,OAAO,CAAC,IAAI,CAgBnD,CAAC;AAEF;;;;GAIG;AACH,QAAA,MAAM,0CAA0C,GAC9C,MAAM,kCAAkC,EACxC,iBAAiD,KAChD,IAMF,CAAC;AAEF,OAAO,EACL,sCAAsC,EACtC,wCAAwC,EACxC,yCAAyC,EACzC,kCAAkC,EAClC,kCAAkC,EAClC,8BAA8B,EAC9B,mCAAmC,EACnC,0CAA0C,EAC1C,0CAA0C,EAC1C,2BAA2B,EAC3B,gCAAgC,EAChC,sCAAsC,EACtC,qCAAqC,GACtC,CAAC"}
1
+ {"version":3,"file":"android-background-sync.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/background-sync/android-background-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAIxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,QAAA,MAAM,sCAAsC,oCACT,CAAC;AAepC,UAAU,wCAAwC;IAChD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mCAAmC,CAAC,EAAE,OAAO,CAAC;CAC/C;AAED,UAAU,yCAAyC;IACjD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,KAAK,kCAAkC,GAAG,CAAC,KAAK,EAAE;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEpB,KAAK,kCAAkC,GAAG;IACxC,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,sBAAsB,CAAC,YAAY,CAAC,CAAC;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,UAAU,CAAC,EAAE,CACX,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,KACnD,IAAI,CAAC;CACX,CAAC;AAgBF;;;;GAIG;AACH,QAAA,MAAM,sCAAsC,GAC1C,UAAS,wCAA6C,KACrD,OAAO,CAAC,IAAI,CAMd,CAAC;AAEF,QAAA,MAAM,qCAAqC,QAAa,OAAO,CAAC,IAAI,CAMnE,CAAC;AAEF,yFAAyF;AACzF,QAAA,MAAM,mCAAmC,QAAa,OAAO,CAAC,OAAO,CAMpE,CAAC;AAEF;;;;;GAKG;AACH,QAAA,MAAM,0CAA0C,QACpC,OAAO,CAAC,OAAO,CAMxB,CAAC;AAEJ;;;;GAIG;AACH,QAAA,MAAM,gCAAgC,GACpC,UAAS,yCAA8C,KACtD,OAAO,CAAC,IAAI,CAMd,CAAC;AAEF,QAAA,MAAM,8BAA8B,QAAa,OAAO,CAAC,IAAI,CAM5D,CAAC;AAEF;;;;;;;GAOG;AACH,QAAA,MAAM,2BAA2B,GAAU,oEAOxC,kCAAkC,KAAG,OAAO,CAAC,IAAI,CAgBnD,CAAC;AAEF;;;;GAIG;AACH,QAAA,MAAM,0CAA0C,GAC9C,MAAM,kCAAkC,EACxC,iBAAiD,KAChD,IAMF,CAAC;AAEF,OAAO,EACL,sCAAsC,EACtC,wCAAwC,EACxC,yCAAyC,EACzC,kCAAkC,EAClC,kCAAkC,EAClC,8BAA8B,EAC9B,mCAAmC,EACnC,0CAA0C,EAC1C,0CAA0C,EAC1C,2BAA2B,EAC3B,gCAAgC,EAChC,sCAAsC,EACtC,qCAAqC,GACtC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"android-bluetooth-foreground-service.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/background-sync/android-bluetooth-foreground-service.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAI3E,OAAO,EAIL,KAAK,wCAAwC,EAC9C,MAAM,2BAA2B,CAAC;AAEnC,UAAU,sCAAsC;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,wCAAwC,CAAC;IACnD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;CACzC;AAED,QAAA,MAAM,iCAAiC,GAAI,0CAKxC,sCAAsC,sBAqDxC,CAAC;AAEF,OAAO,EAAE,iCAAiC,EAAE,CAAC"}
1
+ {"version":3,"file":"android-bluetooth-foreground-service.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/background-sync/android-bluetooth-foreground-service.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAI3E,OAAO,EAIL,KAAK,wCAAwC,EAC9C,MAAM,2BAA2B,CAAC;AAEnC,UAAU,sCAAsC;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,wCAAwC,CAAC;IACnD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;CACzC;AAED,QAAA,MAAM,iCAAiC,GAAI,0CAKxC,sCAAsC,sBA6CxC,CAAC;AAEF,OAAO,EAAE,iCAAiC,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"android-bluetooth-foreground-service.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/components/android-bluetooth-foreground-service.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAI7D,UAAU,wCAAwC;IAChD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mCAAmC,CAAC,EAAE,OAAO,CAAC;CAC/C;AAwBD,eAAO,MAAM,iCAAiC,GAAI,0CAK/C,KAAK,CAAC,iBAAiB,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,wCAAwC,CAAC;IACnD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;CACzC,CAAC,sBAyDD,CAAC"}
1
+ {"version":3,"file":"android-bluetooth-foreground-service.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/components/android-bluetooth-foreground-service.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAI7D,UAAU,wCAAwC;IAChD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mCAAmC,CAAC,EAAE,OAAO,CAAC;CAC/C;AAwBD,eAAO,MAAM,iCAAiC,GAAI,0CAK/C,KAAK,CAAC,iBAAiB,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,wCAAwC,CAAC;IACnD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;CACzC,CAAC,sBAiDD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-health-sync-service.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/services/base-health-sync-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAQjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAQzD,8BAAsB,qBAAqB,CACzC,WAAW,SACP,sBAAsB,CAAC,YAAY,CAAC,GACpC,oBAAoB,CAAC,YAAY,CAAC,EACtC,eAAe,SAAS,MAAM,EAC9B,iBAAiB,GAAG,OAAO;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IAErD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAI5B;gBAEU,KAAK,EAAE,gBAAgB,CAAC,WAAW,CAAC;IA2BhD,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,cAAc;IAEpD,SAAS,CAAC,QAAQ,CAAC,sBAAsB,IAAI,CAC3C,KAAK,EAAE,kBAAkB,CAAC,eAAe,CAAC,KACvC,OAAO,CAAC,MAAM,CAAC;IAEpB,SAAS,CAAC,QAAQ,CAAC,2BAA2B,IAAI,CAChD,KAAK,EAAE,wBAAwB,CAAC,eAAe,CAAC,KAC7C,OAAO,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;IAExE,SAAS,CAAC,QAAQ,CAAC,oBAAoB,IAAI,CACzC,KAAK,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,KACvC,OAAO,CAAC,WAAW,EAAE,CAAC;IAE3B,2EAA2E;IAC9D,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;YAUzB,OAAO;IA6BR,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAMzB,SAAS,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAKjD,cAAc;YAUd,oBAAoB;YAwBpB,mBAAmB;YAqBnB,cAAc;IAiF5B,OAAO,CAAC,yBAAyB;CAGlC"}
1
+ {"version":3,"file":"base-health-sync-service.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/services/base-health-sync-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAQjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAQzD,8BAAsB,qBAAqB,CACzC,WAAW,SACP,sBAAsB,CAAC,YAAY,CAAC,GACpC,oBAAoB,CAAC,YAAY,CAAC,EACtC,eAAe,SAAS,MAAM,EAC9B,iBAAiB,GAAG,OAAO;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IAErD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAI5B;gBAEU,KAAK,EAAE,gBAAgB,CAAC,WAAW,CAAC;IA2BhD,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,cAAc;IAEpD,SAAS,CAAC,QAAQ,CAAC,sBAAsB,IAAI,CAC3C,KAAK,EAAE,kBAAkB,CAAC,eAAe,CAAC,KACvC,OAAO,CAAC,MAAM,CAAC;IAEpB,SAAS,CAAC,QAAQ,CAAC,2BAA2B,IAAI,CAChD,KAAK,EAAE,wBAAwB,CAAC,eAAe,CAAC,KAC7C,OAAO,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;IAExE,SAAS,CAAC,QAAQ,CAAC,oBAAoB,IAAI,CACzC,KAAK,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,KACvC,OAAO,CAAC,WAAW,EAAE,CAAC;IAE3B,2EAA2E;IAC9D,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;YAUzB,OAAO;IA6BR,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAMzB,SAAS,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAKjD,cAAc;YAUd,oBAAoB;YAwBpB,mBAAmB;YAqBnB,cAAc;IAoF5B,OAAO,CAAC,yBAAyB;CAGlC"}
@@ -27,13 +27,14 @@ export declare class DataProcessor<TDataToSync extends AndroidHealthSyncProps["d
27
27
  getTotalRecordsCountForType(measurementTypeKey: HealthSyncKey, data: NonNullable<TDataToSync[HealthSyncKey]>, latestValidStartDate: Date | undefined): Promise<number>;
28
28
  getObservationBodiesForType(measurementTypeKey: HealthSyncKey, data: NonNullable<TDataToSync[HealthSyncKey]>, latestValidStartDate: Date | undefined): Promise<{
29
29
  observationBodies: Observation[][];
30
+ observationSyncIds: Array<string | undefined>;
30
31
  hasAnchor: boolean;
31
32
  anchors: Array<{
32
33
  typeIdentifier: string;
33
34
  anchor: string;
34
35
  }>;
35
36
  }>;
36
- generateObservationEntries(observationBodies: Observation[][]): import("@medplum/fhirtypes").BundleEntry<Observation>[];
37
+ generateObservationEntries(observationBodies: Observation[][], observationSyncIds?: Array<string | undefined>): import("@medplum/fhirtypes").BundleEntry<Observation>[];
37
38
  getLatestValidStartDate(latestObservationDates: Array<{
38
39
  code: string | undefined;
39
40
  date: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"data-processor.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/services/managers/data-processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-processor.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/services/managers/data-processor.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,14 @@ import { HealthProvider } from "../types/health-provider";
3
3
  type GenerateObservationEntryProps = {
4
4
  groupedObservationBodies: Observation[][];
5
5
  provider: HealthProvider;
6
+ groupedObservationSyncIds?: Array<string | undefined>;
6
7
  };
7
- export declare const generateObservationEntry: ({ groupedObservationBodies, provider, }: GenerateObservationEntryProps) => BundleEntry<Observation>[];
8
- export {};
8
+ declare const getStableObservationId: ({ observation, provider, sourceId, bodyIndex, }: {
9
+ observation: Observation;
10
+ provider: HealthProvider;
11
+ sourceId?: string;
12
+ bodyIndex: number;
13
+ }) => string;
14
+ declare const generateObservationEntry: ({ groupedObservationBodies, provider, groupedObservationSyncIds, }: GenerateObservationEntryProps) => BundleEntry<Observation>[];
15
+ export { generateObservationEntry, getStableObservationId };
9
16
  //# sourceMappingURL=generate-observation-entry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-observation-entry.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/utils/generate-observation-entry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,KAAK,6BAA6B,GAAG;IACnC,wBAAwB,EAAE,WAAW,EAAE,EAAE,CAAC;IAC1C,QAAQ,EAAE,cAAc,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,yCAGtC,6BAA6B,KAAG,WAAW,CAAC,WAAW,CAAC,EAmD1D,CAAC"}
1
+ {"version":3,"file":"generate-observation-entry.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/utils/generate-observation-entry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,KAAK,6BAA6B,GAAG;IACnC,wBAAwB,EAAE,WAAW,EAAE,EAAE,CAAC;IAC1C,QAAQ,EAAE,cAAc,CAAC;IACzB,yBAAyB,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACvD,CAAC;AAiBF,QAAA,MAAM,sBAAsB,GAAI,iDAK7B;IACD,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,KAAG,MAQa,CAAC;AA6BlB,QAAA,MAAM,wBAAwB,GAAI,oEAI/B,6BAA6B,KAAG,WAAW,CAAC,WAAW,CAAC,EA8D1D,CAAC;AAEF,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Builds an import identity from the source record's type and interval.
3
+ * Values are deliberately excluded so an updated daily total replaces the
4
+ * previous total instead of creating a second observation.
5
+ */
6
+ export declare const getHealthRecordSyncId: (record: unknown, measurementTypeKey: string) => string | undefined;
7
+ //# sourceMappingURL=get-health-record-sync-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-health-record-sync-id.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/utils/get-health-record-sync-id.ts"],"names":[],"mappings":"AAsBA;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAChC,QAAQ,OAAO,EACf,oBAAoB,MAAM,KACzB,MAAM,GAAG,SAuBX,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const groupSleepSamples: <T>(samples: T[]) => T[][];
2
+ //# sourceMappingURL=group-sleep-samples.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group-sleep-samples.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/utils/group-sleep-samples.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,GAAI,CAAC,EAAG,SAAS,CAAC,EAAE,KAAG,CAAC,EAAE,EA0BvD,CAAC"}
@@ -4,16 +4,12 @@ import { HealthSyncKey } from "../data-sync/types/health-sync-keys";
4
4
  import { SyncProgress } from "../data-sync/types/sync-progress";
5
5
  declare const ANDROID_HEALTH_CONNECT_BACKGROUND_TASK = "OvokHealthConnectBackgroundSync";
6
6
  interface AndroidBluetoothForegroundServiceOptions {
7
- /** Text shown while the service keeps the BLE scan alive. */
8
7
  notificationTitle?: string;
9
8
  notificationBody?: string;
10
- /** Ask Android to exempt this app from Doze when the service starts. Defaults to false. */
11
9
  requestBatteryOptimizationExemption?: boolean;
12
10
  }
13
11
  interface AndroidHealthConnectBackgroundSyncOptions {
14
- /** WorkManager's minimum supported interval is 15 minutes. */
15
12
  intervalMinutes?: number;
16
- /** Must match the task name registered with `register...Task`. */
17
13
  taskName?: string;
18
14
  notificationTitle?: string;
19
15
  notificationBody?: string;
@@ -22,11 +18,8 @@ type AndroidHealthConnectBackgroundTask = (input: {
22
18
  reason?: string;
23
19
  }) => Promise<void>;
24
20
  type AndroidHealthConnectSyncRunOptions = {
25
- /** A restored, authenticated core client. */
26
21
  client: OvokClient;
27
- /** The patient whose Health Connect records should be imported. */
28
22
  patientId: string;
29
- /** The same record-to-Observation mapping used by AndroidHealthSync. */
30
23
  dataToSync: AndroidHealthSyncProps["dataToSync"];
31
24
  chunkSize?: number;
32
25
  onError?: (error: Error) => void;
@@ -41,7 +34,12 @@ declare const startAndroidBluetoothForegroundService: (options?: AndroidBluetoot
41
34
  declare const stopAndroidBluetoothForegroundService: () => Promise<void>;
42
35
  /** Returns whether Android currently exempts the app from Doze battery optimizations. */
43
36
  declare const isAndroidBatteryOptimizationIgnored: () => Promise<boolean>;
44
- /** Opens Android's consent screen for a Doze exemption. This is always explicit opt-in. */
37
+ /**
38
+ * Opens Android's consent screen for a Doze exemption. This is always explicit
39
+ * opt-in. A false result means the exemption is not active yet; it can also
40
+ * mean the user has already answered or the prompt was already shown. Recheck
41
+ * `isAndroidBatteryOptimizationIgnored` after returning to the foreground.
42
+ */
45
43
  declare const requestAndroidBatteryOptimizationExemption: () => Promise<boolean>;
46
44
  /**
47
45
  * Schedules a WorkManager wake-up that starts the registered headless JS task.
@@ -1 +1 @@
1
- {"version":3,"file":"android-background-sync.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/background-sync/android-background-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAIxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,QAAA,MAAM,sCAAsC,oCACT,CAAC;AAepC,UAAU,wCAAwC;IAEhD,6DAA6D;IAC7D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,2FAA2F;IAC3F,mCAAmC,CAAC,EAAE,OAAO,CAAC;CAC/C;AAED,UAAU,yCAAyC;IAEjD,8DAA8D;IAC9D,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,KAAK,kCAAkC,GAAG,CAAC,KAAK,EAAE;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEpB,KAAK,kCAAkC,GAAG;IAExC,6CAA6C;IAC7C,MAAM,EAAE,UAAU,CAAC;IAEnB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAElB,wEAAwE;IACxE,UAAU,EAAE,sBAAsB,CAAC,YAAY,CAAC,CAAC;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,UAAU,CAAC,EAAE,CACX,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,KACnD,IAAI,CAAC;CACX,CAAC;AAgBF;;;;GAIG;AACH,QAAA,MAAM,sCAAsC,GAC1C,UAAS,wCAA6C,KACrD,OAAO,CAAC,IAAI,CAMd,CAAC;AAEF,QAAA,MAAM,qCAAqC,QAAa,OAAO,CAAC,IAAI,CAMnE,CAAC;AAEF,yFAAyF;AACzF,QAAA,MAAM,mCAAmC,QAAa,OAAO,CAAC,OAAO,CAMpE,CAAC;AAEF,2FAA2F;AAC3F,QAAA,MAAM,0CAA0C,QAAa,OAAO,CAAC,OAAO,CAM3E,CAAC;AAEF;;;;GAIG;AACH,QAAA,MAAM,gCAAgC,GACpC,UAAS,yCAA8C,KACtD,OAAO,CAAC,IAAI,CAMd,CAAC;AAEF,QAAA,MAAM,8BAA8B,QAAa,OAAO,CAAC,IAAI,CAM5D,CAAC;AAEF;;;;;;;GAOG;AACH,QAAA,MAAM,2BAA2B,GAAU,oEAOxC,kCAAkC,KAAG,OAAO,CAAC,IAAI,CAgBnD,CAAC;AAEF;;;;GAIG;AACH,QAAA,MAAM,0CAA0C,GAC9C,MAAM,kCAAkC,EACxC,iBAAiD,KAChD,IAMF,CAAC;AAEF,OAAO,EACL,sCAAsC,EACtC,wCAAwC,EACxC,yCAAyC,EACzC,kCAAkC,EAClC,kCAAkC,EAClC,8BAA8B,EAC9B,mCAAmC,EACnC,0CAA0C,EAC1C,0CAA0C,EAC1C,2BAA2B,EAC3B,gCAAgC,EAChC,sCAAsC,EACtC,qCAAqC,GACtC,CAAC"}
1
+ {"version":3,"file":"android-background-sync.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/background-sync/android-background-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAIxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,QAAA,MAAM,sCAAsC,oCACT,CAAC;AAepC,UAAU,wCAAwC;IAChD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mCAAmC,CAAC,EAAE,OAAO,CAAC;CAC/C;AAED,UAAU,yCAAyC;IACjD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,KAAK,kCAAkC,GAAG,CAAC,KAAK,EAAE;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEpB,KAAK,kCAAkC,GAAG;IACxC,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,sBAAsB,CAAC,YAAY,CAAC,CAAC;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,UAAU,CAAC,EAAE,CACX,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,KACnD,IAAI,CAAC;CACX,CAAC;AAgBF;;;;GAIG;AACH,QAAA,MAAM,sCAAsC,GAC1C,UAAS,wCAA6C,KACrD,OAAO,CAAC,IAAI,CAMd,CAAC;AAEF,QAAA,MAAM,qCAAqC,QAAa,OAAO,CAAC,IAAI,CAMnE,CAAC;AAEF,yFAAyF;AACzF,QAAA,MAAM,mCAAmC,QAAa,OAAO,CAAC,OAAO,CAMpE,CAAC;AAEF;;;;;GAKG;AACH,QAAA,MAAM,0CAA0C,QACpC,OAAO,CAAC,OAAO,CAMxB,CAAC;AAEJ;;;;GAIG;AACH,QAAA,MAAM,gCAAgC,GACpC,UAAS,yCAA8C,KACtD,OAAO,CAAC,IAAI,CAMd,CAAC;AAEF,QAAA,MAAM,8BAA8B,QAAa,OAAO,CAAC,IAAI,CAM5D,CAAC;AAEF;;;;;;;GAOG;AACH,QAAA,MAAM,2BAA2B,GAAU,oEAOxC,kCAAkC,KAAG,OAAO,CAAC,IAAI,CAgBnD,CAAC;AAEF;;;;GAIG;AACH,QAAA,MAAM,0CAA0C,GAC9C,MAAM,kCAAkC,EACxC,iBAAiD,KAChD,IAMF,CAAC;AAEF,OAAO,EACL,sCAAsC,EACtC,wCAAwC,EACxC,yCAAyC,EACzC,kCAAkC,EAClC,kCAAkC,EAClC,8BAA8B,EAC9B,mCAAmC,EACnC,0CAA0C,EAC1C,0CAA0C,EAC1C,2BAA2B,EAC3B,gCAAgC,EAChC,sCAAsC,EACtC,qCAAqC,GACtC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"android-bluetooth-foreground-service.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/background-sync/android-bluetooth-foreground-service.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAI3E,OAAO,EAIL,KAAK,wCAAwC,EAC9C,MAAM,2BAA2B,CAAC;AAEnC,UAAU,sCAAsC;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,wCAAwC,CAAC;IACnD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;CACzC;AAED,QAAA,MAAM,iCAAiC,GAAI,0CAKxC,sCAAsC,sBAqDxC,CAAC;AAEF,OAAO,EAAE,iCAAiC,EAAE,CAAC"}
1
+ {"version":3,"file":"android-bluetooth-foreground-service.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/background-sync/android-bluetooth-foreground-service.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAI3E,OAAO,EAIL,KAAK,wCAAwC,EAC9C,MAAM,2BAA2B,CAAC;AAEnC,UAAU,sCAAsC;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,wCAAwC,CAAC;IACnD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;CACzC;AAED,QAAA,MAAM,iCAAiC,GAAI,0CAKxC,sCAAsC,sBA6CxC,CAAC;AAEF,OAAO,EAAE,iCAAiC,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"android-bluetooth-foreground-service.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/components/android-bluetooth-foreground-service.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAI7D,UAAU,wCAAwC;IAChD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mCAAmC,CAAC,EAAE,OAAO,CAAC;CAC/C;AAwBD,eAAO,MAAM,iCAAiC,GAAI,0CAK/C,KAAK,CAAC,iBAAiB,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,wCAAwC,CAAC;IACnD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;CACzC,CAAC,sBAyDD,CAAC"}
1
+ {"version":3,"file":"android-bluetooth-foreground-service.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/components/android-bluetooth-foreground-service.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAI7D,UAAU,wCAAwC;IAChD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mCAAmC,CAAC,EAAE,OAAO,CAAC;CAC/C;AAwBD,eAAO,MAAM,iCAAiC,GAAI,0CAK/C,KAAK,CAAC,iBAAiB,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,wCAAwC,CAAC;IACnD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;CACzC,CAAC,sBAiDD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-health-sync-service.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/services/base-health-sync-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAQjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAQzD,8BAAsB,qBAAqB,CACzC,WAAW,SACP,sBAAsB,CAAC,YAAY,CAAC,GACpC,oBAAoB,CAAC,YAAY,CAAC,EACtC,eAAe,SAAS,MAAM,EAC9B,iBAAiB,GAAG,OAAO;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IAErD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAI5B;gBAEU,KAAK,EAAE,gBAAgB,CAAC,WAAW,CAAC;IA2BhD,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,cAAc;IAEpD,SAAS,CAAC,QAAQ,CAAC,sBAAsB,IAAI,CAC3C,KAAK,EAAE,kBAAkB,CAAC,eAAe,CAAC,KACvC,OAAO,CAAC,MAAM,CAAC;IAEpB,SAAS,CAAC,QAAQ,CAAC,2BAA2B,IAAI,CAChD,KAAK,EAAE,wBAAwB,CAAC,eAAe,CAAC,KAC7C,OAAO,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;IAExE,SAAS,CAAC,QAAQ,CAAC,oBAAoB,IAAI,CACzC,KAAK,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,KACvC,OAAO,CAAC,WAAW,EAAE,CAAC;IAE3B,2EAA2E;IAC9D,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;YAUzB,OAAO;IA6BR,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAMzB,SAAS,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAKjD,cAAc;YAUd,oBAAoB;YAwBpB,mBAAmB;YAqBnB,cAAc;IAiF5B,OAAO,CAAC,yBAAyB;CAGlC"}
1
+ {"version":3,"file":"base-health-sync-service.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/services/base-health-sync-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAQjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAQzD,8BAAsB,qBAAqB,CACzC,WAAW,SACP,sBAAsB,CAAC,YAAY,CAAC,GACpC,oBAAoB,CAAC,YAAY,CAAC,EACtC,eAAe,SAAS,MAAM,EAC9B,iBAAiB,GAAG,OAAO;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IAErD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAI5B;gBAEU,KAAK,EAAE,gBAAgB,CAAC,WAAW,CAAC;IA2BhD,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,cAAc;IAEpD,SAAS,CAAC,QAAQ,CAAC,sBAAsB,IAAI,CAC3C,KAAK,EAAE,kBAAkB,CAAC,eAAe,CAAC,KACvC,OAAO,CAAC,MAAM,CAAC;IAEpB,SAAS,CAAC,QAAQ,CAAC,2BAA2B,IAAI,CAChD,KAAK,EAAE,wBAAwB,CAAC,eAAe,CAAC,KAC7C,OAAO,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;IAExE,SAAS,CAAC,QAAQ,CAAC,oBAAoB,IAAI,CACzC,KAAK,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,KACvC,OAAO,CAAC,WAAW,EAAE,CAAC;IAE3B,2EAA2E;IAC9D,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;YAUzB,OAAO;IA6BR,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAMzB,SAAS,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAKjD,cAAc;YAUd,oBAAoB;YAwBpB,mBAAmB;YAqBnB,cAAc;IAoF5B,OAAO,CAAC,yBAAyB;CAGlC"}
@@ -27,13 +27,14 @@ export declare class DataProcessor<TDataToSync extends AndroidHealthSyncProps["d
27
27
  getTotalRecordsCountForType(measurementTypeKey: HealthSyncKey, data: NonNullable<TDataToSync[HealthSyncKey]>, latestValidStartDate: Date | undefined): Promise<number>;
28
28
  getObservationBodiesForType(measurementTypeKey: HealthSyncKey, data: NonNullable<TDataToSync[HealthSyncKey]>, latestValidStartDate: Date | undefined): Promise<{
29
29
  observationBodies: Observation[][];
30
+ observationSyncIds: Array<string | undefined>;
30
31
  hasAnchor: boolean;
31
32
  anchors: Array<{
32
33
  typeIdentifier: string;
33
34
  anchor: string;
34
35
  }>;
35
36
  }>;
36
- generateObservationEntries(observationBodies: Observation[][]): import("@medplum/fhirtypes").BundleEntry<Observation>[];
37
+ generateObservationEntries(observationBodies: Observation[][], observationSyncIds?: Array<string | undefined>): import("@medplum/fhirtypes").BundleEntry<Observation>[];
37
38
  getLatestValidStartDate(latestObservationDates: Array<{
38
39
  code: string | undefined;
39
40
  date: string | undefined;