Dicom/hl7/fhir Interoperability Mcp Server について
DICOM/HL7/FHIR Interoperability MCP Serverは、DICOM、HL7v2、FHIRデータの調査やマッピングを行う医療IT連携エンジニア向けのツールです。オプションでPACSに接続でき、Mirth Connectのチャネル生成にも対応します。
主な機能
- 01DICOMタグの検索とベンダー固有タグの解読
- 02HL7 v2メッセージとフィールドの解析
- 03DICOM・HL7v2・FHIR R4のマッピング
- 04Mirth Connectチャネル設定の生成
- 05PACSへの任意接続と検索・メタデータ取得
活用シーン
- 01DICOMタグとベンダー固有情報の調査
- 02HL7メッセージの解析と検証
- 03医療標準間のフィールドマッピング設計
- 04PACS研究の検索とマッピング概要の作成
MCP 対応
MCPサーバーはDICOM、HL7v2、FHIRの参照、解析、マッピング、生成ツールを公開します。PACS接続を有効にすると、研究の検索、メタデータ取得、画像取得も行えます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
DICOM/HL7/FHIR 相互運用性 MCP サーバー
DICOM、HL7v2、FHIR を単一パッケージで連携する唯一の MCP サーバーです。PACS 接続にも対応しています。
PACS、RIS、システム統合で16年の経験を持つ医療 IT エンジニアが開発しました。これは FHIR API や DICOM タグ辞書をラップしたものではありません。長年の実務を通じて培われる相互運用性の知識に加え、実際の PACS システムに接続する機能を備えています。
このサーバーの特長
| 機能 | このサーバー | DICOM 専用サーバー | FHIR 専用サーバー |
|---|---|---|---|
| DICOM タグ検索+ベンダー固有の注意点 | はい | はい | いいえ |
| HL7v2 メッセージの解析 | はい | いいえ | いいえ |
| FHIR R4 リソースのマッピング | はい | いいえ | はい |
| DICOM ↔ HL7v2 のマッピング | はい | いいえ | いいえ |
| HL7v2 → FHIR 変換 | はい | いいえ | いいえ |
| Mirth Connect チャネルの生成 | はい | いいえ | いいえ |
| PACS 接続(C-FIND/C-MOVE) | はい | 一部 | いいえ |
| DICOMweb(QIDO-RS/WADO-RS) | はい | いいえ | いいえ |
| PACS にクエリを実行し、HL7/FHIR に自動マッピング | はい | いいえ | いいえ |
| ベンダーのプライベートタグのデコード(GE、Siemens、Philips) | はい | 一部 | いいえ |
| 統合パターンの知識(IHE SWF、ADT フロー) | はい | いいえ | いいえ |
ツール
リファレンスツール(無料)
| ツール | 機能 |
|---|---|
lookup_dicom_tag | 番号またはキーワードで任意の DICOM タグを検索します |
explain_dicom_tag | ベンダー固有の注意点や見落としやすい点を含め、タグを詳しく説明します |
parse_hl7_message | HL7 v2.x メッセージを解析し、人が読みやすい形式にします |
explain_hl7_segment | セグメントのフィールド、データ型、用途を説明します |
lookup_hl7_table | HL7 テーブルの値(行政上の性別、患者クラスなど)を検索します |
マッピング・生成ツール(プレミアム)
| ツール | 機能 |
|---|---|
map_dicom_to_hl7 | 変換に関する注記とともに、DICOM タグを HL7 v2 フィールドにマッピングします |
map_hl7_to_fhir | HL7 v2 フィールドを FHIR R4 リソースにマッピングします |
generate_mirth_channel | Mirth Connect チャネル設定を生成します |
validate_hl7_message | HL7 メッセージを標準に照らして検証します |
explain_integration_pattern | 医療分野の統合パターンをフロー図とともに説明します |
decode_private_tags | ベンダーのプライベート DICOM タグ(GE、Siemens、Philips など)をデコードします |
generate_sample_message | テスト用に実用的なサンプル HL7 メッセージを生成します |
PACS 接続ツール(プレミアム)
| ツール | 機能 |
|---|---|
pacs_echo | PACS への接続を確認します(C-ECHO または DICOMweb ping) |
pacs_query | 患者、日付、モダリティ、アクセッション番号で検査/シリーズを検索します |
pacs_get_metadata | PACS から検査/シリーズの詳細なメタデータを取得します |
pacs_retrieve | C-MOVE で画像を送信先 AE タイトルに転送します |
pacs_study_summary | 検査にクエリを実行し、生成された ORM を用いて DICOM→HL7→FHIR の順に自動マッピングします |
インストール
リファレンスツールのみ(PACS 接続なし):
pip install dicom-hl7-mcp
PACS 接続あり(pynetdicom + httpx を追加):
pip install dicom-hl7-mcp[pacs]
設定
基本(リファレンスツールのみ)
Claude Desktop の設定に追加します:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"dicom-hl7-assistant": {
"command": "uvx",
"args": ["dicom-hl7-mcp"]
}
}
}
プレミアムライセンスを使用する場合
{
"mcpServers": {
"dicom-hl7-assistant": {
"command": "uvx",
"args": ["dicom-hl7-mcp"],
"env": {
"DICOM_HL7_LICENSE_KEY": "your-license-key-here"
}
}
}
}
PACS 接続あり(従来型 DICOM)
C-FIND/C-MOVE/C-ECHO を使用して PACS に接続します:
{
"mcpServers": {
"dicom-hl7-assistant": {
"command": "uvx",
"args": ["--with", "dicom-hl7-mcp[pacs]", "dicom-hl7-mcp"],
"env": {
"DICOM_HL7_LICENSE_KEY": "your-license-key-here",
"DICOM_HL7_PACS_AE_TITLE": "YOUR_PACS",
"DICOM_HL7_PACS_HOST": "pacs.hospital.org",
"DICOM_HL7_PACS_PORT": "4242",
"DICOM_HL7_LOCAL_AE_TITLE": "CLAUDE_MCP"
}
}
}
}
PACS 接続あり(DICOMweb)
DICOMweb 対応 PACS(QIDO-RS/WADO-RS)に接続します:
{
"mcpServers": {
"dicom-hl7-assistant": {
"command": "uvx",
"args": ["--with", "dicom-hl7-mcp[pacs]", "dicom-hl7-mcp"],
"env": {
"DICOM_HL7_LICENSE_KEY": "your-license-key-here",
"DICOM_HL7_DICOMWEB_URL": "https://pacs.hospital.org/dicom-web",
"DICOM_HL7_DICOMWEB_AUTH": "bearer",
"DICOM_HL7_DICOMWEB_TOKEN": "your-auth-token"
}
}
}
}
環境変数
| 変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
DICOM_HL7_LICENSE_KEY | プレミアム版の場合 | — | プレミアムライセンスキー |
DICOM_HL7_LOG_LEVEL | いいえ | INFO | ログレベル |
| 従来の DICOM | |||
DICOM_HL7_PACS_AE_TITLE | DIMSE の場合 | — | リモート PACS の AE タイトル |
DICOM_HL7_PACS_HOST | DIMSE の場合 | — | リモート PACS のホスト名/IP |
DICOM_HL7_PACS_PORT | DIMSE の場合 | — | リモート PACS のポート |
DICOM_HL7_LOCAL_AE_TITLE | いいえ | DICOM_HL7_MCP | このサーバーの AE タイトル |
| DICOMweb | |||
DICOM_HL7_DICOMWEB_URL | DICOMweb の場合 | — | DICOMweb のベース URL |
DICOM_HL7_DICOMWEB_AUTH | いいえ | none | 認証タイプ:none、bearer、basic |
DICOM_HL7_DICOMWEB_TOKEN | bearer の場合 | — | ベアラートークン |
DICOM_HL7_DICOMWEB_USERNAME | basic の場合 | — | ベーシック認証のユーザー名 |
DICOM_HL7_DICOMWEB_PASSWORD | basic の場合 | — | ベーシック認証のパスワード |
| 安全性 | |||
DICOM_HL7_PACS_PROTOCOL | いいえ | auto | プロトコル:auto、dimse、dicomweb |
DICOM_HL7_PACS_ALLOW_RETRIEVE | いいえ | false | C-MOVE を有効化(有効にするには true) |
DICOM_HL7_PHI_REDACT | いいえ | false | 出力内の患者名/IDをマスキング |
PHI の安全性
実際の PACS に接続すると、クエリ結果に保護対象保健情報(PHI)が含まれます。
- ログのマスキング:すべてのログ出力から PHI フィールドが自動的に削除されます
- 結果に関する警告:すべての PACS クエリ結果に PHI に関する警告バナーが含まれます
- 任意のマスキング:
DICOM_HL7_PHI_REDACT=trueを設定すると、ツール出力内の患者名/IDが[REDACTED]に置き換えられます - ディスクへのキャッシュなし:PACS クエリ結果がディスクに書き込まれることはありません
- C-MOVE はデフォルトで無効:明示的に
DICOM_HL7_PACS_ALLOW_RETRIEVE=trueを設定する必要があります
重要: 組織のポリシーで PHI をその LLM プロバイダーに送信することが許可されていない限り、クラウドホスト型 LLM で PACS 接続を使用しないでください。オンプレミスのデプロイやローカル LLM のセットアップでは、この点は問題になりません。
実際の使用例
「DICOM タグ (0008,0050) とは何ですか?」
AccessionNumber — SH — オーダーを識別する、RIS が生成した番号です。RIS のオーダーと PACS の検査を照合するための重要なフィールドです。
HL7 メッセージを解析する
「この HL7 メッセージを解析してください:」
MSH|^~\&|RIS|RAD|EMR|HOSP|20240315140000||ORU^R01|MSG003|P|2.5.1 PID|1||MRN12345^^^HOSP^MR||DOE^JOHN||19650315|M OBR|1|ORD001|ACC001|CTABD^CT Abdomen^L|||20240315130000 OBX|1|FT|&GDT^Report||FINDINGS: Normal CT.||||||F
各セグメントがフィールド名、値、テーブル参照、文脈に応じた説明とともに解析されて返されます。
PACS をクエリして HL7/FHIR に自動マッピングする(プレミアム版)
「PACS でアクセッション番号 ACC12345 を検索し、HL7/FHIR のマッピングを表示してください」
以下を含む相互運用性の概要が返されます。
- PACS から取得した検査メタデータ(患者、日付、モダリティ、説明)
- すべての主要フィールドの DICOM→HL7 フィールドマッピング
- HL7→FHIR R4 リソースマッピング
- あらかじめ入力された HL7 ORM^O01 メッセージのひな形
- 統合パターンのコンテキスト(IHE SWF ワークフロー)
DICOM → HL7 にマッピングする(プレミアム版)
「DICOM の Accession Number は、どの HL7 フィールドにマッピングされますか?」
戻り値:OBR-3 / ORC-3(フィラオーダー番号)、データ型変換に関する注記(SH → EI)、およびマッピング時の注意点。
Mirth チャネルを生成する(プレミアム版)
「ADT メッセージを受信し、FHIR サーバーに書き込む Mirth チャネルを生成してください」
MLLP ソース、FHIR HTTP 宛先、トランスフォーマーのステップ、イベントフィルタリング、実装上の注意点を含む完全なチャネル設定が返されます。
ナレッジベース
規格の対応範囲
- DICOM: よく使われるタグ約200件、SOP クラス、転送構文、7社のプライベートタグ範囲
- HL7 v2.x: 15のセグメント、20以上のテーブル、メッセージタイプ(ADT、ORM、ORU、MDM、SIU、DFT、BAR)、バージョン 2.3~2.9
- FHIR R4: Patient、Encounter、ServiceRequest、DiagnosticReport、Observation、AllergyIntolerance、Condition、RelatedPerson、Coverage のマッピング
- 統合パターン: ADT フィード、オーダーから結果まで、放射線科ワークフロー(IHE SWF)、検査インターフェース、レポート配信、患者の統合、請求計上
ナレッジの出所
タグ、セグメント、マッピングは公開規格(DICOM PS3.6、HL7 v2.5.1、FHIR R4、HL7 v2-to-FHIR IG)に基づいています。ベンダー固有の挙動、統合のヒント、「ここに注意」といった情報は、実際の医療環境で16年間にわたりPACS/RIS/HISインターフェースを構築してきた経験に基づいています。
プレミアムライセンス
無料プランでは、DICOMタグの検索、HL7の解析、セグメントの説明を利用できます。毎日使うツールです。
プレミアムでは、規格をまたいだマッピング、Mirthの生成、検証、PACS接続、そして習得に何年もかかる高度な統合の知識を利用できます。
ライセンスの購入: nyxtools.gumroad.com
よくある質問
無料ツールの利用にライセンスは必要ですか? いいえ。5つの無料ツールをすぐにインストールして利用できます。アカウント登録もサインアップも不要です。
PACS接続は必要ですか?
いいえ。リファレンスツールとマッピングツールは、PACSに接続しなくても動作します。PACS接続は任意です。実際のPACSシステムにクエリを送信したい場合にのみ、pip install dicom-hl7-mcp[pacs] を実行してインストールしてください。
対応しているHL7のバージョンは何ですか? v2.3からv2.9まで対応しており、最も広く導入されている米国の医療分野で使われるv2.5.1を重視しています。
HIPAAに準拠していますか? リファレンスツールが処理するのは規格のメタデータであり、患者データではありません。PACS接続ツールは実際の患者データにアクセスします。PHIの安全対策(ログのマスキング、任意の出力マスキング、デフォルトで無効になっているC-MOVE)は組み込まれていますが、利用が所属組織のポリシーに準拠していることを確認する責任は利用者にあります。
対応しているPACSシステムは何ですか? DICOM C-FIND/C-ECHO(ほぼすべてのPACSが対応)またはDICOMweb(QIDO-RS/WADO-RS)に対応しているPACSであれば利用できます。Orthanc、RamSoft、DCM4CHEEでテスト済みです。
開発
git clone https://github.com/NyxToolsDev/dicom-hl7-mcp-server.git
cd dicom-hl7-mcp-server
pip install -e ".[dev]"
pytest
ライセンス
MIT Licenseをご覧ください。LICENSE。
NyxToolsが開発しました
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。