Sitemap
Prins Wu

Prins Wu

DICOM Basic

Oct 29, 2022

--

這2年在一家外包商服務,而這家外包商的客戶是美國一家醫療服務公司。我們所屬部門負責醫療影像的雲端儲存,所以也就第一次接觸Dicom這個標準。DICOM是一種關於數位醫療影像的傳輸、儲存、查詢、轉移等操作的標準。舉例來說,當你照完了X光,想要把X光數位影像儲存到醫院本地的醫療儲存設備,所使用的protocol就是DICOM。

基本資料結構

醫療影像的資料大致包含了以下4類

  • Patient: 病人資料 (病人ID、姓名、年紀、性別等)
  • Study: 一筆Study相當於一次的門診 (門診日期、Study UID等)
  • Series: 某一種類型的檢測,如X光、電腦斷層掃描 (檢測類別、檢測設備型號等)
  • Instance: 一張醫療檢測圖片或是一段連續的掃描影像

這4個階層會存成一個二進位的Dicom file。

[Patient || Study || Series || Instance]

當這次的門診檢測照了5張X光,就會產生5個Dicom files。它必不是階層形的結構,而是類似excel個一筆row的概念。也就是說5個Dicom files其Patient跟Study資料就會重複在這5個files出現5次,而且內容是一模一樣的。

Get Prins Wu’s stories in your inbox

Join Medium for free to get updates from this writer.

現代的你可能會想說,改成階層式的結構不是比較直覺也不會浪費儲存空間跟傳輸量。

- Patient
- Study
- Series 1
- Instance 1
- Series 2
- Instance 1
- Instance 2

這就要從DICOM發展的歷史來說了。

DICOM發展歷史 (簡單說)

可以從Dicom wikipedia page找到Dicom從1980就開始發展,直到1993 年發布了該標準的第三版,其名稱更改為“Digital Imaging and Communications in Medicine”,縮寫為 DICOM。可以想像到時WWW才剛開始,大部分的地方只有區域網路,想要連上網際網路還需要靠撥接。所以你想要把一張醫療影像的圖檔透過網路傳移到另一台機器上會相當的緩慢。

通常一次的醫療影像檢查會包含1筆Patient、1筆Study、1或多個Series並且每個Series可能會有多筆Instance。但是鑒於網路傳輸的速率,要一次打包傳輸數十或數百個Dicom files一次傳輸會是很高風險的。

  • 只要傳輸中斷整包就得重來
  • 醫療行為可能很緊急,醫生急須檢測影像的某一張圖

因此,Dicom所要應付的行為場景跟我們在網頁上瀏覽或是post網美照的需求是不同的。所以它就長那樣了,跟現在一般常見的HTTP Restful、gRPC相當的不同。。

Dicom File長怎樣

你可以從一些開放的資料集下載Dciom files,有些下載集很大。如果你只是想看看它長怎樣,這裡可以下載基本的檔案。

然後可以到這裡把剛剛的檔案上傳來觀看影像的內容。

但如果你想知道Dicom file裡不是圖檔的資訊,而是Patient、Study之類的欄位內容的話。你可以安裝VSCode的plugin — ‘DICOM Tag Dump’,在該dcm file按下右鍵、選擇‘’DICOM: Dump DICOM Tags。

Press enter or click to view image in full size

如果你想知道某個Tag的含義,可以用google搜尋Tag。ex: dicom 0010,0010。我推薦看‘https://dicom.nema.org/’的內容,畢竟他會包含較多Dicom標準的資訊。

這應該會是一系列的文章,下次來說說dcmtk這個tool。

--

--