GNU Health/Using the FHIR REST server
Fast Healthcare Interoperability Resources (FHIR) is a standard for exchanging healthcare information electronically developed by HL7. The standard defines a common interface for medical software interoperability. For more reading, look at the FHIR standard.
The FHIR standard defines a REST API, a set of interactions with each resource. Each resource handles different types of information. Currently, the GNU Health FHIR server supports 12 resources:
- Conformance: Describes the server's FHIR capabilities.
- Patient: Patient information, like email, address, SSN, etc.
- DiagnosticReport: Completed lab tests, but not the data
- Observation: Lab data, like Uric Acid values
- Practitioner: Health professionals and their information
- Procedure: Surgeries/operations
- Condition: Diseases/diagnoses
- FamilyHistory: Family histories of patients
- Medication: Medications (not prescriptions!)
- MedicationStatement: Medications taken by a patient
- Immunization: Immunizations
- Organization: Institutions, departments, companies, etc.
Each resource has its own endpoint. For example, the Patient endpoint is found at /Patient, the DiagnosticReport endpoint at /DiagnosticReport, and so on. The only exception to this naming schema is the Conformance endpoint which is found at / and /metadata.
The interactions use HTTP verbs. Simple read and search interactions with GET, and so on.
For further reading into the REST design, read the documentation
Note: Currently, the GNU Health FHIR server has no write functionality.
All resources, except for Conformance, require authentication. The server authenticates with the user credentials of the underlying GNU Health/Tryton server. Login with your user credentials at /auth/login. Logout at /auth/logout. There is a simple welcome page for logged-in users at /auth/home.
Searching / Listing
To search a resource, simply add arguments to the endpoint to refine the search. For example, /Patient, will return all the patients on the server. /Patient?name=ana will return all the patients with Ana in their name.
Note: Many search criteria for the GNU Health FHIR server are not supported yet. Refer to the FHIR documentation for more information.
Test Server Examples
Some examples with the community FHIR server (may need to sign in):
- List all patients
- Show info for patient id #1
- List all patients with ana in name
- List all surgeries
- List page 2 of lab data with 3 per page
- List lab data for people with betz in last name
- List lab data for patient #1
- List all CBCs for patient #1