Два основных компонента этой архитектуры – это два независимых процесса: клиент и сервер. Сервер работает на том компьютере, где хранятся данные, а клиент - на компьютере пользователя.
Рисунок 1.13. - Архитектура «клиент-сервер»
Клиент формирует пользовательский интерфейс и запросы к серверу на чтение и изменение данных, хранящихся в нем. Можно сказать, что клиент есть приложения, которые выполняются над СУБД. Сервер выполняет эти запросы, обработку данных, отслеживает хранение целостности и согласованности, а также права доступа к данным и возвращает клиенту результаты выполнения ее запроса.
Трёхуровневая архитектура
Трёхуровневая архитектура — вариант архитектуры клиент - сервер, в котором пользовательский интерфейс, доступ к данным и хранение данных разрабатываются и функционируют как независимые модули, зачастую на различных платформах.
Трёхуровневая архитектура представляет собой:
Терминал - это интерфейсный (обычно графический) компонент, который представляет первый уровень, собственно приложение для конечного пользователя. Первый уровень не должен иметь прямых связей с базой данных (по требованиям безопасности), быть нагруженным основной бизнес-логикой (по требованиям масштабируемости) и хранить состояние приложения (по требованиям надежности). На первый уровень может быть вынесена и обычно выносится простейшая бизнес-логика: интерфейс авторизации, алгоритмы шифрования, проверка вводимых значений на допустимость и соответствие формату, несложные операции (сортировка, группировка, подсчет значений) с данными, уже загруженными на терминал.
Сервер приложений располагается на втором уровне. На втором уровне сосредоточена большая часть бизнес-логики. Вне его остаются фрагменты, экспортируемые на терминалы, а также погруженные в третий уровень хранимые процедуры и триггеры.
Сервер базы данных обеспечивает хранение данных и выносится на третий уровень . Обычно это стандартная реляционная или объектно-ориентированная СУБД. Если третий уровень представляет собой базу данных вместе с хранимыми процедурами, триггерами и схемой, описывающей приложение в терминах реляционной модели, то второй уровень строится как программный интерфейс, связывающий клиентские компоненты с прикладной логикой базы данных.
Достоинствами трёхуровневой архитектуры являются:
- Масштабируемость
- конфигурируемость - изолированность уровней друг от друга быстро и простыми средствами переконфигурировать систему при возникновении сбоев или при плановом обслуживании на одном из уровней.
- высокая безопасность
- высокая надежность
- низкие требования к скорости канала (сети) между терминалами и сервером приложений.
- низкие требования к производительности и техническим характеристикам терминалов, как следствие, снижение их стоимости. Терминалом может выступать не только компьютер, но и мобильный телефон к примеру.
При разработке интернет-магазинов нужны поддержка транзакций, устойчивость к сбоям и способность справляться с массированной загрузкой. Интернет серверу иногда приходится обрабатывать сотни обращений в секунду. К тому же традиционная клиент-сервер схема чувствительна к потере соединения. Выход - оставить прикладной процесс рядом с сервером данных, чтобы иметь устойчивое соединение с последним и удерживать контекст транзакции.
Учитывая вышеизложенное, в качестве архитектуры для разработки интернет-магазина была выбрана трёхуровневая архитектура.
Выбор языка сценариев
Необходимо выбрать язык сценариев для реализации проекта. Язык сценариев (скриптовый язык) - язык программирования, разработанный для записи «сценариев», последовательностей операций, которые пользователь может выполнять на компьютере.
Самыми распространёнными языками сценариев являются PHP и Perl, поэтому они и будут сравниваться для нахождения оптимального варианта реализации проекта интернет-магазина.
Таблица 1.34. Сравнительный анализ языков сценария
Аналоги Критерии сравнения | Весовой коэффициент | Perl (Practical Extraction and Report Language) | PHP (Personal Home Pages) |
Простота и удобство в использовании | 0,2 | ||
Поддержка хостинг-провайдерами | 0,2 | ||
Решение административных задача в ОС Windows | 0,2 | ||
Быстрота | 0,2 | ||
Для работы с MySQL | 0,2 | Модули DBI, Msql-Mysql-modules, Data-Dumper, Data-ShowTable | Модуль php5-mysql |
Итого | 4,2 | 4,8 |
PHP - язык программирования, созданный для генерации HTML-страниц на веб-сервере и работы с базами данных. Входит в LAMP — «стандартный» набор для создания веб-сайтов (Linux, Apache, MySQL, PHP).
Область применения PHP сфокусирована на написании скриптов, работающих на стороне сервера; таким образом, PHP способен выполнять то, что выполняет любая другая программа CGI, например, обрабатывать данные форм, генерировать динамические страницы или отсылать и принимать cookies.
В результате проведённого сравнения было принято решение использовать для реализации проекта язык PHP.
ТЕХНОЛОГИЧЕСКАЯ ЧАСТЬ
Задание входных/выходных данных
Входными данными является информация, вводимая в систему администратором системы, врачами, пациентами, медсёстрами и санитарами посредством клавиатуры и манипулятора мыши в специальные формы для ввода.
Информация, вводимая администратором:
· Логин и пароль;
· Личные данные врача:
o ФИО;
o Должность;
o Расписание работы;
o Год рождения;
· Личные данные пациента:
o ФИО;
o Год рождения;
o Данные полиса.
Информация, вводимая врачом:
· Логин и пароль;
· Запись в карте пациента (данные о приёме);
· Соответствующие поля направлений на анализы и процедуры;
· Соответствующие поля направлений к другим врачам и в другие реабилитационные центры;
· Выписка рецепта на лекарства.
Информация, вводимая пациентом:
· Логин и пароль;
· Дата и время записи к врачу на приём.
Информация, вводимая медсестрой кабинета приёма анализов:
· Логин и пароль;
· Отметка о приёме анализа;
· Выбор лаборатории, в которую направляется анализ для исследований.
Информация, вводимая медсестрой процедурного кабинета:
· Логин и пароль;
· Отметка о прохождении процедуры.
Информация, вводимая работником лаборатории:
· Логин и пароль;
· Данные о результате анализа.
Разработка графа диалога
Пользователь вводит в строке браузера URL системы, после чего попадает в окно для авторизации. Авторизовавшись, пользователи различных категорий видят различный интерфейс с различным функционалом.
В состав основного меню для пользователя «Врач» входят следующие пункты:
1. Пациенты. В этом окне врач просматривает всех пациентов, записавшихся к нему на выбранную им дату. Когда определённый пациент приходит на приём, врач обращается к диалоговому окну «Приём».
1.1. Приём. Данное окно предоставляет врачу следующие возможности:
1.1.1. Запись в карте. Врач производит запись данных о приёме в карте пациента.
1.1.2. Направление на анализ. Врач выдаёт пациенту направления на анализы.
1.1.3. Направление на процедуру. Врач выдаёт пациенту направления на процедуры.
1.1.4. Направление к другому врачу. Врач выдаёт пациенту направления к другому врачу (к которому пациент не имеет возможности записаться самостоятельно).
1.1.5. Выписка рецептов. Врач выписывает пациенту рецепт на лекарство.
2. Расписание. Врач может просматривать своё расписание на текущее время.
В состав основного меню для пользователя «Пациент» входят следующие пункты:
1. Записи к врачам. Пациент может просматривать все свои записи к врачам, в число которых входят как уже пройденные врачи, так и те, которых ещё предстоит пройти. Пациент имеет следующие возможности:
1.1. Запись в карте. Пациент имеет возможность просмотреть записи врачей в своей карте.
1.2. Запись к врачу. Пациент может записаться к нужному ему врачу на определённую дату и время.
2. Процедуры. Пациент может просмотреть все назначенные ему процедуры.
1.1. Процедурный лист. Пациент имеет возможность посмотреть, какое количество процедур он посетил и сколько ему ещё осталось.
3. Анализы. Пациент может просмотреть все назначенные ему анализы.
1.1. Результат. Пациент имеет возможность посмотреть результат сданного анализа.
В состав основного меню пользователя «Администратор» входят следующие пункты:
1. Врачи. Администратор видит всех врачей, зарегистрированных в данной системе.
1.1. Добавить врача. Администратор может добавить нового врача, заполнив соответствующие поля формы добавления.
1.2. Сгенерировать логин и пароль. Логин и пароль автоматически генерируется для выбранного врача.
1.3. Составить расписание. Администратор вводит расписание врача, дни и часы его работы.
2. Пациенты. Администратор видит всех пациентов, зарегистрированных в данной системе.
2.1. Добавить врача. Администратор может добавить нового пациента, заполнив соответствующие поля формы добавления.
2.2. Сгенерировать логин и пароль. Логин и пароль автоматически генерируется для выбранного пациента.
В состав основного меню пользователя «Медсестра кабинета анализов» входят следующие пункты:
1. Приём анализа. Пользователь вводит данные приёма анализов и сохраняет их. Дальнейшие действия производят сотрудники лаборатории.
В состав основного меню пользователя «Сотрудник лаборатории» входят следующие пункты:
1. Результат анализа. Пользователь вводит данные о результате сданного анализа.
В состав основного меню пользователя «Медсестра процедурного кабинета» входят следующие пункты:
1. Процедура. Пользователь ставит отметку о прохождении или пропуске пациентом процедуры.
Рис 2.1. Граф диалога
Разработка экранных форм.
При открытии сайта, пользователь попадает на страничку авторизации:
Рис. 2.2. Экранная форма авторизации
Авторизовавшись, различные типы пользователей видят перед собой различный интерфейс, определяемый функционалом.
1. Пользователь «Врач»
После выбора даты врач видит всех пациентов, записавшихся к нему на этот день.
Рис. 2.3. Список записавшихся пациентов
Когда пациент приходит на приём, врач нажимает на соответствующую пиктограмму и делает запись в карте пациента:
Рис. 2.4. Запись в карте на приёме
Помимо этого, врач может давать различные направления пациенту:
Рис. 2.5. Выписка направления на процедуру
Для просмотра своего расписания врачу необходимо перейти по ссылке «Расписание», после чего он попадает на соответствующую страничку:
Рис. 2.6. Расписание врача
2. Пользователь «Пациент»
После авторизации пациент попадает в форму, где выводятся все его записи к врачам:
Рис. 2.7. Записи к врачам
Здесь отображаются все пройденные врачи и врачи, которых ещё предстоит пройти. Для просмотра записи в карте, которая была сделана определённым врачом на приёме, пациенту необходимо кликнуть по пиктограмме записи, после чего появится следующее окно:
Рис. 2.8. Просмотр записи в карте
Для записи к определённому врачу пациент открывает соответствующую ссылку, после чего появляется окно записи:
Рис. 2.9. Запись к врачу
После перехода по ссылке «Процедуры», пациент попадает в форму, где отображаются все прописанные ему процедуры:
Рис. 2.10. Назначенные процедуры
По каждой процедуре пациент имеет возможность просматривать процедурную карточку, где отображаются пройденные и непройденные им процедуры:
Рис. 2.11. Процедурная карточка
После перехода по ссылке «Анализы», пациент попадает в форму, где отображаются все выписанные ему анализы:
Рис. 2.12. Назначенные анализы
3. Пользователь «Администратор»
После авторизации администратор попадает в форму, где выводятся все врачи данной поликлиники:
Рис. 2.13. Врачи поликлиники
Администратор имеет возможность просматривать личные данные врача, изменять их и добавлять новых врачей поликлиники.
После перехода по ссылке «Пациенты» администратор попадает в форму для редактирования всех пациентов поликлиники:
Рис. 2.14. Пациенты поликлиники
4. Пользователь «Медсестра кабинета приёма анализов»
После авторизации медсестра попадает в форму, где отображаются все пациенты, направленные на данный анализ на определённую дату:
Рис. 2.15. Записанные на сдачу анализов пациенты
Когда пациент приходит на сдачу, медсестра делает соответствующую отметку о приёме.
5. Пользователь «Работник лаборатории»
После авторизации работник лаборатории попадает в форму, где отображаются все сданные пациентами анализы. Работнику необходимо ввести данные о результатах каждого анализа.
Рис. 2.16. Направленные на исследования анализы
После проведения исследований работник лаборатории открывает соответствующее окно и записывает результат анализа. Этот результат записывается в базу и пациент имеет возможность посмотреть его.
6. Пользователь «Медсестра процедурного кабинета»
После авторизации работник лаборатории попадает в форму, где выводятся все пациенты, записанные на процедуру на определённую дату. После проведения процедуры медсестра должна сделать об этом соответствующую отметку в процедурном листе.
Рис. 2.17. Записанные на процедуру пациенты
Руководство пользователю
2.4.1.
|
№ п/п | Действие | Результат |
Добавление нового врача | ||
1. | Зарегистрироваться под администратором системы | Откроется форма со списком всех имеющихся врачей |
2. | Перейти по ссылке «Добавить» | Откроется форма для добавления врачей |
2. | Заполнить соответствующие поля формы и нажать кнопку «Добавить» | Откроется новая страничка с сообщением об успешном добавлении врача |
3. | Перейти по ссылке «Врачи» | Откроется форма со списком всех имеющихся врачей; только что добавленный врач должен появиться в этом списке |
Просмотр данных врача | ||
4. | Перейти по ссылке «Врачи» | Откроется форма со списком всех имеющихся врачей |
5. | Перейти по ссылке с ФИО врача, данные которого нужно просмотреть (либо нажать на соответствующую пиктограмму) | Откроется форма просмотра личных данных врача |
Изменение личных данных врача | ||
6. | Перейти по ссылке «Врачи» | Откроется форма со списком всех имеющихся врачей |
7. | Нажать на соответствующую пиктограмму для изменения данных | Откроется форма изменения личных данных врача |
8. | Изменить нужные поля и нажать кнопку «Сохранить» | Откроется форма со списком всех имеющихся врачей |
9. | Перейти по ссылке с ФИО врача, данные которого были изменены (либо нажать на соответствующую пиктограмму) | Откроется форма просмотра личных данных врача; поля, изменённые в предыдущем пункте, должны содержать новые значения |
Удаление врача | ||
10. | Перейти по ссылке «Врачи» | Откроется форма со списком всех имеющихся врачей |
11. | Нажать на соответствующую пиктограмму для удаления врача | Появится сообщение с требованием подтверждения удаления врача |
12. | Подтвердить удаление, нажав на кнопку «Да» | Откроется форма со списком всех имеющихся врачей, удалённого врача не должно быть в этом списке |
2.4.2.
|
№ п/п | Действие | Результат |
1. | Зарегистрироваться под администратором системы | Откроется форма со списком всех имеющихся врачей |
2. | Нажать на соответствующую пиктограмму для создания расписания врача | Откроется форма для создания расписания врача |
3. | Выбрать дни и время, когда будет работать врач | Выведется список свободных на выбранные дни и время кабинетов |
4. | Выбрать нужные кабинеты и нажать сохранить | Откроется форма со списком всех имеющихся врачей |
5. | Нажить на пиктограмму «Просмотр расписания». | Откроется форма с данными недавно введённого расписания |
2.4.3. Создание нового пациента, изменение его данных, удаление пациента
Действия по совершению указанных функций аналогичны действиям, описанным в пункте 2.4.1., необходимо лишь перейти по ссылке «Пациенты».
2.4.4.
Работа с системой пользователем «Пациент»
Таблица 2.3.
№ п/п | Действие | Результат |
Запись к врачу и просмотр записей в карте | ||
1. | Зарегистрироваться как пользователь «Пациент» | Откроется форма со списком всех записей к врачам |
2. | Нажать на соответствующую пиктограмму около записи к врачу | Откроется окно с данными записи |
3. | Нажать «ОК» | Произойдет возврат к форме со списком записей к врачам |
4. | Перейти по ссылке «Запись к врачу» | Откроется окно для новой записи к врачу |
5. | Выбрать нужного врача, дату и время записи и нажать «ОК» | Произойдет возврат к форме со списком записей к врачам; новая запись должна появиться в этом списке. |
Просмотр назначенных процедур и анализов | ||
6. | Перейти по ссылке «Процедуры» | Откроется форма со списком назначенных процедур |
7. | Нажать на пиктограмму для просмотра процедурного листа | Откроется окно с процедурным листом: в нём указаны даты, на которые назначены сеансы процедур и отметка об их прохождении |
8. | Нажать на кнопку «ОК» | Произойдет возврат к форме со списком процедур |
9. | Перейти по ссылке «Анализы» | Откроется форма со списком назначенных анализов |
10. | Нажать на пиктограмму для просмотра результата анализа | Откроется окно, в котором будет указан результат сданного анализа (в случае, если он был уже исследован в лаборатории) |
2.4.5.
Работа с системой пользователем «Медсестра кабинета приёма анализов» и «Работник лаборатории»
Таблица 2.4.
№ п/п | Действие | Результат |
Приём анализов | ||
1. | Зарегистрироваться как пользователь «Медсестра кабинета приёма анализов» | Откроется форма со списком записанных на сдачу пациентов на текущую дату |
2. | Нажать на пиктограмму рядом с ФИО пациента | Откроется окно для ввода данных об анализе |
3. | Заполнить форму и нажать «ОК» | Произойдет возврат к форме со списком записанных пациентов. Пиктограмма станет неактивной |
Исследование анализов | ||
4. | Зарегистрироваться как пользователь «Работник лаборатории» | Откроется форма со списком направленных на исследование анализов |
5. | Нажать на пиктограмму ввода результата анализов | Откроется окно с полями для заполнения |
6. | Заполнить форму и нажать «ОК» | Произойдет возврат к форме со списком сданных анализов; напротив анализа, результат которого был только что введён, появится соответствующая отметка |
9. | Зарегистрироваться как пользователь «Пациент» | Откроется форма со списком направлений к врачу |
10. | Перейти по ссылке «Анализы» | Откроется форма со списком направлений на анализы |
10. | Нажать на пиктограмму результата только что исследованного анализа | Откроется окно, в котором будет указан результат сданного анализа |
2.4.6.
Работа с системой пользователем «Медсестра процедурного кабинета»
Таблица 2.5.
№ п/п | Действие | Результат |
1. | Зарегистрироваться как пользователь «Медсестра процедурного кабинета» | Откроется форма со списком записанных на процедуру пациентов на текущую дату |
2. | Нажать на пиктограмму рядом с ФИО пациента | Откроется окно с процедурным листом |
3. | Сделать отметку о прохождении и нажать «ОК» | Произойдет возврат к форме со списком записанных пациентов. Пиктограмма станет неактивной |
2.4.7.
Работа с системой пользователем «Работник аптеки»
Таблица 2.6.
№ п/п | Действие | Результат |
1. | Зарегистрироваться как пользователь «Работник аптеки» | Откроется форма со списком выписанных рецептов |
2. | Нажать на пиктограмму рядом с ФИО пациента | Откроется окно для заполения полей выдачи лекарства |
3. | Заполнить поля и нажать «ОК» | Произойдет возврат к форме со списком выписанных рецептов. Пиктограмма станет неактивной |
ИССЛЕДОВАТЕЛЬСКАЯ ЧАСТЬ