의료 영상 시스템용 DICOM MCP 서버 🏥
dicom-mcp 서버는 AI 어시스턴트가 DICOM 서버(PACS, VNA 등)에서 데이터를 쿼리하고, 읽고, 이동할 수 있도록 합니다.
✨ 핵심 역량
dicom-mcp 다음 작업을 위한 도구를 제공합니다.
🔍 메타데이터 쿼리 : 다양한 기준을 사용하여 환자, 연구, 시리즈 및 인스턴스를 검색합니다.
📄 DICOM 보고서(PDF) 읽기 : 캡슐화된 PDF(예: 임상 보고서)가 포함된 DICOM 인스턴스를 검색하고 텍스트 콘텐츠를 추출합니다.
➡️ DICOM 이미지 보내기 : 시리즈나 연구를 다른 DICOM 대상지(예: 이미지 분할, 분류를 위한 AI 엔드포인트)로 보냅니다.
⚙️ 유틸리티 : 연결을 관리하고 쿼리 옵션을 이해합니다.
Related MCP server: DICOM-MCP
🚀 빠른 시작
📥 설치
uv 또는 pip를 사용하여 설치:
지엑스피1
또는 저장소를 복제합니다.
⚙️ 구성
dicom-mcp DICOM 노드를 정의하고 AE 제목을 호출하는 YAML 구성 파일( config.yaml 또는 유사 파일)이 필요합니다. 샘플 ORTHANC 서버와의 호환성을 위해 구성을 수정하거나 그대로 유지하세요.
DICOM-MCP는 임상 용도로 제작되지 않은 오픈 소스 프로젝트이므로, 병원 데이터베이스나 환자 민감 데이터가 포함된 데이터베이스와 연결해서는 안 됩니다. 연결하지 않을 경우 환자 데이터가 손실되거나 인터넷으로 유출될 수 있습니다.
(선택 사항) ORTHANC 서버 샘플
DICOM 서버를 사용할 수 없는 경우 Docker를 사용하여 로컬 ORTHANC 서버를 실행할 수 있습니다.
저장소를 복제하고 테스트 종속성을 설치합니다 pip install -e ".[dev]
🔌 MCP 통합
클라이언트 구성에 다음을 추가합니다(예: claude_desktop_config.json ):
개발을 위해:
🛠️ 도구 개요
dicom-mcp DICOM 서버와 DICOM 데이터와의 상호작용을 위한 4가지 범주의 도구를 제공합니다.
🔍 쿼리 메타데이터
query_patients: 이름, ID, 생년월일 등의 기준으로 환자를 검색합니다.query_studies: 환자 ID, 날짜, 모달리티, 설명, 접근 번호 또는 연구 UID를 사용하여 연구를 찾습니다.query_series: 모달리티, 시리즈 번호/설명 또는 시리즈 UID를 사용하여 특정 연구 내의 시리즈를 찾습니다.query_instances: 인스턴스 번호 또는 SOP 인스턴스 UID를 사용하여 시리즈 내의 개별 인스턴스(이미지/객체)를 찾습니다.
📄 DICOM 보고서 읽기(PDF)
extract_pdf_text_from_dicom: 캡슐화된 PDF가 포함된 특정 DICOM 인스턴스를 검색하고 해당 텍스트 콘텐츠를 추출합니다.
➡️ DICOM 이미지 보내기
move_series: C-MOVE를 사용하여 특정 DICOM 시리즈를 구성된 다른 DICOM 노드로 보냅니다.move_study: C-MOVE를 사용하여 전체 DICOM 연구를 다른 구성된 DICOM 노드로 보냅니다.
⚙️ 유틸리티
list_dicom_nodes: 현재 활성화된 DICOM 노드를 표시하고 구성된 모든 노드를 나열합니다.switch_dicom_node: 후속 작업을 위해 활성 DICOM 노드를 변경합니다.verify_connection: C-ECHO를 사용하여 현재 활성화된 노드에 대한 DICOM 네트워크 연결을 테스트합니다.get_attribute_presets: 메타데이터 쿼리 결과에 대해 사용 가능한 세부 정보 수준(최소, 표준, 확장)을 나열합니다.
예시 상호작용
다음과 같은 도구를 연결하여 복잡한 질문에 답할 수 있습니다.
📈 기여하기
테스트 실행
테스트를 실행하려면 Orthanc DICOM 서버가 필요합니다. Docker를 사용할 수 있습니다.
pytest를 사용하여 테스트를 실행합니다.
Orthanc 컨테이너를 중지하세요:
디버깅
MCP Inspector를 사용하여 서버 통신을 디버깅하세요.
🙏 감사의 말
pynetdicom을 사용하여 빌드됨
PDF 텍스트 추출을 위해 PyPDF2를 사용합니다.