의료 영상 파일인 DICOM에서는 단순히 이미지만 저장하는 것이 아니라, 환자 이름, ID, 성별, 검사 날짜와 시간 같은 메타데이터가 함께 저장된다.
이 정보들은 병원에서 영상 데이터를 검색하거나, PACS 서버에 정렬해서 표시하거나, AI 학습 데이터로 필터링할 때 핵심 기준이 된다.
하지만 일반적인 텍스트와 달리, DICOM은 **자체적인 포맷(DICOM Data Format)**을 따르기 때문에 날짜나 시간, 텍스트 데이터를 그대로 읽거나 쓸 수 없다.
이번 글에서는 DICOM 파일 내부에서 날짜, 시간, 성별, 환자 ID가 어떤 형식으로 저장되는지 그리고 실무에서 이를 어떻게 해석하고 활용하는지를 상세히 설명한다.
1. DICOM에서 사용하는 데이터 포맷 요약
항목 | VR (Value Representation) | 포맷 | 예시 |
날짜 | DA (Date) | YYYYMMDD | 20250728 |
시간 | TM (Time) | HHMMSS.FFFFFF | 143250.000000 |
성별 | CS (Code String) | 한 글자 코드 | M / F / O |
환자 ID | LO (Long String) | 문자열 | P12345678 |
환자 이름 | PN (Person Name) | 성^이름 | KIM^JISOO |
1-1. 날짜 (Date, DA)
대표 태그:
태그 | 설명 |
(0008,0020) | Study Date |
(0008,0021) | Series Date |
(0008,0022) | Acquisition Date |
(0008,0023) | Content Date |
(0010,0030) | Patient's Birth Date |
- 8자리 숫자만 사용 (YYYYMMDD)
- 예: 20250728 → 2025년 7월 28일
📌 슬래시(/), 하이픈(-), 공백 절대 사용 불가
📌 문자열이 아닌 순수 숫자로 인식됨
1-2. 시간 (Time, TM)
대표 태그:
태그 | 설명 |
(0008,0030) | Study Time |
(0008,0031) | Series Time |
(0008,0032) | Acquisition Time |
(0008,0033) | Content Time |
- HHMMSS[.FFFFFF] → 시간, 분, 초 (소수점 이하로 마이크로초까지 가능)
- 예: 143250.000000 → 오후 2시 32분 50초
- 예: 083015 → 오전 8시 30분 15초
📌 소수점 이하 자리는 생략 가능
📌 콜론(:) 사용 안 됨
1-3. 성별 (Sex, CS)
대표 태그:
태그 | 설명 |
(0010,0040) | Patient's Sex |
- M → 남성 (Male)
- F → 여성 (Female)
- O → 기타 (Other)
📌 문자열이 아닌 코드 값으로 인식되기 때문에 정확한 영문자 한 글자를 사용해야 함
1-4. 환자 ID (Patient ID, LO)
대표 태그:
태그 | 설명 |
(0010,0020) | Patient ID |
포맷:
- 문자열 (한 줄, 64자 이하)
- 예: P20250728-001
- 띄어쓰기, 특수문자 일부는 허용되나 시스템에 따라 제한될 수 있음
📌 병원 시스템에서 환자를 식별하는 핵심 키이기 때문에 삭제하거나 중복되면 PACS에서 충돌이 발생할 수 있음
1-5. 환자 이름 (Person Name, PN)
대표 태그:
태그 | 설명 |
(0010,0010) | Patient's Name |
포맷:
- 성^이름 형식 (영문 기준)
- 예: KIM^JISOO
- 한글이 포함될 경우 시스템에 따라 깨질 수 있음
📌 실제 의료 데이터를 AI 학습용 데이터로 사용할 시에 반드시 익명화 또는 가명처리 필요
2. 실무 예시
예시 1: 날짜 기준으로 검사 필터링
if ds.StudyDate >= '20250101':
print("최근 촬영된 영상입니다.")
예시 2: 환자 이름 제거 (익명화 처리)
ds.PatientName = ''
ds.PatientID = 'anon123'
3. 실수하기 쉬운 포맷 오류
잘못된 값 | 문제 |
2025-07-28 | 날짜에 하이픈(-) 포함 → DICOM 파싱 오류 |
14:32:50 | 시간에 콜론(:) 포함 → VR: TM 파싱 실패 |
남 | 성별에 한글 입력 → M, F, O만 허용 |
홍 길 동 | 이름에 띄어쓰기 포함 → 시스템 오류 가능성 높음 |
📌 이런 사소한 포맷 오류가 PACS 업로드 실패, DICOM 뷰어 오류, AI 전처리 중단 등의 큰 문제로 이어질 수 있다.
결론
DICOM은 의료 영상 데이터를 정확하고 일관되게 관리하기 위해 모든 메타데이터에 고정된 형식과 규칙을 적용한다.
날짜는 YYYYMMDD, 시간은 HHMMSS, 성별은 M/F/O, 이름은 성^이름 형식으로 저장되며,
이 규칙을 위반하면 시스템 오류, 파싱 실패, AI 처리 오류 등이 발생할 수 있다.
의료 IT 실무자나 AI 개발자라면 이 포맷을 반드시 이해하고, DICOM 데이터를 처리할 때 항상 규칙에 맞는 값만을 사용해야 한다.
'개발 > DICOM 이야기' 카테고리의 다른 글
14. DICOM 뷰어 추천 및 비교 – RadiAnt, Weasis, MicroDicom 등 (1) | 2025.07.29 |
---|---|
13. DICOM 이미지 형식(Pixel Data)과 압축 방식 (0) | 2025.07.29 |
11. 환자 정보, 검사 정보, 이미지 정보의 구조 이해 (1) | 2025.07.29 |
10. DICOM 파일 내부 구조 분석 예제 (2) | 2025.07.29 |
09. DICOM 헤더 정보 해석하기 – 주요 태그 설명 (0) | 2025.07.29 |