Разработка информационной системы управления данными для медицинского центра СевКавГТУ, г. Ставрополь

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,77 Mb
  • Опубликовано:
    2011-06-29
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка информационной системы управления данными для медицинского центра СевКавГТУ, г. Ставрополь

ВВЕДЕНИЕ


Актуальность темы дипломного проекта обусловлена тем, что небольшие медицинские учреждения не могут использовать дорогостоящие программно-аппаратные комплексы, исходя из этого, разработка дешевой альтернативы электронной системы управления данными медицинского учреждения целесообразна.

Целью данного дипломного проекта является разработка программного комплекса, который позволяет вести медицинскую карту клиентов с историей болезней и посещений, списки флюорографии, справочники прививок и диагнозов, формировать некоторые виды отчетности, в том числе печать медицинской карты.

Дипломный проект состоит из введения, четырех разделов основной части пояснительной записки, заключения, библиографического списка и приложений.

В первом разделе пояснительной записки проводится результаты предпроектного обследования медицинского центра Северо-Кавказского государственного технического университета, г. Ставрополь. Выявляются проблемные ситуации и формулируются задачи проектирования.

Во втором разделе пояснительной записки рассмотрены вопросы реализации информационной системы «Medic». При разработке базы данных этой информационной системы использовалось PostgreSQL, а сама информационная система была реализована в Perl с использованием HTML-шаблонов.

В третьем разделе пояснительной записки рассматриваются вопросы информационного и программного обеспечения разработки, а также обоснованы требования к техническому обеспечению, гарантирующие нормальную работу разработанной информационной системы «Medic». Приводятся результаты тестирования программного продукта.

В четвертом разделе проведено технико-экономическое обоснование проекта. Рассчитаны показатели экономической эффективности его использования в условиях медицинского центра Северо-Кавказского государственного технического университета, г. Ставрополь.

В заключении подведены основные итоги дипломного проектирования и намечены перспективные направления дальнейшего развития его темы.

Библиографический список содержит перечень из 22 источников информации.

В приложениях к пояснительной записке представлены окна редактора медицинских карт, листинги основных модулей проекта и копии слайдов презентации.

1. РЕЗУЛЬТАТЫ ПРЕДПРОЕКТНОГО ОБСЛЕДОВАНИЯ МЕДИЦИНСКОГО ЦЕНТРА СЕВЕРО-КАВКАЗСКОГО ГОСУДАРСТВЕННОГО ТЕХНИЧЕСКОГО УНИВЕРСИТЕТА. ФОРМУЛИРОВКА ЗАДАЧ ПРОЕКТИРОВАНИЯ

1.1 Результаты предпроектного обследования

1.1.1 Объекты и методы проведения предпроектного обследования

В рамках темы дипломного проекта объектами обследования являются:

-    медицинский центр Северо-Кавказского государственного технического университета (СевКавГТУ);

-       функциональная структура медицинского центра;

-       состав процессов, протекающих в медицинском центре;

-       процедуры, входящие в состав процессов.

Выбранные методы проведения обследования медицинского центра СевКавГТУ приведены в таблице 1.1.

Таблица 1.1 - Методы организации проведения обследования

Критерии классификации методов организации проведения обследования

Выбранный метод

По цели проектирования

Локальное обследование

По числу исполнителей

Индивидуальное обследование

По степени охвата объекта

Сплошное обследование

По отношению к этапам

Последовательное обследование


Характеристика методов сбора информации, использованной в ходе прохождения преддипломной практики в медицинском центре СевКаГТУ, представлена в таблице 1.2.

Таблица 1.2 - Характеристика методов сбора материалов обследования

Название методов сбора материалов обследования

Характеристика методов

Силами исполнителей

Метод анализа операций

По числу исполнителей

Личное наблюдение

По степени охвата объекта

Беседы и консультации с директором, кредитными инспекторами

По отношению к этапам

Опрос должностных лиц на рабочих местах


В ходе прохождения преддипломной практики, в соответствие с задачами дипломного проектирования, были выбраны объекты, методы проведения обследования и методы сбора информации с целью получения достоверной информации, необходимой для текущего анализа деятельности медицинского центра.

1.1.2 Программа проведения обследования

Программа обследования медицинского центра СевКавГТУ представлена в таблице 1.3.

Таблица 1.3 - Программа обследования предприятия

Наименование вопроса

Источник информации

Получатель информации

1

2

3

Общие сведения о предприятии

Главный врач

Проектировщик Прохоров К. Д.

Организационная структура

Аналогично

Аналогично

Цели функционирования

Аналогично

Аналогично

Функционирование области деятельности

Заведующая регистратурой

Аналогично

Документооборот

Аналогично

Аналогично

Формы документов

Аналогично

Аналогично

Порядок создания и хранения документов

Аналогично

Аналогично

Наличие средств вычислительной техники и программного обеспечения

Аналогично

Аналогично

Характеристики существующей информационной системы

Аналогично

Аналогично

Технологии, методы и технические средства преобразования информации

Аналогично

Аналогично

Проблемные ситуации в работе информационной системы

Аналогично

Аналогично


План-график выполнения работ на стадии сбора материалов обследования представлен в таблице 1.4. Он разделен на девять этапов. Работы проводились в срок прохождения преддипломной практики. Дата начала обследования - 10.01.11 г., дата завершения обследования - 20.03.11 г.

Таблица 1.4 - План-график выполнения работ на стадии сбора материалов обследования медицинского центра

Наименование вопроса

Код работы

Исполнитель

Дата начала

Кол-во дней

Дата окончания

1

2

3

4

5

6

Общие сведения о предприятии

001

Проектировщик Прохоров К. Д.

10.01.11

3

12.01.11

Организационная структура

002

Аналогично

13.01.11

6

18.01.11

Цели функционирования

003

Аналогично

19.01.11

3

21.01.11

Функциональные области деятельности

004

Аналогично

22.01.11

5

26.01.11

Документооборот

005

Аналогично

27.01.11

5

31.01.11

Формы документов

006

Аналогично

01.02.11

5

05.02.11

Порядок создания и хранения документов

007

Аналогично

06.02.11

9

14.02.11

Наличие средств вычислительной техники и ПО

008

Аналогично

15.02.11

5

19.02.11

Характеристики существующей информационной системы

009

Аналогично

20.02.11

5

24.02.11

Технологии, методы и технические средства преобразования информации

010

Аналогично

25.02.11

4

28.02.11

Проблемные ситуации в работе информационной системы

011

Аналогично

1.02.11

5

06.03.11

Всего затрачено дней

55



В результате прохождения преддипломной практики были поэтапно изучены и проанализированы такие вопросы, как общая структура медицинского центра, организационная структура, цели его функционирования, документооборот, информационная система.

1.1.3 Результаты предпроектного обследования и их анализ

Общая характеристика. В 1971 году по приказу Совета Министров СССР в Ставрополе на базе филиала Краснодарского политехнического института образован Ставропольский политехнический институт, в состав которого вошли также Невинномысский и Черкесский УПК.

В начале 1992 года разработана программа перехода института в ранг технического университета, а в 1994 году приказом Комитета Российской Федерации по высшему образованию №524 от 26.05.94 Ставропольский политехнический институт преобразован в Ставропольский технический университет. Ввиду того, что Ставропольский технический университет являлся одним из ведущих вузов региона, единственным по своему профилю на Северном Кавказе, приказом Министерства высшего и профессионального образования Российской Федерации от 29.04.99 № 1180 он переименован в Северо-Кавказский государственный технический университет.

СевКавГТУ не только стал центром подготовки высококвалифицированных кадров для Северо-Кавказского региона, но и создал более благоприятные условия для укрепления добрососедских отношений между народами Северного Кавказа, способствуя стабилизации социально-экономической ситуации и общественного согласия в регионе.

СевКавГТУ является многопрофильным образовательно-научным комплексом с широко развитой инфраструктурой и современной материально-технической базой, обеспечивающим качественную подготовку специалистов по техническим и технологическим, естественнонаучным и естественнотехническим, экономико-управленческим и социально-гуманитарным специальностям для Ставропольского края, республик Северного Кавказа и других субъектов Российской Федерации.

Место нахождения СевКавГТУ: Россия, Ставропольский край, г. Ставрополь, проспект Кулакова, дом 2. Почтовый адрес: Россия, 355029, г. Ставрополь, проспект Кулакова, дом 2.

Медицинский центр является подразделением СевКавГТУ и проводит прием студентов, преподавателей и сотрудников, нуждающихся в квалифицированной медицинской помощи, а так же проводит регулярные медицинские комиссии и вакцинации.

.1.3.2 Организационная структура. Под организационной структурой управления понимается состав, взаимосвязь и соподчиненность совокупности организационных единиц, выполняющих различные функции по управлению организацией. Такая структура формируется исходя из состава, содержания и трудоемкости выполнения общих и специальных функций управления [15]. Организационно-управленческая структура СевКавГТУ имеет пирамидальное строение.

Имеется три уровня управления: верхний (высший), средний и оперативный (низший). Верхнему уровню управления соответствует организационно управленческая подсистема. Средний уровень управленческой структуры предоставляет функции входящие в обеспечивающую и производственную подсистемы. Организационно-управленческая структура СевКавГТУ изображена на рисунке 1.1.

К высшему уровню управления университетом относятся: ректор университета, проректоры университета: проректор по учебной работе, проректор по науке, информатизации и инновационной деятельности, проректор по ремонту и капитальному строительству, проректор по экономике, финансам и коммерческой деятельности, проректор по воспитательной работе, проректор по международному сотрудничеству, проректор по заочному, дистанционному, ускоренному обучению. На высшем уровне выполняются функции прогнозирования и стратегического планирования и взаимодействие с внешней средой. Временная перспектива от одного до пяти лет. Уровень сложности достаточно высок. Результатом деятельности на этом уровне являются стратегия и планы.

К среднему уровню управлению относятся: бухгалтерия, отдел кадров, учебно-методическое управление, научно-технический центр и т. д.

К оперативному уровню принадлежат отделы производственной сферы: кафедры, институт ускоренной подготовки, лицей, отдел эксплуатации и обслуживания компьютерных классов.

В подразделении медицинского центра главный врач подчиняется непосредственно ректору университета. В свою очередь все сотрудники центра подчиняются главному врачу.

Врачи занимаются приемом и консультацией обратившихся за помощью студентов и сотрудников и подготовкой отчетности о проделанных работах.

Регистратура занимается приемом с целью выдачи направления к конкретному врачу, организацией расписания медицинских комиссий и осмотров, составляет медицинские карты и поддерживает их в актуальном состоянии, принимает флюорографию и составляет отчетность о проделанной работе.

Главный врач решает вопросы, связанные с управлением медицинского центра.

Рисунок 1.1 - Схема организационной структуры управления медицинского центра СевКавГТУ

Функциональные области деятельности. Функциональная структура предприятия. Управление в любой организации - это процесс взаимодействия между управляющей, управляемой системами (субъектом и объектом управления) и внешней средой. Управляющая система представляет собой совокупность тех органов и лиц, которые осуществляют целенаправленное воздействие с учетом информации о состоянии объекта управления и внешней среды. Управляемая система является тем объектом, на который направлены определенные управленческие воздействия с целью улучшения функционирования управляемого объекта, придания ему конкретных форм развития в интересах достижения намеченного результата [5].

Конкретная функциональная структура управления определяется в зависимости от сочетания двух основных типов руководства - линейного (генеральный директор, совет директоров) и функционального (специализация руководителей по отдельным функциям управления) [6].

При анализе процесса функционирования объекта ввиду его сложности производят, обычно, разбиение системы на части. Такое разбиение называется декомпозицией. Разбивать систему на части можно до тех пор, пока выделенный элемент не перестает выполнять в системе каких-либо функций.

В основу декомпозиции могут быть положены различные основания, например: временное, пространственное, информационное, функциональное и другие.

Целесообразней делить систему на подсистемы по функциональному признаку, то есть на основе выполняемых системой функций, а также существующей линейной структуры управления. Функциональная иерархия предполагает специализацию по отдельным функциям управления на всех уровнях этой иерархии [7].

Функциональные задачи и подзадачи предприятия представлены в виде таблицы (таблица 1.5).

Таблица 1.5 - Функциональные задачи и подзадачи СевКавГТУ

Номер и название функциональной области

Номер и содержание функциональной задачи

1. Управление планированием

1.1 Прогнозирование спроса на выпускаемых специалистов


1.2 Внесение изменений в сроки, периоды обучения, графики проведения экзаменов и зачетов


1.3 Составление требований к подготовке специалистов

2. Управление учебным процессом

2.1 Составление расписания занятий


2.2 Качественный подбор професорско-преподавательского состава

3. Управление здравоохранением

3.1 Контроль за здоровьем сотрудников и студентов


3.2 Оказание необходимой медицинской помощи сотрудникам и студентам

4. Управление обеспечением

4.1 Управление кадрами


4.2 Управление материальными средствами


4.3 Делопроизводство

5. Управление научной деятельностью

5.1 Организация и планирование научно-исследовательских работ по инновационной деятельности и проведения фундаментальных и поисковых исследований


5.2 Организация семинаров, конференций


5.3 Создание благоприятных условий при подготовке специалистов

Организационно-управленческая модель.

Организационно-управленческая модель предприятия (таблица 1.6), представлена в виде таблицы-матрицы, в которой приняты следующие обозначения:

Х - полное участие в процессе;

/ - частичное участие в процессе;

- ответственность за выполнение процесса.

Таблица 1.6 - Организационно-управленческая модель СевКавГТУ

Структурные подразделения

Номера и наименование задач


1. Управление планированием

2. Управление учебным процессом

3. Управление здравоохранением

4. Управле-ние обеспечением

5. Управление научной деятельностью


1.1

1.2

1.3

2.1

2.2

3.1

3.2

4.1

4.2

4.3

5.1

5.2

5.3

УМУ

×,/

×,/

×,/











Деканаты


/

/

×,/










Кафедры


/

/


×,/









ИУП




/

×,/









Лаборатории













×,/

НТЦ











×,/



Бухгалтерия









×,/





Отдел кадров








×,/






ОЭОКК









/

/




Медицинский центр






0,×

0,×






/


По построенной организационно-функциональной модели можно делать выводы об эффективности выполнения, как самих процессов, так и об эффективности функционирования конкретных подразделений и университета в целом.

Документооборот. Документооборот - это создание первичных учетных документов или получение их от других организаций, их принятие к учету, обработка, передача в архив [10]. Движение первичных документов в бухгалтерском учете регламентируется графиком документооборота.

График документооборота - это график или схема, которые описывают движение первичных документов на предприятии от момента их создания до момента передачи на хранение [10].

Унифицированной формы графика документооборота нет. Каждое предприятие составляет график самостоятельно, исходя из особенностей деятельности[11].

Документооборот в медицинском центре СевКавГТУ, осуществляется в виде потоков документов между теми сотрудниками, которые анализируют и производят информацию или принимают решения (главный врач, проректор) и пунктами технической обработки документов (регистратура, врачи).

На сегодняшний день, заполнение медицинской карты, проверка и формирование списков флюорографии, проверка и оформление прививочного журнала, составление отчетов производится вручную, на что уходит огромное количество времени.

Схема движения документов в медицинском центре отражена в таблице 1.7.

Таблица 1.7 - Схема документооборота медицинского центра СевКавГТУ

Документ

Деканат

Студент или сотрудник

Регистратура

Врач

Главный врач

Проректор по экономике

Проректор по науке информатизации и инновационной деятельности

Начальник ОЭОКК

Медицинская карта









Справка о прохождении флюорографии









Отчет о проделанной работе врача









Заявление на перемещение техники









Заявление на приобретение техники










Наличие средств вычислительной техники и программного обеспечения. В подразделении находятся средства вычислительной техники и программного обеспечения. Используется следующее компьютерное и периферийное оборудование:

1.   Системный блок Intel Celeron D 2.66ГГц /512Мбайт /80Гбайт /HDD /CDRW /Video /Sound /Lan /ATX 250 Вт.

2.      Системный блок Intel Pentium 4 2.4 ГГц /512 Мбайт /320 Гбайт /DVD+CDRW /Video /Sound /Lan /ATX 400 Вт.

3.   Маршрутизатор D-Link.

4.      Принтер HP Laser Jet 1300.

5.      Принтер HP Laser Jet 1200.

6.      Копир Canon FC 228.

Так же имеется сеть топологии звезда, показанная на рисунке 1.2. Где связующим звеном является маршрутизатор D-Link, к которому подключены все компьютеры подразделения. Это дает возможность реализовать программный продукт в клиент-серверной технологии, что избавит от ряда проблем, крупнейшими из которых является разрозненность и актуальность данных.

Рисунок 1.2 - Схема локальной вычислительной сети медицинского центра СевКавГТУ

В качестве программного обеспечения, обеспечивающего деятельность подразделения, используется следующее:

-    операционная система - Windows XP;

-       офисный пакет приложений, в стандартной комплектации - Microsoft Office 2003;

−    архиватор WinRARv3.62;

-    антивирусные средства NOD32.

1.1.4 Анализ проблемных ситуаций и обоснование путей их решения

Очевидным и очень значимым слабым местом функционирования подразделения являются отсутствие автоматизированных процессов. Вся отчетность набирается на компьютерах вручную, проверка флюорографий происходит во время подготовки отчета и занимает значительное время, так же врачами проверяются все данные, для составления отчета, вручную. В таблице 1.8 представлены проблемные ситуации в работе медицинского центра СевКавГТУ и предложены способы их решения.

Таблица 1.8 - Проблемные ситуации и способы их разрешения

Проблемная ситуация

Способы разрешения проблемной ситуации

Заполнение медицинской карты вручную

Внедрение и использование информационной системы, позволяющей выполнять проверку вводимых данных и автоматизацию работы с медицинской картой

Проверка и составление списков прошедших флюорографию вручную

Внедрение и использование информационной системы, позволяющей выполнить замену ручной работы на автоматизированную

Ручная обработка и составление отчетности врачами



Как видно из таблицы 1.8 для решения данных проблем необходимо создать новую систему управления данными, которая позволила бы выполнять проверку данных автоматически, и как следствие сократить время на составление отчетности. Отсюда вытекает то, что система должна иметь аналог медицинской карты в электронном виде. Таким образом, система должна предоставлять работу с аналогом карты так же как это делалось в бумажном виде.

1.2 Формулировка задач проектирования

1.2.1 Общие сведения

Полное наименование проекта - «Система управления данными медицинского центра».

Код системы - «Medic».

Наименование организации-разработчика - Северо-Кавказский государственный технический университет, факультет ИТТ, кафедра прикладной информатики, студент группы ПИ-061 Прохоров Константин Дмитриевич

Наименование организации-заказчика - медицинский центр Северо-Кавказского государственного технического университета.

Проведение данного вида работ осуществляется на основании служебной записки о необходимости автоматизации рабочих мест сотрудников и служебной записки о направлении на выполнение дипломной работы. Согласно данным документам медицинский центр поручает студенту группы ПИ-061 и сотруднику образовательно-информационного центра, отдела по эксплуатации и обслуживанию компьютерных классов создание программно-технического комплекса.

Источники финансирования - работы проводятся без оплаты.

1.2.2 Назначение и цели создания информационной системы

Основное назначение создаваемой информационной системы - автоматизация работы врача с пациентами и создание разного рода отчетов. Вводимые данные проверяются согласно методикам, установленными соответствующими документами.

Таким образом, в результате внедрения разработанной информационной системы предполагается достичь следующих показателей объекта автоматизации:

-    время на доступ к требуемой информации уменьшается до минимума;

-       снижается вероятность ошибки при вводе информации и формировании отчетности;

-       вводимая информация проверяется на уникальность.

1.2.3 Характеристика объекта автоматизации

Объектом автоматизации является каждое рабочее место врачей в подразделении, на котором осуществляется одна или несколько следующих задач:

-    прием студентов или сотрудников;

-       уточнение данных медицинских карт;

-       прием справок о прохождении флюорографии;

-       составление отчетности.

1.2.4 Требования к системе

Разрабатываемая информационная система должна удовлетворять требованиям надежности и целостности данных, то есть должна контролироваться правильность и непротиворечивость данных, вводимых пользователем.

Информационная система должна не только обеспечивать эффективное решение планируемых задач, но и быть удобна пользователю с точки зрения проектирования пользовательского интерфейса.

Кроме требований к системе в целом, выделяются также требования к задачам, выполняемым системой. Основной задачей является максимальное ускорение доступа к информации. Для эффективного функционирования системы данная задача должна решаться в сжатые сроки, то есть алгоритм ее решения должен быть организован таким образом, чтобы обеспечить минимальное время выполнения.

1.2.5 Состав и содержание работ по созданию системы

Предусмотрен следующий состав и содержание работ по созданию информационной системы:

–    изучение предметной области и составление технического задания с 10 января по 8 февраля 2011 г.;

–       кодирование с 8 по 20 февраля 2011 г.;

–       отладка и тестирование с 20 по 28 февраля 2011 г.;

–       подготовка технической документации с 28 февраля по 4 марта 2011 г.;

–       сдача проекта заказчику с 4 по 6 марта 2011 г.

1.2.6 Порядок контроля приемки системы

Контроль приемки системы осуществляет комиссия, назначаемая главным врачом медицинского центра СевКавГТУ. В ходе приемки проверяются работоспособность форм и правильность выполняемых расчетов. По результатам приемки работы оформляется акт внедрения результатов дипломного проекта.

1.2.7 Требования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие

Для ввода системы в действие следует произвести следующие работы:

1.   Установить следующее программное обеспечение на сервер:

-    PostgreSQL версии 8.4.2 или выше;

-       Apache не ниже 2.0;

-       Perl версии 5.8.9 и модули Template, CGI, DBI, Spreadsheet::WriteExcel, utf8, Encode, POSIX, CGI::Session, DBI::PgPP.

2.   Произвести обучение системного администратора.

3.      Произвести обучение пользователей работе с разработанной системой.

1.2.8 Требование к документированию

Разработчик предоставляет файлы информационной системы «Medic» в электронном формате на CD-ROM вместе с результатами тестирования и краткими инструкциями для администратора и врачей.

 

.2.9 Источники разработки

Источниками разработки являются:

·   заказ на разработку информационной системы;

·   материалы и отчеты по преддипломной практике;

·   отчеты по флюорографии студентов;

·   прививочные журналы.

Выводы

1. Медицинский центр СевКавГТУ является подразделением Северо-Кавказского государственного технического университета и его основная задача оказание необходимой медицинской помощи студентам и сотрудникам университета.

2. Анализ проблемных ситуаций выявил, отсутствие автоматизированных процессов в работе сотрудников при составлении списков флюорографии и различных отчетов, заполнении медицинской карты.

3. Для устранения проблемной ситуации необходимо разработать информационную систему, включающую в себя базу данных, пользовательский интерфейс, программу управления базой данных и выявить экономическую целесообразность проекта.

2. РЕАЛИЗАЦИЯ ИНФОРМАЦИОННОЙ СИСТЕМЫ «MEDIC»

2.1 Обоснование выбора среды разработки


Основными требования к разрабатываемой информационной системе, являются стабильность, масштабируемость, поддержка работы нескольких пользователей, совместимость, полнота.

Выбор среды разработки информационной системы заключается в определении требований к программному продукту и выбора наиболее подходящих технологий для их решения. Таким образом, с учетом фактора оснащенности подразделения вычислительной техникой, было принято решение:

1. О разработке базы данных на основе PostgreSQL, что обусловлено ее современностью, бесплатностью и конкурентоспобностью, в сравнении с аналогичными продуктами. В PostgreSQL реализованы многие возможности, обычно присутствующие только в коммерческих СУБД, таких как DB2 и Oracle. Простота расширения - в PostgreSQL поддерживаются пользовательские операторы, функции, методы доступа и типы данных. Процедурные языки - предусмотрена поддержка внутренних процедурных языков, в том числе специализированного языка PL/pgSQL, являющегося аналогом PL/SQL, процедурного языка Oracle. Одним из преимуществ PostgreSQL является возможность использования Perl, Python и TCL в качестве внутренних процедурных языков.

2.      О разработке клиентской части основанной на технологии html, что обусловлено возможностью организации кроссплатформенности как браузеров, так и операционных систем.

.        О разработке серверной части программного продукта на языке Perl, что обусловлено легкостью, быстротой и понятностью, которую вложили разработчики в этот язык программирования и возможностью простой работы с html-шаблонами, которые позволяют генерировать динамические страницы.

2.2 Реализация информационной системы «Medic»

2.2.1 Концептуальное проектирование системы «Medic»

Концептуальное проектирование технических систем - начальная стадия проектирования, на которой принимаются определяющие последующий облик решения, и проводится исследование и согласование параметров созданных технических решений с возможной их организацией.

В ходе концептуального проектирования было решено создать 29 страниц, описанных в таблице 2.1.

Таблица 2.1 - Страницы и их описание

Страница

Назначение

1

2

Start page

Страница приветствия, которая появляется при самом первом входе пользователя в систему, дальше он ее не видит, так как после выхода пользователя, запоминается последняя посещенная страница, с которой он и начинает

Права пользователей

Является страницей-подменю, где пользователь может выбрать, с чем ему работать: группа, принадлежность пользователей и пользователи

Группы

На этой странице предлагается работа с группами: создание, удаление и редактирование группы

Принадлежность пользователей

На этой странице предлагается работа с группами прав пользователей, что значительно ускоряет процесс назначения прав, так как достаточно выбрать пользователя и отметить группы к которым он должен относиться, после чего система автоматически даст необходимые права, которые соответствуют этой группе, при этом пользователь может относиться к нескольким группам

1

2

Пользователи

Предлагается работать именно с пользователем: создание нового пользователя, редактирование личных данных или редактирование прав заданного пользователя

Окна и функции

Является страницей-подменю, где пользователь может выбрать с чем ему работать: окна или функции

Окна

Предлагает работать с окнами: создать новое окно (страницу), отредактировать название или имя файла уже существующей страницы и удалить не нужную страницы

Функции

Предлагается работать с функциями, о которых уже было сказано выше, пользователь может создать новые функции если это требуется (например дальнейшая разработка системы), редактирование названия функции и удаление ее, в случае если она потеряет актуальность

Редактор населенных пунктов

Является страницей-подменю, где пользователь может выбрать, с чем ему работать: регион, район и город

Регион

Позволяет работать со списком регионов: создание, редактирование и удаление

Район

Позволяет работать со списком районов: создание, редактирование и удаление

Город

Позволяет работать со списком городов: создание, редактирование и удаление

Должности сотрудников

Позволяет работать со списком должностей сотрудников: создание, редактирование и удаление

Журнал прививок

Позволяет работать со списком прививок. Создание, редактирование и удаление

Тип диагноза

Позволяет работать со списком диагнозов: создание, редактирование и удаление

Журнал диагнозов

Позволяет работать со списком диагнозов: создание, редактирование и удаление

Контингент

Является страницей-подменю, где пользователь может выбрать, с чем ему работать: факультеты, группы или студенты

Факультеты

Позволяет работать со списком факультетов: создание, редактирование и удаление

Группы

Позволяет работать со списком групп: создание, редактирование и удаление

1

2

Студенты

Позволяет работать со списком студентов: создание, редактирование и удаление

Карты

Является страницей-подменю, где пользователь может выбрать, с чем ему работать: добавление карты и редактирование карты

Добавление карты

Позволяет создать карту для студента, процесс аналогичный заведению новой карты в бумажной форме

Редактирование карты

Позволяет видеть общую информацию о медицинской карте и редактировать ее в случае необходимости

Диагнозы

Является страницей-подменю, где пользователь может выбрать, с чем ему работать: история болезней и прием больного

История болезней

Отображает общую информацию о всех посещениях и в случае необходимости просмотр подробностей

Прием больного

Служит для внесения информации о посещении студентом врача

Флюорография

Отображает списки флюорографии, в которых указывается статус прохождения (пройдена или не пройдена), а так вносить дату последнего прохождения. Так же формирует отчеты по группе и факультету

Прививки

Отображает список сделанных прививок с полной информацией, а так же позволяет вносить запись о новой прививке

Справка

Отображает справку по системе, при нажатии на кнопку справки, отображается справка по окну из которого она была вызвана, но так же пользователь может перейти в содержание справки, где будет список всех доступных ему окон


Схема расположения станиц представлена на рисунке 2.1.

Рисунок 2.1 - Концептуальная схема расположения страниц системы «Medic»

Концептуальная схема позволяет наглядно показать расположение всех страниц системы «Medic».

2.2.2 Создание логической модели базы данных информационной системы

Определение сущностей модели. В процессе проектирования базы данных вся требуемая информация была разделена на 28 сущностей (таблиц):

-  area (далее как район) - содержит в себе список район, из которых прибыли студенты на обучение в университете;

-       card (далее как карта) - содержит в себе информацию о медицинской карте;

-       comments (далее как комментарии) - комментарии к диагнозу;

-       diagnosis (далее как диагнозы) - история диагнозов студента ;

-       employees (далее как информация_сотруднике) - информация о сотрудниках;

-       faculty (далее как факультет) - список факультетов;

-       fluorography (далее как флюорография) - история прохождения флюорографии студентом ;

-       func (далее как функции) - список функций работы с системой;

-       group_fac (далее как группа_факультета) - список групп в факультете;

-       grp (далее как группа) - список групп для работы с правами доступа к системе;

-       grp_func (далее как группа_функция) - служит для реализации связи М:М между таблицами группа и функция;

-       history_connections (далее как история_соединений) - история всех соединений к базе данных, служит для мониторинга;

-       history_session (далее как история_сессий) - история всех сессий, служит для мониторинга всех посещений сотрудника;

-       jornal_diagnosis (далее как журнал_диагнозов) - журнал диагнозов;

-       jornal_vaccin (далее как журнал_прививок) - журнал прививок;

-       post (далее как должность) - должность сотрудников;

-       region (далее как регион) - список регионов;

-       sesion (далее как сессия) - список последних сессий сотрудников;

-       sot (далее как сотрудник) - список сотрудников;

-       sot_func (далее как сотрудник_функции) - служит для реализации связи М:М между таблицами сотрудник и функции;

-       sot_grp (далее как сотрудник_группа) - служит для реализации связи М:М между таблицами сотрудник и группа;

-       students (далее как студенты) - список студентов;

-       town (далее как город) - список городов;

-       transaction_history (далее как история_транзакций) - история транзакций, служит для мониторинга действий пользователя по вносимым изменениям;

-       treatment (далее как лечение) - назначенное лечение к диагнозу;

-       type_diagnosis (далее как тип_диагноза) - список диагнозов;

-       vaccine (далее как прививки) - история всех прививок студента;

-       wnd (далее как окна) - список окон приложения для управления;

Инфологическое проектирование. Цель инфологического моделирования - обеспечение наиболее естественных для человека способов сбора и представления той информации, которую предполагается хранить в созданной БД. Поэтому инфологическую модель пытаются строить по аналогии с естественным языком. Основными конструктивными элементами инфологических моделей являются сущности, связи между ними и их свойства [14]. Модель «сущность - связь» спроектированной базы данных приведена на рисунке 2.2.

Результатом инфологического проектирования является концептуальная модель, которая представляет структуру данных не зависимую от любой физической реализации. Отношения между сущностями приведены в таблице 2.2

Таблица 2.2 - Отношения между сущностями

Номер связи

Родительская сущность

Дочерняя сущность

Тип связи

1

2

3

4

1

Сотрудник

Функции

М:М

2

Группа

Функции

М:М

3

Окна

Функции

М:М

4

Окна

группа

М:М

5

Сотрудник

Группа

М:М

6

Сотрудник

Информация_сотруднике

1:М

7

Сотрудник

Должность

1:М

8

Сотрудник

Диагнозы

1:М

9

Сотрудник

Прививки

1:М

10

Сотрудник

Сессия

1:М

11

Факультет

Группа

1:М

12

Группа

Студент

1:М

13

Студент

Карта

1:М

14

Карта

Регион

1:М

15

Карта

Район

1:М

16

Карта

Город

1:М

17

Регион

Район

1:М

18

Район

Город

1:М

19

Карта

Флюорография

1:М

20

Карта

Диагнозы

1:М

21

Карта

Прививки

1:М

22

Диагнозы

Комментарий

1:М

23

диагнозы

лечение

1:М

24

диагнозы

журнал_диагнозов

1:М

25

диагнозы

тип_диагноза

1:М

26

прививки

журнал_прививок

1:М


Инфологическая модель представлена на рисунке 2.2

Рисунок 2.2 - Инфологическая модель БД

Как видно из рисунка 2.2 и таблицы 2.2 между таблицами связи 1, 2, 3, 4, 5 являются связями «многие ко многим», а все остальные «один ко многим».

Задание первичных ключей сущностей. Ключ - это минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности. Это одно из основных понятий баз данных, используемых при контроле целостности информации. Разделяют первичные и внешние ключи. Первичный ключ - это уникальное поле (или несколько полей), однозначно определяющее записи таблицы базы данных. Внешние ключи - это поля таблицы, которые, как правило, соответствуют первичным ключам из других таблиц. Первичный ключ не может принимать неопределённые значения [17].

Ниже, в таблице 2.3, приведены ключи для каждой сущности.

Таблица 2.3 - Ключи

Таблица

Ключ

Тип ключа

1

2

3

район

id_area

primary


id_region

regular

карта

id_card

primary


id_stud

regular


id_region

regular


id_area

regular


id_town

regular

комментарии

id_comments

primary


id_comments

regular

диагнозы

id_diag

primary


id_card

regular


id_sot

regular


id_type_diag

regular


id_comments

regular

диагнозы

id_treatment

regular


id_jornal_diag

regular

информация_сотруднике

id_empl

primary


id_sot

regular

факультет

id_fac

primary

флюорография

id_fluor

primary


id_card

regular

функции

func_id

primary

группа_факультета

id_gr

primary


id_fac

regular

группа

id

primary

группа_функция

id

primary


func_id

regular


wnd_id

regular


grp_id

regular

история_соединений

id_connect

primary

история_сессий

id_ses

primary

журнал_диагнозов

id_jornal_diag

primary

журнал_прививок

id_jornal_vaccin

primary

должность

id_post

primary


id_sot

regular

регион

id_region

primary

сессия

sesion

primary


id_sot

regular

сотрудник

id_sot

primary

сотрудник_функции

id

primary


sot_id

regular


func_id

regular


wnd_id

regular

id_sg

primary


grp_id

regular


sot_id

regular

студенты

id_stud

primary


id_gr

regular

город

id_town

primary


id_area

regular

история_транзакций

id_tran

primary

лечение

id_treatment

primary

тип_диагноза

id_type_diag

primary

прививки

id_vaccin

primary

прививки

id_card

regular


id_sot

regular


id_jornal_vaccin

regular

окна

id_wnd

primary


Теперь можно приступить к более тщательному анализу данных и объединению отдельных элементов данных в объекты. Эти объекты станут впоследствии основой для создания таблиц в проектируемой базе данных.

Даталогическая модель. Даталогическое проектирование - создание схемы базы данных на основе конкретной модели данных, например, реляционной модели данных. Для реляционной модели данных даталогическая модель - набор схем отношений, обычно с указанием первичных ключей, а также «связей» между отношениями, представляющих собой внешние ключи[18].

Для даталогических моделей определена методология построения диаграмм, IDEF.- методологии семейства ICAM (Integrated Computer-Aided Manufacturing) для решения задач моделирования сложных систем, позволяет отображать и анализировать модели деятельности широкого спектра сложных систем в различных разрезах. При этом широта и глубина обследования процессов в системе определяется самим разработчиком, что позволяет не перегружать создаваемую модель излишними данными[19].

На рисунке 2.3 показана даталогическая модель базы данных с использование методологии IDEF1X.

IDEF1X (IDEF1 Extended) - методология построения реляционных структур (баз данных), относится к типу методологий «Сущность-взаимосвязь» и, как правило, используется для моделирования реляционных баз данных, имеющих отношение к рассматриваемой системе[19].

Рисунок 2.3 - Даталогическая модель БД

Из рисунка 2.2 видны все реализованные сущности в таблицы и атрибуты сущностей в поля таблицы с заданными типами данных.

2.2.3 Реализация серверной части приложения

При проектировании серверной части было принято использовать методы модульного программирования.

Модульное программирование - метод разработки программ, предполагающий разбиение программы на независимые модули.

Эта концепция дает возможность легко составлять и отлаживать программы, функциональные компоненты такой программы могут быть написаны и отлажены порознь. Модульную программу легче сопровождать и модифицировать. Функциональные компоненты могут быть изменены, переписаны или заменены без изменений в остальных частях.

Разработанная система содержит в себе модули:

-    index.cgi - выполняет все проверки и подключает необходимый модуль окна и шаблон этого окна;

-       Templete.pm - отвечает за генерацию меню;

-       ConnectDB.pm - отвечает за соединение с базой данных;

-       exel.pm - модуль генерации отчетов по флюорографии и привочному журналу;

-       exel_card.pm - модуль генерации титульного листа медицинской карты;

-       kernel.pm - отвечает за проверку логина и пароля, получения сессии, получения номера последнего окна;

-       ses.pm - отвечает за проверку номера сессии;

-       и модули окон с шаблонами, отвечающие за поведение окон клиентской части описанных в таблице 2.4.

Таблица 2.4 - Файлы модулей и шаблоны окон

Страница

Файл шаблона

Файл модуля

1

2


Start page

page_0.tt

page_0.pm

Права пользователей

page_1.tt

page_1.pm

Группы

page_2.tt

page_2.pm

Принадлежность пользователей

page_3.tt

page_3.pm

Пользователи

page_3.tt

page_3.pm

Окна и функции

WndAndFunc.tt

WndAndFunc.pm

Окна

Wnds.tt

Wnds.pm

Функции

Func.tt

Func.pm

Редактор населенных пунктов

EditorATR.tt

EditorATR.pm

Регион

EditRegion.tt

EditRegion.pm

Район

EditArea.tt

EditArea.pm

Город

EditTown.tt

EditTown.pm

Должности сотрудников

Post_sot.tt

Post_sot.pm

Журнал прививок

Jornal_vaccin.tt

Jornal_vacc.pm in

Тип диагноза

Type_diag.tt

Type_diag.pm

Журнал диагнозов

Jornal_diag.tt

Jornal_diag.pm

Контингент

Contingent.tt

Contingent.pm

Факультеты

Faculty.tt

Faculty.pm

Группы

Groups.tt

Groups.pm

Студенты

Students.tt

Students.pm

Карты

Kard.tt

Kard.pm

Добавление карты

AddCard.tt

AddCard.pm

Редактирование карты

EditCard.tt

EditCard.pm

Диагнозы

Diagnosis.tt

Diagnosis.pm

История болезней

History_diagnosis.tt

History_diagnosis.pm

Прием больного

Add_diagnosis.tt

Add_diagnosis.pm

Флюорография

Fluoragraphy.tt

Fluoragraphy.pm

Прививки

Vaccin.tt

Vaccin.pm

Справка

Helper.tt

Helper.pm


В корне директории cgi-bin располагаются файлы index.cgi и Templete.pm и директория modules, в которой хранятся модули ConnectDB.pm, exel.pm, exel_card.pm, kernel.pm и ses.pm. Модули окон хранятся в директории wnd, а шаблоны в директории tt, которые расположены в корне директории cgi-bin. Листинг модулей приведен в приложении Б.

Подключение серверной части к базе данных осуществляет при помощи модуля, взятого из хранилища модулей CPAN, расположенного в интернете.

2.4 Реализация клиентской части приложения


Клиентские страницы генерируются динамически с помощью шаблонов template toolkit.

Template toolkit (TT) - это мощная система обработки шаблонов, написана на perl. Использование шаблонов для генерации web-страниц позволяет убрать из cgi-скрипта весь html код в отдельный файл (шаблон), где его сможет редактировать дизайнер. Скрипт при этом становится более читабельным [17].

Код такого шаблона имеет вид html кода со вставками perl функций и переменных, получаемых из скрипта. Поэтому весь процесс разработки сводится к написанию html-страницы с нужным видом и вставки специального кода шаблонизатора в динамические объекты html. Пример кода шаблона находится в приложении А, а пример html-страницы представлен на рисунке 2.3.

Для создания шаблона требуется создать файл cgi-скрипта, расположенного в директории wnd и файл шаблона, расположенного в директории tt. После чего необходимо реализовать необходимое поведение в коде скрипта шаблона.

Код cgi-скрипта index.cgi, который занимается определением какой модуль системы необходимо подключить и какие данные передать ему:

#!C:\www\Perl5.8.9\bin\perl"Content-Type: Text/HTML; charset=UTF-8\n\n";strict;warnings;CGI;TemplateTemplete;modules::kernel;$co = CGI->new();$login = $co->param('login') || '';$pass = $co->param('pass') || '0';$wnd = $co->param('wnd') || modules::kernel->read_last_page($login, $pass);$ses = $co->param('ses') || '0';$id_s = modules::kernel->user_id($login, $pass, $ses);$CGISESSID = $ses || '0';$title ='Добро пожаловать!';($CGISESSID eq "Error" or $id_s eq "0"){

# вывод шаблона index #

$title = 'Не правильно введено имя или пароль!';

my $parser = Template->new (INCLUDE_PATH => './tt');

$parser->process('index.tt', {'title' => $title,

'login' => $login});

}{(!$ses){

($CGISESSID, $title, $id_s) = modules::kernel->check_login($login, $pass, $wnd);

}{

$CGISESSID = modules::kernel->get_session($wnd, $id_s);

}

$ses = $CGISESSID;($CGISESSID eq "Error" or $id_s eq "0"){

# вывод шаблона index #$parser = Template->new (INCLUDE_PATH => './tt');

$parser->process('index.tt', {'title' => $title,

'login' => $login});

}{$r_ses = modules::ses->check_ses($CGISESSID, $id_s);($r_ses == 1){$helper = $co->param('hlp') || '-1';$hlp_lst;($helper ne '-1'){$query = qq"SELECT helper FROM wnd WHERE id_button = '$wnd'";

$hlp_lst = modules::ConnectDB->SelectFromDB($query);

}$menu = Templete->gen_menu($id_s);$name_wnd = Templete->name_wnd($wnd);$file = modules::kernel->query_file($wnd);

$ENV{'ses'} = $ses;"wnds/".$file.".pm";@page;

@page= $file->print_page($CGISESSID);$query = qq"SELECT * FROM sot_func a a.sot_id = (SELECT id_sot FROM sesion WHERE sesion = '$ses') AND a.wnd_id = '$wnd'";$rules = modules::ConnectDB->SelectFromDB($query);$parser = Template->new (INCLUDE_PATH => './tt');

$parser->process('start_page.tt', {'CGISESSID' => $CGISESSID,

'wnd' => $wnd,

'menu' => $menu,

'rules' => $rules,

'namewnd' => $name_wnd,

'ses' => $ses,

'id' => $id_s,

'helper' => $helper,

'hlp_lst' => $hlp_lst,

'file' => $file.'.tt',

'page' => @page});

}($r_ses == 0) {

$title = "У вас закончилась сессия.<br>Авторизуйтесь еще раз.";

my $parser = Template->new (INCLUDE_PATH => './tt');

$parser->process('index.tt', {'title' => $title,

'login' => $login});

}($r_ses == -1) {

print "По не понятным причинам произошел сбой. Сообщите об этом системному администратору.";

}

}

}

Код шаблона index.tt, который предоставляет форму для ввода пароля:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//RU"

"#"523233.files/image006.jpg">

Рисунок 2.4 - Отображение шаблона index.tt

Это все работает следующим образом, пользователь нажимает необходимую ему кнопку или пункт меню, после чего браузер отправляет все необходимые данные в скрытых полях (метод POST), далее сервер получает данные, обрабатывает и делает вывод о том, что хочет пользователь и какую страницу ему необходимо загрузить. Затем сервер обрабатывает нужные файлы скрипта и шаблона и отправляет их пользователю.

На рисунке 2.5 показано меню разных пользователей системы, как видно оно заметно отличается содержанием. Список меню зависит от данных администратором разрешений пользователю, а администратор принимает решение о даче прав на какое-либо действие пользователю на основании выполняемых обязанностей этим сотрудником. Это касается не только меню, а всех страниц в системе.

Рисунок 2.5 - Динамическое меню системы

На данный момент в системе определено четыре правила: открытие, редактирование, пункт меню и редактирование справки. В соответствии с названиями они дают разрешение на открытие, редактирование страницы, добавление ее в пункт меню и редактирование справки на этой странице.

Для создания меню использовались стили CSS, подключаемые в шаблоне.

CSS (каскадные таблицы стилей) - формальный язык описания внешнего вида документа, написанного с использованием языка разметки.

Код стиля для меню:{margin:25px; font:11px Verdana,Arial; background:#eee}.menu {list-style:none; margin:0; padding:0}.menu * {margin:0; padding:0}.menu a {display:block; color:#000; text-decoration:none}.menu li {position:relative; float:left; margin-right:2px}.menu ul {position:absolute; top:26px; left:0; background:#d1d1d1; display:none; opacity:0; list-style:none}.menu ul li {position:relative; border:1px solid #aaa; border-top:none; width:148px; margin:0}.menu ul li a {display:block; padding:3px 7px 5px; background-color:#d1d1d1}.menu ul li a:hover {background-color:#c5c5c5}.menu ul ul {left:148px; top:-1px}.menu .menulink {border:1px solid #aaa; padding:5px 7px 7px; font-weight:bold; background:url(images/header.gif); width:134px}.menu .menulink:hover, ul.menu .menuhover {background:url(images/header_over.gif)}.menu .sub {background:#d1d1d1 url(images/arrow.gif) 136px 8px no-repeat}.menu .topline {border-top:1px solid #aaa}

Между тегами <head> и </head> вставляем строчку вида <link rel='stylesheet' type='text/css' href='../style/menu.css'>, которая говорит о том, что мы собираемся использовать стили и какой файл необходимо подключить.

После чего мы вставляем нижеуказанные строчки кода:

<ul>

<li><a>Меню</a>

<ul>

[% FOREACH key IN menu %]

[%IF key.t_f == 1%]<li><a href='javascript:load([%key.wnd_id%])'>[%key.name_wnd%]</a></li>[%END%]

[% END %]

</ul>

</li>

<li><a href='#"523233.files/image008.jpg">

Рисунок 3.1 - Логическая структура программы

Через браузер открываются страница index.html, которая перенаправляется на index.cgi. Через эту страницу пользователь получает всю информацию и имеет доступ к меню. Обращение к базе данных и получение от нее результатов осуществляется через модуль ConnectDB.pm, который в свою очередь возвращает затребованные данные в то место, откуда они были затребованы.

3.4 Требования к техническому обеспечению


Определение характеристик вычислительной техники является неотъемлемой частью процесса разработки программного продукта. Ключевыми критериями являются: частота процессора, объемы оперативной памяти и жесткого диска, дополнительное специализированное оборудование. Для разработанного программного продукта эти характеристики приведены ниже. Так как программе требуется сервер и клиент, параметры различаются для них.

На клиентских компьютерах не требуется установки каких-то специальных программ и компонентов, достаточно стандартного браузера. Так как на большинстве машин подразделения установлена Windows и в качестве браузера используется стандартный Internet Explorer, то параметры, приведенные ниже для клиентских ПК, соответствуют параметрам IE 8, рекомендованные компанией Microsoft.

Серверная часть требует индивидуального подхода в плане подбора аппаратных частей компьютера и зависит от числа подключаемых клиентов с учетом запаса производительной мощности для возможности подключения новых пользователей. Вся производительная мощность серверной части складывается из системных требований операционной системы, PostgreSQL, HTTP-сервера и Perl. Разработанная система не привязана к конкретной ОС, и поэтому может быть установлена на любую, но рекомендуется использовать сетевые решения операционных систем так, как они разрабатываются специально для работы в сети.

Ниже будут указаны параметры, для сервера с операционной системой Fedora 13, с минимальным набором программного обеспечения, обеспечивающего работу пяти клиентских ПК.

3.4.1 Требования к центральному процессору клиента

Минимальная тактовая частота процессора, для клиентской ПК, должна составлять 233 мегагерца (МГц) или выше.

Данная цифра учитывает как затраты процессора на работу самого приложения так и затраты связанные с работой операционной системы.

3.4.2 Требования к центральному процессору сервера

На основании проведенных контрольных прогонов было установлено, что необходимо использование процессор с минимальной тактовой частотой не менее 333 МГц. Это число учитывает как затраты процессора на работу самого приложения так и затраты связанные с работой операционной системы.

3.4.3 Требования к оперативному запоминающему устройству клиента

Минимальный объем оперативного запоминающего устройства (ОЗУ) необходимый для работы приложения на стороне клиента, Vкл., Мбайт, определяется по формуле:

Vкл. = V1 + V2

(3.1)


гдеV1 - минимальный объем ОЗУ, требуемый для работы операционной системы, Мбайт;2 - минимальный объем ОЗУ, требуемый для работы браузера, Мбайт;

Так как на всех ПК подразделения установлена Windows XP со стандартным браузером IE, обновленным до версии 8, то параметры V1=128 Мбайт и V2= 64 Мбайт.

Таким образом, подставим в формулу (3.1) получим, что минимальный объем ОЗУ, требуемый для работы информационной системы на клиентском ПК, составляет:

Vкл. =V1 +V2 = 128 + 64 = 192 Мбайт.

3.4.4 Требования к оперативному запоминающему устройству сервера

Для сервера, Vсерв, Мбайт, минимальный объем оперативного запоминающего устройства, определяется по формуле:

Vсерв. =V1+V2+V3+V4(3.2)



гдеV1 - минимальный объем ОЗУ, требуемый для работы операционной системы, Мбайт;2 - минимальный объем ОЗУ, требуемый для базы данных;3 - минимальный объем ОЗУ, требуемый для HTTP-сервера;2 - минимальный объем ОЗУ, требуемый для работы командного интерпретатора Perl;

Так как на сервере стоит операционная система Fedora 13 в минимальной комплектации, то параметр V1 =10 Мб. Для баз данных параметр V2 =128 Мб. Для HTTP-сервера V3 =16 Мб. И для командного интерпретатора V4 =5 Мб.

Таким образом, подставим в формулу (3.2) получим, что минимальный объем ОЗУ, требуемый для работы информационной системы на сервере, составляет:

Vсерв. = V1 + V2 + V3 + V4 = 10 + 128 + 16 + 5 = 159 Мбайт.

Для комфортной работы рекомендуется использовать ОЗУ размером 256 Мбайт и более.

3.4.5 Требования к наличию свободного места на жестком диске клиента

Свободное пространство на жестком диске для клиентского ПК должно хватать на установку браузера. Так, например, компания Microsoft, для браузера IE 8, рекомендует не менее 150 Мбайт свободного места на жестком диске компьютера пользователя.

3.4.6 Требования к наличию свободного места на жестком диске сервера

Для сервера объем свободного места должен быть не менее 347 Мбайт на приложения (PostgreSQL требует 211 Мбайт без базы данных, HTTP-сервер требует 35 Мбайт и Perl, 101 Мбайт), плюс предполагаемый объем данных в базе (с учетом возможности добавления новых данных примерно составляет от 50 Мбайт) и объем для дампа базы данных от 50 Мбайт. Таким образом, учитывая все параметры, получается минимального пространства должно быть не менее 447 Мбайт.

3.4.7 Требования к монитору и видеоадаптеру клиента

Клиентская часть не предъявляет каких-то специфичных требований, достаточно любого современного жидкокристаллического монитора со стандартным разрешением 1024×768.

3.4.8 Требования к принтеру

Для вывода на печать отчетов и медицинских карт необходим любой принтер с разрешением печати не менее 300 точек/дюйм. Так как если разрешение печати принтера будет менее 300 точек/дюйм документы, предусмотренные к выводу на принтер, не будут качественно пропечатываться, они разрабатывались для вывода на печать принтером с минимальным разрешением 300 точек/дюйм.

3.5 Установка информационной системы


Установка системы должна проводиться специалистом, обладающим знаниями по установки: PostgreSQL и резервных копий баз данных (SQL-дамп), языка Perl и сервера HTTP. Так же необходимы умения по настройке системы для резервного копирования базы данных.

SQL-дамп - метод, заключающийся в создании текстового файла с командами SQL, с помощью которых на сервере можно воссоздать базу данных в том состоянии, в котором она находилась перед дампом [14].

Весь процесс установки сводится к установке вышеперечисленных компонентов и их настройке. Настройка PostgreSQL заключается в развертывании дампа базы из файла.

Настройка HTTP сервера сводится к копированию в директорию файлов с кодом системы и настройке хоста, в которой необходимо указать разрешения на выполнение cgi-скриптов и указать директорию со скриптами (cgi-bin), если оно запрещена по умолчанию или отсутствует.

После установки Perl требуется установить ряд модулей необходимых для работы. Их можно установить с помощью репозитория CPAN, для этого требуется соединение с интернетом, но в случае если доступа в сеть интернета нет, то их можно установить и локально.

3.6 Входные данные программы


Входными данными для спроектированной базы данных являются выделенные из сущностей предметной области атрибуты. Они вводятся непосредственно пользователем с клавиатуры посредством разработанного пользовательского интерфейса. На основе анализа, проведенного во 2 разделе были, выделены следующие данные. Для разработчиков: название окон и функций. Для сотрудников: о сотрудниках, факультетах и группах, о студентах, информация медицинских карт, данные о приеме врачом, о диагнозах и прививках, типов диагнозов, информация о населенных пунктах, из которых прибыли студенты, информация о прохождении флюорографии.

3.7 Выходные данные программы


Выходные данные программы представлены отчетами с указанием дат формирования отчета, а так же медицинскими картами и в виде экранных форм, в которых отображены записи БД.

3.8 Результаты тестирования программы


В ходе тестирования проверялось корректность переходов по ссылкам, правильность вычисления дат флюорографии и корректность отображения страниц в различных браузерах (рисунки 3.2, 3.3, 3.4)

Рисунок 3.2 - Корректность отображения страницы в FireFox 4

Рисунок 3.3 - Корректность отображения страницы в Chrome 11

Рисунок 3.4 - Корректность отображения страницы в Internet Explorer 8

По завершению написания каждого модуля программы, его тестирование проводилось с помощью тестовых прогонов. При выявлении ошибок, выполнялись работы по их устранению, и затем следовала повторная проверка модуля. Так как модули имеют относительно малый размер, такой метод тестирования способствовал быстрому нахождению и устранению ошибок. Для сокращения времени на тестирование составлялись небольшие тесты, при условии что модуль достаточно мал. Весь процесс тестирование и составление тестов проходил при консультациях с сотрудниками медицинского центра СевКавГТУ.

3.9 Вызов программы


Информационная система для медицинского центра, запускается путем ввода в адресную строку браузера ip-адреса сервера или имени сервера (рисунок 3.5), либо ярлыком на рабочем столе, который является ссылкой на адрес сервера и предназначен для сотрудников.

Рисунок 3.5 - Ввод имени сервера

Из рисунка видно, что сервер имеет имя «medic».

3.10 Краткая инструкция по работе с программой


В начале работы программы, пользователь проходит процесс аутентификации (ввод логина и пароля) и при всех действиях пользователя протекает процесс авторизации (рисунок 3.6).

Аутентификация - проверка принадлежности пользователю (субъекту доступа) предъявленного им идентификатора и подтверждение его подлинности.

Авторизация - проверка прав доступа пользователя и получение им доступа к ресурсам в соответствии с данными ему правами.

Рисунок 3.6 - Окно аутентификации

Так как программа имеет возможность разграничение прав пользователь, то возникают роли пользователей. Поэтому далее будет описана основная часть работы с программой, с разбиением на роли. Работа с другими частями схожа.

Краткая инструкция по работе для администратора

Главная задача администратора - это работа с сотрудниками в системе. Для добавление нового сотрудника необходимо в меню выбрать пункт «Права пользователей», после чего откроется окно с выбором дальнейших действий (рисунок 3.7).

Рисунок 3.7 - Окно с выбором дальнейших действий

Далее необходимо выбрать «Пользователи» и в открывшемся окне надо нажать кнопку «Редактировать пользователя» (рисунок 3.8).

Рисунок 3.8 - Окно с выбором дальнейших действий

После нажатия кнопки, справа появится выделенная область с предложением создать нового пользователя, отредактировать текущего и отменой действия (рисунок 3.9).

Рисунок 3.9 - Редактирование пользователя

Необходимо выбрать «Новый пользователь». Появятся поля для заполнения, показанные на рисунке 3.10.

Рисунок 3.10 - Добавление нового пользователя

После заполнения всех полей, нажать кнопку «Добавить», после чего новый пользователь будет добавлен и его можно будет найти в списке с пользователями. Редактирование пользователей протекает аналогично, для этого необходимо вместо «Новый пользователь» выбрать «Редактировать пользователя». Откроются те же саамы-е поля, но уже заполненные, в них надо внести соответствующие изменения и нажать на кнопку «Изменить»

По умолчанию новый пользователь создается без прав и для того чтобы он смог работать с системой ему необходимо назначить права. Для этого необходимо выбрать его в списке «Пользователи» и в списке «Окна» выбрать необходимое окно. Появятся таблица с функциями (рисунок 3.11).

Рисунок 3.11 - Функции

В таблице необходимо расставить галочки напротив тех функций, которые необходимы данному пользователю и нажать на кнопку «Добавить пункт».

Краткая инструкция по работе для сотрудников

Так как окон для сотрудников много и работа с ними практически схожа, то ниже будет описана работа с редактором медицинских карт.

Медицинская карта является основополагающим элементом. Как и в жизни, врачи не могут вести прием пациента без карты, так и система построена на этом принципе.

Для того чтобы добавить медицинскую карту необходимо выбрать в меню пункт «Карты» и нажать ссылку «Добавление карты» (рисунок 3.12). Откроется окно с полями для заполнения (рисунок А.1).

Рисунок 3.12 - Окно «Карты»

Для добавления карты, необходимо заполнить ключевые поля и нажать кнопку «Добавить карту». После чего добавиться новая медицинская карта, а все поля для заполнения очистятся. Если какое-то из ключевых полей не заполнено, то система выдаст соответствующее предупреждение с указаниями. На рисунке А.2 ни одно из ключевых полей не заполнено.

Рядом с кнопкой «Добавить карту» расположена кнопка «Распечатать карту», которая производит процесс сохранения медицинской карты и формирует документ для табличного процессора (рисунок 3.13).

Рисунок 3.13 - Медицинская карта для печати

Для того чтобы увидеть вновь добавленную карту необходимо перейти по ссылке «Редактирование карты», для этого можно воспользоваться ссылками для быстрого перехода, которые расположены вверху, под основным меню (рисунок 3.14).

Рисунок 3.14 - Ссылки для быстрого перехода

В открывшемся окне, необходимо выбрать нужный факультет и группу. После чего появиться таблица с кратким описанием медицинских карт (рисунок А.3).

Для того, чтобы отредактировать необходимую медицинскую карту необходимо навести курсор на нужную запись в таблице и совершить двойной клик. Откроется такое же окно, как и в случае с добавлением карты, но поля уже будут заполнены (рисунок А.4).

После исправление необходимых данных, необходимо нажать кнопку «Изменить». Кнопка «Печать» осуществляет сохранение изменений и формирует документ для печати, как и в случае с добавлением карты. Кнопка «Удалить» осуществляет процесс удаление данной карты, этот процесс не возможен в случае если в карте есть какие-нибудь записи о приеме, прививках или флюорографии. Кнопка «Назад» осуществляет возврат на предыдущую страницу.

Выводы

1. В данном разделе было рассмотрено информационное, программное и техническое обеспечение необходимое для работы разработанного программного продукта. Установлено, что минимальные требования к аппаратуре для клиентской части следующие:

-       процессор с тактовой частотой 233 MГц;

-       128 Мбайт ОЗУ;

-       видеоадаптер поддерживающий разрешение 800×600;

-       150 Mбайт свободного места на диске;

-       принтер с разрешением печати не менее 300 точек/дюйм.

А для серверной части следующие:

-       процессор с тактовой частотой 333 MГц;

-       192 Мбайт ОЗУ;

-       447 Mбайт свободного места на диске.

2. Помимо требований к аппаратуре для работы программы необходимо установить PostgreSQL, HTTP-сервер и Perl с библиотеками Template, CGI, DBI, Spreadsheet::WriteExcel, utf8, Encode, POSIX, CGI::Session, DBI::PgPP.

3.      Также в данной главе приведена краткая инструкция для различных ролей пользователей в программном продукте.

.        Результаты тестирования показали, что программа правильно обрабатывает вводимые данные и выдает ожидаемые выходные данные.

4. технико-ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ ПРОЕКТА

4.1 Краткая характеристика проекта


В дипломном проекте разработан программный продукт для медицинского центра СевКавГТУ.

Назначение разработанного программного продукта - автоматизация работы подразделения медицинского центра СевКавГТУ.

Цель создания информационной системы - сокращение временных затрат сотрудников медицинского центра на оформление и составление отчетности.

Основными функциями данной информационной системы являются: ведение медицинской карты студента с учетом всех посещений, ведение прививочного листа студента, отслеживание прохождения флюорографии студентами, формирование отчетов по сделанным прививкам и пройденных студентами флюорографиях, как по группе, так и по факультету. Так же в системе предусмотрены возможности для администратора и разработчика, которые позволяют отслеживать действия пользователей, следить за несанкционированным доступом (позволяет узнать под каким именем был доступ к системе и с каким адресом) и вести разработку системы (без остановки сервиса целиком).

Информационная система написана с использованием технологии «клиент-сервер». В ней имеется база данных, спроектированная на PostgreSQL, которая является бесплатной, серверная часть написана на Perl и требует HTTP-сервера, а для клиентской части ничего не требуется кроме как браузер. Общее количество строчек кода равно 1000 единиц.

В результате предпроектного обследования было установлено, что вся отчетность набирается сотрудниками медицинского центра на компьютерах вручную, проверка флюорографий происходит во время подготовки отчета и занимает значительное время, так же врачами проверяются все данные, для составления отчета, вручную.

В качестве расчетного периода возьмем пять лет, так как этот период является ориентировочным сроком службы программы до ее морального устаревания.

4.2 Трудоемкость выполняемых работ


При расчете трудоемкости работ по созданию программного продукта, используется расчет себестоимости автоматизированной информационной системы и оценки экономической эффективности внедрения программного продукта.

В ходе разработки программного обеспечения основные затраты Тпо,, чел.-ч., они определяются по формуле:

Тпо = То + Та + Тп + Тотл + Тд, (4.1)

гдеТо - затраты труда на описание задачи, чел.-ч.;

Та - затраты на разработку блок схемы, чел.-ч.;

Тп - затраты на программирование, чел.-ч.;

Тотл - затраты на отладку программы, чел.-ч.;

Тд - затраты на подготовку документации, чел.-ч.

Все составляющие в правой части формулы (4.1) определим через общее число операторов D, ед.:

D = α∙c (1 + p), (4.2)

гдеα - исходное число строчек кода в тексте программы, (α = 1000 ед.);

с − коэффициент сложности задачи(с = 1.05 ... 2);

р - коэффициент коррекции программы, учитывающий новизну проекта.

Таким образом, подставив α = 1000 ед., с = 1,2, p = 0,1 получим:= 1000∙1,2 ∙ (1 + 0,1)=1320 ед.

Затраты труда на описание задачи принимаем: ТО = 13 чел.-ч. Работу по описанию задачи и все другие работы по созданию программного продукта выполняет инженер-программист с окладом 6000 руб. в месяц и коэффициентом квалификации kК = 1.

Затраты труда на изучение задачи ТИ, чел.-ч., с учетом уточнения описания и квалификации программиста могут быть определены по формуле:

ТИ = Db /( su kK ), (4.3)

гдеD - общее число строчек кода в тексте программы, ед.;- коэффициент увеличения затрат труда, вследствие недостаточного

описания задачи;u - количество строчек кода в тексте программы, приходящееся на

один чел.-ч., (ед./ чел.-ч.);K - коэффициент квалификации работника.

В связи с тем, что решение рассматриваемой задачи потребовало уточнения и доработок, примем коэффициент b = 1.

Количество строчек кода в тексте программы, приходящееся на один чел.-ч., примем равным su = 75 ед./ чел.-ч.

Таким образом, на основании формулы (4.3) получим

Затраты труда на разработку алгоритма решения задачи ТА, чел.-ч., рассчитываются по формуле:

ТА = D / (sa kK), (4.4)

где D - общее число строчек кода в тексте программы, ед.;a - количество строчек кода в тексте программы, приходящееся на один чел.-ч., (ед./ чел.-ч.);K - коэффициент квалификации работника.

Для расчета по формуле (4.4) примем sa = 20 ед./ чел.-ч.

Подставив численные значения параметров и коэффициентов в формулу (4.4), получим

ТА = 1320 / (20 × 1) = 66 чел.-ч.

Затраты труда на составление программы по готовой блок-схеме ТП, чел.-ч., определяется по формуле:

ТП = D / (sa kK), (4.5)

Где D - общее число строчек кода в тексте программы, ед.;a - количество строчек кода в тексте программы, приходящееся на

один чел.-ч., (ед./ чел.-ч.);K - коэффициент квалификации работника.

Для расчетов по формуле (4.5) примем sa = 30 ед./ чел.-ч.

Подставив численные значения параметров и коэффициентов в формулу (4.5), получим:

ТП = 1320 / (30 × 1) = 44 чел.-ч.

Затраты труда на отладку программы на персональном компьютере ТОТЛ, чел.-ч., рассчитывается по формуле

ТОТЛ = D / (sотл kK), (4.6)

где D - общее число строчек кода в тексте программы, ед.;отл - количество отлаживаемых операторов программы, приходящееся на один чел.-ч., (ед./ чел.-ч.);K - коэффициент квалификации работника.

Для расчетов по формуле (4.6) примем sотл = 4 ед./ чел.-ч.

Подставив численные значения параметров и коэффициентов в формулу (4.6), получим

ТОТЛ = 1320 / (4 × 1) = 330 чел.-ч.

Затраты труда на подготовку документации по задаче ТД, чел.-ч., определяются по формуле:

ТД = ТДР + ТДО, (4.7)

Где ТДР - затраты труда на подготовку материалов в рукописи, чел.-ч.;

ТДО - затраты труда на редактирование, печать и оформление документации, чел.-ч.

Затраты труда на подготовку материалов в рукописи ТДР, чел.-ч., вычислим по формуле

ТДР = D / (sдр kK), (4.8)

где D - общее число строчек кода в тексте программы, ед.;др - количество операторов программы в рукописи, приходящееся на

один чел.-ч., (ед./ чел.-ч.);K - коэффициент квалификации работника.

Для расчетов по формуле (4.8) примем sдр = 15 ед./ чел.-ч.

Подставив численные значения параметров и коэффициентов в формулу (4.8), получим

ТДР = 1320 / (15 × 1) = 88 чел.-ч.

Затраты труда на редактирование, печать и оформление документации ТДО, чел.-ч., вычислим по формуле

ТДО = 0,75 × ТДР. (4.9)

Подставив численное значение затраты труда на подготовку материалов в рукописи ТДР, чел.-ч., в формулу (4.9), получим

ТДО = 0,75 × 88 = 66 чел.-ч.

Таким образом, подставив численные значение затраты труда на подготовку материалов в рукописи ТДР, чел.-ч., и затраты труда на редактирование, печать и оформление документации ТДО, чел.-ч., в формулу (4.7) получим:

ТД = 88 + 66= 154 чел.-ч.

Подставив все полученные данные, составляющие трудоемкость разработки программного обеспечения в формулу (4.1), получим

ТПО =13 + 66 + 44 + 330 + 154 = 607 чел.-ч.

С учетом уровня языка программирования трудоемкость разработки программы может быть скорректирована следующим образом:

ТКОР = ТПО kКОР, (4.10)

где kКОР - коэффициент коррекции, учитывающий изменения трудоемкости разработки программного обеспечения в зависимости уровня языка программирования (таблица 4.1);

ТКОР - откорректированная трудоемкость разработки программного обеспечения, чел.-ч.

Использованный для разработки программного обеспечения язык программирования Perl относится к алгоритмическим языкам высокого уровня, с учетом этого примем kКОР = 0,8.

Таким образом, получим по формуле (4.10) итоговую откорректированную трудоемкость разработки программы

ТКОР = 607 × 0,8 = 674,4 чел.-ч.

4.3 Расчет себестоимости информационной системы


Себестоимость создания автоматизированной информационной системы З, руб., определяется по следующей формуле

З = ЗО + ЗД + ЗС + ЗЭ + ЗМ + ЗП + ЗАО, (4.11)

где ЗО - основная заработная плата производственного персонала, руб.;

ЗД - дополнительная заработная плата производственного персонала, руб.;

ЗС - отчисления на страховые взносы, руб.;

ЗЭ - затраты на потребляемую электроэнергию, руб.;

ЗМ - расходы на материалы и запасные части, руб.;

ЗП - затраты на техническое обслуживание и текущий ремонт вычислительной техники, руб.;

ЗАО - затраты на амортизацию вычислительной техники, руб.

Плановый фонд рабочего времени одного специалиста производственного персонала в месяц tпф, ч, вычислим по формуле

пф = Nрд Δtрд, (4.12)

где Nрд - количество рабочих дней специалиста производственного персонала за месяц;

Δtрд - продолжительность рабочего дня специалиста производственного персонала, ч.

Для расчетов по формуле (4.12) примем Nрд = 22 дня, Δtрд = 8 ч. Подставив указанные численные значения параметров Nрд и Δtрд в формулу (4.12) получим, что плановый фонд рабочего времени одного специалиста производственного персонала в месяц составляетпф = 22 × 8 = 176 ч.

Таким образом, часовая тарифная ставка sч, руб./ч, инженера-программиста первой категории составляет ч = 6000 / 176 = 37,5 руб./ч

Основная заработная плата ЗО, руб., производственного персонала определяется по формуле

ЗО = sч × ТКОР. (4.13)

Подставив все численные значения параметров в формулу (4.13) получим, что основная заработная плата инженера-программиста первой категории составит

ЗО = 37,5 × 674,4 = 25290 руб.

Дополнительная заработная плата ЗД, руб. не начисляется.

Отчисления в Пенсионный фонд Российской Федерации, Фонд социального страхования Российской Федерации и фонды обязательного медицинского страхования Российской Федерации ЗС, руб., вычислим по формуле

ЗС = ((ЗО + ЗД) / 100) × hС, (4.14)

где ηС − норматив страховых взносов, %.

Норматив страховых взносов составляет 34 %.

Подставив все численные значения в формулу (4.14) получим, что отчисления на страховые взносы равны

ЗС =(25290 / 100) × 34% = 8598,6 руб.

Затраты на потребляемую электроэнергию ЗЭ, руб.:

ЗЭ = PВ tВ цЭ, (4.16)

гдеPВ - мощность ЭВМ, кВт;В - время работы вычислительного комплекса, ч;

цЭ - стоимость 1 кВтч электроэнергии, руб./ кВтч.

Мощность ЭВМ равна 0,3 кВт.

Время работы вычислительного комплекса tв, ч, при создании программного продукта вычислим по формуле

в = αп∙(ТП + ТД + ТОТЛ)∙ kКОР, (4.17)

где αп - коэффициент, учитывающий затраты времени на профилактические работы на ЭВМ.

Для расчетов по формуле (4.17) примем αп = 1,15 и kКОР = 0,8. Подставив все численные значения параметров в формулу (4.17) получим:В = 1,15 × (44 + 154 + 330) × 0,8 = 485,76 ч.

Стоимость 1 кВтч электроэнергии составляет цЭ = 3,60 руб./ кВтч.

Подставив все численные значения параметров в формулу (4.16) получим, что затраты на потребляемую электроэнергию составят

ЗЭ = 0,3 × 485,76 × 3,60 = 410,95 руб.

Данные для расчета затрат на материалы и запасные части занесем в таблицу 4.2.

Таблица 4.2 - Данные для расчета затрат на материалы и запасные

Наименование

Единица измерения

Коли-чество

Цена за единицу, руб.

Сумма, руб.

CD-RW - диск

Штук

1

25,00

25,00

Бумага

Пачка

1

150,00

150,00

Заправка картриджа принтера Samsung ML-1615

Шт.

1

120,00

120,00

Итого

295,00


Следовательно, затраты на материалы и запасные части ЗМ составят

ЗМ = 25,00 + 150,00 + 120,00 = 295,00 руб.

Затраты на техническое обслуживание и текущий ремонт вычислительной техники ЗП, руб.:

ЗП = КВ × (α / 100) × ( tВ / tВ.Г)(4.18)

где КВ − балансовая стоимость вычислительной техники, руб.

α - норма отчислений на ремонт, %;В.Г - годовой фонд времени работы вычислительной техники, ч.

Для расчетов по формуле (4.18) примем:

-  балансовая стоимость вычислительной техники KB = 21658,00 руб.;

-       норма отчислений на ремонт α = 4%;

-       годовой фонд времени работы вычислительной техники при 48-часовой рабочей неделе в текущем году tВ.Г = 1986 ч.

Подставив все численные значения параметров в формулу (4.18) получим, что затраты на техническое обслуживание и текущий ремонт вычислительной техники составят:

ЗП = 21658 × (4 / 100) × (485,76 / 1986) = 199,25 руб.

Затраты на амортизацию вычислительной техники АОЗ , руб.:

ЗАО = КВ × (β / 100) × ( tВ / tВ.Г) (4.19)

где β - норма отчислений на амортизацию вычислительной техники, %, которая составляет 20%.

ЗАО = 21658 × (20 / 100) × (485,76 / 1986) = 996,27 руб.

Все расчеты по статьям калькуляции затрат, составляющих себестоимость автоматизированной информационной подсистемы сведены в таблицу 4.3.

Таблица 4.3 - Величины затраты, составляющих себестоимость автоматизированной информационной системы

Статья расхода

Сумма, руб.

1

2

Основная заработная плата производственного персонала

25290,00

Отчисления на страховые взносы

8598,60

Затраты на потребляемую электроэнергию

410,95

Расходы на материалы и запасные части

295,00

Затраты на техническое обслуживание и ремонт вычислительной техники

199,25

Затраты на амортизацию вычислительной техники

996,27

Итого

35790,07


Таким образом, полные затраты на создание программного продукта З составляют

З = 25290 + 8598,6 + 410,95 + 295 + 199,25 + 996,27 = 35790,07 руб.

4.4 Оценка экономической эффективности внедрения программного продукта


Показатель эффекта определяет все позитивные результаты, достигаемые при использовании программного продукта. Прибыль от использования программного продукта за год эксплуатации П, руб., определяется по формуле

П = Э - ЗИСП.,(4.21)

где Э - стоимостная оценка результатов применения программного продукта в течение года, руб.;

ЗИСП. - стоимостная оценка затрат при использовании программного продукта в течение года, руб.

Приток денежных средств из-за использования программного продукта Э, руб., в течение года может составить:

Э = (ЗРУЧ - ЗАВТ) + ЭДОП, (4.22)

где ЗРУЧ - затраты на ручную обработку информации, руб.;

ЗАВТ - затраты на автоматизированную обработку информации, руб.;

ЭДОП - дополнительный экономический эффект, связанный с уменьшением числа используемых бланков, высвобождением рабочего времени и т.д., руб.

Данный продукт используется двумя сотрудниками медицинского центра СевКавГТУ. Заработная плата сотрудника - 8000 руб., Nрд = 22 дней, Δtрд = 8 ч. Тогда, цена одного часа работы цЧ, руб./ч, составит

цЧ = 8000 / 160 = 50 руб./ч.

В таблице 4.4 приведены данные, полученные в ходе тестирования программы, о времени, затрачиваемом на обработку информации вручную и при использовании программного продукта за один месяц.

Таблица 4.4 − Данные о времени, затрачиваемом на обработку информации вручную и при использовании программного продукта за один месяц одним врачом

Наименование работы

tР, ч.

tА, ч.

Обработка информации

70

20

Составление, оформление и анализ отчетов

40

0,5

Итого

110

20,5


- tР - затраты на ручную обработку информации в месяц, ч.;

tА - затраты на автоматизированную обработку информации в месяц, ч.

Из данных таблицы 4.4 следует, что общие затраты времени на ручную обработку информации в месяц tОБЩ. Р, ч, одним сотрудником, составляют 110 ч, а общие затраты на автоматизированную обработку информации - tОБЩ. А = 20,5 ч.

Годовые затраты (затраты за 12 месяцев) двух сотрудников медицинского центра, при ручной обработке информации вычислим по формуле:

ЗРУЧН = tОБЩ. Р × 12 × цЧ. × 2(4.23)

Годовые затраты (затраты за 12 месяцев) офис-менеджера при автоматизированной обработке информации вычислим по формуле

ЗАВТ = tОБЩ. А × 12 × цЧ. × 2(4.24)

Получим:

ЗРУЧН = 110 × 12 × 50 × 2 = 66000 руб.

ЗАВТ = 20,5 × 12 × 50 × 2 = 12300 руб.

Следовательно, годовой эффект от внедрения программного продукта, даже без учета дополнительный экономический эффекта (ЭДОП = 0), на основании формулы (4.22), получится равным:

Э = 66000 - 12300 = 53700 руб.

Эксплуатационные затраты при использовании программного продукта состоят из затрат на электроэнергию, техническое обслуживание, текущий ремонт вычислительно техники и затрат на амортизацию вычислительной техники.

На основании формулы (4.16), для персонального компьютера сотрудника за 12 месяцев затраты на электроэнергию при потребляемой мощности компьютера PВ =0,3 кВт составят (стоимость электроэнергии цЭ = 3,60 руб./кВт-ч.)

ЗЭ = 0,3 × 20,5 × 12 × 2,82 × 2 = 208,12 руб.

Балансовая стоимость вычислительной техники KB = 21658,00 руб. Тогда, на основании формулы (4.18), для персонального компьютера офис-менеджера за 12 месяцев затраты на техническое обслуживание и текущий ремонт составят:

ЗП = 21658 × 0,04 × (12 × 20,5 / 2112) × 2 = 100,91 руб.

Затраты на амортизацию вычислительной техники по формуле (4.19) составят

ЗАО = 21658 × 0,2 × (12 × 20,5 / 2112) × 2= 504,53 руб.

Тогда, эксплуатационные затраты при использовании программного продукта составят:

ЗИСП = 208,12 + 100,91 + 504,53 = 813,56 руб.

Прибыль от использования программного продукта за год рассчитаем по формуле (4.21):

П = 53700 - 813,56 = 52886,44 руб.

Таким образом, имеем следующий денежный поток:

0 шаг (капиталовложения) - 35790,07 руб.;

1 шаг - 52886,44 руб.;

шаг - 52886,44 руб.;

шаг - 52886,44 руб.;

шаг - 52886,44 руб.

Чистый дисконтированный доход ЧДД, руб., от использования программного продукта определим по формуле:

(4.25)

где N - расчетный период, год;

ПK - прибыль от использования программного продукта за k-й год его эксплуатации, руб.;

Е - норма дисконта, %;- капиталовложения при внедрении программного продукта, руб.

Следовательно, ЧДД, руб., при N = 5, т. е. за пять лет использования программного продукта (срок до морального старения данного программного продукта) при норме дисконта E = 20% в соответствии с формулой (4.25) составит:

Приходим к выводу, что ЧДД − положителен, т. е. проект эффективен.

Внутреннюю норму доходности проекта Eвн, %, определим по формуле

,

(4.26)

информационный система medic программа

где Евн. MAX + - максимальное значение внутренней нормы дисконта, %, при которой ЧДД является положительной величиной (ЧДД > 0);

Евн. MIN - - минимальное значение внутренней нормы дисконта, %, при

которой ЧДД является отрицательной величиной (ЧДД < 0);

- ЧДД, руб., вычисленный по формуле (4.25) при подстановке нормы дисконта Е=;

-ЧДД, руб., вычисленный по формуле (4.25) при подстановке нормы дисконта Е=.

Предполагаем, что EВН лежит в диапазоне 144 ... 149%. При норме дисконта EВН = 144% получаем ЧДД =511,96 руб. Таким образом, при норме дисконта EВН = 144% ЧДД - положителен.

При норме дисконта EВН = 149% получаем ЧДД = -666,64 руб. Таким образом, при норме дисконта EВН = 149% ЧДД - отрицателен.

Следовательно, по формуле (4.26) имеем:

%

Рассчитаем срок окупаемости проекта. Срок окупаемости проекта Tок, год, найдем по формуле

(4.27)

где N - максимальное количество лет, прошедших с начала эксплуатации программного продукта, в течение которых величина дохода от его использования не превысила величины капиталовложения при внедрении программного продукта;

Эj- величины приведенных (дисконтированных) годовых эффектов за j-й год, руб., прошедший с начала эксплуатации программного продукта, вычисленные по формуле (4.25) при подстановке нормы дисконта E = 20%.

Величина приведенного (дисконтированного) годового эффекта за первый год расчетного периода по формуле (4.25) равна:

Э1 =  = 44072,03 руб.

что больше величины капиталовложений (K = 35790,07 руб.).

Тогда, в формуле (4.27) имеем N = 0 и срок окупаемости составит

 года,

4.5 Основные технико-экономические показатели проекта


Для удобства анализа, все основные технико-экономические показатели проекта сведены в таблицу 4.5.

Таблица 4.5 − Основные технико-экономические показатели проекта

Основные характеристики

Единицы измерения

Проект

Итоговая трудоемкость разработки

чел.-ч.

674,4

Полные затраты на создание программного продукта

руб.

35790,07

Годовой экономический эффект от внедрения программного продукта

руб.

44072,03

Прибыль от внедрения и использования программного продукта

руб.

52886,44

Срок окупаемости проекта

год

0,67


Выводы

1.  В процессе анализа технико-экономического обоснования разработки информационной системы для медицинского центра СевКавГТУ, было экономически обоснована рентабельность разработки.

2.      Затраты на разработку информационной системы составили 35790,07 руб.

.        Трудоемкость разработки проекта составила 674,4 чел-ч.

4.      Годовой экономический эффект от внедрения программного продукта составляет 53700 руб.

.        Внутренняя норма доходности - 146,15%

6.      После внедрения программного продукта ежемесячные затраты времени сотрудника медицинского центра сократится со 110 до 20,5 часов, то есть в более чем пять раз.

.        Срок окупаемости информационной подсистемы составляет 0,67 года.

8.  Разработка информационной системы для медицинского центра СевКавГТУ является экономически обоснованной и эффективной.

ЗАКЛЮЧЕНИЕ

Основным результатом дипломного проектирования является разработка информационной системы «Medic».

В результате дипломного проектирования было показано, что:

-  итоговая трудоемкость разработки программного продукта составляет 674,4 чел.-ч.;

-       полные затраты на создание программного продукта -35790,07 руб.;

-       годовой эффект от внедрения программного продукта - 53700 руб.;

-       годовая прибыль от внедрения и использования программного продукта - 52886,44;

-       срок окупаемости проекта 0,67 года.

После внедрения программного продукта ежемесячные затраты времени сотрудника медицинского центра сократится со 110 до 20,5 часов, то есть в более чем пять раз.

Таким образом, приходим к заключительному выводу о том, что разработка информационной системы «Medic» является экономически обоснованной и эффективной.

К перспективным направлениям развития темы дипломного проекта можно отнести расширение функциональных возможностей разработанной информационной системы: страницы для составления и отображения расписания врачей, страницы, при помощи которых врач будет сам создавать новые отчеты и предавать им требуемые формы и как следствие из этого, использование HTML5.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1.    Аппак М.А. Автоматизированные рабочие места на основе персональных ЭВМ [Текст] / М.А. Аппак - М.:Радио и связь, 1989. - 400 с.

2.      Буч Г. Язык UML для пользователя: Пер. с англ. [Текст]/ Г. Буч, Д. Рамбо, А. Джекобсон. - М.: ДМК, 2000. − 432 с.

.        Голицына О.Л. Основы алгоритмизации и программирования (2-е издание) И.И. Попов, О.Л. Голицына. - М.: Инфа-М, 2006. - 432 с.

.        Дейтел Х.М. Как программировать на Perl [Текст]/ Х.М. Дейтел, П.Дж. Дейтел, Т.Р. Нието, Д.К. МакФай. - М: Бином, 2002. - 547 с.

.        Декарт А. Программирование на Perl DBI [Текст]/ А. Декарт, Т. Банс. - Спб.: Символ-Плюс, 2000. - 700 с.

.        Диго С.М. Проектирование и использования баз данных [Текст]/ С.М. Диго. - М.: Финансы и статистика, 1995. - 200 с.

.        Карпова Т. Базы данных. Модели, разработка, реализация [Текст]/ Т. Карпова. - Спб.: Питер, 2001. - 304 с.

.        Киммел, П. UML. Основы визуального анализа и проектирования [текст]/ П. Киммел. - М.: НТ Пресс, 2008. - 272 с.

.        Киммел П. UML. Универсальный язык программирования [текст]/ П. Киммел. - СПб.: НТ Пресс, 2008. - 272 с.

.        Когаловский М.Р. Технология баз данных на персональных ЭВМ [Текст]/ М.Р. Когаловский. - Киев: Радиоэлектроника, 2004. - 270 с.

.        Колесов Ю.Б. Моделирование систем. Объектно-ориентированный подход [текст]/ Ю.Б. Колесов, Ю.Б. Сениченков. - СПб.: БХВ-Петербург, 2006. - 192 с.

12.    Конноли Т. Базы данных. Проектирование, реализация и сопровождение. Теория и практика. [Текст]/ Т. Конноли, К. Бегг - СПб.; М.: Киев: изд. дом Вильяме, 2001. - 1120 с.

.        Крёнке Д. Теория и практика построения баз данных [Текст]/ Д. Крёнке - СПб.: Питер, 2003. - 800 с.

.        Левитин А.В. Алгоритмы. Введение в разработку и анализ [Текст]/ А.В. Левитин. - М.: Вильямс, 2006 - 576 с.

.        Маклнтош Дж. Perl & XML библиотека программиста [Текст]/ Дж. Маклнтош, Эрик Т. Рэй. - СПб.: Питер, 2003. - 207 с.

.        Мартин Дж. Организация баз данных в вычислительных системах [Текст]/ Дж. Мартин. - М.: Мир, 1978. - 700 с.

.        Мельтцер К. Разработка CGI-приложений на Perl [Текст]/ К. Мельтцер, Б. Михальски. - М.: Вильямс, 2001. - 574 с.

.        Петров А.И. Информационные системы [Текст]/ А. И. Петров. - М.: Горячая линия-Телеком, 2000. - 300 с.

.        Стаблибайн Т. Регулярные выражения. Карманный справочник [Текст]/ Т. Стаблибайн. - СПб.: Питер, 2004. - 160 с.

.        Уолл Л. Программирование на Perl [Текст]/ Л. Уолл, Т. Кристиансен, Дж. Орвант. - СПб.: Символ, 2005. - 1150 с.

.        Уорсли Дж. PodtgreSQL для профессионалов [Текст]/ Дж. Уорсли, Дж. Дрейк. - СПб.: Питер, 2003. - 496 с.

.        Фридл Дж. Регулярные выражения [Текст]/ Дж. Фридл. - СПб.: Питер, 2003. - 723 с.

Приложение А

 

Окна редактора медицинских карт


Рисунок А.1 - Добавление карты

Рисунок А.2 - Не заполненные поля карты

Рисунок А.3 - Выбор медицинской карты для редактирования

Рисунок А.4 - Редактирование медицинской карты

Приложение Б

 

Листинг модулей информационной системы «Medic»


Б.1 Код модуля «ConnectDB.pm»

#!C:\www\Perl5.8.9\bin\perlmodules::ConnectDB;strict;warnings;modules::dbase;SelectFromDB{$h = $_[2] || '0';$dbMedic = modules::dbase->new();

$dbMedic->dbConnect();

#my $query = qq"SET client_encoding TO 'UTF8'";

#my $result = $dbMedic->execSelect(\$query);$query = qq"SET DATESTYLE TO 'GERMAN, DMY'";$result = $dbMedic->execSelect(\$query);

$query = qq"$_[1]";

$result = $dbMedic->execSelect(\$query);

#print qq"<br />Erorr: -----> $result";($result eq 1){qq"<span>Операция не может выполнена. Обратитесь к админестратору.</span>";

}

{if($h ne 0){$co = CGI->new();@qq = $co->Vars;$ses = $co->param('ses');$now = localtime time;

$query =~ s/\'/\\\'/g;($h eq 1){

#print "<br><br>--->$ENV{'REMOTE_ADDR'}";

$dbMedic->execSelect(\qq[insert into transaction_history(request_date, query_data, data_param, sot_id) values('$now', E'$query', '@qq', (SELECT id_sot FROM sesion WHERE sesion = '$ENV{'ses'}'))]);

}($h eq 2){

#print "<br><br>--->$ENV{'REMOTE_ADDR'}";

$dbMedic->execSelect(\qq[insert into history_connections(request_date, query_data, data_param, ip_adress) values('$now', E'$query', '@qq', '$ENV{REMOTE_ADDR}')]);

}($h eq 3){

#print "<br><br>--->$ENV{'REMOTE_ADDR'}";

$dbMedic->execSelect(\qq[insert into history_session(request_date, query_data, data_param, ip_adress) values('$now', E'$query', '@qq', '$ENV{REMOTE_ADDR}')]);

}

}

}

$dbMedic->dbDisconnect();$result;

}

;

Б.2 Код модуля «exel_card.pm»

#!C:\www\Perl5.8.9\bin\perlmodules::exel_card;strict;warnings;Spreadsheet::WriteExcel;utf8;Encode;POSIX qw(strftime);modules::ConnectDB;NewExel{

###################################Получение данных из базы####################################$query = qq"SELECT a.id_card AS id_card,.surname_stud AS surname_stud,.name_stud AS name_stud,.middlename_stud AS middlename_stud,

(SELECT name_gr FROM group_fac WHERE id_gr = b.id_gr) AS name_grp,

(SELECT name_fac FROM faculty WHERE id_fac = (SELECT id_fac FROM group_fac WHERE id_gr = b.id_gr)) AS name_fac,.policy AS policy,.number_passport AS number_passport,.sex AS sex,.birthday AS birthday,.home_fone AS home_fone,.mob_fone AS mob_fone,

(SELECT region FROM region WHERE id_region = a.id_region) AS region,

(SELECT town FROM town WHERE id_town = a.id_town) AS town,

(SELECT area FROM area WHERE id_area = a.id_area) AS area,.streat AS streat,.house AS house,.case_ AS case_,.kv_num AS kv_num,.stav_streat AS stav_streat,.stav_house AS stav_house,.stav_case AS stav_case,.stav_kv_num AS stav_kv_numcard aJOIN students b ON a.id_stud = b.id_studa.id_card = '$_[1]'";$result = modules::ConnectDB->SelectFromDB($query);

###############################################################################################$file = "card_".time.".xls";$workbook = Spreadsheet::WriteExcel->new("../htdocs/Excel/$file");$worksheet = $workbook->add_worksheet("Лист 1");

$worksheet->hide_gridlines();

##########################################Форматы ячеек########################################$format = $workbook->add_format(font => 'Times New Roman',=> 10,=> 'center');$format1 = $workbook->add_format(font => 'Times New Roman',=> 10,=> 'center');

$format1->set_underline(1);$format2 = $workbook->add_format(font => 'Times New Roman',=> 10,=> 'center');

$format2->set_font_script(1);$format_head = $workbook->add_format(font => 'Times New Roman',=> 12,=> 'center');

#$format_head->merge_range('A1:D1', 'Vertical and horizontal', $format_head);$format_cell = $workbook->add_format(font => 'Times New Roman',=> 12);

#$format_cell->set_size(30);

#$format_cell->set_shrink(1);

#$format_cell->set_align('fill');

#$format_cell->set_center_across(1);

#$format_cell->set_text_wrap();

$worksheet->set_column(0, 0, 29.43, $format_cell);

$worksheet->set_column(1, 0, 32.71, $format_cell);

$worksheet->set_column(2, 0, 23.29, $format_cell);

##########################################Вставка данных в ячейки##############################

my $i;

#$worksheet->merge_range('A1:D1', decode('utf-8',"$_[4]"), $format_head);

#########################################################################

$worksheet->write('A2', ' СевКавГТУ ',$format1);

$worksheet->write('A3', 'наименование учереждения',$format2);

#########################################################################

$worksheet->write('C1', 'Код формы по ОКУД:',$format);

$worksheet->write('C2', 'Код учереждения по ОКПО:',$format);

$worksheet->write('C3', 'Медицинская документация',$format);

$worksheet->write('C4', 'Форма № 025/у',$format);

#########################################################################my $key (@$result) {

#$key->{'id_gr'}

$worksheet->merge_range('A7:C7', qq"МЕДИЦИНСКАЯ КАРТА АМБУЛАТОРНОГО БОЛЬНОГО №".decode('utf-8',"$key->{'id_card'}"), $format_head);

$worksheet->merge_range('A9:C9', qq"ФИО студента: ".decode('utf-8',"$key->{'surname_stud'}").' '.decode('utf-8',"$key->{'name_stud'}").' '.decode('utf-8',"$key->{'middlename_stud'}"), $format_head);

$worksheet->write('A11', 'Факультет: '.decode('utf-8',"$key->{'name_fac'}"),"font => 'Times New Roman', size => 12");

$worksheet->write('B11', 'Группа: '.decode('utf-8',"$key->{'name_grp'}"),"font => 'Times New Roman', size => 12");

$worksheet->write('A12', '№ полиса: '.decode('utf-8',"$key->{'policy'}"),"font => 'Times New Roman', size => 12");

$worksheet->write('B12', '№ паспорта: '.decode('utf-8',"$key->{'number_passport'}"),"font => 'Times New Roman', size => 12");$sex;($key->{'sex'} eq 1) {$sex = 'Мужской';}($key->{'sex'} eq 2) {$sex = 'Женский';}{$sex = '-';}

$worksheet->write('A14', 'Пол: '.$sex,"font => 'Times New Roman', size => 12");

$worksheet->write('B14', 'Телефон домашний: '.decode('utf-8',"$key->{'home_fone'}"),"font => 'Times New Roman', size => 12");

$worksheet->write('A15', 'Дата рождения: '.decode('utf-8',"$key->{'birthday'}"),"font => 'Times New Roman', size => 12");

$worksheet->write('B15', 'Телефон сотовый: '.decode('utf-8',"$key->{'mob_fone'}"),"font => 'Times New Roman', size => 12");

$worksheet->write('A17', 'Адрес больного:',"font => 'Times New Roman', size => 12");

$worksheet->write('B17', 'регион: '.decode('utf-8',"$key->{'region'}"),"font => 'Times New Roman', size => 12");

$worksheet->write('C17', 'район: '.decode('utf-8',"$key->{'area'}"),"font => 'Times New Roman', size => 12");

$worksheet->write('B18', 'город: '.decode('utf-8',"$key->{'town'}"),"font => 'Times New Roman', size => 12");

$worksheet->write('C18', 'улица: '.decode('utf-8',"$key->{'streat'}"),"font => 'Times New Roman', size => 12");

$worksheet->write('B19', 'дом №: '.decode('utf-8',"$key->{'house'}"),"font => 'Times New Roman', size => 12");$case_ = $key->{'case_'} || '-';

$worksheet->write('C19', 'корпус: '.$case_,"font => 'Times New Roman', size => 12");$kv_num = $key->{'kv_num'} || '-';

$worksheet->write('B20', 'квартира №: '.$kv_num,"font => 'Times New Roman', size => 12");

$worksheet->write('A22', 'Адрес в Ставрополе:',"font => 'Times New Roman', size => 12");$stav_streat = $key->{'stav_streat'} || '-';

$worksheet->write('B22', 'улица: '.decode('utf-8',$stav_streat),"font => 'Times New Roman', size => 12");$stav_house = $key->{'stav_house'} || '-';

$worksheet->write('C22', 'дом №: '.decode('utf-8',$stav_house),"font => 'Times New Roman', size => 12");$stav_case = $key->{'stav_case'} || '-';

$worksheet->write('B23', 'корпус: '.decode('utf-8',$stav_case),"font => 'Times New Roman', size => 12");$stav_kv_num = $key->{'stav_kv_num'} || '-';

$worksheet->write('C23', 'квартира №: '.decode('utf-8',$stav_kv_num),"font => 'Times New Roman', size => 12");

}$file;

}

;

Б.3 Код модуля «kernel.pm»

#!C:\www\Perl5.8.9\bin\perlmodules::kernel;strict;warnings;modules::ConnectDB;modules::ses;Templete;check_login {( $login, $pass, $wnd ) = ( $_[1], $_[2], $_[3] );$q;$id_s;$title;$CGISESSID;$query = qq"SELECTWHEN name = '$login' and pass = md5('$pass') THEN 1 ELSE 0 END AS result,_sotsot";$result = modules::ConnectDB->SelectFromDB($query);my $key (@$result) {( $key->{'result'} ) { $q = 1; $id_s = $key->{'id_sot'}; last; }{ $q = 0; }

}( $q == 1 ) { $CGISESSID = get_session('modules::kernel', $wnd, $id_s); }{ $CGISESSID = "Error"; $title = 'Не верно ввели имя или пароль'; }$CGISESSID, $title, $id_s;

}get_session {( $CGISESSID, $u_ip ) = modules::ses->new_ses();($wnd, $id_s) = ($_[1], $_[2]);$now = localtime time;$query ="select * from ses(\'$id_s\', \'$CGISESSID\', \'$now\', \'$u_ip\', \'$wnd\' )";$result = modules::ConnectDB->SelectFromDB($query, 3);$CGISESSID;

}read_last_page {$query = qq"SELECT last_wnd FROM sesion where id_sot = (select id_sot from sot where name ='$_[1]' and pass = md5('$_[2]'))";$result = modules::ConnectDB->SelectFromDB($query);$q = 0;my $key (@$result) {

$q = $key->{'last_wnd'};

}$q;

}query_file {$query = qq(SELECT file_ FROM wnd where id_button = '$_[1]');$result = modules::ConnectDB->SelectFromDB($query);$q =0;my $key (@$result) {

$q = $key->{'file_'};

}$q;

}user_id {($login, $pass, $ses) = ($_[1], $_[2], $_[3]);$query;($login eq '' or $pass eq '0' and $ses ne '0') {

$query = qq"SELECT id_sot FROM sesion WHERE sesion = '$ses'";

}($login ne '' and $pass ne '0') {

$query = qq"SELECT id_sot FROM sot WHERE name = '$login' AND pass = md5('$pass')";

}{ return 0;}$result = modules::ConnectDB->SelectFromDB($query, 2);$q =0;my $key (@$result) {

$q = $key->{'id_sot'};

}$q;

}

;

Б.4 Код модуля «ses.pm»

#!C:\www\Perl5.8.9\bin\perlmodules::ses;strict;warnings;CGI::Session('-ip_match');modules::ConnectDB;new_ses {#создание новой сессии

my $session = CGI::Session->new("driver:File", undef, {Directory=>'/var/www/vhosts/medic/tmpsession'});$CGISESSID = $session->id();

$session->flush();$u_ip = $session->param('_SESSION_REMOTE_ADDR');

$session->delete();

$session->flush(); $CGISESSID, $u_ip;#возвращает IP-пользователя и его ID-сессии

}

sub check_ses {#функция проверки сесси

my ($CGISESSID, $id) = ($_[1], $_[2]);$res = 0;$query = "SELECT * FROM check_ses(\'$CGISESSID\',\'$id\')";#check_ses() смотри в БД$result = modules::ConnectDB->SelectFromDB($query);my $key (@$result) {($key->{'check_ses'} == 1) {1;

}($key->{'check_ses'} == 0){0;

}{-1;

}

}

}

;

Б.5 Код модуля «Templete.pm»

#!C:\www\Perl5.8.9\bin\perlTemplete;strict;warnings;modules::ConnectDB;

#print "Content-type: text/html\n\n";

#<HTML>

sub gen_menu{#функция генерации меню для пользователя

my $log_id = $_[1];$query = qq"SELECT a.sot_id AS sot_id,

(SELECT q.name_func FROM func q WHERE a.func_id = q.func_id) AS name_func,

(SELECT w.rus_name FROM func w WHERE a.func_id = w.func_id) AS rus_name,

(SELECT e.name FROM wnd e WHERE a.wnd_id = e.id_button) AS name_wnd,.wnd_id,

(SELECT r.file_ FROM wnd r WHERE a.wnd_id = r.id_button) AS file_,.t_f AS t_fsot_func a a.t_f = 'true' AND a.func_id = '8' AND a.sot_id = '$log_id'BY name_wnd";$result = modules::ConnectDB->SelectFromDB($query);$result;

}name_wnd{$res;$query = qq"SELECT * FROM wnd WHERE id_button = '$_[1]' ORDER BY name";$result = modules::ConnectDB->SelectFromDB($query);my $key (@$result) {

$res = "($key->{'id_button'}) $key->{'name'}";

}$res;

}

;

Б.6 Код шаблона «start_page.tt»

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"#"523233.files/image035.jpg">

Слайд 1 - Тема дипломного проекта, ФИО дипломника, ученая степень, ученое звание и ФИО руководителя

Слайд 2 - Актуальность и цель дипломного проекта

Слайд 3 - Даталогическая модель базы данных

Слайды 4 - Интерфейс информационной системы

Слайды 5 - Интерфейс информационной системы

Слайды 6 - Права и группы пользователей

Слайды 7 - Права и группы пользователей

Слайды 8 - Пример медицинской карты, формируемый информационной системой

Слайды 9 - Примеры списков флюорографии, формируемый информационной системой

Слайд 10 - Показатели технико-экономической эффективности проекта

Слайд 11 - Итоги дипломного проектирования

Похожие работы на - Разработка информационной системы управления данными для медицинского центра СевКавГТУ, г. Ставрополь

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!