3-2. DICOM이란? (Feat. DICOM format and Viewer)
안녕하세요.
이번 글에서는 DICOM format이 무엇인지 알아보도록 하겠습니다.
또한, DICOM 파일로 부터 영상 이미지를 추출하는 방법에 대해서도 알아보도록 하겠습니다.
(DICOM은 저도 본지 얼마 안돼서 잘 못 된 부분이 있을 수 있으니 해당 부분을 꼭 댓글로 말씀해 주시면 감사하겠습니다!)
1. DICOM format (.dcm)
DICOM file(.dcm 파일)은 아래와 같이 크게 두 파트(File Meta Information + Object Instance)로 구성되어 있습니다.
먼저, File Meta Information 즉, Header라고 불리는 부분이 어떻게 구성되어 있는지 알아보도록 하겠습니다.
1) File Meta Information
- Preamble: 128 byte로 구성된 dummy byte입니다. 주로 zero 값으로 구성되어 있는데, 필요시 특별한 정보를 담을 수 도 있습니다.
- DICOM prefix: Preamble 다음에 곧 바로 "D", "I", "C", "M"라는 글자가 나와야 DICOM 파일임을 알 수 있습니다. 쉽게 말해 이 파일이 DICOM 파일이다라는 인증 마크와 같다고 보면 될 것 같습니다.
- File Meta elements: This section specifies the File Meta Elements needed to support the formatting of the File Meta Information of the DICOM File Format.
(↓↓↓Preamble&Prefix↓↓↓)
(↓↓↓File Meta Elements↓↓↓)
ex) Transfer Syntax: 데이터를 보내는 데 사용되는 인코딩 → bit dendian, JPEG compression, ETC...
2) Information Object
Information object 부분은 Data Element로 구성되어 있는데, Data Element가 실질적인 dataset이라고 보시면 됩니다.
Information Object의 구성요소라 할 수 있는 Data Set은 IOD (Information Object Definition) 형식을 따릅니다. IOD는 Entity-relationship model을 중심으로 information entities, modules, attributes로 구성되어 있습니다.
예를 들어, MRI(=MR Image)라는 것을 하나의 객체(information object)라고 설정하고, 해당 객체를 여러 entitiy를 이용해 표현합니다. 환자정보를 나타나는 entity, 검사정보를 나타내는 entity, 이미지정보를 나타내는 entity 등이 있습니다.
그리고 각각의 entity는 해당 entity에 어울리는 데이터 종류(=Module)들로 구성됩니다. 예를 들어, 환자정보에는 나이, 체중, 이름과 같은 데이터 종류 등이 있을거에요. 그리고 실질적으로 부여되는 구체적인 값들을 attribute라고 합니다.
앞서 잠시 언급했듯이, Information entity 종류는 굉장히 많습니다. 아래 그림을 보면 진하게 칠해진 가장 바깥쪽 테두리 부분이 entity입니다.
각각의 entity에 대한 설명은 아래 링크를 참고해주시면 될 것 같습니다.
(↓↓↓아래링크 접속 후, ctrl+F키 누른후 "Patient IE"를 검색↓↓↓)
http://dicom.nema.org/dicom/2013/output/chtml/part03/chapter_A.html
그리고 각각의 entity는 아래와 같은 계층구조(연결관계)를 이루고 있습니다.
Data element는 attribute에 속합니다. 각각의 data element들은 group과 element로 구성된 tag를 통해 구분 합니다.
- 태그별로 환자 정보, 영상 취득 날짜 등 부가적인 meta 정보 포함
- ex1) (0008,~): Modality 및 study 정보
- ex2) (0010,~): Patient information (환자정보)
- ex3) (0028,~): Image information → dimension, scale, etc...
Data element(=attribute)의 인코딩과 길이, attribute에 속한 데이터 타입과 format은 VR(Value Representation)에 의해 결정됩니다.
[예시] {0x0010, 0x0010} PN 9 David Kim
- 0x0010, 0x0010: Patient Name에 접근하는 Tag Key 이며
- VR: Person Name을 나타내는 데이터 형태 → PN
- Length: 이름이 길이 → 9
- Value Field: Patient Name에 해당되는 값인 환자의 이름을 나타냅니다. → David KIm
아래 그림은 여러 VR 종류이니 한 번 확인해보셔도 좋을 것 같습니다.
Image is also a data element. An archive server receives DICOM images as information objects from the acquisition computers.
DICOM에서 실제 Image데이터는 "Image entity → Image Pixel module → PixelData attribute" 로 접근하면 됩니다.
- Compressed image data type: bitmap
- Non-Compressed image data type: jpeg, gif, etc...
※DICOM format (.dcm) 외에 Nifti format (.nii)도 의료 영상 데이터 포맷으로 사용되고 있으니 알아두시면 좋을 것 같습니다.
2. DICOM Viewer
DICOM 파일 열어볼 수 있는 응용 프로그램 (Viewer) 중에서 프리웨어로 사용할 수 있는 대표적인 viewer program은 Sante DICOM viewer입니다.
(↓↓↓Sante DICOM Viewer 다운로드↓↓↓)
https://www.santesoft.com/win/sante-dicom-viewer-pro/download.html
View를 사용하는 방식은 아래 영상을 참고하시면 될 것 같습니다. (12분부터)
https://www.youtube.com/watch?v=ULiAURY5kAE
이외 다른 DICOM viewer들도 있는데, 아래 사이트에 접속하시면 다양한 DICOM viewer 종류들을 살펴보실 수 있으실 겁니다.
http://www.dclunie.com/medical-image-faq/html/part8.html#DICOMFileConvertorsAndViewers
3. Image extraction from DICOM format
(DICOM에서 이미지 추출하는 방법)
이상 DICOM에 대한 설명을 마무리하도록 하겠습니다.
[Reference]
https://www.insilicogen.com/blog/358
https://slidesplayer.org/slide/12934045/
https://ksiim.org/api/society/journal/download/123/157.pdf