Повсеместное и неотъемлемое присутствие медицины в жизни каждого человека, а также стремительное развитие компьютерных технологий ставят вопрос о совмещении этих двух сфер деятельности для решения широкого круга задач.
Существует множество направлений, где задачи медицины решаются с помощью компьютерных программ и программных комплексов различной сложности. Одним из таких направлений является использование компьютерных технологий для назначения вакцин пациентам.
Актуальность данной проблемы состоит в том, что частичная компьютеризация процесса выписывания вакцин позволит:
- снять нагрузку на работников медицинских учреждений;
- сократить время на сбор предварительных данных за счёт предоставления информации пациентом в электронном виде;
- сохранить и преумножить знания и опыт практикующих экспертов, выразив их на некотором формальном языке для последующей компьютерной обработки.
Существующие программные решения в этой области являются программами с закрытым кодом, созданными исключительно для экспертной работы и не поддерживающими взаимодействие с пользователями.
Целью данной выпускной квалификационной работы является создание программного комплекса, позволяющего выписывать пациентам вакцины на основании введённых ими данных, имеющих формат ответов на некоторый тест. При этом стоит отметить, что приложение является лишь вспомогательным и не сможет полностью заменить вердикт врача.
Для достижения поставленной цели необходимо решить следующие задачи:
1. изучить теоритические основы построения сложных информационных систем, изучить язык программирования Prolog, который
может быть использован для обработки знаний, записанных на формальном языке, изучить языки JavaScript, PHP, изучить фреймворк Laravel, распространяющийся по свободной лицензии, проанализировать медицинскую литературу и справочники;
2. разработать программный комплекс, позволяющий проводить медицинские тесты, а также манипулировать данными в виде формализованных знаний эксперта;
3. протестировать полученную систему с помощью автоматических тестов.
1. Изучение и анализ предметной области................................................... 6
1.2. Способы хранения и обработки знаний............................................. 8
2. Проектирование и разработка системы.................................................. 11
2.1. Техническое задание.......................................................................... 11
2.2. Проектирование автоматизированной системы............................... 12
2.3. Работа с данными.............................................................................. 17
2.4. Обработка запросов и их вывод....................................................... 22
2.5. Работа с контроллерами.................................................................... 26
2.6. Взаимодействие PHP c SWI Prolog................................................... 28
3. Тестирование автоматизированной системы.......................................... 32
3.1. Функциональное тестирование веб-приложения.............................. 32
3.2. Функциональное тестирование модуля Prolog................................. 33
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ..................................... 37
1. Аксенова В.А., Апарин П. Г., Алексеев Л.П. Вакцины и вакцинация. Национальное руководство. – М.: ГЭОТАР-Медиа, 2011 – 640 с.
2. Брико Н. И. и др. Оценка эффективности вакцинации: основные подходы и спорные вопросы //Педиатрическая фармакология. – 2014. – Т. 11. – №. 4. – 8 с.
3. Ильина С.В., Намазова-Баранова Л.С., Баранов А.А. Вакцинация для всех: простые ответы на непростые вопросы (руководство для врачей). – М.: ПедиатрЪ, 2016. – 199 с.
4. Кригер Е. А. и др. Отношение родителей к вакцинации детей и факторы, связанные с отказом от прививок //Педиатрия. Журнал им. ГН Сперанского. – 2016. – Т. 95. – №. 2. – с. 91-94
5. Кухтевич Е. В. и др. Иммунопрофилактика: позитивные и негативные тенденции //Инфекционные болезни: Новости. Мнения. Обучение. – 2018.
– Т. 7. – №. 2 (25). – с. 84-91
6. Bratko I. Prolog Programming for Artificial Intelligence. – 4 ed. Pearson Education Canada, 2011 – 696 p.
7. Chen H. et al. Decomposition of UML activity diagrams //Software: practice and experience. – 2018. – Т. 48. – №. 1. – p. 105-122.
8. Chowdhary K. R. Logic Programming and Prolog //Fundamentals of Artificial Intelligence. – Springer, New Delhi, 2020. – p. 111-141.
9. Ismail, Nabil. Prolog-Based Expert System for Microcomputer Diagnostics – Menoufia University, 2020 – 9 p.
10. Kromann F. M. Working with the File and Operating System //Beginning PHP and MySQL. – Apress, Berkeley, CA, 2018. – p. 271-307.
11. Lee K. D. Logic Programming //Foundations of Programming Languages. – Springer, Cham, 2017. – p. 277-304.
12. Marin M. Advanced Logic and Functional Programming. – West University of
Timisoara, Romania, 2018. – 115 p.
13. Nogatz F., Körner P., Krings S. Prolog Coding Guidelines: Status and Tool Support //arXiv preprint arXiv:1909.08230. – 2019. – 14 p.
14. Nutile A. Laravel 5. x Cookbook. – Packt Publishing Ltd, 2016 – 402 p.
15. Powers D. Working with Arrays //PHP 7 Solutions. – Apress, Berkeley, CA, 2019. – p. 179-220.
16. Rumpe B. Modeling with UML //Language, Concepts, Methods. Springer International. – 2016. – Т. 4. – 288 p.
17. Sinha S. Database Migration //Beginning Laravel. – Apress, Berkeley, CA, 2017. – p. 49-52.
18. Sinha S. Laravel 5.7.* All Model Relations Explained: A detailed discussion of MVC Pattern, Composer, Migrations, One to One, One to Many, Many to Many, and Polymorphic Relationships. – 2018 – 179 p.
19. Stauffer M. Laravel: Up & Running: A Framework for Building Modern PHP Apps. – O'Reilly Media, 2019 – 554 p.
20. Sunardi A. et al. MVC Architecture: A Comparative Study Between Laravel Framework and Slim Framework in Freelancer Project Monitoring System Web Based //Procedia Computer Science. – 2019. – Т. 157. – p. 134-141.