Are you looking for a simple explanation of a FHIR server and the instructions for building one?
You’ve come to the right place.
Table of Contents
What Is an FHIR Server?
A FHIR server is a system that stores, retrieves, and exchanges healthcare data following the FHIR (Fast Healthcare Interoperability Resources) standard. It enables the practical implementation of the FHIR standard for healthcare data exchange. As Nerd for Tech points out, the FHIR standard is akin to a programming language; it provides rules and structure necessary for implementation, but a platform is needed to bring it to life. The FHIR server is the platform that enables the implementation of the FHIR standard.
Let’s define FHIR to better understand the concept of FHIR servers. FHIR is an interoperability standard for healthcare data exchange developed by the nonprofit Health Level 7 International (HL7). The FHIR standard sets the rules for web applications and computer systems to communicate with each other. The FHIR server is the tool that lets you develop applications using the FHIR standard.
Capabilities of FHIR Servers
FHIR servers provide functionalities so you can develop FHIR applications. Different FHIR servers offer different functionalities but all follow the same FHIR standard to ensure compatibility. Here are the basic capabilities or functionalities of all FHIR servers:
Data storage
FHIR servers store healthcare data in compliance with the FHIR standard. Data includes patient records, clinical observations, diagnostic reports, medication information, and other relevant data elements.
Data retrieval via FHIR Rest APIs
A server for FHIR allows you to retrieve specific healthcare data elements or entire records based on various criteria, such as patient identifiers, data ranges, or clinical conditions. The retrieval capability is typically provided via FHIR REST APIs, which are client/server APIs following the principles of RESTful architecture.
Data exchange
FHIR servers facilitate healthcare data exchange between different apps and computer systems. They support data transmission using the FHIR standard, allowing disparate healthcare IT systems and platforms to communicate with one another. For instance, an EHR platform using FHIR can exchange data with a mobile app using FHIR regardless of their developer.
Versioning
FHIR servers support versioning, allowing users to access historical versions of resources. HL7’s Managing Multiple FHIR Versions states that whenever data is exchanged in an FHIR server, a specific FHIR version applies to the entire interaction. That FHIR version applies to the RESTful URLs, search parameters, and the whole interaction. The FHIR client-server cannot understand each other without using the same FHIR version.
Security
FHR servers use security measures such as authentication, encryption, and audit logs to protect sensitive healthcare information. These measures ensure data privacy and compliance with HIPAA healthcare regulations.
Validating resources
FHIR servers validate resources. Validation ensures that incoming data complies with the FHIR specification. HL7’s Validating Resources shows that the following resources are validated: structure, cardinality, value domains, coding, invariants, profiles, questionnaires, and business rules.
Types of FHIR Servers
There are two main types of FHIR servers:
- Open Source: Free-to-use FHIR servers that provide basic functionalities you can customize. Examples are HAPI, Spark, Node on FHIR, MS FHIR server, FHIR Server for Azure, and IBM FHIR server.
- Commercial: FHIR servers that are not free but offer more functionalities to help you develop advanced solutions. Examples are Google Cloud Healthcare API, Smile CDR, and Aidbox.
Setting Up Your Own FHIR Server
To set up a FHIR server, follow these general steps:
1. Choose the FHIR server software
Choose between proprietary/commercial or open-source software. Consider your needs, technical expertise, scalability, speed of the service, and budget. If you’re interested in building an open-source FHIR server, visit the Confluence Public Test Servers page for a list of FHIR servers that are publicly available for testing.
2. Select the hosting environment
Do you want to host the FHIR server on-premises or in the cloud? On-premise Cloud hosting providers such as Amazon Web Services, Microsoft Azure, and Google Cloud offer convenient options for deploying and managing FHIR servers.
3. Set up and customize the server
Install and configure the software for your chosen FHIR server according to your organization’s needs. Different servers will follow different steps, and there are numerous tutorials online. FHIR server documentation vary, so carefully read the documentation for your selected server.
4. Configure security
Ensure that security measures are in place to protect healthcare data. You should configure authentication mechanisms (e.g., OAuth, OpenID Connect), encryption protocols, access controls, and audit logs.
5. Load your data
If you’re migrating from a different server or importing for an external source, transfer the data to your FHIR server. Check the formatting according to FHIR specifications.
6. Test and validate
Thoroughly test the FHIR server and make sure it’s functioning correctly. Healthcare data should be stored, retrieved, and exchanged with other systems and apps without problems.
7. Maintain your server
Continuously monitor the performance and security of your FHIR server. Data should be regularly backed up, updated, and maintained to ensure optimal performance and reduce security risks. Monitoring your server is critical in helping you comply with evolving healthcare regulations and standards.