Автоматичне кодування діагнозів: де втрачається точність
Ланцюжок «запис лікаря → код МКХ» рветься не на етапі статистики, а на вході. Вільний текст у медичній карті пишеться під завдання лікування, а не під класифікатор: скорочення, синоніми, локальні позначення, порядок слів, який залежить від звички конкретного відділення. Далі діагноз перетворює в код людина, і вона відновлює картину за записом, а не за оглядом.
Помилки ручного кодування слабо пов'язані з кваліфікацією спеціаліста-кодувальника.
Головні джерела — багатоосьова структура МКХ-10, де один діагноз збирається з кількох рубрик, і спірні коди МКХ: пограничні стани, поєднання основного та супутнього захворювання, вибір між уточненою підрубрикою та рубрикою «не уточнено». Той самий текст двоє різних людей розмічають по-різному — це норма галузі, а не недоробка.
Вузьке місце розмітки — пропускна здатність. Щоб код став відтворюваним, запис потрібно нормалізувати: розгорнути абревіатури, відокремити контекст заперечення («виключено», «під питанням», «в анамнезі») від твердження, розвести основне захворювання та фон.
На потоці це години монотонного читання, і увага просідає тим сильніше, чим ближче кінець зміни: розбіжності зростають, а разом із ними зростає обсяг ручних повернень на перекодування.
Автоматичне кодування діагнозів б'є точно в ці розриви, а не в статистику після факту. Модель читає вихідне формулювання, пропонує ранжований список кодів із упевненістю за кожним, а спірні випадки йдуть на перевірку людині — замість тотального ручного розбору.
Розбираємо, як це влаштовано і де проходить межа між автоматичним рішенням та обов'язковим контролем.
Що дає рішення: швидкість розбору, точність, спірні записи
Контур працює не як «вгадай код за рядком», а як конвеєр: нормалізація тексту запису, виділення клінічних сутностей, зіставлення з рубриками МКХ-10, ранжування кодів-кандидатів за впевненістю. Код вище порога йде в автопідтвердження, нижче — у чергу на ручний розбір. На безперервному потоці це дає розбір записів у 4-6 разів швидше за ручне введення.
Точність на автопідтверджених кодах — 92-96% збігів із висновком кодувальника на відкладеній вибірці. Залишок припадає переважно на складені діагнози: основне захворювання плюс супутні, коди з додатковою характеристикою, випадки, де формулювання змінювалося в ході лікування.
Там одиничний код неповний, тому система повертає набір кодів і вказує, який фрагмент запису підтверджує кожен.
Спірні записи — 5-8% потоку — не додумуються: це неповні формулювання, локальні скорочення, суперечливі згадки в різних полях, рукописне введення. Вони йдуть кодувальнику з підсвічуванням фрагмента та найближчими кандидатами, тому рішення займає секунди замість розбору з нуля.
Вивільнений час кодувальника йде саме на ці випадки та на поповнення правил розбору, а кожне його рішення стає розміченим прикладом — частка автопідтвердження зростає від місяця до місяця.
Режими роботи: правила, навчання на розмітці, гібрид
Режими розрізняються не «інтелектом» моделі, а джерелом коду та тим, хто відповідає за помилку. Правила кодування МКХ дають детермінований результат на типових формулюваннях, навчання на розмітці узагальнює на вільний текст лікаря, гібридний режим поєднує обидва джерела.
Від вибору режиму залежить, де саме виникнуть помилки і скільки записів піде на ручну перевірку кодів.
Як вибирати режим
| Режим | Коли підходить | Обмеження |
|---|---|---|
| Правила та словник синонімів діагнозів | Однорідний потік, вузький профіль відділення, вимога пояснити кожен код | Не покриває формулювання поза словником, розширення словника — ручна робота, хибні спрацювання на омонімах |
| Навчання на розмітці | Різні формулювання, є архів із підтвердженими кодами | Потрібен обсяг розмітки, чутливе до зміни редакції класифікатора, рішення важко пояснити лікарю |
| Гібридний режим | Змішані джерела, потрібна висока точність за помірної ручної роботи | Два контури в супроводі, розбіжності між ними доводиться розбирати окремо |
Гібридний режим влаштовано так: правила та словник дають кандидата з обґрунтуванням, модель ранжує варіанти та позначає записи, де її впевненість нижча за поріг. Такі випадки йдуть на ручну перевірку кодів, решта кодується автоматично.
Частка записів, що дійшли до спеціаліста, — робоча метрика: вона зростає при оновленні класифікатора і підказує, де доповнити словник або розмітку.
Етапи впровадження: від аудиту записів до передачі
Роботи йдуть послідовними етапами: кожен наступний спирається на результат попереднього, тому проблема видна на своєму кроці, а не на прийманні. Нижче — типовий порядок, який ми адаптуємо під контур замовника та вимоги щодо захисту даних.
-
Аудит медичних записів. Беремо знеособлений зріз за період і дивимося, у якому вигляді надходить діагноз: вільний текст, скорочення, уже проставлені коди. На виході — карта якості даних і перелік класів, які система зобов'язана розрізняти.
-
Схема обробки даних. Визначаємо джерело записів — інтеграція з медичною інформаційною системою або регламентне вивантаження, — точки знеособлення та порядок зберігання. Схему узгоджуємо з відповідальним за персональні дані.
-
Налаштування правил. Збираємо довідники синонімів і скорочень, правила пріоритету між близькими кодами, обов'язкові уточнювальні ознаки. Це фіксує те, що лікар застосовує автоматично, і знімає частину розбіжностей до моделі.
-
Розмітка еталона та навчання. Лікарі-експерти розмічають еталонну вибірку, спірні випадки розбираємо колегіально, модель навчається на узгоджених даних. Результат етапу — версія із зафіксованою точністю за класами.
-
Перевірка на відкладеній вибірці. Проганяємо систему на записах, яких вона не бачила: окремо за частими діагнозами, окремо за рідкісними та змішаними формулюваннями. Розбіжності розбираємо і правимо або правила, або навчання.
-
Передача в експлуатацію. Передаємо регламент розбору помилок, моніторинг якості та порядок донавчання, навчаємо співробітників, залишаємося на супроводі.
Кожен етап закривається артефактом — картою даних, схемою, набором правил, звітом за метриками, — який замовник приймає та перевіряє.
Комплект передачі: правила, довідники, регламенти контролю
Модель — лише частина системи. Поруч із нею замовник отримує комплект, за яким автоматичне кодування діагнозів можна вести й супроводжувати власними силами, без постійної прив'язки до нас. Нижче — що саме залишається на руках після передачі.
- Набір правил кодування. Як вибирати основний діагноз, як кодувати супутні стани та ускладнення, що робити з неуточненими формулюваннями. Правила задають порядок пріоритетів і явно перелічують випадки, де система зобов'язана передати рішення людині.
- Довідник відповідностей. Таблиця між формулюваннями лікарів і кодами МКХ-10: синоніми, скорочення, типові описки, приклади з вашої практики. Ведеться за версіями — видно, що і коли змінилося.
- Регламент контролю якості. Яка частка випадків іде на вибіркову перевірку, як розбираються розбіжності, при якому падінні точності запускається перегляд правил.
- Інструкції для кодувальників. Що робити, коли система віддає два близькі варіанти, як оформлювати спірний випадок і куди його направляти.
- Схема інтеграції. Точки, де код потрапляє в облікову систему, де лікар підтверджує або змінює результат, які дані передаються і в якому вигляді.
- Порядок оновлення. Хто вносить нові формулювання до довідника, хто затверджує правки в правилах і як перевіряється, що оновлення не зламало вже працюючі випадки.
Такий комплект дозволяє змінювати правила під нову редакцію класифікатора або під внутрішні домовленості клініки самостійно — без перенавчання моделі на кожному кроці.
Практика: точність розбору записів до і після зміни правил
До перебудови правила розбору діагнозів жили всередині коду: уточнення під кожен шаблон запису, довідник із дубльованими рубриками та перехресними формулюваннями.
На потоці точність на підготовлених прикладах виглядала пристойно, а на реальних записах просідала — кодувальник правил вручну близько третини епізодів.
У проєкті кодування діагнозів ми винесли правила з коду в окремий редагований набір, а довідник привели до ієрархії чинної редакції ВООЗ: прибрали дублі рубрик, задали пріоритет уточнювальних підрубрик, описали контекстні правила для поєднань діагнозів.
Модель повертає код лише за опори на текст запису — якщо опори немає, запис іде на розбір людині, а не отримує найближчий відповідний код.
Метрики до і після рахували на одному й тому ж потоці. Точність зросла до 92–96% залежно від профілю відділення, частка ручних правок скоротилася приблизно втричі, клас помилок «код не підтверджується текстом» практично зник.
Контроль на відкладеній вибірці — записи, що не брали участі ні в налаштуванні правил, ні в правках довідника: розрив із робочою вибіркою не перевищує двох пунктів, отже зростання не підгонка під конкретні приклади.
Правила версіонуються: кожна зміна проганяється на відкладеній вибірці до випуску, регрес видно раніше, ніж дійде до кодувальника. Саме це утримує точність на потоці, а не у звіті.
Що робити, якщо частина діагнозів іде на ручну доопрацювання?
Автоматичне кодування діагнозів не зобов'язане закривати сто відсотків записів — частина завжди йде на ручне доопрацювання кодів. Питання не в тому, щоб прибрати людину зовсім, а в тому, скільки записів вона розбирає і в якому порядку.
Якщо залишок не впорядкувати, черга на перевірку зростає швидше, ніж надходить виграш від автоматизації.
Керує цим поріг упевненості системи. За кожним записом модель повертає код та оцінку власної впевненості: вище порога запис іде в основний потік без участі людини, нижче — у чергу на перевірку.
Поріг — не константа, а налаштування з прямою ціною: зсув униз скорочує ручне доопрацювання, але підвищує частку помилок, які спливуть пізніше; зсув угору розвантажує ризик, але віддає спеціалістам більше записів, ніж вони розбирають за зміну.
Тому чергу будують не за часом надходження, а за ризиком. Нагору піднімаються записи, де альтернативні кандидати близькі за оцінкою, де трапляється рідкісний код або неповне формулювання діагнозу, де помітна розбіжність між текстом і вибраним кодом.
Спеціаліст не шукає код з нуля: він бачить кілька найімовірніших варіантів із зазначенням, на який фрагмент спиралася система, і підтверджує вибір за секунди.
Так часткова автоматизація стає робочим режимом, а не проміжним етапом.
Три чверті записів проходять без людини, залишок розподіляється за змінами передбачувано, а частка повернень на повторну перевірку падає — не тому, що модель стала безпомилковою, а тому що спірні випадки перехоплюються до вивантаження.
Поріг і правила черги ми задаємо на етапі проєктування, разом із метриками навантаження на спеціалістів.
Часті питання: дані, інтеграція, контроль якості
Перед оцінкою спливає один і той самий набір питань: звідки беруться дані, як рішення вбудується в працюючий контур і хто відповідає за якість розмітки. Відповідаємо заздалегідь — від цього залежать і архітектура, і обсяг робіт.
Як це вбудувати в наявну медичну систему?
Ядро облікової системи не змінюємо: на вході подається текст висновку, на виході система повертає код МКХ-10 із упевненістю та посиланням на фрагмент, який на неї вплинув.
Лікар бачить підказку в робочому вікні та підтверджує або править її — викочувати можна поступово, з одного відділення.
Як захищені персональні дані?
Знеособлюємо до потрапляння в модель: ПІБ, контакти та номери документів видаляються, зв'язок із пацієнтом зберігається окремо, в контурі замовника. Доступ до журналів розмежований за ролями, звернення логуються. За потреби обробка розгортається повністю всередині інфраструктури клініки.
Що відбувається при оновленні довідника МКХ?
Довідник версіонується: нова редакція спочатку проганяється на історичних випадках із відомим коректним кодом і лише потім включається в роботу. Попередня версія зберігається, тому відкат займає хвилини, а не потребує переналаштування.
Як перевіряєте якість розмітки?
Збираємо еталонну вибірку: лікарі-експерти розмічають висновки, спірні випадки розбираємо колегіально — так з'являється узгоджена межа правильної відповіді.
Точність рахуємо окремо за рідкісними та складними групами діагнозів, де помилка найдорожча, а розбіжності додаємо в навчальний набір.
Обговоримо задачу та повернемося з оцінкою і планом робіт
Щоб оцінка проєкту кодування була предметною, а не «за відчуттями», нам потрібен реальний зріз ваших даних. Автоматичне кодування діагнозів перевіряється лише на ваших формулюваннях: у вивантаженні з іншого закладу інша лексика, свої скорочення і свій порядок полів. Тому старт — це обговорення задачі та корпус записів, а не опис «у загальному вигляді».
Що надіслати для старту:
- 200–500 знеособлених записів із текстом діагнозу — і, якщо є, з уже проставленим кодом;
- довідник кодів, за яким ви працюєте: повний МКХ-10, регіональний або внутрішній;
- 10–15 спірних випадків, де кодувальники розходилися в думках;
- структуру полів запису: що лікар заповнює обов'язково, а що вільним текстом;
- вимоги до контуру обробки — чи можна виходити в зовнішню мережу і як зберігаються дані;
- цільовий показник: яку частку записів допустимо відправляти на ручну перевірку.
У відповідь повертаємо оцінку обсягу робіт і план впровадження: схему обробки, обсяг розмітки та донавчання, тестовий прогін на ваших записах із точністю за кодами та часткою відмов, склад інтеграції з вашою обліковою системою та етапи з точками приймання.
Якщо за підсумками тестового прогону точність на рідкісних класах виявиться нижчою за заявлену, це буде видно до початку основного етапу, а не після.







