A health system sits on years of C-CDA documents, continuity of care records, discharge summaries, referral notes, all technically complete and all locked inside individual XML files. A population health team wants to know how many diabetic patients across the network haven’t had an A1c test in the last six months. That question should take minutes. Instead it takes a project.
The documents have the data. They are just structured in a way that answers one patient’s story at a time, not a question about thousands of patients at once. Automated C-CDA to FHIR conversion exists specifically to close that gap, turning a filing cabinet of individual records into a queryable dataset an analytics or AI tool can work with.
This article looks at why C-CDA documents are hard for population health and AI tools to use directly, what an automated conversion pipeline needs to do, and where the real work still lives even after the conversion runs.
A C-CDA document is built around a single encounter or a single patient’s continuity of care record. It reads well from top to bottom, which is exactly the point: a clinician receiving it needs the full clinical picture in one place, not a fragmented set of data points.
That same design becomes a liability the moment the question changes from “what does this one patient’s record say” to “how many patients across our network meet this specific clinical criteria.” Answering that question against a folder of individual documents means opening and parsing each one, extracting the relevant section, and normalizing the result, which does not scale past a small handful of records without significant engineering effort.
Conversion parses the structured sections inside a C-CDA document, problem list, medication list, allergies, results, and maps each one to its corresponding FHIR resource type, producing discrete, independently queryable records instead of one large document.
| C-CDA section | FHIR resource | What becomes queryable |
|---|---|---|
| Problem list | Condition | Diagnoses across a population, filterable by code, date, or status |
| Medication list | MedicationStatement | Current and historical medications, filterable by drug class or timing |
| Allergies | AllergyIntolerance | Allergy data searchable independently of the rest of the record |
| Results | Observation | Lab values and vitals, queryable by test type, value range, and date |
| Encounters | Encounter | Visit history, filterable by date, location, or type |
Population health work is, at its core, a counting and filtering exercise: how many patients have a given condition, how many are overdue for a specific test, how many meet criteria for a care gap outreach program. Every one of those questions requires querying across many records at once.
Structured FHIR resources make that kind of query direct. A Condition resource with a standard diagnosis code can be filtered and counted across an entire patient population in a single query. The same information sitting inside thousands of individual C-CDA documents requires that same parsing and extraction work to happen first, every time the question is asked, unless it has already been converted once and stored in a queryable form.
Most analytics platforms and machine learning models are built to work against structured, tabular, or resource-based data. Feeding them raw document text means an extra processing step just to get to the same starting point that FHIR resources already provide directly.
This matters for AI tools in particular. A model trying to identify care gaps, predict readmission risk, or summarize a patient’s history performs more reliably against clean, discrete data elements than against free text buried inside a document, where the same clinical fact might be phrased several different ways across different source systems. Conversion standardizes that starting point before the AI tool ever sees the data.
No, and this is where the same rigor that applies to any HL7-to-FHIR mapping work applies here too. Converting a C-CDA document into FHIR resources does not automatically standardize the terminology inside it. A problem list entry using a local or outdated code still needs to be mapped to a current LOINC, SNOMED CT, or ICD-10 code before it is genuinely comparable across patients and source systems.
The same referential integrity and validation questions that apply to any FHIR conversion project apply here as well: does each resource correctly reference the patient and encounter it belongs to, and does the converted data pass conformance testing rather than just looking structurally correct. Automated conversion is the foundation. It is not a substitute for the terminology mapping and validation work that makes the resulting data trustworthy.
The data was never missing. It was sitting inside documents built to answer one patient’s story at a time, in a format population health and AI tools were never designed to query directly. Automated conversion turns that archive into something a real analytics question can actually run against.
The organizations that get the most value from this are not necessarily converting the newest data. They are the ones unlocking years of accumulated C-CDA documents that were previously unusable for anything beyond individual patient review, while still applying the same terminology mapping and validation discipline that any FHIR conversion project requires to produce data worth trusting.
For a closer look at what that terminology mapping and validation work actually involves, see 7 common HL7-to-FHIR mapping mistakes that delay interoperability projects and why every digital health startup should validate FHIR data before going live.(yet to be posted live).








No. Conversion restructures the data into discrete resources, but the codes inside those resources still need to be mapped to current standards like LOINC, SNOMED CT, and RxNorm to be genuinely comparable across patients and systems.
Some can, with significant custom parsing built specifically for that purpose, but this typically does not scale well across large patient populations or multiple source systems compared to querying converted FHIR resources directly.
Most AI and analytics tools are built to process structured, discrete data. C-CDA documents require an extra extraction step to reach that same starting point, and that extraction can introduce inconsistency if it isn't done the same way every time.
Both. Historical documents can be converted once, but new C-CDA documents typically keep arriving from ongoing clinical exchange, so the conversion process needs to run continuously, not just as a single migration effort.
A well-built conversion process flags these for review rather than silently producing incomplete or incorrect FHIR resources, similar to how a well-built HL7v2 conversion process handles ambiguous or malformed data.
No. C-CDA remains a live requirement for exchanging data with many networks and partners. Conversion adds a queryable, structured layer on top of that data for analytics and AI purposes without replacing the document exchange itself.
ISO 27001:2022 Certified
Aigilx health specializes in developing Interoperability solutions to create a healthcare ecosystem and aids in the delivery of efficient, patient-centric and population-focused healthcare.