FHIR® Basics
The iEHR platform leverages the FHIR® (Fast Healthcare Interoperability Resources) standard to store healthcare data, offering several benefits.
Why FHIR®?
Storing data according to the FHIR® standard provides the following benefits:
-
Interoperability: Increasingly, healthcare partners are exposing their data via FHIR® APIs. Storing your data according to the FHIR® specification smooths the path to interoperating with multiple partners.
-
Future Proofing: The healthcare ecosystem is complex and fragmented. Many digital health companies face costly data migrations due to these complexities. The FHIR® specification anticipates many of these challenges, helping teams avoid backend rewrites.
While FHIR® is powerful, it can have a learning curve. This guide covers the basic concepts for understanding FHIR® data in iEHR. For more information, refer to the official FHIR® documentation.
Storing Data: Resources
A core data object in FHIR® is called a Resource, similar to objects in object-oriented languages. The FHIR® standard defines over 150 Resource Types that model a broad range of healthcare-specific concepts, including concrete entities (e.g., Patient, Medication, Device) and abstract concepts (e.g., Procedure, CarePlan, Encounter). Each field in a resource is called an Element, which can be a primitive type (e.g., string, number, date) or a complex type (e.g., HumanName). All resources have an id element, a server-assigned identifier that serves as their primary key.
Linking Data: References
Clinical data in FHIR® is often split across multiple resources. For example, a prescription is related to the receiving patient, and a diagnostic report may consist of multiple observations. To link objects, FHIR® uses Reference elements, functioning like foreign keys in relational databases to create relationships between resources. Reference elements typically include the reference and display elements.
Querying Data: Search
FHIR® resources cannot be searched by arbitrary fields. Instead, the specification defines specific search parameters for each resource that can be used for queries. Refer to the iEHR search documentation for a more in-depth tutorial on FHIR® search.
Standardizing Data: Codeable Concepts
The healthcare system uses standardized coding systems to describe diagnoses, procedures, clinical outcomes, and billing information. Commonly used code systems in the U.S. include ICD-10 (diagnoses), LOINC (clinical measurements and lab results), HPRA or NDC (medications), and SNOMED (workforce administration, clinical findings). The FHIR® CodeableConcept element type handles the mapping from concept to system, consisting of a text element (describing the concept in plain language) and a coding element (an array of system-code pairs providing the standard code for the concept within each code system).
Naming Data: Identifiers
Healthcare applications often deal with entities having multiple identifiers in different systems. For example, a patient might be identified by their Social Security Number (SSN), Medical Record Number (MRN), Medicare Beneficiary Identifier, or Driver's License Number. FHIR® allows each resource to have multiple identifiers, defined by a system-value pair. The system acts as a namespace for the identifier, specified as an absolute URL to ensure global uniqueness.
Listening for Changes: Subscriptions
FHIR® includes a Subscription resource to define push-based subscriptions to resources, similar to webhooks. A Subscription has two primary elements: criteria (a string expression defining which resources to listen to, specified in FHIRPath format) and channel (describing the action the Subscription will take when it sees a matching resource). In iEHR, a powerful feature is using a iEHR Bot as the endpoint of the rest-hook channel, allowing you to run code in response to data changes and automate medical workflows.
For more detailed information, feel free to contact us at hello@iehr.ai .