Physical Activity Implementation Guide
1.0.0 - STU Release 1 United States of America flag

This page is part of the U.S. Physical Activity IG (v1.0.0: STU 1.0) based on FHIR R4. This is the current published version. For a full list of available versions, see the Directory of published versions

ExampleScenario: Scenario 2 - Provider to Personal Trainer Post-Rehabilitation Referral

Official URL: http://hl7.org/fhir/us/physical-activity/ExampleScenario/Scen2ProviderToPersonaltrainerReferral Version: 1.0.0
Standards status: Informative Computable Name: ProviderToPersonalTrainerReferral

This scenario provides an example of the types of data exchanges that are described in the Provider Refers to Personal Trainer Post-Rehabilitation scenario from the Scenarios page.

The scenario shows the flows of information between the different systems and the various FHIR calls involved, as well as what the data might have looked like in each of the exchanges. There are detailed tables below that provide details on each of the steps in the exchange as well as the types of data being shared. From the instances table, it's possible to navigate to sample XML and JSON instances.

Actors

NameTypeDescription
Good Health CardiologySystem

EHR that records patient's exercise plan

Get Fit TrainingSystem

'Light' service provider'

Fit 4 LifeSystem

'Full' service provider'

Service RegistrySystem

Registry of candidate service providers - outside the scope of this IG

Diagram

ProviderToPersonalTrainerReferralGood Health CardiologyGood Health CardiologyGet Fit TrainingGet Fit TrainingFit 4 LifeFit 4 LifeService RegistryService RegistrySubscription EstablishmentdetailsCreate service provider-monitoring Subscription(payload)Create EHR-monitoring Subscription(payload)1 Hour after appointmentdetailsRetrieve service provider list(payload)response(payload)Subscription notification of new Task(payload)1 Day after appointmentdetailsGetfit retrieves referral(payload)response(payload)GetFit refuses task(payload)An Hour laterdetailsCreate Task on Fit4Life(payload)Fit4Life retrieves referral(payload)response(payload)Fit4Life retrieves conditions(payload)response(payload)Fit4Life retrieves referral(payload)response(payload)EHR gets referral acceptance(payload)EHR retrieves accepted Task(payload)response(payload)2 Months LaterdetailsEHR gets referral acceptance(payload)EHR retrieves completed Task(payload)response(payload)EHR retrieves report(payload)response(payload)

Processes

Process: Subscription Establishment

Pre-conditions:

Good Health Cardiology, Fit 4 Life, and Get Fit training have established legal and technical arrangements for interoperability

Post-conditions:

Subscriptions are successfully created allowing Good Health Cardiology to monitor Fit4Life-assigned Tasks and GetFit to monitor Tasks assigned to it hosted on Good Health Cardiology

StepNameDescriptionInitatorReceiverRequestResponse
1Create service provider-monitoring Subscription - create

EHR posts Subscription to Fit 4 Life to monitor Tasks. Request: POST https://fit4life.example.org/fhir/Subscription Response: 201 Created

Good Health CardiologyFit 4 LifeSubscription from EHR
2Create EHR-monitoring Subscription - create

Get Fit Training posts Subscription to EHR to monitor Tasks. Request: POST https://goodCardio.example.org/fhir/Subscription Response: 201 Created

Get Fit TrainingGood Health CardiologySubscription from Get Fit Training
Process: 1 Hour after appointment

Pre-conditions:

EHR has completed the appointment with the patient

Post-conditions:

EHR has retrieved list of personal trainers and notified GetFit of new Task

StepNameDescriptionInitatorReceiverRequestResponse
3Retrieve service provider list - search-type

Search to retrieve list of Service Providers for personal trainers near Mrs. Johansson.

Good Health CardiologyService RegistryQuery for personal trainers near Mrs. JohanssonSearchset Bundle returning list of personal trainers
4Subscription notification of new Task - create

Service provider is notified of new Task via subscription. Request: POST https://fit4life.example.org/fhir/Subscription Response: 201 Created

Good Health CardiologyGet Fit TrainingSubscription notification indicating new Task
Process: 1 Day after appointment

Pre-conditions:

GetFit has received the notification of new Task

Post-conditions:

GetFit has queried Task, associated ServiceRequest and Patient; and updated Task to refused

StepNameDescriptionInitatorReceiverRequestResponse
5Getfit retrieves referral - search-type

GetFit retrieves the referenced Task and its associated ServiceRequest and Patient.

Get Fit TrainingGood Health CardiologyQuery for Get Fit assigned referralsSearch-set Bundle returning referenced Task
6GetFit refuses task - update

GetFit updates the Task status to 'refused' with a reason. Request: PUT https://goodCardio.example.org/fhir/Task/Scen2TaskGetFitV1 Response: 200 Ok

Get Fit TrainingGood Health CardiologyUpdated GetFit Task
Process: An Hour later

Pre-conditions:

EHR has a Task seeking fulfillment of ServiceRequest for Fit4Life

Post-conditions:

Fit4Life has retrieved ServiceRequest, Patient, Conditions, Observations, and updated Task

StepNameDescriptionInitatorReceiverRequestResponse
7Create Task on Fit4Life - create

New Task is created directly on Fit4Life's server. Request: POST https://fit4life.example.org/fhir/Task Response: 201 Created

Good Health CardiologyFit 4 LifeInitial Fit4Life Task
8Fit4Life retrieves referral - search-type

Fit4Life retrieves the ServiceRequest and Patient referenced by the Task.

Fit 4 LifeGood Health CardiologyQuery for Referral & Patient for retrieved TaskServiceRequest search response for Fit4Life
9Fit4Life retrieves conditions - search-type

Fit4Life retrieves the physical-activity related Conditions associated with the patient.

Fit 4 LifeGood Health CardiologyQuery for patient physical activity conditionsCondition response for Fit 4 Life
10Fit4Life retrieves referral - search-type

Fit4Life retrieves the physical-activity related Observations associated with the patient. (In practice there would typically be more than are shown here, and some might not be for profiles defined in this IG.)

Fit 4 LifeGood Health CardiologyQuery for patient physical activity observationsObservation response for Fit 4 Life
11EHR gets referral acceptance - create

A subscription notification to the EHR is triggered when Fit4Life changes the prescription status to 'accepted'. Request: POST https://goodCardio.example.org/mySubscriptions Response: 200 Ok

Fit 4 LifeGood Health CardiologySubscription Notification that Task has updated
12EHR retrieves accepted Task - search-type

EHR retrieves the Task referenced by the subscription notification

Good Health CardiologyFit 4 LifeQuery for EHR-issued task based on notificationAccepted Task search response for EHR
Process: 2 Months Later

Pre-conditions:

Fit4Life has updated the Task

Post-conditions:

EHR has retrieved the completed Task, DiagnosticReport, and associated Observations

StepNameDescriptionInitatorReceiverRequestResponse
13EHR gets referral acceptance - create

A subscription notification to the EHR is triggered when Fit4Life changes the Task status to 'completed'. Request: POST https://goodCardio.example.org/mySubscriptions Response: 200 Ok

Fit 4 LifeGood Health CardiologySubscription Notification that Task has completed
14EHR retrieves completed Task - search-type

EHR retrieves the Task referenced by the subscription notification

Good Health CardiologyFit 4 LifeQuery for EHR-issued task based on notificationCompleted Task search response for EHR
15EHR retrieves report - search-type

EHR retrieves the Fit4Life DiagnosticReport using the id provided in the Task. It also uses _include to retrieve referenced observations

Good Health CardiologyFit 4 LifeQuery for report and referenced observationsDiagnosticReport response for EHR

Instances

NameTypeContentDescription
Query for personal trainers near Mrs. JohanssonBinary

Search to retrieve list of Service Providers for personal trainers near Mrs. Johansson: GET https://registry.example.org/fhir/PractitionerRole?role=228239008|http%3A//snomed.info/sct&location.near=37.8393|84.2700|20|[mi_us]&_include=PractitionerRole:practitioner

Query for Get Fit assigned referralsBinary

Query Task and associated ServiceRequest and Patient: GET https://goodCardio.example.org/fhir/Task?status=requested&owner=https%3A//registry.example.org/fhir/Organization/Scen2OrgGetFitTraining&_include=Task:patient&_include=Task:focus

Query for Referral & Patient for retrieved TaskBinary

Search to retrieve ServiceRequest and Patient for specified Task: GET https://goodCardio.example.org/fhir/ServiceRequest?_id=Scen2ServiceRequest&_include=ServiceRequest:patient

Query for patient physical activity conditionsBinary

Search to retrieve Conditions: GET https://goodCardio.example.org/fhir/Condition?patient=Scen2PatientJohansson&category=http:%3A//hl7.org/fhir/us/physical-activity/CodeSystem/PATemporaryCodesorary-codes|PhysicalActivity

Query for patient physical activity observationsBinary

Search to retrieve Observations: GET https://goodCardio.example.org/fhir/Observation?patient=Scen2PatientJohansson&category=http:%3A//hl7.org/fhir/us/physical-activity/CodeSystem/PATemporaryCodesorary-codes|PhysicalActivity

Query for EHR-issued task based on notificationBinary

Search to retrieve Task: GET https://fit4life.example.org/fhir/Task?_id=Scen2TaskFit4Life

Query for report and referenced observationsBinary

Search on referenced Observations: GET https://fit4.life.example.org/fhir/DiagnosticReport?id=Scen2DiagnosticReport&_include=DiagnosticReport:result

Mrs. Johansson Patient RecordPatienthere

Demographics and contact information

Mr. Matthews Registry EntryPractitionerhere

Practitioner details for personal trainer Mr. Matthews

Ms. Wang Registry EntryPractitionerhere

Practitioner details for personal trainer Ms. Matthews

Mr. Matthews Registry EntryPractitionerRolehere

Practitioner organization details for personal trainer Mr. Matthews

Ms. Wang Registry EntryPractitionerRolehere

Practitioner organization details for personal trainer Ms. Matthews

Subscription from EHRSubscriptionhere

Establishes the subscription for the EHR to monitor tasks it's created

Subscription from Get Fit TrainingSubscriptionhere

Establishes the subscription for the service provider to monitor tasks created for it

Searchset Bundle returning list of personal trainersBundlehere

In practice, the set of candidates would likely be longer. Note that this functionality is outside the scope of this IG.

Contains: Mr. Matthews Registry Entry
Low physical activity conditionConditionhere

New condition added to chart

Hypertension conditionConditionhere

Older condition

Initial days per week of activityObservationhere

Exercise of once per week

New days per week of activityObservationhere

Exercising 5 times per week

Initial minutes per day of activityObservationhere

15 minutes per day

New minutes per day of activityObservationhere

32 minutes per day

Information about a runObservationhere

Collection of sub-observations about a single run

Type of activity - runObservationhere

Indicates that the activity performed was a run

Duration of runObservationhere

Run was 30 minutes

Average heart rate during runObservationhere

Average heart rate of 132 bpm

Peak heart rate during runObservationhere

Peak heart rate of 177 bpm

Experience of run by patientObservationhere

Experience of run was positive

Calories burned during runObservationhere

517 calories burned during run

Report from personal trainerDiagnosticReporthere

Letter to provider indicating how the consultation went

Referral for supportServiceRequesthere

Indicates what is to be done and when - but not by whom

Task seeking GetFit to fulfill referralTask

This is the initial Task seeking fulfillment

  • Initial GetFit Task
here

This is the initial Task seeking fulfillment

  • Updated GetFit Task
here

This is the initial Task seeking fulfillment

Subscription notification indicating new TaskBundlehere

Points to the initial 'requested' version of the Task

Search-set Bundle returning referenced TaskBundlehere

Returns Task referenced in subscription notification. Includes associated ServiceRequest and Patient

Contains: Initial GetFit Task
Task seeking FitLife to fulfill referralTask

This is the second Task seeking fulfillment (after the first was rejected)

  • Initial Fit4Life Task
here

This is the second Task seeking fulfillment (after the first was rejected)

  • Updated Fit4Life Task
here

This is the second Task seeking fulfillment (after the first was rejected)

  • Completed Fit4Life Task
here

This is the second Task seeking fulfillment (after the first was rejected)

ServiceRequest search response for Fit4LifeBundlehere

Search-set Bundle returning ServiceRequest and Patient for the Task posted to Fit4Life

Contains: Mrs. Johansson Patient Record
Accepted Task search response for EHRBundlehere

Search-set Bundle returning 'accepted' Task with id based on subscription notification

Contains: Updated Fit4Life Task
Completed Task search response for EHRBundlehere

Search-set Bundle returning 'completed' Task with id based on subscription notification

Contains: Completed Fit4Life Task
Condition response for Fit 4 LifeBundlehere

Search-set Bundle containing the patient's Conditions (that Fit 4 Life has access to)

Contains: Hypertension condition
Observation response for Fit 4 LifeBundlehere

Search-set Bundle containing the patient's Observations (that Fit 4 Life has access to)

Contains: Initial minutes per day of activity
Subscription Notification that Task has updatedBundlehere

Pointer to the Task that has been updated

Subscription Notification that Task has completedBundlehere

Pointer to the Task that has been updated

DiagnosticReport response for EHRBundlehere

Search-set Bundle returning DiagnosticReport and the Observations it references

Contains: Calories burned during run