Как врач сделал себе ИИ помощника
Всем привет, меня зовут Александр и я врач-гематолог. Для справки, это тот, кто занимается болезнями крови. Мой общий стаж перевалил за 16 лет, я кандидат медицинских наук и последние пару-тройку лет интересуюсь анализом данных, machine learning и ИИ в медицине. Под «интересуюсь» я подразумеваю исследования и публикации по этим темам, а также обучение и саморазвитие.
Так как я ни разу не программист, то мой пост будет не про это. Тем не менее последние пару лет моим рабочим инструментом является R. Это не тот язык программирования, на котором можно писать крутые сайты или приложения, но кое-что он все-таки умеет. R — больше про анализ данных, чем я и занимаюсь. Сегодня я хочу кратко рассказать и показать один из моих проектов на R, который решает вполне конкретную прикладную задачу — интерпретацию общего анализа крови.
Общий анализ крови (ОАК) — самый частый и один из самых сложных анализов человека для интерпретации, что обусловлено большим числом входящих в него параметров. Как правило, именно этот анализ является скрининговым тестом как для гематологов амбулаторного приема, так и для врачей общей практики и других специальностей. Объемы выполняемых анализов исчисляются сотнями тысяч. Моя идея не нова — машинная помощь в правильной и быстрой интерпретации общего анализа крови, которая будет содействовать развитию качественной, доступной и своевременной диагностики онкогематологических заболеваний. Зачастую врач первичного звена (терапевт) не может дифференцировать изменения в ОАК, что приводит либо к гиподиагностике, либо к повышенной настороженности и излишне частому направлению на консультацию к врачу-гематологу. Ситуацию усугубляют огромные объемы анализов, выполняемые в рамках профилактических и лечебно-диагностических процессов как в государственном, так и в частном секторе здравоохранения. Расшифровка анализов онлайн — один из востребованных запросов в Интернете. Меня часто просят об этом в социальных сетях.
Короче говоря, я создал проект в данной области — прототип приложения с использованием ML технологий, который позволяет проводить скрининговую интерпретацию ОАК на предмет наличия и дифференциальной диагностики основных групп заболеваний крови. Что для этого потребовалось:
Данные (результаты ОАК, выполненные на автоматическом гематологическом анализаторе). Данных было вполне достаточно, но дьявол, как обычно, в деталях. Большая часть из них не была размечена. Всего я разметил почти 24 тыс. анализов — норма / не норма / какое заболевание или группа возможных заболеваний.
Алгоритмы ML. Здесь ничего нового — эксперименты с разными ансамблевыми методами и их настройками позволили мне найти оптимальное решение.
Мой экспертный опыт как врача-гематолога и как аналитика и R-юзера. Что из этого получилось — чуть ниже.
Что в итоге получилось на текущий день. MD4ME (Medical data for me) — веб-приложение для машинной интерпретации ОАК (на английском языке для универсальности).
Работает все достаточно просто, но допускаю не все смогут разобраться какие показатели ОАК (25 параметров) в какую ячейку вносить, если вы не врач конечно. Данные нужно внести вручную (но возможна и пакетная загрузка тысяч анализов сразу), нажимаем кнопку и получаем интерпретацию на практически естественном языке. Внимание! Это не медицинское изделие и не сертифицированное медицинское программное обеспечение, которое может заменить врача!
Кому это нужно? В первую очередь мне. Этот проект позволил мне провести серьезную научно-исследовательскую работу по моей основной специальности и улучшить навыки в области ML и программирования на R. В перспективе я конечно бы хотел довести эти технологии до практического применения. Они могут работать в крупных лабораторных хабах и решать вопросы своевременного выявления пациентов с тяжелыми заболеваниями крови и совершенствоваться. Готов общаться и коллаборироваться с коллегами, энтузиастами и разработчиками, партнерами, со всеми, кому интересна данная тема. Ах да, чуть не забыл, само приложение доступно по ссылке.