Bahmni PACS 시뮬레이터를 이용한 테스트 PACS 설정
관련 문서를 참조하십시오. Bahmni PACS 모듈은 주문을 생성·수정·취소할 때 모달리티와 통신하고, 모달리티가 촬영한 이미지를 DICOM 서버(DCM4CHEE/Orthanc)로 전송하기를 기대합니다. 개발/테스트 환경에서 기능을 시험하려면 이 동작을 모방하는 모달리티 에뮬레이터가 필요합니다.
검토한 모달리티 에뮬레이터와 HL7 시뮬레이터 중 요구 사항을 충족하는 것이 없어 이 동작을 전용으로 모사하는 에뮬레이터를 만들었습니다. 관련 저장소에서 코드를 확인할 수 있습니다.
작동 방식
- 주문 HL7 메시지(ORM^O01)를 수신합니다.
- 환자 ID, 이름, accession number, study ID 및 study date 같은 DICOM 태그를 수정한 DICOM 이미지 하나를 업로드합니다. 그러면 DICOM 뷰어(Oviyam2)가 해당 환자와 주문의 이미지를 DICOM 서버(DCM4CHEE/Orthanc)에서 가져올 수 있습니다.
- 호출자에게 확인 메시지를 반환합니다.
Bahmni PACS 에뮬레이터 실행 지침
- 저장소에서 코드를 체크아웃합니다.
- https://sourceforge.net/projects/dcm4che/files/dcm4che2/2.0.28/ 을 다운로드하여 /var/lib/bahmni 폴더에 압축 해제합니다.
- build.sh로 Bahmni PACS 에뮬레이터를 빌드합니다.
- 특정 포트에서 실행하고, timeout을 변경하며, DICOM 파일을 업로드할 DCM4CHEE/Orthanc 인스턴스를 지정할 수 있습니다.
- 기본적으로 에뮬레이터는 9000번 포트에서 timeout 30초로 실행되며 DCM4CHEE@192.168.33.10:11112에 DICOM 이미지를 업로드하려고 합니다. 사용자 지정 실행 예시는 다음과 같습니다.
java -jar target/pacssimulator-1.0-SNAPSHOT-jar-with-dependencies.jar 8087 20000 orthanc http://172.18.2.98:8042/instances
java -jar target/pacssimulator-1.0-SNAPSHOT-jar-with-dependencies.jar 8087 20000 dcm4chee DCM4CHEE@192.168.33.10:11112위 예시에서는 "dcmsnd" 스크립트 위치를 "/var/lib/bahmni/dcm4che-2.0.28/bin/"으로 가정합니다. 아래와 같이 시스템 매개변수(dcmsnd_path)로 재정의할 수 있습니다.
시뮬레이터 실행 모드
- 기본 모드(run.sh 사용): 9000번 포트에서 실행합니다. 주문 메시지를 받고 DCM4CHEE@192.168.33.10:11112의 Dcm4chee에 업로드한 뒤 확인 메시지를 반환합니다.
특정 Orthanc/Dcm4chee로 게시
java -jar target/pacssimulator-1.0-SNAPSHOT-jar-with-dependencies.jar 8080 30000 orthanc http://myorthancUrl:8051/instances
java -jar target/pacssimulator-1.0-SNAPSHOT-jar-with-dependencies.jar 8087 20000 dcm4chee DCM4CHEE@mydcm4cheeUrl:11113
java -jar pacssimulator-1.0-SNAPSHOT-jar-with-dependencies.jar 9000 30000 dcm4chee DCM4CHEE@172.18.2.27:11112 > /dev/null &- 지정된 포트(위 예시에서는 8080)에서 실행되고 timeout은 30000밀리초이며 http://myorthancUrl:8051/instances의 Orthanc로 업로드한 뒤 확인 메시지를 반환합니다.
Orthanc로 게시하지 않기
[Orthanc 설정이 없을 때 유용합니다.]
- 지정된 포트(위 예시에서는 8080)에서 실행되고 timeout은 30000밀리초이며 http://myorthancUrl:8051/instances의 Orthanc로 업로드한 뒤 확인 메시지를 반환합니다.
DICOM 파일을 DCM4CHEE에 직접 업로드
시뮬레이터를 실행하면 주문이 DCM4CHEE의 "Modality Worklist"에 나타나지 않는 단점이 있습니다. 올바르게 구성하면 Bahmni pacs-integration이 ORM 메시지를 시뮬레이터로 직접 보냅니다. 주문을 DCM4CHEE modality worklist에 표시하고 이후 해당 주문(Accession)에 DICOM 파일을 업로드하려면 다음 단계를 따릅니다.
- 관련 절차를 따르고 PACS-Integration 모듈을 설정하며 주문 가능한 개념 코드를 매핑합니다. 관련 "Radiology" 주문(예: CHEST PA)을 입력하면 DCM4CHEE modality worklist에 나타나야 합니다. 나타나지 않으면 매핑 코드, Bahmni pacs-integration, 특히 modality worklist용 DCM4CHEE 구성을 다시 확인합니다.
- pacs-integration 로그(/var/log/pacs-integration/pacs-integration.log)와 DCM4CHEE 로그(/var/lib/bahmni/dcm4chee-2.18.1-psql/server/default/log/server.log)를 확인할 수 있습니다. Bahmni pacs integration의 Postgres 테이블 bahmni_pacs.failed_events도 참고할 수 있습니다.
- 주문이 "Modality Worklist"에 표시되면 위 Simulator JAR로 DICOM 파일을 생성합니다. patientId, givenname, familyname, accession number를 확인합니다. java java -cp pacssimulator-1.0.0-jar-with-dependencies.jar org.bahmni.pacssimulator.DicomFileGenerator GAN123 Gajendra Singh ORD-309 [dicom file path | 0-1]]]>
- 명령 출력에서 생성된 파일 위치를 확인한 뒤 "dcmsnd" 명령으로 파일을 전송합니다. 그 전에 DCM4CHEE에 이름 "DCMSND", 포트 "11113"인 AE(Application Entity)를 생성합니다. AE와 포트가 이미 사용 중이지 않은지 확인합니다. 생성된 파일로 다음 명령을 실행합니다. bash -stgcmt -L ]]>
- "dcmsnd" 명령 경로가 올바른지 확인합니다. 예: bash. 출력에서 "A801H" 같은 오류를 확인하고 의미를 검색하여 먼저 해결합니다. 일반적으로 dcmsnd 매뉴얼이 도움이 됩니다. DCM4CHEE 웹 인터페이스의 "Folder" 탭에서 study를 검색하거나 Oviyam(https://your-server-address/oviyam2/)에서 검색합니다. OVIYAM2 뷰어에 작은 이미지가 표시됩니다. Bahmni 환자 대시보드에서 Radiology Order를 클릭하면 전체 OVIYAM2 뷰어가 열려야 합니다.
> java -cp pacssimulator-1.0.0-jar-with-dependencies.jar org.bahmni.pacssimulator.DicomFileGenerator GAN123 Gajendra Singh ORD-309 [dicom file path | 0-1]
./dcmsnd <scp[@host][:port]> -stgcmt -L <aet[@host][:port]>./dcmsnd DCM4CHEE@192.168.33.10:11112 /tmp/3bd0d47c-7794-4095-9170-357591454cbd.dcm -stgcmt -L DCMSND:11113PACS Simulator Docker 이미지 사용
PACS Simulator는 Docker 이미지로 만들어 Docker Hub에 업로드되어 있습니다. 두 가지 방식으로 실행할 수 있습니다.
- 주문을 수신하고 DICOM 이미지를 PACS 서버로 게시: pacs-integration 서비스와 dcm4chee가 실행 중인 docker-compose를 사용합니다.
- DCM4CHEE Modality Worklist 항목의 DICOM 이미지 수동 업로드: 관련 절차를 따르고 PACS-Integration 모듈과 주문 가능 개념 코드 매핑을 설정합니다. 관련 "Radiology" 주문(예: CHEST PA)이 DCM4CHEE modality worklist에 표시되어야 합니다. 표시되지 않으면 매핑 코드, Bahmni pacs-integration 및 modality worklist용 DCM4CHEE 구성을 확인합니다. 로그는 /var/log/pacs-integration/pacs-integration.log 및 /var/lib/bahmni/dcm4chee-2.18.1-psql/server/default/log/server.log에 있으며 Postgres 테이블 failed_events도 참고할 수 있습니다. patientId, givenname, familyname, accession number를 확인하고 값을 바꾸어 다음 명령을 실행합니다. bash ]]> 예시: ` docker run --rm -it bahmni/pacs-simulator ./upload.sh DCM4CHEE@192.168.33.10:11112 GAN203010 Test Radiology ORD-330 `
docker run --rm -it bahmni/pacs-simulator ./upload.sh <PACS_SERVER_URL> <PATIENT_ID> <PATIENT_FIRST_NAME> <PATIENT_LAST_NAME> <ACCESSION_NUMBER>Bahmni Wiki · CC BY-SA 4.0