This page's code did not start.

Opening index.html directly from a folder blocks JavaScript modules, so nothing will happen when you choose a scan. Serve the folder over http instead:

powershell -ExecutionPolicy Bypass -File serve.ps1

Then open http://localhost:8080/.

DICOM Viewer — a DCM file opener that runs in your browser

CT, MR, X-ray and ultrasound, with the window, the header and the measurements.

Language: English
View source
Your scans are processed in your browser. No processing upload.

The scan is opened and decoded by your own browser: the header, the pixels, the window, the measurements. There is no server on the other end of this page to send protected health information to even if anything here wanted to, and nothing about the file - not the patient's name, not the study, not the filename - is read out to anyone.

Live check: checking…

Offline: checking…

Don't take our word for it: open DevTools, watch the Network tab, and open a scan. Not one request carries an image, a tag, or a filename. Or unplug from the internet and open one anyway.

Open a DCM file

Drop a whole folder's worth of files at once and they are put back into their series and stacked in order. Nothing is uploaded, and nothing is written back to your files.

View as Markdown

How to open a DCM (DICOM) file

  1. Choose the files. One .dcm file, or the whole folder off the disc — a CT or an MR is one file per slice, and dropping all of them at once is what puts the series back together. Files are read straight off your disk by the browser; nothing is sent anywhere while you do it.
  2. Pick the series. A study usually holds several: the scout, then each acquisition. Each one is stacked in the order the scanner took it in, worked out from where each slice sits in the patient rather than from the numbering, which is not always in the same direction.
  3. Set the window. This is the control that makes a scan readable, and the one an image editor does not have. Drag across the picture to widen the window and up or down to move its centre, or pick one of the named windows — lung, bone, brain, soft tissue — on a CT, where the units are the same on every scanner in the world.
  4. Scroll the stack. The slider under the picture moves through the slices, and the arrow keys do the same thing once you have clicked on the picture. A multi-frame file — an ultrasound loop, an angiogram — plays with the button beside it.
  5. Measure something. Switch to Measure and drag a line. Where the file says how far apart its pixels are, the answer is in millimetres and takes account of pixels that are not square; where the file does not say, the answer is in pixels and says so rather than inventing a scale.
  6. Read the header. Every element in the file, with its number, what the standard calls it and what it holds, searchable. Above it, the list of what in this particular file identifies the patient — which is a great deal more than the name.
  7. Take what you need. The frame on screen as a PNG, with the window you set and nothing burned into it, or the whole header as plain text. Both are built in the page from what is already there.

The longer version

How to open a DCM file, and what is in one What a .dcm file is and what opens one, what is on a hospital disc, why the files have no extension, how to open a DCM file in a browser, what window and level actually does, and what a scan carries about the patient besides the picture.

Questions

Is my scan uploaded anywhere?

No. The file is read, decoded and drawn by your own browser on your own hardware. There is no server side to this tool, and the page's Content-Security-Policy names every address it may contact — none of them belongs to this site. Unplug from the network and it still opens scans.

That is worth more here than on any other page of this site. A DICOM file carries the patient's name, date of birth and hospital number in its header, so uploading one to a viewer means handing a stranger a medical record, not a picture.

How do I open a .dcm file?

Drop it on the box at the top of this page. A .dcm file is a DICOM file — the format every hospital scanner writes — and this page is a DCM file opener: it reads the file in your browser and shows the scan, with nothing to install and nothing uploaded. It works the same on Windows, on a Mac, on Linux, on a Chromebook and on a phone, because the only program involved is the browser you already have.

If what you were given is a disc or a folder rather than one file, drop the whole folder. A CT or an MR is one file per slice, often with no .dcm on the end of the names at all, and opening them together is what puts the scan back in order. The DICOMDIR file and the Windows viewer that came on the disc can be left where they are; neither is needed.

What is a .dcm file, and why does double-clicking it do nothing?

It is one image, or one loop of images, from a medical scanner, in the DICOM format: a header of several hundred fields — who the patient is, which machine took it, how the pixels are laid out — followed by the pixels themselves. It is not a JPEG with a different name, which is why a photo app, an image editor and a browser tab all refuse it, and why a computer that has never had a medical viewer installed has nothing registered to open one.

Not every file ending in .dcm is a scan, either: the same three letters are used by a disk-cataloguing program and by engine calibration files in the car industry. This page checks the file itself rather than its name, and says so plainly when what it was given is not DICOM.

Which DICOM files can it open?

Uncompressed files in any of the three basic transfer syntaxes — implicit and explicit little endian, and the retired big-endian one — plus deflated, RLE Lossless, baseline JPEG, and JPEG Lossless, which is what the majority of CT and MR studies on a hospital disc are compressed with.

It cannot decode JPEG 2000, JPEG-LS, or the MPEG and HEVC syntaxes used for video. Those need codecs that are megabytes of compiled library, and a page that downloaded one on demand would not be a page that works offline. A file in one of them still opens: the whole header is read and shown, and the picture is replaced by a line naming the codec, rather than by a broken-image icon that tells you nothing.

What is “window and level”, and why do I need it?

A CT slice holds about four thousand distinct values and your screen shows two hundred and fifty-six greys. The window is the choice of which slice of that range gets all of them: everything below it is black, everything above it is white, and what is in between is spread across the greys.

That is why the same file looks like a different scan under two settings, and why lung and bone cannot be seen at once. On a CT the numbers are Hounsfield units, which are defined absolutely — water is 0 and air is −1000 — so the named windows on this page are the same numbers a radiologist uses at a workstation. On an MR or an ultrasound there is no such scale, and the window that opens is the one the file itself asks for.

Why does it say my measurement is in pixels?

Because that file does not say how big a pixel is. Pixel Spacing (0028,0030) is what carries that, in millimetres, and a great many ultrasound images, scanned documents and secondary captures simply do not have it.

Where it is there, the measurement is in millimetres and each axis is measured with its own spacing, which matters on the images whose pixels are not square. Where it is not, the honest answer is a count of pixels, and this says so rather than picking a scale and presenting the result as a length.

It opened my folder as several series. Why?

Because that is what is in it. A study is made of series — the scout view, then each acquisition or reconstruction — and every file says which one it belongs to in Series Instance UID (0020,000E). The dropdown is built from that rather than from the folder, which usually has all of them mixed together in one list of names.

Within a series the slices are put in order by where each one sits in the patient, worked out from Image Position and Image Orientation. Instance Number is the obvious key and it is the fallback rather than the first choice: it is assigned by whatever wrote the files and does not have to run in the direction the patient does.

What does the “what identifies the patient” list mean?

It is every field in your file that names the person the scan is of, or that narrows down who they could be, read off this file on your machine. The list comes from PS3.15 of the DICOM standard — the part that says what has to go before a dataset can be called de-identified.

It is there because the thing people get wrong is not that a scan has a name in it. It is how much else it has: the birth date, the accession number, the referring physician, the institution, the scanner's serial number, and the study UIDs, which are perfect keys back into the archive that made the file. A scan that has had the name blanked out and nothing else is not anonymous.

This tool only shows you. It writes nothing and changes nothing, so it cannot take any of it out.

Can it anonymise a scan?

No, and it deliberately does not pretend to. This page reads; it has no code that writes a DICOM file. What it does is tell you exactly what is in yours, which is the part that is hard to find out and the part people are wrong about.

A tool that takes the identifiers out is a separate job with a much higher bar — it has to rewrite the file without touching the pixels, replace the UIDs consistently across a whole study, and be right about the private elements some scanners hide a second copy of the name in. It is on the roadmap for this site rather than bolted onto a viewer.

Can it open a file that has no .dcm extension, or a broken one?

Yes to both. The extension is not looked at: what is checked is the file itself. A dataset written without the usual 128-byte preamble — which is what a scan pulled straight off the network looks like — is read by working out its encoding from its first element, and the page says that is what it did.

A file that ends part-way through is read as far as it goes. Everything before the damage is shown, with a note saying which byte it stopped at. That is the case a viewer is most wanted for, so throwing the whole file away over its last twelve bytes would be the wrong behaviour.

Is this a diagnostic viewer?

No. It is not a medical device, it has not been through any regulatory assessment, and nothing here should be used to make a clinical decision. Your screen is not calibrated, the browser is not a validated rendering chain, and neither of those can be fixed from inside a web page.

What it is good for is everything else people open a scan for: checking what is on a disc, pulling a slice for a teaching deck or a paper, reading a header, working out why another program refuses the file, and seeing what a scan is carrying about the person it is of.

Does it change my file?

No. This tool only reads. There is no output file, no re-encode and no button here that writes a DICOM — what you can download is a PNG of the frame on screen and a plain-text copy of the header. Your original is untouched on your disk.

Is it free, and do I need an account?

It is free, and there is no account, no sign-in and no trial. There is no limit on file size or on how many files you open beyond your own machine's memory. The site carries advertising, which is what pays for it; the ads are not given anything about your file.

Does it work offline?

Yes. Load the page once, then disconnect from the internet and it keeps working. That is also the simplest way to prove nothing is being uploaded: a tool that sent your scan away to be rendered would stop the moment you unplugged.