201809 Clinical Notes Track
Return to September 2018 Proposals Connectathon 19
Zulip Chat stream for this Track is here and issues can be posted here
A recording of the Track Orientation can be found here.
Background For Clinical Notes
Clinical Notes are a critical element for clinicians to communicate the status of a patient to another caregiver. These notes occur in various formats, such as: unstructured (XHTML, ASCII), fixed file format (PDF, RTF), or structured (HL7 CDA/FHIR Composition). Common clinical notes as identified by the Argonaut participants:
- Discharge documentation (18842-5)
- Consultation (11488-4)
- Imaging narrative (18726-0)
- Lab/path narrative
- History & Physical (34117-2)
- Progress note
- Procedures note (28570-0)
Many others …Transfer note, Referral note, Surgical Operation note, Nurse note. This track will explore a limited set with the intention it will cover other note types..
The current FHIR STU3, and ballot version of FHIR STU4, does not include concrete guidance for exchanging notes. Various work groups within HL7 have considered DocumentReference, Observation, Composition, DiagnosticReport, or a brand new resource. After discussions at the January 2018 during the Connectathon, and subsequently in the HL7 working group Patient Care the initial, the consensus was to proceed with a connectathon track to test out a few different Resources. This track will test use of the DocumentReference and DiagnosticReport to exchange Clinical Notes. A draft Argonaut Clinical Notes Profile will be available middle of April. It is based upon the FHIR 3.0.1 Standard.
Submitting WG/Project/Implementer Group
Justification
The Argonaut Clinical Notes Profile is a vendor agnostic specification providing FHIR RESTful APIs and guidance for access to Clinical Notes by both patient and practitioner end users. This specification is based on FHIR Version 3.0.1 and specifically the DocumentReference, and DiagnosticReport resources.
The US ONC released a draft U.S. Core Data for Interoperability as a part of TEFCA which proposed support for Clinical Notes access.
Proposed Track Lead
Coordinator: Brett Marquard, Eric Haas
Expected participants
Servers: Epic, Cerner. Plan to contact Argonaut organizations for additional participants.
Clients: Postman to start
Roles
Provider or 3rd Party consumer application (Client)
An application that should be used by an end user (e.g., patient or practitioner) to support search for and retrieval of Clinical Notes.
FHIR Server (EHR)
A Server that contains Clinical Data.
If creating a client application, this track should require minimal work in advance of the connectathon, though at least a bit of playing is recommended. If creating a server, advanced preparation will be required.
Scenarios
This track will test patient and provider access to Clinical Notes. Patient so that they are better informed and able to make important decisions about their health. Providers so that the continuity of care is maintained across multiple settings and healthcare workers.
EHRs (servers) may return a Note using binary in a variety of formats:
- ASCII
- XHTML
- RTF or PDF
- Mixed document - structured information and narrative (CDA).
Access to a Clinical Note is a two step process for the client:
- Search and retrieve the DocumentReference
- Retrive the Note (Binary or Composition)
Requesters (clients) should be capable, at minimum, of displaying each format.
During the development of the track we discussed directly embedding content in the DocumentReference.content.attachment.data but no server planned to support in this connectathon so decided to save for the future.
This track also includes one scenario for a Client to create (write) a note to the server. In this use cases the client embeds the base64 content directly in DocumentReference.content.attachment.data for the server to store.
1. Retrieve an Encounter Summary Note with DocumentReference id
- Action: A patient or provider requester (client) previously cached a DocumentReference id retrieves the note. The EHR (server) returns a DocumentReference with a pointer to a the Clinical Note (binary) for the client to retrieve.
- Precondition: There is a DocumentReference with a pointer to a valid Binary resource
- Success Criteria: Server returns pointer to binary. Client is able to retrieve and display Clinical Note (Binary Resource).
GET [base]/DocumentReference/[id]
Using the information in DocumentReference.content.attachment.url
GET [base]/Binary/[id]
2. Retrieve all notes by patient
- Action: A patient or provider requester (client) queries for all Clinical Notes for a patient. The EHR (server) returns one or more DocumentReference Resources with a pointer to the Clinical Notes (binary) for the client to retrieve.
- Precondition: There is a DocumentReference with a valid patient and pointer to a valid binary
- Success Criteria: Server returns pointer to binary. Client is able to retrieve and display Clinical Note (binary).
GET [base]/DocumentReference?patient=[id]&class=clinical-note GET [base]/Binary/[id]
Example:
GET [base]/DocumentReference?patient=1316024&class=clinical-note
3. Retrieve a Patient's Notes by Searching with a Date Range
- Action: A patient or provider requester (client) queries for all Clinical Notes for a patient created after a certain date. The EHR (server) returns one or more DocumentReference Resources with a pointer to the Clinical Notes (binary) for the client to retrieve.
- Precondition: There is a DocumentReference with a valid patient and pointer to a valid binary
- Success Criteria: Server returns pointer to binary. Client is able to retrieve and display Clinical Note (binary).
GET [base]/DocumentReference?patient=[id]&class=clinical-note&created=[date] GET [base]/Binary/[id]
Example:
GET [base]/DocumentReference?patient=1316024&class=clinical-note&created=ge2018-04-11
4. Retrieve a Patient's Discharge Summary Notes
- Action: A patient or provider requester (client) queries for all patient Discharge Summary Notes. The EHR (server) returns returns one or more DocumentReference Resources with a pointer to the Clinical Notes (binary) for the client to retrieve.
- Precondition: There is a patient and note classified as Discharge Summary is in the system.
- Success Criteria: Clinical Note is returned and displayed in interface.
GET [base]/DocumentReference?patient=[id]&type=[note type (LOINC)] GET [base]/Binary/[id]
Example:
GET [base]/DocumentReference?patient=1316024&type=http://loinc.org|18842-5
5. Retrieve a Patient's Radiology Notes
- Action: A patient or provider requester (client) queries for all patient Radiology Notes. The EHR (server) returns returns one or more DiagnosticReport with value in DiagnosticReport.presentedForm as a pointer to the Clinical Notes (binary) for the client to retrieve.
- Precondition: There is a patient and note classified as Radiology in the system.
- Success Criteria: Clinical Note is returned and displayed in interface.
GET [base]/DiagnosticReport?patient=[id]&category=[note type (LOINC)] GET [base]/Binary/[id]
Example:
GET [base]/DiagnosticReport?patient=[id]&category=http://loinc.org|LP29684-5
6. Write a new note to a Patient's Chart
- Action: A patient or provider (client) commits a new note to a FHIR server. The EHR (server) stores the note for future retrieval.
- Precondition: FHIR server is capable of receiving a DocumentReference with content embedded in DocumentReference.content.attachment.data and split into DocumentReference and Binary on storage
- Success Criteria: Client is able to retrieve Clinical Note
POST [base]/DocumentReference
Example:
POST [base]/DocumentReference Request Headers: content-type: "application/json" prefer: "return=REPRESENTATION" accept: "application/fhir+json" Request Body: { "resourceType": "DocumentReference", "type": { "coding": [ { "system": "http://loinc.org", "code": "8648-8", "display": "Discharge Summary" } ], "text": "Discharge Summary" }, "subject": { "reference": "[base]/Patient/eso2MXsmcJloTEUEls5DzbA3" }, "content": [{"attachment": { "contentType": "text/plain", "data": "Tm8gYWN0aXZpdHkgcmVzdHJpY3Rpb24sIHJlZ3VsYXIgZGlldCwgZm9sbG93IHVwIGluIHR3byB0byB0aHJlZSB3ZWVrcyB3aXRoIHByaW1hcnkgY2FyZSBwcm92aWRlci4=" } }], "context": {"encounter": {"reference": "[base]/Encounter/eIOY6XJQw0hvmvCqTtkg6vQ3"} } }
Bonus: Implement $expand operation
- Action: A client invokes the $expand operation on a specific resource element to determine what codes they support.
- Precondition: The server either has access to a terminology server, or acts as one.
- Success Criteria: Value set resource is returned with allowed values. Testing is done with both `context` and `operation` as parameters.
GET http://test.fhir.org/r3/ValueSet/$expand?context=DiagnosticReport.category&contextDirection=outgoing
Note: this is supported for the Epic connectathon server, but not the Cerner one.
TestScript(s)
The supporting TestScripts and corresponding fixtures have been committed to the FHIR documents Github repository at: TBD
Please note that the available TestScripts test the TBD
Security and Privacy Considerations
- What Authentication/Authorization will be used (e.g. SMART on FHIR (OAuth), HEART (UMA/OAuth), IHE IUA (OAuth), generic OAuth, generic SAML, mutual-Auth-TLS), is out of scope and left to implementations. Expectation is many systems will use SMART on FHIR (OAuth)