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,須依據產生圖像的設備來決定