Компьютерные инструменты в образовании, 2024 № 1:45-57 УДК: 004.4 http://cte.eltech.ru
^N10.32603/2071-2340-2024-1-45-57
ВЕБ-ОРИЕНТИРОВАННАЯ СИСТЕМА ДЛЯ ОБРАБОТКИ ДАННЫХ МЕДИЦИНСКИХ ИССЛЕДОВАНИЙ
Топузов Э. Р.1, аспирант, И [email protected], orciC.org/0009-0003-9208-7931 Ампилова Н. Б.1, канд. физ.-мат. наук, доцент, [email protected]
1 Санкт-Петербургский государственный университет, Университетский пр., д. 28, Петергоф, 198504, Санкт-Петербург, Россия
Аннотация
В статье рассмотрены проблемы, связанные с обработкой большого объема медицинских данных. Перечислены ограничения использования существующих медицинских информационных систем в индивидуальных исследованиях. Рассматривается веб-ориентированная система, разработанная для упрощения и автоматизации процессов медицинских исследований. Система имеет ряд преимуществ по сравнению с существующими медицинскими информационными системами, а именно позволяет создавать дизайн исследований, обеспечивает совместную работу, ввод данных, управление доступом, аудит изменений базы данных, регулярное резервное копирование, анализ и экспорт данных в виде таблиц и графиков. Разработанная система внедрена в эксплуатацию и получила положительные отзывы от пользователей.
Ключевые слова: медицинские информационные системы, обработка медицинских данных, веб-ориентированная система.
Цитирование: Топузов Э. Р., Ампилова Н. Б. Веб-ориентированная система для обработки данных медицинских исследований // Компьютерные инструменты в образовании. 2024. № 1. С. 45-57. ^N10.32603/2071-2340-2024-1-45-57
информационные
СИСТЕМЫ
1. ВВЕДЕНИЕ
Применение современных технологий в области хранения и обработки больших объемов информации позволяет использовать технологические достижения в области медицины для некоторой оптимизации медицинских исследований. Для подтверждения научно-медицинских гипотез выполняются обширные рандомизированные исследования, в ходе которых осуществляется сбор многочисленных показателей, подлежащих статистической обработке [1]. Объемы медицинских данных постоянно растут, а процесс извлечения полезной информации из них является достаточно трудоемким [2-4]. Для решения подобных задач широко используются медицинские информационные системы (МИС) [5, 6].
Обзор исследований в области МИС показывает, что в настоящее время не существует систем, разработанных для выполнения индивидуальных исследований, например, диссертационных работ, грантов или государственных заданий. Анализ процессов обработки данных медицинских исследований выявил, что большинство программных реше-
ний чаще всего ориентировано на узкий круг клинических задач и, как правило, сводится к созданию электронных медицинских карт или систем, предполагающих возможный диагноз на основе клинико-лабораторных данных [5, 7-9].
В таблице 1 представлена сравнительная характеристика существующих способов обработки данных медицинских исследований: с помощью МИС (на примере qMS, АМУЛЕТ, Фобос-медицина, КМИС), а также таблиц Excel или Google Sheets.
Таблица 1. Соответствие существующих способов хранения и обработки данных требованиям проведения медицинских исследований
Критерий МИС Таблицы Excel, Google Sheets
Подбор пациентов для исследования из общей базы данных + —
Возможность прикладывать файлы с дополнительной информацией о пациентах + —
Возможность создания дизайна конкретного исследования - +
Возможность хранения данных для конкретного исследования - +
Возможность автоматизированной индивидуальной группировки данных по показателям согласно дизайну конкретного исследования — —
Возможность автоматизированного статистического анализа данных конкретного исследования по заданным группам - —
Возможность выгрузки данных в виде таблиц для последующей статистической обработки — +
Возможность автоматизированной группировки данных для последующей статистической обработки - —
Возможность построения графиков и диаграмм — +
Гибкое ограничение прав пользователей для конкретного исследования — —
Хранение данных и информации группы контроля (здоровые и добровольцы) — +
В таблице перечислены критерии, требуемые для выполнения конкретных индивидуальных медицинских исследований. Так, например, каждая медицинская научно-исследовательская работа требует создания индивидуального дизайна исследования, включающего определение необходимых показателей, их группировку и применение статистических методов обработки, что доступные МИС не позволяют сделать, так как эти системы в основном направлены на решение клинических задач и, следовательно, в полной мере не имеют необходимых для научного исследования функциональных возможностей, указанных в таблице 1, ввиду того, что на сегодняшний день они не реализованы. По этой причине в настоящее время врачи-исследователи вынуждены вручную формировать множество таблиц Excel, копируя данные между ними. Указанное решение является трудозатратным и поэтому малоэффективным.
Таким образом, существует потребность в разработке более гибкой и многофункциональной МИС, способной эффективно поддерживать разнообразные научные исследования в области медицины.
Предлагаемый нами вариант решения проблемы — разработка веб-ориентированной
системы, которую можно использовать на различных этапах медицинских исследований: от ввода данных о пациентах до автоматического анализа показателей и предоставления прогностических данных.
Использование веб-подхода обеспечивает следующие свойства системы:
— совместимость с любой операционной системой;
— простой запуск при переходе по адресу веб-ресурса;
— отсутствие необходимости загрузки, установки, обновления;
— экономичность разработки и обслуживания [10].
Преимуществом такого решения является соответствие всем требованиям, указанным в таблице 1, что обеспечивает:
— создание дизайна медицинского исследования;
— внесение данных;
— предоставление разных уровней доступа к системе;
— контроль со стороны главного исследователя изменений в базе данных (БД);
— регулярное резервное копирование БД;
— проведение анализа содержимого БД;
— выгрузку внесенных данных в таблицы Excel с проведением статистического анализа;
— построение и экспорт графиков и диаграмм.
2. МАТЕРИАЛЫ И МЕТОДЫ 2.1. Архитектура прототипа системы
В первую очередь была разработана архитектура приложения, запланирована реализация серверной и клиентских частей. Использовалась контейнеризация с помощью Docker. Это позволяет изолировать приложение от основной операционной системы, что, с одной стороны, повышает безопасность приложения, с другой — позволяет легко настроить окружение, системные утилиты, настройки, не влияя на инфраструктуру узла, на котором эксплуатируется система. Кроме того, это ускоряет разворачивание приложения, позволяет масштабировать его. Для организации взаимодействия контейнеров между собой используется утилита docker-compose. В дальнейшем при существенном расширении проекта возможен переход к средствам оркестрации Docker Swarm или Kubernetes.
В качестве базового концепта использовалась схема «модель — представление — контроллер» для разделения данных приложения на отдельные компоненты, взаимодействующие между собой. Для обеспечения многопоточности и быстроты работы использован веб-сервер Puma, в качестве обратного прокси-сервера используется nginx. Связь этих двух компонентов обеспечивает взаимодействие клиента с основной частью системы, а именно отправку запросов для дальнейшей обработки маршрутизатором и получения ответа. Для проверки концепции прототипа и с целью ускорения разработки и внедрения системы, компонент, отвечающий за статистическую обработку данных, является элементом основной части приложения, и таким образом получает данные из системы управления БД (СУБД) через слой модели. Были подобраны инструменты, обеспечивающие расчеты требуемых показателей и экспорт полученных данных, а также связанные с безопасностью: аутентификацией, авторизацией и управлением ролями пользователей, шифрованием данных, предотвращением и обнаружением попыток несанкционированного доступа и повреждения данных, созданием и восстановлением резервных копий данных, механизмом уведомлений о появлении уязвимостей
программных решений. Схема архитектуры прототипа указана на рисунке 1. Технологический стек и основные компоненты представлены в таблице 2.
Рис. 1. Архитектура прототипа Таблица 2. Технологический стек разрабатываемой системы
Параметр Значение
Веб-фреймворк Ruby on Rails
СУБД PostgreSQL, MongoDB
Управление зависимостями библиотек Bundler
Аутентификация Devise
Авторизация ActionPolicy, RoleModel
Контроль изменений в БД PaperTrai!
Работа со статистикой ruby-statistics
Импорт и экспорт Excel RubyXL
Средство контейнеризации Docker
Веб-сервер Puma
Обратный прокси-сервер Nginx
Средства тестирования RSpec, Simplecov
Линтер Rubocop
Средство отслеживания уязвимостей Bundle Audit
Сборка клиентской части Webpack
Шаблонизатор Slim
Система контроля версий (удаленный репозиторий) Git (GitHub)
2.2. Компоненты системы
2.2.1. Основная среда
Важным шагом разработки является выбор подходящей среды разработки (фреймворка) — динамичной библиотеки языка программирования, обладающей базовыми модулями для упрощения работы [11]. В качестве такой среды выбран Ruby on Rails. Она позволяет вести разработку, быстро выводя продукт в рабочий прототип, что дает возможность осуществить проверку концепции и протестировать минимально жизнеспособный продукт [12, 13]. Кроме того, фреймворк хорошо масштабируется и успешно используется в таких высоконагруженных международных сервисах, как GitHub, GitLab, AirBnB [14], а также в российских платформах Сбермаркет, Учи.ру, Aviasales и многих других.
Архитектура приложений Ruby on Rails определяется как полнофункциональная программная платформа (fullstack framework), поскольку она может работать со всеми возможными частями веб-приложения. К таким частям можно отнести: веб-сервисы, управление БД, генерация шаблонов на языке гипертекстовой разметки (HyperText Markup Language, HTML), сборка каскадных таблиц стилей (cascading style sheets, CSS) и JavaScript файлов, маршрутизация, кеширование, аутентификация, авторизация, локализация и многое другое [12-14].
Одним из преимуществ данной среды, увеличивающим скорость разработки приложения является принцип соглашения по конфигурации (convention over configuration). Данный принцип позволяет избегать большого количества повторяющегося кода, а также конфигурировать программный комплекс только в тех случаях, когда какие-то его части не удовлетворяют принятой в фреймворке спецификации [15,16]. Данная концепция также увеличивает скорость адаптации персонала для развития и поддержки разработанного программного комплекса, что также является важным аспектом.
Среда Ruby on Rails, уделяет большое внимание безопасности. Многие механизмы встроены — это экранирование запросов, выполняемых на языке структурированных запросов (structured query language, SQL) для защиты от SQL-инъекций, защита от межсай-товой подделки запроса (Cross-Site Request Forgery, CSRF), защита от межсайтового скрип-тинга (cross-site scripting, XSS), фильтрация чувствительных данных при логировании, очистка данных из БД при выводе страницы в браузер, встроенное кодирование данных при сохранении в БД и многое другое [17].
Благодаря высокой популярности среды Ruby on Rails в разработке веб-приложений, в ее экосистеме существует огромное количество библиотек, предназначенных для различных целей и расширения функционала. В качестве менеджера пакетов Ruby был использован сборщик bundler, который скачивает библиотеки и выстраивает дерево зависимостей между ними, не допуская конфликтов [18].
2.2.2. СУБД
В качестве СУБД выбрана PostgreSQL в связи с тем, что в приложении достаточно много связанных между собой сущностей со строгой системой атрибутов. PostgreSQL позволяет осуществлять многопользовательский доступ к БД, обладает всеми необходимыми свойствами: атомарностью, согласованностью, изолированностью, устойчивостью (atomicity, consistency, isolation, durability, ACID). Эта система при необходимости позволяет бесперебойно масштабировать приложение с помощью распределенных СУБД, совместимых с PostgreSQL, таких как CockroachDB, YugabyteDB и других. В связи с тем, что личные данные пациентов (фамилия, имя, отчество, контактные данные)
являются конфиденциальными, использовано расширение pgcrypto. Шифрование и дешифрование осуществляются с помощью симметричного ключа Pretty Good Privacy (PGP) по стандарту OpenPGP (RFC 4880) [19].
Принимая во внимание предъявляемые требования к разрабатываемой системе, была спроектирована схема БД, которая включает в себя таблицы для хранения данных о пользователях, ролях системы, пациентах, исследованиях, группах и подгруппах исследований и пациентов, результатах исследований, а также таблицы для хранения метаданных и связей между данными.
Во время разработки были созданы две отдельные БД — непосредственно для разработки и для тестирования, что позволило изолировать данные, избежать конфликтов и ошибок, связанных со случайным изменением или удалением данных во время указанных процессов, делая их более гибкими.
Изменения в схеме БД поддерживаются с помощью миграций, которые позволяют обеспечивать актуальное состояние схемы БД, гибко добавлять, изменять, удалять таблицы, индексы, триггеры, функции и прочие объекты СУБД, согласовывать текущее состояние с помощью системы контроля версий Git [20].
Распространенной причиной снижения производительности веб-приложений, работающих с БД, является так называемая проблема N + 1. Ее суть заключается в том, что при запросе к БД для получения списка объектов с последующим доступом к связанным объектам для каждого из них может возникнуть N дополнительных запросов к БД, где N — количество связанных объектов для каждого из исходных объектов. В качестве решения проблемы разработчики используют технику оптимизации запросов к БД — нетерпеливую загрузку. Она позволяет предварительно загружать связанные данные вместе с основными данными. Однако необдуманное использование этой техники также снижает производительность работы приложения. Для предотвращения проблемы N + 1 и неоправданного использования нетерпеливой загрузки во время разработки и тестирования использовалась библиотека bullet [14].
Для сбора данных о выгружаемых исследователями отчетах используется СУБД MongoDB. Эти данные представляют интерес для дальнейшего исследования и разработки. Необходимо накопить достаточно большой объем данных, чтобы впоследствии можно было реализовать функцию подсказки или предсказания выгружаемых параметров. Данная СУБД является документоориентированной, не требует описания схемы таблиц. Получаемые данные о выгружаемых отчетах разнородны, слабо структурированы, поэтому хорошо вписываются в концепцию БД без схемы [20].
2.2.3. Аутентификация и авторизация
Для аутентификации использована библиотека Devise [16, 18]. Для выделений ролей и авторизации было использовано сочетание библиотек RoleModel и ActionPolicy. Последняя обладает гибкостью для управления правами на различные действия в веб-приложении, в том числе ограничение на создание, чтение, обновление, удаление сущностей, ограничение списка сущностей для просмотра и т. д.
Одно из требований к системе — контроль произведенных изменений (создание, изменение, удаление записей) в БД, сделанных разными пользователями. Данный функционал реализован с помощью библиотеки PaperTrail, которая позволяет проводить аудит изменений, сделанных разными пользователями. Инструментарий позволяет отслеживать какие изменения каким пользователем были осуществлены, кроме того, при необходимости производить откат и восстановление данных [16].
2.2.4. Клиентская часть
В качестве шаблонизатора был использован slim [18] — быстрый легковесный движок, который по производительности быстрее используемого по умолчанию встроенного в Ruby on Rails ERB (встроенный Ruby, embedded Ruby). Другим преимуществом является отсутствие открывающих и закрывающих HTML-тегов, что, с одной стороны, ускоряет разработку, с другой — уменьшает вероятность ошибок.
Для динамической отрисовки элементов, например, добавления, изменения, скрытия полей ввода в веб-формах и т. д. в зависимости от действий пользователей, был использован JavaScript.
Для ввода дат и диапазона дат используется отечественный легкий и быстрый календарь с открытым исходным кодом, написанный на JavaScript без сторонних зависимостей — Air Datepicker.
В качестве менеджера JavaScript библиотек использовался yarn, который скачивает их, выстраивает зависимости между ними, предотвращая конфликты несовместимых версий.
Для ускорения разработки использован CSS-фреймворк Bootstrap как наиболее популярный (по количеству звезд Github и скачиваний в составе npm-пакетов), в его основе лежит компонентный подход [21].
Сборка и компоновка CSS и JavaScript файлов осуществлялась с помощью библиотеки webpack. Для удобства использовалась Ruby-обертка — webpacker, которая позволяет удобно организовать код и имеет встроенные Ruby-методы для доступа к стилям, скриптам, изображениям, шрифтам и прочим объектам. Во время разработки сервер webpack-dev-server позволял вносить правки в стили и скрипты таким образом, чтобы эти изменения подхватывались на лету без перезагрузки сервера, что также ускоряло процесс разработки [22].
2.2.5. Тестирование
Для тестирования был использован фреймворк RSpec — наиболее популярное средство для тестирования приложений, написанных на Ruby. RSpec позволяет наглядно с помощью предметно-ориентированного языка (domain specific language, DSL) писать тесты так, что их можно читать как документацию (spec — спецификация). При этом существует опция, которая в стандартном выводе на терминал в структурированном виде указывает, что делает тестируемый класс и метод. Тестирование с помощью RSpec, с одной стороны, позволит в дальнейшем развивать приложение, масштабируя его, с другой — благодаря самодокументированности тестов увеличит скорость адаптации к проекту новых разработчиков [18, 23]. Для вычисления степени покрытия кодовой базы тестами была использована библиотека SimpleCov [23].
2.2.6. Статический анализ кода
Для статического анализа кода по заданным правилам используются линтеры (linter) — инструменты, позволяющие выявлять потенциальные проблемы или стилевые несоответствия в исходном коде программы [24]. Чтобы сделать код единообразным, удобным для восприятия, в том числе для дальнейшей поддержки и развития приложения, используется линтер Rubocop [25], который автоматически вызывается перед каждым сохранением кода в системе управления версиями Git с помощью утилиты lefthook.
Перед отправкой изменений во внешний репозиторий Git эта же утилита вызывает задачу bundle-audit, которая проверяет имеющиеся в проекте библиотеки на уязвимости, используя БД общеизвестных уязвимостей (Common Vulnerabilities and Exposures, CVE). Это позволяет поддерживать безопасность проекта, вовремя реагируя на выявляемые угрозы, обновляя библиотеки и их зависимости.
2.2.7. Изменение архитектуры после испытаний прототипа
В ходе разработки, после внедрения в эксплуатацию рабочего прототипа, получения положительной обратной связи от пользователей системы, а также запросов на расширение функционала, архитектура была модифицирована. В связи с тем, что количество и уровень поддержки библиотек, отвечающих за статистическую обработку на языке Ruby, ниже по сравнению с Python, для дальнейшего развития системы был добавлен отдельный микросервис, отвечающий за статистическую обработку данных с использованием Python в качестве основного языка [26]. Кроме того, это позволило осуществить построение графиков непосредственно в самой системе с возможностью их экспорта.
В роли менеджера зависимостей Python была применена библиотека Poetry [27], которая кроме построения и управления деревом связанности пакетов, позволяет конфигурировать их настройки с помощью нотаций очевидного минимального языка Тома (Tom's Obvious, Minimal Language, TOML).
Для статистической обработки данных использованы как встроенная в Python библиотека Statistics, так и внешние пакеты: Scipy [28], Numpy.
Построение графиков осуществляется посредством пакетов Matplotlib [27] и Seaborn.
Для тестирования использованы Pytest [27] и Hypothesis. Для вычисления степени покрытия кодовой базы тестами была использована библиотека Pytest-cov [27].
Соответствие стандарту предложения по усовершенствованию Python (Python Enhancement Proposal #8, PEP 8) проверялось при помощи статического анализатора кода Flake8 [29].
Взаимодействие внутри сервиса, отвечающего за статистику, а также обмен данными с основным приложением в формате нотации объектов JavaScript (JavaScript Object Notation, JSON) налажено с использованием легкого веб-фреймворка Flask [30].
Таким образом, в результате добавления нового микросервиса технологический стек существенно расширился (таблица 3).
Таблица 3. Расширение технологического стека системы
Параметр Значение
Управление зависимостями библиотек Poetry
Работа со статистикой Statistics, Scipy, Numpy
Построение графиков Matplotlib, Seaborn
Веб-сервер Flask
Средства тестирования Pytest, Hypothesis, Pytest-cov
Линтер Flake8
С учетом указанных изменений, архитектура приложения претерпела изменения. Обновленная версия приведена на рисунке 2.
Рис. 2. Обновленная архитектура системы
3. РЕЗУЛЬТАТЫ
Веб-ориентированная система для обработки данных медицинских исследований разработана в соответствии со спроектированной архитектурой, приложение развернуто на виртуальном выделенном сервере.
В таблице 4 представлен обзор функций, обеспечиваемых разработанной системой.
Таблица 4. Функциональные возможности системы
Функции
Создание дизайна медицинского исследования
Внесение данных, в том числе согласно группам и подгруппам, выделенным в дизайне Предоставление разных уровней доступа к системе (полные права, ограниченные права) для обеспечения безопасности данных
Контроль со стороны главного исследователя изменений в базе данных, сделанными разными пользователями
Регулярное резервное копирование и восстановление (при необходимости) копий БД Проведение анализа содержимого БД, внесенных в систему, путем поиска и просмотра данных по заданным параметрам Выгрузка внесенных данных в таблицы Excel
Кодирование данных, внесенных в систему с присвоением кодов для регистрации БД и подготовки к использованию в программах статистической обработки
Группировка данных с выгрузкой в таблицы Excel для проведения статистической обработки, основанное на выделении определенных группирующих показателей (как одиночных, так и множественных)
Проведение статистического анализа Построение и экспорт графиков
Разработанная система покрыта тестами. Покрытие тестами веб-сервиса, написанного на Ruby — 99,3 %, покрытие тестами сервиса статистики, написанного на Python — 98 %.
Система внедрена в эксплуатацию в Национальном медицинском исследовательском центре имени В. А. Алмазова. За время эксплуатации система показала свою работу без сбоев, от пользователей получена положительная обратная связь, а также запросы для расширения функционала.
4. ЗАКЛЮЧЕНИЕ
Разработанная система предусматривает дальнейшее развитие: предсказание выгружаемых отчетов, расширение списка методов статистической обработки и диаграмм, необходимых для конкретных исследований. Также предполагается расширение функциональных возможностей для поддержки научных исследований. Все это в конечном итоге позволит полностью отказаться от использования дополнительных программных комплексов для статистического анализа.
Таким образом, в ходе проделанной работы спроектирована архитектура, подобраны подходящие для решаемой задачи инструменты, разработан, протестирован и внедрен программный продукт. Получено свидетельство о государственной регистрации программы для ЭВМ №2023688104 от 20 декабря 2023 года. Также были продуманы и представлены дальнейшие варианты развития системы. В связи с поступающими запросами для расширения функционала систем работа над ее разработкой будет продолжена.
Список литературы
1. Evidence-Based Medicine Working Group. Evidence-based medicine. A new approach to teaching the practice of medicine // JAMA, 1992. Vol. 268, № 17. P. 24200-2425. doi: 10.1001/jama.1992. 03490170092032
2. Гусев А. Перспективы применения больших данных в российском здравоохранении // Московская медицина. 2022. Т. 1, № 47. C. 26-30.
3. Moutselos K., Kyriazis D., Diamantopoulou V et al. Trustworthy data processing for health analytics tasks // IEEE International Conference on Big Data (Big Data). 2018. P. 3774-3779. doi:10.1109/ BigData.2018.8622449
4. Auffray C., Balling R., Barroso I. etal. Making sense of big data in health research: towards anEU action plan // Genome medicine. 2016. Vol. 8, № 1. P. 1-13. doi:10.1186/s13073-016-0323-y
5. Шаханов А. С., Ушакова Е. В. Использование современных информационных технологий в государственном управлении // Трансформация бизнеса и общественных институтов в условиях цифровизации экономики. 2020. С. 199-211.
6. Луценко Е. В. Развитие медицинских информационных технологий в Российской Федерации // Вятский медицинский вестник. 2017. Т. 2, № 54. С. 73-77.
7. Magrupov T., Yusupov S., Talatov Y. et al. Intelligent Medical System of Designing Medical Technics and Technology // 2020 International Conference on Information Science and Communications Technologies (ICISCT). 2020. P. 1-4. doi:10.1109/ICISCT50599.2020.9351375
8. Пугачев П. С., Гусев А. В., Кобякова О. С. и др. Глобальные тенденции цифровой трансформации отрасли здравоохранения // Национальное здравоохранение. 2021. Т. 2, № 2. С. 5-12.
9. Singh D., Verma S., Singla J. A comprehensive review of intelligent medical diagnostic systems // 2020 4th International Conference on Trends in Electronics and Informatics (ICOEI)(48184). 2020. P. 977981. doi:10.1109/IC0EI48184.2020.9143043
10. Duan Y., Edwards J., Xu M. Web-based expert systems: Benefits and challenges // Information & Management. 2005, Vol. 42, № 6. P. 799--811. doi:10.1016/j.im.2004.08.005
11. Байдыбеков А. А., Гильванов Р. Г., Молодкин И. А. Современные фреймворки для разработки web-приложений // Интеллектуальные технологии на транспорте. 2020. № 4. С. 23-29.
12. Klochkov D., Mulawka J. Improving Ruby on Rails-Based Web Application Performance // Information. 2021. Vol. 12, № S. p. 319. doi:10.3390/info120S0319
13. LuczakP., Poniszewska-Maranda A., Karovic V. The Process of Creating Web Applications in Ruby on Rails // Developments in Information & Knowledge Management for Business Applications. Studies in Systems, Decision and Control. Cham: Springer, 2021. Vol. 330. P. 371-401.
14. Yang J., Subramaniam P., Lu S. et al. How not to structure your database-backed web applications // 201S IEEE/ACM 40th International Conference on Software Engineering (ICSE). 201S. P. S00-S10. doi:10.114S/31S01SS.31S0194
15. Chunling C. Construction of the Individualized College English Learning Management System Using Ruby on Rails // 201S International Conference on Service Science (ICSS). 201S. P. 1б0-1б3. doi:10.1109/ICSS.2015.22
16. Tapiador A., Salvachúa J. Content Management in Ruby on Rails // Proceedings of the IADIS International Conference on Collaborative Technologies 2011. 2011. doi:10.4SSS0/arxiv.1209.3S7S
17. Aborujilah A., Adamu J., Shariff A.M. et al. Descriptive Analysis of Built-in Security Features in Web Development Frameworks // 2022 16th International Conference on Ubiquitous Information Management and Communication (IMCOM). 2022. P. 1-S. doi:10.1109/IMCOMS3бб3.2022.97217S0
1S. G. Donald Hands-on Test-Driven Development Using Ruby, Ruby on Rails, and RSpec. Berkeley, Apress, 2024.
19. Costa M., Rodrigues M., Baptista P. et al. Database Encryption Performance Impact on PostgreSQL and MongoDB // Marketing and Smart Technologies. Smart Innovation, Systems and Technologies, Singapore: Springer, 2022. Vol. 279. P. 121-127. doi:10.1007/978-981-16-9268-0_10
20. Yedilkhan D., Mukasheva A., D.Bissengaliyeva et al. Performance Analysis of Scaling NoSQL vs SQL: A Comparative Study of MongoDB, Cassandra, and PostgreSQL // 2023 IEEE International Conference on Smart Information Systems and Technologies (SIST). 2023. P. 479-4S3. doi:10.1109/ sistSS2S4.2023.10223SбS
21. Mohd T.K., Thompson J., Carmine A. et al. Comparative Analysis on Various CSS and JavaScript Frameworks//Journal of Software. 2022. P. 2S2--291. doi:10.17706/jsw.17.6.282-291
22. Zammetti F. Modern Full-Stack Development Using TypeScript, React, Node.js, Webpack, and Docker. Berkeley: Apress, 2022.
23. Carneiro C., Schmelmer T. Development Environment and Workflow / Microservices From Day One. Berkeley: Apress, 2016. P. 105-126. doi: 10.1007/97S-1-4S42-1937-9_S
24. Раковский С. А., Магомедов Ш. Г. Обеспечение безопасности открытых проектов Python: проблема оценки потенциально разрушительного функционала // International Journal of Open Information Technologies. 2023. Т. 11, № 10. С. 113-11S.
25. Beller M., Bholanath R., Mcintosh S. et al. Analyzing the State of Static Analysis: A Large-Scale Evaluation in Open Source Software // 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER). 2016. P. 470-4S1. doi:10.1109/SANER.2016.105
26. Chandran S., Abraham K. A Correlative Scrutiny on two Programming Dialects: RUBY Vs PYTHON // International Journal of Engineering and Advanced Technology (IJEAT). 2020. Vol. 9, № 3. P. 439S-4404. doi:10.35940/ijeat.c6435.029320
27. Beuzen T., Timbers T. Python Packages. Boca Raton: CRC Press, 2022.
2S. VirtanenP., GommersR., Oliphant T. E. et al. SciPy 1.0: fundamental algorithms for scientific computing in Python // Nature Methods, 2020. Vol. 17, № 3. P. 261-272. doi:10.103S/s41592-019-06S6-2
29. Mohialden Y., Mahmood N., Baker E. et al. A Comparative Analysis of Python Code-Line Bug-Finding Methods // Scientific Research Journal of Engineering and Computer Science. 2023. Vol. 3, № 4. P. 35-41.
30. GrinbergM. Flask Web Development: Developing Web Applications with Python. Cambridge: O'Reilly, 201S.
Поступила в редакцию 10.03.2024, окончательный вариант — 23.03.2024.
Топузов Эдем Русланович, аспирант, Математико-механический факультет, СПбГУ, ИЗ [email protected]
Ампилова Наталья Борисовна, канд. физ.-мат. наук, доцент, кафедра информатики, Математико-механический факультет, СПбГУ., [email protected]
Computer tools in education, 2024
№ 1: 45-57
http://cte.eltech.ru
doi:10.32603/2071-2340-2024-1-45-57
Web-Based System for Processing Medical Research Data
Topuzov E. R.1, Postgraduate, El [email protected], orcid.org/0009-0003-9208-7931 Ampilova N. B.1, Cand. Sc., Docent, [email protected]
1 Saint Petersburg State University, 28 Universitetskiy pr., Peterhof, 198504, Saint Petersburg, Russia
Abstract
The issues associated with processing of large amount of medical data are discussed in the article. The limitations of using existing medical information systems in individual research are noted. To simplify medical research processes, web-based system has been developed. The system introduces such features as research design, collaboration, data input, access control, audit of database changes, regular backup, data analysis, and exporting data as sheets and plots. The designed system was deployed to production and received positive feedback from users. The certificate of state registration of a computer program was obtained.
Keywords: medical information systems, processing medical research data, web-based system.
Citation: E. R. Topuzov and N. B. Ampilova, "Web-Based System for Processing Medical Research Data," Computer tools in education, no. 1, pp. 45-57, 2024 (in Russian); doi:10.32603/2071-2340-2024-1-45-57
References
1. Evidence-Based Medicine Working Group, "Evidence-based medicine. A new approach to teaching the practice of medicine," JAMA, vol. 268, no. 17, pp. 2420-2425,1992, doi:10.1001/jama. 1992.03490170092032
2. A. V. Gusev, "Prospects for the use of big data in Russian healthcare," Moscow Medicine, vol. 1, no. 47, pp. 26-30, 2022 (in Russian).
3. K. Moutselos, D. Kyriazis, V. Diamantopoulou, et al. "Trustworthy data processing for health analytics tasks," IEEE International Conference onBigData (BigData), pp. 3774-3779, 2018; doi:10.1109/BigData.2018.8622449
4. C. Auffray, R. Balling, I. Barroso, et al., "Making sense of big data in health research: towards an EU action plan," Genome medicine, vol. 8, no. 1, pp. 1-13, 2016; doi:10.1186/s13073-016-0323-y
5. A. S. Shakhanov and E. V. Ushakova, "Use of modern information technologies in public administration," Transformation of business and public institutions in the context of digitalization of the economy, pp. 199-211, 2020 (in Russian).
6. E. V. Lutsenko, "Development of medical information technologies in the Russian Federation," Medical newsletter ofVyatka, vol. 2, no. 54, pp. 73-77, 2017 (in Russian).
7. T. Magrupov, S. Yusupov, Y. Talatov, et al., "Intelligent Medical System of Designing Medical Technics and Technology," in Proc. of2020 International Conference on Information Science and Communications Technologies (ICISCT), pp. 1-4, 2020; doi:10.1109/ICISCT50599.2020.9351375
8. P. S. Pugachev, A. V. Gusev, O. S. Kobyakova, et al., "Global trends in the digital transformation of the healthcare industry," National Health Care (Russia), vol. 2, no. 2, pp. 5-12, 2021; doi:10.47093/2713-069x.2021.2.2.5-12 (in Russian).
9. D. Singh, S. Verma, and J. Singla, "A comprehensive review of intelligent medical diagnostic systems," in Proc. of2020 4th International Conference on Trends in Electronics and Informatics (ICOEI)(48184), pp. 977-981, 2020; doi:10.1109/ICOEI48184.2020.9143043
10. Y. Duan, J. Edwards, and M. Xu, "Web-based expert systems: Benefits and challenges," Information & Management, vol. 42, no. 6, pp. 799-811, 2005; doi:10.1016/j.im.2004.08.005
11. A. A. Baidybekov, R. G. Gilvanov, and I. A. Molodkin, "Modern Frameworks for Web Development," Intellectual Technologies on Transport, no. 4, pp. 23-29, 2020 (in Russian).
12. D. Klochkov and J. Mulawka, "Improving Ruby on Rails-Based Web Application Performance," Information, vol. 12, no. 8, p. 319, 2021; doi:10.3390/info12080319
13. P. tuczak, A. Poniszewska-Maranda, and V. Karovic, "The Process of Creating Web Applications in Ruby on Rails," in Developments in Information & Knowledge Management for Business Applications. Studies in Systems, Decision and Control, vol. 330, Cham: Springer, 2021, pp. 371-401; doi:10.1007/978-3-030-62151-3_9
14. J. Yang, P. Subramaniam, S. Lu, et al., "How not to structure your database-backed web applications," 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE), pp. 800-810, 2018; doi:10.1145/3180155.3180194
15. C. Chunling, "Construction of the Individualized College English Learning Management System Using Ruby on Rails," in Proc. 2015 InternationalConferenceonService Science (ICSS),pp. 160-163,2015; doi:10.1109/ICSS.2015.22
16. A. Tapiador and J. Salvachua, "Content Management in Ruby on Rails," in Proc. of the IADIS International Conference on Collaborative Technologies 2011, 2011; doi:10.48550/arxiv.1209.3878
17. A. Aborujilah, J. Adamu, A. M. Shariff, et al., "Descriptive Analysis of Built-in Security Features in Web Development Frameworks," in Proc. of 2022 16th International Conference on Ubiquitous Information Management and Communication (IMCOM), pp. 1-8, 2022; doi:10.1109/IMC0M53663.2022.9721750
18. G. Donald, Hands-on Test-Driven Development Using Ruby, Ruby on Rails, and RSpec, New York, NY: Apress, 2024.
19. M. Costa, M. Rodrigues, P. Baptista, et al., "Database Encryption Performance Impact on PostgreSQL and MongoDB," in Marketing and Smart Technologies. Smart Innovation, Systems and Technologies, vol. 279, Singapore: Springer, 2022, pp. 121-127; doi:10.1007/978-981-16-9268-0_10
20. D. Yedilkhan, A. Mukasheva, D. Bissengaliyeva, et al., "Performance Analysis of Scaling NoSQL vs SQL: A Comparative Study of MongoDB, Cassandra, and PostgreSQL," in Proc. of2023 IEEE International Conference on Smart Information Systems and Technologies (SIST), pp. 479-483, 2023; doi:10.1109/sist58284.2023.10223568
21. T. K. Mohd, J. Thompson, A. Carmine, et al., "Comparative Analysis on Various CSS and JavaScript Frameworks," Journal of Software, pp. 282-291, 2022; doi:10.17706/jsw.17.6.282-291
22. F. Zammetti, Modern Full-Stack Development Using TypeScript, React, Node.js, Webpack, and Docker, New York, NY: Apress, 2022.
23. C. Carneiro and T. Schmelmer, "Development Environment and Workflow," in Microservices From Day One, New York, NY: Apress, 2016, pp. 105-126; doi:10.1007/978-1-4842-1937-9_8
24. S. Rakovsky and S. Magomedov, "Ensuring the Security of 0pen Python Projects: The Challenge of Assessing Potentially Destructive Functionality," International Journal of Open Information Technologies, vol. 11, no. 10, pp. 113-118, 2023 (in Russian).
25. M. Beller, R. Bholanath, S. McIntosh, et al., "Analyzing the State of Static Analysis: A Large-Scale Evaluation in Open Source Software," in Proc. of 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER), pp. 470-481, 2016; doi:10.1109/SANER.2016.105
26. S. Chandran and K. Abraham, "A Correlative Scrutiny on two Programming Dialects: RUBY Vs PYTHON," International Journal of Engineering and Advanced Technology (IJEAT), vol. 9, no. 3, pp. 4395-4404, 2020; doi:10.35940/ijeat.c6435.029320
27. T. Beuzen and T. Timbers, Python Packages, Boca Raton, CRC Press, 2022.
28. P. Virtanen, R. Gommers, T. E. Oliphant, et al., "SciPy 1.0: fundamental algorithms for scientific computing in Python," Nature Methods, vol. 17, no. 3, pp. 261-272, 2020; doi:10.1038/s41592-019-0686-2
29. Y. Mohialden, N. Mahmood, E. Baker, et al. "A Comparative Analysis of Python Code-Line Bug-Finding Methods," Scientific Research Journal of Engineering and Computer Science, vol. 3, no. 4, pp. 35-41, 2023.
30. M. Grinberg, Flask Web Development: Developing Web Applications with Python, Cambridge, MA: O'Reilly, 2018.
Received 10-03-2024, the final version — 23-03-2024.
Edem Topuzov, Postgraduate, Faculty of Mathematics and Mechanics, SPbSU, EZ [email protected]
Natalia Ampilova, Candidate of Sciences (Phys.-Math.), Docent, Department of Computer Science, Faculty of Mathematics and Mechanics, SPbSU, [email protected]