201609 Data Access Framework (DAF)
Data Access Framework Background
Data Access Profiles (DAF) Core profiles support the ONC 2015 Common Clinical Data Set (CCDS) using the Argonaut provided constraints. This track is an extension of the Argonaut efforts to test and record progress against the formal DAF-Core profiles.
This track is based on FHIR STU3 ballot, DAF-Core STU2.
Justification
API access to the 2015 CCDS is required for EHR certification.
DAF-Core Connectathon Priority Profiles: Allergies, DiagnosticReport, MedicationStatement, Medication, Patient, Problems, Results
DAF formalized conformance:
- Conformance requirements for the DAF Requestor actor
- Conformance requirements for the DAF Responder actor
Background on original Argonaut use cases:
DAF-Core Allergies, DAF-Core Patient, DAF-Core MedicationStatement
This is a continuation of the DAF connectathons in January 2015, and May 2016
DAF DiagnosticReport and DAF-Core Observation
Extend DAF connectathon to include retrieval of laboratory results supporting both provider and patient access. This connectathon will address the question whether accessing a patient's laboratory results using the DAF Observation resource the DAF DiagnosticReport resource as the 'entry' point to the information.
Chat Channel for DAF Connectathon Tract
On Zulip (How to sign up for Zulip for FHIR)
Prior: Connectathon Tract
September to be added.
Pre-Requisites
This track should require minimal client work in advance of the connectathon. If creating a server, advanced preparation will be required, but the scenarios listed below should limit the effort. The scenarios match, or build on, the existing Argonaut requirements.
Review the FHIR Search API including:
Review U.S. Data Access Framework (DAF) Core FHIR Implementation Guide (IG)
Including:
- DAF Core Allergies Profile
- DAF Core Condition(Problem) Profile
- DAF Core DiagnosticReport Profile
- DAF Core MedicationStatment Profile
- DAF Core Medication Profile
- DAF Core Patient Profile
- DAF Core Results Profile
Submitting WG/Project/Implementer Group
FHIR-I, Argonaut
Justification
- This is a logical next step to FHIR connectathon Track 1 - Patient access that conforms to a specific profile.
- Its purpose is to provide a the next step for folks creating the simple FHIR client for accessing a patient. It is quite feasible to complete the client side of the track within a day with only knowledge of a development environment - no previous FHIR knowledge.
- The Data Access Framework (DAF) Core profiles are based on the Argonaut project. This is another opportunity to use test the profiles, identify issues, and help progress the standard and profile to maturity.
Proposed Track Lead
Coordinator: Nagesth Bahsyam (Dragon), Brett Marquard
Track Lead: Nagesth Bahsyam (Dragon)
Expected participants
The expected participants are those implementing DAF profiles, vendors planning to implement FHIR/DAF profiles for 2015 API certification criteria and participated in the Argonaut Sprint in Summer 2015. This includes EHR Vendors and Application developers.
Roles
FHIR Client
Refer to the 2015 Edition Common Clinical Data Set for more information.
These requirements are intended to meet the 2015 Edition ONC Certification criterion Patient Selection 170.315(g)(7) and 170.315(g)(8).
- Enable the retrieval of the DAF Patient
- Enable the retrieval of all of a patient's Problems
- Enable the retrieval of all of a patient's Allergies
- Enable the retrieval of all of a patient's Medications
- Enable the retrieval of all of a patient's Lab Results
FHIR Server
The server is capable of returning all the search requests listed above following the conformance requirements at DAF-core responder for servers.
Servers are expected to have some prepopulated for each of the resources specified with appropriate linking between resources. See Testscript Section below for source files for each of the scenarios listed below: This is a starting point and should be supported by each server.
Please add your system information here: DAF Participant Tracker
Scenarios
1. Search for a patient based on one or more parameters specified by DAF Responder conformance statement
- Action: DAF Requestor (client) searches the patient Service for patients with at least 2 patient elements - for example last name and gender GET [base]/Patient?family=[string]&gender=[code]
- Precondition: Patients with the search criteria have been created
- Success Criteria: patients displayed in interface. (use browser query to confirm)
To get started sample patient data for a patient is provided here and as example resource files in the TestScripts Section below. This patient is used in other example resource listed below. The use of this data is not required for successfully completing this track. Participants can use their own data.
id | name.last | name.given[1] | name.given[2] | gender | birthdate | race | ethnicity |
dafpid-1001 | Shaw | Amy | V. | female | 2007-03-20 | White | Non-Hipanic |
2. Search for all Conditions or Medications or Allergies for a patient
- Action: Client and Server support querying of:
- DAF Condition for all of a patient's Problems including current as well as historical problems using GET /Condition?patient=[id].
- DAF Allergy for all of a patient's Allergies using using GET /AllergyIntolerance?patient=[id].
- DAF MedicationStatement for all of a patient's Medications: using GET /MedicationStatement?patient=[id]..
- Precondition: There is a DAF Condition or DAF MedicationStatement or DAF Allergy resourcesthat has been created in the system.
- Success Criteria: All DAF Condition or DAF MedicationStatement or DAF Allergy resource data for a patient are displayed in an interface.
- Bonus point:
- Client Server supports querying of DAF MedicationStatement based on patient.id and date period using GET [base]/MedicationStatement?patient=[id]&[eq|lt|gt|geyyyy-mm-dd{&eq|lt|gt|geyyyy-mm-dd}]
- Client Server supports querying of DAF Condition, on patient.id and category="problems" using GET /Condition?patient=[id]&category=problem.
To get started sample data for the patient listed above is provided here and as example resource files in the TestScripts Section below. The use of this data is not required for successfully completing this track. Participants can use their own data.
Conditions | SNOMED-condition | Allergies | SNOMED-allergies | Medications | RxNorm |
Hypertensive disorder | 38341003 | none | 160244002 | lisinopril oral | 206765 |
Hyperlipidemia | 55822004 | simvastatin oral | 312961 | ||
Depressive disorder | 35489007 | sertraline (Zoloft) | 208149 |
3. Search for all Laboratory Results for a patient
NOTE: This scenario is testing the assertion that laboratory tests and panels can be accessed using only the Observation resource instead of the DiagnosticReport resource. It will test whether the workflow based elements ( .request ) and report and display elements ( .codedDiagnosis, and .presentedForm ) in DiagnosticReport are needed for the DAF use cases.
- Action: Server and Client support query of DAF-Results (Observation Resource) based on patient.id and category = "laboratory" using GET [base]/Observation?patient=[id]&category=laboratory
- Precondition: DAF-Results have been created in the system.
- Success Criteria: all lab results resource data is displayed in interface.
- Bonus point:
- Client and Server support date/period based querying of DAF-Results using GET [base]/Observation?patient=[id]&category=laboratory&[eq|lt|gt|geyyyy-mm-dd{&eq|lt|gt|geyyyy-mm-dd}]
- Client and Server support for retrieving imaging data and anatomic pathology data. (one option would be to use the .valueAttachment element for images or formatted reports)
To get started sample data for the patient is provided below. The use of this data is not required for successfully completing this track. Participants can use their own data.
LOINC # | Long Common Name | UCUM | Comment |
---|---|---|---|
58410-2 | Complete blood count (hemogram) panel - Blood by Automated count | Panel of Common Hematology Tests | |
718-7 | Hemoglobin [Mass/volume] in Blood | g/dL | Quantitative Test, This is the the code included in the CBC auto. It is NOT obtained via the automated counting but uses a chemistry method just like most other hemoglobins |
789-8 | Erythrocytes [#/volume] in Blood by Automated count | 10*6/uL | Quantitative Test |
786-4 | Erythrocyte mean corpuscular hemoglobin concentration [Mass/volume] by Automated count | g/dL | Quantitative Test |
785-6 | Erythrocyte mean corpuscular hemoglobin [Entitic mass] by Automated count | pg | Quantitative Test |
770-8 | Neutrophils/100 leukocytes in Blood by Automated count | % | Quantitative Test, This cell type is counted by all modern automated differential machines; so most results will be reported under the LOINC code with method of automated count. |
LOINC # | Long Common Name | UCUM | Comment |
---|---|---|---|
24323-8 | Comprehensive metabolic 2000 panel - Serum or Plasma | Panel of Common Blood Chemistries | |
2160-0 | Creatinine [Mass/volume] in Serum or Plasma | mg/dL | Quantitative Test |
2823-3 | Potassium [Moles/volume] in Serum or Plasma | mmol/L | Quantitative Test |
2951-2 | Sodium [Moles/volume] in Serum or Plasma | mmol/L | Quantitative Test |
3094-0 | Urea nitrogen [Mass/volume] in Serum or Plasma | mg/dL | Quantitative Test, Usually called BUN |
2028-9 | Carbon dioxide, total [Moles/volume] in Serum or Plasma | mmol/L | Quantitative Test |
2075-0 | Chloride [Moles/volume] in Serum or Plasma | mmol/L | Quantitative Test |
17861-6 | Calcium [Mass/volume] in Serum or Plasma | mg/dL | Quantitative Test |
2339-0 | Glucose [Mass/volume] in Blood | mg/dL | Quantitative Test |
1975-2 | Bilirubin.total [Mass/volume] in Serum or Plasma | mg/dL | Quantitative Test, Total bilirubin = direct + indirect. |
LOINC # | Long Common Name | UCUM | Comment |
---|---|---|---|
24356-8 | Urinalysis complete panel - Urine | Panel of Common Urine Tests | |
5778-6 | Color of Urine | Qualitative Test (Nominal) | |
32167-9 | Clarity of Urine | Qualitative Test (Nominal) | |
25428-4 | Glucose [Presence] in Urine by Test strip | Qualitative Test (Ordinal) | |
5770-3 | Bilirubin.total [Presence] in Urine by Test strip | Qualitative Test (Ordinal) | |
2514-8 | Ketones [Presence] in Urine by Test strip | Qualitative Test (Ordinal) | |
5811-5 | Specific gravity of Urine by Test strip | Quantitative Test | |
5803-2 | pH of Urine by Test strip | [pH] | Quantitative Test |
20454-5 | Protein [Presence] in Urine by Test strip | Qualitative Test (Ordinal) | |
20405-7 | Urobilinogen [Mass/volume] in Urine by Test strip | mg/dL | Quantitative Test |
5802-4 | Nitrite [Presence] in Urine by Test strip | Qualitative Test (Ordinal) | |
5794-3 | Hemoglobin [Presence] in Urine by Test strip | Qualitative Test (Ordinal) | |
5799-2 | Leukocyte esterase [Presence] in Urine by Test strip | Qualitative Test (Ordinal) | |
11279-7 | Urine sediment comments by Light microscopy Narrative | Narrative Test | |
25145-4 | Bacteria [Presence] in Urine sediment by Light microscopy | Qualitative Test (Ordinal) | |
5787-7 | Epithelial cells [#/area] in Urine sediment by Microscopy high power field | /[HPF] | Semi-Quantitative Test. Although reported as a range this is probably an ordinal list ( e.g. 1-10, 10-40, 40+) |
5821-4 | Leukocytes [#/area] in Urine sediment by Microscopy high power field | /[HPF] | Semi-Quantitative Test Although reported as a range this is probably an ordinal list ( e.g. 1-10, 10-40, 40+) |
13945-1 | Erythrocytes [#/area] in Urine sediment by Microscopy high power field | /[HPF] | Semi-Quantitative Test Although reported as a range this is probably an ordinal list ( e.g. 1-10, 10-40, 40+) |
Results
Servers
Epic
Cerner
CareEvolution
Helios
Test Servers
Clients
VA
CareEvolution
Qvera
Web Client tools
Testing
Aegis
Crucible
Discussion
- Basic Search and Fetching demonstrated including resources beyond the cases in the track
- Discussion on Observations v Diagnostic Report - no resolution
- Looking at fetching the last n Observations
- Clarity on server behavior when omitting the search parameter
Help Links
Here are some links to assist implementers:
- REST API in the Specification.
- Patient resource in the Specification.
- Java client sample.
- .net client sample.
- Publicly Available FHIR Servers for testing.
TestScripts
The supporting TestScripts resources, corresponding test-case examples resources files, and test plan documents have been committed to the FHIR SVN repository at:
http://gforge.hl7.org/svn/fhir/trunk/connectathons/BaltimoreSep2016/Connectathon13/DAF
>> Use an SVN browser such as Tortoise to view files
There are XML and SON TestScripts definitions for each of the tracks listed above:
- Patient (Patient Resource)
- Allergies (AllergyIntolerance Resource)
- Condition (Condition(Problem Resource)
- Medications (MedicationStatement Resource)
- Lab Reslts (Observation Resource)
A list of the example resource files:
- AllergyIntolerance\resources\dafallerg-1001.xml
- Condition\resources\dafcond-1001.xml
- Condition\resources\dafcond-1002.xml
- Condition\resources\dafcond-1003.xml
- MedicationStatement\resources\dafmed-1001.xml
- MedicationStatement\resources\dafmed-1002.xml
- MedicationStatement\resources\dafmed-1003.xml
- Observation\resources\daflab-1001.xml
- Observation\resources\daflab-1002.xml
- Observation\resources\daflab-1003.xml
- Observation\resources\daflab-1004.xml
- Observation\resources\daflab-1005.xml
- Observation\resources\daflab-1006.xml
- Observation\resources\daflab-1007.xml
- Observation\resources\daflab-1008.xml
- Observation\resources\daflab-1009.xml
- Observation\resources\daflab-1010.xml
- Observation\resources\daflab-1011.xml
- Observation\resources\daflab-1012.xml
- Observation\resources\daflab-1013.xml
- Observation\resources\daflab-1014.xml
- Observation\resources\daflab-1015.xml
- Observation\resources\daflab-1016.xml
- Observation\resources\daflab-1017.xml
- Observation\resources\daflab-1018.xml
- Observation\resources\daflab-1019.xml
- Observation\resources\daflab-1020.xml
- Observation\resources\daflab-1021.xml
- Observation\resources\daflab-1022.xml
- Observation\resources\daflab-1023.xml
- Observation\resources\daflab-1024.xml
- Observation\resources\daflab-1025.xml
- Observation\resources\daflab-1026.xml
- Observation\resources\daflab-1027.xml
- Observation\resources\daflab-1028.xml
- Observation\resources\daflab-1029.xml
- Observation\resources\daflab-1030.xml
- Observation\resources\daflab-1031.xml
- Observation\resources\dafpanel-1001.xml
- Observation\resources\dafpanel-1002.xml
- Observation\resources\dafpanel-1003.xml
- Patient\resources\dafpid-1001.xml
- Patient\resources\dafpid-1002.xml
- Patient\resources\dafpid-1003.xml