Разработка AI-системы автоматического кодирования диагнозов (МКБ-10/ICD)

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1Все 1566 услуг
Разработка AI-системы автоматического кодирования диагнозов (МКБ-10/ICD)
Сложный
~1-2 недели
Часто задаваемые вопросы

Направления AI-разработки

Этапы разработки AI-решения

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1284
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1196
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    901
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1119
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    586
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    853

Разработка AI-системы автоматического кодирования диагнозов (МКБ-10/ICD)

Кодирование диагнозов по МКБ-10 — кропотливая рутинная работа медицинских кодировщиков. AI-система ускоряет и стандартизирует этот процесс, снижая вариабельность между специалистами.

Задача и сложность

МКБ-10 содержит ~14 000 кодов, организованных иерархически. Один диагноз в свободном тексте — «сахарный диабет 2 типа с осложнениями, диабетическая нефропатия» — может кодироваться как E11.2+ (первичный + манифестация), E11.65, или комбинацией кодов в зависимости от правил кодирования.

Источники сложности:

  • Неоднозначность терминологии
  • Комбинированные диагнозы (основное заболевание + осложнения + сопутствующие)
  • Правила «звёздочка и кинжал» (†/*)
  • Локальные стандарты кодирования клиники

Архитектура системы

Многометочная классификация (первый подход): каждый возможный код — отдельный класс. Не масштабируется для 14K классов — классы с редкими диагнозами плохо обучаются.

Иерархическая классификация: сначала глава МКБ (A-Z), затем блок, затем конкретный код. Сужает пространство поиска на каждом уровне.

Retrieve-then-rerank (лучший подход):

  1. Нечёткий поиск по базе МКБ-описаний (BM25 + semantic)
  2. Cross-encoder ранжирует топ-20 кандидатов по релевантности тексту диагноза
class DiagnosisCoding(BaseModel):
    primary_code: str          # основной код МКБ-10
    primary_description: str
    secondary_codes: list[str] # коды осложнений/сопутствующих
    confidence: float
    dagger_asterisk: bool      # требует ли двойного кодирования
    notes: str | None          # почему именно этот код

def code_diagnosis(diagnosis_text: str) -> DiagnosisCoding:
    # Шаг 1: Нормализация медицинских терминов
    normalized = medical_normalizer.normalize(diagnosis_text)

    # Шаг 2: Поиск кандидатов
    candidates = icd_searcher.search(normalized, top_k=20)

    # Шаг 3: LLM выбирает правильный код с объяснением
    return llm.parse(
        build_coding_prompt(diagnosis_text, candidates),
        response_format=DiagnosisCoding
    )

База МКБ-10 для поиска

Официальная база МКБ-10 (minzdrav.gov.ru) + синонимы медицинских терминов. Каждый код индексируется с: официальным описанием, синонимами, включёнными и исключёнными терминами из примечаний МКБ.

Контроль качества

Уровни проверки:

  1. Автоматическая: валидация кода в базе МКБ, проверка логики «звёздочка/кинжал»
  2. Выборочная ручная проверка (10% кодированных диагнозов) для оценки accuracy
  3. 100% проверка для редких кодов (confidence < 0.8)

Целевые показатели точности: 92–96% для распространённых диагнозов, 80–88% для редких и комбинированных.

Интеграция с МИС

Двусторонняя интеграция: из медицинской карты (текст диагноза) → предложение кода AI → одобрение врача одним кликом → запись в МИС. При несогласии — ручной выбор из выпадающего списка с поиском.

Сроки: обучение на корпусе 50K+ закодированных диагнозов — 4–6 недель; интеграция с МИС — 2–4 недели; пилот + валидация — 6–8 недель.