Abstract: This article discusses the main areas of application of programming for solving various problems in the medical field using the most common programming languages as an example: Python, Scikit-learn, Statistica, Statgraphics and others. It is shown that programming languages are used both for organizing the functioning of the medical system as a whole and for processing biomedical data. The main areas of application of programming for solving various problems in the medical field were considered, as well as a practical study was carried out on the example of the Python programming language using the most common research method - questioning. This is what became the goal of our work. Python has found application in the interactive processing of big biomedical data as a programming language that allows you to easily organize a system for classifying patient research results. Programming contributes more to the development of medicine as a tool for processing various research. This is also connected with the processing of various images of medical studies (ultrasound, X-ray, MRI, CT, etc.).
Keywords: medicine, programming, Python, data visualization, libraries for data visualization.
Система здравоохранения — важный социальный институт, который является совокупностью организаций, ресурсов и учреждений, направленных на оказание медицинской помощи. Для качественного выполнения функций системы здравоохранения, необходима слаженная работа всех ее компонентов: финансового отдела, компетентных работников, руководства, а также аппарата всеобщего управления. В настоящее время идет активное внедрение информационных технологий в медицинских учреждениях. Они обладают массивными базами данных, в которых хранится много информации. Ее анализ мог бы помочь во многих процессах принятия решений. Примерами таких процессов являются: прогнозирование бюджета больницы, предсказывание загруженности стационарных подразделений, оптимизация закупок лекарств в зависимости от потребностей населения. На текущий момент не разработано программы, способной решить поставленную задачу в полной мере. На рынке существуют коммерческие продукты предоставляющие инструменты для анализа данных и прогнозирования, лицензия на которые требует больших затрат. К тому же дорогостоящие программы с нужным функционалом не адаптированы под российскую систему финансирования больниц. Также схожим функционалом обладает Excel, но и он требует специалиста, обладающего фундаментальными знаниями математической статистики. Для реализации всех методов был использован язык python. Это высокоуровневый язык, имеющий простой синтаксис и экономящий время разработчика, что ведет к повышению производительности на практике. Он обладает большим функционалом и применим для широкого круга задач. Для математической статистики и моделирования существуют многофункциональные библиотеки, включающие в себя множество тестов, моделей, и способные с помощью визуального представления помогать в интерпретации данных. Для моделирования данных и построения графиков использовалась библиотека Matplotlib. Она позволяет получать визуальное представление данных в различных форматах в печатном виде и в интерактивных средах на разных платформах. С её помощью можно построить графики, гистограммы, спектры мощности, диаграммы ошибок и разброса, используя всего несколько строк кода. Для анализа и предварительной обработки данных помимо стандартных функций языка python использовалась библиотека statsmodels, предоставляющая классы и функции для оценки различных статистических моделей, а также для проведения тестов и анализа статистических данных. Помимо этого все результаты тестов проверяются с помощью встроенных пакетов, чтобы убедиться в их правильности. Но самой базовой библиотекой при математическом моделировании является pandas. Это пакет Python, обеспечивающий быстрые, гибкие и выразительные структуры данных, предназначенные для того, чтобы сделать работу с данными простой и интуитивно понятной. Scikit-learn это еще одна библиотека, но основной её функционал направлен на реализацию алгоритмов машинного обучения. Но также она имеет различные алгоритмы классификации, регрессии и кластеризации, включая векторные вычисления, градиент, k — средних, и интегрирована с численными и научными библиотеками NumPy и SciPy. Statistica — это универсальная интегрированная система, предназначенная для статистического анализа и визуализации данных, управления базами данных и разработки пользовательских приложений. Она содержит широкий набор процедур анализа для применения в научных исследованиях, технике, бизнесе, а также специальные методы добычи данных. Statgraphics — статистическая графическая система. Оснащена диалоговой системой ввода данных из других приложений и выбора методов анализа. Уникальная особенность – процедура регрессионного анализа, где представлено сравнение полученной регрессионной зависимости с альтернативными моделями.
Для того, чтобы изучить разновидности одного из наиболее востребованных языков программирования — python и выявить самые распространенные библиотеки в применении, было проведено исследование среди медицинского персонала города Воронеж. В анкетировании приняло участие 27 человек. Респонденты были подробно ознакомлены с краткой характеристикой 5 библиотек Python, после чего перешли собственно к ответам на вопросы по 5-бальной системе оценки.
В ходе проведённого анкетирования, максимальный балл набрала библиотека Matplotlib (93 балла); средний балл – Altair (66 баллов); минимальный балл – Folium (50 баллов). В результате общего анализа проведенного исследования достаточно большой процент анкетируемых изучал языки программирования (92,6%), чаще всего Python (70,4%). Совершенствованием знаний в области программирования занимается немного респондентов, объясняя это нехваткой времени или ненадобностью (7,4%). Большинство респондентов отметили, что их знания о базовых конструкторах различных языков программирования находятся на базовом уровне (66,7%). Они сочли это достаточным для выполнения необходимой работы.
Таким образом, возможность прогнозирования и визуализации чего-либо является необходимым широко распространенным инструментом в процессе принятия решений. Благодаря обзору набирающих популярность и активно развивающихся языков программирования, появляется возможность выполнять необходимую работу стабильно, вне зависимости от меняющегося персонала или опыта сотрудника. Несмотря на то, что в настоящее время еще не существует «идеального» языка программирования, отвечающего всем критериям, наличие выбора среди ряда существующих программ позволяет минимизировать неудобства, возникающие в процессе работы.
Согласно литературным источникам и публикациям, посвященным языкам программирования, а также проведенному нами исследованию, одним из лидеров в сегменте прогнозирования и визуализации является язык Python. Его библиотеки пользуются популярностью в сфере здравоохранения. Иными словами, активное участие в обсуждении вопросов программирования определяется заинтересованностью граждан, в частности медицинского персонала. Такой подход к изучению различных проблем обязательно приведет к достижению желаемых результатов: устранение недостатков и развитие тенденций в области программного обеспечения.
Приложение 1
Предлагаем Вам ознакомиться с основной характеристикой библиотек Python и ответить на ряд вопросов по 5-бальной системе.
Библиотека | Преимущества | Недостатки |
Matplotlib | Четко отображены свойства данных;
При анализе данных возможность быстро посмотреть распределение. |
Трудности в построении сложных графиков;
Большие усилия для редакции оси X и Y (для презентации публике); Низкоуровневый интерфейс. |
Seaborn | Меньше кода, более красивый дизайн графиков;
Интерфейс более высокого уровня для построения похожих графиков. |
Более узкая коллекция графиков. |
Altair | Для графиков, требующих большого количества статистических преобразований;
Простая грамматика визуализации ; Простота преобразования данных; Упрощение преобразования данных при создании диаграммы ; Связывание нескольких графиков.. |
|
Folium | Легко визуализировать данные на интерактивной встраиваемой карте;
Очень легко создавать карты с маркерами; Добавление потенциального местоположения; Плагины (в т.ч. для Altair). |
|
Bokeh | Интерактивная библиотека для визуализации, предназначенная для презентации данных в браузерах;
Интерактивная версия Matplotlib ; Связь между графиками, простота их связывания. |
Интерфейс среднего уровня
требует меньше кода, чем Matplotlib; Больше кода для создания того же графика, чем Seaborn, Altair или Plotly. |
Приложение 2
Система оценки для ответов на вопросы:
1 балл – не знаком с системой;
2 балла – слышал о данной библиотеке, но не пользовался;
3 балла – начинал пользоваться системой, но перешел на другую;
4 балла – применяю систему в своей практике, но добавил бы изменения;
5 баллов – лучшая система, в другой не нуждаюсь.
Приложение 3
Анкета
- Изучали ли вы когда-либо языки программирования
Выберите 1 вариант ответа
*Да
*Нет
2. Какой язык программирования Вы изучали?
Выберите 1 или несколько вариантов ответа
*Python *Statistica
*Java *Statgraphics
*PHP *NumPy
*Scikit-learn *SciPy
3.Отметьте языки, которые вы стремитесь использовать: пишете на них собственные проекты, или учите прямо сейчас, или пытаетесь продвинуть для использования на работе:
*Python *Statistica
*Java *Statgraphics
*PHP *NumPy
*Scikit-learn *SciPy
4. Какой должен быть первый язык програм мирования для новичка в современных условиях?
*Small *Python Pascal
*Basic *Delphi
*JavaScript *Java
*PHP
5. Как часто вы используете текстовые языки программирования (Pascal, C++, Python и др.)?
Поле для самостоятельного ответа
6. Насколько полно вы знаете базовые конструкторы какого-либо языка программирования?
Поле для самостоятельного ответа
7. Оцените разновидности библиотек Python по 5-балльной системе:
*Matplotlib
*Seaborn
*Altair
*Folium
*Bokeh
References
1. Фекленкова П.А., Лагуцкий И.А., Камлач П.В. Применение языка программирования Python в медицине // Медэлекстроника-2020. Средства медицинской электроники и новые медицинские технологии. - 2020. - С. 181-185.2. Вишневская Е. Использование современных языков программирования для решения профессиональных задач на примере языка программирования Python // Молодой ученый. 2016. - № 17-1. - С. 67-71.
3. Бухаров Т.А., Нафикова А.Р., Мигранова Е.А. Обзор языка программирования Python и его библиотек // COLLOQUIUM-JOURNAL. - 2019. - № 3-1. - С. 23-25.
4. Цуканова Н.И., Букланова С.Ю. О библиотеках языка Python // Математическое и программное обеспечение вычислительных систем. – 2020. – С. 27-30.
5. Кокорев Д.С., Степаненко Д.Б. SCIKIT-LEARN: машинное обучение в Python // Аллея науки. – 2018. - № 1. – С. 834-838.
6. Ильичев В.Ю., Юрик Е.А. Анализ массивов данных с использованием библиотеки Pandas для Python // Научное обозрение. Технические науки. – 2020. - № 4. – С. 41-45.
7. Смагин А.Н. Визуализация данных в Python при помощи библиотеки Matplotlib // Проблемы управления в социально-экономических и технических системах. – 2019. – С. 39-43.
8. Пылов П.А., Протодьяконов А.В. Программные библиотеки языка программирования Python для реализации алгоритмов визуализации данных // Инновации. Наука. Образование. – 2020. - № 23. – С. 233-239.
9. Егорова А.Н., Феофанов М.А. Обзор языка программирования Python для решения задач моделирования и визуализации данных // Научно-практические исследования. – 2020. - № 3-2. – С. 21-23.
10. Насруева М.А. Визуализация аналитических данных с использованием языка программирования Python // Инновационные научные исследования в современном мире. – 2021. – С. 25-36.
11. Шутова О.А., Грамаков Д.А. Сравнительный анализ библиотек визуализации данных для задачи обработки образовательной информации // Проблемы теории и практики инновационного развития и интеграции современной науки и образования. – 2021. – С. 190-194.
12. Усачева А.Б., Галиаскаров Д.Р. Библиотеки Python для анализа данных // COLLOQUIUM-JOURNAL. - 2020. - № 29-1. – С. 58-59.
13. Топ 6 библиотек Python для визуализации: какую и когда лучше использовать? – Режим доступа: https://habr.com/ru/company/otus/blog/558478/ (дата обращения: 18.11.2022).
14. Что такое Python и для чего он используется / Все о Python. – Режим доступа: https://all-python.ru/osnovy/yazyk-programmirovaniya.html (дата обращения: 20.11.2022).
15. Python в медицине. Топовые разработки на любимом языке. – Режим доступа: https://garpix.com/World-experience/python-v-medicine-topovye-razrabotki-na-lyubimom-yazyke (дата обращения: 20.11.2022).
16. Н.А.Гладских и соавт. Прогностическая модель формирования бронхолегочной дисплозии у неработающих детей. Системный анализ и управление в биомедицинских системах, 2017, т. 1, с. 16, № 3, стр. 632-637.
17. Математическое обеспечение формирования словаря информативных признаков для расчета вероятностных оценок повторного удара,Судаков, О.;Гладских, Н.;Алексеев, Н.так далее. НАУЧНЫЙ ЖУРНАЛ ФАРМАЦЕВТИЧЕСКИХ БИОЛОГИЧЕСКИХ И ХИМИЧЕСКИХ НАУК Т.9, Т. 4, С. 393-399., 2018
18. Метод и алгоритм расчета вероятностной оценки повторения инсульта.Судаков, О.,Гладских, Н.,Алексеев, Н.НАУЧНЫЙ ЖУРНАЛ ФАРМАЦЕВТИЧЕСКИХ БИОЛОГИЧЕСКИХ И ХИМИЧЕСКИХ НАУК. Т. 2018. Т. 9. Т. 4. С. 400-404.
19. Программная реализация методики расчета интегральных показателей реабилитационного потенциала больных шизофренией. Штаньков, С.,Ширяев, О.,Судаков, О.НАУЧНЫЙ ЖУРНАЛ ФАРМАЦЕВТИЧЕСКИХ БИОЛОГИЧЕСКИХ И ХИМИЧЕСКИХ НАУК.