Free browser tool

DICOM TagAnalyze & Compare.

Paste or upload a DICOM tag dump — from pydicom, dcmdump, dcm4che, DICOM JSON, or a CSV export — and read it as a clean, searchable table. Structured Reports become one row per measurement. Add a second or third dump and every match and difference lines up side by side. Runs entirely in your browser.

What is DICOM Tag Compare?

A DICOM instance carries hundreds of attributes as (group,element) tags — patient, study, series, equipment, and image data all mixed into one flat header, and a Structured Report hides its whole report in a deeply nested Content Sequence. Reading that in a raw dump is slow and error-prone, and so is checking what changed between two exports (an anonymization pass, a PACS or VNA migration, a scheduled order versus what was actually stored, or two vendors’ exports of the "same" study). DICOM Tag Compare is a free, client-side tool for radiology IT and PACS administrators that does both. As an analyzer, it turns one pasted dump into a sorted, searchable table with plain-language names, grouped by DICOM module, and reads a Structured Report as one row per measurement. As a compare tool, it lines two or three dumps up in one table — matching, different, or present in only some — and matches report measurements by meaning, so a missing or extra measurement does not shift the rest. Nothing is uploaded; parsing and comparison happen entirely in your browser tab.

See it in action

Features

Compare two or three DICOM tag dumps

Line up dump A, B and C in one table: every tag with its name, VR and value, and a status per row — match, different, only in A, only in B, only in C or partial. Sorted by tag, with counts and one-click filters, for example differences only.

View a DICOM Structured Report as one row per measurement

An OB-GYN ultrasound or other Structured Report hides its report in a deeply nested Content Sequence. The Report view turns it into readable rows — Estimated Weight 77 g, Abdominal Circumference 72.56 mm — with units, derivation and equation folded into the value. Switch it off for the raw tags.

Compare Structured Reports by meaning, not position

Report measurements are matched by their concept code, so a missing or extra measurement does not shift the rest. Repeated groups, such as several biometry groups, are told apart by what they measure, and the report order is kept.

Group DICOM tags by module and jump to a group

Group the table by DICOM module — Patient, General Study, Image Pixel, PET and more — or, in a Structured Report, by report section. Private tags are grouped per private creator, such as Private: ELSCINT1. A button per group, with its row count, scrolls to the group and highlights its rows.

Analyze a single DICOM tag dump

Paste just one dump for a sorted, searchable listing with plain-language attribute names from a curated PS3.6 dictionary. Search by tag or attribute name; the comparison filters appear when you add a second dump.

Works with the dumps you already have

pydicom dataset printouts, DCMTK dcmdump and dcm4che-style dumps, tab-separated and two-line PACS-viewer exports with sequences, a DICOM JSON model (PS3.18 Annex F), CSV/TSV with Tag/Description/VR/Value columns, or plain Keyword: value lines.

Scrub and mask patient data

On paste, the tool offers to replace the patient name, ID and birth date — including the patient inside a Structured Report — with synthetic values, and says where your data stays. Private vendor tags that look like they identify people, such as a doctor or physician ID, a study reason or a value copied from the patient, are flagged and scrubbed too. A mask switch hides patient-identifying values before you take a screenshot.

Export what you found

Download the current, filtered rows as CSV or JSON. The tool has a light theme in warm sand and a dark theme, both with high-contrast controls.

Under the hood

Client-side only — no uploadNo login, no accountNo server-side storage or loggingYour paste lives only in the memory of the browser tabCurated DICOM PS3.6 attribute dictionaryWorks with pydicom / DCMTK / dcm4che / DICOM JSON / CSVCSV & JSON export

Questions

What is DICOM Tag Compare?
A free, client-side DICOM tag analyzer and compare tool. Paste one tag dump — from pydicom, DCMTK dcmdump, dcm4che, a DICOM JSON model, or a CSV export — to read it as a sorted, searchable table, or paste two or three to line every tag up and flag matches, differences, and tags present in only some of them.
Can it read a DICOM Structured Report?
Yes. When a dump is a Structured Report, such as an OB-GYN ultrasound report, the Report view turns the nested Content Sequence into one row per measurement, for example Estimated Weight 77 g, with units and modifiers folded in. In a comparison, measurements are matched by their concept code and not by position, so a missing or extra measurement does not shift the rest. Turn the Report view off to see the raw tags.
How do I compare two DICOM files or headers?
Export a tag dump from each file, for example with dcmdump, pydicom's print(ds), or the DICOM tags view of your PACS viewer, and paste them into A and B. The table lines up every tag and flags match, different, only in A or only in B; pick Differences only to see just what changed. The tool reads tag dumps, not binary .dcm files.
Can it compare two Structured Reports?
Yes. In the Report view, measurements are matched by their concept code and not by their position, so a missing or extra measurement does not shift the rest. Repeated groups, such as several biometry groups, are told apart by what they measure, and a dropped or added measurement shows up as only in A or only in B.
What does Group by module do?
It groups the table by DICOM module, such as Patient, General Study or Image Pixel, or by report section for a Structured Report. A button per group, with its row count, appears in the sidebar; clicking it scrolls to the group, opens it if it was collapsed, and highlights its rows.
Is there sample data to try without a real DICOM dump?
Yes. The "Load a sample" list has eleven synthetic samples: a single CT slice to analyze, CT protocol drift, an MR scanner software upgrade, two Structured Reports (OB-GYN ultrasound and CT radiation dose), a PET-CT with private tags that an anonymizer left behind, the same image in dcmdump and DICOM JSON, an anonymization check, a PACS migration diff and an order versus the stored study. They contain made-up patients only.
Are my tag dumps uploaded anywhere?
No. Parsing and comparison run entirely in your browser tab. Nothing you paste or upload is sent to a server, and there is no account or server-side log. Your paste lives only in the memory of the tab and is not saved to local storage, cookies or your user profile; refreshing the page clears everything. When a paste contains patient identification, the tool offers to scrub it first.
Which paste formats does it understand?
pydicom dataset printouts, DCMTK dcmdump and dcm4che-style dumps, a DICOM JSON model (PS3.18 Annex F), a CSV/TSV with Tag/Description/VR/Value columns, and plain "Keyword: value" lines. Unrecognized tags are still shown with their raw hex and value.
Is this a DICOM conformance validator?
No. It is an educational analysis and comparison aid for radiology IT and PACS administrators, not a validator against a specific IOD, transfer syntax, or vendor conformance statement, and not a clinical viewer.

Try it now

Load one of the eleven built-in synthetic samples, no real data needed: analyze a single CT slice, compare a CT series reconstructed two ways or an MR scanner before and after an upgrade, read Structured Reports from two OB-GYN ultrasound exams or a CT dose report, see a PET-CT whose private tags still carry a doctor ID after anonymization, or check an anonymization pass, a PACS migration and an order against the stored study. Or paste your own tag dumps straight away.

Educational analysis and comparison aid for radiology IT, not a DICOM conformance validator or a clinical viewer. Prefer synthetic data when sharing screenshots with others.