201605 Workflow

From HL7Wiki
Revision as of 13:53, 7 May 2016 by Kboone (talk | contribs)
Jump to navigation Jump to search


Workflow

Submitting WG/Project/Implementer Group

FHIR Infrastructure, Patient Care, Patient Administration

Justification

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 (keith.boone@ge.com) Skype: kwboone

Expected participants

Ron Shapiro
QVera
Patrick
 ???
Angus
 ???
Nikolai
 ???
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

Roles

Submitter

The actor that creates the referral

Recipient

The person or organization that received the referral

Grader

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

Architecture

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.

Scenarios

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.


Notes

  • 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.


Notes

  • 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


Notes

  • 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


Notes

  • 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

TestScript(s)