twineconvert

free · in-browser · no upload

FHIR Bundle to CSV
Converter

Drop your FHIR Bundle file. We'll convert it to CSV right here in your browser, your file never leaves your device.

or drop your file

Select your file here to get started

or drop your file here.

Accepts .json

nothing uploaded no file size cap no signup

How it works

Three steps. No upload, no signup.

  1. 1

    Drop your file

    Click the dropzone above or drag a FHIR Bundle from your desktop. Files of any size, there's no upload, so there's no upload limit.

  2. 2

    Convert in your browser

    The conversion runs entirely in this tab using JavaScript and WebAssembly. Your file never touches our servers, we don't have any.

  3. 3

    Download

    Get your CSV the moment the conversion finishes. Convert another, or close the tab.

Files stay on your device

Your file is never uploaded. The entire conversion runs in your browser using WebAssembly. We can't see what you convert because we have no server to see it.

No file size limit

Server converters cap free users at 1-2 GB and gate larger files behind a paid plan. Since nothing uploads, our limit is whatever your browser can handle.

Free, no signup, no ads on conversions

No account required. No watermark on the output. No queue. Drop a file, get a converted file.

Why convert FHIR Bundle → CSV

What this conversion is actually for

FHIR Bundles in production carry hundreds to thousands of mixed resources (Patient + Observation + Condition + MedicationRequest from a single $everything operation). Triaging that as JSON is exhausting; piping it through a spreadsheet to spot duplicates, audit data quality, or compare across patients is the analyst's go-to workflow. CSV with one row per resource and a unified column set across resource types is what makes that workflow possible.

A real example

You called the Epic FHIR `Patient/$everything` endpoint and got back a 4,000-resource Bundle for a single patient's lifetime record. You want to count Observations by code, find the date range, and spot any nulls. Convert to CSV, pivot in Excel, done in 5 minutes.

Troubleshooting

Some columns are full of '[object Object]'-style values.

FHIR resources have nested objects (CodeableConcept, Reference, Quantity) that don't flatten cleanly to a single CSV cell. We JSON-encode them so no data is lost; if you need them flat, post-process in your spreadsheet (`=JSON_VALUE(A1, '$.coding[0].code')` in Sheets) or convert to JSON first, jq the nested fields out, then back to CSV.

Resources of different types share a column header but mean different things.

We compute the column union across all resources, so `id` appears once but every resource has it. This is intentional — analysts want one wide table to scan, not multiple per-type sub-tables. To split by type after the fact: filter on the `resourceType` column and re-export each subset.

Formats involved

About FHIR Bundle and CSV

FHIR Bundle, FHIR R4 Bundle resource

A FHIR Bundle is a JSON wrapper that carries multiple FHIR resources (Patient, Observation, Condition, MedicationRequest) as a single transferable unit. Bundle types: `transaction` (atomic batch of API operations), `collection` (grouped resources without operation semantics), `searchset` (server search response). The standard format for cross-system clinical data transfer in modern healthcare integrations.

How to open

Any JSON viewer or FHIR-aware tool. Postman with FHIR collections, HAPI FHIR's reference server, Smart Health Cards verifier. EHR vendors accept Bundles via standard `$process-message` and `$transaction` endpoints.

CSV, Comma-Separated Values

CSV is plain text, one row per line, fields separated by commas. The simplest possible tabular data format, which is exactly why it remains the most portable: every spreadsheet, database, programming language, and analytics tool reads CSV. Tradeoffs: no formulas, no formatting, no multiple sheets, and various edge cases around quoting fields that contain commas or newlines.

How to open

Excel, Google Sheets, Apple Numbers, LibreOffice Calc, any text editor, every database import wizard, every programming language with one line of code.

Related tools

Convert other files to CSV

FAQ

Common questions

Is this FHIR Bundle → CSV converter really free?

Yes. No signup, no watermark, no daily file count limit. Every conversion runs in your browser, your file never touches our servers because there are no servers.

Where does my file go when I convert it?

Nowhere. The conversion runs entirely in your browser using JavaScript and WebAssembly. Your file is never uploaded to our servers. We don't have any servers handling files, there's nothing for us to log, store, or accidentally leak.

What's the maximum file size?

Whatever your browser can hold in memory. Practically, this means a few hundred MB on most computers, significantly larger than the 1-2 GB caps that server-upload converters charge for. Very large files (multi-GB) may require closing other browser tabs first.

Why convert FHIR Bundle to CSV?

Atomic batch transfer of clinical resources between FHIR servers. Universal tabular data interchange. The most common reason to convert is compatibility, CSV works in places where FHIR Bundle doesn't, or vice versa.

How do I open a FHIR Bundle file in the first place?

Any JSON viewer or FHIR-aware tool. Postman with FHIR collections, HAPI FHIR's reference server, Smart Health Cards verifier. EHR vendors accept Bundles via standard `$process-message` and `$transaction` endpoints.

Does this work offline?

Once the page is loaded, the conversion itself runs entirely offline. The first time you use a tool, your browser downloads the conversion library (a one-time cache). If you reload while offline, the page won't load, but you can install the site as a Progressive Web App for full offline use.

Can I convert multiple files at once?

Single file at a time for now. Batch conversion is on the roadmap, for now, drop one file, download the result, then convert the next.