Сервер DICOM MCP для систем медицинской визуализации 🏥
Сервер dicom-mcp позволяет помощникам на базе искусственного интеллекта запрашивать, считывать и перемещать данные на серверах DICOM (PACS, VNA и т. д.).
🤝 Внести свой вклад • 📝 Сообщить об ошибке • 📝 Запись в блоге 1
✨ Основные возможности
dicom-mcp предоставляет инструменты для:
🔍 Запрос метаданных : поиск пациентов, исследований, серий и случаев с использованием различных критериев.
📄 Чтение отчетов DICOM (PDF) : извлечение экземпляров DICOM, содержащих инкапсулированные PDF-файлы (например, клинические отчеты), и извлечение текстового содержимого.
➡️ Отправка изображений DICOM : отправка серий или исследований в другие пункты назначения DICOM, например, в конечные точки ИИ для сегментации изображений, классификации и т. д.
⚙️ Утилиты : управление подключениями и понимание параметров запросов.
Related MCP server: DICOM-MCP
🚀 Быстрый старт
📥 Установка
Установка с помощью uv или pip:
Или клонировав репозиторий:
⚙️ Конфигурация
dicom-mcp требует файл конфигурации YAML ( config.yaml или аналогичный), определяющий узлы DICOM и вызывающий заголовки AE. Адаптируйте конфигурацию или оставьте как есть для совместимости с образцом сервера ORTHANC.
[!ВНИМАНИЕ] DICOM-MCP не предназначен для клинического использования и не должен быть связан с реальными больничными базами данных или базами данных с конфиденциальными данными пациентов. Это может привести как к потере данных пациентов, так и к утечке данных пациентов в Интернет. DICOM-MCP можно использовать с локально размещенными LLM с открытым весом для полной конфиденциальности данных.
(Необязательно) Пример сервера ORTHANC
Если у вас нет сервера DICOM, вы можете запустить локальный сервер ORTHANC с помощью Docker:
Клонируйте репозиторий и установите тестовые зависимости pip install -e ".[dev]
Пользовательский интерфейс по адресу http://localhost:8042
🔌 Интеграция MCP
Добавьте в конфигурацию вашего клиента (например, claude_desktop_config.json ):
Для разработки:
🛠️ Обзор инструментов
dicom-mcp предоставляет четыре категории инструментов для взаимодействия с серверами DICOM и данными DICOM.
🔍 Запрос метаданных
query_patients: Поиск пациентов по таким критериям, как имя, идентификатор или дата рождения.query_studies: поиск исследований по идентификатору пациента, дате, модальности, описанию, номеру доступа или уникальному идентификатору исследования.query_series: поиск серий в рамках определенного исследования с использованием модальности, номера/описания серии или уникального идентификатора серии.query_instances: поиск отдельных экземпляров (изображений/объектов) в серии с использованием номера экземпляра или UID экземпляра SOP
📄 Читать отчеты DICOM (PDF)
extract_pdf_text_from_dicom: извлечение определенного экземпляра DICOM, содержащего инкапсулированный PDF-файл, и извлечение его текстового содержимого.
➡️ Отправка изображений DICOM
move_series: отправка определенной серии DICOM на другой настроенный узел DICOM с помощью C-MOVE.move_study: отправка всего исследования DICOM на другой настроенный узел DICOM с помощью C-MOVE.
⚙️ Коммунальные услуги
list_dicom_nodes: Отображение текущего активного узла DICOM и списка всех настроенных узлов.switch_dicom_node: изменение активного узла DICOM для последующих операций.verify_connection: проверка сетевого подключения DICOM к текущему активному узлу с помощью C-ECHO.get_attribute_presets: список доступных уровней детализации (минимальный, стандартный, расширенный) для результатов запроса метаданных.
Пример взаимодействия
Инструменты можно объединять в цепочку для ответа на сложные вопросы:
📈 Вклад
Проведение тестов
Для тестов требуется работающий сервер Orthanc DICOM. Вы можете использовать Docker:
Запустите тесты с помощью pytest:
Остановите контейнер Orthanc:
Отладка
Используйте MCP Inspector для отладки связи с сервером:
🙏 Благодарности
Создано с использованием pynetdicom
Использует PyPDF2 для извлечения текста из PDF-файлов