Technical

A Field Guide to the 6 Health Data Formats You Will Actually Receive

Integration plans usually assume clean, standard messages. Real projects receive a mix of messages, documents, spreadsheets and photos. Here is how to recognise each one, what trips teams up, and what to ask before you build.

Suhina Singh
Suhina Singh
Founder & CEO, Jonda Health
October 7, 2026
·
10 min read

When a partner says they will "send the data", that sentence can mean almost anything. It might be a well-formed standards message from a laboratory system, a spreadsheet exported by someone in the IT team, or a folder of scanned reports. Each of these needs a different approach, a different amount of effort and a different set of questions before you write any code.

This guide is about recognition rather than conversion. For each format we show what it looks like, where you are likely to meet it, what tends to go wrong, and what to ask the sender. It builds on the first two guides in this series, which covered the lessons teams learn on their first health data integration and the context that changes what a lab value means.

MORE STRUCTURED LESS STRUCTURED FHIRJSON or XML HL7 v2Pipe-delimited Clinical docsCDA, XML CSV exportsSpreadsheets PDFsDigital or scanned PhotosReports, devices Effort to make the data usable rises as structure falls

Most real projects span several points on this line at once, often from the same partner.

 

At a glance

01HL7 Version 2 messages
02FHIR resources and bundles
03Clinical documents (CDA)
04CSV and spreadsheet exports
05PDFs, digital and scanned
06Photos and images
✓Questions to ask any new source

 

1. HL7 Version 2 messages

Health Level Seven (HL7) Version 2 is the messaging standard that most laboratory, hospital and radiology systems have used for decades, and it remains the most common way results move between systems today. A message is plain text, one segment per line, with fields separated by the pipe character. A results message typically contains a header (MSH), patient details (PID), the order (OBR) and one observation segment (OBX) per result.

A simplified results message (synthetic data)

MSH|^~\&|LIS|SAMPLELAB|APP|CLINIC|20260915083000||ORU^R01|MSG0001|P|2.5.1
PID|1||100234^^^CLINIC^MR||SAMPLE^PATIENT||19710304|F
OBR|1||LAB-88213|GLU^Glucose, fasting^L|||20260914073000
OBX|1|NM|GLU^Glucose, fasting^L||5.4|mmol/L|3.9-5.5|N|||F

Where you meet itLaboratory information systems, hospital systems, reference labs, interface engines.
What trips teams upSite-specific use of fields, custom “Z” segments, local test codes, and version differences between 2.3 and 2.5.1.
What to askTheir interface specification, sample messages covering corrections and non-numeric results, and their test catalogue.

Check: have you seen real messages from this sender, including a corrected result, before you finalised your parser?

The observation segment, field by field. The standard defines what each field should hold1; sites decide how they actually use it.

 

GLU^Glucose, fasting 5.4 mmol/L 3.9-5.5 N F OBX-3 Test codeand local name OBX-5Value OBX-6Units OBX-7Reference range OBX-8Flag OBX-11Status Pink fields are the ones most often misread: the value itself and whether it is final or corrected.

 

2. FHIR resources and bundles

Fast Healthcare Interoperability Resources (FHIR) is the modern standard, built on web conventions, with data arriving as JSON or XML through a web API. A lab result is usually an Observation resource, often grouped under a DiagnosticReport and delivered together in a Bundle.

A trimmed Observation

{
 "resourceType": "Observation",
 "status": "final",
 "code": { "text": "Glucose, fasting" },
 "effectiveDateTime": "2026-09-14T07:30:00+08:00",
 "valueQuantity": { "value": 5.4, "unit": "mmol/L" }
}

FHIR is a major step forward, but "we support FHIR" is the start of a conversation rather than the end of one. Several versions are in use, with R4 the most widely deployed2, and resources change between versions. FHIR is also designed to be adapted through profiles, so national and vendor implementations differ in which fields are required, which code systems are used and which extensions are added3.

Where you meet itNewer electronic health records, national health exchanges, modern apps and platforms.
What trips teams upVersion mismatches, local profiles and extensions, codes in local systems, and results sent only as text in code.text.
What to askThe FHIR version, the profiles or implementation guide they follow, and example resources from production.

Check: if a partner’s Observation arrives with a code your system does not recognise, what happens to it?

 

3. Clinical documents (CDA)

The HL7 Clinical Document Architecture (CDA) is an XML format for complete clinical documents such as discharge summaries, referral letters and continuity of care records. It is common in hospital-to-hospital exchange and in national record systems. A CDA document has two layers: a human-readable narrative, and optional coded entries that software can process. The standard treats the narrative as the clinical content that was signed off4.

Two layers in one section

<section>
 <title>Results</title>
 <!-- what a person reads -->
 <text>Fasting glucose 5.4 mmol/L (14 Sep 2026)</text>
 <!-- what software reads -->
 <entry> ... coded observation ... </entry>
</section>

The trap is that the two layers are produced separately and do not always agree. Some documents carry rich narrative with no coded entries at all, which leaves you extracting data from text inside XML.

Where you meet itHospital discharge and referral documents, national record exchanges, regional health networks.
What trips teams upNarrative and coded entries that disagree, sections with narrative only, and national variants of the template.
What to askWhich document templates they send, and whether coded entries are always populated.

Check: when the narrative and the coded entry disagree, which one does your system trust, and does anyone find out?

 

4. CSV and spreadsheet exports

Almost every data migration, research extract and bulk handover involves a spreadsheet at some point. CSV files look simple and are easy to read, which is exactly what makes them risky: they carry no built-in description of what each column means.

Two rows, same patient, same test

patient_id,test,result,date
100234,HB,13.2,03/04/2026
100234,Hb,132,2026-04-10

Both rows are haemoglobin. The first is almost certainly in g/dL and the second in g/L, but the file does not say. The dates use two formats, and one of them is ambiguous. The test name changes case. None of this is unusual in a real export, especially one pulled from a system that has been upgraded or merged over the years.

Where you meet itClinic system migrations, research datasets, legacy exports, partner handovers.
What trips teams upMissing units, mixed date formats, merged or hidden cells, character encoding, and columns only one person understands.
What to askA data dictionary for every column, the source system and its version history, and who can answer questions about it.

Check: for every column you import, can you point to a written definition of what it contains and in what unit?

 

5. PDFs, digital and scanned

A large share of results still travel as PDF reports, attached to emails or uploaded by patients. To a person, a digitally generated PDF and a scanned one look identical. To software they are completely different: a digital PDF contains a text layer that can be read directly, while a scanned PDF is just an image of a page. A quick way to tell is to try selecting the text.

Even digital PDFs are harder than they look. Results tables break across pages and repeat their headers. Many reports are cumulative, showing previous results in the columns next to the current one, so an extractor can easily pick up last month's value. Reports from different countries arrive in different languages and layouts, often with the lab's own abbreviations.

Where you meet itPatient uploads, reference labs, insurers, cross-border care, any partner without an interface.
What trips teams upScanned pages, cumulative result columns, tables split across pages, multiple languages and footnotes that change a result.
What to askA representative sample across labs and years, including the messiest reports, not just the cleanest.

Check: was your extraction tested on the reports your users actually send, or on the neatest samples you could find?

 

6. Photos and images

Phone photos are now a normal input for health products. Patients photograph paper reports, nurses photograph results from other facilities, and people photograph the screens of blood pressure monitors, glucose meters and pulse oximeters. Images bring every PDF challenge plus a few of their own: glare, shadows, skewed angles, blurred text, handwriting and values cut off at the edge of the frame.

Device photos have a specific trap. Home glucose meters can be set to display mmol/L or mg/dL, and the unit is sometimes shown in small print or not at all, so the same number on two meters can mean very different things. Some devices also show a stored or averaged reading rather than the latest one.

Where you meet itPatient apps, remote monitoring and chronic disease programmes, clinics without lab interfaces.
What trips teams upImage quality, handwriting, missing units on device screens, and stored or averaged readings.
What to askWhich devices users have, how photos will be captured, and what guidance users get at the moment of taking the photo.

Check: what does your product do with a photo it cannot read confidently: reject it, guess, or send it for review?

 

Questions to ask any new data source

Whatever the format, these questions save weeks of rework. Ask them before you write the integration, and keep the answers with your code.

  1. Format and version. Exactly which format, version, profile or template will you send?
  2. Real samples. Can we have synthetic or de-identified samples that include corrections, non-numeric results and your messiest cases?
  3. Test catalogue. Do you use local test codes or names, and can we have the full list?
  4. Units and ranges. Are units and reference ranges always included, and have they changed over time?
  5. Corrections. How do you send amended or cancelled results, and how do we recognise them?
  6. Patient identifiers. Which identifiers will be present, and how should we match them to our records?
  7. Languages and encoding. Which languages appear, and which character encoding do you use?
  8. Volume and delivery. How much data, how often, and through which channel?
  9. Privacy and location. Where may this data be processed and stored, and under what consent?
  10. A named contact. Who can answer questions when something does not look right?

 

Bringing it together

Most health products end up receiving several of these formats at once, sometimes from the same partner. The instinct is to build a separate pipeline for each, which works until the fifth source arrives in a sixth variation. The teams that scale well decide early what their single, consistent internal model looks like, and treat every incoming format as a route into it.

 

How Jonda Health can help

You do not have to build and maintain a pipeline for every format yourself. There are two ways we can support your team.

JondaX: one API for every source

Send PDFs, scans, photos, HL7 v2, FHIR or CSV through a single integration, and receive structured, standardised results in the format your system needs, including FHIR, HL7, JSON and CSV. Other clinical data types can be configured to your needs. Results that need a second look are reviewed by clinically trained reviewers, with 99% field-level accuracy with expert review. ISO 27001 certified and designed to comply with HIPAA, GDPR and PDPA.

Read the Quickstart Connect the MCP Server

Jonda Health Services: plan it right

If you are planning a multi-source integration or a data migration, our Health Data Foundations work helps you assess each source, define your internal data model and plan the route from every format into it, drawing on experience across clinical practice, interoperability, product and AI.

Explore Jonda Health Services

Not sure where to start? Book a free 30-minute data readiness conversation and we will talk through your sources, your product and where the risks are.

Get in touch: hello@jonda.health

 

References

  1. HL7 International. HL7 Version 2.5.1, Chapter 7: Observations (OBX segment definition).
  2. HL7 International. FHIR versions and version history. hl7.org/fhir/versions.html
  3. HL7 International. FHIR R4, Profiling FHIR. hl7.org/fhir/R4/profiling.html
  4. HL7 International. HL7 Clinical Document Architecture, Release 2 (CDA R2), section on the narrative block.

All examples use synthetic data and are simplified for illustration.

Try JondaX free

30 free transformations. No credit card required.