개요
앞에 글에서 설명했다시피 DICOM(Digital Imaging and Communications in Medicine)은 정보를 처리, 저장, 인쇄 및 전송하기 위한 표준이며, 해당 데이터에는 파일 형식 정의와 네트워크 통신 프로토콜이 포함된다고 설명드렸습니다.
해당 기능 중에서 통신 방식에 대해서 오늘 글을 작성하여 보겠습니다.
본문에 들어가기 전에 오늘 글에 자주 등장하는 용어에 대해서 간단하게 정리하여 보았습니다.
- SOP : Service-Object Pair, Service는 주로 Command를 의미하며 Object는 IOD(Information Object Definition)를 의미
- ex) DIMSE Service, Media Storage Service, Web Service 와 IOD의 짝을 의미
- IOD : Information Object Definition, 데이터를 이루는 정보들 (IOD의 종류)
- SCP : Service Class Provider, 서버의 역할
- SCU : Service Class User, Client의 역할
- AE : Application Entity, 특정 network 내의 시스템에서 동작하는 하나의 서비스나 Application
본문
오늘 작성할 내용은 DICOM이 PACS와 AE 간의 데이터 교환 AE간의 데이터 교환에 대해서 설명 드릴 예정입니다.
DIMES : DICOM DICOM Message Service Element, Peer AE 간의 연결이 설정되면 Peer AE 간의 메시지 교환을 위한 메커니즘을 의미합니다.
DIMES는 복합 SOP 인스턴스에 적용되는 작업이 정규화된 SOP 인스턴스에 적용되는 작업 및 알림과 다르기 때문에 두 그룹의 DIMSE 서비스가 정의됩니다.
- DIMSE-N: those services applicable to Normalized SOP Instances
- DIMSE-C: those services applicable to Composite SOP Instances
오늘은 DIMES-C 기능에 대해서 설명 드리겠습니다.
DICOM 서비스의 클라이언트는 DICOM 파일( 명령어 ) 로 인코딩된 요청을 보내고 서버는 DICOM 파일로 응답합니다.
DICOM 클라이언트와 DICOM 서버의 연결은 클라이언트와 서버가 서로 교환할 수 있는 명령과 지원되는 전송 구문 에 대해 동의하는 Hand Shake로 시작됩니다 .
C-Echo
- C-Echo : Test the connection between two devices
- 클라이언트와 서버간의 TCP 수준의 연결을 Ping을 통해 확인하는 기능
- 클라이언트에서 서버로 C-Echo를 통해 DICOM 수준의 연결을 테스트 기능
C-STORE
- C-STORE : Send images from the local imaging device to a remote device
DICOM을 서버에서 직접적으로 .DCM files를 보내는 기능
C-FIND
- C-FIND: Search the content of a remote device
클라이언트가 원하는 데이터의 인자(ID, Name etc)를 전달하고, 서버에서는 해당 요소에 맞는 인자를 검색하여 데이터의 리스트를 전단하는 기능
C-GET & C-MOVE
- C-GET & C-MOVE: Retrieve images from a remote device
DICOM 이미지를 클라이언트가 서버에 원하는 타겟에 이미지를 요청 및 전송하는 방법
- C-GET : 뷰어(SCU) 와 PACS(SCP) 사이에 TCP Socket 연결을 하는데, 이는 클라이언트(SCU)가 이미지 갯수에 상관없이 계속적으로 연결이 유지되고 있다. 따라서, AE 많은 경우 이 방식은 부적절(데이터가 요청되는 순서에 따라 전달해야 하기 때문)하므로 주로 C-MVOE를 사용합니다.
- C-MOVE : C-MOVE는 클라이언트(SCU)가 PACS 서버(SCP)로 TCP 연결 및 이미지를 요청하는데, C-GET과는 다른점은 클라이언트가 연결한 TCP socket으로 보내지 않고, PACS서버와 클라이언트가 새로운 TCP 연결을 하여 이미지를 보냅니다. 따라서 클라이언트가 C-STORE를 처리하는 SCP(서버)역할을 할 수 있어야 합니다.
즉, PACS 와 뷰어 사이에는 2개의 TCP 연결이 생기게 됩니다.
1. 뷰어(클라이언트) ---( TCP 연결 요청 ) ---> PACS(서버)
2. PACS(클라이언트) ---( TCP 연결 요청 ) ---> 뷰어(서버)
C-GET & C-MOVE내용은 dicomis 님의 출처 3에 해당하는 글을 인용 및 수정하였습니다.
결론
DICOM을 PACS에서 AE로 전달하는 기능이 필요하여 해당 방법을 구현하는 과정에서 공부한 내용들을 정리하여 보았습니다.
출처
1) https://dicom.nema.org/dicom/2013/output/chtml/part07/sect_7.5.html
'도메인 지식 > DICOM' 카테고리의 다른 글
DICOM의 모든 것 (2) (0) | 2022.06.12 |
---|---|
DICOM의 모든 것 (1) (0) | 2022.05.27 |