# Задание на экзамен по ПМ.05 ## Описание предметной области Вашей задачей является разработка информационной системы для медицинской лаборатории № 1 города Йошкар-Олы. Медицинская лаборатория № 1 работает на прием биоматериала из поликлиник города, проводит специализированные исследования, ведет базу данных исследований. Порядок работы лаборатории: на каждую единицу принятого **биоматериала** создается **заказ**, который может содержать в себе **услуги** (одну или несколько) – исследования биоматериала. У одного **пациента** может быть несколько заказов. **Обеспечьте хранение в базе данных:** * биоматериалы, принятые от поликлиник (пациент, уникальный номер материала, дата принятия) файл: `blood.xml` * услуги лаборатории (наименование, стоимость, код услуги, срок выполнения); файл: `services.csv` * данные пациентов (логин, пароль, ФИО, дата рождения, серия и номер паспорта, телефон, e-mail); файл: `patients.xml` * заказ (дата создания, услуги которые входят в заказ, статус заказа, статус услуги в заказе, время выполнения заказа (в днях)) * данные лаборантов (логин, пароль, ФИО, последняя дата и время входа, набор услуг, которые он может оказывать) Разработанная вами база данных должна быть в **3 НФ**. ## Задание №1, Моделирование системы Разработайте диаграмму вариантов использования информационной системы лаборатории № 1. Определите основных актеров, варианты их использования и типы взаимодействия. Формат представления диаграммы: PDF.  ## Задание №2, ERD >Посмотреть что будет на демо-экзамене, может уберем этот пункт Создайте подробную ERD для предметной области. К разработанной диаграмме создайте словарь данных (пример словаря данных в папке с ресурсами). ## Задание №3, Работа с БД Создайте таблицы **основных сущностей**, атрибуты, отношения и необходимые ограничения. После создания базы данных требуется импортировать предоставленные данные. Возможно, вам понадобится отформатировать данные, прежде чем загрузить их в таблицы, которые вы только что создали. В любом случае **созданные таблицы должны содержать начальные тестовые данные**. ## Задание №4, Программирование При запуске приложения окно входа – первое, что видит пользователь. На ней пользователю предлагается ввести свой логин и пароль. Только после удачной авторизации пользователь получает доступ к остальным модулям системы. При вводе пароль должен быть скрыт маской ввода, но так же должна быть реализована возможность просмотра введенного пароля. При входе система выводит фото пользователя, фамилию и имя пользователя, его роль. После авторизации пользователь получает доступ к нужному функционалу:  * лаборант может принять биоматериал, сформировать заказ; * пациент может посмотреть список своих заказов и список услуг лаборатории. Реализуйте необходимые интерфейсы для всех пользователей системы. После входа в любую учетную запись должна быть реализована возможность выхода на главный экран – окно входа. ### Прием биоматериала и формирование заказа Лаборант получает от курьера биоматериал из поликлиник города. Каждый биоматериал приходит с листом сопровождения.  При приеме биоматериала лаборант формирует заказ. В данном случае заказ - это занесение в базу данных кода биоматериала и перечень услуг (далее  - исследований) **Реализуйте интерфейс для приема биоматериала и формирования заказа.** После ввода кода пробирки в окне формирования заказа реализуйте возможность ввода ФИО пациента, услуги. Если пациента в базе данных лаборатории нет, его необходимо добавить. Для этого открывается дополнительное модальное окно добавления пациента, в котором нужно ввести ФИО, дата рождения, серия и номер паспорта, телефон, e-mail. Реализуйте возможность добавления нескольких услуг к заказу, поле для добавления новой услуги появляется по нажатию кнопки. **Реализуйте интерфейс для просмотра списка заказов**   Реализуйте поиск пациента и услуг по всем доступным данным.  ## Задание №5, Тестирование Напишите UNIT-тесты для процесса добавления заказа. ## Задание №6, Оформление результатов экзамена Оформите пояснительную записку в файле `readme.md`. Результаты работы разместите в репозитории.