ConfidenceApp

   

Overview

ConfidenceApp integration project aims to integrate all data available from Confidence CGM App to RDCP Platform using IPP for data ingestion and consumption process.

Confidence need all the data points integrated to provide a benefit for the patient in using all the other solutions offered and connected with IPP. Furthermore to improve our algorithm and product in future iterations.

There are three main blocks of this integration depending on the platform services as follows:

  1. Roche Diabetes id & Consent management services: related to the user registration, authentication and consent management offered by the CIAM/CM team
  2. Health Data Hub services: related to the storage of the Health Data and the operations needed to ingest, access and edit data offered by the FHIR Stack team
  3. Other services to be identified: like backup services for mobile apps, product reporting (if needed) or requirements related to complaint handling.

Requirements

SCOPE of FHIRSTACK:

ConfidenceApp doesn't have its own backend to store all the data from the app. The main objective for FHIRSTACK is to enable FHIRServer to be able serve as backend for ConfidenceApp.

Confidence has a feature to allow users to edit and delete specific data group entries from ConfidenceApp. So FHIRSTACK shall support edit, delete actions available for BG, Carbs and Insulin group related data points. To achieve the primary objective that FHIRServer as backend for confidence, FHIRSTACK team shall expose synchronous Restful FHIR API for Confidence App to use for data ingestion and consumption. FHIRSTACK has existing mechanism to send the data to datalake which can be supported for only bundle type related integration. So FHIR API is synchronous which means confidence will share the data as soon as it created in the CGM app. In order to send the data to datalake, FHIRSTACK shall implement new mechanism to support to send individual resources to DataLake for analytics purposes Synchronous RESTful FHIR API consider the data ingestion and consumption with in specified timeframe so it shall support defined NFRs with respect to Performance.

Confidence shares data in the reduced FHIR format with minimum information and the FHIR Facade on FHIRSTACK expands these resources further before storing and sending to DataLake. When Confidence requests a restore, the facade sends back the reduced FHIR format to Confidence.

Data Points

Note: If all the columns of the table are not visible, please reduce the zoom % of the browser

Data Point Description Remarks (Editable) FHIR Resource & Element FHIR Sample
BG -> Timestamp timestamp of an entry in the App diary, connected to a manual entry true/false
(editable false if used for calibration, otherwise true)
Observation.effectiveDateTime Sample
BG -> Blood Glucose Value a manual entry of BG taken from Roche or 3rd party meter which is used for documentation of therapy true Observation.valueQuantity Sample
BG -> Notes a notes field where a patient can store additional information along with the entry for BG true Observation.comment Sample
CARB -> Timestamp timestamp of an entry in the App diary, connected to a manual entry true Observation.effectiveDateTime Sample
CARB -> Carbs Value a manual entry of carbs for food, estimated by the patient when eating true Observation.valueQuantity Sample
INSULIN -> Timestamp timestamp of an entry in the App diary, connected to a manual entry true MedicationAdministration.effectiveDateTime Sample
INSULIN -> Bolus a manual entry of bolus insulin as administered by the patient true MedicationAdministration.dosage.dose Sample
INSULIN -> Basal a manual entry of basal insulin as administered by the patient true MedicationAdministration.dosage.dose Sample
CGM Sensor -> SessionId ID of the session false DeviceComponent.ext session-id Sample
CGM Sensor -> Type type of sample false DeviceComponent.ext sample-type Sample
CGM Sensor -> Sample Location location of the sample false DeviceComponent.ext sample-location Sample
CGM Sensor -> Sample Interval Time interval between samples in mins false DeviceComponent.ext sample-interval
(in case of expanded FHIR this has to be also stored on the DeviceMetric resource)
Sample
CGM Sensor -> Lot Number Lot number of the sensor false DeviceComponent.productionSpec Sample
CGM Sensor -> SystemID Organizationally Unique Identifier (OUI) followed by a manufacturer-defined identifier false DeviceComponent.productionSpec Sample
CGM Sensor -> Manufacturer Name Name of the manufacturer of the device false DeviceComponent.productionSpec Sample
CGM Sensor -> Model Number number that is assigned by the device vendor false DeviceComponent.productionSpec Sample
CGM Sensor -> Serial Number serial number for a particular instance of the device false DeviceComponent.productionSpec Sample
CGM Sensor -> HW Revision hardware revision for the hardware within the device false DeviceComponent.productionSpec Sample
CGM Sensor -> FW Revision firmware revision for the firmware within the device false DeviceComponent.productionSpec Sample
CGM Sensor -> SW Revision software revision for the firmware within the device false DeviceComponent.productionSpec Sample
CGM Sensor -> Model Name Name of the device false DeviceComponent.productionSpec Sample
CGM Sensor -> Appearance defines the representation of the external appearance of the device false DeviceComponent.productionSpec Sample
CGM Sensor -> Mac address media access control address false DeviceComponent.productionSpec Sample
CGM Session -> SessionId Unique ID for the session false Observation.identifier.value Sample
CGM Session -> SessionStatus Status of the session false Observation.ext (session-status) Sample
CGM Session -> Calculated Session start time Calculated session start time from app requirements, legacy Aero SysSD req FUN21.2.2.2.3.1 false Observation.ext calculated-session-start-time Sample
CGM Session -> SessionStartTime stores the start of the session for this CGM patch received from the sensor. false Observation.effectivePeriod.startTime Sample
CGM Session -> CGM Session Run Time the time a CGM patch will be able to operate and gather data (in hours) false Observation.ext session-run-time Sample
CGM Session -> CGM session end time the timestamp when the CGM session has ended false Observation.effectivePeriod.endTime Sample
CGM Session -> NotificationAlreadyScheduled This is a boolean to track whether or not the user notifications about the end time of the session have been scheduled already at the OS level. The user gets reminders prior to the session ending as well as one when the session ends. false Observation.ext (notification-scheduled-status) Sample
CGM data -> CGM UUID Unique identifier forthe CGM reading false Observation.identifier.value Sample
CGM data -> SessionId Identifier of the session to which this CGM reading belongs to false Observation.related (derived-from) Sample
CGM data -> CGM Glucose Concentration Continuous Glucose Concentration value in mg/dL false Observation.valueQuantity Sample
CGM data -> CGM Trend Information Continuous Glucose Concentration trend in mg/dL/min false Observation.component.valueQuantity Sample
CGM data -> CGM quality Continuous Glucose Concentration quality in % false Observation.component.valueQuantity Sample
CGM data -> Time offset Time offset in min from the session start false Observation.ext - time-offset Sample
CGM data -> timestamp timestamp of CGM in UTC false Observation.effectiveDateTime Sample
CGM data -> Flags Flags related to the CGM false Observation.ext - flags
(In case of expanded FHIR, relevant EWM observation is also generated)
Sample
CALIBRATION -> SessionId ID of a CGM session false Observation.related (derived-from) Sample
CALIBRATION -> GlucoseConcentration (BG) BG value measured by a patient for calibaration true Observation.valueQuantity Sample
CALIBRATION -> CalibrationTime time of the calibration value used to calibrate the CGM patch false Observation.effectiveDateTime Sample
CALIBRATION -> CalibrationType Type of calibaration performed to take sample, type can be: Capillary Plasma, Venous Whole blood, Arterial Whole blood, Arterial Plasma and many others false Observation.ext sample-type Sample
CALIBRATION -> CalibrationSampleLocation Location on which the Calibration Sample is taken, location can be:Finger, Earlobe, Control solution and many others. false Observation.bodysite Sample
CALIBRATION -> NextCalibrationTime information about when the next calibration will be necessary false Observation.ext next-calibration-time Sample
CALIBRATION -> CalibrationDataRecordNumber counter for the calibration data false Observation.ext calibration-count Sample
CALIBRATION -> CalibrationStatus status of the calibration false Observation.ext calibration-action Sample
EMWR-> SessionId Foreign key from SessionInfoDbItem false Observation.related (derived-from) Sample
EMWR-> InstanceId unique identifier for the EMWR item false Observation.identifier.value Sample
EMWR-> MessageSource The origin of the message false Observation.device Sample
EMWR-> EventName This is the name of the EMWR, such as SENSOR_CALIBRATION_NEEDED false Observation.valueCodeableConcept Sample
EMWR-> TimeOffsetOccurance This is the time the EMWR occurred in relation to the CGM session start time false Observation.ext time-offset Sample
EMWR-> acknowledged EMWR acknowledgment. false Observation.ext ewm-acknowledged Sample
EMWR-> SnoozeWakeupTime If the EWMR event is snoozed, this field was the time at which the EMWR would fire again. false Observation.ext snooze-wakeup-time Sample
EMWR-> TimeWhenProcessed Time at which the EMWR was processed by the user false Observation.ext time-when-processed Sample
EMWR-> Type This is the type of EMWR false Observation.code Sample
Notes a notes field where a patient can store additional information along with the log entry true Observation.valueString Sample
medianCurrent10pA Median Filter Current false Observation.valueQuantity Sample
stdDevCurrent10pA Standard Deviation Filter Current false Observation.valueQuantity Sample
medianTempExternNTC100mDeg Confidence has 2 temperature sensors. This is the "external" one measuring the patch cover false Observation.valueQuantity Sample
medianTempInternNTC100mDeg This is the "internal" one measuring the base plate against the human body. false Observation.valueQuantity Sample
medianVpolCEWEmV These are the Median Voltage Counter Electrode Working Electrode CE WE on the sensor component itself. Electrodes are the small surfaces which are inside the human tissue. false Observation.valueQuantity Sample
stdDevVpolCEWE100uV These are the Standard Deviation Voltage Counter Electrode Working Electrode CE WE on the sensor component itself. Electrodes are the small surfaces which are inside the human tissue. false Observation.valueQuantity Sample
medianVbat10mVplus1200 This is the remaining voltage of the battery. false Observation.valueQuantity Sample
medianImped1stOhm Impedance is a value used for safety purpose measured on 3 different point on the Confidence board. false Observation.valueQuantity Sample
medianImped2ndOhm Impedance is a value used for safety purpose measured on 3 different point on the Confidence board. false Observation.valueQuantity Sample
medianImped3rdOhm Impedance is a value used for safety purpose measured on 3 different point on the Confidence board. false Observation.valueQuantity Sample
stdDevImped1stOhm Impedance is a value used for safety purpose measured on 3 different point on the Confidence board. false Observation.valueQuantity Sample
medianTempExternNTC100mDeg Median Temperature External false Observation.valueQuantity Sample
medianTempInternNTC100mDeg Median Temperature Internal false Observation.valueQuantity Sample
errorStatus Signals an error state to be present or absent (1 or 0). false Observation.ext.error-status Sample
timestampMinutes Timestamp in minutes relative to the start of the patch false Observation.ext.timestamp-minutes Sample
CRC16 Integrity value over this data set. false Observation.ext.crc Sample
Time Block-> Status status of time block set to enabled or disabled false careplan.ext.careplanTimeblockOptions.ext:TimeblockStatus Sample
Time Block-> Start Time start time of the time block false careplan.ext.careplanTimeblockOptions.ext:startTime Sample
Time Block-> End Time End time of the time block false careplan.ext.careplanTimeblockOptions.ext: endTime Sample
Time Block-> Hyper limit Hyper limit value for the time block false careplan.ext.careplanTimeblockOptions.ext: UpperLimit Sample
Time Block-> Hypo limit Hypo limit value for the time block false careplan.ext.careplanTimeblockOptions.ext: LowerLimit Sample
Time Block-> Urgent Hypo limit Urgent Hypo limit value for the time block false careplan.ext.careplanTimeblockOptions.ext: UrgentLowerLimit Sample
Time Block-> Urgent Hypo Alert Urgent Hypo Alert status for the time block false careplan.ext.careplanTimeblockOptions.ext: UrgentHypoAlert Sample
Time Block-> Hypo Alert Urgent Hypo limit value for the time block false careplan.ext.careplanTimeblockOptions.ext: HypoAlert Sample
Time Block-> Hyper Alert Urgent Hypo limit value for the time block false careplan.ext.careplanTimeblockOptions.ext: HyperAlert Sample
Target ranges-> Lower Target Lower target range set for Hypoglycemia false goal.detailQuantity.value Sample
Target ranges-> Higher Target Higher target range set for Hyperglycemia false goal.detailQuantity.value Sample
Diabetes Type Diabetes Type of the patient false Condition.code.coding Sample
[TBD]Mobile device -> Mobile model Mobile model number false DeviceComponent.productionSpec Sample
Mobile device -> Mobile operating system Mobile OS version false DeviceComponent.productionSpec Sample
CGM Sensor -> Pairing Date This will same as session start time false Observation.effectivePeriod.startTime Sample