Health New Zealand Te Whatu Ora Shared Care FHIR API - Local Development build (v0.4.1) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
Remote Patient Monitoring
Remote Patient Monitoring
The Remote Patient Monitoring initiative is an initiative the seeks to deliver care to patients in Remote parts of the country, leveraging a Patient facing App and Consumer Technology to record patient wellbeing, with a clinician being able to monitor and provide advice to these patients from afar using the Provider View.
Remote Patient Monitoring in FHIR
Data Structure
CarePlan Activities CarePlan Context Resources Captured Data CommunicationRequest subject : Reference to Patient Task subject : Reference to Patient relevantHistory : Reference to Provenance code : CodeableConcept ("educational content") ServiceRequest subject : Reference to Patient Condition subject : Reference to Patient performer : Reference to Practitioner code : CodeableConcept (TBD) category : CodeableConcept (TBD) Encounter period_start : datetime period_end : datetime diagnosis_condition_reference : Reference to Condition status : string ("in-progress", "finished", etc.) class_code : CodeableConcept (e.g. VR = virtual) serviceType_code : CodeableConcept (e.g. 554 = Chronic Disease Management) priority_code : CodeableConcept (e.g. R = routine) subject : Reference to Patient (with identifier and display) participant : Reference to Practitioner (identifier + display) reasonCode : CodeableConcept (e.g. patient-initiated encounter) serviceProvider : Reference to Organization (identifier + display) CareTeam meta_versionId : string meta_profile[] : string identifier_use : string identifier_system : string identifier_value : string participant_member_identifier_use : string participant_member_identifier_system : string participant_member_identifier_value : string participant_member_display : string managingOrganization_identifier_value : string managingOrganization_identifier_use : string managingOrganization_identifier_system : string managingOrganization_display : string status : string ("active", etc.) name : string ("Remote Monitoring CareTeam") participant_member_type : string ("Practitioner") managingOrganization_type : string ("Organization") Provenance subject : Reference to Patient extensionCode : TBD Observation subject : Reference to Patient basedOn : Reference to CarePlan QuestionnaireResponse subject : Reference to Patient basedOn : Reference to CarePlan Consent subject : Reference to Patient period optional provisionData : Reference[] CarePlan meta_profile : "RPM CarePlan" subject : Reference to Patient condition : Reference to Condition activity : Reference[] addresses.reference encounter.reference careTeam.reference activity.reference activity.reference activity.reference relevantHistory basedOn basedOn
Patient Onboarding
The Remote Patient Monitoring Flows and Experience for any given Patient are centered around their CarePlan. At the time of a Patients commencement in the RPM programme this CarePlan along with a series of related resources are created.
AdminPractitioner Practitioner View Shared Care FHIR Server Queue Common Messaging Service Patient Alphero App Education Content Bucket AdminPractitioner AdminPractitioner Practitioner View Practitioner View Shared Care FHIR Server Shared Care FHIR Server Queue Queue Common Messaging Service Common Messaging Service Patient Patient Alphero App Alphero App Education Content Bucket Education Content Bucket Patient Onboarding Inital Encounter POST Condition POST Encounter POST CareTeam POST Task POST Consent Create CarePlan Search Plan Definitions Apply Plan Definition, with patient, practitioner, and encounter POST CarePlan PUT Consent, attaching CarePlan Add Service Requests Search Activity Definitions Apply Action Definition, with patient, practitioner, and CarePlan POST Service Request PUT Consent, attaching Service Request PUT CarePlan, attaching Service Request Patient Notification via CMS POST CommunicationRequest Handle incoming Communication Request POST CommunicationRequest (via Subscription) Send Email POST Communication (inidcating email sent)
Data Gathering
Throughout the period of care, Questionnaires are used to gather clinical insights into the Patients wellbeing and experience, along with feedback surrounding the quality of experience surrounding the Piki Te Ora App.
Observations are generated via a Series of Smart Devices, that interact with the Piki App, that are then posted to the Shared Care API.
AdminPractitioner Practitioner View Shared Care FHIR Server Queue Common Messaging Service Patient Alphero App Education Content Bucket AdminPractitioner AdminPractitioner Practitioner View Practitioner View Shared Care FHIR Server Shared Care FHIR Server Queue Queue Common Messaging Service Common Messaging Service Patient Patient Alphero App Alphero App Education Content Bucket Education Content Bucket Routine Questionnaire Response Collection Opens App Fetches relevant Questionnaire Render Questionnaire Completes Questionnaire POST QuestionnaireResponse PUT Consent
Educational Content
Patient on certain CarePlans may be assigned educational content to engage with: a series of short modules. A task attached to the CarePlan prescribes this education. Upon a modules completion within the app, a Provenance resource is created and attached to the Task as a relevantHistory.reference.
Option One: This flow uses a single Tasks resource per Patient and CarePlan. This tasks represents the completion of all educational content associated with the Careplan type. Upon Completion of a module, the Piki Te Ora App will POST a provenance resource, which encodes the completion of the module. These can be read by Provider view to display educational progress.
AdminPractitioner Practitioner View Shared Care FHIR Server Queue Common Messaging Service Patient Alphero App Education Content Bucket AdminPractitioner AdminPractitioner Practitioner View Practitioner View Shared Care FHIR Server Shared Care FHIR Server Queue Queue Common Messaging Service Common Messaging Service Patient Patient Alphero App Alphero App Education Content Bucket Education Content Bucket Patient Onboarding POST CarePlan and Associated resources (Including Task) Educational Content Consumption Opens App, Selects and Consumes Education Content Fetches Education Content Render Content Completes Module POST Provenance Resource (indicating completion) PUT Task (add reference to Provenance) Complete Feedback Questionnaire POST QuestionnaireResponse (completed) Provider View Rendering GET Careplan GET Provenance?basedOn=Careplan/example&subject=nhi&profile=rpmEducation
Option Two: This flow uses a pyramid of many Tasks resource per Patient and CarePlan. A single task represent a the entire syllabus, under which many subjects will represent the groups. Underneath this each group will have many tasks, each representing a module. Upon Completion of a module, the Piki Te Ora App will GET and PUT a task resource, updating its status to complete. These can be read by Provider view to display educational progress.
Practitioner View Shared Care FHIR Server Piki te Ora Patient Education Content Bucket Practitioner View Practitioner View Shared Care FHIR Server Shared Care FHIR Server Piki te Ora Piki te Ora Patient Patient Education Content Bucket Education Content Bucket Patient Onboarding POST CarePlan and Associated resources POST Top Level Task POST Group Level Tasks POST Module Level Tasks PUT Careplan (attatching tasks) Educational Content Consumption Opens App, Selects and Consumes Education Content Fetches Education Content Render Content Completes Module GET Task?code=exampleModulecode&owner=nhi&profile=rpmEducationTask PUT Task (setting task.status to completed) Complete Feedback Questionnaire POST QuestionnaireResponse (completed) Provider View Rendering GET Careplan GET Task?basedOn=Careplan/example&owner=nhi&profile=rpmEducationTask
CarePlan: Education Plan id = "careplan-education" status = "active" intent = "plan" description = "Care plan defining the patient's educational syllabus" Task: Educational Syllabus id = "task-syllabus" status = "requested" intent = "plan" code = { "system": "https://fhir.your-org.nz/CodeSystem/education-modules", "code": "SYLLABUS", "display": "Educational Syllabus" } description = "Overall educational syllabus for patient" Task: Group 1 id = "task-group-1" status = "requested" intent = "plan" code = { "system": "https://fhir.your-org.nz/CodeSystem/education-modules", "code": "GROUP-1", "display": "Education Group 1" } description = "Group 1 - Introductory Modules" Task: Group 2 id = "task-group-2" status = "requested" intent = "plan" code = { "system": "https://fhir.your-org.nz/CodeSystem/education-modules", "code": "GROUP-2", "display": "Education Group 2" } description = "Group 2 - Advanced Modules" Task: Module 1.1 id = "task-module-1-1" status = "requested" intent = "order" code = { "system": "https://fhir.your-org.nz/CodeSystem/education-modules", "code": "MODULE-1-1", "display": "Module 1.1" } description = "Module 1.1 - Generic Module" Task: Module 1.2 id = "task-module-1-2" status = "requested" intent = "order" code = { "system": "https://fhir.your-org.nz/CodeSystem/education-modules", "code": "MODULE-1-2", "display": "Module 1.2" } description = "Module 1.2 - Generic Module" Task: Module 2.1 id = "task-module-2-1" status = "requested" intent = "order" code = { "system": "https://fhir.your-org.nz/CodeSystem/education-modules", "code": "MODULE-2-1", "display": "Module 2.1" } description = "Module 2.1 - Generic Module" Task: Module 2.2 id = "task-module-2-2" status = "requested" intent = "order" code = { "system": "https://fhir.your-org.nz/CodeSystem/education-modules", "code": "MODULE-2-2", "display": "Module 2.2" } description = "Module 2.2 - Generic Module" basedOn basedOn basedOn basedOn basedOn basedOn basedOn