96022

Учет лиц из категорий граждан, поименованных в ФЗ «О ветеранах» и их медицинского обслуживания

Дипломная

Информатика, кибернетика и программирование

Система автоматизации «Район». Автоматизированная система «Делопроизводство». Система автоматизации учета и управления «Ветераны труда». Автоматизированная система учета «Очередь». Анализ предметной области. СУБД Visual FoxPro. Инфологическая модель. Проектирование структуры базы данных. Определение трудоемкости разработки.

Русский

2015-10-02

786.5 KB

0 чел.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

ВОТКИНСКИЙ ФИЛИАЛ    ИжГТУ

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

К  защите  допустить “____”_________ 2001 г

Зав. кафедрой

_________ Кузнецов А.П.

дипломный проект

Тема: Учет лиц из категорий граждан, поименованных в ФЗ «О ветеранах» и их медицинского обслуживания

РАСЧЕТНО-ПОЯСНИТЕЛЬНАЯ   ЗАПИСКА

Выполнил студент группы   Д-1061 _________ Cоснова Н.А.

Руководитель проекта вед. специалист _________ Сухова О.А.

Горздравотдела

Консультант  по профессор, д.т.н. _________  Сентяков Б.А.

охране труда

Консультант   по эко- доцент, к.т.н. _________  Тарасов В.Г.

номической части

Председатель  экс- доцент,  к.т.н. _________  Кузнецов А.П.

пертной  комиссии

Воткинск,  2001


СОДЕРЖАНИЕ

ВВЕДЕНИЕ.............................................................................................................. 3

1. ОБЗОР СУЩЕСТВУЮЩИХ СИСТЕМ АВТОМАТИЗАЦИИ....................... 5

  1.   Автоматизированная система «Регистрация юридических и физических лиц »............................................................................................................... 6
    1.   Система автоматизации «Район»................................................................ 7
    2.   Автоматизированная система «Делопроизводство»................................. 7
    3.   Система  автоматизации учета и управления «Ветераны труда»............ 8
    4.   Автоматизированная система учета «Очередь»........................................ 9
    5.   Анализ предметной области........................................................................ 9
  2.  ОБЗОР СРЕДСТВ РЕАЛИЗАЦИИ.................................................................... 16
    1.   Среда разработки Delphi/InterBase.............................................................. 16
    2.   СУБД Visual FoxPro...................................................................................... 19
    3.   СУБД Access.................................................................................................. 21
  3.  ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ............................................................ 25
    1.   Инфологическая модель............................................................................... 25
    2.   Проектирование структуры базы данных................................................... 28
  4.  РАЗРАБОТКА ПРИЛОЖЕНИЯ......................................................................... 41
  5.  ЭКОНОМИЧЕСКАЯ ЧАСТЬ............................................................................. 69
    1.   Определение трудоемкости разработки...................................................... 69
    2.   Определение затрат ...................................................................................... 73
    3.   Определение годового экономического эффекта от  внедрения системы........................................................................................................... 75
  6.  ОХРАНА ТРУДА................................................................................................. 77
    1.   Условия труда пользователя. Методы их улучшения............................... 77
    2.   Планировка помещения Горздравотдела с учетом удобства пользователя (оператора) ПК............................................................................................... 81
    3.   Организация рабочего места с учетом требований эргономики.............. 82
    4.   Организация режима труда и отдыха.......................................................... 84
    5.  Пожаро- и взрывобезопасность.................................................................... 85
  7.  ЗАКЛЮЧЕНИЕ.................................................................................................... 88
  8.  ИСТОЧНИКИ, ИСПОЛЬЗОВАННЫЕ ПРИ РАЗРАБОТКЕ........................... 89
  9.  ПРИЛОЖЕНИЕ. Графическая часть................................................................. 91


ВВЕДЕНИЕ

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

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

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

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

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

Работа состоит из 6  глав:

  1.  Обзор  существующих систем автоматизации в  отделах администрации города.
  2.  Обзор средств реализации. В данной главе рассматриваются достоинства и недостатки существующих средств разработки.
  3.  Проектирование базы данных. На основе анализа процессов предметной области строится инфологическая и даталогическая модели базы данных и описываются атрибуты.
  4.  Разработка приложения. Рассматривается реализация приложения с использованием выбранного средства разработки.
  5.  Экономическая часть. Рассчитывается трудоемкость разработки, затраты на разработку и предполагаемый эффект от внедрения.
  6.  Охрана труда. Рассматриваются методы по улучшению условий работы пользователей персональных компьютеров в помещении отдела.

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


1. ОБЗОР СУЩЕСТВУЮЩИХ СИСТЕМ АВТОМАТИЗАЦИИ

Горздравотдел принадлежит к системе  администрации г. Воткинска, имеющей различные подразделения и отделы, которые составляют информационную сеть и все их данные стекаются на сервер администрации. Необходимо отметить, что некоторые отделы  физически к сети администрации пока не присоединены (на рис. 1.1 обозначены пунктиром), но это планируется сделать в ближайшие 1-2 года.   

Рис. 1.1. Структура информационной сети администрации г.Воткинска

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

1.1. Автоматизированная система «Регистрация юридических и физических лиц» (РЮиФ)

Используется Центром регистрации предприятий и предпринимательства, разработана отделом АСУ администрации несколько лет назад.

Система позволяет решать следующие задачи:

  •  Ввод и хранение информации в БД;
  •  Поиск необходимой информации;
  •  Формирование отчетов;
  •  Управление выводом на внешние устройства.

РЮиФ включает в себя несколько подсистем:

  •  «Учредитель - фирма» - ввод, хранение и поиск данных об учредителях;
  •  «Утраченные паспорта» - учет;
  •  «Фальшивые учредители» - учет;
  •  «Частные предприниматели с недействительными паспортами» - учет;
  •  «Вывод» – выдача количественной информации по юридическим лицам, печать и просмотр списков, а также просмотр частных предпринимателей, списков зарегистрированных физ. лиц по дате и для налоговой;
  •  «Регистрация и изменения» - основная подсистема, позволяющая вводить новых предпринимателей (физ. и юр. лиц), всех данных по ним в базу данных, а также проверять существующих;
  •  «Физические лица, сдавшие  удостоверения» - учет лиц.

1.2. Автоматизированная система «Район»

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

Программа позволяет:

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

1.3. Автоматизированная система «Делопроизводство»

Разработана отделом АСУ администрации в 1997 году  для общего отдела. Предназначена для регистрации входящей и исходящей корреспонденции администрации, такой как

  •  письма
  •  телеграммы
  •  телефонограммы

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

Функции системы:

  •  обеспечить ввод данных (учитывается тип, вид корреспонденции – назначение; вид деятельности – жилищные вопросы, юридические вопросы; вводится краткое содержание документа, не более 2К; информация о контроле, подлежит или нет; срок и дата исполнения; исполнители);
  •  реализация запросов
  •  от абонента (исходящие),
  •  к абоненту (входящие),
  •  документы для контроля
  •  формирование отчетов;
  •  формирование списков;
  •  осуществление контроля (списки должников, долги за год по каждому исполнителю);
  •  осуществление поиска по формам;
  •  поддержание системы штрафов и координация ее деятельности.

1.4. Система  автоматизации учета и управления «Ветераны труда»

Используется отделом социальной защиты, а также предприятиями города: Коммунсервис, Горгаз, Водоканал. Назначение системы – учет ветеранов труда города для последующего предоставления им льгот по закону «О ветеранах»; контроль за предприятиями города (Воткинскгаз, Коммунсервис, Горгаз, Водоканал, Уют и проч.) за предоставлением льгот по закону «О ветеранах».

Функции системы «Ветераны труда»:

  •  обеспечение ввода паспортных данных гражданина, ФИО, основания для награждения, даты получения звания, № пенсионного удостоверения и даты выдачи, № удостоверения ветерана труда;
  •  выдача списков о ветеранах в алфавитном порядке
  •  по районам города,
  •  по улицам города,
  •  по домам города;
  •  обеспечение выдачи запросов
  •  по удостоверениям,
  •  по данным о лицах,
  •  по учетным данным помесячно;
  •  обеспечение поиска по формам;
  •  формирование протоколов;
  •  распечатка различных списков.

1.5. Автоматизированная система учета «Очередь»

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

Система учитывает

  •  ФИО, адрес, дату постановки, № решения, семейное положение;
  •  настоящие жилищные условия;
  •  льготные и социально-незащищенные категории.

Система предоставляет

  •  возможность распечатки списков (всего и по категориям);
  •  отслеживание нуждающихся;
  •  возможность снятия с очереди.

1.6. Анализ предметной области

Отдел здравоохранения администрации г.Воткинска, образован администрацией в соответствии с действующим Законодательством и Уставом

о  местном самоуправлении г.Воткинска УР на правах отдела.

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

Задачами деятельности отдела здравоохранения являются:

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

Функции отдела:

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

В функцию определения потребности населения в оказании медицинской помощи и услуг входит работа с различными группами населения. Одной из важных групп являются лица, попадающие под действие ФЗ «О ветеранах». Необходимо заметить, закон делит таких граждан на несколько категорий, которые обладают льготами на получение некоторых видов лечения, а также медикаментов. Льготы могут быть как пятидесяти процентные, так и ста процентные. На данные момент все льготники, учитываемые в Горздравотделе стопроцентные. Работа по учету лиц всех категорий и учету их медицинского обслуживания всегда занимала большое количество времени и состояла из рутинной бумажной работы. Горздравотдел обязан ежеквартально отчитываться в вышестоящие организации о текущем состоянии медицинского обслуживания этой группы граждан посредством отчета определенной формы. Для формирования такого отчета и его подготовки требовался труд нескольких работников. В основном вся работа сводилась к поиску и нахождению необходимой информации в амбулаторных картах пациента, т.к. вся работа, проводящаяся с больными, отражается в них. В начале каждого года ветеран или гражданин, попадающий под ФЗ «О ветеранах» должен пройти профессиональный осмотр. Он либо приходит сам в поликлинику, либо врач приходит к нему на дом. В ходе осмотра выявляется, какое лечение необходимо данному человеку и вся информация о видах лечения заноситься в его амбулаторную карту, естественно она не упорядочена ни по какому признаку и искать ее потом очень неудобно и долго. Также в амбулаторной карте ежегодно подтверждается или не подтверждается категория или инвалидность лица. После профессионального осмотра больные направляются в стоматологическую поликлинику, которая составляет списки лиц, нуждающихся в зубопротезировании и передает эти списки в бухгалтерию Горздравотдела для уведомления о количестве льготных категорий. Бухгалтерия, в свою очередь, оплачивает лечение по каждому человеку и передает данные об этом в Горздравотдел, который ведет учет финансирования, записывая все данные в карточки пациентов (типа амбулаторных). Такой же принцип просматривается и в оплате медикаментов: больному врач выписывает рецепт в двух экземплярах. Пациент приходит в муниципальную аптеку, где ему на обоих рецептах проставляют сумму к оплате, выдают необходимые медикаменты, оставив при этом один рецепт у себя, а другой передают в бухгалтерию Горздравотдела для оплаты. Бухгалтерия опять же передает информацию о потраченных деньгах в Горздравотдел для отчетности. Когда доходит дело до формирования отчета, к его выполнению привлекается сразу несколько  человек. Над отчетом работают заведующие поликлиниками (ЦРБ и ГБ1), врач, ответственный за медицинское обслуживание инвалидов и ветеранов, а также специалист отдела здравоохранения. Наглядно увидеть процесс получения отчета, существовавший до разработки и внедрения автоматизированной системы учета, позволяет рис. 1.2.


Рис. 1.2. Процесс получения отчета до разработки системы


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

автоматизированной системы учета (рис. 1.3).

Рис. 1.3. Процесс получения отчета после внедрения системы


2. ОБЗОР СРЕДСТВ РЕАЛИЗАЦИИ

Выбор среды разработки находится в прямой зависимости от поставленной задачи. В данной работе необходимо разработать систему, которая должна использоваться на конкретном компьютере. Подключение к общей сети планируется в ближайшие 1-2 года, но даже при этом условии количество одновременно работающих с программой человек не будет превышать 3-х. Поэтому требуется выбрать среду разработки, позволяющую создавать удобные приложения для работы на изолированном рабочем месте.

На сегодняшний день на рынке средств разработки приложений огромное множество продуктов. Это и новые модные универсальные средства моделирования, и специальные средства создания Internet приложения, и визуальные среды разработки, и проверенные временем объектно-ориентированные языки высокого уровня.

Из всего многообразия программных пакетов, для данного обзора выбрано четыре: Delphi, FoxPro, InterBase, Access, т.к. для данной задачи необходимо выбрать СУБД, которая позволяет работать с «персональной» БД, а такие СУБД как Oracle, SQL Server и т.п. не имеют средств поддержания базы на изолированном компьютере.

  1.  . Среда разработки Delphi/InterBase

В начале 90-х годов в мир ПК пришли операционные системы со встроенным графическим интерфейсом. Этот приход произвел настоящую революцию, которая позволила привлечь к работе с компьютером миллионы пользователей, ранее даже не помышлявших об этом. Распространение Windows и образование империи Microsoft вызвало необходимость в массовом создании программ, использующих все возможности интерфейса этой операционной системы.

Delphi  оказался одним из первых продуктов, который сделал этот процесс простым и понятным даже начинающим разработчикам. Причем, в отличие от других интегрированных оболочек (Visual Basic или SQL Windows), которые появились на рынке в это же время, Delphi позволяет разработчикам создавать новые компоненты, используемые в дальнейшем при визуальном программировании. В основу Delphi положен язык Object Pascal, да и сама система, написана почти полностью на этом языке.

Процесс разработки приложения в Delphi предельно упрощен. В первую очередь это относится к созданию интерфейса, на который уходит 80% времени разработки программы. Просто помещаем нужные компоненты на поверхности Windows-окна (в Delphi оно называется. формой) и настраиваем их свойства помощью специального  инструмента: Object Inspector. С его помощью можно связать события этих компонентов (нажатие на кнопку, выбор мышью элемента списке и т. д.) с кодом его обработки - вот простое приложение готово. Причем разработчик получает в свое распоряжение мощные средства отладки, удобную контекстную справочную систему и другие средства.

К числу особенностей языка Object Pascal, используемого в Delphi, следует отнести поддержку обработки исключительных ситуаций (exceptions), а также перегрузку методов и подпрограмм (overload) в стиле C++, поддержка длинных строк в формате WideChar и AnsiChar. Последний тип (AnsiString) позволяет использовать все достоинства динамического размещения информации в памяти без всяких забот о ее выделении и сборке мусора. Delphi делает это автоматически. Для поклонников свободного стиля программирования имеются открытые массивы, варианты и вариантные массивы, позволяющие размещать в памяти все что угодно и смешивать типы данных.

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

InterBase – это система управления реляционными базами данных, чаще всего используется вместе с Delphi и входит в его комплект программ, т.е. распространяется бесплатно (вместе с Delphi), чем иногда и привлекает разработчиков.

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

Основное средство, используемое для связи с серверами баз данных – это язык SQL. Диалект этого языка СУБД InterBase имеет некоторые черты, отличающие его от других реализаций SQL.

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

В СУБД InterBase для команды Create table (создать таблицу) предусмотрены некоторые интересные модификации, например, таблицы можно создавать вне базы данных. Одной из особенностей данной команды (Create table) в InterBase является возможность создания столбцов с вычисляемыми значениями. Кроме столбцов с простыми типами данных в InterBase можно определять столбцы, содержащие массивы данных различных типов. В таких столбцах можно помещать элементы данных, которые образуют группу или множество.

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

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

В InterBase пользователи могут расширить диалект SQL путем введения собственных функций. Функции определяются во внешних совместно используемых библиотеках и объявляются для использования в СУБД InterBase с помощью специальной команды. С этого момента функция помещается в базу данных и ведет себя точно так же, как и любая другая встроенная функция.

Основная забота разработчика, администратора и пользователя в равной степени является обеспечение безопасности базы данных. InterBase выполняет  корректное резервирование баз данных при помощи программы Server Manager. Такое резервирование гарантирует мгновенный «снимок» всей базы данных и работоспособность ее копии, сделанной в данный момент времени. Также средства InterBase позволяют выполнять проверку целостности и работоспособности базы, а также имеет средства для проведения оптимизации приложений [1].

2.2. СУБД Visual FoxPro

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

Visual FoxPro предлагает следующие средства и возможности:

  •  быстрая разработка приложений
  •  мастера и построители;
  •  конструкторы Visual FoxPro;
  •  стандартные интерфейсы приложений.
  •  расширенные возможности разработки
  •  объектно-ориентированное программирование;
  •  события;
  •  технология Rushmore.
  •  взаимодействие с другими приложениями
  •  панели инструментов;
  •  совместное использование данных с другими приложениями;
  •  импортирование и экспортирование данных.
  •  средства, связанные со средой клиент/сервер
  •  словарь данных;
  •  удаленные и гетерогенные представления;
  •  транзакции;
  •  поддержка системы клиент/сервер.

Система Microsoft Visual FoxPro 6.0 содержит все необходимые средства для создания и управления высокопроизводительными 32-х разрядными приложениями и компонентами баз данных. Надежные инструментальные средства и объектно-ориентированный язык, специализированный для работы с данными, идеально подходят для создания современных масштабируемых многоуровневых приложений, интегрируемых в архитектуру клиент/сервер и Интернет. Систему Visual FoxPro просто использовать и изучать, благодаря новым функциональным возможностям и простым средствам создания компонентов для многократного использования в приложениях. Это упрощает освоение системы для разработчиков, которые ранее использовали FoxPro 2.x. Возможность создания с помощью системы Visual FoxPro масштабируемых компонентов, интегрируемых в архитектуру клиент/сервер, а также в среду сетей Интернет и интранет. Усовершенствования среды разработчика и набора инструментальных средств обеспечивают для разработчика на Visual FoxPro небывалую гибкость настройки и производительность [18].

2.3. СУБД Access

Microsoft Access - это интерактивная реляционная СУБД(relational database management system - RDBMS ) для WINDOWS . Это программа, которую  можно использовать для хранения и извлечения данных в зависимости от отношений, которые вы установили. Работа с ней упрощена посредством манипулятора мыши. Графические возможности оболочки производят большое впечатление при изготовлении высококачественных отчетов и распечаток. Все это благодаря поддержки   True-type  шрифтов и встраивания OLE-объектов(Object Linking and Embeding) в рамках среды WINDOWS. OLE - объект  представляет собой ссылку на определенную информацию, которая остается в своей первоначальной форме. OLE-объектом  может быть EXCEL - таблица, Paintbrush - иллюстрация  или  Sound - файл.

Новинкой программы Access является Cue Cards - Система суфлирования. Это обучающая система, предоставляющая пользователю  рекомендации по выходу из реальных ситуаций при решении прикладных задач. Пользователь всегда  сможет получить подсказку о том, что следует делать далее.

Access также предоставляет в распоряжение пользователя механизмы работы с базами данных различных форматов. К примеру, можно прямо обращаться к базам данных dBASE, Paradox или Btrieve  без конвертирования их в формат, используемый  Access. В состав пакета  Access также входит язык Access Basic (встроенный диалект языка Visual  Basic ), дающий возможность формирования специализированных систем  управления базами данных.

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

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

Access различает следующие типы данных полей:

Text - текстовые поля  содержат текст, длина которого не может быть более 255 символов. Реальная длина поля устанавливается с помощью параметра Field Size(размер поля).

Memo - в Memo-полях сохраняется текст длиной до 32000 символов.  Поля этого типа данных не могут индексироваться.

Number - числовые поля содержат произвольные числовые значению. Диапазон допустимых значений определяется параметром Field Size (размер поля).

Date/Time - поля даты/времени содержат значения даты и времени в диапазоне от  100 до 9999 года.

Currency - в денежных полях можно хранить числа с точностью до 15 разрядов слева от запятой и четырех десятичных разрядов справа от запятой.

Counter - поле счетчика содержит число, которое автоматически увеличивается Access на 1, когда в таблицу добавляется новый блок данных.  

Yes/No  - в таких полях сохраняются значения Да или Нет. Поля данного типа не могут индексироваться.

OLE Object - в OLE-полях помещаются объекты, такие как, например, Excel-таблица или Microsoft Draw - графика, обработанные OLE - сервером. Размер поля может быть до 128 МБ. Поля данного типа не могут индексироваться.

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

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

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

Если же объект, порожденный другой прикладной программой, связывается с Access-таблицей без встраивания, то объект сохраняется не в таблице, а в отдельном файле, причем формат этого файла определяется прикладной программой, с помощью которой объект был создан. В момент загрузки и открытия таблицы Access связывается с этим файлом, извлекает его содержимое и вставляет его в таблицу. Связывание объектов (а не встраивание) рекомендуется в тех случаях, когда в Access-базу необходимо включить объект, не подлежащий изменению при работе с Access.  Например, речь может идти о таблице счетов, обрабатываемой Excel и используемой в нескольких Access-базах. Наличие связи этих баз с одним и тем же Excel-файлом гарантирует наличие последней версии таблицы счетов во всех этих базах. Преимущество связи заключается в том, что один оригинальный объект можно связать с несколькими Access-таблицами, и при этом его не нужно многократно подвергать сохранению.

Microsoft Access дает большие возможности в гибкости проектирования запросов. Он позволяет:

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

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

Отсортировать записи, т.е. можно просматривать записи в определенном порядке. Например, вывести имена клиентов на экран в алфавитном порядке.

Запрашивать данные из нескольких таблиц, данные из нескольких таблиц могут обрабатываться вместе и можно просмотреть совмещенные данные. Также существует возможность запрашивать данные из других баз данных, таких как Microsoft FoxPro, Paradox, dBASE, Btrieve и Microsoft или Sybase SQL-серверы.

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

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

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

В данной работе в качестве среды разработки выбран Access. Это было сделано по ряду причин:

  •  Access как нельзя кстати подходит для разработки базы данных и работающего с ней приложения именно для настоящей задачи и ее объема, т.к. является удобной СУБД для разработки «персональных» систем;
  •   Access обычно уже установлен на большинстве ПК, использующихся в организациях, т.к. входит в популярный программный пакет Microsoft Office;
  •  Access поддерживает длинные русские имена полей;
  •  Access удобен в использовании как для пользователя, так и для программиста, имеет «прозрачный» интерфейс.

3. ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ

3.1. Инфологическая модель

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

Сущность – любой различимый объект (объект, который мы можем отличить от другого), информацию о котором необходимо хранить в базе данных. Сущностями могут быть люди, места, самолеты, рейсы, вкус, цвет и т.д. Необходимо различать такие понятия, как тип сущности и экземпляр сущности. Понятие тип сущности относится к набору однородных личностей, предметов, событий или идей, выступающих как целое. Экземпляр сущности относится к конкретной вещи в наборе. Например, в нашем случае сущностями будут ПАЦИЕНТЫ, КАТЕГОРИИ и т.д.

Атрибут – поименованная характеристика сущности. Его наименование должно быть уникальным для конкретного типа сущности, но может быть одинаковым для различного типа сущностей. Атрибуты используются для определения того, какая информация должна быть собрана о сущности. Примерами атрибутов для сущности ПАЦИЕНТЫ  являются НОМЕР, ФАМИЛИЯ, ИМЯ и т.д. Здесь также существует различие между типом и экземпляром, однако каждому экземпляру сущности присваивается только одно значение атрибута.

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

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

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

В соответствии с правилами проектирования  получаем упрощенную исходную модель сущность-связь изображенную на рис. 3.1.

Стержневая сущность (стержень) – это независимая сущность (несколько подробнее она будет определена ниже).

В рассмотренной выше модели стержни – это "Пациенты", "Больницы",  "Финансы".

Ассоциативная сущность (ассоциация) – это связь вида "многие-ко-многим" между двумя или более сущностями или экземплярами сущности. Ассоциации рассматриваются как полноправные сущности:

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

Характеристическая сущность (характеристика) – это связь вида "многие-к-одной" или "одна-к-одной" между двумя сущностями (частный случай ассоциации). Единственная цель характеристики в рамках рассматриваемой предметной области состоит в описании или уточнении некоторой другой сущности. Необходимость в них возникает в связи с тем, что сущности реального мира имеют иногда многозначные свойства. Муж может иметь несколько жен, книга – несколько характеристик переиздания (исправленное, дополненное, переработанное) и т.д.

Обозначающая сущность или обозначение – это связь вида "многие-к-одной" или "одна-к-одной" между двумя сущностями и отличается от характеристики тем, что не зависит от обозначаемой сущности. Например, "" это обозначение.

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

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

3.2. Проектирование структуры базы данных

Анализ предметной области привел к созданию даталогической модели базы данных. Описание атрибутов  модели приведено в табл. 3.1.

Таблица 3.1.

Описание атрибутов

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

Тип

Примечание

1

2

3

Учетный номер пациента

числовой

Фамилия пациента

текстовый

Имя пациента

текстовый

Отчество пациента

текстовый

Дата рождения пациента

дата

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

Группа инвалидности

числовой

Код категории

числовой

Наименование категории

текстовый

Сокращение типа улицы

текстовый

Улица (ул), переулок (пер)

и т.д.

Улица

текстовый

Дом

текстовый

Квартира

текстовый

Поставлен на учет

дата

дата постановки на учет

Снят с учета

дата

дата снятия с учета

Продолжение табл. 3.1

1

2

3

Больница

текстовый

Больница, в которой зарегистрирован пациент

Оказанная услуга

текстовый

Дата постановки на учет услуги

дата

Дата оказания услуги

дата

Вид выплаты денег

числовой

Медикаменты, зубопротези-рование.

Дата выплаты денег

дата

Сумма выплаты

числовой

Дополнительно к пунктам, оговоренным в техническом задании (например, ограничение доступа к системе), заказчику потребовалось следующее – возможность узнавать, кто именно из работников выполнил какую-либо операцию с данными. Для того чтобы выполнить это требование, необходимо добавить дополнительные атрибуты, связанные с персоналом (табл. 3.2).

Таблица 3.2.

Описание дополнительных атрибутов

Дополнительные атрибуты

Тип

Примечание

1

2

3

Табельный номер

числовой

Табельный номер работника.

Фамилия работника

текстовый

Имя работника

текстовый

Отчество работника

текстовый

Дата рождения работника

дата

Для служебного использова-ния.

1

2

3

Улица работника

текстовый

Для служебного использова-ния.

Дом работника

текстовый

Для служебного использова-ния.

Квартира работника

текстовый

Для служебного использова-ния.

Права

числовой

0 - чтение, (зарезервирован)

1 - чтение/запись,

2 – администратор.

Работает

логический

Если не работает, то не показывается в списке выбора фамилии.

Пароль

текстовый

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

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

После разбиения было добавлено несколько новых справочных таблиц, таких как "Улицы", "Услуги" и т.д., что обеспечило удобство работы и сокращение объема основных таблиц (значение заменено кодом).

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

Кроме основных рабочих таблиц было создано несколько вспомогательных, которые упрощают работу с отчетами. Имена вспомогательных таблиц начинаются со знака подчеркивания, например "_Больницы". Список всех таблиц и из назначение приведены в табл. 3.3.

Таблица 3.3.

Список таблиц

№№

Таблица

Назначение

1

2

3

1

Архив

Таблица для хранения архивной информации о пациентах.

2

Больницы

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

3

ВидыОплат

Справочная таблица, содержащая коды и наименования видов оплат.

4

Выплаты

Таблица содержит информацию о выплатах денежных средств пациентам.

5

Категории

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

6

Месяцы

Справочная таблица, содержащая названия месяцев.

7

ОказанныеУслуги

Данные о постановке на учет по конкретной услуге и о снятии с учета.

8

Пациенты

Полная информация о пациентах.

9

Персонал

Информация о персонале.

10

Улицы

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

Продолжение табл. 3.3

1

2

3

11

Услуги

Коды и наименования услуг.

12

Элементы кнопочной формы

Системная таблица, содержащая название пунктов главного меню и коды выполняемых действий. Изменяется с помощью «Диспетчера кнопочных форм».(Меню "Сервис" - "Надстройки").

13

_Nalog

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

14

_Больницы

Временная таблица для расчета количества пациентов в больницах.

15

_Выплаты

Временная таблица для расчета количества пациентов, получивших выплаты и их сумму.

16

_Услуги

Временная таблица для запросов об услугах.

17

_УслугиИтог

Временная таблица для запросов об услугах.

18

_Учет

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

Промежуточная форма таблиц не показана. Ниже приводятся окончательные варианты таблиц в алфавитном порядке (кроме таблицы "Архив"), учитывающие все замечания (табл. 3.4 – табл. 3.13).

Таблица 3.4.

Больницы

Наименование поля

Тип поля

Примечание

1

2

3

КодПациента

целое

Код пациента. По данному полю осуществляется связь с таблицей "Пациенты".

Больница

текст(30)

Наименование больницы.

Продолжение табл. 3.4

1

2

3

КодОператора

целое

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

Дата

дата

Дата добавление записи. Поле проставляется автоматически при добавлении записи. В качестве значения записывается текущая дата.

Таблица 3.5.

Виды оплат

Наименование поля

Тип поля

Примечание

ВидОплаты

целое

Код вида оплаты (1/2).

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

текст(20)

Вид оплаты (Медикаменты/Зубопротезирование).

Таблица 3.6.

Выплаты

Наименование поля

Тип поля

Примечание

1

2

3

НомерДокумента

целое

Номер документа – счетчик.

ВидОплаты

текст(20)

Вид оплаты (Медикаменты/Зубопротезирование).

КодПациента

целое

Код пациента. По данному полю осуществляется связь с таблицей "Пациенты".

Продолжение табл. 3.6

1

2

3

КодОператора

целое

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

ДатаПлатежа

целое

Дата добавление записи. . Поле проставляется автоматически при добавлении записи. В качестве значения записывается текущая дата.

Сумма

действитель-ное число

Сумма, выданная пациенту.

Таблица 3.7.

Категории

Наименование поля

Тип поля

Примечание

Категория

целое

Код категории, согласно приложению к закону "О Ветеранах".

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

текст(255)

Наименование категории.

Льгота

целое

Если поле не заполнено – 100%, иначе в поле указывается процент льготы (обычно 50%).

Таблица 3.8.

Месяцы

Наименование поля

Тип поля

Примечание

НомерМесяца

целое

Порядковый номер месяца.

Месяц

текст(8)

Полное наименование месяца.

Таблица 3.9.

Оказанные услуги

Наименование поля

Тип поля

Примечание

КодУслуги

целое

Код услуги. Связан с таблицей "Услуги".

КодПациента

целое

Код пациента. Связан с таблицей "Пациенты". Поле проставляется автоматически при добавлении записи в подчиненной форме.

ПоставилНаУчет

целое

Код оператора, поставившего пациента на учет. Связан с таблицей "Персонал". Поле проставляется автоматически при установке флажка " ПоставленНаУчет ".

ДатаПостановки

дата

Дата постановки пациента на учет по данному виду услуг. Поле проставляется автоматически при добавлении записи. В качестве значения записывается текущая дата.

СнялСУчета

целое

Код оператора, снявшего пациента с учета. Связан с таблицей "Персонал". Поле проставляется автоматически при установке флажка "СнятСУчета".

ДатаСнятия

дата

Дата предоставления пациенту услуги. Поле проставляется автоматически при установке флажка "СнятСУчета".

ПоставленНаУчет

логический

Логический флажок, устанавливаемый при постановке на учет.

СнятСУчета

логический

Логический флажок, устанавливаемый при снятии с учета.

Таблица 3.10.

Пациенты

Наименование поля

Тип поля

Примечание

1

2

3

УчетныйНомер

целое

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

Фамилия

текст(30)

Фамилия пациента.

Имя

текст(30)

Имя пациента.

Отчество

текст(30)

Отчество пациента.

ДатаРождения

дата

Дата рождения пациента.

ГруппаИнвалидности

целое

Группа инвалидности. Поле может быть не заполнено. Связанную таблицу на это поле делать нецелесообразно.

Категория

целое

Код категории. Связан с таблицей "Категории".

СокрУл

текст(6)

Обозначение ул – улица и т.д.

Улица

текст(50)

Название улицы.

Дом

текст(20)

Квартира

текст(20)

ПоставленНаУчет

дата

Дата постановки пациента на учет. Поле проставляется автоматически при добавлении записи. В качестве значения записывается текущая дата.

КодОператора

целое

Код оператора, поставившего пациента на учет. Связан с таблицей "Персонал". Поле проставляется автоматически при добавлении записи.

Продолжение табл. 3.10

1

2

3

СнятСУчета

дата

Дата снятия пациента с учета. Поле проставляется при нажатии кнопки снятия с учета. В качестве значения записывается текущая дата.

Снял

целое

Код оператора, снявшего пациента с учета. Связан с таблицей "Персонал". Поле проставляется автоматически при нажатии кнопки снятия с учета.

Таблица 3.11.

Персонал

Наименование поля

Тип поля

Примечание

1

2

3

ТабНомер

целое

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

Фамилия

текст(30)

Фамилия служащего.

Имя

текст(30)

Имя служащего.

Отчество

текст(30)

Отчество служащего.

ДатаРождения

дата

Дата рождения служащего.

Улица

текст(50)

Название улицы.

Дом

текст(20)

Квартира

текст(20)

Права

целое

Права доступа:

0 – чтение (зарезервировано)

1 - чтение/запись

2 – администратор.

Продолжение табл. 3.11

1

2

3

Работает

логический

TRUE – если работает. Если не работает, то не показывается в списке выбора фамилии.

Пароль

текст(31)

Используется при входе в систему. Может быть изменен только администратором.

Таблица 3.12.

Улицы

Наименование поля

Тип поля

Примечание

Название

текст(40)

Название улицы.

Сокращение

текст(6)

Обозначение ул – улица и т.д.

Таблица 3.13.

Услуги

Наименование поля

Тип поля

Примечание

КодУслуги

целое

Код услуги.

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

текст(60)

Наименование услуги.

Ограничение

логический

Истина - 1 раз в год, иначе многократно.

Таблица " Элементы кнопочной формы" создается системой Access. Ее структура и действия над ней формируются автоматически и описания не требуют.

При анализе предметной области выявилось, что для решения задачи необходимы следующие временные таблицы (табл. 3.14 – табл. 3.19):

Таблица 3.14.

_Nalog

Наименование поля

Тип поля

Примечание

Fam1)

текст(30)

Фамилия пациента.

Ima

текст(30)

Имя пациента.

oth

текст(30)

Отчество пациента.

name

текст(50)

Наименование улицы.

socr

текст(6)

Обозначение ул – улица и т.д.

dom

текст(20)

Дом.

kv

текст(20)

Квартира.

sum

действитель-ное число

Выплата пациенту.

data

дата

Дата выплаты.

1)Таблица для передачи данных в налоговую инспекцию. Структура таблицы, имена полей  и их порядок заданы заказчиком.

Таблица 3.15.

_ Больницы

Наименование поля

Тип поля

Примечание

Больница

текст(25)

Название больницы.

Группа

целое

Группа инвалидности.

Таблица 3.16.

_Выплаты

Наименование поля

Тип поля

Примечание

КодПациента

целое

Код пациента.

ВидОплаты

целое

Вид оплаты.

СуммаВыплат

действитель-ное число

Сумма выплат для данного пациента по указанному виду оплаты.

Таблица 3.17.

_Услуги

Наименование поля

Тип поля

Примечание

КодПациента

целое

Код пациента.

Категория

целое

Категория пациента.

Таблица 3.18.

_УслугиИтог

Наименование поля

Тип поля

Примечание

Категория

целое

Категория пациента.

Нуждаются

целое

Количество пациентов, нуждающихся в услуге.

Получили

целое

Количество пациентов, получивших услугу.

Таблица 3.19.

_Учет

Наименование поля

Тип поля

Примечание

Категория

целое

Категория пациента.

ВзятоНаУчет

целое

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

СнятоСУчета

целое

Количество пациентов данной категории, снятых с учета.

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


4. РАЗРАБОТКА ПРИЛОЖЕНИЯ

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

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

  •  Function СледующийНомер(base As String, field As String) As Long - функция вычисляет следующий свободный номер в базе base для поля field.
  •  Function ДатаПоследнегоДняМесяца(Год As Integer, _Месяц As Integer) As Date - функция вычисляет дату последнего дня месяца.
  •  Function DateSQL(Дата As Date) As String - функция преобразует дату к виду, необходимому в SQL запросах.
  •  Function IsTable(ByVal strTableName As String) As Boolean - функция проверяет существование таблицы по имени.
  •  Function IsLoaded(ByVal strFormName As String) As Boolean – функция возвращает значения True, если форма открыта в режиме формы или таблицы.

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

Public As Long

Public UserAccess As Long

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

Работа программы начинается с формы "Login". Форма предназначена для осуществления доступа в систему. Неавторизованный доступ в систему возможен только администратору. Из формы вызывается форма "ГлавноеМеню" (рис. 4.1).

Рис. 4.1. Форма “Login

В форме имеется три поля:

Поле выбора фамилии, поле табельного номера и поле пароля.

Поле фамилии выбирается из поля со списком по запросу:

SELECT Персонал.Фамилия, Персонал.Права FROM Персонал WHERE (((Персонал.Работает)=True)) ORDER BY [Персонал]![Фамилия]   Mid$([Персонал]![Имя],1,1) Mid$([Персонал]![Отчество],1,1) ;

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

По кнопке вход осуществляется вход в систему, по кнопке выход – отказ от входа и закрытие программы.

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

Private Sub Form_Open(Cancel As Integer)

 UserKey = 0

 UserAccess = 0

End Sub

После нажатия на кнопку "Вход" вызывается процедура проверки прав.

Private Sub КнопкаВход_Click()

Сначала проверяется полнота заполнения полей, и если заполнены не все поля, выдается сообщение "Вы ввели не все данные". При неудаче ввод данных повторяется.

If IsNull(Me![ПолеФамилии]) Or IsNull(Me![ПолеПароль]) Or IsNull(Me![ПолеТабельныйНомер]) Then MsgBox "Вы ввели не все данные", vbOKOnly, "Ошибка ввода данных"

     GoTo Exit_КнопкаВход_Click

   End If

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

s = "SELECT * FROM Персонал WHERE ТабНомер = " & Me!ПолеТабельныйНомер - запрос

   Set db = CurrentDb – открыть базу данных

   Set rs = db.OpenRecordset(s) – выполнить запрос

Если такого человека нет, выводится сообщение "В базе нет человека с таким табельным номером", "Ошибка табельного номера". Фокус ввода переводится на поле ввода табельного номера и производится возврат.

MsgBox "В базе нет человека с таким табельным номером",

vbOKOnly, "Ошибка табельного номера"

Me.ПолеТабельныйНомер.SetFocus

GoTo Exit_КнопкаВход_Click

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

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

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

Для правильной работы при первом пуске в таблицу "Персонал" необходимо ввести данные администратора, так как работа с таблицей "Персонал" возможна только с правами доступа администратора. Настройка описана в "Руководстве системного программиста". Если все проверки прошли успешно,закрывается  окно ввода пароля и  открывается форма  "ГлавноеМеню" (рис. 4.2).

Форма содержит главное кнопочное меню и кнопку выхода из системы. Вызывается из формы Login. Из формы вызываются остальные главные формы.

Форма имеет две страницы:

  •  Первая страница: СписокПациентов, Запросы, Отчеты;
  •  Страница Администратора: Персонал, Категории, Услуги, ВидыОплат, Улицы.

Рис. 4.2. Форма “Главное меню”

Форма разработана с применением диспетчера кнопочных форм (меню "Сервис" - "Надстройки" – "Диспетчер кнопочных форм"), в которую была добавлена картинка и одна кнопка выхода из приложения. Ввиду того, что  все программы сгенерировал мастер, они не описаны.

Работа с пациентом начинается с вызова списка пациентов (Меню "Работа с карточками").

Форма "СписокПациентов" содержит список пациентов. Вызывается из формы  ГлавноеМеню.  Из  формы  вызывается  форма  КарточкаПациента  (рис. 4.3).

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

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

Private Sub Form_BeforeInsert(Cancel As Integer)

Dim N As Long, s As String

 N = СледующийНомер("Пациенты", "УчетныйНомер")

 Me.УчетныйНомер = N

 Me.КодОператора = UserKey

End Sub

Рис. 4.3. Форма “Список пациентов”

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

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

Private Sub ФлажокСкрытьСнятых_AfterUpdate()

Dim sSQL As String

 If Me.ФлажокСкрытьСнятых Then

   sSQL = "SELECT Пациенты.*, Not IsNull([СнятСУчета])" & _

   "AS Снят FROM Пациенты WHERE(((IsNull([СнятСУчета]))=Yes))"

 Else

   sSQL = "SELECT Пациенты.*, Not IsNull([СнятСУчета]) AS Снят FROM Пациенты"

 End If

 Me.RecordSource = sSQL

 Me.Requery 'Перечитать запрос

End Sub

После замены форме дается команда перечитать запрос. Остальные команды генерируются системой. Данные вводятся и редактируются в форме " КарточкаПациента" (рис. 4.4).

Форма предназначена для редактирования данных пациента в форме карточки. Вызывается из формы СписокПациентов. Форма содержит подчиненную форму ОказанныеУслугиПодчиненнаяФорма. Из формы вызываются формы:
Выплаты, Улицы, Услуги, Категории, Больницы. В форме имеются кнопки, по которым вызываются соответствующие формы:

  •  Выплаты;
  •  Улицы (справочник);
  •  Больницы;
  •  Категории (справочник);
  •  Услуги (справочник).

Рис. 4.4. Форма Карточка пациента

Поля, которые недоступны для редактирования, выделены зеленым цветом. У полей "Улица", "Имя", "ГруппаИнвалидности", "Категории" имеется выпадающий список, позволяющий выбрать данные без ввода, или вводить значение поля частично.

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

SELECT DISTINCT Пациенты.Имя FROM Пациенты ORDER BY Пациенты.Имя;

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

С помощью подчиненной формы "ОказанныеУслугиПодчиненнаяФорма" можно не открывая дополнительной формы производить записи, касающиеся оказываемых услуг.

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

If Me.ПоставленНаУчет Then

   Me.ДатаПостановки = Date

   Me.ПоставилНаУчет = UserKey

 Else

   Me.ДатаПостановки = ""

   Me.ПоставилНаУчет = ""

 End If

Для справки выводятся наименование услуг и фамилии поставившего на учет и снявшего с учета.

При нажатии на кнопку "Выплаты" вызывается форма "Выплаты" (рис. 4.5), в которой регистрируются средства, выплаченные данному пациенту.

Рис. 4.5. Форма “Выплаты”

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

SELECT DISTINCTROW Выплаты.НомерДокумента, Выплаты.ВидОплаты, ВидыОплат.Наименование, Выплаты.ДатаПлатежа, Выплаты.Сумма, Выплаты.КодПациента, Выплаты.КодОператора, Персонал.Фамилия

FROM Персонал RIGHT JOIN (ВидыОплат INNER JOIN Выплаты ON ВидыОплат.ВидОплаты = Выплаты.ВидОплаты)

ON Персонал.ТабНомер = Выплаты.КодОператора

ORDER BY Выплаты.ДатаПлатежа DESC;

В форме имеется кнопки вызова справочника по видам оплаты и кнопка закрытия окна. Программный код на эти кнопки сформирован мастером.

При нажатии на кнопку "Больницы"  появляется  форма  "Больницы" (рис. 4.6).

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

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

Рис. 4.6. Форма “Больницы”

Формы справочников описаны в разделе справочных таблиц.

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

Вторым пунктом в главном меню является пункт "Запросы", при нажатии на эту кнопку появляется одноименная форма (рис. 4.7).

Рис. 4.7. Форма “Запросы”

Из формы «Запросы» вызываются формы:
"Учет", "Расчет оказанных услуг", "ЗапросБольниц", "ЗапросПоФинансированию".

Программы данной формы сформированы мастером формы и мастером кнопок.

При нажатии на кнопку "Данные по учету" вызывается форма "Учет"  (рис 4.8).

Рис. 4.8. Форма “Учет”

Форма предназначена для расчета пациентов взятых на учет и снятых с учета. Из формы вызываются формы:

  •  ФормаПоУчету;
  •    ЗапросНаУчетПоКатегориям.

Форма содержит поля ввода даты начала и конца расчетного периода в двух вариантах:

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

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

Private Sub БлокировкаТипаПериода()

 If Me.ГруппаТипПериода.Value = 1 Then

   Me.ПолеГод.Enabled = False

   Me.ПолеМесяц.Enabled = False

   Me.ПолеГодК.Enabled = False

   Me.ПолеМесяцК.Enabled = False

   Me.ПолеНачалоПериода.Enabled = True

   Me.ПолеКонецПериода.Enabled = True

 Else

   Me.ПолеГод.Enabled = True

   Me.ПолеМесяц.Enabled = True

   Me.ПолеГодК.Enabled = True

   Me.ПолеМесяцК.Enabled = True

   Me.ПолеНачалоПериода.Enabled = False

   Me.ПолеКонецПериода.Enabled = False

 End If

 БлокировкаГруппыКатегорий

End Sub

Меняется значение свойства Enabled, которое управляет доступностью полей, не убирая их с экрана. В конце процедуры производится вызов процедуры БлокировкаГруппыКатегорий, так как ее действие зависит от положение данного переключателя. Переключатель "Группа категорий" позволяет получить отчеты с учетом категорий, или только итоговые.

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

Private Sub БлокировкаГруппыКатегорий()  'если только итоговые значения

 If (Me.ГруппаКатегорий.Value = 2) And (Me.ГруппаТипПериода = 2) Then

   Me.ГруппаВзятИлиСнят.Visible = True

 Else

   Me.ГруппаВзятИлиСнят.Visible = False

 End If

End Sub

Для скрытия группы используется свойство Visible.

При нажатии кнопки "Счет", если в группе "Группа Категорий" выбран пункт "Общий учет", то, независимо от остальных переключателей, заполняются поля "Взято на учет" и "Снято с учета", в остальных случаях кроме заполнения данных полей появляется одна из двух форм -  "ФормаПоУчету" и "ЗапросНаУчетПоКатегориям".

При нажатии кнопки "Счет" вызывается метод обработки нажатия клавиши.

Сначала определяются даты начала и конца периода. Если тип периода "За период", берутся просто значения соответствующих полей. Для значения "По месяцам", производится расчет. Для начала периода расчет производится с помощью стандартной функции DateSerial, для конца периода с помощью функции ДатаПоследнегоДняМесяца из модуля "Common".

Затем даты преобразуются к виду, необходимому в SQL запросах и производится очистка итогов.

Private Sub ОчисткаИтогов()

 Me.ПолеВзятоНаУчет = Null

 Me.ПолеСнятоСУчета = Null

End Sub

Для того, чтобы не выводить на экран неверные данные процедура ОчисткаИтогов вызывается при любом изменении дат (Созданы обработчики "При изменении поля").

После очистки итогов рассчитываются общие итоги:

sSQL = "SELECT Count(Пациенты.УчетныйНомер) AS [ПоставленоНаУчет] FROM Пациенты HAVING (((Пациенты.ПоставленНаУчет) Between " & _

   sdStart & " And " & sdEnd & "))"

   Set db = CurrentDb

   Set rs = db.OpenRecordset(sSQL)

   If rs.RecordCount > 0 Then

     Me.ПолеВзятоНаУчет = rs!ПоставленоНаУчет

   Else

     Me.ПолеВзятоНаУчет = 0

   End If

   rs.Close

   Set db = Nothing

Данная конструкция взята из примеров файла помощи системы Access. В дальнейшем будет показываться только SQL запрос.

Для подсчета общего количества снятых с учета создан запрос:

sSQL = "SELECT Count(Пациенты.УчетныйНомер) AS [СнятоСУчета] FROM Пациенты HAVING (((Пациенты.СнятСУчета) Between sdStart  And  sdEnd ))"

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

При расчете используется промежуточная таблица "_Учет".

Сначала таблица очищается:

sSQL = "DELETE * FROM [_Учет]"

DoCmd.RunSQL sSQL  'Удалить данные из временной таблицы _Учет

Здесь, и в дальнейшем широко используется объект DoCmd.

Методы, определенные для объекта DoCmd (команда), позволяют запускать макрокоманды Microsoft Access из программ Visual Basic. С помощью макрокоманд выполняют такие действия как закрытие окон, открытие форм и задание значений элементов управления. Например, метод OpenForm объекта DoCmd позволяет открыть форму, а метод Hourglass изменить вид указателя на значок Windows «Занято» (песочные часы).

Большинство из методов, определенных для объекта DoCmd, имеют аргументы, некоторые из которых являются обязательными, а другие необязательными. Если необязательный аргумент опущен, то при выполнении макрокоманды подразумевается значение данного аргумента по умолчанию. Например, метод OpenForm использует семь аргументов, но только первый из них, имяФормы, является обязательным. Следующий пример демонстрирует конструкцию, открывающую форму «Сотрудники» из текущей базы данных, причем отбираются только записи о сотрудниках, имеющих должность «Торговый агент».

DoCmd.OpenForm "Сотрудники", , ,"[Должность] = 'Торговый агент'"

Затем в таблицу последовательно добавляются данные о поставленных на учет и снятых с учета.

sSQL = "INSERT INTO [_Учет] ( Категория, [ВзятоНаУчет] ) " & _

       "SELECT Пациенты.Категория, Count(*) AS [Взято на учет] " & _

       "FROM Пациенты " & _

       "WHERE (((Пациенты.ПоставленНаУчет)>=" & sdStart & _

       " And (Пациенты.ПоставленНаУчет)<=" & sdEnd & ")) " & _

       "GROUP BY Пациенты.Категория"

       DoCmd.RunSQL sSQL 'Добавить данные о поставленных на учет

Добавление данных о снятых с учета производится аналогично.

После этого открывается форма "ЗапросНаУчетПоКатегориям" (рис. 4.9), в которую производится вывод.

DoCmd.OpenForm "ЗапросНаУчетПоКатегориям", acNormal, , , acFormReadOnly

Forms!ЗапросНаУчетПоКатегориям.Caption = "Учет с " & dStart & " по " _

& dEnd & " по категориям"

Перед выводом у формы изменяется заголовок окна (свойство Caption) на фразу "Учет с дд.мм.гггг по дд.мм.гггг по категориям".

Рис. 4.9. Форма “Учет по категориям”

Данные формы отсортированы по категориям. В качестве источника данных формы используется запрос "ЗапросНаУчетПоКатегориям". Поле наименование категории справочное и выделено зеленым цветом.

Если установлен флажок "По месяцам" для вывода используется форма "ФормаПоУчету".

Разберем раздел расчета взятых на учет.

sSQL = "SELECT DISTINCTROW " & _

"Format$([Пациенты].[ПоставленНаУчет],""mmmm yyyy"") " & _

"AS [Учетный месяц], Пациенты.Категория, Категории.Наименование, " & _

"Count(*) AS [Количество] " & _

"FROM Категории RIGHT JOIN Пациенты ON " & _

"Категории.Категория = Пациенты.Категория " & _

"WHERE (((Пациенты.ПоставленНаУчет)>=" & sdStart & _

" And (Пациенты.ПоставленНаУчет)<=" & sdEnd & ")) " & _

"GROUP BY Format$([Пациенты].[ПоставленНаУчет],""mmmm yyyy""), " & _

"Пациенты.Категория, Категории.Наименование, " & _

"Year([Пациенты].[ПоставленНаУчет])*12+ " & _

"DatePart(""m"",[Пациенты].[ПоставленНаУчет])-1 " & _

"ORDER BY Year([Пациенты].[ПоставленНаУчет])*12+ " & _

"DatePart(""m"",[Пациенты].[ПоставленНаУчет])-1"

DoCmd.OpenForm "ФормаПоУчету", acNormal, , , acFormReadOnly

Forms!ФормаПоУчету.Caption = "Поставлено на учет с " & dStart & " по " _

& dEnd & " по месяцам"

Forms!ФормаПоУчету.RecordSource = sSQL

Сначала формируется сложный SQL запрос, осуществляющий группировку отобранных данных (по датам) по категориям и по месяцам и их сортировку. Для создания основы такого запроса необходимо выдать команлу "Создать – Простой запрос" и на вопрос о группировке по датам указать "по месяцам". После этого останется переписать запрос в форме SQL в программу, подставить вместо конкретных дат в фильтре переменные и оформить запрос в виде строки. После этого дается команда открыть окно.

Заголовок окна заменяется на фразу: "Поставлено на учет с дд.мм.гггг по дд.мм.гггг по месяцам" (рис. 4.10).

Рис. 4.10. “Форма Поставлено на учет”

В данной форме добавлены кнопки выхода и вызова списка категорий.

Переписан обработчик движения мыши для поля "Категория":

Private Sub Категория_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

 Me.Категория.ControlTipText = Me![Наименование]

End Sub

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

Для лиц снятых с учета выбор производится аналогично, с заменой поля "ПоставленНаУчет" на поле "СнятСУчета".

Форма "Расчет оказанных услуг" (рис. 4.11) предназначена для проведения расчета оказанных услуг. Вызывается из формы “Запросы”. Из формы вызывается форма “ОказанныеУслугиСКатегориями”.

Рис. 4.11. Форма "Расчет оказанных услуг"

В форме должны быть введены дата начала и конца периода (начальные значения присваиваются автоматически) и введен код услуги. Код может быть выбран из выпадающего списка. Радом с кодом на экране для справки выведено наименование услуги зеленым цветом. Наименование редактировать нельзя. Поле наименование услуги находится в результате простого `SQL запроса:

sSQL = "SELECT Услуги.Наименование FROM Услуги WHERE " & _

"Услуги.КодУслуги=" & Me.ПолеКодУслуги;

Имеются переключатели "ГруппаКатегорий", которые позволяют выбрать получение только итоговых данных (на экране) или данных, сгруппированных по категориям.

Имеется общая процедура ОчисткаПолей, которая удаляет результаты счета. Процедура вызывается перед началом счета и при изменении дат или вида услуги, для чего для указанных полей создается обработчик события "При изменении поля".

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

Сначала проверяется наличие вспомогательной таблицы "_Услуги" и она удаляется. Это нужно, чтобы не было предупреждающих сообщений об удалении формы.

If IsTable("_Услуги") Then

   DoCmd.DeleteObject acTable, "_Услуги" 'удалить существующую таблицу

 End If

Затем формируется SQL запрос, на основе которого создается временная таблица "_Услуги".

sSQL = "SELECT ОказанныеУслуги.КодПациента, " & _

 "Last(Пациенты.Категория) AS Категория INTO _Услуги " & _

 "FROM Пациенты RIGHT JOIN ОказанныеУслуги ON " & _

 "Пациенты.УчетныйНомер = ОказанныеУслуги.КодПациента " & _

 "WHERE (((ОказанныеУслуги.КодУслуги)=" & Me.ПолеКодУслуги & ") " & _

 "AND ((ОказанныеУслуги.ДатаПостановки)>=" & sdStart & _

 " AND (ОказанныеУслуги.ДатаПостановки)<=" & sdEnd & ")) " & _

 "GROUP BY ОказанныеУслуги.КодПациента"

DoCmd.RunSQL sSQL 'создать новую таблицу

После этого в результате простого запроса находится итог:

sSQL = "SELECT Count(*) AS Всего FROM _Услуги"

Расчет полученных услуг производится аналогично. Если требуются результаты, с разбивкой по категориям, то дополнительно производится следующая работа: очищается вспомогательная таблица "_УслугиИтог":

sSQL = "DELETE [_УслугиИтог].* FROM _УслугиИтог"

   DoCmd.RunSQL sSQL  'очистить вспомогательную таблицу

и добавляются данные в таблицу итогов:

sSQL = "INSERT INTO _УслугиИтог ( Категория, Нуждаются ) " & _

   "SELECT [_Услуги].Категория, Count([_Услуги].КодПациента) AS Нуждаются  FROM _Услуги GROUP BY [_Услуги].Категория"

   DoCmd.RunSQL sSQL  'Добавить данные в таблицу итогов

Аналогично добавляются данные по получившим услугу. Затем создается сводная таблица:

sSQL = "SELECT [_УслугиИтог].Категория, " & _

   "First(Категории.Наименование) AS Наименование, " & _

   "Sum([_УслугиИтог].Нуждаются) AS Нуждаются, " & _

   "Sum([_УслугиИтог].Получили) AS [Получили] " & _

   "FROM Категории RIGHT JOIN _УслугиИтог " & _

   "ON Категории.Категория = [_УслугиИтог].Категория " & _

   "GROUP BY [_УслугиИтог].Категория " & _

   "ORDER BY [_УслугиИтог].Категория"

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

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

If IsLoaded("ОказанныеУслугиСКатегориями") Then

     Forms!ОказанныеУслугиСКатегориями.RecordSource = sSQL

     Forms!ОказанныеУслугиСКатегориями.Requery

     Forms!ОказанныеУслугиСКатегориями.Caption = _

     Me.ПолеНаименованиеУслуги & " с " & sdStart & " по " & sdEnd

     Forms!ОказанныеУслугиСКатегориями.SetFocus

Else

     DoCmd.OpenForm "ОказанныеУслугиСКатегориями", acNormal, acFormReadOnly

     Forms!ОказанныеУслугиСКатегориями.Caption = _

     Me.ПолеНаименованиеУслуги & " с " & Me.ПолеНачалоПериода _

     & " по " & Me.ПолеКонецПериода

     Forms!ОказанныеУслугиСКатегориями.RecordSource = sSQL

End If

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

Описание формы "Отчеты" (рис. 4.12):

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

  •  О ветеранах;
  •  Для налогов;
  •  Выход.

Рис. 4.12. Форма Отчеты

Кнопка "Для налогов" вызывает формирование файла типа DBase III+ для налоговой инспекции. Сначала формируется строка SQL запроса для создания временной таблицы "_Nalog", в которую заносятся выбранные данные.

sSQL = "SELECT DISTINCTROW Пациенты.Фамилия AS Fam, " & _

 "Пациенты.Имя AS Ima, Пациенты.Отчество AS oth, " & _

 "Пациенты.Улица AS name, Пациенты.СокрУл AS socr, " & _

 "Пациенты.Дом AS dom, Пациенты.Квартира AS kv, " & _

 "Выплаты.Сумма AS sum, Выплаты.ДатаПлатежа AS data INTO _Nalog " & _

 "FROM Пациенты RIGHT JOIN Выплаты ON " & _

 "Пациенты.УчетныйНомер = Выплаты.КодПациента " & _

 "WHERE (((Выплаты.ДатаПлатежа)>=" & sdStart & _

 " And (Выплаты.ДатаПлатежа)<=" & sdEnd & ")) " & _

 "ORDER BY Пациенты.Фамилия, Пациенты.Имя, " & _

 "Пациенты.Отчество, Выплаты.ДатаПлатежа"

Затем удаляется старая таблица, если она уже существует и создается новая таблица с тем же именем на основании запроса.

If IsTable("_Nalog") Then

   DoCmd.DeleteObject acTable, "_Nalog" 'удалить существующую таблицу

 End If

 DoCmd.RunSQL sSQL 'создать новую таблицу

После этого таблица преобразуется в формат dBase III.

DoCmd.TransferDatabase acExport, "dBase III", "c:\base", _

 acTable, "_nalog", "nalog.dbf", False

В начале работы на экране появляется надпись:

Me.НадписьСобытия.Caption = _ "Запущено формирование файла для налогов nalog.dbf",

а в конце работы появляется сообщение:

Me.НадписьСобытия.Caption = _

 "Файл для налогов c:\base\nalog.dbf сформирован"

Кнопка "О ветеранах" производит формирование отчета, согласно закона "О ветеранах". Отчет выполняется с помощью программы Microsoft Word 97 с применением OLE связей.

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

sdStart = DateSQL(Me.ПолеНачалоПериода)

 sdEnd = DateSQL(Me.ПолеКонецПериода)

 Me.НадписьСобытия.Caption = "Очищаю данные"

 For i = 0 To 15

   For j = 0 To 14

     A(i, j) = ""

   Next j

Next i

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

Private Function ПолучитьВсего(vdb As Database, vsSQL As String) As Long

Dim rs As Recordset

 Set rs = vdb.OpenRecordset(vsSQL)

 If (rs.RecordCount > 0) Then

   ПолучитьВсего = rs!Всего

 Else

   ПолучитьВсего = 0

 End If

 rs.Close

End Function

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

Private Function ВсегоПоУслуге(vdb As Database, Услуга As Long) As Long

Dim rs As Recordset, sSQL As String

 sSQL = "SELECT Count([_Отчет].КодПациента) AS Всего " & _

 "FROM [_Отчет] " & _

 "WHERE ((([_Отчет].КодУслуги)=" & Услуга & "))"

 Set rs = vdb.OpenRecordset(sSQL)

 If (rs.RecordCount > 0) Then

   ВсегоПоУслуге = rs!Всего

 Else

   ВсегоПоУслуге = 0

 End If

 rs.Close

End Function

Функция «ВсегоПоУслуге» позволяет рассчитать общий итог по данной услуге. Функция аналогична предыдущей, но SQL запрос формируется внутри функции (меняется только поле вида услуги).

Процедура «ВывестиСтолбецКатегорий» позволяет вывести столбец отчета по указанному виду услуги в заданную колонку (итоги уже выведены).

Private Sub ВывестиСтолбецКатегорий(db As Database, _

           Услуга As Long, Колонка As Integer, A As Variant)

В качестве примера приведен запрос на заполнение одного из полей:

'Бывших узников концлагерей и гетто (Категория = 7+103)

 sSQL = "SELECT Count([_Отчет].КодПациента) AS Всего " & _

 "FROM [_Отчет] " & _

 "WHERE ((([_Отчет].КодУслуги)=" & Услуга & ") " & _

 "AND (([_Отчет].Категория)=7)) " & _

 "OR ((([_Отчет].Категория)=103))"

 Итог = ПолучитьВсего(db, sSQL)

 If Итог <> 0 Then A(6, Колонка) = Итог

В главной программе сначала очищается таблица "_Отчет" и в нее заносятся данные, подготовленные запросом "ОтчетСКатегориямиНаУчет".

If IsTable("_Отчет") Then    'Если таблица уже создана

   DoCmd.DeleteObject acTable, "_Отчет"   'удалить существующую таблицу

End If

 DoCmd.OpenQuery "ОтчетСКатегориямиНаУчет", acNormal, acEdit

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

После этого выводится предупреждающая надпись и для всех видов услуг вызываются процедура построения столбца, описанные выше.

Me.НадписьСобытия.Caption = _

 "Расчет нуждающихся в услугах"

 Me.Repaint 'Перерисовать форму

 Итог = ВсегоПоУслуге(db, 1)

 If Итог <> 0 Then A(0, 1) = Итог

 ВывестиСтолбецКатегорий db, 1, 1, A  'база,услуга,колонка, массив

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

Me.НадписьСобытия.Caption = _

 "Запускаю редактор WORD, подождите немного..."

Me.Repaint

 Set wrd = CreateObject("Word.Document.8")

 wrd.Application.Documents.Open "C:\BASE\report.doc"

Сначала необходимо создать документ нужного типа. Строка инициализации изменяется для разных версий. Для Microsoft Word 97 -  это строка "Word.Document.8", для Microsoft Word 2000 это "Word.Document.9". Для других версий способ поиска нужной строки указан в "Руководстве системного программиста".

После инициализации и загрузки редактора, что занимает заметное время на машинах с небольшой памятью, открывается документ "C:\BASE\report.doc", в котором имеется шаблон документа. Необходимо создать резервную копию этого шаблона на случай, если пользователь испортит оригинал.

Me.НадписьСобытия.Caption = "Производится вывод данных в таблицу"

 Set tbl = wrd.Application.activedocument.tables(1)

 For i = 0 To 15

   For j = 0 To 13

     tbl.cell(i + 2, j + 3) = A(i, j)

   Next j

 Next i

После этого создается переменная типа таблицы редактора, в ячейки которой и заносятся значения элементов массива. Затем выводится надпись об успешном окончании работы и документ Word 97 делается видимым. Если документ сразу сделать видимым, это резко замедляет работу программы, так как производится перерисовка всего экрана после вывода каждой ячейки и имеется опасность, что пользователь может вмешаться в работу программы.

Me.НадписьСобытия.Caption = "Отчет сформирован"

 wrd.Application.Visible = True

Последними операциями освобождается память объектных переменных:

Set tbl = Nothing

Set wrd = Nothing

Форма "Персонал” (рис. 4.13) и последующие формы вызываются из формы "Страница администратора" главного меню. Форма предназначена для редактирования списка персонала в форме списка. Из нее вызывается форма "ПерсоналКарточка". 

Рис 4.13. Форма “Персонал”

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

Права могут быть двух видов:

1 – доступ к обычным данным;

2 – доступ администратора.

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

Private Sub Form_Open(Cancel As Integer)

If Not IsNumeric(UserAccess) Or UserAccess <> 2 Then

     MsgBox "К работе с персоналом допущен только администратор", _

     vbOKOnly, "Ошибка доступа"

     DoCmd.Close

   End If

End Sub

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

Рис. 4.14. Форма “Карточка персонала”

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

Формы "Категории", "Виды Услуг", "Виды оплат" сформированы с помощью мастера и к ним добавлены кнопки выхода, добавления и удаления записи. В качестве примера показана форма "Виды Услуг" (рис. 4.15). Все эти формы содержат справочные данные. Многие из этих форм доступны из многих форм, в качестве справки. Программы также сгенерированы мастером и поэтому не описаны.

Рис. 4.15. Форма “Виды услуг”

Основа формы “СписокУлицГорода” (рис. 4.16) сгенерирована мастером на основе запроса "СписокУлицСокр".

Рис. 4.16. Форма “СписокУлицГорода”

Поле адрес вычисляемое, выделено зеленым цветов и защищено от редактирования.

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


5. ЭКОНОМИЧЕСКАЯ ЧАСТЬ

5.1. Определение трудоемкости разработки

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

  •  экспертный;
  •  опытно-статистический;
  •  расчетно-аналитический.

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

Определение трудоемкости базируется на системе экспертных оценок, даваемых специалистами-экспертами. Каждый эксперт устанавливает три вероятностные оценки трудоемкости этапа (работы):

tij min – минимально возможная трудоемкость выполнения этапа (оптимистическая оценка);

tijн.в. – наиболее вероятная трудоемкость этапа;

tijmax – максимально возможная трудоемкость выполнения этапа (пессимистическая оценка).

Здесь i – номер этапа или работы;

 j – условный номер специалиста-эксперта.

Ожидаемая трудоемкость выполнения этапа (tijож) и дисперсия (σ 2ij) определяются по формулам:

tijож = (tijmin+tijн.в.+tijmax)/6   (5.1)

σ 2ij  = ((tijmax - tijmin)/6)2 (5.2)

Далее определяется среднее значение трудоемкости каждого этапа:

 tiож = mΣj=1 Pij*tijож             (5.3)

где m – количество экспертов;

 Pij – весовой коэффициент j-го эксперта при оценке трудоемкости i-го этапа.

В свою очередь

   Pij = σ 2oi/ σ 2ij           (5.4)

где σ 2oi – постоянная, выбираемая  из условий, что mΣj=1 Pij  = 1

т.е. σ 2oi = 1/ (mΣj=11/ σ 2ij)

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

σ 2i = σ 2 oi = 1/(mΣj=11/ σ 2ij)            (5.5)

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

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

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

В литературе описаны различные модификации опытно-статистического метода: метод типовых этапов; суммарно-нормативный метод; метод переводных коэфициентов и др. Однако сущность методики у них одна – использование обработанной системы аналогов.

Определение трудоемкости предстоящих НИР и ОКР производится путем их сопоставления и приравнивания к ранее выполненным.

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

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

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

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

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

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

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

   Ку = (1 - Уу)           (5.6)

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

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

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

Т0 = Тбнусст            (5.7)

где Т0 – общая трудоемкость разработки, н.ч.;

Тб – базовая трудоемкость разработки, приведенная к 1-й группе сложности и 4-й группе новизны, н.ч.;

Кс – коэффициент группы сложности проектируемого изделия;

Кн – коэффициент группы новизны проектируемого изделия.

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

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

Определим суммарную трудоемкость разработки системы:

Суммарная трудоемкость определяется по формуле:

Тсум= Т123              (5.8)

где Т1 – трудоемкость разработки структуры базы данных;

Т2 – трудоемкость создания базы данных;

Т3 – трудоемкость разработки и реализации программного обеспечения.

Т1, Т2, Т3 определяем по фактическим затратам времени на соответствующий вид работ:

Т1= 20 н.ч.;

Т2= 8 н.ч.;

Т3=  180 н.ч.

Тсум = 20+8+180=208 н.ч.

Определим трудоемкость квартальной отчетности до внедрения автоматизированной системы по фактическим затратам времени. Для ее получения требовалась работа трех человек в течение 5 рабочих дней. Получаем:  Тдо = 120 н.ч.

Трудоемкость после внедрения системы составит Тпос= 1/6 …1/4 н.ч.

5.2. Определение затрат

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

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

  •  материалы, покупные изделия и полуфабрикаты (кап. затраты) – Скап;
  •  основная заработная плата - Сот;
  •  отчисления на социальные программы - Ссн.

с учетом суммарной трудоемкости разработки = 208 н.ч.

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

Общая стоимость по данным бухгалтерии равна:

Cpu PI-100/Ram 16Mb/Hdd 1Gb/Video 1Mb/Fdd/Cd 24x/Key/Mouse/Monitor LG 56i – 9400 руб.

Итого: Скап = 9400 руб.

Сот = Зот(1+Кпдор)             (5.9)

где

Зот - оклад ответственного исполнителя;

Кп – коэффициент премиальных доплат (0,25);

Кд – надбавки и доплаты;

Ко – коэффициент оплаты отпусков (0,2);

Кр – коэффициент районных доплат (0,15).

Зот примем равным окладу программиста в администрации города, т.е. 520 рублей, тогда

Сот=520*(1+0,25+0+0,2+0,15)=832 руб.

Отчисления на соц. программы Сснотсн , где

Сот – суммарные расходы на оплату труда;

Ннс – коэффициент отчислений на соц. программы

Отчисления:

28% - в пенсионный фонд;

4% - социальное страхование;

3,6% - фонд медицинского страхования.

Следовательно Ннс=0,356

Ссн=832*0,356=296,192 руб.

Фонд заработной платы: Фзплотсн=832руб+296,192руб=1128,192 руб.

Рабочий месяц = 22дням=176часам,  Тсум=208 н.ч. значит

Затраты на разработку системы равны:

Сзатр= Фзпл /176*208+Скап=1128,192 руб./176*208 + 9400руб. =

+9400=10733,317руб.

Определим затраты на выполнение квартальной отчетности существовавшие до внедрения автоматизированной системы:

Т.к. Фзпл=1128,192 руб., а в месяце 176 часов,

то 1ч работы стоит 6,4 руб. или Фзпл1ч=6,4 руб.

Тдо=120 н.ч. – до внедрения системы для формирования отчета,  отсюда получаем затраты Сквдозпл1чдо=120*6,4=768 руб.

Определяем затраты на формирование квартальной отчетности после внедрения системы:

Трудоемкость после внедрения равна Тпос=1/6…1/4 н.ч. Для удобства расчета возьмем среднее значение, тогда Тпос=5/24 н.ч.

Фзпл1ч=6,4 руб. получаем

Затраты после внедрения Сквпос=1,3 руб.

5.3. Определение годового экономического эффекта от внедрения системы

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

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

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

Эот=(Сквдо – Сквпос )*4=(768руб.– 1,3руб.)*4= 3066,8 руб.                (5.10)

Определим годовой экономический эффект от внедрения системы касательно какого-либо количественного запроса. Трудоемкость его получения составляла до внедрения системы Тд=32 н.ч. (по фактическим затратам времени), после внедрения системы составит Тп=0,0013 н.ч. (5 сек), а фонд заработной платы 1 н.ч. равен Фзпл1ч =6,4 руб., тогда получаем

Затраты на запрос до внедрения равны Здд* Фзпл1ч=204, 8 руб.

Затраты на запрос после внедрения системы равны Зп=0,00832 руб.

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

Эз=(Здп)*100=20479,168 руб.


6. ОХРАНА ТРУДА

Одним из основных направлений научно-технического прогресса является развитие электронной вычислительной техники и ее широкое применение в производстве, научно - исследовательских и проектно - конструкторских работах, плановых расчетах и сфере управления. В последние годы значительно расширился парк выпускаемых ЭВМ - в нем наряду с машинами общего назначения заняли большое место миниЭВМ, микроЭВМ и ПЭВМ. Уменьшение стоимости, габаритов, потребляемой энергии вместе с ростом вычислительных возможностей позволяет использовать ЭВМ в гораздо более широких масштабах, чем прежние поколения вычислительной техники, и существенно улучшить условия труда обслуживающего персонала. Но широкое распространение ЭВМ требует отладки мер зашиты человека от новых вредных факторов. Охрана труда выявляет и изучает опасные и вредные производственные факторы, степень их воздействия на работающих, разрабатывает организационные и технические    мероприятия,    направленные    на    профилактику производственного травматизма и профессиональных заболеваний, создает технические средства защиты, устраняющие или уменьшающие воздействие на работающих этих факторов окружающей среды, предупреждающие       несчастные       случаи,       создающие высокопроизводительные, здоровые и безопасные условия труда в вычислительных центрах (ВЦ).

6.1. Условия труда пользователя. Методы их улучшения

 Пользователи в процессе работы сталкиваются с воздействием таких
физических опасных и вредных производственных факторов, как повышенный уровень шума, повышенная температура внешней среды, отсутствие  или  недостаток  естественного  света,  недостаточная освещенность   рабочей   зоны,   электрический   ток,   статическое электричество и другие. Воздействие указанных неблагоприятных факторов приводит к снижению работоспособности. С целью создания нормальных условий для персонала ВЦ установлены нормы микроклимата (ГОСТ 12.1.005-88). С целью обеспечения
комфортных условий для пользователей в ВЦ (СН 512-78) устанавливают дополнительные требования к воздушной среде помещений ВЦ. Так,
температура должна быть 20±2°С. Относительная влажность воздуха в зале рекомендуется 50±5°/о. Атмосферное давление в помещениях ВЦ должно быть 1013.25±266ГПа.

 Шум на рабочих местах в помещениях ВЦ создается внутренними
источниками: техническими средствами, устройствами кондиционирования воздуха, компрессорами, насосами, преобразователями напряжения и другим оборудованием, а так же шумом, проникающим в помещение извне. По происхождению шум делят на механический, аэродинамический и шумы электрических машин. Для рабочих мест ВЦ характерно наличие всех видов шумов. Технические средства создают механический шум, установки кондиционирования, компрессоры - аэродинамический, преобразователи напряжения - электромагнитный.

 В соответствии с ГОСТ 12.1.003-83 защита от шума, создаваемого на рабочих местах внутренними источниками, а так же шума, проникающего   извне,   осуществляется   следующими   методами: уменьшением шума в источнике; применением средств коллективной (ГОСТ 12.1.029-80) и индивидуальной (ГОСТ 12.4.051-87) защиты; рациональной планировкой и акустической отработкой помещений.

 К современному производственному освещению предъявляются
высокие требования как гигиенического, так и технико-экономического характера. Правильно спроектированное и выполненное освещение
обеспечивает   положительное   психологическое   воздействие   на работающих, способствует повышению производительности труда. О важности вопросов производственного освещения для ВЦ говорит тот факт, что условия деятельности пользователей связаны с явным преобладанием зрительной информации. В ВЦ, как правило, применяют боковое естественное освещение. В машинных залах рабочие места пользователей, работающих с дисплеями,
располагают подальше от окон и таким образом, чтобы оконные проемы находились сбоку. Если экран дисплея обращен к оконному проему,
необходимы специальные экранизирующие устройства. В тех случаях, когда одного естественного освещения в помещении недостаточно,   устанавливают   совмещенное   освещение.   Для искусственного освещения помещений ВЦ следует использовать люминесцентные лампы ЛБ (белого света) и ЛТБ (тепло-белого света).

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

 Рекомендуемая освещенность для работы с экраном дисплея
составляет 100 лк, а при работе с экраном в сочетании с работой над документами 400 лк. Рекомендуемые яркости в поле зрения работающих
должны лежать в пределах 1:5- 1:10.

 Электрические установка, к которым относится практически все
оборудование  ЭВМ,  представляет  для  пользователя  большую потенциальную опасность, так как в процессе эксплуатации или проведения профилактических работ человек может коснуться частей, находящихся под напряжением. Проходя через тело человека, электрический ток оказывает на него сложное воздействие, вызывая термическое, электрофизическое, механическое и биологическое действие. Любое из перечисленных воздействий тока может привести к травме (ГОСТ 12.1.009-76).

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

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

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

 Так как пользователь много времени проводит за экраном дисплея,
то он так же подвергается воздействию излучения. Согласно (ГОСТ 23.144-78) мощность рентгеновского излучения на расстоянии 5 см. от поверхности экрана не должна превышать 100 мкР/час.

 Большинство современных дисплеев имеет излучение на уровне 30-50 мкР/час, однако у некоторых дисплеев старых конструкции оно может и  превышать 100 мкР/час. Устройства визуального отображения выделяют, кроме того, еще несколько типов излучения: радиочастотное, видимое. Следует учесть, что мягкое рентгеновское излучение, возникающее при напряжении анода 20-22 кв., а также высокое напряжение на токоведущих участках вызывают ионизацию воздуха. Ионы как тяжелые, так и мягкие считаются агрессивными: они осаждаются на пылинки и вместе с воздухом попадают в дыхательные пути. Для предотвращения токсичного воздействия ионизированной пыли рекомендуется в помещении с ЭВМ каждый день проводить влажную уборку [3].

6.2. Планировка помещения Горздравотдела с учетом удобства пользователя (оператора) ПК

Условные обозначения:

1- шкаф; 2 -стол письменный; 3- стенка; 4- стул; 5- вешалка; 6- стол письменный с ПК.

6.3. Организация рабочего места с учетом требований эргономики

Рабочее место для выполнения работ сидя  должно соответствовать ГОСТ 12.2.032-88, ГОСТ 22269-88, ГОСТ 21229-88. Положение человека сидя предопределяет зоны досягаемости рук и зоны обзора, которые показаны на рис. 6.3.

Рис. 6.3. Зоны досягаемости

1 - оптимальная зона - в ней располагают наиболее часто применяемые предметы (не реже 2 раз в минуту);

2 - зона легкой досягаемости - располагают часто используемые предметы (реже 2 раз в мин., но чаще 2 раз в час);

3 - зона досягаемости - располагают редко используемые предметы (реже 2 раз в час).

 Конструкция рабочего стола должна обеспечивать возможность оптимального размещения на рабочей поверхности необходимого оборудования. Высота рабочей поверхности стола должна регулироваться в пределах от 680 до 760 мм, при отсутствии такой возможности ее высота должна быть 720 мм. Размеры стола должны быть 1600 900 мм. Стол должен иметь свободное пространство для ног высотой не менее 600 мм, шириной не менее 500 мм, глубиной не менее 650 мм  и подставку для ног, которая регулируется по высоте в пределах до 150 мм, шириной не менее 350 мм, длиной – не менее 400 мм и углом наклона до 20.

 Рабочий стул должен быть снабжен подъемно–поворотным устройством, обеспечивающим регулирование высоты сиденья и спинки; его конструкция должна предусматривать также изменение угла наклона спинки. Регулировка каждого параметра должна легко осуществляться, быть независимой и иметь надежную фиксацию. Высота поверхности сидения должна регулироваться в пределах от 400 до 500 мм. Ширина должна составлять не менее 400 мм, глубина – не менее 380 мм. Поверхность сидения и спинки стула (кресла) должна быть полумягкой, с нескользящим, не электризующим и воздухопроницаемым покрытием. Материал покрытия должен обеспечивать возможность легкой очистки от загрязнений.

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

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

6.4. Организация режима труда и отдыха

Персональный компьютер является в настоящее время важным инструментом для работы практически в любой организации. В ряде случаев работа за ним может вызвать профессиональное заболевание. К основным системам и органам, которые страдают от этого, могут быть отнесены: сердечно–сосудистая система, опорно-двигательный аппарат, центральная нервная и эндокринная системы. Поэтому введение режима труда невозможно без гигиенически–рациональной организации труда (табл. 6.1).

Таблица 6.1.

Рекомендуемый режим труда и отдыха

Время работы 

Время отдыха 

800  –  900

900  –  910

910  –  1010

1010  –  1025

1025  –  1125

1125  –  1135

1135 - 1235

Обеденный перерыв

1235  –  1335

1335  –  1435

1435  –  1450

1450  –  1550

1550  –  1600

1600  –  1700

Итого: рабочего времени

420 минут

Итого: регламентированных

перерывов 60 минут

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

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

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

  1.  чередование операций ввода осмысленного текста и числовых данных (изменение содержания работ);
  2.  введение регламентированных перерывов с учетом характера выполняемой работы;
  3.  введение в режим труда функциональной музыки;
  4.  проведение других организационных мероприятий по рационализации режимов труда и отдыха в соответствии с требованиями “Межотраслевых рекомендаций по разработке рациональных режимов труда и отдыха”.

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

6.5. Пожаро - и взрывобезопасность

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

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

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

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

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


7. ЗАКЛЮЧЕНИЕ

Разработанная автоматизированная система позволит улучшить оперативность и качество обслуживания ветеранов и других лиц, попадающих под действие ФЗ «О ветеранах» в нашем городе. Она будет использоваться специалистами отдела здравоохранения г. Воткинска, а также работниками других лечебных заведений города (Центральной Районной Больницы и Городской Больницы №1). Все подсчеты и расчеты, которые велись до сих пор вручную и поэтому в них была не исключена возможность ошибки, что могло сказаться на качестве обслуживания, теперь будут вестись данной системой автоматически. Разработанная система позволяет также уменьшить затраты на получение отчетов и количественных запросов. Система создавалась с учетом особенностей и пожеланий специалистов отдела здравоохранения и поэтому является простой и удобной в работе. Реализованный в разработанной системе метод аутентификации пользователей обеспечивает достаточную конфиденциальность хранимой информации, и может быть расширен ведением протокола изменений и входа пользователей.

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


8. ИСТОЧНИКИ, ИСПОЛЬЗОВАННЫЕ ПРИ РАЗРАБОТКЕ

  1.  Хендерсон К. Delphi 3 и системы клиент/сервер. Руководство разработчика. Киев-Москва: Диалектика, 1997. – 736 с.
  2.  Ончуков Е.П. Методическое указание для дипломников по охране труда. Ижевск, 1979. – 30 с.
  3.  Под ред. Юдина Е.Я., Белова С.В. Охрана труда в машиностроении. М.: Машиностроение, 1989. – 238 с.
  4.  Денисенко Г.Ф. Охрана труда. М.: Высшая школа, 1985. – 314 с.
  5.  ГОСТ 19.003-80. Схемы алгоритмов и программ. Обозначения условные графические.
  6.  ГОСТ 2.301-68.1.2. ЕСКД. Форматы.
  7.  ГОСТ 19.101-77. ЕСПД. Виды программ и программных документов.
  8.  ГОСТ 19.503-79.ЕСПД. Руководство системного программиста. Требования к содержанию и оформлению.
  9.  ГОСТ 19.104-78. ЕСПД. Основные надписи.
  10.   ГОСТ 19.001-77. Общие положения.
  11.   ГОСТ 19.105-78. Общие требования к программным документам.
  12.   ГОСТ 19.002-80. Схемы алгоритмов и программ. Правила выполнения.
  13.   ГОСТ 19.102-77. Стадии разработки.
  14.   ГОСТ 19.402-78. Описание программы.
  15.   ГОСТ 19.404-79. Пояснительная записка. Требования к содержанию и оформлению.
  16.   ГОСТ 19.504-79. Руководство программиста. Требования к содержанию и оформлению.
  17.   ГОСТ 19.505-79. Руководство оператора. Требования к содержанию  и оформлению.
  18.   www.u042.22.spylog.com.
  19.   Вейскас Д. Эффективная работа с Microsoft Access 97. СПб.: ЗАО «Издательство «Питер», 1999. – 976с.
  20.   Методическое указание по выполнению курсовой работы по курсу «Организация, планирование и управление предприятием» и экономической части дипломных проектов (для студентов специальностей 22.01, 22.03, 22.04). / Сост. Г.Н. Богомолова, Г.А. Лобанова. Ижевск: Из-во ИжГТУ, 2000. – 30с.
  21.  Васильев А., Андреев А. VBA в Office 2000: учебный курс. СПб: Питер, 2001. – 432 с.


Юр. лица, Физ. лица.

Льготная категория

Акты рождения, смерти, брака и т.д.

Делопроизводство, кадры

население

Очередь на жилплощадь

Адм. нарушения

имущество

Сервер администрации

УВД

(Управление Внутренних Дел)

Горздравотдел

ЗАГС

Жилищный

отдел

Регистрационный центр администрации

ПВС

(Паспортно-Визовая Служба)

БТИ

(Бюро Технической Инвентаризации)

Общий отдел админис-трации

Отдел социальной защиты

Аптеки

Центральная Районная Больница (ЦРБ)

Врач, ответствен-

ный за мед.обслу-

живание инвалидов и ветеранов

Участковые врачи

(амб. карты)

Зав.

поликли-

никой

Архив

ородская больница №1 (ГБ1)

Участковые врачи

(амб. карты)

Зав.

поликли-

никой

Архив

ГОРЗДРАВОТДЕЛ

Специалист

отдела

АПТЕКА

Бухгал-

терия

Стоматологическая

больница

Готовый

отчет

данные на традиц - ом носителе

данные на трад. носителе

Амб. карты

данные (трад. носитель)

рецепты

рецепты, суммы

данные по суммам

списки

рецепты

данные (трад. носитель)

данные (традиц. носитель)

Амб. карты

рецепты

Центральная районная больница

(ЦРБ)

Городская Больница №1 (ГБ1)

ГОЗДРАВОТДЕЛ

АПТЕКА

БУХГАЛТЕРИЯ

Стоматологическая

больница

ПК

Оператор

данные

ПК

Оператор

данные

ПК

Оператор

данные

Данные на магнитных носителях

Данные на магнитных носителях

данные по суммам

Рецепты,суммы

списки

рецепты

принтер

Сформирован-ный отчет

2

2

2

2

4

4

4

4

3

2

2

4

3

2

4

4

4

4

4

5

1

6

4

6

4

1

Рис. 6.1 Настоящая планировка помещения Горздравотдела

Рис. 6.2 Проектируемая планировка помещения Горздравотдела

Персонал

1

Виды оплат

Услуга

Категория

Выплаты

Больница

Пациент

1

1

1

1

1

М

М

М

М

М

М

1

Выбор фамилии

Ввод пароля

Рис. 3.1. Исходная модель сущность-связь

  1.  

 

А также другие работы, которые могут Вас заинтересовать

80701. Synonymy 32.44 KB
  Synonyms are the words of the same part of speech different in their sound-form but similar in their meaning and interchangeable at least in one context. There are very few perfect synonyms. They usually differ in some aspect of their meaning — according to this they can be ideographic
80702. Antonymy (semantic opposition). Antonyms are words which express opposite or contrasting meanings 32.49 KB
  Antonyms are subdivided into. Gradable — represent the extremes of the quality. There are often adjectives that can be placed on the scale between them (hot-cold). Contradictory-complimentary — cannot exist without each other (dead-alive; leave-stay)3. Conversive — describe opposite attributes of the same situation (to buy-to sell — when one buys another sells)
80704. THE MORPHEMIC STRUCTURE OF THE WORD. TYPES OF MORPHEMES. ALLOMORPHS nd mening: they don’t possessed grmmticl mening. 30.83 KB
  The morpheme is the smallest meaningful unit of form. A form in these cases a recurring discrete unit of speech. Morphemes occur in speech only as constituent parts of words, not independently, although a word may consist of single morpheme. Even a cursory examination of the morphemic structure of English words reveals that they are composed of morphemes of different types: root-morphemes and affixational morphemes. Words that consist of a root and an affix are called derived words or derivatives and are produced by the process of word building known as affixation (or derivation).
80705. MORPHEMIC LEVEL OF ANALYSYS OF WORD-STRUCTURE 33.59 KB
  There are two levels of approach to the study of word- structure: the level of morphemic analysis and the level of derivational or word-formation analysis. Principles of morphemic analysis. In most cases the morphemic structure of words is transparent enough and individual morphemes clearly stand out within the word. The segmentation of words is generally carried out according to the method of Immediate and Ultimate Constituents.
80706. Lexicology as a branch of linguistics. Parts /branches of lexicology. The connection of lexicology with other branches of linguistics 32.51 KB
  Special lexicology – the lexicology of a particular language, i.e. the study and description of its vocabulary and vocabulary units, primarily words as the main units of language.; special lexicology is based on the principles worked out and laid down by general lexicology, a general theory of vocabulary. Special lexicology employs synchronic (q.v.) and diachronic (q.v.) approaches
80708. The word as an arbitrary and motivated sign. Naming. Types of motivation 34.58 KB
  The process of motivation depends on the inner form of the word. The inner form is central point in the lexical meaning which helps to get inside in to the features chosen as the basis of nomination. In linguistics the term MOTIVATION is used to denote the relationship
80709. Бухгалтерская отчетность 121.5 KB
  Бухгалтерская отчетность Адреса и сроки представления бухгалтерской отчетности Состав бухгалтерской отчетности Статистическая отчетность Срок хранения первичных документов Исправление бухгалтерских ошибок. Адреса и сроки представления отчетности Все организации за исключением бюджетных представляют годовую бухгалтерскую отчетность в соответствии с учредительными документами учредителям участникам организации или собственникам ее имущества а также территориальным органам государственной статистики по месту их регистрации...