Проектирование WEB-портала на примере ГКП «Костанайская городская детская больница»
Статус непосредственно самой записи на приём, который может состоять из: открыта, завершена, платный приём. Если статус записи имеет состояние (завершена или платный приём), то талоны на запись к указанному специалисту не отображаются. В противном случае статус записи имеет состояние (открыта) и, следовательно, талоны отображаются в виде упорядоченного списка по датам приёма, начиная с ближайшей… Читать ещё >
Проектирование WEB-портала на примере ГКП «Костанайская городская детская больница» (реферат, курсовая, диплом, контрольная)
Министерство образования и науки Республики Казахстан Костанайский государственный университет им. А. Байтурсынова ДИПЛОМНАЯ РАБОТА на тему: «Проектирование WEB-портала на примере ГКП «Костанайская городская детская больница»
по специальности 5В60 200 — «Информатика»
Выполнил Д. Рюмин Научный руководитель А. Бегалин Костанай, 2014
- Введение
- 1. Техническое задание
- 1.1 Основания для разработки
- 1.2 Назначение и применение разработки
- 1.3 Требования к функциональным характеристикам
- 1.4 Требования к программному и аппаратному обеспечению
- 1.4.1 Требования к аппаратному обеспечению
- 1.4.2 Требования к программному обеспечению
- 1.5 Средства разработки портала
- 2. Описание программы
- 2.1 Структура портала
- 2.2 Описание программных модулей
- 2.3 Описание подключаемых файлов
- 3. Руководство пользователя
- 3.1 Запуск портала
- 3.2 Меню больничного портала
- 3.2.1 Электронная регистратура
- 3.2.2 Выданные талоны
- 3.2.4 Расписание поликлиник
- 3.2.5 Дежурные специалисты
- 3.2.6 Задать вопрос в режиме онлайн
- 3.3 Поиск талонов
- 3.4 Информационные разделы
- 3.4.1 Статистика, ответы на часто задаваемые вопросы
- 3.4.2 Контакты, список отказов к специалистам
- 3.4.3 Нормативно — правовые акты
- 3.4.4 Информация по подготовке к обследованиям
- 3.4.5 Наша жизнь, полезная информация
- 3.5 Подписка на рассылку уведомлений
- 3.6 Информация об администрации больницы
- 3.7 Административная панель
- 3.7.1 Административный вход
- 3.7.2 Вход для регистраторов
- Заключение
- Список использованных источников
На сегодняшний день наличие информации об организации в сети Internet является неотъемлемой частью деятельности организации. Это позволяет расширить круг интересующихся пользователей о деятельности больницы в сети, чему способствует World Wide Web, как часть информационных технологий.
Актуальность данной дипломной работы заключается в том, что автоматизация организационных процессов в сфере медицины с помощью IT-ресурсов, позволяет оптимизировать и унифицировать деятельность организаций здравоохранения.
Цель дипломной работы — создание WEB-портала на примере Государственного Коммунального Предприятия «Костанайская городская детская больница» с использованием технологии Asynchronous JavaScript and eXtensible Markup Language и библиотеки jQuery. На данном портале пользователи могут получить всю необходимую информацию от правильной подготовки к обследованию до расписания приема специалистов детской больницы и произвести запись на прием «онлайн».
При разработке портала требовалось решить следующие задачи:
— Разработать наиболее упрошенную онлайн запись;
— Составить методическое руководство по разработке и использованию портала;
— Реализовать возможность выкладывания свободных талонов, подтверждение ожидаемых талонов;
— Возможность предоставления онлайн-консультаций;
— Оповещение о новостях больницы, о новой доступной записи;
— Удобность, нетребовательность к ресурсам.
Объектом исследования является ГКП «Костанайская городская детская больница», предметом — портал записи на приём к специалистам узких специальностей.
Текущая версия портала была разработана по заказу Управления здравоохранения акимата Костанайской области с последующем внедрением в его интернет-ресурсы.
Новизна дипломной работы — заключается в использовании технологии AJAX, которая позволяет посылать асинхронные запросы к серверу без перезагрузки портала.
Практическая значимость дипломной работы заключается в оптимизации работы регистратуры, а также исключения очередей у специалистов, оказывающих медицинские услуги.
1. Техническое задание
1.1 Основания для разработки
Основаниями для разработки проекта ГКП «Костанайская городская детская больница» послужили следующие факторы:
? Отсутствие больничного портала на запись детей к специалистам;
? Отсутствие медицинских консультаций в режиме реального времени;
? Отсутствие доступного электронного архива посещений специалистов, так как имеются только защищённые порталы под эгидой EISZ (Единой Информационной Системы Здравоохранения) в частности http://bg.eisz.kz/ (Портал Бюро Госпитализации), а также http://rpn.eisz.kz/ (Регистр прикреплённого населения);
? Отсутствие получения необходимой информации перед функциональным диагностическим обследованием;
? Необходимость в получение информации перед сдачей анализов в лабораторию;
? Отсутствие новостной рассылки.
В связи со всеми вышеперечисленными причинами, разработан WEB-портал, в котором, по запросам посетителей, регулярно добавляется та или иная информация.
Первичной задачей данной дипломной работы является предоставление качественной и необходимой информации об оказании больничных услуг, осуществление упрощенной записи к специалистам.
1.2 Назначение и применение разработки
WEB-портал ГКП «Костанайская городская детская больница» рассчитан для тех пользователей, которые нуждаются в проверенной медицинской информации, кому необходим наиболее правдивый результат. Для детей часто болеющих, нуждающихся в необходимом оздоровлении. Портал позволяет отслеживать опубликования новой информации.
Применение данного Web портала позволяет достаточно быстро записать на прием к нужному врачу, получить ответ на интересующий вопрос квалифицированного специалиста, а также на портале имеется возможность просмотреть выданные талоны, которые недоступны для просмотра на государственном портале http://app.eisz.kz.
В результате появления портала наблюдались такие улучшения оказания услуг как:
? Обслуживание гораздо большего количества больных детей, как по телефону, так и электронной записи;
? Разгрузка телефонной линии, увеличение качество предоставляемой информации;
? Просмотр категорий специалистов;
? Отправка статистических данных напрямую в РИАЦ (Региональный информационно-аналитический центр).
1.3 Требования к функциональным характеристикам
При разработке портала к нему были предъявлены следующие требования:
? Пользователь должен доступно и своевременно получать необходимую ему информацию;
? Автоматизированная система поиска талонов, которая позволяет находить талоны, независимо от их статуса. Поиск должен работать корректно;
? Синхронизация статусов талонов, без перезагрузки портала;
? Надёжная защита от некорректного ввода данных;
? Доступ к учетным записям в базе данных должен быть доступным для определенных пользователей различного статуса;
? Возможность пользователя как записаться на прием, так и самовольно отменить прием;
? Архитектура базы данных должна состоять из таблиц связанных между собой.
1.4 Требования к программному и аппаратному обеспечению
1.4.1 Требования к аппаратному обеспечению
Для работы с WEB-порталом требуются компьютеры с характеристиками, приведенными в таблицах 1, 2.
Таблица 1 Минимальные аппаратные характеристики рабочей станции
Рабочая станция | Процессор | 1,2 GHz | |
ОЗУ | 512 MB | ||
Жесткий диск | 30 GB | ||
Сетевой адаптер | Ethernet 100 Mbit/s | ||
Таблица 2 Рекомендуемые аппаратные характеристики рабочей станции
Рабочая станция | Процессор | 3,0 GHz | |
ОЗУ | 2048 MB | ||
Жесткий диск | 60 GB | ||
Сетевой адаптер | Ethernet 100 Mbit/s | ||
1.4.2 Требования к программному обеспечению
Для работы с WEB-порталом требуется наличие установленного программного обеспечения, приведенного в таблицах 3, 4.
Таблица 3 Минимальные характеристики программного обеспечения
Рабочая станция | Браузер | Firefox 12.0+ | |
Google Chrome 5.0+ | |||
Opera 12.0+ | |||
Таблица 4 Рекомендуемые характеристики программного обеспечения
Рабочая станция | Браузер | Firefox 24.0+ | |
Google Chrome 30.0+ | |||
Opera 15.0+ | |||
Internet Explorer 11.0+ | |||
1.5 Средства разработки портала
Основным инструментом создания WEB-портала ГКП «Костанайская городская детская больница» является распространённый язык программирования PHP. Достоинствами данного инструмента являются: бесплатная установка, внедряемость в HTML, взаимодействие с клиентскими языками и библиотеками, поддержка всех современных WEB-серверов, а также Баз Данных, которые в свою очередь состоят из отдельных расширений. Данные расширения вынесены из ядра в конфигурационный файл — это способствует простоте подключения или отключения и разгрузке ядра.
Дополнительными инструментами создания WEB-портала являются Java-Script [6], AJAX [2], библиотека jQuery [1], MySQL. Java-Script и библиотека jQuery, предназначены для обработки данных непосредственно на клиентских машинах пользователей, с помощью которых осуществляется передача данных в базу MySQL через асинхронную технологию AJAX.
Непосредственно само программирование осуществляется в редакторе Sublime Text 3. Редактор постоянно обновляется, что служит к его усовершенствованию.
Данный редактор имеет минималистичный дизайн, но в тоже время включает в себя подсветку синтаксиса, полноэкранный режим, мини карту, мульти панель, автоматическое сохранение (даже при выходе из системы).
Однако главным удобством данного редактора является его умение работать с текстом, который состоит из кода и комментарий. Любой фрагмент текста можно сохранить в сниппет с присвоением псевдонима предварительно проверив на орфографические ошибки, после чего, обращение происходит через псевдоним, что в свою очередь упрощает работу с одним и тем же текстом. Если вдруг разработчик не найдёт, тот функционал в котором он нуждается, то имеется возможность расширения собственными плагинами.
2. Описание программы
2.1 Структура портала
WEB — портал КГП «Костанайская городская детская больница» состоит из четырнадцати основных файлов, четыре из которых имеют семь взаимосвязанных файлов, в соответствии со схемой 1.
Схема 1. Структура портала
2.2 Описание программных модулей
Модуль «Электронная регистратура» — это отдельный файл, который обрабатывается интерпретатором PHP и служит роутером для отображения персональных страниц специалистов с возможностью записи на приём.
Модуль состоит из подключаемых файлов и функции роутера:
include ('bd.php'); /* Соединение с БД */
? include ('404_error.php'); /* Проверка модуля на ошибки */
? include ('components/shapka.php'); /* Заголовочная часть */
? include ('components/line.php'); /* Разделительная линия */
? include ('components/menu.php'); /* Меню */
? include ('components/line.php'); /* Разделительная линия */
? include ('components/search.php'); /* Поиск талонов */
? include ('components/line.php'); /* Разделительная линия */
$id_doctor = $row['doc_id']; /* Присвоить переменной значение идентификатора доктора */
$id_doctor_time = mysql_query («SELECT id_doctor FROM time WHERE id_doctor='$id_doctor'»); /* Выбрать строки из таблицы времени где идентификатор доктора равен $id_doctor */
function pravblokLblag () {/* Формирование текущий специалистов, которые относятся к текущему модулю */
$(«#pravblokLblag»).load («two_load.php»); /* Парсинг */
}
setInterval (pravblokLblag, 10 000); /* Интервал парсинга */
pravblokLblag (); /* Запуск функции */
/* Парсинг талонов специалистов */
$result4 = mysql_query («SELECT * FROM date_otpravka_uved WHERE DATE_FORMAT (date_tek, '%d.%m.%Y')=DATE_FORMAT (now (), '%d.%m.%Y')»); /* Выбрать все талоны специалистов */
if (mysql_num_rows ($result4) == 0) { /* Если в выборке NULL */
$result3 = mysql_query («INSERT INTO date_otpravka_uved (date_tek) VALUES (NOW ())»); /* Вставить текущую дату, для работы парсинга на следующий день в указанное время */
}
if (mysql_num_rows ($result4) > 0) { /* Если в выборке не NULL */
$result5 = mysql_query («SELECT * FROM date_otpravka_uved WHERE DATE_FORMAT (date_tek, '%d.%m.%Y')=DATE_FORMAT (now (), '%d.%m.%Y')»);
$query_array4 = mysql_fetch_array ($result5); /* Выбрать талоны */
}
$query = mysql_query («SELECT *, DATE_FORMAT (talon_doctor.date_talon, '%W %e %M') as date_talon, DATE_FORMAT (talon_doctor.date_talon, '%H:%i') as date_talon_two FROM talon_doctor, doctor, dlpodrazdeleniya, special WHERE talon_status=5 AND talon_doctor.id_doctor=doctor.id_doctor AND doctor. id_vihod=dlpodrazdeleniya.id_vihod AND doctor. special=special.special»); /* Выбрать всех специалистов */
if (mysql_num_rows ($query) == 0) { /* Если в выборке NULL */ }
if (mysql_num_rows ($query) > 0) { /* Если в выборке не NULL */
$query_array = mysql_fetch_array ($query); /* Массив данных */
if (date ('" d.m.Y H: i:s') > date ('" d.m.Y 18:00:00')) { /* Если текущее время больше 18 часов вечера */
$a = $query_array4['int_date']; /* Временная метка */
if ($a == 0) { /* Если метка больше 0 */
$request2 = mysql_query («UPDATE date_otpravka_uved set int_date=1 WHERE DATE_FORMAT (date_tek, '%d.%m.%Y')=DATE_FORMAT (now (), '%d.%m.%Y')»);
include («subscribtion_two.php»); /* Отправить сообщение всем активированным подписчикам */
if ($a == 1) { /* Если метка равна 1 */ }
if (date ('" d.m.Y H: i:s') > date ('" d.m.Y 21:00:00')) { /* Если текущее время больше 9 вечера */
$request7 = mysql_query («UPDATE talon_doctor set talon_status=0 WHERE talon_status=5»); /* Талоны доступны к записи */
}
Модуль «Выданные талоны» — это отдельный файл, который обрабатывается интерпретатором PHP и предназначен, для создания архива подтверждённых талонов на приём к специалистам.
Модуль состоит из подключаемых файлов, а также функции архива:
? include ('bd.php'); /* Соединение с БД */
? include ('404_error.php'); /* Проверка модуля на ошибки */
? include ('components/shapka.php'); /* Заголовочная часть */
? include ('components/line.php'); /* Разделительная линия */
? include ('components/menu.php'); /* Меню */
? include ('components/line.php'); /* Разделительная линия */
? include ('components/search.php'); /* Поиск талонов */
? include ('components/line.php'); /* Разделительная линия */
if (isset ($_GET['page_doctor'])) {/* Если существует переменная $_GET['page_doctor'] которая передана через метод GET, то записать этот метод в переменную $page_doctor */
$page_doctor = $_GET['page_doctor'];
$page_doctor_array = explode («_» ,$page_doctor); /* Разбивка */
$page_doctor1 = $page_doctor_array[0]; /* Переменная массива */
$page_doctor2 = $page_doctor_array[1]; /* Переменная массива */
}
/* Массив из месяцев года */
$monthes = array (
'01' => 'Январь',
'02' => 'Февраль',
'03' => 'Март',
'04' => 'Апрель',
'05' => 'Май',
'06' => 'Июнь',
'07' => 'Июль',
'08' => 'Август',
'09' => 'Сентябрь',
'10' => 'Октябрь',
'11' => 'Ноябрь',
'12' => 'Декабрь'
);
$arhiv = mysql_query («SELECT DISTINCT left (`date_talon`, 7) AS date_talon FROM talon_doctor WHERE id_doctor='$page_doctor1' and talon_status='2' ORDER BY date_talon DESC»); «); /* Занести в переменную массив с выданными талонами, предварительно отсортировав по дате выдачи */
while ($arhiv_itog = mysql_fetch_assoc ($arhiv)) { /* Цикл архива */
/* Вывод выданных талонов по месяцам */
$i++; /* Счётчик */
$date_format = explode («-» ,$arhiv_itog['date_talon']); /* Разбивка даты талонов по — */
$date_title = $arhiv_itog['date_talon']; /* Заголовок */
$date_begin = $date_title; /* Начало месяца */
$date_end = $date_title; /* Конец месяца */
$date_begin = $date_begin." -01″; /* Считать началом -01 */
$date_end = $date_end." -31″; /* Считать концом -31 */
SQL запрос к базе данных WEB-портала, который позволяет сгенерировать архив выданных талонов, исключительно для выбранного специалиста.
$arhiv2 = mysql_query («SELECT *, DATE_FORMAT (date_talon, '%W %e %M') as date_talon, REPLACE (TIMEDIFF (talon_doctor.date_talon, NOW ()), ':','') as end_of_activation_result
FROM talon_doctor, doctor, talon_time, talon_family, talon_status
WHERE talon_doctor.id_doctor='$page_doctor1' AND doctor. id_doctor='$page_doctor1' talon_doctor.date_talon BETWEEN '{$date_begin}' AND '{$date_end}' AND talon_doctor.talon_status='2' ORDER BY talon_doctor.date_talon DESC"); /* Архив талонов */
$arhiv_itog5 = mysql_fetch_array ($arhiv2); /* Массив архива */
}
Модуль «Ожидаемые талоны» — это отдельный файл обрабатываемый интерпретатором PHP, который предназначен, для отображения ожидаемых талонов.
Модуль состоит из подключаемых файлов, а также SQL запроса на выборку ожидаемых талонов:
? include ('bd.php'); /* Соединение с БД */
? include ('404_error.php'); /* Проверка модуля на ошибки */
? include ('components/shapka.php'); /* Заголовочная часть */
? include ('components/line.php'); /* Разделительная линия */
? include ('components/menu.php'); /* Меню */
? include ('components/line.php'); /* Разделительная линия */
? include ('components/search.php'); /* Поиск талонов */
? include ('components/line.php'); /* Разделительная линия */
$text_oglav4 = mysql_query («SELECT *, DATE_FORMAT (talon_doctor.date_talon, '%W %e %M %Y') as date_talon FROM talon_doctor, doctor, talon_family, talon_time, talon_status WHERE id_vihod='$v_ojid' and talon_doctor.id_doctor=doctor.id_doctor and talon_doctor.talon_status='1' and talon_doctor.id_talon=talon_family.id_talon and talon_doctor.time_talon=talon_time.time_talon AND talon_status.talon_status=talon_doctor.talon_status ORDER BY talon_doctor.id_talon»); /* Занести в переменную массив с ожидаемыми талонами, предварительно отсортировав по идентификаторам докторов */
$text_oglav5 = mysql_fetch_array ($text_oglav4); /* Ассоциативный массив ожидаемых талонов */
while ($text_oglav5 = mysql_fetch_array ($text_oglav4)) {
/* Вывод ожидаемых талонов в виде информационного стека */
}
Модуль «Расписание» — это отдельный файл обрабатываемый интерпретатором PHP, который предназначен, для отображения расписания отделений.
Модуль состоит из подключаемых файлов, а также SQL запроса на выборку расписания:
? include ('bd.php'); /* Соединение с БД */
? include ('404_error.php'); /* Проверка модуля на ошибки */
? include ('components/shapka.php'); /* Заголовочная часть */
? include ('components/line.php'); /* Разделительная линия */
? include ('components/menu.php'); /* Меню */
? include ('components/line.php'); /* Разделительная линия */
? include ('components/search.php'); /* Поиск талонов */
? include ('components/line.php'); /* Разделительная линия */
$text_oglav = mysql_query («SELECT * FROM oglav_text WHERE id_vihod='$sched_array'»); «); /* Занести в переменную массив с ожидаемыми талонами, предварительно отсортировав по идентификаторам докторов */
$text_oglav_stroka = mysql_fetch_array ($text_oglav); /* Ассоциативный массив расписания */
for ($i=1; $i<=mysql_num_rows ($schedule); $i++) {/* Парсинг расписания с последующем выводом */
$schedule2 = mysql_fetch_array ($schedule); /* Предварительное распределение текущего блока с расписанием в виде ассоциативного массива */
if ($schedule2['doc_id'] == 463 || $schedule2['doc_id'] == 51 || $schedule2['doc_id'] == 45 || $schedule2['doc_id'] == 73 || $schedule2['doc_id'] == 5 || $schedule2['doc_id'] == 465 || $schedule2['doc_id'] == 1 || $schedule2['doc_id'] == 3 || $schedule2['doc_id'] == 7 || $schedule2['doc_id'] == 59 || $schedule2['doc_id'] == 77 || $schedule2['doc_id'] == 12 || $schedule2['doc_id'] == 74 || $schedule2['doc_id'] == 14 || $schedule2['doc_id'] == 466 AND $schedule2['doc_id'] == 2 AND $schedule2['doc_id'] == 4 AND $schedule2['doc_id'] == 6 AND $schedule2['doc_id'] == 8 AND $schedule2['doc_id'] == 9 AND $schedule2['doc_id'] == 10 AND $schedule2['doc_id'] == 468 AND $schedule2['doc_id'] == 470 AND $schedule2['doc_id'] == 74 AND $schedule2['doc_id'] == 469 AND $schedule2['doc_id'] == 11)
{ /* Отключенные специалисты */ }
}
Модуль «Вопрос онлайн» — это отдельный файл, который обрабатывается интерпретатором PHP, а затем отображается в виде полноценной страницы с формой отправки новых вопросов, а также блоками предыдущих вопросов.
Модуль состоит из подключаемых файлов и функций отправки нового вопроса с выводом предыдущих вопросов в виде отдельных блоков:
? include ('bd.php'); /* Соединение с БД */
? include ('404_error.php'); /* Проверка модуля на ошибки */
? include ('components/shapka.php'); /* Заголовочная часть */
? include ('components/line.php'); /* Разделительная линия */
? include ('components/menu.php'); /* Меню */
? include ('components/line.php'); /* Разделительная линия */
? include ('components/search.php'); /* Поиск талонов */
? include ('components/line.php'); /* Разделительная линия */
function knopka_zapisi_f () { /* Функция отправки вопроса*/
var name_reb_title = $('.name_reb'); /* Имя отправителя */
var name_reb_l_title = $.trim (name_reb_title.val ()).length; /* Сколько символов было введено в виде имени, предварительно удалив пробелы от начала и конца строки */
var name_reb_val_title = name_reb_title.val (); /* Текст вопроса */
var vopros_title = $('.vopros'); /* Вопрос */
var vopros_l_title = $.trim (vopros_title.val ()).length; /* Сколько символов было введено в виде вопроса, предварительно удалив пробелы от начала и конца строки */
var vopros_val_title = vopros_title.val ();/* Вопрос */
var mail_reb_title = $(«.mail_reb»); /* Емайл отправителя */
var mail_reb_l_title = $.trim (mail_reb_title.val ()).length; /* Сколько символов было введено в виде емайла, предварительно удалив пробелы от начала и конца строки */
var mail_reb_val_title = mail_reb_title.val (); /* Емайл */
var zap_tal_id = $(«.zap_tal_id2»).text (); /* Идентификатор */
Проверка всех заполненных полей на правильность ввода, что позволит избежать SQL-инъекций на стороне клиентской машине, а также передать серверу обработанные данные.
if (name_reb_l_title > 1 && vopros_l_title > 9 && vopros_l_title < 1001 && mail_reb_l_title > 0 && /^([a-zA-Z0−9])+([.a-zA-Z0−9_-])*@([a-zA-Z0−9_-])+(. a-zA-Z0−9_-]+)*.([a-zA-Z]{2,6})$/i.test (mail_reb_val_title) == true) {
function block_hidden_span_ajax () { /* Функция срабатывает перед отправкой AJAX запроса на сервер */
$(«.block_hidden_span span»).text («Идёт отправка вопроса …»);
block_hidden_first ();
$(«.block_hidden_img img»).fadeOut (0); /* Скрытие кнопки закрытия отправки */
$(«.block_hidden»).fadeIn (0); /* Показ блокировки на время отправки запроса на сервер */
}
AJAX запрос к серверу WEB-портала, который позволит отправить вопрос пользователя, без перезагрузки модуля «Вопрос онлайн», что в свою очередь приведёт к снижению времени отправки вопроса, а также уменьшению потребляемых ресурсов [9][10].
$.ajax ({ /* AJAX запрос */
send: block_hidden_span_ajax (), /* Исполнение функции блокировки */
type: «POST», /* Запрос посылается методом POST */
url: «components/vopros_v_obrabotke.php», /* Запрос посылается в указанный файл, на обработку и по необходимости исполнение */
data: ({ /* Посылаемые значения */
" name_reb_val_title": name_reb_val_title, /* Имя */
" vopros_val_title": vopros_val_title, /* Вопрос */
" mail_reb_val_title": mail_reb_val_title, /* Емайл */
" zap_tal_id": zap_tal_id /* ID вопроса */
}),
dataType: «html», /* Тип */
success: (function (ajax_subscription_site2) { /* Ответ от сервера в виде символа */
Если при отправке вопроса возникла фатальная ошибка, то сработает уведомление с подробным описанием ошибки.
if (ajax_subscription_site2 == 0) {
$(«.block_hidden_span span»).text («Произошла ошибка вопрос не отправлен»); /* Уведомление пользователя */
block_hidden_first ();
$(«.block_hidden_img img»).fadeIn (0); /* Показ уведомления */
}
Если при отправке вопроса ошибок не возникло, то будет произведена очистка полей от устаревших данных.
if (ajax_subscription_site2 == 1) {
$(«.block_hidden_span span»).html («Вопрос успешно отправлен на проверку модератору»); /* Уведомление об успешной отправкой вопроса */
block_hidden_first ();
name_reb_title.val (««); /* Очистка поля */
vopros_title.val (««); /* Очистка поля */
mail_reb_title.val (««); /* Очистка поля */
$(«.name_question_span»).text («Введите Ваше имя!»);
$(«.vopros_question_span»).text («Введите Ваш вопрос!»);
$(«.mail_question_span»).text («На указанный емайл будет выслано уведомление об ответе на Ваш вопрос!»); /* На указанный при отправке вопроса электронный адрес было выслано сообщение */
$(«.block_hidden_img img»).fadeIn (0, load_vopros_chislo ()); /* Уведомление об успешном завершении работы модуля, а также сбросе всех полей в исходное состояние */
}
})
});
}
else { /* Если проверка полей не пройдена */
$(«.block_hidden_span span»).text («Пожалуйста заполните все необходимые поля …»); /* Подсказка на заполнение полей */
block_hidden_first ();
$(«.block_hidden»).fadeIn (0); /* Показ подсказки */
}
}
$(«.knopka_zapisi»).on («click», function (knopka_zapisi) { /* При клике на кнопку отправить вопрос, отключается действие по умолчанию, после чего происходит отправка вопроса в базу */
knopka_zapisi.preventDefault ();
knopka_zapisi_f ();
});
Модуль «Дежурные специалисты» — это отдельный файл, который обрабатывается интерпретатором PHP, а затем отображается в виде полноценной страницы с дежурными специалистами.
Модуль состоит из подключаемых файлов и функции загрузки дежурных специалистов [12]:
? include ('bd.php'); /* Соединение с БД */
? include ('404_error.php'); /* Проверка модуля на ошибки */
? include ('components/shapka.php'); /* Заголовочная часть */
? include ('components/line.php'); /* Разделительная линия */
? include ('components/menu.php'); /* Меню */
? include ('components/line.php'); /* Разделительная линия */
? include ('components/search.php'); /* Поиск талонов */
? include ('components/line.php'); /* Разделительная линия */
function load_duty () { /* Функция загрузки дежурных специалистов */
$(«.dytu»).load («components/duty.php», function (){ /* Парсинг информации */
$(«.error_block»).fadeOut (0, function (){ /* Скрытие блока с уведомлением, что дежурных врачей нет */
$(«.error_block:first»).fadeIn (0); /* Показ блока с новыми дежурными врачами */
});
}
load_duty (); /* Запуск функции */
setInterval (load_duty, 15 000); /* Интервал парсинга */
SQL запрос к базе данных WEB-портала, который позволяет выбрать всех дежурных специалистов, с предварительной сортировкой по дате дежурства.
$dej_vrach = mysql_query («SELECT duty. id_doctor as d_id_doc,
DATE_FORMAT (duty.date, '%e %M %Y') as d_date,
DATE_FORMAT (duty.date, '%j') as d1_date,
duty.time_n as d_time_n, duty. time_k as d_time_k,
doctor.id_doctor as doc_id, doctor. first as first,
doctor.last as last, doctor. middle as middle,
doctor.special as doc_special,
special.special as sp_special, special. spec_name as spec_name
FROM duty, doctor, special
WHERE doctor. id_doctor = duty. id_doctor AND doctor. special = special. special ORDER BY duty. date DESC");
if (mysql_num_rows ($dej_vrach) > 0) { /* Если имеется хоть один дежурный специалист */
$mass_dej_vrach = mysql_fetch_array ($dej_vrach); /* Ассоциативный массив дежурный специалистов */
while ($mass_dej_vrach = mysql_fetch_array ($dej_vrach)) /* Вывод дежурных специалистов, пока массив не окажется пустым */
Модуль «Ответы на часто задаваемые вопросы» — это отдельный файл, который обрабатывается интерпретатором PHP, а затем отображается в виде полноценной страницы с ответами на часто задаваемые вопросы.
Модуль состоит из подключаемых файлов и функции загрузки ответов [14]:
? include ('bd.php'); /* Соединение с БД */
? include ('404_error.php'); /* Проверка модуля на ошибки */
? include ('components/shapka.php'); /* Заголовочная часть */
? include ('components/line.php'); /* Разделительная линия */
? include ('components/menu.php'); /* Меню */
? include ('components/line.php'); /* Разделительная линия */
? include ('components/search.php'); /* Поиск талонов */
? include ('components/line.php'); /* Разделительная линия */
function load_question () { /* Функция загрузки ответов */
$(«.question_load»).load («components/question_site.php», function (){
/* Парсинг ответов */
});
} load_question (); /* Запуск функции */
setInterval (load_question, 900 000); /* Интервал парсинга */
портал программный модуль электронный
Модуль «Статистика» — это отдельный файл, который обрабатывается интерпретатором PHP, а затем отображается в виде полноценной страницы со статистическими данными.
Модуль состоит из подключаемых файлов и функции загрузки статистики:
? include ('bd.php'); /* Соединение с БД */
? include ('404_error.php'); /* Проверка модуля на ошибки */
? include ('components/shapka.php'); /* Заголовочная часть */
? include ('components/line.php'); /* Разделительная линия */
? include ('components/menu.php'); /* Меню */
? include ('components/line.php'); /* Разделительная линия */
? include ('components/search.php'); /* Поиск талонов */
? include ('components/line.php'); /* Разделительная линия */
function load_s_sta () { /* Функция загрузки статистики */
$(«.stat_ka»).load («components/statistika_site.php», function (){
/* Парсинг статистики */
});
}
load_s_sta (); /* Запуск функции */
setInterval (load_s_sta, 15 000); /* Интервал парсинга */
Модуль «Контакты» — это отдельный файл, который обрабатывается интерпретатором PHP, а затем отображается в виде полноценной страницы с контактными данными.
Модуль состоит из подключаемых файлов и функции загрузки контактов:
? include ('bd.php'); /* Соединение с БД */
? include ('404_error.php'); /* Проверка модуля на ошибки */
? include ('components/shapka.php'); /* Заголовочная часть */
? include ('components/line.php'); /* Разделительная линия */
? include ('components/menu.php'); /* Меню */
? include ('components/line.php'); /* Разделительная линия */
? include ('components/search.php'); /* Поиск талонов */
? include ('components/line.php'); /* Разделительная линия */
function load_contact () { /* Функция загрузки контактов */
$(«.contacts»).load («components/contact_site.php», function (){
/* Парсинг контактов */
});
}
load_contact (); /* Запуск функции */
setInterval (load_contact, 900 000); /* Интервал парсинга */
Модуль «Список отказов к специалистам» — это отдельный файл, который обрабатывается интерпретатором PHP, а затем отображается в виде полноценной страницы с списком отказов на приём.
Модуль состоит из подключаемых файлов и функций вывода списка отказов:
? include ('bd.php'); /* Соединение с БД */
? include ('404_error.php'); /* Проверка модуля на ошибки */
? include ('components/shapka.php'); /* Заголовочная часть */
? include ('components/line.php'); /* Разделительная линия */
? include ('components/menu.php'); /* Меню */
? include ('components/line.php'); /* Разделительная линия */
? include ('components/search.php'); /* Поиск талонов */
? include ('components/line.php'); /* Разделительная линия */
$arhiv2 = mysql_query («SELECT *, DATE_FORMAT (date_zan, '%W %e %M %Y года в %k:%i') as date_zan FROM otkazi WHERE date_zan BETWEEN '{$date_begin}' AND '{$date_end}' ORDER BY otkazi. date_zan DESC»); /* Занести в переменную массив с отказами в записи на приём, предварительно отсортировав по дате отказа */
$arhiv_itog5 = mysql_fetch_array ($arhiv2); /* Ассоциативный массив */
while ($arhiv_itog5 = mysql_fetch_array ($arhiv2)) { /* Вывод информации пока массив с данными не пуст */
/* Вывод данных */
}
Модуль «Нормативно — правовые акты» — это отдельный файл, который обрабатывается интерпретатором PHP, а затем отображается в виде полноценной страницы с нормативно — правовыми актами.
Модуль состоит из подключаемых файлов и функции загрузки нормативно — правовых актов:
? include ('bd.php'); /* Соединение с БД */
? include ('404_error.php'); /* Проверка модуля на ошибки */
? include ('components/shapka.php'); /* Заголовочная часть */
? include ('components/line.php'); /* Разделительная линия */
? include ('components/menu.php'); /* Меню */
? include ('components/line.php'); /* Разделительная линия */
? include ('components/search.php'); /* Поиск талонов */
? include ('components/line.php'); /* Разделительная линия */
function load_n_p_a () { /* Функция загрузки нормативно — правовых актов */
$(«.question_n_p_a»).load («components/question_n_p_a.php», function (){
/* Парсинг нормативно — правовых актов */
});
}
load_n_p_a (); /* Запуск функции */
Модуль «Информация о подготовке к обследованиям» — это отдельный файл, который обрабатывается интерпретатором PHP, а затем отображается в виде полноценной страницы с информацией по подготовке к обследованиям.
Модуль состоит из подключаемых файлов и функции загрузки информации по подготовке к обследованиям:
? include ('bd.php'); /* Соединение с БД */
? include ('404_error.php'); /* Проверка модуля на ошибки */
? include ('components/shapka.php'); /* Заголовочная часть */
? include ('components/line.php'); /* Разделительная линия */
? include ('components/menu.php'); /* Меню */
? include ('components/line.php'); /* Разделительная линия */
? include ('components/search.php'); /* Поиск талонов */
? include ('components/line.php'); /* Разделительная линия */
function load_article () { /* Функция загрузки информации */
$(«.question_article»).load («components/question_article_prof.php», function (){ /* Парсинг информации */ });}
load_article (); /* Запуск функции */
$article = mysql_query («SELECT *, DATE_FORMAT (date_article_question, '%d %M %Y в %H:%i') as d_a_q FROM article_professionals ORDER BY id_article»); /* Выборка всей информации по подготовке к обследованиям */
if (mysql_num_rows ($article) == 0) { /* Если результат выборки равен NULL */
echo «Данный раздел готовится к публикованию» ;
}
if (mysql_num_rows ($article) > 0) { /* Если есть хоть одна информация по подготовке к обследованию */
$article_array = mysql_fetch_array ($article); /* Ассоциативный массив с информацией */
do { /* Выполнять пока есть информация в массиве */
Генерируемые HTML теги, которые предназначены для вывода информации по подготовке к обследованиям в виде отдельных блочных элементов страницы.
Внутренний блочный элемент, позволяющий расположить на странице идентификатор информации.
№ = $article_array['id_article'] ?>
= $article_array['author_article'] ?>
Внутренний блочный элемент, позволяющий расположить на странице информационную заголовочную часть.
= $article_array[" question_article" ] ?>
Прочитать статью целиком
Внутренний блочный элемент, позволяющий расположить на странице дату опубликования информации.
Дата опубликования статьи
= $article_array[" d_a_q" ] ?>
Внутренний блочный элемент, позволяющий расположить на странице полную информацию касательно правильной подготовке к обследованиям.
= $article_array[" otvet_article" ] ?>
}
while ($article_array = mysql_fetch_array ($article)); /* Вывод информации по подготовке к обследованию */
}
Модуль «Наша жизнь» — это отдельный файл, который обрабатывается интерпретатором PHP, а затем отображается в виде полноценной страницы с информацией о жизни внутри больницы.
Модуль состоит из подключаемых файлов и функции загрузки информации:
? include ('bd.php'); /* Соединение с БД */
? include ('404_error.php'); /* Проверка модуля на ошибки */
? include ('components/shapka.php'); /* Заголовочная часть */
? include ('components/line.php'); /* Разделительная линия */
? include ('components/menu.php'); /* Меню */
? include ('components/line.php'); /* Разделительная линия */
? include ('components/search.php'); /* Поиск талонов */
? include ('components/line.php'); /* Разделительная линия */
function load_our_life () { /* Функция загрузки информации */
$(«.question_our_life»).load («components/question_our_life.php», function (){ /* Парсинг информации */ });
}
load_our_life (); /* Запуск функции */
$our_life = mysql_query («SELECT *, DATE_FORMAT (date_faq_question, '%d %M %Y в %H:%i') as d_f_q FROM our_life ORDER BY id_n_p_a»); /* Выборка всех статей */
if (mysql_num_rows ($our_life) == 0) { /* Если результат выборки равен NULL */
echo «Данный раздел готовится к публикованию» ;
}
if (mysql_num_rows ($our_life) > 0) { /* Если есть хоть одна статья */
$our_life_array = mysql_fetch_array ($our_life); /* Ассоциативный массив со статьями */
do { /* Выполнять пока есть статьи в массиве */
Генерируемые HTML теги, которые предназначены для вывода статей о жизни больницы в виде отдельных блочных элементов страницы.
Внутренний блочный элемент, позволяющий расположить на странице идентификатор статьи.
№ = $our_life_array['id_n_p_a'] ?>
Автор: = $our_life_array['author'] ?>
Внутренний блочный элемент, позволяющий расположить на странице заголовочную часть статьи.
= $our_life_array[" question_n_p_a" ] ?>
Прочитать статью целиком
Внутренний блочный элемент, позволяющий расположить на странице дату опубликования статьи.
Дата опубликования статью = $our_life_array[" d_f_q" ] ?>
Внутренний блочный элемент, позволяющий расположить на странице статьи в развёрнутом варианте.
= $our_life_array[" otvet_n_p_a" ] ?>
}
while ($our_life_array = mysql_fetch_array ($our_life)); /* Отображение статей о жизни больницы */
}
Модуль «Полезная информация» — это отдельный файл, который обрабатывается интерпретатором PHP, а затем отображается в виде полноценной страницы с полезной информацией.
Модуль состоит из подключаемых файлов и функции загрузки информации:
? include ('bd.php'); /* Соединение с БД */
? include ('404_error.php'); /* Проверка модуля на ошибки */
? include ('components/shapka.php'); /* Заголовочная часть */
? include ('components/line.php'); /* Разделительная линия */
? include ('components/menu.php'); /* Меню */
? include ('components/line.php'); /* Разделительная линия */
? include ('components/search.php'); /* Поиск талонов */
? include ('components/line.php'); /* Разделительная линия */
function helpful_information () { /* Функция загрузки информации */
$(«.helpful_information»).load («components/helpful_information.php», function (){
/* Парсинг информации */
});
}
helpful_information (); /* Запуск функции */
$helpful_information = mysql_query («SELECT *, DATE_FORMAT (date_faq_question, '%d %M %Y в %H:%i') as d_f_q FROM helpful_information ORDER BY id_n_p_a»); /* Выборка всей полезной информации */
if (mysql_num_rows ($helpful_information) == 0) { /* Если полезная информация не добавлена в базу данных */
echo «Данный раздел готовится к публикованию» ;
}
if (mysql_num_rows ($helpful_information) > 0) { /* Если есть хоть одна полезная информация */
$helpful_information_array = mysql_fetch_array ($helpful_information); /* Ассоциативный массив с полезной информацией */
do { /* Выполнять пока есть полезная информация в массиве */
Генерируемые HTML теги, которые предназначены для вывода полезной информации в виде отдельных блочных элементов страницы.
Внутренний блочный элемент, позволяющий расположить на странице идентификатор информации.
№ = $helpful_information_array['id_n_p_a'] ?>
Автор: = $helpful_information_array['author'] ?>
Внутренний блочный элемент, позволяющий расположить на странице информационную заголовочную часть.
= $helpful_information_array[" question_n_p_a" ] ?>
Прочитать информацию целиком
Внутренний блочный элемент, позволяющий расположить на странице дату опубликования полезной информации.
Дата опубликования информации = $helpful_information_array[" d_f_q" ] ?>
Внутренний блочный элемент, позволяющий расположить на странице полезную информацию в развёрнутом варианте.
= $helpful_information_array[" otvet_n_p_a" ] ?>
}
while ($helpful_information_array = mysql_fetch_array ($helpful_information)); /* Отображение полезной информации */
}
2.3 Описание подключаемых файлов
Файл соединения с базой данных — это отдельный файл, который подключается к основным модулям портала [16]:
$db = mysql_connect («localhost» ," root" ," «) or die («Проблемы у нашего хостинг-провайдера! Как только проблемы будут решены сайт возобновит свою работу «.mysql_error ()); /* Создаётся переменная $db соединения с БД, в противном случае будет сгенерирована фатальная ошибка с текстом ошибки */
mysql_select_db («kostdgb «,$db) or die («Нет соединения с БД» .mysql_error ()); /* Подключение к нужной БД, если БД не найдена, будет сгенерирована фатальная ошибка с текстом ошибки */
/* Устанавливается кодировка, в данном случае русская кодировка */
mysql_query ('SET CHARACTER SET utf8');
mysql_query ('SET NAMES utf8');
/* Установка русской локали соединения */
mysql_query («SET lc_time_names = 'ru_RU'») ;
Файл проверки модулей на ошибки — это отдельный файл, который подключается к основным модулям портала [17]:
$zap_priom = mysql_query («SELECT * FROM dlpodrazdeleniya WHERE podrazdelenie_v=1», $db); /* Проверка на ошибки файл меню, раздел «Записаться на приём» -> «Запись на приём», ошибка в файле с меню */
if (!$zap_priom) { /* Парсер ошибки */ }
if (mysql_num_rows ($zap_priom) == 0) { /* Парсер ошибки */ }
$podrazdeleniya = mysql_query («SELECT * FROM dlpodrazdeleniya WHERE podrazdelenie_v=1», $db); /* Проверка на ошибки файл меню, раздел «Записаться на приём» -> «Выданные талоны», ошибка в файле с меню */
if (!$podrazdeleniya) { /* Парсер ошибки */ }
if (mysql_num_rows ($podrazdeleniya) == 0) { /* Парсер ошибки */ }
$ojid = mysql_query («SELECT * FROM dlpodrazdeleniya WHERE podrazdelenie_v=1»); /* Проверка на ошибки файл меню, раздел «Записаться на приём» -> «Ожидаемые талоны», ошибка в файле с меню */
if (!$ojid) { /* Парсер ошибки */ }
if (mysql_num_rows ($ojid) == 0) { /* Парсер ошибки */ }
$schedule = mysql_query («SELECT * FROM dlpodrazdeleniya»); /* Проверка на ошибки файл меню, раздел «Расписание» */
if (!$schedule) { /* Парсер ошибки */ }
if (mysql_num_rows ($schedule) == 0)
{ /* Парсер ошибки */ }
Файл поиска талонов — это отдельный файл, который подключается к основным модулям портала: