Выбор программного обеспечения и план построения распределенной системы
В задании к курсовой работе не уточняется, для каких конкретно целей необходима распределенная система – для внутренних или внешних, не уточнен конкретный пользователь – работники поликлиники, или их клиенты, поэтому будем считать, что система предназначается для всех, и клиент будет не один, а два – первый для пациентов поликлиники (сайт, мобильное приложение, терминал…), а второй – программное обеспечение, установленное на компьютеры персонала. Оба клиента будут пользоваться одной базой данных, им нужно будет куда-то посылать запрос и получать ответ, естественно, для этого требуется промежуточное приложение – веб-сервис, при чем сами клиенты реализованы не будут – это не касается темы курсовой работы.
Существует немало подходов к построению клиент-серверных приложений, в том числе и популярные “SOAP” и “WSDL”, однако на сегодняшний день они все больше вытесняются подходом “REST” – “Representational State Transfer”, поэтому использовать будем именно этот шаблон, а если точнее, то “RESTful API”, в который входит достаточно популярный Java-фреймворк для написания веб-сервисов под названием “Spring Framework”, а также реляционная база данных (на мой выбор) “PostgreSQL”. Общаться сервер с клиентом будет по протоколу “HTTP”, с использованием его методов “GET”, “POST”, “DELETE”.
?
2. Ведение медицинских карт пациентов
Рис. 1
Ведение медицинских карт будет осуществляться в таблице “medical_cards” (рис. 1) - с англ. “медицинские карты” со следующими атрибутами:
- “id” – с англ. “айди”, тип данных “Long”, является ключом и генерируется последовательно.
- “patient” – с англ. “пациент”, тип данных “String” – это первичный ключ другой таблицы с названием “patients”
- “introduced” - с англ. “заведена”, тип данных “Date”, здесь будет храниться дата открытия карточки.
- “closed” – с англ. “закрыта”, тип данных “Date” – дата закрытия карты, если значение в колонке является “00/00/0000”, то карта не закрыта.
- “blood_type” – с англ. “группа крови”, тип данных “String” – значение группы крови в медицинской карте.
- “allergic_reactions” – с англ. “аллергические реакции”, тип данных “String” – выписанные врачом аллергические реакции пациента.
- “growth” – с англ. “рост”, тип данных “Integer” – рост пациента.
- “weight” – с англ. “вес”, тип данных “Integer” – вес пациента.
- “normal_blood_pressure” – с англ. “нормальное кровяное давление”, тип данных “String” – сюда записывается нормальное кровяное давление пациента.
- “normal_pulse” – с англ. “нормальный пульс”, тип данных “String” – нормальный (средний) пульс пациента.
- “drug_intolerance” – с англ. “непереносимость лекарств” , тип данных “String” – список лекарств, которые противопоказаны пациенту.
- “devatuions_in_health” – с англ. “отклонения в здоровье”, тип данных “String” – хронические отклонения или отклонения в здоровье с детства.
- “availability_of_vaccinations” – с англ. “наличие прививок” , тип данных “String” – прививки, когда-либо сделанные пациентом.
Выше был упомянут атрибут из другой таблицы с названием “patients” – это таблица, в которой расположены имена, фамилии и адреса пациентов, ниже представлены атрибуты данной таблицы.
Рис. 2
Атрибуты таблицы “patients” (рис. 2):
- “id” – с англ. “айди”, тип данных “Long” является первичным ключом и генерируется последовательно.
- “name” – с англ. “имя”, тип данных “String” – имя пациента.
- “surname” – с англ. “фамилия”, тип данных “String” – фамилия пациента.
- “middle_name” – с англ. “отчество”, тип данных “String” – отчество пациента.
- “address” – с англ. “адрес”, тип данных “String” – адрес пациента.
- “birthday” – с англ. “дата рождения”, тип данных “Date” – дата рождения пациента.
- “gender” – с англ. “пол”, тип данных “String” – пол пациента.