This wiki has undergone a migration to Confluence found Here
<meta name="googlebot" content="noindex">

Difference between revisions of "201605 Workflow"

From HL7Wiki
Jump to navigation Jump to search
Line 34: Line 34:
[ Our Track Stream ]
[ Our Track Stream ]
<!-- Roles are sets of functionality (generally defined by a Conformance resource) that a single system can take on -->
<!-- Provide a description of the capabilities this role will have within the connectathon -->
The actor that creates the referral
The person or organization that received the referral
The person who prioritizes the  referral for urgency
===Scheduling Clerk===
The person that makes the appointment for the person to  attend
===Services Registry===
A system that knows what services are available at what institutions to assist a referrer to find the correct place to send the referral. It implements queries against a [ healthcareservice] resource
Describe the architecture here - where all tasks are created on the server where the referral is tobe processed. Discuss that there can be other architectures - eg a centralized 'referral manager' server.
<!-- What will be the actions performed by participants? -->
===1. Find place to send referral to===
:Action: The Submitter makes queries against the Service Registry to locate a suitable location to send the referral to.
:Precondition: There is a server acting in the role of a Service Registry exposing queries that enable  the submitter to locate the service type they need. For the sake of this scenario it is assumed that there will be an organization that meets the needs of the referral (ie that the registry has suitable Organization resources).
:Success Criteria: A suitable organization is located
:Bonus point: A client is developer that can update the registry, adding new services to it.
===2. Create Referral===
:Action: The submitter creates a referral on the referral server. This will involved creating [ referralRequest] and a [ task] resource that refers to it
:Precondition: There is a server established as the 'referral manager' - that can maintain Task and ReferralRequest resources
:Success Criteria: The workflow resources (Task, ReferralRequest) are successfully created
:Bonus point: The client that creates the referral can also query for the current status of the referral.
* Against the target server Create a ReferralRequest resource, then a Task resource with the Task.owner pointing to an organization, Task.concerning referring to the patient and the  Task.subject referring to the  ReferralRequest. The task.status will be 'created'
===3. Receive Referral ===
:Action: The recipient of the referral indicates whether the referral has been accepted by the service.
:Precondition: The resources (Task / ReferralRequest) exist and are locatable
:Success Criteria: The client is able to view the current status of the referral
:Bonus point: The service and the client can have a 'conversation' to clarify aspects of the referral - eg to supply incomplete data.
* The recipient of the referral  assigns the task to a grader (by setting the owner  to a practitioner ) &  sets the status to ready
* Mostly this step is checking that required information is present and that the referral is appropriate - eg that the service can process this referral type.
* The task could be located by a direct query against Task or the server could expose a specific operation
* query needs to be  all referralrequest tasks for this organization in the created state
===4. Grade Referral===
:Action: The Grader assigns the Task to a Practitioner or Organization for grading (assigning priority).
:Precondition: The required resources exist and can be located by the Grader
:Success Criteria: The Task status is updated
:Bonus point: The client is notified of the status change in some way
:Bonus point: The referral is rejected and the submitter notified with the reason
* Practitioner locates referrals assigned to them in a 'ready' state. Could locate by direct query against task or use an operation
* Accept: change owner to the scheduling department (another organization)
* Reject: change status to 'failed'. Assign owner to the initial creator (the GP)
===5. Create Appointment===
:Action: An appointment is created for the patient to be seen by the Organization to which the referral was assigned in the previous step
:Precondition: A server accessible to submitter and processor is able to support Appointment resources
:Success Criteria: The appointment is created
:Bonus point: The submitter is notified
:Bonus point: The patient is notified
:Bonus point: The patient can 'negotiate' with the service over the appointment time
*Scheduling department (Organization) create appointment
*query is all tasks where the subject is a referralrequest and owner is that organization and state changes to completed - because we assume that the purpose of the task was to arrange an appointment for a patient.
* Could create a new task for the outpatient clinic (where the appointment is to be) - with task.input set to the appointment

Revision as of 13:54, 7 May 2016


Submitting WG/Project/Implementer Group

FHIR Infrastructure, Patient Care, Patient Administration


Workflow is a primary focus of the upcoming release. A number of new approaches are being proposed and they need to be tested

Proposed Track Lead

See Connectathon_Track_Lead_Responsibilities Keith Boone ( Skype: kwboone

Expected participants

Ron Shapiro
Rik Smithies
Keith Boone
GE Healthcare

Use Case

It's time for our patient to get his annual physical exam.

  1. Rik will create a Task for the Patient to schedule the prework as part of his care plan.
  2. Patrick will ask the Patient to select the Laboratory which will perform his results. The patient will select a lab (e.g., Acme Labs), and Patrick will create a new task, #containing the Laboratory Order as input, and assign that task to Acme labs to perform.
  3. Angus will monitor the task list for tasks assigned to Acme lab, perform the test, produce the results, and attach them as the output of the lab task, marking that task as complete.
  4. Ron will monitor all tasks to track what is happening.

Track Stream

Our Track Stream