Core ElementsΒΆ
Any user accessing the Web UI is a data consumer and considered a Practitioner.
Any user uploading data is considered a Patient.
The same OAuth2.0 strategy is used for both Practitioners and Patients, the only difference being that the credentials are provided out-of-band for Patients.
An Organization is a group of Practitioners.
An Organization is typically hierarchical with sub-Organizations, e.g., Institution, Department, Lab, etc.
A Patient belongs to a single Organization (TBD: belong to multiple).
A Practitioner belongs to at least one Organization.
A Study is a Group of Patients and belongs to a single Organization.
A Study has one or more Data Sources and one or more Scope Requests.
When a Patient is added to a Study, they must explicitly consent to sharing the requested Scopes before any data (Observations) can be uploaded or shared.
An Observation is Patient data and belongs to a single Patient.
An Observation must reference a Patient ID as the subject and a Data Source ID as the device.
Personal device data is expected to be in the Open mHealth (JSON) format. However, the system can be easily extended to support any binary data attachments or discrete Observation records.
Observation data is stored as a valueAttachment in Base 64 encoded JSON binary.
Authorization to view Observations depends on the relationship of Organization, Study, and Consents as described above.
A Data Source is anything that produces Observations (typically a device app, e.g., iHealth).
A Data Source supports one or more Scopes (types) of Observations (e.g., Blood Glucose).
An Observation references a Data Source ID in the device field.
Use Case ExampleΒΆ
Try following these steps to explore the application.
Sign up as a new user from the web UI.
Create a new Organization.
Add yourself to the Organization (View Organization > Users+).
Create a new Study for the Organization (View Organization > Studies+).
Create a new Patient for the Organization using a different email than (1) (Patients > Add Patient).
Add Data Sources and Scopes to the Study (View Study > Data Sources+, Scope Requests+).
Add the Patient to the Study (Patients > check box > Add Patient(s) to Study).
Create an Invitation Link for the Patient (View Patient > Generate Invitation Link).
Use the code in the invitation link with the Auth API to swap it for tokens.
Upload Observations using the FHIR API.