Claude Code Plugins

Community-maintained marketplace

Feedback

add-med-record

@andr81/pers-assist
0
0

Добавляет медицинские записи в Notion. Используй когда пользователь просит добавить запись в карточку Богданы, Андрея или Вани по файлу анализов/обследований.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name add-med-record
description Добавляет медицинские записи в Notion. Используй когда пользователь просит добавить запись в карточку Богданы, Андрея или Вани по файлу анализов/обследований.

Add Medical Record Skill

Добавляет медицинские записи (анализы, обследования, консультации) в карточки пациентов в Notion.

⛔ КРИТИЧЕСКИЕ ПРАВИЛА

ТОЛЬКО MCP инструменты для Notion:

  • mcp__notion__API-post-page — создание записи
  • mcp__notion__API-patch-page — обновление свойств
  • mcp__notion__API-patch-block-children — добавление контента

ЗАПРЕЩЕНО:

  • Писать Python/JS/любые скрипты для работы с Notion
  • Делать curl/HTTP запросы напрямую
  • Использовать Bash для работы с Notion API
  • Предлагать "альтернативные способы" если MCP "не работает"
  • Говорить "я не могу использовать MCP" — МОЖЕШЬ и ДОЛЖЕН

При ошибке MCP:

Исправить параметры вызова, а НЕ искать обходные пути. Частые ошибки:

  • Неверный формат properties — см. примеры ниже
  • database_id вместо parent.database_id
  • Неверный формат даты (нужен YYYY-MM-DD)

Использование

добавь в карточку [Богданы|Андрея|Вани] запись по файлу {путь}

Если пациент НЕ указан, попробуй определить по переданному документу, иначе спросить через AskUserQuestion. Если передано несколько файлов, то сперва нужно определить какие из них могут быть сгруппированы в один документ.


Базы данных

⚠️ Данные берутся из конфигурационного файла:

  • Файл: config/settings.yaml
  • Путь: skills.add-med-record.patients
  • Каждый пациент содержит: name и database_id

Если файл не найден — выдать ошибку:

⚠️ Файл settings.yaml не найден!
Скопируй settings.yaml.example в settings.yaml и заполни данные.

Схема базы (одинаковая для всех):

  • Name (title) — название записи
  • Date (date) — дата анализа
  • Type (multi_select) — тип(ы) анализа
  • Place (multi_select) — место проведения
  • Doctor (multi_select) — фамилия врач, если указан
  • Note (rich_text) — заметки

Workflow

1. Загрузить конфигурацию пациентов

  • Прочитать файл settings.yaml через Read tool
  • Извлечь раздел skills.add-med-record.patients
  • Сохранить список пациентов (name → database_id) для дальнейшего использования
  • Если файл не найден или раздел пуст — вывести ошибку и остановить выполнение

2. Определить пациента

Из запроса, документа или через AskUserQuestion.

  • Сопоставить имя пациента с записями из settings.yaml
  • Получить соответствующий database_id

3. Прочитать и проанализировать файл

Использовать Read tool. Извлечь:

  • Дата (формат в файле может быть DD.MM.YYYY → конвертировать в YYYY-MM-DD)
  • Место (по логотипу/заголовку: HELIX, SYNLAB, ЛОДЭ и т.д.)
  • Тип(ы) анализа (ОАК, БАК, УЗИ и т.д.)
  • Показатели вне нормы (обычно выделены)
  • ФИО пациента (для проверки)
  • Врач только фамилия (если указан в файле)

4. Сформировать название записи

Формат: `{Типы анализов}

Примеры:

  • ОАК + СОЭ
  • УЗИ щитовидной железы
  • Кардиолог

5. Создать запись в Notion

Шаг 5.1: Создать страницу с названием

mcp__notion__API-post-page

parent: {"database_id": "<database_id>"}
properties: {"Name": {"title": [{"text": {"content": "ОАК + СОЭ"}}]}}

Сохранить id из ответа!

Шаг 5.2: Обновить свойства страницы

mcp__notion__API-patch-page

page_id: "<id из шага 5.1>"
properties: {
  "Date": {"date": {"start": "2024-11-19"}},
  "Type": {"multi_select": [{"name": "ОАК"}, {"name": "СОЭ"}]},
  "Place": {"multi_select": [{"name": "HELIX"}]},
  "Note": {"rich_text": [{"text": {"content": "Эритроциты ⬆️ 5.2 (норма до 4.7)"}}]}
}

Шаг 5.3: Добавить детальный контент в тело документа (ОБЯЗАТЕЛЬНО)

Важно: Поле Note содержит краткую сводку для табличного вида (1-2 строки). Тело документа содержит полную расшифровку анализа — это позволяет ознакомиться с результатами не открывая PDF-файл.

Структура тела документа:

  1. Заголовки секций — параграфы с эмодзи (📋, 🧪, 🩸, 💉, 🦠 и т.д.)
  2. Результаты — маркированные списки с показателями
  3. Формат показателя: Название: значение единицы (норма X-Y) + флаг
    • ✓ — в норме (можно опустить для краткости)
    • ⚠️ или ⬆️ — повышено
    • ⬇️ — понижено

Пример для биохимии:

mcp__notion__API-patch-block-children

block_id: "<id из шага 5.1>"
children: [
  {
    "type": "paragraph",
    "paragraph": {
      "rich_text": [{"type": "text", "text": {"content": "🧪 Биохимия крови"}}]
    }
  },
  {
    "type": "bulleted_list_item",
    "bulleted_list_item": {
      "rich_text": [{"type": "text", "text": {"content": "АЛТ: 15.9 Ед/л (норма 1-41) ✓"}}]
    }
  },
  {
    "type": "bulleted_list_item",
    "bulleted_list_item": {
      "rich_text": [{"type": "text", "text": {"content": "⚠️ Глюкоза: 6.23 ммоль/л (норма 4.1-5.9) — повышена"}}]
    }
  },
  {
    "type": "paragraph",
    "paragraph": {
      "rich_text": [{"type": "text", "text": {"content": "🩸 Липидограмма"}}]
    }
  },
  {
    "type": "bulleted_list_item",
    "bulleted_list_item": {
      "rich_text": [{"type": "text", "text": {"content": "Холестерин общий: 4.8 ммоль/л (норма <5.2) ✓"}}]
    }
  }
]

Пример для ПЦР/инфекций:

children: [
  {"type": "paragraph", "paragraph": {"rich_text": [{"type": "text", "text": {"content": "🦠 ПЦР-исследование (урогенитальный соскоб)"}}]}},
  {"type": "bulleted_list_item", "bulleted_list_item": {"rich_text": [{"type": "text", "text": {"content": "Chlamydia trachomatis — не обнаружено ✓"}}]}},
  {"type": "bulleted_list_item", "bulleted_list_item": {"rich_text": [{"type": "text", "text": {"content": "Mycoplasma genitalium — не обнаружено ✓"}}]}},
  {"type": "bulleted_list_item", "bulleted_list_item": {"rich_text": [{"type": "text", "text": {"content": "⚠️ Ureaplasma urealyticum — ОБНАРУЖЕНО"}}]}}
]

Пример для бак посева с антибиотикочувствительностью:

children: [
  {"type": "paragraph", "paragraph": {"rich_text": [{"type": "text", "text": {"content": "🧫 Посев секрета простаты"}}]}},
  {"type": "bulleted_list_item", "bulleted_list_item": {"rich_text": [{"type": "text", "text": {"content": "Выделен: Enterococcus faecalis 10^5 КОЕ/мл"}}]}},
  {"type": "paragraph", "paragraph": {"rich_text": [{"type": "text", "text": {"content": "💊 Антибиотикочувствительность:"}}]}},
  {"type": "bulleted_list_item", "bulleted_list_item": {"rich_text": [{"type": "text", "text": {"content": "Ампициллин — S (чувствителен)"}}]}},
  {"type": "bulleted_list_item", "bulleted_list_item": {"rich_text": [{"type": "text", "text": {"content": "Ципрофлоксацин — R (устойчив)"}}]}}
]

Пример для ОАК:

children: [
  {"type": "paragraph", "paragraph": {"rich_text": [{"type": "text", "text": {"content": "🩸 Общий анализ крови"}}]}},
  {"type": "bulleted_list_item", "bulleted_list_item": {"rich_text": [{"type": "text", "text": {"content": "Гемоглобин: 152 г/л (норма 130-160) ✓"}}]}},
  {"type": "bulleted_list_item", "bulleted_list_item": {"rich_text": [{"type": "text", "text": {"content": "Эритроциты: 5.1 ×10¹²/л (норма 4.0-5.5) ✓"}}]}},
  {"type": "bulleted_list_item", "bulleted_list_item": {"rich_text": [{"type": "text", "text": {"content": "⬇️ Лейкоциты: 3.8 ×10⁹/л (норма 4.0-9.0) — снижены"}}]}},
  {"type": "bulleted_list_item", "bulleted_list_item": {"rich_text": [{"type": "text", "text": {"content": "Тромбоциты: 245 ×10⁹/л (норма 180-320) ✓"}}]}},
  {"type": "bulleted_list_item", "bulleted_list_item": {"rich_text": [{"type": "text", "text": {"content": "СОЭ: 8 мм/ч (норма 2-15) ✓"}}]}}
]

6. Вывести результат

✅ Запись добавлена в карточку [Имя]!

📋 Название: ОАК + СОЭ (19.11.2024)
📅 Дата: 19.11.2024
🏥 Место: HELIX
📊 Типы: ОАК, СОЭ

🔗 Ссылка: [URL из ответа API]

📎 Не забудь прикрепить файлы вручную! (вывести список файлов для данного документа)

Справочники

Если значение не найдено в справочнике, то оно может быть добавлено. Эти списки не фиксированы.

Типы анализов

Кровь: ОАК, БАК, СОЭ, СРБ, РевмаФактор, АСЛ-О, Anti-HCV, ТТГ, Т4св, Эстрадиол, Пролактин, Тестостерон, ДГЭА-С, Гликированный гемоглобин, АЛТ, АСТ, холестерин, глюкоза

Моча: ОАМ, ОФМ

Инструментальные: УЗИ, ЭКГ, Рентген, Флюорография, ТРУЗИ

Специалисты: Кардиолог, Эндокринолог, Офтальмолог, ЛОР, Невролог, Уролог, Стоматолог, Дерматолог, Аллерголог, Хирург, Травматолог

Места

HELIX, SYNLAB, ЛОДЭ, INVITRO, Доктор ТУТ, Любимый доктор, Поликлиника, medicplus, Кравира, 2 ГКДБ, 4 ДГКБ, 5 ГДП, 6 ГКБ


Обработка ошибок

Ошибка Решение
Файл не найден Сообщить пользователю, попросить проверить путь
Не читается PDF Попросить проверить файл или дать данные вручную
Не определены данные Спросить у пользователя недостающее
Ошибка MCP Исправить параметры вызова, НЕ писать скрипты