HL7 v2 vs v3 vs CDA vs FHIR — which version should you choose?

Among the four HL7 standards lines, no single line "fully replaces" another. HL7 v2 remains the integration backbone inside hospitals, FHIR is the open API for mobile and AI, CDA still owns signed clinical documents, and HL7 v3 is now confined to a handful of national systems.

This page is for hospital CIOs and developers preparing an RFP or selecting a standard for a new project. After reading, you can decide "which HL7 to specify in the RFP" for each Vietnamese use case: social health insurance (BHYT), EMR under Circular 13/2025/TT-BYT, patient-facing apps, and integration with VNeID — Vietnam's national digital identification app.

TL;DR

  • HL7 v2 — internal HIS-LIS-RIS-PACS integration, real-time, low cost; HL7/NLM reports adoption in roughly 95% of US healthcare organizations and deployments in 35+ countries.
  • FHIR R4 — open API for mobile, AI, and integration with VNeID/BHXH (Vietnam Social Security); the default choice for greenfield projects in 2026 and beyond.
  • CDA R2 — document exchange (discharge summaries, referrals, medical records) requiring digital signatures; can migrate gradually to FHIR Composition.
  • HL7 v3 — not recommended for new projects; only use when forced to integrate with existing v3 or legacy CDA/SPL investments.
  • Most popular combo: v2 internally + FHIR for every external interaction outside the hospital.

1. Quick decision: four use cases, four standards

A common mistake in RFPs is asking "which HL7 should we pick?". The right question is "what's being integrated with what?". Each use case has a best-fit standard, and a well-run hospital typically uses two or three standards in parallel.

Use case Recommendation Why
HIS ⇄ LIS / RIS / PACS internallyHL7 v2Mature ecosystem, real-time, minimal overhead
Hospital ⇄ patient app (mobile/web)FHIRREST/JSON, OAuth/SMART on FHIR, mobile-friendly
Hospital ⇄ AI service / data fabricFHIRREST + Bulk Data Access, easy to consume in ML pipelines
Hospital ⇄ hospital (referral, discharge)CDA or FHIR CompositionSigned document, IHE XDS supports both
Hospital ⇄ BHYT (social health insurance)XML 4210/Decision 3176 today; FHIR as a future mapping layerDecision 3176/QĐ-BYT remains the legal basis; no formal directive replaces XML 4210 with FHIR yet
EMR under Circular 13/2025/TT-BYTFHIR (recommended architecture)The Circular requires linking to the national personal ID and VNeID, but does not mandate FHIR; FHIR is the best technical fit
Integration with legacy v3 / CDA / SPLHL7 v3Only when partners have already invested in v3; not recommended for greenfield

Legal note. Circular 13/2025/TT-BYT (Ministry of Health) requires electronic medical records to link to the national personal ID or a VNeID account, but it does not specifically mandate FHIR as the data standard. FHIR is recommended as a fitting architectural solution, not a legal obligation.

2. 12-axis comparison table

The table below helps with a fast assessment before going deeper. Some axes such as "schema strictness" and "learning curve" are relative, based on feedback from Vietnamese vendors and integration teams.

# Axis HL7 v2 HL7 v3 CDA FHIR R4
1First release yearv2.0: 1988-09; v2.1: 1990-03; v2.3: 1997-032005R2: 2005DSTU1: 2014-09; R4: 2019
2Wire formatPipe-delimited (ER7)XML (RIM-based)XML (RIM-based)JSON / XML / Turtle
3ParadigmMessageMessageDocumentResource (REST + message + document)
4TransportMLLP / TCPSOAP / HTTPFile / HTTP / IHE XDSHTTPS REST
5Default securityInternal network, no built-in authWS-SecurityXML Signature, no built-in authOAuth 2.0 / SMART on FHIR
6Schema strictnessLoose, vendors interpret differentlyVery strictStrict (template-driven)Moderate, extensible via Profile/Extension
7Mobile-friendlyNoNoNoYes (REST + JSON)
8Normative statusv2.9.1 (2024)Normative Edition 2005+R2 normativeR4 (4.0.1) — Mixed Normative + STU; only foundational artifacts are Normative
9Real-world adoption~95% of US healthcare orgs; 35+ countries (HL7/NLM)UK NHS, Germany, South Korea, Australia legacyUS (C-CDA), Germany, South Korea, IHE XDS50+ countries with a National IG
10ToolingMature (Mirth, Iguana, Rhapsody)LimitedMature (Trifolia, MDHT)Excellent (HAPI, Firely, Bonfhir, Medplum)
11Learning curveModerateHigh (RIM, complex vocabulary)Moderate–highLow for web developers
12Fit for greenfield 2026Yes, for internal integrationNoOnly for document exchangeYes, default

3. Deeper look at each standard

HL7 v2

HL7 v2 was born in 1988 and has evolved continuously: v2.1 (March 1990), v2.3 (March 1997), through v2.9.1 (2024). The pipe-delimited format is parseable in any language, MLLP transmission is near-instantaneous, and each message is just a few kilobytes. That is why v2 still dominates HIS-LIS-RIS-PACS communication after three decades.

Use v2 when you need low-latency internal hospital integration, partner systems (Cerner, Epic, Meditech, Mirth, FPT.eHospital, Viettel ITN, OmiHIS) already support it natively, or you're running traditional ADT/ORM/ORU/MDM flows. Avoid v2 when you need to expose APIs over the public internet, require zero-trust auth, or your partners refuse to open MLLP ports through their firewalls.

The biggest weakness of v2 is its loose schema. The same OBX segment can be encoded differently by two vendors, and the community has no formal Profile mechanism comparable to FHIR. This is the hidden cost of every v2 integration project — most of the effort goes into negotiating fields one by one between two parties.

HL7 v3

v3 is built on the RIM (Reference Information Model), with a strict and very standardized schema, but the learning curve is brutally steep. Adoption is narrow: the UK's NHS, several systems in Germany, South Korea, and Australia use v3 for national registries. Greenfield 2026 projects should avoid v3 and choose FHIR instead. Only consider v3 when a partner has invested in v3/CDA/SPL legacy systems for years and has no migration roadmap.

CDA R2

CDA is a signed XML document that solves the "structured medical document" problem. In the US, C-CDA is the de-facto standard for the Continuity of Care Document. In Vietnam, CDA fits referral letters, discharge summaries, and digitally signed medical records under Decree 137/2024/NĐ-CP on electronic transactions.

FHIR offers an equivalent mechanism through document-style Composition + Bundle. If your system has already chosen FHIR, you don't need to add CDA. If you already run IHE XDS with CDA, keep it and add FHIR for new channels.

FHIR R4

FHIR R4 (4.0.1) was released publicly in 2019. Important caveat: R4 is not fully normative — HL7 labels it "Mixed Normative + STU", meaning the foundational artifacts (XML/JSON/RDF format, RESTful API, terminology services, and several resources such as Patient and Observation) are Normative, while most clinical resources remain at STU (Standard for Trial Use). R4 is still the recommended version for production today; R5 has been released but adoption remains limited.

FHIR's strength is lowering the barrier for web developers: REST + JSON + OAuth are universal skills. The tooling ecosystem (HAPI Java, Firely .NET, Bonfhir TypeScript, Medplum, Aidbox) has matured. Its weakness is that FHIR allows very free Profile/Extension authoring — without a national IG (such as VN Core, currently in development at fhir.hl7.org.vn/core), each vendor defines its own variant and repeats the v2 lesson.

4. Side-by-side code sample: ADT^A01 admission

The same event — patient Nguyễn Thị Lan (MRN0001) admitted to ICU room 301 at 14:30 on 30/04/2026 — represented in three standards so you can feel the difference.

HL7 v2.5 (pipe-delimited)

MSH|^~\&|HIS|HOSP|ADT|HOSP|202604301430||ADT^A01|MSG001|P|2.5
EVN|A01|202604301430
PID|1||MRN0001||NGUYEN^THI LAN||19850315|F|||123 LE LOI^^HCMC^^70000^VN
PV1|1|I|ICU^301^1|||||||||||||||V001

Four lines, under 300 bytes, with a parser writeable in 50 lines of Python. This is why v2 endures: low integration cost and high throughput.

CDA R2 (XML, abbreviated)

<ClinicalDocument xmlns="urn:hl7-org:v3">
  <typeId root="2.16.840.1.113883.1.3" extension="POCD_HD000040"/>
  <templateId root="2.16.840.1.113883.10.20.22.1.1"/>
  <id root="2.16.840.1.113883.19.5.99999.1" extension="DOC0001"/>
  <code code="34133-9" codeSystem="2.16.840.1.113883.6.1"
        displayName="Summarization of Episode Note"/>
  <effectiveTime value="202604301430"/>
  <recordTarget>
    <patientRole>
      <id extension="MRN0001" root="2.16.840.1.113883.19.5"/>
      <patient>
        <name>
          <family>Nguyễn</family>
          <given>Thị Lan</given>
        </name>
        <administrativeGenderCode code="F"
          codeSystem="2.16.840.1.113883.5.1"/>
        <birthTime value="19850315"/>
      </patient>
    </patientRole>
  </recordTarget>
</ClinicalDocument>

CDA is far more verbose, but offers digital signatures and a standardized document structure. It fits when you need legal-grade archival or hospital-to-hospital exchange via IHE XDS.

FHIR R4 (Bundle transaction)

{
  "resourceType": "Bundle",
  "type": "transaction",
  "entry": [
    {
      "fullUrl": "urn:uuid:9b1e5a2c-3f8d-4a1c-8e7b-1c2d3e4f5a6b",
      "resource": {
        "resourceType": "Patient",
        "identifier": [{
          "system": "http://fhir.hl7.org.vn/core/sid/mrn",
          "value": "MRN0001"
        }],
        "name": [{
          "family": "Nguyễn",
          "given": ["Thị", "Lan"]
        }],
        "gender": "female",
        "birthDate": "1985-03-15"
      },
      "request": { "method": "POST", "url": "Patient" }
    },
    {
      "fullUrl": "urn:uuid:7c2f6b3d-4e9a-5b2d-9f8c-2d3e4f5a6b7c",
      "resource": {
        "resourceType": "Encounter",
        "status": "in-progress",
        "class": {
          "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
          "code": "IMP",
          "display": "inpatient encounter"
        },
        "subject": {
          "reference": "urn:uuid:9b1e5a2c-3f8d-4a1c-8e7b-1c2d3e4f5a6b"
        },
        "period": { "start": "2026-04-30T14:30:00+07:00" },
        "location": [{
          "location": { "display": "ICU - Room 301" }
        }]
      },
      "request": { "method": "POST", "url": "Encounter" }
    }
  ]
}

The FHIR Bundle is longer than v2 but self-describing: every field has a URI, every code carries a terminology system, and references use urn:uuid to link entries inside the transaction. Any REST client can consume it, no specialized library like HAPI required.

5. Hybrid v2 + FHIR architecture

At modern hospitals worldwide and at leading Vietnamese hospitals (Bach Mai, Cho Ray, Vinmec, FV), the dominant pattern is to keep v2 for internal integration and push FHIR out to every external interaction.

[Lab analyzer]   --HL7 v2 ORU---> [HIS / EMR core]
[Pharmacy]       --HL7 v2 RDE---> [HIS / EMR core]
[RIS / PACS]     --HL7 v2 ORM---> [HIS / EMR core]
                                       |
                                       v
                          [FHIR Facade / API Gateway]
                                       |
        +---------+----------+---------+----------+----------+
        v         v          v         v          v          v
   [Mobile app] [AI/ML]  [VNeID]  [BHXH portal] [Telehealth] [Partners]

Why this architecture wins: years of v2 investment internally — there's no reason to rip and replace. External channels demand OAuth, mobile, and JSON, which is exactly where FHIR shines. Bridges between the two worlds already exist:

  • HAPI FHIR (Java) — the most mature open-source FHIR server, with a built-in HL7 v2 to FHIR converter.
  • Mirth Connect / NextGen Connect — an ETL engine that translates v2 ⇄ FHIR ⇄ CDA, free in its open-source edition.
  • Microsoft FHIR Converter — open source, template-based, supports HL7 v2, C-CDA, and JSON to FHIR.
  • Smile CDR, Firely Server, Aidbox — commercial offerings with v2 adapters and OAuth/SMART built in.

6. v2-to-FHIR migration roadmap

A hospital running pure v2 doesn't need to migrate "right now". The six-stage roadmap below draws from the experience of hospitals in Singapore, Australia, and several leading Vietnamese projects:

Stage Scope Reference effort
1. AuditInventory every v2 message in use, by vendor, version, and message type2 weeks
2. Stand up FHIR layerDeploy a FHIR server (HAPI or commercial), configure Profiles per VN Core IG1 month
3. Outbound firstExpose FHIR to mobile, AI, the BHXH portal, and partners3 months
4. Inbound mappingInstall a v2 → FHIR converter for legacy flows still in production6 months
5. Net new = FHIR-firstEvery new integration (new vendor, new module) goes FHIR-firstOngoing
6. Sunset v2 (selective)Once your LIS/RIS vendor supports native FHIR, retire the corresponding v2 channel3-5 years

Note: don't put a KPI on stage 6 for 2026-2027. Vietnam's LIS/RIS ecosystem still leans heavily on v2; forcing early retirement creates more operational risk than benefit.

7. Decision matrix for Vietnamese use cases

This table consolidates the questions CIOs actually face during an RFP. The "Verdict" column answers in the Vietnamese 2026 context.

Question v2 fit? FHIR fit? Verdict
Need sub-second real-time between HIS and LIS?YesDepends on infrav2
Need to expose APIs outside the hospital?Not safeYesFHIR
Integrate with VNeID / personal health record?NoYes (reference architecture — pending the official VNeID health API spec)FHIR
Submit BHYT claims via XML 4210 / Decision 3176?Not directlyNot directly; FHIR as a mapping layerXML 4210 for submission, FHIR for the internal data fabric
Meet EMR requirements under Circular 13/2025?PartiallyYes (recommended architecture)FHIR (not a legal requirement, but optimal for the interoperability mandate)
Feed data to AI / data lake?Hard to scaleYes (Bulk Data Access)FHIR
Patient mobile app?NoYes (SMART on FHIR)FHIR
Does the current HIS vendor support FHIR?v2 yesAsk the vendorVendor-dependent — make it a tender criterion
Have an in-house web/mobile dev team?Hard to hire v2 skillsReuses existing REST/JSON skillsFHIR

Verdict for a modern Vietnamese hospital: the "v2 + FHIR" combo. Use v2 for every existing internal device-to-HIS flow. Use FHIR for every external channel (mobile, AI, VNeID, BHXH future state, partners). This is the lowest-risk, highest-ROI architecture in the 2026-2030 window.

8. Frequently asked questions

Can we drop HL7 v2 entirely?

In the next 5-10 years: no. v2 remains cheap and fast for internal integration; LIS/RIS/PACS vendors worldwide ship v2 by default. The smarter move is to expand FHIR for every new channel and let v2 retreat naturally as vendors sunset it.

Will FHIR fully replace CDA?

Technically, FHIR Composition + Bundle documents are equivalent to CDA. Legally, systems already certified for C-CDA (US) or IHE XDS with CDA (Europe, South Korea) will migrate gradually. Vietnam has not locked in CDA by regulation, so new projects can choose FHIR Composition.

A small hospital can only afford one standard — which one?

FHIR. Reasons: a longer roadmap, common web developer skills, native support for mobile and VNeID. If LIS/RIS devices only speak v2, use a converter (Mirth, HAPI, Microsoft FHIR Converter) to translate to FHIR at the edge.

Does Vietnam have a national Implementation Guide yet?

A draft VN Core IG based on FHIR R4 is being developed by the community (canonical http://fhir.hl7.org.vn/core/) in parallel with the Ministry of Health IT Department version (http://fhir.ehealth.gov.vn/core/). No legal document yet mandates a specific IG.

Is FHIR R5 stable enough to skip straight to it?

R5 has been released, but adoption is still limited, and most national IGs (US Core, AU Core, JP Core, KR Core, VN Core) remain on R4. Greenfield 2026 should use R4 and watch R5 for the next 2-3 years.

9. References