Разработка приложения для обработки неструктурированных медицинских текстов
ВВЕДЕНИЕ
В феврале 2021 года Минздрав РФ утвердил приказ [1], закрепляющий правовой статус электронного документооборота в медицинских организациях. Это дало медучреждениям возможность не только хранить документы в электронном виде, но и открывать к ним доступ сотрудникам других медицинских организаций. Такой функционал помогает врачам получать консультации коллег по поводу сложных случаев, подключая второе мнение. Однако не малую часть информации о пациентах или их жалобах трудно формализовать в полях протоколов. До 70% информации в медицинских записях являются неструктурированными данными [2] - данными, представленными в произвольной форме и не соответствующими определенной модели [13]. Формат таких записей отличается от врача к врачу, что усложняет процесс работы с документами и поиск похожих. Также такой неструктурированный способ хранения данных не может позволить использовать записи для машинной обработки и их дальнейшего анализа. При этом наличие возможности извлечения значимой информации и ее маркировки из неструктурированных записей может помочь в будущем использовать накопленные данные в полной мере. Исследование, опублико-ванное в Journal of the American Medical Informatics Association, показало, что реальные данные, записанные в неструктурированных документах и заметках, обеспечивают большую точность прогнозирования болезней различными алгоритмами, чем данные, полученные из структурированных медицинских карт [3].
СОДЕРЖАНИЕ
ВВЕДЕНИЕ 7
1. ОБЗОР АНАЛОГОВ 9
1.1. Принципы отбора существующих аналогов 9
1.2. Описания найденных аналогов 9
1.2.1. Language Studio от Azure Cognitive Service 9
1.2.2. Сервис Webiomed.NLP 10
1.2.3. Amazon Comprehend Medical 11
1.3. Описание критериев характеристики аналогов 12
1.3.1. Поддержка обработки текстов на русском языке 12
1.3.2. Отсутствие платы за использование приложения 12
1.3.3. Возможность загрузки текстового файла с компьютера 12
1.3.4. Возможность ввода текста вручную 12
1.3.5. Возможность сохранения полученных результатов в файл 12
1.3.6. Общедоступное использование 13
1.3.7. Возможность сравнения документов между собой 13
1.4. Сравнение аналогов по критериям 13
1.5. Выбор функционала приложения 14
2. ПРОЕКТИРОВАНИЕ ПРИЛОЖЕНИЯ 15
2.1. Обзор способов извлечения структуры из неструктурированных медицинских текстов 15
2.2. Описание набора данных для переобучения сети 19
3. РАЗРАБОТКА ПРИЛОЖЕНИЯ 21
Список литературы не найден
Для реализации программно-аппаратной части приложения на языке Python было выбран бесплатный и свободный фреймворк для веб-приложений Django [29]. Для хранения данных была выбрана документно-ориентированная система управления базами данных MongoDB [30] (по-дробнее о хранении данных написано в пункте 3.1.2). Также программно-аппаратная часть содержит функционал переобучения нейронной сети для извлечения именованных сущностей (подробнее в пункте 3.1.3) и дальней-шей работы с ней.
Во время разработки сервер запускался на хосте localhost с портом 8000.
Для передачи информации между клиентом и сервером был утвержден REST API.
REST (Representational State Transfer) – это архитектурный стиль взаи-модействия компонентов приложения в сети [31]. API (Application Program-ming Interface) – описание способов взаимодействия программных компонентов между собой [32]. Данные от клиента к серверу передаются по протоколу HTTP в формате JSON с помощью четырех методов – GET (получение данных), POST (добавление или изменение данных), PUT (частичное обновление данных) и DELETE (удаление данных).