HL7 v2 vs HL7 v3 vs CDA vs FHIR — choose by use case

No HL7 standards line automatically replaces another. HL7 v2, v3, CDA, and FHIR can coexist; selection should follow the use case, interface contract, IG, endpoint capabilities, and operational or legal requirements.

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 — remains suitable for many stable HIS-LIS-RIS-PACS message flows; actual performance depends on the profile, transport, and interface agreement.
  • FHIR R4 — the current VN Core baseline for APIs within the IG scope; other projects must select a version based on the target IG, dependencies, and endpoint CapabilityStatements.
  • CDA R2 — structured clinical-document exchange; signatures and transport are implementation-architecture decisions.
  • HL7 v3 — fits where a specification or partner system requires v3/CDA/SPL; FHIR does not replace it automatically.
  • A common transition pattern: retain v2 for tested legacy flows and use FHIR where the parties have agreed on an IG and API contract.

1. Quick decision: four use cases, four standards

Rather than selecting one standard for the whole hospital, an RFP should identify sender, receiver, data, interactions, SLA, security, and conformance evidence for each use case. Multiple standards can coexist when each interface has a clear contract.

Use case Recommendation Why
HIS ⇄ LIS / RIS / PACS internallyHL7 v2 or another supported contractv2 is often already available in devices/HIS; confirm profile, transport, and SLA
Hospital ⇄ patient app (mobile/web)FHIRREST/JSON fits web APIs; SMART on FHIR applies only when the endpoint declares support
Hospital ⇄ AI service / data fabricFHIRFHIR REST or Bulk Data can be used when the CapabilityStatement and relevant IG declare those interactions
Hospital ⇄ hospital (referral, discharge)CDA or FHIR documentSelect an agreed template/IG, transport, signature, and retention model
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 (reference architecture)The Circular requires EMR information to be linked to the personal identification number of the specified groups; it mandates neither FHIR nor a VNeID API
Integration with existing v3 / CDA / SPLExisting contract or a tested adapterDo not change wire format merely because FHIR exists; decide from dependencies and migration evidence

Legal note. Article 1(3) of Circular 13/2025/TT-BYT requires EMR information to be linked to the personal identification number of Vietnamese citizens and of foreign nationals who have been issued an electronic identification account; it does not create a choice between a personal ID number and a VNeID account. The Circular mandates neither FHIR as the data standard nor a VNeID API. FHIR is an architecture option to assess, not a legal obligation arising from this clause.

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 implementation-team feedback and observed integration patterns.

# 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)
4Common transportMLLP / TCPSOAP / HTTPFile / HTTP / IHE XDSHTTPS REST; message and document paradigms are also supported
5Security modelDefined by the deployment and interface agreementDefined by transport and implementation profilesDocuments can be signed; authentication belongs to the exchange layerFHIR core sets no default authentication mechanism; OAuth 2.0/SMART may be specified by an IG
6Conformance modelMessage structure + conformance profile + local agreementRIM-derived models/messages and vocabularyCDA model + template constraintsProfiles, extensions, terminology bindings, and CapabilityStatement
7Direct fit for web/mobile APIsUsually needs an adapter/API layerUsually needs a service/API layerDocument exchange; apps usually need an API layerREST/JSON when the endpoint declares support
8Normative statusv2.9.1 (2024)Normative Edition 2005+R2 normativeR4 (4.0.1) — Mixed Normative + STU; only foundational artifacts are Normative
9Typical implementation contextExisting internal message and device interfacesLegacy systems or contracts that require v3Structured document exchangeAPIs, messages, or documents under a specific IG
10Example toolingMirth, Iguana, RhapsodyTooling depends on the productTrifolia, MDHTHAPI, Firely, Bonfhir, Medplum
11Learning topicsMessages/events, segments, profiles, acknowledgementsRIM, domain models, vocabulary, interactionsHeader/body, templates, vocabulary, document lifecycleResources, REST, profiles, terminology, packages/IGs
12Selection condition for a new projectThe partner or device ecosystem requires v2A specification or partner requires v3The use case and contract require CDA documentsA compatible IG/contract exists for the use case and endpoint

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). Its pipe-delimited ER7 form is compact and supported by many integration engines. Latency, throughput, and reliability still depend on transport, acknowledgements, infrastructure, and interface configuration.

Use v2 when you need low-latency internal hospital integration, partner systems already have HL7 v2 adapters, or you are 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.

v2 permits many optional fields and local variations. It does have conformance profiles, but two vendors must still agree on version, message profile, vocabulary, and segment rules such as OBX usage. Mapping effort therefore depends on the specification and testing discipline of each interface.

HL7 v3

v3 is built on the RIM (Reference Information Model) and uses tightly specified models, vocabularies, and messages. A new project should select v3 when a specification or partner system requires it; FHIR may fit a new API better, but it does not automatically replace an operating v3/CDA/SPL contract.

CDA R2

CDA is a structured XML clinical-document standard and can be signed within an appropriate exchange architecture. In the US, C-CDA is used for many clinical exchange documents. In Vietnam, selecting CDA for referrals, discharge summaries, or records must follow the system's workflow, electronic-signature, and legal-record requirements.

FHIR supports documents through Composition in a document Bundle, but that does not make every CDA template one-to-one equivalent to FHIR. A system can retain CDA and add FHIR when the exchange contract, IG, and testing support it.

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 the current VN Core baseline. R5 (5.0.0) is the latest published major release and remains Trial Use; R6 is currently a CI/ballot build. Production selection must follow the target IG and compatibility chain, not a global default.

FHIR uses formats and protocols familiar to web teams, including JSON and REST. OAuth/SMART is an additional security layer, not a default in FHIR core. An endpoint must declare supported resources, interactions, search parameters, and security through its CapabilityStatement and applicable IG. Profiles and extensions still need governance to avoid incompatible variants.

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

This ER7 example is compact, but a production interface also needs a message profile, vocabulary, acknowledgements, error handling, and interoperability testing between the parties.

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 provides a document structure; digital signatures, legal archiving, and a transport such as IHE XDS must be configured and verified in the corresponding implementation layer.

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 the sample v2 message and explicitly represents resources, code systems, and internal references with urn:uuid. A client must still follow the profiles, terminology, interactions, and transaction rules declared by the server.

5. Hybrid v2 + FHIR architecture

At modern hospitals worldwide, and increasingly in Vietnamese hospital integration projects, the dominant pattern is to keep v2-style internal integration where it already works and expose FHIR through a controlled facade for external interactions.

[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]

A combined architecture can retain tested v2 interfaces and add FHIR one use case at a time. It is an option, not a mandatory pattern; each bridge must be assessed for mapping, losslessness, operations, and conformance:

  • HAPI FHIR — Java FHIR libraries and server; v2 mapping requires additional components or transformation rules.
  • NextGen Connect (Mirth Connect) — an integration engine that can configure channels between formats.
  • Microsoft FHIR Converter — a template-based reference project for HL7 v2/C-CDA-to-FHIR conversion; assess maintenance status and scope before use.
  • Commercial FHIR products — adapter and SMART/OAuth capabilities vary by version; verify product documentation and the endpoint CapabilityStatement.

6. Stage-gated v2 and FHIR transition roadmap

There is no common schedule for converting every v2 interface to FHIR. Each stage below closes only when its exit criteria are met; v2 and FHIR may continue in parallel when that is the safer operating model.

Stage Scope Exit criteria
1. InventoryCatalog each interface's messages, versions, profiles, vocabularies, owner, SLA, and dependenciesSystem owners and partners approve the inventory, risk register, and baseline data
2. ContractSelect the pilot use case, IG/package version, security model, and required FHIR interactionsBoth parties agree on the CapabilityStatement, test plan, and rollback criteria
3. PilotRun FHIR in parallel for one flow with a bounded scope and defined test dataValidation, interoperability, security, and reconciliation tests pass against the baseline
4. OperateOperate observably and retain v2 fallback when the risk assessment requires itSLA, monitoring, incident response, and reconciliation meet approved thresholds
5. Select per use caseFor a new integration, compare v2, FHIR, and combined models against the partner ecosystemThe architecture decision is evidenced; the receiver declares capabilities through an interface contract or CapabilityStatement
6. Retire only when justifiedStop a v2 channel only when FHIR covers its functions and dependencies are readyMigration, reconciliation, rollback drill, operational approval, and retention/audit are complete

Stage gates are not a fixed calendar. Estimate effort from interface count, data quality, customization, safety requirements, and party capabilities; do not assume a rewrite or v2 sunset.

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 a low-latency SLA between HIS and LIS?May fit if the existing v2 interface meets the SLAMay fit; benchmark the concrete interaction and infrastructureSelect from tested SLA evidence
Need an API for external partners?Requires a gateway and separate security contractFits with an IG, TLS, authentication, authorization, and auditEvaluate a contracted FHIR API
Integrate with VNeID / personal health record?Follow the official interface specificationCan serve as a reference model; wait for the official API specificationFollow the official contract when published
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?A wire standard alone does not establish complianceCan support interoperability; the Circular does not mandate FHIRAssess the whole architecture and legal obligations
Feed data to AI / data lake?Possible through mapping/ETLREST or Bulk Data may be used if the endpoint supports itSelect by volume, semantics, and governance
Patient mobile app?Usually needs an API adapterSMART on FHIR may be used when the system declares supportCheck the CapabilityStatement and security contract
Does the current HIS vendor support FHIR?Confirm the supported v2 interface/profileRequire a CapabilityStatement, package version, and test evidenceMake conformance evidence a tender criterion
Have an in-house web/mobile dev team?Requires v2 and message-domain skillsReuses REST/JSON skills but still requires FHIR/IG expertiseAssess capabilities by use case

One viable transition pattern is "v2 + FHIR". A hospital can retain tested v2 device-to-HIS flows and add FHIR where the parties have agreed on an IG and API contract. The exact boundary must follow the system inventory, partner requirements, and conformance-test results.

8. Frequently asked questions

Can we drop HL7 v2 entirely?

There is no universal timeline. Device and vendor support for v2 varies by product, while a FHIR channel requires compatible IGs and endpoints. A migration plan should retain tested v2 flows, add FHIR by use case, and retire v2 only as the relevant dependencies are replaced.

Will FHIR fully replace CDA?

CDA and FHIR Composition + document Bundle both support clinical documents, but their templates, semantics, and ecosystems are not automatically equivalent. Migrate only after mapping, signatures, retention, transport, and legal requirements have been verified.

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

There is no universal answer. Select the contract that source systems, devices, and partners actually support; a hospital may keep v2 for device flows and use FHIR for a specific API. A converter does not remove the need for mapping, validation, and interoperability testing.

Does Vietnam have a national Implementation Guide yet?

An Omi HealthTech-initiated trial-use VN Core IG based on FHIR R4 is published at the 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 (5.0.0) is the latest published major release and remains Trial Use; R6 is currently a CI/ballot build. VN Core currently requires R4 (4.0.1). A new project must use the version required by its target IG, package dependencies, and endpoint CapabilityStatements; there is no fixed two-to-three-year waiting rule.

9. References