Логика разборщика жалоб
Как сайт «Фильтр жалоб» превращает протокол врачебного опроса в перечень диагностических направлений, нозологий для исключения, базовых обследований и возможных статей Расписания болезней.
Назначение и принципы
Разборщик помогает ведущему врачу быстро отделить значимые жалобы от несущественных и наметить экспертный маршрут. Он работает по фиксированным правилам: одинаковый текст всегда даёт одинаковый результат, и каждое решение сопровождается объяснением.
- Решение принимает врач. Сайт предлагает перечень направлений, но выбор из него остаётся за ведущим врачом.
- Данные не хранятся. Текст анкеты обрабатывается только в браузере: сайту запрещено отправлять данные куда-либо (политика безопасности
connect-src 'none'), кэширование отключено, поле очищается при уходе со страницы. - Только мужской контингент. Женские болезни (ст. 74–77, 79 Расписания) из словаря исключены.
- Учитывается графа I. Сверка идёт по категориям графы I; графы II и III показываются справочно.
Входные данные
Принимается любой текст: полный протокол опроса с блоками по системам («Кардиология», «Неврология»…), отдельные жалобы одной строкой или свободный рассказ пациента. Файлы .txt и .docx читаются локально.
- Если текст размечен по системам, жалобы распределяются по своим блокам; в каждом блоке отдельно читаются разделы «анамнез» и «жалобы».
- Свободный текст разбивается на фразы, и каждое проявление отправляется в блок своей системы автоматически.
- Уточняющие фразы («часто», «последний раз месяц назад», «после нагрузки») присоединяются к жалобе, к которой относятся.
- Отрицания («нет», «не беспокоит», «отрицает») не дают проявлению попасть в разбор.
Распознавание жалоб
Каждое проявление в базе описано шаблоном. Чтобы шаблоны находили жалобу в любой формулировке, распознавание построено в несколько слоёв.
Медицинские и разговорные формулировки
Для каждого проявления, кроме медицинского названия, есть словарь самоописаний пациента: «выпадает плечо» — нестабильность сустава, «мутит» — тошнота, «отключился, очнулся на полу» — обморок, «дышу ртом, капаю нафтизин» — затруднённое носовое дыхание.
Иносказательные выражения
Отдельный словарь переводит бытовые и эвфемистические выражения на медицинский язык, после чего фраза проходит обычное распознавание: «не могу долго сходить по маленькому» — затруднённое мочеиспускание, «с горшка не слезаю» — диарея, «мотор барахлит» — перебои в сердце, «под ложечкой болит» — боль в эпигастрии, «проблемы по мужской части» — эректильная дисфункция, «дыхалка не та» — одышка. Перевод даёт только симптомы и никогда не подставляет название болезни, чтобы бытовая жалоба не превращалась в подтверждённый диагноз.
Падежи, спряжения и порядок слов
- Слова шаблонов автоматически сводятся к основе с любым окончанием: «снижение слуха», «снижения слуха», «снижением слуха».
- Возвратные глаголы: «кружится», «кружилась», «кружились».
- Между словами допускаются до двух предлогов или наречий: «затруднения при глотании», «голова часто кружилась».
- «Ё» и «е» взаимозаменяемы; основа ищется только с начала слова, чтобы «гастрит» не находился внутри «эпигастрия».
Названные нозологии
Если пациент сам называет диагноз, он распознаётся для всех 154 нозологий словаря, с синонимами и сокращениями (ГЭРБ, ЖКБ, МКБ, ХОБЛ, ВСД, СД 2 типа, ПТСР, ДГПЖ…) и в любом падеже. Названная нозология считается подтверждённым диагнозом: запускает свой комплекс, даёт обследования по этой нозологии и проходит сверку с Расписанием.
Опечатки
Слово, которого нет в словаре, сравнивается с основами словаря по числу правок (пропущенная, лишняя, заменённая или переставленная буква):
| Длина слова | Допустимо правок | Пример |
|---|---|---|
| до 8 букв | 2 | «геморой» → геморрой, «кашиль» → кашель |
| 9–12 букв | 3 | «пилонефрит» → пиелонефрит, «остеахандрос» → остеохондроз |
| от 13 букв | 4 | «головакружение» → головокружение |
Защита от ложных исправлений: первая буква должна совпадать (при двух и более правках — первые две); после основы допускается только окончание; правильно написанные обычные слова (тексты Расписания, частые слова анкет) не исправляются. Исправленный текст только дополняет распознанное: исходная фраза всегда разбирается как есть, поэтому верные формулировки не ломаются.
Пять этапов фильтра
Порядок этапов фиксирован. На каждом этапе жалоба либо проходит дальше, либо отсеивается с указанием причины.
На этапах 1, 2 и 5 жалоба может быть отсеяна — она попадает в группу «Неперспективное» с причиной отсева.
Актуальность
Беспокоит ли жалоба сейчас. Остаётся: текущие и повторяющиеся жалобы, сохраняющиеся последствия, подтверждённые заболевания в анамнезе, эпизоды прошлого, нарушавшие функцию. Отсеивается: однократный эпизод с объяснимой причиной («после ДТП, больше не повторялось»), прошедшее без следа, «крайне редко» без нарушения функции. Неясная актуальность уходит в вопросы для уточнения.
Клиническая значимость
Достаточно одного признака значимости. Красным флагом считаются:
- тревожные признаки (кровохарканье, судороги с потерей сознания, кровь в стуле и т. п.);
- любая жалоба, указывающая на нарушение функции («не могу», «ограничение движений», снижение слуха и зрения, одышка);
- любая жалоба, указывающая на стойкость проявлений («постоянно», «не проходит», «годами», «3 месяца»).
Отсеивается: жалоба с объяснимой причиной без повторов и признаков значимости, доброкачественные и вторичные проявления (например, «закладывает уши в дороге»).
Диагностическое направление
Каждое проявление относится к своей системе. Жалоба, относящаяся к нескольким направлениям (одышка — кардиология и пульмонология), учитывается во всех и выносится в вопросы для уточнения.
Синтез
Жалобы всей анкеты, а не одного блока, собираются в симптомокомплексы: например, обмороки + сердцебиение + аритмия в анамнезе — кардиологический комплекс. Синтез учитывает контекст других блоков и общие симптомы; неспецифическая жалоба может войти в комплекс как поддерживающая. К комплексу добавляются атипичные проявления его нозологий — они помечаются отдельно. Последствия операций рассматриваются, только если в анкете прямо упомянуто хирургическое вмешательство.
Расписание болезней
Каждая возможная нозология комплекса сверяется со статьёй и пунктом Расписания. Учитываются только пункты с категорией «В» или «Д» по графе I; нозологии без таких пунктов исключаются из маршрута. Нозология рассматривается, только если хотя бы одна жалоба комплекса входит в её клиническую картину. Графы II и III показываются справочно.
Перспективность направлений
Для каждой нозологии направления жалобы делятся на типичные (характерные и специфичные проявления) и нетипичные (атипичные и не относящиеся к её картине). Направление получает лучшую оценку среди своих нозологий. Правила применяются сверху вниз:
| Условие | Оценка |
|---|---|
| Диагноз подтверждён или прямо назван пациентом | Перспективное |
| Есть красный флаг, который сам является типичным проявлением нозологии | Перспективное |
| Есть красный флаг вне типичной картины | Сомнительно-перспективное |
| Нетипичных жалоб не больше 30 % | Перспективное |
| Нетипичных жалоб больше 30 % и до 50 % включительно | Сомнительно-перспективное |
| Нетипичных жалоб больше 50 % | Неперспективное |
| Типичные проявления были только в прошлом | не выше Сомнительно-перспективного |
Жалобы, отсеянные на этапах 1, 2 и 5, показываются в группе «Неперспективное» с причиной отсева.
Результат разбора
- Воронка фильтрации: записей → актуальных → значимых → комплексов → направлений.
- Разбор по блокам: каждая жалоба с решением и причиной.
- Плитки направлений, сгруппированные по перспективности. По нажатию открывается окно: жалобы, базовые обследования, нозологии для исключения со статьями и пунктами графы I (слово «Исключить» выделено красным), графы II и III под спойлером.
- Требует уточнения: противоречия, неясная актуальность, жалобы нескольких направлений, нераспознанные фразы.
- Копируемый итог — чистый текст, сгруппированный по перспективности. Для каждого направления: симптомы, нозологии для исключения, обследования, возможная статья РБ; в конце — отсеянные жалобы.
Уточнения врача и пересмотр
В блоке «Требует уточнения» под каждым вопросом есть поле для пояснения и отметка «Принять уточнение». Кнопка «Дополнить и отправить на пересмотр» разбирает ту же анкету заново с принятыми уточнениями.
- Учитываются только заполненные поля с отметкой; пустое или неотмеченное поле не читается.
- Уточнение приоритетнее текста анкеты. Снять жалобу оно может только явным указанием («не беспокоит», «больше не повторялось», «однократно»); упоминание прошлого вроде «ставили в детстве» относится к диагнозу и жалобу не снимает.
- Новые жалобы и диагнозы, названные в уточнении, добавляются в разбор.
- После пересмотра показывается, как изменилась перспективность направлений; уточнения видны в разборе по блокам, в плитках, в окне направления и в копируемом итоге.
Пример. Уточнение к одышке «одышка связана с астмой, ставили в детстве» сохраняет одышку актуальной и добавляет диагноз «бронхиальная астма»: пульмонологическое направление становится перспективным.
Проверка качества
- Более 210 автоматических тестов на все механики: фильтры этапов, перекрёстные жалобы, сверку с Расписанием, ранжирование, атипичные проявления, разговорные и иносказательные формулировки, падежи, названные нозологии, опечатки, ограничение движений, уточнения врача. Каждое изменение правил выпускается только при нулевом числе ошибок.
- Каждое изменение сверяется с эталонными анкетами: набор распознанных жалоб и направлений не должен меняться непредвиденно.
- Отдельно проверяется отсутствие ложных срабатываний: обычные слова не должны превращаться в жалобы.
Ограничения
- Разборщик работает по словарю правил. Формулировка, которой нет в словаре и которая не похожа на известную, попадает в «не распознано» для ручного просмотра.
- Опечатка в первой букве слова не исправляется.
- Слова, которые сами по себе не являются жалобой («давление», «мокрота»), распознаются только в контексте («повышение давления», «кашель с мокротой»).
- Нозологии без категорий «В» и «Д» по графе I в маршрут не попадают.
- Результат — подсказка для эксперта, а не заключение. Решение о выборе направлений принимает ведущий врач.