개발/DICOM 이야기

05. DICOM 객체(Object)와 데이터 요소(Data Element)

devbake 2025. 7. 28. 22:50

DICOM 파일은 단순한 의료 이미지가 아니다. 그 안에는 영상, 환자 정보, 검사 정보, 장비 정보 등 수많은 데이터가 함께 저장되어 있다. 이러한 정보는 아무렇게나 저장된 것이 아니라, 객체(Object) 단위로 나뉘고, 각각의 객체는 여러 개의 데이터 요소(Data Element)로 구성되어 있다. 
예를 들어, 한 명의 환자에 대한 CT 검사 결과는 하나의 DICOM 객체로 저장되며, 이 객체 안에는 환자 이름, 검사 일시, 영상 해상도, 촬영 장비 정보 등 수십 개의 데이터 요소가 포함된다.
이번 글에서는 DICOM에서 객체와 데이터 요소가 무엇인지, 이들이 어떻게 연결되어 있고, 실무에서 어떻게 사용되는지를 구체적으로 살펴본다. 이를 이해하면 DICOM 파일을 읽고 분석하는 데 큰 도움이 될 것이다.

 

1. DICOM 객체란 무엇인가

DICOM 객체는 하나의 검사 혹은 영상 단위를 나타내는 논리적 구조다.
다시 말해, **하나의 DICOM 파일은 하나의 객체(Object)**라고 생각할 수 있다.
이 객체는 환자, 검사, 시리즈, 이미지 등 계층적인 구조를 갖는다.

주요 DICOM 객체 계층 구조

계층  설명
Patient 환자 정보 (이름, 생년월일, ID 등)
Study 한 번의 검사 단위 (예: 복부 CT)
Series 동일 조건의 연속된 이미지 묶음 (예: 복부 CT 단면 연속 촬영)
Instance 실제 하나의 DICOM 이미지 파일

 

예를 들어, 홍길동이라는 환자가 2024년 3월 1일 복부 CT를 찍었다면:

  • 이 전체는 하나의 Study 이다.
  • 그 안에서 100장의 단면 이미지가 촬영됐다면 100개의 Instance 가 존재한다.
  • 그중 한 장의 DICOM 파일은 하나의 Object로 취급된다.

 

2. 데이터 요소(Data Element)란?

DICOM 객체를 구성하는 가장 작은 단위는 **데이터 요소(Data Element)**다. 모든 정보는 이 데이터 요소 형태로 저장된다.
예를 들어, 환자 이름은 하나의 데이터 요소이며, 촬영 날짜도 또 하나의 데이터 요소다.

데이터 요소 구성 구조

각 데이터 요소는 다음 4가지 구성 요소로 이루어진다.

구성 요소 설명
Tag (그룹 번호, 요소 번호)로 이루어진 고유 식별자
VR (Value Representation) 데이터 타입 (예: PN, DA, UI 등)
Length 데이터의 바이트 길이
Value 실제 값 (예: 홍길동, 20240301 등)

예시:

Tag: (0010,0010)  
VR: PN (Person Name)  
Length: 8  
Value: 홍길동

이 구조는 매우 규칙적이기 때문에, 전문 도구 없이도 Hex 에디터나 Python으로 직접 파싱하는 것이 가능하다.

 

3. 자주 사용하는 주요 데이터 요소 태그


태그 설명 VR 예시
(0010,0010) Patient’s Name PN 홍길동
(0010,0020) Patient ID LO P123456
(0008,0020) Study Date DA 20250301
(0008,0060) Modality CS CT
(0020,000D) Study Instance UID UI 1.2.840...
(7FE0,0010) Pixel Data OB/OW (이미지 데이터)

이 태그들만 이해하더라도 헬스케어 개발자를 제외한, 관련 직무에 종사하는 이들은 대부분의 실무 분석 및 필터링 작업이 가능하다.

 

4. VR(Value Representation)의 종류

VR은 해당 데이터 요소가 어떤 형식의 값을 갖는지를 나타낸다.

VR 의미 예시
PN Person Name 홍길동
DA Date 20250301
TM Time 143012.000
UI Unique Identifier 1.2.840.10008...
CS Code String CT, MR 등
LO Long String P123456

VR은 DICOM 파일을 해석할 때 필수적인 요소이며, Length 값 계산에도 영향을 주는 구조적 핵심이다.

 

5. 객체와 데이터 요소의 관계

  • 객체는 하나의 논리 단위 (환자의 검사 단위)
  • 데이터 요소는 그 안의 모든 세부 정보

즉, 객체가 하나의 XML 문서라면, 데이터 요소는 그 안에 있는 태그라고 볼 수 있다.

또한, 각 객체마다 고유한 "UID(Unique Identifier)"가 부여되며, 이 UID를 통해 병원 시스템이나 PACS 서버가 객체를 구분하고 저장하게 된다.

 

6. 실무에서의 활용 예시

  1. 환자 이름만 익명화할 때
    → (0010,0010) 태그만 찾아서 Value를 비움
  2. CT 검사만 추출할 때
    → (0008,0060) Modality 태그가 'CT'인 파일만 필터링
  3. AI 학습용으로 Pixel Data만 추출할 때
    → (7FE0,0010) 태그만 추출하여 이미지로 변환
  4. PACS 연동 오류 발생 시 원인 추적
    → UID 누락, VR 불일치 등을 통해 문제 해결 가능

참고를 위해 전용 뷰어를 통해 실제 dicom 파일을 확인할 때의 사진을 하단에 첨부한다.

이미지에서 보이는 바와 같이 Tag와 Value는 물론 VR, Length 등을 보기 쉽게 확인할 수 있다. 

DICOM 객체(Object)와 데이터 요소(Data Element)


결론

DICOM 객체와 데이터 요소는 DICOM 파일 구조의 핵심이다.
객체는 논리적 단위를 나타내고, 그 내부에는 수많은 데이터 요소들이 체계적으로 저장되어 있다.
태그와 VR, UID를 이해하는 것은 단순한 파일 파싱을 넘어서 PACS 연동, AI 학습, 데이터 필터링, 보안 처리 등 모든 의료 영상 실무의 기본이 된다.
다음 편에서는 데이터 요소 중에서도 가장 많이 혼동되는 개념인 DICOM 태그와 VR, Length의 관계를 더 깊이 있게 다룰 예정이다.