OpenOnco
UA EN
← Усі новини
15 липня 2026 knowledge-base engine quality

Виправлено дефекти маршрутизації в деревах рішень, посилено валідатор

Аудит усіх алгоритмів лікування через engine walker, а не через лоадер, виявив дефекти маршрутизації, через які обрані індикації мовчки зникали зі згенерованих планів.

Написано ретроспективно, опубліковано 19 липня 2026.

База знань проходила валідацію чисто, а плани в окремих гілках усе одно виходили неправильними. Причина в тому, що лоадер перевіряє, чи файл коректно сформований, а engine проходить дерево рішень — і це різні питання. Обхід кожного алгоритму так, як це робить engine, виявив клас дефектів, який лоадер і не мав шансу побачити.

Дефекти

  • Колізія id кроку через вісімкове число в YAML. В одному алгоритмі фолікулярної лімфоми step: 01 розпарсився як ціле 1 і зіткнувся з наявним step: 1. Engine мовчки викидав крок про рефрактерність до ритуксимабу в другій лінії й спрямовував перший рецидив у гілку третьої лінії.
  • 34 відсутні записи в output_indications у 25 файлах. Ці індикації були досяжні через result, default або альтернативу в дереві рішень, але були відсутні у списку output_indications алгоритму. Plan engine будує треки лише з цього списку, тому такі індикації зникали зі згенерованих планів — це справжній функціональний баг, не косметичний.
  • 6 мертвих заглушок з однією гілкою, які використовували поле branch_target, що engine ніколи не читає, один недосяжний порожній крок і одне зламане посилання на джерело.
Жодної клінічної маршрутизації не змінено. Усі виправлення структурні або референційні, згідно з CHARTER §8.3 — LLM не обирає схеми лікування.

Як аудит став запобіжником

Разовий аудит, який ніхто не змушує дотримуватися, з часом знецінюється. Тепер валідатор трактує пʼять із цих проблем як жорсткі помилки контракту: дублікати id кроків, посилання next_step в нікуди, result поза output_indications, default або альтернативу поза output_indications та result, що вказує на неіснуючу індикацію. Недосяжні кроки й порожні результати позначаються попередженнями. Перевірки покриті девʼятьма тестами.

Деталі — у коміті 3f0b0d7e9f, злитому в master як 161534aa73 (PR #629). Після виправлень кількість помилок контракту в алгоритмах дорівнює нулю.

Що свідомо не виправляли автоматично

Близько 237 гілок лікування керуються вільним текстом у полі condition: замість структурованих правил, через що вони недосяжні для walker. Виправлення потребує структурованого авторингу red flags і клінічного підпису двох рецензентів, тому вони залишаються в backlog, а не переписуються інструментом.

Коментарі

Гілки публічні й індексуються — будь ласка, не пишіть у них персональні медичні дані. Знайшли клінічну помилку? Відкрийте issue.

Коментарі ще не увімкнено — бекенд потрібно налаштувати.