hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
dicom-mcp: DICOM モデルコンテキストプロトコルサーバー
このリポジトリはブログ記事の一部です: Agentic Healthcare LLMs
概要
DICOM(Digital Imaging and Communications in Medicine)とのやり取りのためのモデルコンテキストプロトコルサーバー。このサーバーは、DICOMサーバーへのクエリとやり取りを行うツールを提供し、大規模言語モデルによる医用画像メタデータへのアクセスと分析を可能にします。
dicom-mcp は、AIアシスタントが標準のDICOMネットワークプロトコルを用いてDICOMサーバーから患者情報、検査、シリーズ、インスタンスを照会することを可能にします。また、DICOM形式で保存されたカプセル化されたPDF文書からのテキスト抽出もサポートしており、臨床レポートの分析を可能にします。pynetdicom をベースに構築されており、Model Context Protocol仕様に準拠しています。
ツール
list_dicom_nodes
- 構成されたすべてのDICOMノードと呼び出しAEタイトルを一覧表示します
- 入力: なし
- 戻り値: 現在のノード、利用可能なノード、現在の呼び出し元 AE タイトル、および利用可能な呼び出し元 AE タイトル
switch_dicom_node
- 異なる構成のDICOMノードに切り替えます
- 入力:
node_name
(文字列): 切り替え先のノードの名前
- 戻り値: 成功メッセージ
switch_calling_aet
- 設定された別の呼び出しAEタイトルに切り替えます
- 入力:
aet_name
(文字列): 切り替え先の呼び出しAEタイトルの名前
- 戻り値: 成功メッセージ
verify_connection
- C-ECHOを使用して構成されたDICOMノードへの接続をテストします
- 入力: なし
- 戻り値: 成功または失敗のメッセージと詳細
query_patients
- 指定した条件に一致する患者を検索する
- 入力:
name_pattern
(文字列、オプション): 患者名のパターン (ワイルドカードを含めることができます)patient_id
(文字列、オプション): 患者IDbirth_date
(文字列、オプション):患者の生年月日(YYYYMMDD)attribute_preset
(文字列、オプション): プリセットの詳細レベル (最小、標準、拡張)additional_attributes
(文字列[], オプション): 含める追加のDICOM属性exclude_attributes
(文字列[], オプション): 除外するDICOM属性
- 戻り値: 一致する患者記録の配列
query_studies
- 指定した条件に一致する研究を検索する
- 入力:
patient_id
(文字列、オプション): 患者IDstudy_date
(文字列、オプション):調査日または範囲(YYYYMMDDまたはYYYYMMDD-YYYYMMDD)modality_in_study
(文字列、オプション): 研究対象のモダリティstudy_description
(文字列、オプション): 研究の説明(ワイルドカードを含めることができます)accession_number
(文字列、オプション):アクセッション番号study_instance_uid
(文字列、オプション): 研究インスタンスUIDattribute_preset
(文字列、オプション): プリセットの詳細レベルadditional_attributes
(文字列[], オプション): 含める追加のDICOM属性exclude_attributes
(文字列[], オプション): 除外するDICOM属性
- 戻り値: 一致する研究記録の配列
query_series
- 研究内のシリーズを検索する
- 入力:
study_instance_uid
(文字列): 研究インスタンスUID (必須)modality
(文字列、オプション):モダリティ(例:"CT"、"MR")series_number
(文字列、オプション): シリーズ番号series_description
(文字列、オプション): シリーズの説明series_instance_uid
(文字列、オプション): シリーズインスタンスUIDattribute_preset
(文字列、オプション): プリセットの詳細レベルadditional_attributes
(文字列[], オプション): 含める追加のDICOM属性exclude_attributes
(文字列[], オプション): 除外するDICOM属性
- 戻り値: 一致するシリーズレコードの配列
query_instances
- シリーズ内のインスタンスを検索する
- 入力:
series_instance_uid
(文字列): シリーズインスタンスUID (必須)instance_number
(文字列、オプション): インスタンス番号sop_instance_uid
(文字列、オプション): SOPインスタンスUIDattribute_preset
(文字列、オプション): プリセットの詳細レベルadditional_attributes
(文字列[], オプション): 含める追加のDICOM属性exclude_attributes
(文字列[], オプション): 除外するDICOM属性
- 戻り値: 一致するインスタンスレコードの配列
get_attribute_presets
- クエリに使用可能な属性プリセットを一覧表示します
- 入力: なし
- 戻り値: 利用可能なプリセットとそのレベル別の属性の辞書
retrieve_instance
- 特定のDICOMインスタンスを取得し、ローカルファイルシステムに保存します。
- 入力:
study_instance_uid
(文字列): 研究インスタンスUIDseries_instance_uid
(文字列): シリーズインスタンスUIDsop_instance_uid
(文字列): SOPインスタンスUIDoutput_directory
(文字列、オプション):取得したインスタンスを保存するディレクトリ(デフォルト: "./retrieved_files")
- 戻り値: 取得操作に関する情報を含む辞書
extract_pdf_text_from_dicom
- カプセル化されたPDFを含むDICOMインスタンスを取得し、そのテキストコンテンツを抽出します。
- 入力:
study_instance_uid
(文字列): 研究インスタンスUIDseries_instance_uid
(文字列): シリーズインスタンスUIDsop_instance_uid
(文字列): SOPインスタンスUID
- 戻り値: 抽出されたテキスト情報とステータスを含む辞書
インストール
前提条件
- Python 3.12以上
- 接続する DICOM サーバー (例: Orthanc、dcm4chee など)
pipの使用
pip 経由でインストール:
構成
dicom-mcp には、DICOM ノードと呼び出し元の AE タイトルを定義する YAML 設定ファイルが必要です。以下の構造の設定ファイルを作成してください。
使用法
コマンドライン
スクリプト エントリ ポイントを使用してサーバーを実行します。
UVを使用する場合:
Claude Desktopによる構成
これをclaude_desktop_config.json
に追加します:
Zedでの使用
Zed のsettings.jsonに追加します:
クエリの例
利用可能なDICOMノードの一覧
別のノードに切り替える
別の呼び出しAEタイトルに切り替える
接続を確認する
患者を検索する
研究を検索
研究内のシリーズを検索する
一連のインスタンスを検索する
DICOMインスタンスを取得する
DICOM でカプセル化された PDF からテキストを抽出する
デバッグ
MCP インスペクタを使用してサーバーをデバッグできます。
発達
開発環境のセットアップ
- リポジトリをクローンします。Copy
- 仮想環境を作成します。Copy
- 依存関係をインストールします:Copy
テストの実行
テストにはOrthancサーバーの実行が必要です。Dockerを使って起動できます。
次にテストを実行します。
PDF 抽出機能をテストするには:
プロジェクト構造
src/dicom_mcp/
: メインパッケージ__init__.py
: パッケージの初期化__main__.py
: エントリポイントserver.py
: MCP サーバーの実装dicom_client.py
: DICOM クライアント実装attributes.py
: DICOM 属性プリセットconfig.py
: Pydantic による構成管理
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細については LICENSE ファイルを参照してください。
謝辞
- pynetdicom上に構築
- モデルコンテキストプロトコル仕様に準拠
- PDFテキスト抽出にPyPDF2を使用する
This server cannot be installed
AI アシスタントが、患者情報、研究、シリーズ、インスタンスなどの DICOM サーバーからの医用画像メタデータを照会および分析したり、カプセル化された PDF ドキュメントからテキストを抽出したりできるようになります。
Appeared in Searches
- A tool or method for searching PDF documents
- Research on Patient-Disease-Gene-Drug Relationships and Pharmacogenomics Using Digital Imaging Data
- Developing a FHIR-Based Digital Health Application with EHR, PHR, and Phenotyping Frameworks
- A search for information about PDFs or related content
- A server for finding botanic data