Healthcare interoperability is notoriously complex. It’s a tangled mix of fragmented legacy systems, inconsistent data standards, and competing vendor implementations. These factors create significant challenges that make sharing electronic health data incredibly difficult.
At the heart of this compound issue lies the need for frameworks that help different systems speak the same language. FHIR and HL7 have taken on this mission, each representing a different generation and philosophy of healthcare data exchange.
In this blog post, our healthcare developers will compare HL7 and FHIR based on their architecture, data format, complexity, and real-world use — so you can choose the most suitable integration approach for your healthcare software.
Key takeaways
- If you’re developing healthcare software and not optimizing for open data standards, you’re limiting your future compatibility.
- FHIR and HL7 coexist in a modern healthcare environment, with HL7 enabling integrations with legacy systems and FHIR powering newer applications and tools.
- Reusable middleware, validation tools, and smart mapping layers help development teams connect different healthcare applications and systems for smooth data-driven workflows.
What is HL7?
HL7 (Health Level Seven) is a family of standards developed for exchanging, integrating, sharing, and retrieving electronic health information. The standard is a legacy of Health Level Seven International, a standards development organization. The ‘7’ in the organization’s name is a nod to Layer 7 in the Open Systems Interconnection (OSI) reference model — the layer that governs how applications interact over a network.
HL7 standards determine the structure and format for healthcare messaging and data exchange. They stand behind decision support systems, rules syntax, and standardized health data definitions used across clinical documents, electronic health records (EHRs), personal health records (PHRs), claims attachments, quality reporting, prescription drug labeling, and clinical genomics.
How HL7 has evolved over the years: HL7 versions
HL7 dates back to the 1980s, when the healthcare industry began to adopt digital medical records. Since then, the standard has undergone several iterations, each introducing new capabilities that have set the standard for current interoperability realities.
1987 — HL7 founded
In 1987, HL7 International was established as a non-profit standards development organization to create protocols for exchanging data with hospital information systems.
Late 1980s — HL7 Version 1&2
In 1987, the HL7 organization piloted HL7 Version 1 to test the waters and gather input from the healthcare industry. HL7 Version 2 (v2) followed and quickly became the most widely used healthcare messaging standard in the world, with ISO and other national standards now advocating for it.
Early 2000s — HL7 Version 3
Because HL7 v2 was way too flexible, every healthcare organization had its own way of implementing it, which made it hard for systems to fully understand each other. HL7 v3 was rolled out to make the rules stricter and more consistent, so that all systems could send and receive health data in the same way.
However, this version saw limited adoption because it was technically complex and lacked backward compatibility with HL7 v2. That made HL7 v2 the dominant standard for the years to come.
2004 — CDA (Clinical Document Architecture)
As part of HL7 v3, the CDA standard was introduced to structure clinical documents like discharge summaries or progress notes using XML. CDA achieved moderate success, especially in government-led initiatives, but still lacked flexibility for dynamic, API-driven access to patient data. Nevertheless, CDA remains a key standard in regulatory frameworks and initiatives such as Meaningful Use in the U.S.
Today — Coexistence of standards
Today, HL7 is implemented in 35 countries worldwide, within 95% of the U.S. healthcare organizations. HL7 v2 is still a mainstay in many legacy healthcare systems. However, the push toward modern, API-based interoperability has shifted the spotlight to FHIR (Fast Healthcare Interoperability Resources).
Let's take a closer look at the HL7 standards family:
Standard | HL7 V2 | HL7 V3 | HL7 CDA | HL7 CCD | HL7 SPL | HL7 EHR-S FM | HL7 PHR-S FM |
---|---|---|---|---|---|---|---|
Main focus | Messaging framework for exchanging clinical data | Unified data interoperability model | Structured format for clinical documents | Summaries for patient care transitions | Pharmaceutical products | Functional blueprint for electronic health records | Functional guidelines for personal health records |
Data structure | Delimited plain text (`, ^, ~, \, &, `) | XML | XML | XML (part of HL7 V3) | CDA-derived XML | Functional requirements model | Functional requirements model |
Used for | Transmitting admission, discharge, and transfer (ADT) messages, lab results, etc. | System-wide standardization across organizations | Creating documents like discharge summaries, visit notes | Consolidating patient histories between providers | Submitting drug label content to regulatory bodies | Outlining EHR feature sets | Defining core functions for PHR systems |
Current adoption | Extensive | Minimal | Well adopted for documentation purposes | Widely implemented in care transitions | Mainly used in regulatory environments | Standard reference for EHR certification | Reference model for PHR development |
What are the key use cases for HL7?
In the healthcare industry, standards don’t change overnight, at least not with 42% hospitals still using legacy systems built around HL7 v2 or CDA. That’s why HL7 integration has a wide applicability area to this day:
- Electronic Health Record (EHR) integration — HL7 lets hospitals, clinics, and labs share patient records.
- Laboratory Information System (LIS) integration — The standard streamlines lab orders and results delivery (e.g., HL7 ORU messages for lab reports).
- Radiology Information System (RIS) integration — Through such messages as HL7 ORM and ORU, HL7 enables the exchange of imaging orders and reports with PACS (Picture Archiving and Communication Systems).
- Patient admission, discharge, and transfer (ADT) workflows — To keep patient demographics and encounter data relevant across health systems, healthcare providers use HL7 ADT messages to update systems in real time.
- Health Information Exchanges (HIEs) — HL7 and CDA provide a blueprint for structuring data for cross-system communications.
- Public health reporting — Using HL7 v2.x or HL7 CDA formats, healthcare providers send immunization data, infectious disease reports, and other public health information to state and federal agencies.
This is not an exhaustive list of all HL7 use cases. Overall, the HL7 family of standards is the default approach for healthcare data exchange in legacy systems, while in newer systems it’s often used internally or at integration points to enable compatibility with older partners or infrastructure.
What is FHIR?
Fast Healthcare Interoperability Resources, or FHIR, is a newer interoperability standard that builds upon previous standards (the HL7 family) but uses modern web technologies like RESTful APIs, XML, JSON, and HTTP to simplify software implementation.
This information network has been introduced by Health Level Seven International to enable doctors and patients to share health data across various devices, allowing third-party developers to create secure medical apps that can be linked to existing hospital systems.

Because of FHIR:
- A patient can use a mobile app to pull their real-time heart rate or blood pressure from a smartwatch.
- Doctors can access lab results or X-rays from different hospitals in a single dashboard.
- Telehealth platforms can interface with hospital records to provide doctors with an instant snapshot of a patient's history during virtual visits.
Why was FHIR developed in the first place, and what are its main advantages?
FHIR’s development began in 2012 with the goal of creating a faster, easier, and better method for passing on patient data. Additionally, the healthcare industry was in dire need of a developer-friendly standard that worked well with the web and modern software development practices — something that existing standards like HL7 v2 and CDA couldn’t support.
Additionally, FHIR came with a few other benefits that, to an extent, led to U.S. regulatory bodies, such as ONC, CMS, and others, strongly supporting and mandating this standard in healthcare. The main benefits of FHIR include:
- Ease of implementation — Developers can implement basic integrations and interfaces in a few weeks, as they don’t have to navigate complex legacy formats.
- Interoperability out of the box — Even with no workarounds, FHIR still allows for basic data exchange between systems, which is not the case with older standards like HL7 v2.x.
- Modularity — Developers don’t have to implement the entire FHIR spec, and they can work with only the resources relevant to their app.
- Flexibility — FHIR can flex to accommodate different workflows, use cases, and healthcare settings. Additionally, it works both for read and write operations, real-time updates, and bulk data export.
- Support from major technology and EHR vendors — Major vendors, including Apple, Microsoft, Google, Epic, Cerner, and most other EHR vendors, use FHIR at the heart of their platforms.
- HL7-compatible by design — FHIR can co-exist and communicate with older HL7-based systems.
What are the main components of FHIR?
As we’ve mentioned earlier, FHIR offers out-of-the-box interoperability. It does that by providing a set of data elements, also known as resources, which cover the majority of clinical use cases when combined through references. When it comes to niche use cases, developers can customize FHIR resources through profiling without breaking the core standard. Resources, references, and profiles are the main components behind FHIR development.
FHIR Resources
In FHIR, healthcare information is broken down into categories such as patients, medications, laboratory results, conditions, and many others. Each of these categories is associated with a FHIR Resource that defines the component data elements, data limitations, and data relationships, which together make up a shareable patient record. Developers can combine these Resources to model real-world healthcare scenarios, like a hospital visit with test results and a diagnosis.
FHIR References
Instead of piling all healthcare data together, the FHIR standard keeps information lean and modular, storing patients, encounters, conditions, lab results, and medications as separate resources. References link FHIR Resources together, so that healthcare systems can fetch only the data they need, when they need it.
As Resources are based on open web technologies, each of them has a unique absolute or relative URL, which enables developers and healthcare systems to navigate data (similar to browsing web pages via links).
Here’s how FHIR uses URLs to link resources: the Observation (a lab test result) includes a reference to the patient and a reference to the encounter.
{
"resourceType": "Observation",
"id": "obs456",
"status": "final",
"code": {
"coding": [{
"system": "http://loinc.org",
"code": "718-7",
"display": "Hemoglobin [Mass/volume] in Blood"
}]
},
"valueQuantity": {
"value": 13.5,
"unit": "g/dL",
"system": "http://unitsofmeasure.org",
"code": "g/dL"
},
"effectiveDateTime": "2025-07-28T10:30:00Z",
"subject": {
"reference": "https://api.hospital.com/fhir/Patient/123"
},
"encounter": {
"reference": "https://api.hospital.com/fhir/Encounter/789"
}
}
FHIR Profiles
A Profile is a set of rules that customizes a standard FHIR resource to fit a specific context, such as a unique way of recording allergy information or additional fields in the Patient resource. By using Profiles, developers can address local or domain-specific requirements without breaking interoperability and also tailor FHIR resources to real-world workflows.
For example, profiling allows healthcare developers to add new extensions to capture extra data, specify terminology bindings, and more. Profiles are often packaged in Implementation Guides (IGs), which group related Profiles, ValueSets, and documentation for a specific project or jurisdiction, such as US Core, IPS, or NHS UK.
SMART on FHIR
SMART began as a separate project from FHIR and later pivoted to adopt FHIR as the data layer. Today, SMART on FHIR provides a framework and a toolbox for developing FHIR-based applications and also serves as a platform to publish and access FHIR applications. At its core, SMART on FHIR extends the FHIR API with authentication, authorization, and context management.
Through SMART on FHIR, developers can:
- Securely roll out apps within EHRs, portals, or standalone environments.
- Request scoped access to specific categories of FHIR data.
- Fetch contextual data, like the currently selected patient or encounter, when their app is launched.
For healthcare providers, the combination of SMART on FHIR and CDS Hooks is an easy and secure way of sharing patient information with outside experts and new data exchange partners, whether it’s a pharmacy or a diagnostic lab.
In the US, SMART on FHIR, especially its data security components such as OAuth 2.0 and OpenID Connect for API access, is mandated by the ONC’s 21st Century Cures Act Final Rule to ensure that certified health IT systems provide secure, standardized access to electronic health data.
Feature | SMART on FHIR | FHIR |
---|---|---|
User authentication (login) | Yes (OpenID Connect) | No |
Authorization | Yes (OAuth2) | No |
Data models | From FHIR | FHIR resources |
Data access | From FHIR | REST API |
Data format | From FHIR | JSON and XML |
Use cases | Apps that access EHR data securely | APIs to access health data (EHR, research, interoperability) |
HL7 vs. FHIR: Side-by-side comparison
While both health information exchange standards focus on facilitating easier health data exchange, each takes a fundamentally different approach to achieve this goal. HL7 v2 sends healthcare data as specific messages directly from one system to another, with each message requiring an immediate response before moving on. This transactional, point-to-point message exchange pattern makes it trickier to add or change systems, while messages have to adhere to strict formats.
As a newer standard, FHIR is premised on a web-based exchange of messages, which is resource-focused, ad hoc, asynchronous, and client-driven. This approach is much more scalable and flexible, allowing system users to bring in data on demand from anywhere.
Our developers have wrapped the core differentiators between FHIR and HL7 in a table below:
Aspect | HL7 | FHIR |
---|---|---|
Data structure | Delimited segments and messages | Modular “Resources” with common formats and behaviors |
Supported data formats | ER7 (pipe-delimited text) | JSON, XML, RDF |
API style | Point-to-point, tightly coupled messaging interfaces | RESTful APIs using HTTP methods (GET, POST, PUT, DELETE) |
Ease of implementation | Complex, requires custom interfaces and coding | Designed for simplicity and fast implementation with modern web standards |
Tooling support | Limited off-the-shelf tools | Rich ecosystem with libraries, SDKs, and tools for web and mobile |
Security | Point-to-point security (VPN, firewalls) | HTTPS, OAuth 2.0, role-based access, audit logs, encryption |
Clinical terminologies | Uses some standard codes (LOINC, SNOMED) plus custom codes | Emphasizes standard global terminologies and ontologies |
Scalability | Point-to-point interfaces limit scalability | Scalable, web-based, supports cloud, mobile, and IoT |
Implementation speed | Slower due to complexity and legacy constraints | Faster app development using modern web tools and APIs |
When to use FHIR vs HL7
As a healthcare software development partner, we’ve worked with both large and small healthcare companies — some of which are still operating on old HL7 v2 infrastructures, while others are developing mobile-first platforms from scratch using FHIR. From our experience, both approaches have their place and often work in tandem, depending on the workflows and systems in the mix.
HL7 is the right choice when:
- You need to integrate with legacy hospital systems, like EHRs, LIS, and RIS platforms that still rely on HL7 v2.x messaging.
- You need to support ADT workflows for care transitions (as HL7 A01, A03, and A08 are default standards for this use case).
- You’re working on lab or radiology data pipelines (ORU messages for test results or ORM messages for imaging orders).
- You’re developing batch ETL jobs or scheduled syncs.
- You need to output CDA documents or HL7 v2 messages to meet government/payer requirements for public health reporting, immunizations, or Meaningful Use.
- You’re building for environments with point-to-point VPNs or static IP whitelisting.
HL7 FHIR is the modern standard to embrace for:
- Developing mobile or patient-facing applications.
- Implementing features that need real-time, on-demand data access (remote patient monitoring tools, dashboards, clinical decision support)
- Setting up data harmonization services that fetch data from multiple resources into a unified view.
- Enabling external or third-party integrations.
- Building compliant tools that enable patients to access their health data through certified FHIR APIs.
- Developing scalable, cloud-native healthcare systems.
When a hybrid HL7 + FHIR approach makes sense
Healthcare tech setups are rarely black and white. In practice, newer healthcare tools are often integrated with legacy systems because, in that case, healthcare companies can benefit from innovations without overhauling existing systems. That’s why in many healthcare projects, developers have to layer FHIR on top of HL7, either through bridges or adapters, to bypass complicated data exchange processes.
Here’s when a hybrid model pays off:
- You want to level up your tech stack without a full rip-and-replace (HL7 for core systems, FHIR APIs expose the same data to web apps, mobile tools, and partners).
- You need middleware that translates HL7 v2 messages into FHIR resources so that modern apps can work with legacy data in a standard way.
- You’re dealing with legacy backends (EHRs, LIS, RIS), but the front end must be modern (patient apps).
- You want to upgrade incrementally and start with replacing individual modules with FHIR-powered tools, while leaving other workflows to operate on HL7.
- You need a FHIR facade on top of an HL7-based backend to comply with the Cures Act.
FHIR and HL7 integration challenges we solved in our projects
We’ve delivered over 30 healthcare projects, and we can confidently say that no two integrations are alike. Each project presents unique challenges — enough to warrant a dedicated blog series. So, instead, we’ve focused on a few cases.
Inconsistent HL7 message structures across vendors
In one of our integration projects, our client had an entire set of systems, including an Epic EHR, a standalone LIS, and a legacy radiology platform, that sent the same type of HL7 v2 messages. However, each of these systems had its own way of implementing HL7 v2 messages, which made direct integration risky and could lead to data loss or misinterpretation.
We solved this problem by setting up a message normalization layer based on Mirth Connect. That layer acted as a central translation engine, transforming incoming HL7 messages from each system into a unified format. Custom transformation rules are what helped us take care of variations like custom Z-segments, optional fields, and differences in patient identifiers and date formats.
No mature infrastructure for integration
Like many other healthcare startups, one of our clients initially relied on simple integration methods to interface their telehealth application with healthcare systems. Specifically, our client’s setup included point-to-point interfaces and manual data imports, which meant that every new data source required custom code. Setups of this kind don’t scale without a battle.
In cases like this one, developing a cloud-based, scalable, centralized integration platform is the logical move because it can handle all the heavy lifting related to data format normalization and message translation. We used middleware to implement this translation and routing logic, and added API gateways for access management, throttling, and authentication. Also, integrating message brokers into the mix enabled asynchronous communication handling and extra reliability when network conditions are unreliable.
Variability in FHIR implementations
FHIR was designed to be flexible — and it’s a double-edged sword, because this flexibility can result in polar interpretations of the same resource. In one of our healthcare projects, we were hooking up our client’s app with multiple FHIR-based systems. All of these systems technically followed the FHIR specification. In reality, what our developers saw was a patchwork of profiles, extensions, and quirks, which we couldn’t deal with in the same way because of potential data mismatches and lost information.
As a solution, we built a flexible translation layer into the integration platform. The layer could dynamically map incoming FHIR resources to a clean, normalized internal model. It helped the system identify when different data parts were missing or arranged differently, and when different words or codes were used for the same thing — and then fix all that. Whenever possible, we followed official FHIR StructureDefinitions and ImplementationGuides, but for undocumented implementations, our developers implemented custom validation and logic.
Partner with our healthcare integration experts for risk-free implementation
FHIR and HL7 integrations are in a category of their own in healthcare development projects. In most cases, such integrations are not plug-and-play, requiring development teams to come up with custom workarounds to bridge the systems. Having a tech team that’s hands-on with both standards means you’ll be able to handle variations in implementation, manage version differences, and keep up with the red tape.
Besides integration expertise, Orangesoft is well-versed in secure healthcare architectures, regulatory compliance (including HIPAA, ONC, and the 21st Century Cures Act), and QA frameworks.
Our team can assist you with:
- Mapping and normalizing diverse data formats.
- Managing security, authentication, and audit trails.
- Validating against official and custom profiles.
- Developing scalable middleware for real-time and batch data flows, and many other things.
Having a team that’s done it before (and built the tools to make it reusable) can make the difference between endless patchwork and a future-proof healthcare solution.