반응형
아래 내용은 docker-compose를 사용하여 docker container로 orthanc pacs를 실행하는 방법입니다. 그 중, DICOM Query/Retrieve(C-FIND, C-MOVE, C-STORE) 연동을 위해 필요한 주요 설정에 대한 설명이니, 더 상세한 정보는 Orthanc Book 사이트를 참고하세요.
실행 환경 정보
- CentOS 7.9
- docker 20.10.6
- docker-compose 1.29.2
- configurations :
Configurations
docker-compose.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
version: '3.5' | |
services: | |
app: | |
image: jodogne/orthanc-plugins:1.9.6 | |
hostname: orthanc | |
volumes: | |
# Config | |
- ./orthanc.json:/etc/orthanc/orthanc.json:ro | |
# Persist data | |
- orthanc_db/:/var/lib/orthanc/db/ | |
ports: | |
- 4242:4242 # DICOM | |
- 8042:8042 # Web | |
restart: always | |
volumes: | |
orthanc_db: |
orthanc.json
json 설정 전문은 아래 설정 샘플을 복사하여 사용하시면 됩니다.
테스트 환경에 맞게 변경이 필요한 주요 설정은 아래와 같습니다.
- DicomAet : PACS의 AETitle을 설정합니다. (ORTHANC)
- HttpServerEnabled : Http Web Admin으로 목록 조회를 하고 싶다면 true로 설정합니다. (true)
- HttpPort : HttpServerEnabled 가 true인 경우 Web Browser에서 접속에 사용할 Port를 설정합니다. (8042)
- DicomPort : C-FIND, C-MOVE, C-STORE 등.. DIMSE Protocol을 위한 Listen Port를 설정합니다. (4242)
- DicomModalities :
- C-FIND, C-MOVE, C-STORE 등을 요청하는 연동 Client/Server의 AETitle과 IP, Port를 설정합니다.
- 리스트로 N개 설정 가능하며, 여기에 등록되지 않은 AETitle의 Client(Modality)에서의 요청은 reject 하게 됩니다.
- 요청 Client의 경우 Port를 특정할 수 없기 때문에 Port는 적당한 값으로 설정해도 됩니다.
- 예시 )
"DicomModalities": {
"find" : ["FINDSCU", "10.10.10.1", 10001],
"store" : ["STORESCU", "10.10.10.2", 10002],
"move" : ["MOVESCU", "10.10.10.3", 10003]
}
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"Name": "Orthanc inside Docker", | |
"StorageDirectory": "/var/lib/orthanc/db", | |
"IndexDirectory": "/var/lib/orthanc/db", | |
"StorageCompression": false, | |
"MaximumStorageSize": 0, | |
"MaximumPatientCount": 0, | |
"LuaScripts": [], | |
"Plugins": ["/usr/share/orthanc/plugins", "/usr/local/share/orthanc/plugins"], | |
"ConcurrentJobs": 2, | |
"HttpServerEnabled": true, | |
"HttpPort": 8042, | |
"HttpDescribeErrors": true, | |
"HttpCompressionEnabled": true, | |
"DicomServerEnabled": true, | |
"DicomAet": "ORTHANC", | |
"DicomCheckCalledAet": false, | |
"DicomPort": 4242, | |
"DefaultEncoding": "Latin1", | |
"DeflatedTransferSyntaxAccepted": true, | |
"JpegTransferSyntaxAccepted": true, | |
"Jpeg2000TransferSyntaxAccepted": true, | |
"JpegLosslessTransferSyntaxAccepted": true, | |
"JpipTransferSyntaxAccepted": true, | |
"Mpeg2TransferSyntaxAccepted": true, | |
"RleTransferSyntaxAccepted": true, | |
"UnknownSopClassAccepted": false, | |
"DicomScpTimeout": 30, | |
"RemoteAccessAllowed": true, | |
"SslEnabled": false, | |
"SslCertificate": "certificate.pem", | |
"AuthenticationEnabled": false, | |
"RegisteredUsers": { | |
"test": "test" | |
}, | |
"DicomModalities": { | |
"find" : ["FINDSCU", "10.10.10.1", 10001], | |
"store" : ["STORESCU", "10.10.10.2", 10002], | |
"move" : ["MOVESCU", "10.10.10.3", 10003], | |
"src" : ["SRCSCU", "10.10.10.4", 10004] | |
}, | |
"DicomModalitiesInDatabase": false, | |
"DicomAlwaysAllowEcho": true, | |
"DicomAlwaysAllowStore": true, | |
"DicomCheckModalityHost": false, | |
"DicomScuTimeout": 10, | |
"OrthancPeers": {}, | |
"OrthancPeersInDatabase": false, | |
"HttpProxy": "", | |
"HttpVerbose": true, | |
"HttpTimeout": 10, | |
"HttpsVerifyPeers": true, | |
"HttpsCACertificates": "", | |
"UserMetadata": {}, | |
"UserContentType": {}, | |
"StableAge": 60, | |
"StrictAetComparison": false, | |
"StoreMD5ForAttachments": true, | |
"LimitFindResults": 0, | |
"LimitFindInstances": 0, | |
"LimitJobs": 10, | |
"LogExportedResources": false, | |
"KeepAlive": true, | |
"TcpNoDelay": true, | |
"HttpThreadsCount": 50, | |
"StoreDicom": true, | |
"DicomAssociationCloseDelay": 5, | |
"QueryRetrieveSize": 10, | |
"CaseSensitivePN": false, | |
"LoadPrivateDictionary": true, | |
"Dictionary": {}, | |
"DefaultPrivateCreator": "Lunit", | |
"SynchronousCMove": true, | |
"JobsHistorySize": 10, | |
"SaveJobs": true, | |
"OverwriteInstances": false, | |
"MediaArchiveSize": 1, | |
"StorageAccessOnFind": "Always", | |
"MetricsEnabled": true, | |
"DicomWeb": { | |
"Enable": true, | |
"Root": "/dicom-web/", | |
"EnableWado": true, | |
"WadoRoot": "/wado", | |
"Host": "127.0.0.1", | |
"Ssl": false, | |
"StowMaxInstances": 10, | |
"StowMaxSize": 10, | |
"QidoCaseSensitive": false | |
} | |
} |
반응형
'Engineering > DICOM, DIMSE Protocol, HL7' 카테고리의 다른 글
[Weasis] Import dicom from PACS (dicom-web) in weasis viewer (with ORTHANC PACS) (0) | 2023.02.06 |
---|---|
dcmtk / gdcm : DICOM Transfer Syntax 변환 (0) | 2022.07.09 |
dcmtk : dcmqrscp 로 DICOM Query/Retrieve 테스트 (C-FIND, C-MOVE) (0) | 2022.02.07 |
dcmtk : orthanc PACS에 TLS 적용하여 DICOM 전송 (C-STORE) (0) | 2021.11.21 |
Linux(CentOS)에 dcmtk 설치하기 (0) | 2021.11.04 |
댓글