병원 내 PACS 서버는 대부분 상용 솔루션으로 구축되어 있어, 개발자나 연구자가 직접 접근해 테스트하기 어렵다.
하지만 AI 개발, 시스템 연동 실험, 의료영상 데이터셋 구성 등 다양한 작업을 위해 개인 환경에서도 동작 가능한 PACS 서버가 필요하다. 이럴 때 가장 많이 사용되는 오픈소스 서버가 바로 Orthanc이다. Orthanc는 설치가 간편하고, DICOM 수신·조회·전송 기능을 기본으로 제공하며, 웹 기반 인터페이스와 REST API도 지원하여 개발자 친화적인 구조를 갖추고 있다.
이번 글에서는 로컬 환경에 Orthanc를 설치하고, DCMTK 등 도구로 실제 C-STORE 전송 테스트를 수행하는 과정을 단계별로 정리한다.
1. Orthanc란 무엇인가?
Orthanc는 의료 영상 파일인 DICOM을 저장하고 관리할 수 있는 오픈소스 PACS 서버이다.
초경량 구조로 로컬 테스트 환경에 적합하며, 개발, 교육, 연구용 목적으로 널리 사용된다.
주요 특징
- 무료 및 오픈소스 (AGPL 라이선스)
- DICOM 표준 완전 지원
- 웹 기반 인터페이스 제공
- RESTful API 지원 → 자동화 및 외부 시스템 연동 가능
- Windows, macOS, Linux 지원
공식 홈페이지에서 데모 웹사이트 버전을 사용해 볼 수 있다. (https://orthanc.uclouvain.be/demo/app/explorer.html)
2. Orthanc 설치 (Windows 기준)
1) 설치 파일 다운로드
- 공식 사이트: https://www.orthanc-server.com/download.php
- 운영 체제에 맞는 버전 선택 (Windows 사용자: .zip 또는 .exe 설치본 사용 가능)
2) 실행 방법
- 압축 해제 후 Orthanc.exe 실행
- 최초 실행 시 Orthanc.log와 함께 Orthanc.json 설정 파일 생성됨
- 웹 인터페이스: http://localhost:8042
3. 기본 설정 확인 (Orthanc.json)
설치 폴더 내 Orthanc.json 파일을 열어 아래 항목을 확인한다:
{
"Name" : "ORTHANC",
"StorageDirectory" : "OrthancStorage",
"DicomAet" : "ORTHANC",
"DicomPort" : 4242,
"HttpPort" : 8042,
"RemoteAccessAllowed" : true
}
항목 | 설명 |
DicomAet | Orthanc 서버의 AE Title (예: ORTHANC) |
DicomPort | 수신 포트 (예: 4242) |
HttpPort | 웹 포트 (기본: 8042) |
StorageDirectory | DICOM 파일 저장 경로 |
RemoteAccessAllowed | 외부 접속 허용 여부 (개발용: true) |
📌 설정 변경 후에는 Orthanc를 재시작해야 반영된다.
4. DICOM 파일 전송 테스트 (DCMTK 사용)
1) DCMTK 설치
sudo apt install dcmtk # (Linux)
brew install dcmtk # (macOS)
Windows 사용자는 DCMTK 설치본 다운로드 필요.
2) C-STORE 테스트 명령
storescu -aec ORTHANC 127.0.0.1 4242 sample.dcm
옵션 | 설명 |
-aec | 서버의 AE Title (ORTHANC와 일치해야 함) |
127.0.0.1 | 서버 IP 주소 |
4242 | DICOM 수신 포트 |
📌 sample.dcm 파일이 Orthanc 서버에 업로드되고, 웹 인터페이스에서 확인 가능하다.
5. 웹에서 DICOM 확인
- 브라우저에서 http://localhost:8042 접속
- “Patients” 목록에서 전송한 파일의 환자 정보 확인
- Study/Series/Image 단위로 계층 구조 탐색 가능
- DICOM 태그 확인 및 이미지 렌더링 지원
6. Orthanc에서 REST API 활용 예시
Orthanc는 RESTful API를 지원하므로 Python, JavaScript 등에서 자동화 접근이 가능하다.
// 예시 – 전체 환자 목록 조회:
curl http://localhost:8042/patients
// 예시 – 특정 환자의 Study 목록:
curl http://localhost:8042/patients/{patient_id}/studies
📌 이 기능은 대규모 데이터 수집, AI 시스템과의 연동 등에 활용된다.
7. 확장 기능 및 플러그인
플러그인 | 기능 |
WebViewer | DICOM 이미지 웹 렌더링 |
PostgreSQL Plugin | 메타데이터 DB 연동 |
Lua Scripting | 수신/전송 자동화 처리 |
DICOMweb Plugin | QIDO-RS, WADO-RS 지원 (FHIR 연동 포함) |
8. 실무 팁
- AE Title 불일치 시 통신 오류 발생
클라이언트의 -aec와 Orthanc의 "DicomAet" 설정이 같아야 한다. - 방화벽 포트 허용 필요
외부 장비에서 Orthanc에 접근하려면 4242 포트가 열려 있어야 한다. - 저장 경로 용량 확보
OrthancStorage 폴더가 꽉 차면 수신 실패하므로 디스크 여유 확인 - 보안 환경에서는 RemoteAccessAllowed: false 설정
외부 접속 차단을 통해 무단 접근 방지
결론
Orthanc는 설치가 간편하고, DICOM 표준을 완전히 지원하는 가장 실용적인 오픈소스 PACS 서버다.
로컬 환경에서 DICOM 전송, 수신, 조회 테스트를 진행하거나 AI 분석 시스템과의 연동을 개발할 때, 실제 병원 환경을 시뮬레이션하는 데 매우 유용하다.
이번 실습을 통해 PACS 연동의 기본 구조를 실체적으로 경험할 수 있으며,
다음 글에서는 PACS와 HIS(EHR) 시스템 간 연동 개념을 다룰 예정이다.
'개발 > DICOM 이야기' 카테고리의 다른 글
23. 의료 영상 데이터셋 소개 (NIH Chest X-ray, TCIA 등) (2) | 2025.07.30 |
---|---|
22. PACS와 EHR(HIS) 시스템 연동 이해하기 (3) | 2025.07.29 |
20. PACS란 무엇인가 – 병원 영상 관리 시스템의 핵심 개념 (3) | 2025.07.29 |
19. DICOM 서버와 클라이언트의 동작 방식 이해 (0) | 2025.07.29 |
18. DICOM 통신 구조 – C-STORE, C-FIND, C-MOVE의 의미 (3) | 2025.07.29 |