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.