@ovok/native 1.7.0 → 1.8.1
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.
- package/lib/commonjs/modules/data-sync/index.js +15 -0
- package/lib/commonjs/modules/data-sync/index.js.map +1 -1
- package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js +25 -19
- package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js.map +1 -1
- package/lib/commonjs/modules/data-sync/services/managers/data-processor.js +73 -17
- package/lib/commonjs/modules/data-sync/services/managers/data-processor.js.map +1 -1
- package/lib/commonjs/modules/data-sync/services/managers/storage-manager.js +14 -0
- package/lib/commonjs/modules/data-sync/services/managers/storage-manager.js.map +1 -1
- package/lib/commonjs/modules/data-sync/utils/convert-generic-health-data.js +45 -7
- package/lib/commonjs/modules/data-sync/utils/convert-generic-health-data.js.map +1 -1
- package/lib/commonjs/modules/data-sync/utils/get-health-record-sync-id.js +15 -2
- package/lib/commonjs/modules/data-sync/utils/get-health-record-sync-id.js.map +1 -1
- package/lib/commonjs/modules/data-sync/utils/get-records-from-health-connect.js +103 -8
- package/lib/commonjs/modules/data-sync/utils/get-records-from-health-connect.js.map +1 -1
- package/lib/commonjs/modules/data-sync/utils/get-samples-from-health.js +66 -23
- package/lib/commonjs/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
- package/lib/commonjs/modules/data-sync/utils/get-total-records-count.js +4 -1
- package/lib/commonjs/modules/data-sync/utils/get-total-records-count.js.map +1 -1
- package/lib/commonjs/modules/data-sync/utils/get-total-samples-count.js +3 -3
- package/lib/commonjs/modules/data-sync/utils/get-total-samples-count.js.map +1 -1
- package/lib/commonjs/modules/data-sync/utils/health-data-catalog.js +364 -0
- package/lib/commonjs/modules/data-sync/utils/health-data-catalog.js.map +1 -0
- package/lib/commonjs/modules/data-sync/utils/health-units.js +13 -11
- package/lib/commonjs/modules/data-sync/utils/health-units.js.map +1 -1
- package/lib/commonjs/modules/data-sync/utils/healthkit-data-types.js +34 -0
- package/lib/commonjs/modules/data-sync/utils/healthkit-data-types.js.map +1 -0
- package/lib/commonjs/modules/ui/components/calendar-grid.js +156 -0
- package/lib/commonjs/modules/ui/components/calendar-grid.js.map +1 -0
- package/lib/commonjs/modules/ui/components/calendar.js +137 -0
- package/lib/commonjs/modules/ui/components/calendar.js.map +1 -0
- package/lib/commonjs/modules/ui/components/period-calendar.js +127 -0
- package/lib/commonjs/modules/ui/components/period-calendar.js.map +1 -0
- package/lib/commonjs/modules/ui/index.js +22 -0
- package/lib/commonjs/modules/ui/index.js.map +1 -1
- package/lib/commonjs/modules/ui/utils/calendar-date.js +44 -0
- package/lib/commonjs/modules/ui/utils/calendar-date.js.map +1 -0
- package/lib/module/modules/data-sync/index.js +1 -0
- package/lib/module/modules/data-sync/index.js.map +1 -1
- package/lib/module/modules/data-sync/services/base-health-sync-service.js +25 -19
- package/lib/module/modules/data-sync/services/base-health-sync-service.js.map +1 -1
- package/lib/module/modules/data-sync/services/managers/data-processor.js +74 -18
- package/lib/module/modules/data-sync/services/managers/data-processor.js.map +1 -1
- package/lib/module/modules/data-sync/services/managers/storage-manager.js +14 -0
- package/lib/module/modules/data-sync/services/managers/storage-manager.js.map +1 -1
- package/lib/module/modules/data-sync/utils/convert-generic-health-data.js +45 -7
- package/lib/module/modules/data-sync/utils/convert-generic-health-data.js.map +1 -1
- package/lib/module/modules/data-sync/utils/get-health-record-sync-id.js +15 -2
- package/lib/module/modules/data-sync/utils/get-health-record-sync-id.js.map +1 -1
- package/lib/module/modules/data-sync/utils/get-records-from-health-connect.js +103 -8
- package/lib/module/modules/data-sync/utils/get-records-from-health-connect.js.map +1 -1
- package/lib/module/modules/data-sync/utils/get-samples-from-health.js +66 -22
- package/lib/module/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
- package/lib/module/modules/data-sync/utils/get-total-records-count.js +4 -1
- package/lib/module/modules/data-sync/utils/get-total-records-count.js.map +1 -1
- package/lib/module/modules/data-sync/utils/get-total-samples-count.js +2 -2
- package/lib/module/modules/data-sync/utils/get-total-samples-count.js.map +1 -1
- package/lib/module/modules/data-sync/utils/health-data-catalog.js +360 -0
- package/lib/module/modules/data-sync/utils/health-data-catalog.js.map +1 -0
- package/lib/module/modules/data-sync/utils/health-units.js +13 -11
- package/lib/module/modules/data-sync/utils/health-units.js.map +1 -1
- package/lib/module/modules/data-sync/utils/healthkit-data-types.js +26 -0
- package/lib/module/modules/data-sync/utils/healthkit-data-types.js.map +1 -0
- package/lib/module/modules/ui/components/calendar-grid.js +152 -0
- package/lib/module/modules/ui/components/calendar-grid.js.map +1 -0
- package/lib/module/modules/ui/components/calendar.js +133 -0
- package/lib/module/modules/ui/components/calendar.js.map +1 -0
- package/lib/module/modules/ui/components/period-calendar.js +122 -0
- package/lib/module/modules/ui/components/period-calendar.js.map +1 -0
- package/lib/module/modules/ui/index.js +2 -0
- package/lib/module/modules/ui/index.js.map +1 -1
- package/lib/module/modules/ui/utils/calendar-date.js +36 -0
- package/lib/module/modules/ui/utils/calendar-date.js.map +1 -0
- package/lib/typescript/commonjs/src/modules/data-sync/index.d.ts +1 -0
- package/lib/typescript/commonjs/src/modules/data-sync/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts +2 -1
- package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/services/managers/storage-manager.d.ts +2 -0
- package/lib/typescript/commonjs/src/modules/data-sync/services/managers/storage-manager.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/types/convert-data-props.d.ts +2 -0
- package/lib/typescript/commonjs/src/modules/data-sync/types/convert-data-props.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/types/data-from-provider-result.d.ts +4 -0
- package/lib/typescript/commonjs/src/modules/data-sync/types/data-from-provider-result.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-props.d.ts +6 -1
- package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-props.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-generic-health-data.d.ts +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-generic-health-data.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/get-health-record-sync-id.d.ts +9 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/get-health-record-sync-id.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/get-records-from-health-connect.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts +49 -4
- package/lib/typescript/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/get-total-records-count.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/get-total-samples-count.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/health-data-catalog.d.ts +30 -0
- package/lib/typescript/commonjs/src/modules/data-sync/utils/health-data-catalog.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/data-sync/utils/health-units.d.ts +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/health-units.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/healthkit-data-types.d.ts +11 -0
- package/lib/typescript/commonjs/src/modules/data-sync/utils/healthkit-data-types.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/ui/components/calendar-grid.d.ts +23 -0
- package/lib/typescript/commonjs/src/modules/ui/components/calendar-grid.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/ui/components/calendar.d.ts +32 -0
- package/lib/typescript/commonjs/src/modules/ui/components/calendar.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/ui/components/period-calendar.d.ts +16 -0
- package/lib/typescript/commonjs/src/modules/ui/components/period-calendar.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/ui/index.d.ts +2 -0
- package/lib/typescript/commonjs/src/modules/ui/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/ui/utils/calendar-date.d.ts +9 -0
- package/lib/typescript/commonjs/src/modules/ui/utils/calendar-date.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/data-sync/index.d.ts +1 -0
- package/lib/typescript/module/src/modules/data-sync/index.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts +2 -1
- package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/services/managers/storage-manager.d.ts +2 -0
- package/lib/typescript/module/src/modules/data-sync/services/managers/storage-manager.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/types/convert-data-props.d.ts +2 -0
- package/lib/typescript/module/src/modules/data-sync/types/convert-data-props.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/types/data-from-provider-result.d.ts +4 -0
- package/lib/typescript/module/src/modules/data-sync/types/data-from-provider-result.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/types/health-sync-props.d.ts +6 -1
- package/lib/typescript/module/src/modules/data-sync/types/health-sync-props.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/utils/convert-generic-health-data.d.ts +1 -1
- package/lib/typescript/module/src/modules/data-sync/utils/convert-generic-health-data.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/utils/get-health-record-sync-id.d.ts +9 -1
- package/lib/typescript/module/src/modules/data-sync/utils/get-health-record-sync-id.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/utils/get-records-from-health-connect.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts +49 -4
- package/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/utils/get-total-records-count.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/utils/get-total-samples-count.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/utils/health-data-catalog.d.ts +30 -0
- package/lib/typescript/module/src/modules/data-sync/utils/health-data-catalog.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/data-sync/utils/health-units.d.ts +1 -1
- package/lib/typescript/module/src/modules/data-sync/utils/health-units.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/utils/healthkit-data-types.d.ts +11 -0
- package/lib/typescript/module/src/modules/data-sync/utils/healthkit-data-types.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/ui/components/calendar-grid.d.ts +23 -0
- package/lib/typescript/module/src/modules/ui/components/calendar-grid.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/ui/components/calendar.d.ts +32 -0
- package/lib/typescript/module/src/modules/ui/components/calendar.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/ui/components/period-calendar.d.ts +16 -0
- package/lib/typescript/module/src/modules/ui/components/period-calendar.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/ui/index.d.ts +2 -0
- package/lib/typescript/module/src/modules/ui/index.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/ui/utils/calendar-date.d.ts +9 -0
- package/lib/typescript/module/src/modules/ui/utils/calendar-date.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getHealthDataCoding = exports.HEALTH_DATA_CATALOG = void 0;
|
|
7
|
+
var _healthUnits = require("./health-units.js");
|
|
8
|
+
/* eslint-disable max-lines */
|
|
9
|
+
|
|
10
|
+
const HEALTH_CONNECT_PERMISSION_PREFIX = "android.permission.health.READ_";
|
|
11
|
+
const HEALTH_CONNECT_CODE_SYSTEM = "urn:ovok:health-connect:record-type";
|
|
12
|
+
const HEALTHKIT_CODE_SYSTEM = "urn:ovok:healthkit:sample-type";
|
|
13
|
+
const APPLE_HEALTH_IDENTIFIERS = {
|
|
14
|
+
height: "HKQuantityTypeIdentifierHeight",
|
|
15
|
+
bodyMass: "HKQuantityTypeIdentifierBodyMass",
|
|
16
|
+
bodyTemperature: "HKQuantityTypeIdentifierBodyTemperature",
|
|
17
|
+
systolicBloodPressure: "HKQuantityTypeIdentifierBloodPressureSystolic",
|
|
18
|
+
diastolicBloodPressure: "HKQuantityTypeIdentifierBloodPressureDiastolic",
|
|
19
|
+
heartRate: "HKQuantityTypeIdentifierHeartRate",
|
|
20
|
+
restingHeartRate: "HKQuantityTypeIdentifierRestingHeartRate",
|
|
21
|
+
heartRateVariabilitySDNN: "HKQuantityTypeIdentifierHeartRateVariabilitySDNN",
|
|
22
|
+
respiratoryRate: "HKQuantityTypeIdentifierRespiratoryRate",
|
|
23
|
+
stepCount: "HKQuantityTypeIdentifierStepCount"
|
|
24
|
+
};
|
|
25
|
+
const appleLoincMappings = {
|
|
26
|
+
[APPLE_HEALTH_IDENTIFIERS.height]: {
|
|
27
|
+
code: "8302-2",
|
|
28
|
+
display: "Body height",
|
|
29
|
+
sourceUrl: "https://loinc.org/8302-2",
|
|
30
|
+
modes: ["point"]
|
|
31
|
+
},
|
|
32
|
+
[APPLE_HEALTH_IDENTIFIERS.bodyMass]: {
|
|
33
|
+
code: "29463-7",
|
|
34
|
+
display: "Body weight",
|
|
35
|
+
sourceUrl: "https://loinc.org/29463-7",
|
|
36
|
+
modes: ["point"]
|
|
37
|
+
},
|
|
38
|
+
[APPLE_HEALTH_IDENTIFIERS.bodyTemperature]: {
|
|
39
|
+
code: "8310-5",
|
|
40
|
+
display: "Body temperature",
|
|
41
|
+
sourceUrl: "https://loinc.org/8310-5",
|
|
42
|
+
modes: ["point"]
|
|
43
|
+
},
|
|
44
|
+
[APPLE_HEALTH_IDENTIFIERS.systolicBloodPressure]: {
|
|
45
|
+
code: "8480-6",
|
|
46
|
+
display: "Systolic blood pressure",
|
|
47
|
+
sourceUrl: "https://loinc.org/8480-6",
|
|
48
|
+
modes: ["point"]
|
|
49
|
+
},
|
|
50
|
+
[APPLE_HEALTH_IDENTIFIERS.diastolicBloodPressure]: {
|
|
51
|
+
code: "8462-4",
|
|
52
|
+
display: "Diastolic blood pressure",
|
|
53
|
+
sourceUrl: "https://loinc.org/8462-4",
|
|
54
|
+
modes: ["point"]
|
|
55
|
+
},
|
|
56
|
+
[APPLE_HEALTH_IDENTIFIERS.heartRate]: {
|
|
57
|
+
code: "8867-4",
|
|
58
|
+
display: "Heart rate",
|
|
59
|
+
sourceUrl: "https://loinc.org/8867-4",
|
|
60
|
+
modes: ["point"]
|
|
61
|
+
},
|
|
62
|
+
[APPLE_HEALTH_IDENTIFIERS.restingHeartRate]: {
|
|
63
|
+
code: "40443-4",
|
|
64
|
+
display: "Heart rate --resting",
|
|
65
|
+
sourceUrl: "https://loinc.org/40443-4",
|
|
66
|
+
modes: ["point"]
|
|
67
|
+
},
|
|
68
|
+
[APPLE_HEALTH_IDENTIFIERS.heartRateVariabilitySDNN]: {
|
|
69
|
+
code: "112429-6",
|
|
70
|
+
display: "Heart rate variability SDNN [Time]",
|
|
71
|
+
sourceUrl: "https://loinc.org/112429-6",
|
|
72
|
+
modes: ["point"]
|
|
73
|
+
},
|
|
74
|
+
[APPLE_HEALTH_IDENTIFIERS.respiratoryRate]: {
|
|
75
|
+
code: "9279-1",
|
|
76
|
+
display: "Respiratory rate",
|
|
77
|
+
sourceUrl: "https://loinc.org/9279-1",
|
|
78
|
+
modes: ["point"]
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
// HKQuantityTypeIdentifier is type-only from the wrapper's shared native entry
|
|
83
|
+
// point. Keep the 8.7.2 identifiers here so the catalog is complete on Android,
|
|
84
|
+
// Jest, and other entry points where Object.values(enum) is empty.
|
|
85
|
+
const appleQuantityIdentifiers = ["HKQuantityTypeIdentifierBodyMassIndex", "HKQuantityTypeIdentifierBodyFatPercentage", "HKQuantityTypeIdentifierHeight", "HKQuantityTypeIdentifierBodyMass", "HKQuantityTypeIdentifierLeanBodyMass", "HKQuantityTypeIdentifierWaistCircumference", "HKQuantityTypeIdentifierStepCount", "HKQuantityTypeIdentifierDistanceWalkingRunning", "HKQuantityTypeIdentifierDistanceCycling", "HKQuantityTypeIdentifierDistanceWheelchair", "HKQuantityTypeIdentifierBasalEnergyBurned", "HKQuantityTypeIdentifierActiveEnergyBurned", "HKQuantityTypeIdentifierFlightsClimbed", "HKQuantityTypeIdentifierNikeFuel", "HKQuantityTypeIdentifierAppleExerciseTime", "HKQuantityTypeIdentifierPushCount", "HKQuantityTypeIdentifierDistanceSwimming", "HKQuantityTypeIdentifierSwimmingStrokeCount", "HKQuantityTypeIdentifierVO2Max", "HKQuantityTypeIdentifierDistanceDownhillSnowSports", "HKQuantityTypeIdentifierAppleStandTime", "HKQuantityTypeIdentifierHeartRate", "HKQuantityTypeIdentifierBodyTemperature", "HKQuantityTypeIdentifierBasalBodyTemperature", "HKQuantityTypeIdentifierBloodPressureSystolic", "HKQuantityTypeIdentifierBloodPressureDiastolic", "HKQuantityTypeIdentifierRespiratoryRate", "HKQuantityTypeIdentifierRestingHeartRate", "HKQuantityTypeIdentifierWalkingHeartRateAverage", "HKQuantityTypeIdentifierHeartRateVariabilitySDNN", "HKQuantityTypeIdentifierOxygenSaturation", "HKQuantityTypeIdentifierPeripheralPerfusionIndex", "HKQuantityTypeIdentifierBloodGlucose", "HKQuantityTypeIdentifierNumberOfTimesFallen", "HKQuantityTypeIdentifierElectrodermalActivity", "HKQuantityTypeIdentifierInhalerUsage", "HKQuantityTypeIdentifierInsulinDelivery", "HKQuantityTypeIdentifierBloodAlcoholContent", "HKQuantityTypeIdentifierForcedVitalCapacity", "HKQuantityTypeIdentifierForcedExpiratoryVolume1", "HKQuantityTypeIdentifierPeakExpiratoryFlowRate", "HKQuantityTypeIdentifierEnvironmentalAudioExposure", "HKQuantityTypeIdentifierHeadphoneAudioExposure", "HKQuantityTypeIdentifierDietaryFatTotal", "HKQuantityTypeIdentifierDietaryFatPolyunsaturated", "HKQuantityTypeIdentifierDietaryFatMonounsaturated", "HKQuantityTypeIdentifierDietaryFatSaturated", "HKQuantityTypeIdentifierDietaryCholesterol", "HKQuantityTypeIdentifierDietarySodium", "HKQuantityTypeIdentifierDietaryCarbohydrates", "HKQuantityTypeIdentifierDietaryFiber", "HKQuantityTypeIdentifierDietarySugar", "HKQuantityTypeIdentifierDietaryEnergyConsumed", "HKQuantityTypeIdentifierDietaryProtein", "HKQuantityTypeIdentifierDietaryVitaminA", "HKQuantityTypeIdentifierDietaryVitaminB6", "HKQuantityTypeIdentifierDietaryVitaminB12", "HKQuantityTypeIdentifierDietaryVitaminC", "HKQuantityTypeIdentifierDietaryVitaminD", "HKQuantityTypeIdentifierDietaryVitaminE", "HKQuantityTypeIdentifierDietaryVitaminK", "HKQuantityTypeIdentifierDietaryCalcium", "HKQuantityTypeIdentifierDietaryIron", "HKQuantityTypeIdentifierDietaryThiamin", "HKQuantityTypeIdentifierDietaryRiboflavin", "HKQuantityTypeIdentifierDietaryNiacin", "HKQuantityTypeIdentifierDietaryFolate", "HKQuantityTypeIdentifierDietaryBiotin", "HKQuantityTypeIdentifierDietaryPantothenicAcid", "HKQuantityTypeIdentifierDietaryPhosphorus", "HKQuantityTypeIdentifierDietaryIodine", "HKQuantityTypeIdentifierDietaryMagnesium", "HKQuantityTypeIdentifierDietaryZinc", "HKQuantityTypeIdentifierDietarySelenium", "HKQuantityTypeIdentifierDietaryCopper", "HKQuantityTypeIdentifierDietaryManganese", "HKQuantityTypeIdentifierDietaryChromium", "HKQuantityTypeIdentifierDietaryMolybdenum", "HKQuantityTypeIdentifierDietaryChloride", "HKQuantityTypeIdentifierDietaryPotassium", "HKQuantityTypeIdentifierDietaryCaffeine", "HKQuantityTypeIdentifierDietaryWater", "HKQuantityTypeIdentifierSixMinuteWalkTestDistance", "HKQuantityTypeIdentifierWalkingSpeed", "HKQuantityTypeIdentifierWalkingStepLength", "HKQuantityTypeIdentifierWalkingAsymmetryPercentage", "HKQuantityTypeIdentifierWalkingDoubleSupportPercentage", "HKQuantityTypeIdentifierStairAscentSpeed", "HKQuantityTypeIdentifierStairDescentSpeed", "HKQuantityTypeIdentifierUVExposure", "HKQuantityTypeIdentifierAppleMoveTime", "HKQuantityTypeIdentifierAppleWalkingSteadiness", "HKQuantityTypeIdentifierNumberOfAlcoholicBeverages", "HKQuantityTypeIdentifierAtrialFibrillationBurden", "HKQuantityTypeIdentifierUnderwaterDepth", "HKQuantityTypeIdentifierWaterTemperature", "HKQuantityTypeIdentifierAppleSleepingWristTemperature", "HKQuantityTypeIdentifierTimeInDaylight", "HKQuantityTypeIdentifierPhysicalEffort", "HKQuantityTypeIdentifierCyclingSpeed", "HKQuantityTypeIdentifierCyclingPower", "HKQuantityTypeIdentifierCyclingFunctionalThresholdPower", "HKQuantityTypeIdentifierCyclingCadence", "HKQuantityTypeIdentifierEnvironmentalSoundReduction", "HKQuantityTypeIdentifierHeartRateRecoveryOneMinute", "HKQuantityTypeIdentifierRunningGroundContactTime", "HKQuantityTypeIdentifierRunningStrideLength", "HKQuantityTypeIdentifierRunningPower", "HKQuantityTypeIdentifierRunningVerticalOscillation", "HKQuantityTypeIdentifierRunningSpeed", "HKQuantityTypeIdentifierCrossCountrySkiingSpeed", "HKQuantityTypeIdentifierDistanceCrossCountrySkiing", "HKQuantityTypeIdentifierDistancePaddleSports", "HKQuantityTypeIdentifierDistanceRowing", "HKQuantityTypeIdentifierDistanceSkatingSports", "HKQuantityTypeIdentifierEstimatedWorkoutEffortScore", "HKQuantityTypeIdentifierPaddleSportsSpeed", "HKQuantityTypeIdentifierRowingSpeed", "HKQuantityTypeIdentifierWorkoutEffortScore"];
|
|
86
|
+
|
|
87
|
+
// The HealthKit wrapper's native entry point does not export the category and
|
|
88
|
+
// correlation enums at runtime on every platform, so keep their identifiers as
|
|
89
|
+
// explicit catalog data instead of enumerating a platform-specific value.
|
|
90
|
+
const appleCategoryIdentifiers = ["HKCategoryTypeIdentifierSleepAnalysis", "HKCategoryTypeIdentifierAppleStandHour", "HKCategoryTypeIdentifierCervicalMucusQuality", "HKCategoryTypeIdentifierOvulationTestResult", "HKCategoryTypeIdentifierMenstrualFlow", "HKCategoryTypeIdentifierIntermenstrualBleeding", "HKCategoryTypeIdentifierSexualActivity", "HKCategoryTypeIdentifierMindfulSession", "HKCategoryTypeIdentifierHighHeartRateEvent", "HKCategoryTypeIdentifierLowHeartRateEvent", "HKCategoryTypeIdentifierIrregularHeartRhythmEvent", "HKCategoryTypeIdentifierAudioExposureEvent", "HKCategoryTypeIdentifierToothbrushingEvent", "HKCategoryTypeIdentifierLowCardioFitnessEvent", "HKCategoryTypeIdentifierContraceptive", "HKCategoryTypeIdentifierLactation", "HKCategoryTypeIdentifierPregnancy", "HKCategoryTypeIdentifierPregnancyTestResult", "HKCategoryTypeIdentifierProgesteroneTestResult", "HKCategoryTypeIdentifierEnvironmentalAudioExposureEvent", "HKCategoryTypeIdentifierHeadphoneAudioExposureEvent", "HKCategoryTypeIdentifierAppleWalkingSteadinessEvent", "HKCategoryTypeIdentifierHandwashingEvent", "HKCategoryTypeIdentifierAbdominalCramps", "HKCategoryTypeIdentifierAcne", "HKCategoryTypeIdentifierAppetiteChanges", "HKCategoryTypeIdentifierBladderIncontinence", "HKCategoryTypeIdentifierBloating", "HKCategoryTypeIdentifierBreastPain", "HKCategoryTypeIdentifierChestTightnessOrPain", "HKCategoryTypeIdentifierChills", "HKCategoryTypeIdentifierConstipation", "HKCategoryTypeIdentifierCoughing", "HKCategoryTypeIdentifierDiarrhea", "HKCategoryTypeIdentifierDizziness", "HKCategoryTypeIdentifierDrySkin", "HKCategoryTypeIdentifierFainting", "HKCategoryTypeIdentifierFatigue", "HKCategoryTypeIdentifierFever", "HKCategoryTypeIdentifierGeneralizedBodyAche", "HKCategoryTypeIdentifierHairLoss", "HKCategoryTypeIdentifierHeadache", "HKCategoryTypeIdentifierHeartburn", "HKCategoryTypeIdentifierHotFlashes", "HKCategoryTypeIdentifierLossOfSmell", "HKCategoryTypeIdentifierLossOfTaste", "HKCategoryTypeIdentifierLowerBackPain", "HKCategoryTypeIdentifierMemoryLapse", "HKCategoryTypeIdentifierMoodChanges", "HKCategoryTypeIdentifierNausea", "HKCategoryTypeIdentifierNightSweats", "HKCategoryTypeIdentifierPelvicPain", "HKCategoryTypeIdentifierRapidPoundingOrFlutteringHeartbeat", "HKCategoryTypeIdentifierRunnyNose", "HKCategoryTypeIdentifierShortnessOfBreath", "HKCategoryTypeIdentifierSinusCongestion", "HKCategoryTypeIdentifierSkippedHeartbeat", "HKCategoryTypeIdentifierSleepChanges", "HKCategoryTypeIdentifierSoreThroat", "HKCategoryTypeIdentifierVaginalDryness", "HKCategoryTypeIdentifierVomiting", "HKCategoryTypeIdentifierWheezing", "HKCategoryTypeIdentifierBleedingAfterPregnancy", "HKCategoryTypeIdentifierBleedingDuringPregnancy"];
|
|
91
|
+
const appleCorrelationIdentifiers = ["HKCorrelationTypeIdentifierBloodPressure", "HKCorrelationTypeIdentifierFood"];
|
|
92
|
+
const healthConnectLoincMappings = {
|
|
93
|
+
Height: appleLoincMappings[APPLE_HEALTH_IDENTIFIERS.height],
|
|
94
|
+
Weight: appleLoincMappings[APPLE_HEALTH_IDENTIFIERS.bodyMass],
|
|
95
|
+
HeartRate: appleLoincMappings[APPLE_HEALTH_IDENTIFIERS.heartRate],
|
|
96
|
+
RestingHeartRate: appleLoincMappings[APPLE_HEALTH_IDENTIFIERS.restingHeartRate],
|
|
97
|
+
RespiratoryRate: appleLoincMappings[APPLE_HEALTH_IDENTIFIERS.respiratoryRate],
|
|
98
|
+
BodyWaterMass: {
|
|
99
|
+
code: "101683-1",
|
|
100
|
+
display: "Body water mass",
|
|
101
|
+
sourceUrl: "https://loinc.org/101683-1",
|
|
102
|
+
modes: ["point"]
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
const appleSupportedSamples = [...appleQuantityIdentifiers.map(identifier => ({
|
|
106
|
+
provider: "apple-health",
|
|
107
|
+
identifier,
|
|
108
|
+
category: "quantity",
|
|
109
|
+
shape: "sample",
|
|
110
|
+
readPermission: identifier,
|
|
111
|
+
readStrategy: "Anchored HealthKit quantity query",
|
|
112
|
+
fhirResource: "Observation",
|
|
113
|
+
sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
|
|
114
|
+
unit: (0, _healthUnits.healthUnitFor)(identifier) ?? "HealthKit preferred unit",
|
|
115
|
+
loincMapping: appleLoincMappings[identifier]
|
|
116
|
+
})), ...appleCategoryIdentifiers.map(identifier => ({
|
|
117
|
+
provider: "apple-health",
|
|
118
|
+
identifier,
|
|
119
|
+
category: "category",
|
|
120
|
+
shape: "interval",
|
|
121
|
+
readPermission: identifier,
|
|
122
|
+
readStrategy: "Anchored HealthKit category query",
|
|
123
|
+
fhirResource: "Observation",
|
|
124
|
+
sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
|
|
125
|
+
unit: "not applicable"
|
|
126
|
+
})), ...appleCorrelationIdentifiers.map(identifier => ({
|
|
127
|
+
provider: "apple-health",
|
|
128
|
+
identifier,
|
|
129
|
+
category: "correlation",
|
|
130
|
+
shape: "sample",
|
|
131
|
+
readPermission: identifier,
|
|
132
|
+
readStrategy: "Non-anchored HealthKit date-window query",
|
|
133
|
+
fhirResource: "Observation",
|
|
134
|
+
sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
|
|
135
|
+
unit: "record-specific",
|
|
136
|
+
limitation: "This wrapper does not expose a correlation anchor or deleted-sample cursor."
|
|
137
|
+
})), {
|
|
138
|
+
provider: "apple-health",
|
|
139
|
+
identifier: "HKWorkoutTypeIdentifier",
|
|
140
|
+
category: "workout",
|
|
141
|
+
shape: "interval",
|
|
142
|
+
readPermission: "HKWorkoutTypeIdentifier",
|
|
143
|
+
readStrategy: "Anchored HealthKit workout query",
|
|
144
|
+
fhirResource: "Observation",
|
|
145
|
+
sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
|
|
146
|
+
unit: "record-specific"
|
|
147
|
+
}, {
|
|
148
|
+
provider: "apple-health",
|
|
149
|
+
identifier: "HKDataTypeIdentifierHeartbeatSeries",
|
|
150
|
+
category: "series",
|
|
151
|
+
shape: "series",
|
|
152
|
+
readPermission: "HKDataTypeIdentifierHeartbeatSeries",
|
|
153
|
+
readStrategy: "Anchored HealthKit heartbeat-series query",
|
|
154
|
+
fhirResource: "Observation",
|
|
155
|
+
sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
|
|
156
|
+
unit: "count/min"
|
|
157
|
+
}, {
|
|
158
|
+
provider: "apple-health",
|
|
159
|
+
identifier: "HKStateOfMindTypeIdentifier",
|
|
160
|
+
category: "state of mind",
|
|
161
|
+
shape: "sample",
|
|
162
|
+
readPermission: "HKStateOfMindTypeIdentifier",
|
|
163
|
+
readStrategy: "Non-anchored HealthKit date-window query",
|
|
164
|
+
fhirResource: "Observation",
|
|
165
|
+
sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
|
|
166
|
+
unit: "not applicable",
|
|
167
|
+
limitation: "Requires iOS 18 or later; this wrapper does not expose an anchor or deleted-sample cursor."
|
|
168
|
+
}];
|
|
169
|
+
const appleExcludedTypes = [{
|
|
170
|
+
provider: "apple-health",
|
|
171
|
+
identifier: "HKElectrocardiogramType",
|
|
172
|
+
category: "electrocardiogram",
|
|
173
|
+
shape: "series",
|
|
174
|
+
readPermission: "HKObjectType.electrocardiogramType()",
|
|
175
|
+
readStrategy: "not exposed by the pinned wrapper",
|
|
176
|
+
fhirResource: "Observation",
|
|
177
|
+
sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
|
|
178
|
+
unit: "ECG samples",
|
|
179
|
+
limitation: "HealthKit exposes read-only ECG samples, but the pinned wrapper does not expose an ECG query or voltage-series serializer."
|
|
180
|
+
}, ...["AllergyRecord", "ClinicalNoteRecord", "ConditionRecord", "ImmunizationRecord", "LabResultRecord", "MedicationRecord", "ProcedureRecord", "VitalSignRecord", "CoverageRecord"].map(type => ({
|
|
181
|
+
provider: "apple-health",
|
|
182
|
+
identifier: `HKClinicalTypeIdentifier${type}`,
|
|
183
|
+
category: "clinical record",
|
|
184
|
+
shape: "sample",
|
|
185
|
+
readPermission: `HKObjectType.clinicalType(forIdentifier: .${type[0]?.toLowerCase()}${type.slice(1)})`,
|
|
186
|
+
readStrategy: "not exposed by the pinned wrapper",
|
|
187
|
+
fhirResource: "FHIR resource",
|
|
188
|
+
sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
|
|
189
|
+
unit: "FHIR JSON",
|
|
190
|
+
limitation: "HealthKit clinical records contain source FHIR resources and require per-type authorization; the pinned wrapper exposes neither the query nor FHIR-resource serializer."
|
|
191
|
+
})), {
|
|
192
|
+
provider: "apple-health",
|
|
193
|
+
identifier: "HKDocumentTypeIdentifierCDA",
|
|
194
|
+
category: "clinical document",
|
|
195
|
+
shape: "sample",
|
|
196
|
+
readPermission: "HKObjectType.documentType(forIdentifier: .CDA)",
|
|
197
|
+
readStrategy: "not exposed by the pinned wrapper",
|
|
198
|
+
fhirResource: "FHIR resource",
|
|
199
|
+
sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
|
|
200
|
+
unit: "CDA document",
|
|
201
|
+
limitation: "The pinned wrapper does not expose HealthKit document queries or a CDA document importer."
|
|
202
|
+
}, {
|
|
203
|
+
provider: "apple-health",
|
|
204
|
+
identifier: "HKVisionPrescriptionTypeIdentifier",
|
|
205
|
+
category: "vision prescription",
|
|
206
|
+
shape: "sample",
|
|
207
|
+
readPermission: "HKObjectType.visionPrescriptionType()",
|
|
208
|
+
readStrategy: "not exposed by the pinned wrapper",
|
|
209
|
+
fhirResource: "Observation",
|
|
210
|
+
sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
|
|
211
|
+
unit: "prescription-specific",
|
|
212
|
+
limitation: "The pinned wrapper does not expose HealthKit vision-prescription queries or a prescription serializer."
|
|
213
|
+
}, {
|
|
214
|
+
provider: "apple-health",
|
|
215
|
+
identifier: "HKActivitySummaryTypeIdentifier",
|
|
216
|
+
category: "activity summary",
|
|
217
|
+
shape: "sample",
|
|
218
|
+
readPermission: "HKActivitySummaryTypeIdentifier",
|
|
219
|
+
readStrategy: "not exposed by the pinned wrapper",
|
|
220
|
+
fhirResource: "Observation",
|
|
221
|
+
sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
|
|
222
|
+
unit: "record-specific",
|
|
223
|
+
limitation: "The pinned wrapper does not expose an activity-summary query."
|
|
224
|
+
}, {
|
|
225
|
+
provider: "apple-health",
|
|
226
|
+
identifier: "HKAudiogramSampleType",
|
|
227
|
+
category: "audiogram",
|
|
228
|
+
shape: "sample",
|
|
229
|
+
readPermission: "HKAudiogramSampleType",
|
|
230
|
+
readStrategy: "not exposed by the pinned wrapper",
|
|
231
|
+
fhirResource: "Observation",
|
|
232
|
+
sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
|
|
233
|
+
unit: "record-specific",
|
|
234
|
+
limitation: "The pinned wrapper does not expose an audiogram query or serializer."
|
|
235
|
+
}, {
|
|
236
|
+
provider: "apple-health",
|
|
237
|
+
identifier: "HKWorkoutRouteTypeIdentifier",
|
|
238
|
+
category: "workout route",
|
|
239
|
+
shape: "series",
|
|
240
|
+
readPermission: "HKWorkoutRouteTypeIdentifier",
|
|
241
|
+
readStrategy: "getWorkoutRoutes(workoutUUID)",
|
|
242
|
+
fhirResource: "Observation",
|
|
243
|
+
sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
|
|
244
|
+
unit: "geographic coordinates",
|
|
245
|
+
limitation: "The wrapper requires a known workout UUID and the route is not a pageable sample query; routes are excluded from automatic import."
|
|
246
|
+
}];
|
|
247
|
+
const appleCharacteristics = [["HKCharacteristicTypeIdentifierBiologicalSex", "getBiologicalSex"], ["HKCharacteristicTypeIdentifierBloodType", "getBloodType"], ["HKCharacteristicTypeIdentifierDateOfBirth", "getDateOfBirth"], ["HKCharacteristicTypeIdentifierFitzpatrickSkinType", "getFitzpatrickSkinType"], ["HKCharacteristicTypeIdentifierWheelchairUse", "getWheelchairUse"], ["HKCharacteristicTypeIdentifierActivityMoveMode", "not exposed by the pinned wrapper"]].map(([identifier, readStrategy]) => ({
|
|
248
|
+
provider: "apple-health",
|
|
249
|
+
identifier,
|
|
250
|
+
category: "characteristic",
|
|
251
|
+
shape: "characteristic",
|
|
252
|
+
readPermission: identifier,
|
|
253
|
+
readStrategy,
|
|
254
|
+
fhirResource: "Patient",
|
|
255
|
+
sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
|
|
256
|
+
unit: "not applicable",
|
|
257
|
+
limitation: "Characteristics are not HKSampleType values and are not accepted by dataToSync; they need a separate Patient mapping."
|
|
258
|
+
}));
|
|
259
|
+
const healthConnectRecords = [["ActiveCaloriesBurned", "Activity", "interval", "ACTIVE_CALORIES_BURNED", "kcal"], ["BasalBodyTemperature", "Cycle Tracking", "instantaneous", "BASAL_BODY_TEMPERATURE", "native temperature unit"], ["BasalMetabolicRate", "Body Measurement", "instantaneous", "BASAL_METABOLIC_RATE", "native power unit"], ["BloodGlucose", "Vitals", "instantaneous", "BLOOD_GLUCOSE", "native glucose unit"], ["BloodPressure", "Vitals", "instantaneous", "BLOOD_PRESSURE", "mm[Hg]"], ["BodyFat", "Body Measurement", "instantaneous", "BODY_FAT", "%"], ["BodyTemperature", "Vitals", "instantaneous", "BODY_TEMPERATURE", "native temperature unit"], ["BodyWaterMass", "Body Measurement", "instantaneous", "BODY_WATER_MASS", "kg"], ["BoneMass", "Body Measurement", "instantaneous", "BONE_MASS", "kg"], ["CervicalMucus", "Cycle Tracking", "instantaneous", "CERVICAL_MUCUS", "not applicable"], ["CyclingPedalingCadence", "Activity", "series", "EXERCISE", "rpm"], ["ElevationGained", "Activity", "interval", "ELEVATION_GAINED", "m"], ["ExerciseSession", "Activity", "interval", "EXERCISE", "record-specific"], ["FloorsClimbed", "Activity", "interval", "FLOORS_CLIMBED", "count"], ["HeartRate", "Vitals", "series", "HEART_RATE", "count/min"], ["RestingHeartRate", "Vitals", "instantaneous", "RESTING_HEART_RATE", "count/min"], ["Steps", "Activity", "interval", "STEPS", "count"], ["StepsCadence", "Activity", "series", "STEPS", "steps/min"], ["Distance", "Activity", "interval", "DISTANCE", "m"], ["Height", "Body Measurement", "instantaneous", "HEIGHT", "m"], ["Hydration", "Nutrition", "interval", "HYDRATION", "L"], ["HeartRateVariabilityRmssd", "Vitals", "instantaneous", "HEART_RATE_VARIABILITY", "ms"], ["SexualActivity", "Cycle Tracking", "instantaneous", "SEXUAL_ACTIVITY", "not applicable"], ["Weight", "Body Measurement", "instantaneous", "WEIGHT", "kg"], ["Nutrition", "Nutrition", "interval", "NUTRITION", "record-specific"], ["LeanBodyMass", "Body Measurement", "instantaneous", "LEAN_BODY_MASS", "kg"], ["IntermenstrualBleeding", "Cycle Tracking", "instantaneous", "INTERMENSTRUAL_BLEEDING", "not applicable"], ["Speed", "Activity", "series", "SPEED", "m/s"], ["MenstruationFlow", "Cycle Tracking", "instantaneous", "MENSTRUATION", "not applicable"], ["MenstruationPeriod", "Cycle Tracking", "interval", "MENSTRUATION", "not applicable"], ["SleepSession", "Sleep", "interval", "SLEEP", "min"], ["RespiratoryRate", "Vitals", "instantaneous", "RESPIRATORY_RATE", "count/min"], ["WheelchairPushes", "Activity", "interval", "WHEELCHAIR_PUSHES", "count"], ["Vo2Max", "Activity", "instantaneous", "VO2_MAX", "mL/kg/min"], ["OvulationTest", "Cycle Tracking", "instantaneous", "OVULATION_TEST", "not applicable"], ["TotalCaloriesBurned", "Activity", "interval", "TOTAL_CALORIES_BURNED", "kcal"], ["OxygenSaturation", "Vitals", "instantaneous", "OXYGEN_SATURATION", "%"], ["Power", "Activity", "series", "POWER", "W"]];
|
|
260
|
+
const readPermissionOverrides = {
|
|
261
|
+
CyclingPedalingCadence: "EXERCISE",
|
|
262
|
+
ExerciseSession: "EXERCISE",
|
|
263
|
+
HeartRateVariabilityRmssd: "HEART_RATE_VARIABILITY",
|
|
264
|
+
MenstruationFlow: "MENSTRUATION",
|
|
265
|
+
MenstruationPeriod: "MENSTRUATION",
|
|
266
|
+
StepsCadence: "STEPS"
|
|
267
|
+
};
|
|
268
|
+
const healthConnectCatalog = healthConnectRecords.map(([identifier, category, shape, permission, unit]) => ({
|
|
269
|
+
provider: "health-connect",
|
|
270
|
+
identifier,
|
|
271
|
+
category,
|
|
272
|
+
shape,
|
|
273
|
+
readPermission: `${HEALTH_CONNECT_PERMISSION_PREFIX}${readPermissionOverrides[identifier] ?? permission}`,
|
|
274
|
+
readStrategy: "readRecords pages followed by the Health Connect changes feed",
|
|
275
|
+
fhirResource: "Observation",
|
|
276
|
+
sourceCodeSystem: HEALTH_CONNECT_CODE_SYSTEM,
|
|
277
|
+
unit,
|
|
278
|
+
loincMapping: healthConnectLoincMappings[identifier]
|
|
279
|
+
}));
|
|
280
|
+
const healthConnectSpecialTypes = [{
|
|
281
|
+
provider: "health-connect",
|
|
282
|
+
identifier: "ExerciseRoute",
|
|
283
|
+
category: "route",
|
|
284
|
+
shape: "series",
|
|
285
|
+
readPermission: "per-session Health Connect consent dialog",
|
|
286
|
+
readStrategy: "ExerciseSessionRecord.exerciseRoute / requestExerciseRoute(recordId)",
|
|
287
|
+
fhirResource: "Observation",
|
|
288
|
+
sourceCodeSystem: HEALTH_CONNECT_CODE_SYSTEM,
|
|
289
|
+
unit: "geographic coordinates",
|
|
290
|
+
limitation: "Routes are returned with exercise sessions only when the user grants per-session route access; the SDK does not expose a standalone route selector or requestExerciseRoute flow."
|
|
291
|
+
}];
|
|
292
|
+
const catalogEntries = [...appleSupportedSamples, ...appleExcludedTypes, ...appleCharacteristics, ...healthConnectCatalog, ...healthConnectSpecialTypes];
|
|
293
|
+
const getLoincLimitation = entry => {
|
|
294
|
+
if (entry.provider === "apple-health" && entry.identifier === "HKQuantityTypeIdentifierBodyFatPercentage" || entry.provider === "health-connect" && entry.identifier === "BodyFat") {
|
|
295
|
+
return "Not mapped: LOINC 41982-0 specifies the Measured method, but neither platform record type establishes how the body-fat percentage was derived.";
|
|
296
|
+
}
|
|
297
|
+
if (entry.identifier === APPLE_HEALTH_IDENTIFIERS.stepCount || entry.provider === "health-connect" && entry.identifier === "Steps") {
|
|
298
|
+
return "Not mapped: the default daily-total result is a local-calendar-day count, while LOINC 41950-7 is a 24-hour count rate with UCUM unit {#}/(24.h). The local day can be shorter or longer at daylight-saving transitions; individual source intervals are not asserted to be a 24-hour rate either.";
|
|
299
|
+
}
|
|
300
|
+
if (entry.provider === "health-connect" && entry.identifier === "BloodPressure") {
|
|
301
|
+
return "Not mapped: this is a composite systolic/diastolic record. The importer must emit the paired component Observations (or a correctly coded panel) instead of attaching one code to the serialized record.";
|
|
302
|
+
}
|
|
303
|
+
if (entry.provider === "health-connect" && entry.identifier === "HeartRateVariabilityRmssd") {
|
|
304
|
+
return "Not mapped: this source is RMSSD; it must not be coded as the distinct SDNN measure (LOINC 112429-6).";
|
|
305
|
+
}
|
|
306
|
+
if (entry.provider === "health-connect" && entry.identifier === "BodyTemperature") {
|
|
307
|
+
return "Not mapped: Health Connect exposes temperature as a structured value and includes a measurement location. The generic Observation converter does not yet normalize that value to a numeric UCUM quantity or preserve the location in bodySite.";
|
|
308
|
+
}
|
|
309
|
+
if (entry.provider === "health-connect" && entry.identifier === "SleepSession") {
|
|
310
|
+
return "Not mapped: the current session value is elapsed session duration, not total time asleep; sleep stages can include awake intervals.";
|
|
311
|
+
}
|
|
312
|
+
if (entry.provider === "health-connect" && entry.identifier === "BasalMetabolicRate") {
|
|
313
|
+
return "Not mapped: the source value is power (W), while the matching LOINC candidate is a basal metabolic rate index; these representations are not interchangeable.";
|
|
314
|
+
}
|
|
315
|
+
if (entry.provider === "apple-health" && entry.identifier === "HKQuantityTypeIdentifierBodyMassIndex") {
|
|
316
|
+
return "Not mapped: the HealthKit quantity is dimensionless, while LOINC 39156-5 expects a body-mass-index ratio represented with kg/m2. The importer does not normalize this unit.";
|
|
317
|
+
}
|
|
318
|
+
if (entry.identifier === "BloodGlucose" || entry.identifier === "HKQuantityTypeIdentifierBloodGlucose") {
|
|
319
|
+
return "Not mapped: the platform type alone does not guarantee a compatible specimen, method, and unit combination for one LOINC glucose term.";
|
|
320
|
+
}
|
|
321
|
+
if (entry.category === "characteristic") {
|
|
322
|
+
return "This is a Patient characteristic, not a dated Observation; no Observation LOINC mapping is asserted.";
|
|
323
|
+
}
|
|
324
|
+
if (entry.category === "correlation") {
|
|
325
|
+
return "This is a composite correlation; a single LOINC code could misrepresent its component observations.";
|
|
326
|
+
}
|
|
327
|
+
if (entry.shape === "series") {
|
|
328
|
+
return "This time series needs a clinically reviewed panel or series mapping before a LOINC code can be assigned.";
|
|
329
|
+
}
|
|
330
|
+
if (entry.shape === "sample" && entry.unit === "record-specific") {
|
|
331
|
+
return "This structured sample needs its component/value semantics reviewed before a LOINC code can be assigned.";
|
|
332
|
+
}
|
|
333
|
+
return "No audited LOINC mapping is assigned for this identifier yet; this is not a claim that no valid LOINC term exists. The platform code is retained without asserting LOINC.";
|
|
334
|
+
};
|
|
335
|
+
const HEALTH_DATA_CATALOG = exports.HEALTH_DATA_CATALOG = catalogEntries.map(entry => {
|
|
336
|
+
if (!entry.loincMapping) {
|
|
337
|
+
return {
|
|
338
|
+
...entry,
|
|
339
|
+
loincLimitation: getLoincLimitation(entry)
|
|
340
|
+
};
|
|
341
|
+
}
|
|
342
|
+
return entry.loincMapping.modes.length < 4 ? {
|
|
343
|
+
...entry,
|
|
344
|
+
loincLimitation: `The reviewed mapping applies only to ${entry.loincMapping.modes.join(", ")} mode; other representations retain the platform code.`
|
|
345
|
+
} : entry;
|
|
346
|
+
});
|
|
347
|
+
const getHealthDataCoding = (provider, identifier, mode) => {
|
|
348
|
+
const catalogProvider = provider === "apple-health" ? "apple-health" : "health-connect";
|
|
349
|
+
const entry = HEALTH_DATA_CATALOG.find(candidate => candidate.provider === catalogProvider && candidate.identifier === identifier);
|
|
350
|
+
const mapping = entry?.loincMapping;
|
|
351
|
+
if (mapping?.modes.includes(mode)) {
|
|
352
|
+
return {
|
|
353
|
+
code: mapping.code,
|
|
354
|
+
system: "http://loinc.org",
|
|
355
|
+
display: mapping.display
|
|
356
|
+
};
|
|
357
|
+
}
|
|
358
|
+
return {
|
|
359
|
+
code: identifier,
|
|
360
|
+
system: entry?.sourceCodeSystem ?? (catalogProvider === "apple-health" ? HEALTHKIT_CODE_SYSTEM : HEALTH_CONNECT_CODE_SYSTEM)
|
|
361
|
+
};
|
|
362
|
+
};
|
|
363
|
+
exports.getHealthDataCoding = getHealthDataCoding;
|
|
364
|
+
//# sourceMappingURL=health-data-catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_healthUnits","require","HEALTH_CONNECT_PERMISSION_PREFIX","HEALTH_CONNECT_CODE_SYSTEM","HEALTHKIT_CODE_SYSTEM","APPLE_HEALTH_IDENTIFIERS","height","bodyMass","bodyTemperature","systolicBloodPressure","diastolicBloodPressure","heartRate","restingHeartRate","heartRateVariabilitySDNN","respiratoryRate","stepCount","appleLoincMappings","code","display","sourceUrl","modes","appleQuantityIdentifiers","appleCategoryIdentifiers","appleCorrelationIdentifiers","healthConnectLoincMappings","Height","Weight","HeartRate","RestingHeartRate","RespiratoryRate","BodyWaterMass","appleSupportedSamples","map","identifier","provider","category","shape","readPermission","readStrategy","fhirResource","sourceCodeSystem","unit","healthUnitFor","loincMapping","limitation","appleExcludedTypes","type","toLowerCase","slice","appleCharacteristics","healthConnectRecords","readPermissionOverrides","CyclingPedalingCadence","ExerciseSession","HeartRateVariabilityRmssd","MenstruationFlow","MenstruationPeriod","StepsCadence","healthConnectCatalog","permission","healthConnectSpecialTypes","catalogEntries","getLoincLimitation","entry","HEALTH_DATA_CATALOG","exports","loincLimitation","length","join","getHealthDataCoding","mode","catalogProvider","find","candidate","mapping","includes","system"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/health-data-catalog.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,18 +4,20 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.healthUnitFor = void 0;
|
|
7
|
-
var _reactNativeHealthkit = require("@kingstinct/react-native-healthkit");
|
|
8
7
|
const HEALTH_UNITS = {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
8
|
+
HKQuantityTypeIdentifierBodyMass: "kg",
|
|
9
|
+
HKQuantityTypeIdentifierBodyFatPercentage: "%",
|
|
10
|
+
HKQuantityTypeIdentifierBodyTemperature: "degC",
|
|
11
|
+
HKQuantityTypeIdentifierBasalBodyTemperature: "degC",
|
|
12
|
+
HKQuantityTypeIdentifierBloodPressureSystolic: "mmHg",
|
|
13
|
+
HKQuantityTypeIdentifierBloodPressureDiastolic: "mmHg",
|
|
14
|
+
HKQuantityTypeIdentifierBloodGlucose: "mg/dL",
|
|
15
|
+
HKQuantityTypeIdentifierOxygenSaturation: "%",
|
|
16
|
+
HKQuantityTypeIdentifierHeartRate: "count/min",
|
|
17
|
+
HKQuantityTypeIdentifierHeartRateVariabilitySDNN: "ms",
|
|
18
|
+
HKQuantityTypeIdentifierRestingHeartRate: "count/min",
|
|
19
|
+
HKQuantityTypeIdentifierRespiratoryRate: "count/min",
|
|
20
|
+
HKQuantityTypeIdentifierWalkingHeartRateAverage: "count/min"
|
|
19
21
|
};
|
|
20
22
|
const healthUnitFor = typeIdentifier => HEALTH_UNITS[typeIdentifier];
|
|
21
23
|
exports.healthUnitFor = healthUnitFor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["HEALTH_UNITS","HKQuantityTypeIdentifierBodyMass","HKQuantityTypeIdentifierBodyFatPercentage","HKQuantityTypeIdentifierBodyTemperature","HKQuantityTypeIdentifierBasalBodyTemperature","HKQuantityTypeIdentifierBloodPressureSystolic","HKQuantityTypeIdentifierBloodPressureDiastolic","HKQuantityTypeIdentifierBloodGlucose","HKQuantityTypeIdentifierOxygenSaturation","HKQuantityTypeIdentifierHeartRate","HKQuantityTypeIdentifierHeartRateVariabilitySDNN","HKQuantityTypeIdentifierRestingHeartRate","HKQuantityTypeIdentifierRespiratoryRate","HKQuantityTypeIdentifierWalkingHeartRateAverage","healthUnitFor","typeIdentifier","exports"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/health-units.ts"],"mappings":";;;;;;AAKA,MAAMA,YAA8C,GAAG;EACrDC,gCAAgC,EAAE,IAAI;EACtCC,yCAAyC,EAAE,GAAG;EAC9CC,uCAAuC,EAAE,MAAM;EAC/CC,4CAA4C,EAAE,MAAM;EACpDC,6CAA6C,EAAE,MAAM;EACrDC,8CAA8C,EAAE,MAAM;EACtDC,oCAAoC,EAAE,OAAO;EAC7CC,wCAAwC,EAAE,GAAG;EAC7CC,iCAAiC,EAAE,WAAW;EAC9CC,gDAAgD,EAAE,IAAI;EACtDC,wCAAwC,EAAE,WAAW;EACrDC,uCAAuC,EAAE,WAAW;EACpDC,+CAA+C,EAAE;AACnD,CAAC;AAEM,MAAMC,aAAa,GACxBC,cAAiB,IAEjBf,YAAY,CAACe,cAAc,CAAqC;AAACC,OAAA,CAAAF,aAAA,GAAAA,aAAA","ignoreList":[]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.unsupportedHealthKitTypeReason = exports.isQuantityIdentifier = exports.isCorrelationIdentifier = exports.isCategoryIdentifier = exports.UnsupportedHealthKitDataError = void 0;
|
|
7
|
+
const isCategoryIdentifier = typeIdentifier => typeof typeIdentifier === "string" && typeIdentifier.startsWith("HKCategoryTypeIdentifier");
|
|
8
|
+
exports.isCategoryIdentifier = isCategoryIdentifier;
|
|
9
|
+
const isQuantityIdentifier = typeIdentifier => typeof typeIdentifier === "string" && typeIdentifier.startsWith("HKQuantityTypeIdentifier");
|
|
10
|
+
exports.isQuantityIdentifier = isQuantityIdentifier;
|
|
11
|
+
const isCorrelationIdentifier = typeIdentifier => typeof typeIdentifier === "string" && typeIdentifier.startsWith("HKCorrelationTypeIdentifier");
|
|
12
|
+
exports.isCorrelationIdentifier = isCorrelationIdentifier;
|
|
13
|
+
const unsupportedHealthKitTypeReason = typeIdentifier => {
|
|
14
|
+
switch (typeIdentifier) {
|
|
15
|
+
case "HKActivitySummaryTypeIdentifier":
|
|
16
|
+
return "The pinned HealthKit wrapper does not expose an activity-summary query.";
|
|
17
|
+
case "HKAudiogramSampleType":
|
|
18
|
+
return "The pinned HealthKit wrapper does not expose an audiogram query/serializer.";
|
|
19
|
+
case "HKWorkoutRouteTypeIdentifier":
|
|
20
|
+
return "The wrapper can read routes only when given a workout UUID; it does not expose a route sample query.";
|
|
21
|
+
default:
|
|
22
|
+
return "The pinned HealthKit wrapper does not expose a compatible read query for this type.";
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
exports.unsupportedHealthKitTypeReason = unsupportedHealthKitTypeReason;
|
|
26
|
+
class UnsupportedHealthKitDataError extends Error {
|
|
27
|
+
constructor(typeIdentifier, reason) {
|
|
28
|
+
super(`Cannot import ${typeIdentifier}: ${reason}`);
|
|
29
|
+
this.typeIdentifier = typeIdentifier;
|
|
30
|
+
this.name = "UnsupportedHealthKitDataError";
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.UnsupportedHealthKitDataError = UnsupportedHealthKitDataError;
|
|
34
|
+
//# sourceMappingURL=healthkit-data-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isCategoryIdentifier","typeIdentifier","startsWith","exports","isQuantityIdentifier","isCorrelationIdentifier","unsupportedHealthKitTypeReason","UnsupportedHealthKitDataError","Error","constructor","reason","name"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/healthkit-data-types.ts"],"mappings":";;;;;;AAOA,MAAMA,oBAAoB,GACxBC,cAAsC,IAEtC,OAAOA,cAAc,KAAK,QAAQ,IAClCA,cAAc,CAACC,UAAU,CAAC,0BAA0B,CAAC;AAACC,OAAA,CAAAH,oBAAA,GAAAA,oBAAA;AAExD,MAAMI,oBAAoB,GACxBH,cAAsC,IAEtC,OAAOA,cAAc,KAAK,QAAQ,IAClCA,cAAc,CAACC,UAAU,CAAC,0BAA0B,CAAC;AAACC,OAAA,CAAAC,oBAAA,GAAAA,oBAAA;AAExD,MAAMC,uBAAuB,GAC3BJ,cAAsC,IAEtC,OAAOA,cAAc,KAAK,QAAQ,IAClCA,cAAc,CAACC,UAAU,CAAC,6BAA6B,CAAC;AAACC,OAAA,CAAAE,uBAAA,GAAAA,uBAAA;AAE3D,MAAMC,8BAA8B,GAClCL,cAAsC,IAC3B;EACX,QAAQA,cAAc;IACpB,KAAK,iCAAiC;MACpC,OAAO,yEAAyE;IAClF,KAAK,uBAAuB;MAC1B,OAAO,6EAA6E;IACtF,KAAK,8BAA8B;MACjC,OAAO,sGAAsG;IAC/G;MACE,OAAO,qFAAqF;EAChG;AACF,CAAC;AAACE,OAAA,CAAAG,8BAAA,GAAAA,8BAAA;AAEF,MAAMC,6BAA6B,SAASC,KAAK,CAAC;EAChDC,WAAWA,CACAR,cAAsB,EAC/BS,MAAc,EACd;IACA,KAAK,CAAC,iBAAiBT,cAAc,KAAKS,MAAM,EAAE,CAAC;IAAC,KAH3CT,cAAsB,GAAtBA,cAAsB;IAI/B,IAAI,CAACU,IAAI,GAAG,+BAA+B;EAC7C;AACF;AAACR,OAAA,CAAAI,6BAAA,GAAAA,6BAAA","ignoreList":[]}
|