GNU Health/Using the FHIR REST server
FHIR Overview[edit | edit source]
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.
URL Structure[edit | edit source]
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.
Authentication[edit | edit source]
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[edit | edit source]
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[edit | edit source]
Some examples with the community FHIR server (may need to sign in):