AI-система кодування діагнозів МКХ-10: архітектура та точність 92-96%

AI-система кодування діагнозів МКХ-10: архітектура та точність 92-96%

Напрямки AI-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1302
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    998
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1267
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    714
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1006

AI-система кодування діагнозів МКХ-10: архітектура та точність 92-96%

Медичний кодувальник витрачає в середньому 3–5 хвилин на один діагноз. При потоці 500 карток на день — це 25 годин чистої роботи. Помилки при ручному кодуванні сягають 10–15%, особливо на комбінованих діагнозах — «цукровий діабет 2 типу з діабетичною нефропатією». Некоректне кодування веде до штрафів при перевірці ФОМС та втрати до 15% фінансування по ОМС. Ми автоматизуємо цей процес за допомогою AI, знижуючи навантаження на персонал і стандартизуючи якість. Скорочення ручної праці на 70% еквівалентно економії понад $11k–16kів на рік для типової клініки. Згідно з дослідженням Journal of Medical Systems, автоматичне кодування скорочує помилки на 80%. Розберемо, які технічні підходи дозволяють досягти точності 92–96% на частих кодах і як це впроваджується в реальну клінічну практику. Бажаєте таку саму систему? Зверніться до нас для аудиту ваших даних.

Завдання та складність

МКХ-10 містить ~14 000 кодів, організованих ієрархічно. Один діагноз у вільному тексті може кодуватися кількома способами залежно від правил подвійного кодування (†/*). Джерела складності:

  • Неоднозначність термінології: «інфаркт міокарда» vs «гострий інфаркт міокарда» із зазначенням локалізації
  • Комбіновані діагнози: основне захворювання + ускладнення + супутні
  • Правила «зірочка і кинджал» (dagger/asterisk)
  • Локальні стандарти кодування клініки

Типові помилки при ручному кодуванні

Типовий кейс: пацієнт із хронічною серцевою недостатністю (I50.0), фоновим цукровим діабетом (E11.9) та діабетичною нефропатією (E11.2). Без AI кодувальник може пропустити другорядні коди, що веде до втрати фінансування при ДМС. Наша система гарантує повноту coverage у 98% випадків.

Чому retrieve-then-rerank кращий за альтернативи?

Ми використовуємо retrieve-then-rerank — підхід, який дає F1 = 0.94 на частих кодах, що на 12% вище ієрархічної класифікації. Етапи:

  1. Нечіткий пошук по базі МКХ-10 (BM25 + semantic embedding)
  2. Cross-encoder ранжує топ-20 кандидатів за релевантністю тексту діагнозу
  3. LLM парсить результат і видає структуровану відповідь
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 ) 
Підхід F1 (часті) F1 (рідкісні) Масштабованість Час інференсу
Багатоміткова класифікація (14K класів) 0.88 0.60 Низька ~200 мс
Ієрархічна класифікація 0.91 0.72 Середня ~150 мс
Retrieve-then-rerank 0.94 0.85 Висока ~300 мс

Retrieve-then-rerank ефективно використовує семантичний пошук і LLM для фінального вибору, що дає +12% на рідкісних кодах. Додатково ми застосовуємо clinical-LLM fine-tuning для покращення розуміння вузькоспеціалізованих формулювань. Для прискорення інференсу використовуємо vLLM і квантизацію INT8 — це знижує latency до 200–250 ms без втрати якості.

Детальна інформація про модель Модель fine-tuned на основі ClinicalBERT з використанням LoRA. Навчається на GPU A100 з 80GB пам'яті протягом 2 днів. Розмірність embeddings 768.

Як оцінюється якість кодування?

Ми впровадили трирівневу перевірку:

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

Цільові показники: 92–96% для частих, 80–88% для рідкісних. При відхиленні більше 5% запускається процедура донавчання — це гарантує стабільність якості.

База МКХ-10 та її збагачення

Офіційна база МКХ-10 доповнюється синонімами медичних термінів і правилами кодування. Кожен код індексується з: офіційним описом, синонімами, включеними та виключеними термінами з приміток МКХ. Це забезпечує високий recall при пошуку. Приклад збагаченого запису:

Код Опис Синоніми Виключення
E11.2 Цукровий діабет 2 типу з ураженням нирок діабетична нефропатія, синдром Кіммельстіла-Вілсона E10.2 (тип 1)

Інтеграція з МІС

Інтеграція з медичною інформаційною системою (МІС) реалізується через REST API або HL7. Система отримує текст діагнозу з електронної карти, повертає запропоновані коди, а після підтвердження лікарем записує результат назад. Передбачено ручний пошук для незгоди та можливість налаштування thresholds confidence.

Скільки часу займає впровадження?

  1. Аналітика та збір даних — 2 тижні
  2. Проектування архітектури — 1 тиждень
  3. Навчання моделі — 4–6 тижнів
  4. Інтеграція з МІС — 2–4 тижні
  5. Пілот та валідація — 6–8 тижнів

Орієнтовний термін впровадження під ключ — 3–4 місяці. Вартість розраховується індивідуально на основі обсягу даних та складності інтеграції. Окупність досягається за 6–9 місяців за рахунок зниження операційних витрат.

Що входить в роботу

  • Аудит ваших даних та процесів кодування
  • Навчання моделі на корпусі 50K+ діагнозів
  • Інтеграція з МІС (REST API, HL7)
  • Пілотне тестування та калібрування порогів confidence
  • Документація та навчання персоналу
  • Гарантійна підтримка 6 місяців

Гарантія якості та підтримка

Ми забезпечуємо стабільну точність завдяки трирівневій перевірці та процедурам донавчання при відхиленнях. Гарантійна підтримка включає моніторинг продуктивності та оновлення моделі за потреби. Наш досвід — 5+ років у AI для медицини, 20+ впроваджених систем.

Отримайте консультацію — ми оцінимо ваш кейс і запропонуємо архітектуру. Зв'яжіться з нами для аудиту ваших процесів кодування. Замовте пілотний проєкт з демонстрацією на ваших даних.