Databases Python ★ 97

ChristianHinge/dicom-mcp

DICOM entegrasyonu ile PACS ve diğer DICOM uyumlu sistemlerden tıbbi görüntüleri ve raporları sorgulamak, okumak ve taşımak.

Claude Desktop config.json'a ekle

{
  "mcpServers": {
    "christianhinge-dicom-mcp": {
      "command": "python",
      "args": [
        "-m",
        "dicom_mcp"
      ]
    }
  }
}

Tıbbi Görüntüleme Sistemleri İçin DICOM MCP Sunucusu 🏥

License: MIT Python Version PyPI Version PyPI Downloads

dicom-mcp sunucusu, AI asistanlarının DICOM sunucularında (PACS, VNA, vb.) veri sorgulaması, okuması ve taşıması yapmasını sağlar.

🤝 Katkıda Bulun • 📝 Hata Bildir • 📝 Blog Yazısı 1

---------------------------------------------------------------------
🧑‍⚕️ Kullanıcı: "John Doe'nun önceki CT raporunda önemli bulgular var mı?"

🧠 LLM → ⚙️ Araçlar:
   query_patients → query_studies → query_series → extract_pdf_text_from_dicom

💬 LLM Yanıtı: "2025-03-26 tarihli rapor splenomegali (büyük dalak) öyküsünden bahsediyor"

🧑‍⚕️ Kullanıcı: "Son taramada ve bugün dalağının hacmi ne kadardı?"

🧠 LLM → ⚙️ Araçlar:
   (query_studies → query_series → move_series → query_series → extract_pdf_text_from_dicom) x2
   (move_series aracı en son CT'yi DICOM segmentasyon düğümüne gönderir, hacim PDF raporu döndürür)

💬 LLM Yanıtı: "geçen yıl 2024-03-26: 412cm³, bugün 2025-04-10: 350cm³"
---------------------------------------------------------------------

✨ Temel Yetenekler

dicom-mcp aşağıdaki araçları sağlar:

  • 🔍 Meta Veri Sorgulama: Hastalar, çalışmalar, seriler ve örneklerini çeşitli kriterlere göre arayın.
  • 📄 DICOM Raporlarını Okuma (PDF): Kapsüllenmiş PDF'ler (örneğin klinik raporlar) içeren DICOM örneklerini alın ve metin içeriğini çıkarın.
  • ➡️ DICOM Görüntülerini Gönderme: Serileri veya çalışmaları diğer DICOM hedeflerine gönderin, örneğin görüntü segmentasyonu, sınıflandırması vb. için yapay zeka uç noktalarına.
  • ⚙️ Yardımcı Araçlar: Bağlantıları yönetin ve sorgu seçeneklerini anlayın.

🚀 Hızlı Başlangıç

📥 Kurulum

uv veya pip kullanarak yükleyin:

uv tool install dicom-mcp

Veya depoyu klonlayarak:

# Depoyu klonlayın ve geliştirme ortamını kurun
git clone https://github.com/ChristianHinge/dicom-mcp
cd dicom-mcp

# Sanal ortam oluşturun ve etkinleştirin
uv venv
source .venv/bin/activate

# Test bağımlılıklarıyla yükleyin
uv pip install -e ".[dev]"

⚙️ Yapılandırma

dicom-mcp DICOM düğümlerini ve çağıran AE başlıklarını tanımlayan bir YAML yapılandırma dosyası (config.yaml veya benzer) gerektirir. Yapılandırmayı uyarlayın veya örnek ORTHANC Sunucusuyla uyumluluk için olduğu gibi tutun.

nodes:
  main:
    host: "localhost"
    port: 4242 
    ae_title: "ORTHANC"
    description: "Local Orthanc DICOM server"

current_node: "main"
calling_aet: "MCPSCU" 

[!WARNING] DICOM-MCP klinik kullanım için tasarlanmamıştır ve canlı hastane veritabanlarına veya hassas hasta verilerine sahip veritabanlarına bağlanmamalıdır. Bunu yapmak hasta verilerinin kaybına ve hasta verilerinin internete sızmasına neden olabilir. DICOM-MCP tam veri gizliliği için yerel olarak barındırılan açık ağırlıklı LLM'lerle kullanılabilir.

(İsteğe Bağlı) Örnek ORTHANC Sunucusu

Elinizde bir DICOM sunucusu yoksa, Docker kullanarak yerel bir ORTHANC sunucusu çalıştırabilirsiniz:

Depoyu klonlayın ve test bağımlılıklarını yükleyin pip install -e ".[dev]"

cd tests
docker-compose up -d
cd ..
pytest # ORTHANC sunucusuna sahte pdf verileri yükler

Arayüz http://localhost:8042

🔌 MCP Entegrasyonu

İstemci yapılandırmanıza ekleyin (örn. claude_desktop_config.json):

{
  "mcpServers": {
    "dicom": {
      "command": "uvx",
      "args": ["dicom-mcp", "/path/to/your_config.yaml"]
    }
  }
}

Geliştirme için:

{
    "mcpServers": {
        "arxiv-mcp-server": {
            "command": "uv",
            "args": [
                "--directory",
                "path/to/cloned/dicom-mcp",
                "run",
                "dicom-mcp",
                "/path/to/your_config.yaml"
            ]
        }
    }
}

🛠️ Araçlara Genel Bakış

dicom-mcp DICOM sunucuları ve DICOM verileriyle etkileşim için dört kategori araç sağlar.

🔍 Meta Veri Sorgulama

  • query_patients: Ad, kimlik veya doğum tarihi gibi kriterlere göre hastaları arayın.
  • query_studies: Hasta kimliği, tarih, modalite, açıklama, muhasebeci numarası veya Çalışma Kimliği kullanarak çalışmaları bulun.
  • query_series: Modalite, seri numarası/açıklaması veya Seri Kimliği kullanarak belirli bir çalışma içinde serileri bulun.
  • query_instances: Örnek numarası veya SOP Örnek Kimliği kullanarak bir seri içinde bireysel örnekleri (görüntüler/nesneler) bulun.

📄 DICOM Raporlarını Okuma (PDF)

  • extract_pdf_text_from_dicom: Kapsüllenmiş PDF içeren belirli bir DICOM örneğini alın ve metin içeriğini çıkarın.

➡️ DICOM Görüntülerini Gönderme

  • move_series: Belirli bir DICOM serisi C-MOVE kullanarak yapılandırılmış başka bir DICOM düğümüne gönderin.
  • move_study: Tüm DICOM çalışmasını C-MOVE kullanarak yapılandırılmış başka bir DICOM düğümüne gönderin.

⚙️ Yardımcı Araçlar

  • list_dicom_nodes: Şu anda etkin olan DICOM düğümünü gösterin ve yapılandırılmış tüm düğümleri listeleyin.
  • switch_dicom_node: Sonraki işlemler için etkin DICOM düğümünü değiştirin.
  • verify_connection: C-ECHO kullanarak şu anda etkin olan düğüme DICOM ağ bağlantısını test edin.
  • get_attribute_presets: Meta veri sorgu sonuçları için kullanılabilir ayrıntı düzeylerini (minimal, standart, genişletilmiş) listeleyin.

Örnek etkileşim

Araçlar karmaşık soruları cevaplamak için bir araya getirilebilir:

📈 Katkıda Bulunma

Testleri Çalıştırma

Testler çalışan bir Orthanc DICOM sunucusu gerektirir. Docker kullanabilirsiniz:

# docker-compose.yml dosyasını içeren dizine gidin (örn. tests/)
cd tests
docker-compose up -d

pytest kullanarak testleri çalıştırın:

# Proje kök dizininden
pytest

Orthanc konteynerini durdurun:

cd tests
docker-compose down

Hata Ayıklama

Sunucu iletişiminde hata ayıklamak için MCP Inspector'ü kullanın:

npx @modelcontextprotocol/inspector uv run dicom-mcp /path/to/your_config.yaml --transport stdio

🙏 Teşekkürler

  • pynetdicom kullanılarak oluşturulmuştur
  • PDF metin çıkarma için PyPDF2 kullanır

Benzer MCP sunucuları

Daha fazla: Databases →