Usage

FHIR Overview

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

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

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=Matt will return all the patients with ‘Matt’ in their name.

Note

There are still search criteria for the GNU Health FHIR server to implement, as using more than one search argument

Refer to the FHIR documentation for more information.

Test Server Examples

Some examples with the community FHIR server (may need to sign in):