GNU Health/Using the FHIR REST server

FHIR OverviewEdit

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 StructureEdit

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 / ListingEdit

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 ExamplesEdit

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

FHIR REST server · Synchronization Guide