# 怎麼開啟一個 DICOM 檔案，以及裡面有什麼

醫院給的光碟是一個裝著沒有字尾的檔案的資料夾，外加一個給 Windows XP 寫的閱片器。那些檔案是 DICOM，而它們一點也不神秘。一份影像就是一個裝滿欄位的頭資訊，加上一堆畫素。下面說怎麼看它，那些操作是什麼意思，以及這個檔案除了影像之外還帶著什麼。

[開啟DICOM 閱片器](https://abox.tools/zh-TW/dicom-viewer/): CT、MR、X 光和超音波，連窗寬窗位、頭資訊和測量一起。

最後更新 2026年8月26日

## 先說結論

開啟 [DICOM 閱片器](https://abox.tools/zh-TW/dicom-viewer/)，把整個裝著檔案的資料夾拖進去。它們會在你自己的機器上讀出來，各自歸回原來的序列，並按裝置拍攝的順序疊好。什麼都不會上傳，也不會往你的檔案裡寫回任何東西。

要是你拿到一張光碟，正猶豫該開哪個檔案：全部，一次性。一次 CT 或者 MR 不是一個檔案，是一層一個檔案，一次胸部檢查就是三百來個。

## 醫院給的光碟裡都有什麼

通常是四樣，而只有一樣要緊。

- **一個裝著影像的資料夾**，名字常常是 `DICOM`、`IMAGES` 或者 `ST0001`，裡面的檔案叫 `IM000001`、`I0000001`，或者一長串帶點的數字。很多時候壓根沒有字尾。這就是影像。
- **一個叫 `DICOMDIR` 的檔案**，是其餘部分的索引，寫出來是為了讓閱片器不必逐個開啟就能列出光碟上的檢查。你用不著它。
- **一個閱片器**，可能是 Windows 的可執行檔案、一條自動執行項，偶爾是個 Java 小程式。它是照著刻盤那會兒的環境編譯的，所以那麼多都已經跑不起來了。
- **一個帶醫院標誌的 HTML 頁面或者 PDF**，講怎麼啟動那個閱片器。

影像並不需要那個閱片器。這個格式是公開的標準，檔案自己就讀得了；光碟上那個可執行檔案只是能讀它們的一個程式，不是唯一的一個。

## 檔案為什麼沒有字尾

因為 DICOM 不需要。每個檔案都內建標記：128 個位元組的空白，然後是 `DICM` 這四個字母，再然後是一小塊欄位，說明這個檔案其餘部分是怎麼寫的。讀的一方查的是那四個字母，不是以 `.dcm` 結尾的名字。

這也是為什麼把檔名改成 `.dcm` 什麼也改變不了，以及為什麼一個非要字尾的閱片器是在沒必要地較勁。直接從醫院網路裡寫出來的檔案，連那 128 個位元組和那個標記都沒有，就是前面什麼都不加的裸資料，讀的一方得從它的第一個元素推斷出編碼方式。那是正常檔案，不是壞檔案。

## 窗寬窗位，這才是要緊的那個操作

這是讓一張醫學影像不同於一張照片的唯一一件事，也是影像編輯軟體不適合看它的原因。

一層 CT 裡大約有四千個不同的數值，你的螢幕只能顯示兩百五十六級灰。總得有什麼來決定這四千裡哪一些落到那兩百五十六裡，這個決定就是**窗**。比它低的全黑，比它高的全白，中間那一段鋪滿灰階。

挪一下窗，同一個檔案看著就像另一次檢查。這不是渲染出了毛病，這正是關鍵。肺和骨都在同一層裡，卻沒法同時看清：一個能看出充氣肺紋理的窗，會把所有骨頭變成純白；一個能看清肋骨骨小梁的窗，會把整個肺變成純黑。

CT 上的數值是**亨氏單位**，是絕對定義的，不是每臺機器各算各的：水是 0，空氣是 −1000，全世界每一臺 CT 都如此。所以閱片器才能給出帶名字的窗，肺窗、骨窗、腦窗、軟組織窗，而且它們在你的檔案上跟在那臺出報告的工作站上是同一個意思。常用的幾個是：

- **軟組織窗** | 窗位 40，窗寬 400。
- **肺窗** | 窗位 −600，窗寬 1500。
- **骨窗** | 窗位 300，窗寬 1500。
- **腦窗** | 窗位 40，窗寬 80。這個窗很窄，因為灰質和白質只差幾個單位。

MR 上沒有這樣的標度。數值取決於序列、線圈和機器，所以沒有什麼可以拿來給預設起名字，一開始用的窗就是檔案自己要求的那個。每一份影像都帶著一個建議。

![檢視器：一張灰階斷層圖，旁邊是窗寬窗位控制元件、常見組織範圍的預設，四角還有檢查資訊。](https://abox.tools/screens/open-a-dicom-file/viewer.webp)

真正起作用的兩個控制元件是窗寬和窗位。一次掃描攜帶的層次比螢幕能顯示的多，你看的是其中哪一段，由它們決定。

## 為什麼有時候翻層的方向是反的

閱片器得決定把這些檔案按什麼順序排，而檔案裡有兩樣東西可以用。

**Instance Number** 是一個計數。這是最順手的選擇，可它是由寫這些檔案的東西分配的，沒有理由按病人躺著的方向去編號。一次從腳往上重建、卻從頭往下編號的檢查，翻起來就是倒的；而由兩次重建拼起來的一套序列，編號甚至可能直接重複。

**Image Position (Patient)** 說的是這一層實際在什麼位置，單位是毫米，而且用的座標系是釘在病人身上的，不是釘在機器上的。不管編號做了什麼，按它排都是對的，而且還有個有用的副產品：一旦層按物理位置排好了，層與層之間的距離就量得出來，於是閱片器可以告訴你層間距是 5 mm，也能發現少了一層，而這件事檔案本身從來不說。

## 量點什麼

影像是量出來的資料，所以在它上面量出的長度是真實長度，前提是檔案寫了畫素之間隔多遠。寫這個的只有一個欄位，Pixel Spacing，單位毫米，幾乎每一次 CT 和 MR 都有。

超音波影像、掃描檔，還有存成 DICOM 的螢幕截圖，常常沒有這一項。沒有的時候，毫米這個答案就不存在誠實的版本，而一個照樣給出毫米的閱片器是自己編了一個比例。畫素數是對一個檔案回答不了的問題給出的正確答案。

也要留意不是正方形的畫素，這在 CT 之外很常見。按畫素量再乘一個間距，只有在兩個方向相等時才對，每個方向都得用自己的那個數。

## 一份影像除了影像還帶著什麼

這是人們弄錯的地方，也是對這類檔案要小心的理由。

DICOM 檔案不是加了後設資料的圖片，是裝著圖片的病歷。頭資訊是一串欄位，在一次尋常的臨床影像上，裡面裝著：

- 病人的姓名、住院號、出生日期和性別；
- 檢查號，也就是在醫院系統裡回到那張申請單的鑰匙；
- 開單醫生、拍片技師、出報告的放射科醫生；
- 機構、機構地址和科室；
- 裝置的廠商、型號和序列號；
- 精確到秒的檢查日期和時間；
- 以及檢查、序列、例項的那幾個唯一識別符號，它們是回到出片檔案庫的完美鑰匙。

你拿到的任何一個檔案都帶著這全部，而且檔案走到哪裡它們就跟到哪裡。刪掉姓名是不夠的：一個出生日期、一個郵編大小範圍內的機構，加上一個檢查時間，認出一個人的本事跟姓名差不多；而檢查的 UID，對任何能進那個檔案庫的人來說，指認得分毫不差。

有些裝置還會把病人姓名的第二份副本放進一個私有欄位。那種欄位的含義沒有在任何地方公開過，而多數匿名化工具根本不動它，因為它們無從知道裡面裝著什麼。

![一張卡片，列出檔案裡能指認患者的東西：姓名、編號、出生日期和檢查描述。](https://abox.tools/screens/open-a-dicom-file/identity.webp)

除了那張圖，掃描還隨身帶著這些。為什麼不該把它用郵件發出去，正是這張卡片在說明。

## 別為了看一眼就把影像傳上去

這件事通常是這麼解決的：搜一下「dicom viewer online」，然後找到一個上傳框。而那一刻剛剛發生的事情是，一個陌生人手裡有了一份病歷的副本：畫素、姓名、出生日期、住院號，以及回到檔案庫的那把鑰匙。

根本沒有這個必要。讀一個 DICOM 檔案就是解析一段頭資訊、再把一些整數拆出來，瀏覽器做這個乾得很好。所以[這裡的閱片器](https://abox.tools/zh-TW/dicom-viewer/)壓根沒有聯網功能：沒有 `fetch`，沒有 `XMLHttpRequest`，就算有什麼想送，也沒有東西送得出去。把頁面載入一次，斷網，它照樣開啟影像。

[把檔案傳到線上轉換網站安全嗎？](https://abox.tools/zh-TW/guides/is-it-safe-to-upload-files/)講了怎麼在本站或者任何別的站上核實這個說法。而這一類檔案，正是最值得核實的那一類。

## 瀏覽器做不到什麼

兩件事，而且兩件都值得說明白。

**它不是診斷用的閱片器。**你的螢幕沒有校準，瀏覽器不是經過驗證的渲染鏈路，也沒有哪個網頁透過過監管評估。為了做臨床判斷去讀一份影像，那是它出報告的那臺工作站的工作。看看光碟裡有什麼、取一層放進課件或者論文、讀頭資訊、弄清另一個程式為什麼拒收這個檔案，這些都是在瀏覽器裡開啟它的好理由。

**有些壓縮過的影像解不開。**DICOM 允許好幾種壓縮方案，瀏覽器實現了其中一種。未壓縮的檔案、run-length 編碼的檔案、baseline JPEG，還有醫院匯出時大多用的 JPEG Lossless，都打得開。JPEG 2000、JPEG-LS 和影片用的那幾種格式，需要好幾 MB 的編譯庫。影像解不開的時候，頭資訊照樣完整可讀，而那通常本來就是你要來看的那一半。
