개발/DICOM 태그 구조 마스터하기

3. DICOM Tag 번호 해석법 – Group/Element 구조 이해하기

devbake 2025. 8. 12. 11:00

DICOM 파일에서 (0010,0010), (0008,0020)와 같은 표기를 보면 처음 접하는 사람들은 이 숫자가 무작위로 붙여진 것이라고 생각하기 쉽다. 하지만 이 태그 번호는 Group NumberElement Number라는 두 개의 2바이트 값이 합쳐진, 총 4바이트의 구조로 이루어져 있다. Group Number는 태그가 속한 대분류 영역을, Element Number는 해당 그룹 내에서의 세부 항목을 지정한다. 이 체계 덕분에 전 세계 어떤 장비와 소프트웨어에서도 DICOM 데이터를 동일하게 해석할 수 있다.

이번 글에서는 Group과 Element가 무엇을 의미하고, 실제 DICOM 파일에서 어떤 방식으로 구성되는지, 그리고 왜 이 구조가 의료 데이터 표준화의 핵심인지 분석한다.

 

 

1. Tag 번호의 기본 구조

  • 크기: 총 4바이트 (32비트)
  • 구성:
  • [Group Number: 2바이트] + [Element Number: 2바이트]
  • 표기 방식: (Group,Element)
    • (0010,0010) → Group=0010, Element=0010
    • (0008,0020) → Group=0008, Element=0020

 

2. Group Number – 태그의 대분류 영역

Group Number는 태그가 속한 정보 모듈을 식별한다.

Group Number 의미 예시 태그
0002 파일 메타정보 (0002,0000) File Meta Information Group Length
0008 Study/Series/Instance 정보 (0008,0020) Study Date
0010 환자 정보 (0010,0010) Patient’s Name
0020 Study/Series 관계 정보 (0020,000D) Study Instance UID
7FE0 Pixel Data (7FE0,0010) Pixel Data

규칙:

  • 짝수 번호 → 표준 DICOM 그룹
  • 홀수 번호 → Private 그룹 (제조사 전용, 비표준)

 

3. Element Number – 세부 항목 식별자

Element Number는 Group 내부의 개별 데이터를 지정한다.

Group Element 의미 VR
0010 0010 환자 이름 PN
0010 0020 환자 ID LO
0008 0020 Study Date DA
0020 000D Study Instance UID UI

 

4. 바이트 단위 예시 (Endian 고려 전)

아래 예시는 가독성을 위해 ‘상위바이트 → 하위바이트’ 순서로 표기한다.
실제 저장 시 바이트 순서는 전송 문법(Transfer Syntax)에 따라 달라질 수 있으며, 이는 다음 편에서 다룬다.
여기서는 Tag 필드(4바이트)만을 분석한다. (본래 그 뒤에는 VR/Length/Value가 연속한다.)

 

예시 A — (0010,0010) Patient’s Name

Tag(4B): 00 10  00 10
          ────  ────
          Group  Element
  • Group 0010 → 환자(Patient) 영역
  • Element 0010 → 환자 이름

이후 연속 바이트는 보통 다음처럼 이어진다(참고용):

VR(2B): 50 4E        → "PN"
Len(2B/4B): 00 08    → Value 길이 예: 8
Value(nB): 48 6F 6E 67 5E 47 44 20 → "Hong^GD "

길이·VR·Value는 이해를 돕기 위한 예시다. 본 장의 핵심은 Tag 4바이트 구조다.

예시 B — (0008,0020) Study Date

Tag(4B): 00 08  00 20
          ────  ────
          Group  Element
  • Group 0008 → 일반적인 Study/Series/Instance 정보
  • Element 0020 → 검사 날짜(Study Date)

(참고) 뒤따르는 값의 한 예:

VR: 44 41 → "DA"
Len: 00 08
Value: 32 30 32 35 30 56 30 31 → "2025…01" (예시, 실제 날짜 값 삽입)

 

예시 C — (0020,000D) Study Instance UID

Tag(4B): 00 20  00 0D
          ────  ────
          Group  Element
 
  • Group 0020 → Study/Series 관계
  • Element 000D → Study Instance UID (연구 고유 식별자)

(참고) 뒤따르는 값의 한 예:

VR: 55 49 → "UI"
Len: 00 1A (예시)
Value: 31 2E 32 2E 38 34 30 ... → "1.2.840...."

Tag의 첫 4바이트는 항상 “Group(2B) + Element(2B)”이다.
이후 VR, Length, Value가 연속한다. 이 순서를 정확히 이해하면 헥스 에디터로도 태그를 추적할 수 있다.

 

 

5. 실무에서 Group/Element가 중요한 이유

정밀 검색/필터링

  • 특정 태그만 빠르게 추출 가능. 예: (0008,0020)만 모아 날짜 집계

데이터 구조 파악 및 장애 분석

  • Group 블록 단위로 영역을 구분하면 손상 구간/누락 구간 파악 용이

표준화된 상호운용성 확보

  • 제조사가 달라도 동일 Tag는 같은 의미로 해석됨

Private Data 처리 정책

  • 홀수 Group(Private)은 장비 의존 → 익명화·이관 시 정책적으로 제거/보존 결정

 

 

6. 어디에서 Group/Element를 확인할 수 있는가 (툴 & 참고 사이트)

A. 로컬/CLI 도구

  • DCMTK – dcmdump
    • dcmdump sample.dcm | head -n 20
    • 출력 예:
      (0010,0010) PN [HONG^GILDONG] # ... Patient's Name
  • pydicom (Python)
    • import pydicom
      ds = pydicom.dcmread("sample.dcm")
      print(hex(ds[0x00100010].tag.group), hex(ds[0x00100010].tag.element))
      print(ds.PatientName)  # 값 확인
  • 헥스 에디터(예: HxD, 010 Editor)
    • 파일을 열고, 메타데이터 영역에서 4바이트 Tag 필드를 찾아 Group/Element를 직접 식별
    • 이후 VR/Length/Value가 연속 배치됨

 

B. 뷰어/서버 UI

  • RadiAnt / MicroDicom / Weasis: “DICOM Info”, “Tags”, “Attributes” 패널에서 Group/Element 확인
  • Orthanc Web UI: Study/Series/Instance 상세 화면의 “Tags/Metadata” 섹션에서 태그 목록 확인

C. 태그 사전(표준 사전/검색 사전)

  • DICOM Standard Browser (Part 6: Data Dictionary)
    • 표준 태그 사전(그룹/엘리먼트, VR, 설명)을 공식 정의로 확인
  • Innolitics DICOM Dictionary
    • 빠른 검색과 VR/설명/사용 컨텍스트 정리
  • DICOMLookup / PixelMed 자료
    • 태그 번호 검색과 간단 설명에 용이

위 사이트들은 태그 번호, VR, 설명, 모듈 정보를 신속히 확인할 때 유용하다.
표준적 근거가 필요한 경우에는 반드시 공식 표준(Part 6) 정의를 우선 참고한다.

 

 


결론

DICOM Tag 번호 해석법 – Group/Element 구조 이해하기

 

DICOM Tag는 "Group(2B) + Element(2B)"로 구성된 4바이트 식별자이며, 데이터의 위치와 의미를 표준적으로 규정한다.
헥스 단위로 보면 Tag 4바이트 뒤에 VR·Length·Value가 연속해 등장한다. 이 규칙을 이해하면 뷰어 없이도 파일 구조를 추적하고,
필요 태그만 선별적으로 처리하는 작업이 가능해진다. 

다음 편에서는 Endian(바이트 순서) 규칙을 실제 헥스 데이터와 함께 분석하여, 동일한 Tag가 저장 순서에 따라 어떻게 보이는지 상세히 설명한다.