[Medical] DICOM - UID Definition & Rules

DICOM - UID Definition & Rules

這邊說的 UID 適用範圍是用在醫學影像上作為 DICOM Tag 的數據之用,做為區分同一個 DICOM Tag 下的不同物件(Object)與實例(Instance)

正經做醫學影像的話還是要找個國際性邊碼機構組織申請,若是試驗性的可找 Free UID 申請的網站如: Medical Connections Ltd

這邊記錄一下個人對 DICOM UID 的理解與一些參考資料

定義

UID (Unique Identifiers)

       - World-Wide Unique

       - All DICOM object or service must have legal UID

ex.

    (0008,0018) SOP Instance UID

    (0020,000D) Study Instance UID

    (0020,000E) Series Instance UID


 

參考文獻

依據 DICOM PS3.5 2020d - Part5 Data Structures and Encoding 的附錄 B.1 Organizationally Derived UID


 

範例

DICOM UID的組成分兩部分

Root   - 包含組織識別碼

Suffix - 製造商可自定義但還是有制定準則要遵循

以下為文件上範例:

"1.2.840.xxxxx.3.152.235.2.12.187636473"

  \_________/ \_____________________/

          root      .                suffix

root部分:

1 表示為 ISO

2 表示為 ANSI 成員體

840 表示國碼 U.S. 美國

(臺灣:158 德國:276 日本:392 南韓:410)

(國碼查詢)

xxxxx 表示組織識別碼 (需要申請)


 

範例的suffix部分:(可自訂)

3 表示製造商的設備類型

152 表示製造商定義的序號

235 表示 Study 編號

2 表示 Series 編號

12 表示圖像編號

187636473 表示圖像採集的日期與時間戳記


 

規則準則

依據 Part5 9.1 UID Encoding Rules 有幾項通用規則:

1. UID 由多個組件(component)組成,各元件由一至多個數字組成;除非該組件是單個數字,否則各組件第一位數不為0

2. 數字編碼使用 ISO 646:1990(DICOM的預設字符庫)基礎G0字符集(Basic G0 Set)的 0 ~ 9 數字符號

3. 各個組件以 . 字符(2EH)分隔

4. 整組字符串長度若為奇數字節(byte),需要結尾填入 NULL 字符(00H)用來滿足偶數字節邊界;除非用於網路協商(Network Negotiation)用途則不在此限

5. UID 總長度不應超過 64 個字符;其中包含各組件數字、分隔字符 . (2EH)、填充字符 NULL (00H)


 

此外網上找到有關 UID 通用規則也有以下注意事項,重點精神在於生成 UID 的唯一性

1. 需找適當管控的編碼機構生成 root 組織識別碼

2. 不要在他人產生的 UID 後加上數字來生成新的 UID ;除非該 UID 是自己可以確認唯一性的

    2.1. 特別是 Series UID 不必衍生自 Study UID root (除非該 root 是我們本身擁有可控制,須避免 UID 重複的可能性)

3. 用日期時間生成 UID 需注意以下幾點

    3.1. 每臺機器需有唯一的 root 部分 (例如將設備序號加入 root)

    3.2. 若 UID 產生速度為每秒 > 1,則要使用順序計數器(Sequential Counter)來產生

    3.3. 如果在多線程計算機上,則需要使用線程ID或正確的互鎖計數器,以防止兩 個應用程序或同一應用程序中的2個線程同時生成相同的 UID

    3.4. 不要單獨使用時間作為組件,容易產生 0 開頭的數字;應加入日期做開頭

            如:20060724.093017 用 20060724093017 取代

4. 並沒有特別規定 Study UID, Series UID 和 Instance UID 需要衍生自同樣的 root,須依據產生圖像的設備來決定