Skip to main content
Version: 13.x (Current)

Device Manager

The Device Manager (also referred as DM) is a plugin to collect, store and visualize patient health data from medical and wearable devices.

The plugin currently supports the following providers:

and enables real-time acquisition of health data from Medisanté medical devices and all kind of devices supported by Apple HealthKit.

The data acquisition process involves several steps, including:

  • storing a copy of the raw device health data to ensure availability and integrity;
  • normalizing health data to ensure consistency across different providers and devices and facilitate data analysis and visualization;
  • send relevant health data to the Therapy and Monitoring Manager to make it accessible in the context of a monitoring plan.

The following table explains terms and expressions used throughout the documentation, so when you will encounter them you should assume they have the described meaning, unless stated otherwise.

TermDefinition
Chart dataNormalized data represented in a schema suitable for chart visualization.
DetectionA detection associated to a monitoring plan in the TMM.
DMAcronym for Device Manager
DeviceA wearable or medical device used by a patient to collect health data.
Health dataPatient data received from a device.
Health data formatHow health data is encoded (JSON, XML, FHIR, etc.).
Health data schemaThe list and semantic of fields related to some health data.
Health data typeA type of data received from one or more devices from a provider that share the same schema and format.
Normalized dataHealth data received from a device converted to a common data model based on the data type (see Normalization).
Normalized data typeA data type referring a common data model, shared across different devices and/or providers.
NormalizationThe process of converting health data received from a provider to a common data model based on the data type.
MeasurementHealth data received from a device expressed in a certain measurement unit (e.g. body temperature in Celsius degree).
PrototypeClass of measurements with a well-defined schema and semantic. See also TMM prototype.
ProviderA third-party collecting data from a device and sending it to the Device Manager (e.g. Medisanté, Apple, Google, Garmin).
Raw dataHealth data received from a device in its original format and structure.
Raw data typeAn health data type referring some raw data sharing the same schema and format.
TMMAcronym for Therapy and Monitoring Manager.

Device lifecycle

Enrollment

The first phase of the device lifecycle is the enrollment: the device is registered in the system alongside its technical specifications (manufacturer, model, serial number, etc.) and capabilities (which measurements it provides, like body temperature or blood pressure). The enrollment processes may be entirely automatic, for example when a patient connect a device via Apple HealthKit, or manual, for example when a new device is registered on Medisanté administration portal. At the end of the enrollment process, the device is ready to be assigned to a patient.

Assignation

Each device can be assigned to different patients across its lifespan. When a device is assigned to a patient, the health data is automatically collected and processed.

Data acquisition

Once a device is assigned to a patient, the generated health data is received by the service, that automatically stores a copy of the raw health data and schedule a background job to normalize it based on some customizable rules to ensure sintactic and semantic consistency across different providers and devices, allowing health data analysis and visualization no matter the source and format of the health data. The service provides some default normalization rules for health data coming from officially supported medical or wearables devices, that you can later customize or completely override based on your specific needs.

flowchart TD NewDeviceData[New device data] --> |Save raw data| RawDataSaved[Raw data saved] NewDeviceData --> |Error saving data| Failure[Failure] RawDataSaved --> |Creating job| JobCreated[Job created] RawDataSaved --> |Sending response| Success[Success] JobCreated --> |Starting job| JobStarted[Job started] JobCreated --> |Error starting job| JobFailed[Job failed] JobStarted --> |Normalizing data| NormalizedData[Data normalized] JobStarted --> |Error normalizing data| JobFailed NormalizedData --> |Submit detections| DetectionsSubmitted[Detections submitted] NormalizedData --> |Error submitting detections| DetectionsNotSubmitted[Detections failed] DetectionsSubmitted --> Success DetectionsNotSubmitted --> JobFailed
StateDescription
Raw data savedThe received device data has been stored successfully in the health data CRUD.
Job createdA new job has been created and is ready to execute in the background the data acquisition flow.
Job startedThe data acquisition job has started in the background.
Data normalizedThe raw data has been normalized and stored successfully in the health data CRUD.
Detections submittedThe job completed successfully, the normalized data were submitted as detections.
Detections failedAn error occurred submitting the detections and the job failed.

Providers

The service is designed to allow integration with different providers, currently we support Medisanté and Apple HealthKit.

Medisanté

Medisanté devices are managed on the dedicated Medisanté portal, currently the enrollment process requires you to also insert the device ID and name manually in the DM. Once the device is enrolled, you have to assign directly the device to a patient with the DM. To receive correctly the data, you need to add a webhook on the Medisanté portal to send data to the POST /health-data/medisante/ endpoint of the DM.

Apple HealthKit

To collect health data to devices compatible with Apple HealthKit, you require a mobile application the patient is going to use to login to our systems and grant the permissions to read the health data received from connected devices and sends it to the POST /health-data/healthkit/ endpoint of the DM. The first time a patient signs in, the application is going to ask for the required permissions.

If the patient does not grant all the requested permissions, the application will not work correctly. Once the permissions have been granted to the application, a request will be sent to the DM to create a new device with the ID of the connected device and assign it to the logged-in patient. The application is going to ask you permissions to read different kind of data from HealthKit, only the selected ones will be received by the DM.