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

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

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

Содержание

Сокращения и обозначения

Введение

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

.1 Описание структуры и направление деятельности организации

.2 Описание объекта автоматизации

.3 Обзор существующих аналогов

.4 Изучение правил информационного взаимодействия

.4.1 Принципы построения и правила модификации информации в ОБ

.4.2 Информационные пакеты для работы с ОБД

.4.3 Транспортная таблица TRANS

.5 Формулировка общих и специальных требований к системе

.6 Выбор инструментальных средств разработки

.7 Декомпозиция системы

.8 Построение концептуальной модели данных

2. Разработка структур данных и программного обеспечения

2.1 Построение физической модели данных

.2 Разработка алгоритмов

.3 Разработка интерфейса пользователя, экранных форм и отчетов

.4 Разработка процедур и функций приложения

. Технико-экономическое обоснование разработки ПО

.1 Расчет затрат на разработку ПО

.2 Расчет цена разработанной программы

.3 Расчет капитальных вложений

.4 Расчет эксплуатационных расходов

.5 Расчет денежного годового экономического эффекта

.6 Определение показателей эффективности инвестиций

.7 Выводы

. Охрана труда

.1 Выявление явных и потенциально опасных вредных производственных факторов

.1.1 Излучение электромагнитных полей

.1.2 Шум

.1.3 Микроклимат

.1.4 Электробезопасность

.1.5 Освещенность

.1.6 Пожарная безопасность

.1.7 Организация рабочего места

4.2 Мероприятия по устранению опасных и вредных производственных факторов

Заключение

Приложения

Сокращения и обозначения

БД - база данных.

ЕМСР - единый медико-социальный регистр.

ЛПУ - лечебно-профилактическое учреждение.

ЛПУ ПМСП - лечебно-профилактическое учреждение первичной медико-санитарной помощи.

ОМС - обязательное медицинское страхование.

ПО - программное обеспечение.

СМО - страховая медицинская организация.

ТФОМС - территориальный фонд обязательного медицинского страхования.

ФИО - фамилия имя отчество.

ЛБД - локальная база данных.

ОБД - областная база данных.

АИС - автоматизированная информационная система.

программа страховой медицинский интерфейс

Введение

С 1993 года в Самарской области было введено обязательное медицинское страхование и создан Территориальный фонд обязательного медицинского страхования, который является основной государственной структурой области, аккумулирующей финансовые средства ОМС, выделяемые на оказание бесплатных медицинских услуг.

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

В соответствии с Законом о медицинском страховании и Правилами ОМС населения Самарской области застрахованным считается гражданин, в отношении которого заключен договор между работодателем (страхователем) и страховой компанией (страховщиком), а самому гражданину выдан полис ОМС.

Все население Самарской области делится на две категории:

работающие, страхователем является работодатель;

неработающие, страхователем является Администрация Самарской области.

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

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

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

Формирование ОБД является результатом информационного взаимодействия между СМО и ТФОМС, которое призвано обеспечить актуальное состояние ЕМСР, то есть достоверность сведений о застрахованном, без какого-либо ущемления прав граждан в системе ОМС.

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

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

1 Анализ предметной области и постановка задачи

.1 Описание структуры и направление деятельности организации

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

В настоящее время на территории Самарской области медицинским страхованием занимается 7 компаний. Каждая СМО осуществляет свою деятельность на закрепленной территории и обслуживает конкретную категорию граждан.

Организационная структура страховой компании представлена на рисунке 1.1.

Рисунок 1.1 - Организационная структура страховой медицинской организации

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

1)   выдача полисов ОМС;

2)   прием и обработка счетов за оказанные медицинские услуги;

3)   защита прав застрахованных;

4)   проведение экспертизы медицинской помощи;

5)   оказание консультационной помощи по бесплатной горячей телефонной линии;

6)   поддержание в актуальном и корректном состоянии информации о застрахованных в ЕМСР и другие.

Из вышеперечисленных задач, приоритетной является выдача полиса ОМС. Эта процедура осуществляется следующим образом.

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

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

Оператор после предъявления необходимой информации проверяет наличие потенциального застрахованного в ЕМСР. Затем в случае положительного принятия решения, информация вносится в базу данных, а застрахованному выдается полис ОМС, под роспись в журнале выдачи полисов.

Итак, полис ОМС выдан, но кроме его наличия, не менее важным является, то какое ЛПУ будет оказывать медицинскую помощь застрахованному и соответственно, куда будет перечисляться оплата по выставленным счетам. По умолчанию, при выдаче полиса, застрахованного прикрепляют к лечебному учреждению, по его территории проживания. Если же гражданин хочет обслуживаться другим ЛПУ, то для этого ему необходимо написать там заявление на прикрепление, после чего данное лечебное учреждение передает это заявление в страховую компанию, которая изменяет прикрепление в БД по умолчанию, на основании заявления.

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

За оказание медицинских услуг, ЛПУ направляют в СМО счета на оплату. Страховая компания на основе ЛБД застрахованных определяет плательщика и принимает счет на оплату.

.2 Описание объекта автоматизации

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

Сведения о застрахованном в БД описываются следующими информационными сегментами:

1)   ЕИН - единый идентификационный номер в ОБД;

2)   персональные данные (ФИО, пол, дата рождения, документ, адрес);

3)   данные о страховании (полис, договор, страхователь, СМО);

4)   данные о прикреплении (базовое ЛПУ, стоматологическое ЛПУ).

Эта информация по мере изменения должна соответственно обновляться и в ЕМСР, то есть должна существовать синхронизация ЛБД с ОБД. Этот процесс называется информационным обменом и показан на рисунке 1.2.

Рисунок 1.2 - Схема информационного обмена

Для выполнения этой задачи, СМО реализуется следующая последовательность действий:

1)   из ЛБД выбираются данные о застрахованных, по которым произошли изменения, в каком-либо информационном сегменте;

2)   выборка анализируется и на основании ее формируется запрос, отсылаемый по электронной почте. Запрос оформляется в виде таблицы формата DBF III, которая заполняется в соответствии с правилами информационного взаимодействия, и упаковывается архиватором в информационный пакет с паролем;

3)   затем в течение двух дней, в зависимости от вида запроса, приходит ответ, также в виде информационного пакета по электронной почте;

4)   ответ обрабатывается, и далее в зависимости от полученного результата, выбирается дальнейшая стратегия действий:

- ошибки передаются на выверку и исправление в отдел страховой деятельности (ОМС);

посылаются на другие виды запросов;

на основе результата, обновляется информация в ЛБД.

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

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

своевременное отслеживание изменений в ЛБД;

отсылку их на соответствующий запрос;

получение ответа и его обработка;

обновление ЛБД, в соответствии с результатом обработки.

.3 Обзор существующих аналогов

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

1)   МИАЦ - медицинский информационно-аналитический центр;

2)   ИМЦ - информационный медицинский центр.

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

ООО ИМЦ создано в 2000 году на базе отдела информационных систем самарской компании «ПАРУС». Специалисты, работающие в компании, с 1991 года специализируются на разработке и внедрении программного обеспечения и информационном обслуживании медицинских учреждений, включая развитие всей сопутствующей технической инфраструктуры, сопровождение, модернизацию и распространение программ, обучение и консалтинг пользователей.

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

Информационный медицинский центр занимается также созданием ПО для страховых медицинских организаций, являясь фактически монополистом в этой сфере. В частности в 2004 году ими была разработана информационная система АИС «ОМС», которая в настоящее время используется некоторыми СМО.

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

Функциональные возможности системы:

1)   организация комплексного учета основных этапов медицинского страхования гражданина;

2)   пакетная обработка информации о застрахованных, получаемая в процессе информационного обмена;

3)   учет заключенных договоров страхования;

4)   ведение истории изменений данных по каждому застрахованному.

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

Преимуществом системы является то, что функционально она входит в состав программного комплекса АИС «ОМС» как один из его модулей. Это позволяет использовать единый программный продукт для реализации всех функций в отношении информации о застрахованных в рамках ЕМСР.

Недостатки:

1)   блокировка записи на срок до момента получения ответа на запрос;

2)   отсутствие анализа полученных ответов;

3)   отсутствие возможности автоматического отслеживания изменения информации о застрахованных и отсылки соответствующих данных в ОБД;

4)   несоответствие текущим требованиям нормативных документов.

Таким образом, очевидно, что функционал АИС «ОМС» по обмену информации с ОБД является недостаточным для эффективной организации деятельности СМО. Из этого следует необходимость в разработке новой системы, которая будет лишена указанных выше недостатков.

.4 Изучение правил информационного взаимодействия

Страховые медицинские организации, также как и Территориальный фонд обязательного медицинского страхования, являются субъектами информационного взаимодействия, которое регулируется нормативным документом - «Положение о порядке информационного взаимодействия в системе обязательного медицинского страхования на территории Самарской области (Версия 8.0)».

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

Для описания информации о застрахованных в системе ОМС, используются следующие понятия.

Объект учета - человек, проживающий на территории Самарской области.

Запись - сведения об объекте учета за определённый временной интервал, содержащиеся в накопительной таблице ОБД.

Владелец объекта - субъект ОМС, с которым у человека имеются юридические взаимоотношения (СМО, которой застрахован человек).

         1.4.1 Принципы построения и правила модификации информации в ОБД

Построение накопительной базы данных ЕМСР основано на принципах целостности и непротиворечивости, содержащихся в ней данных, что поддерживается некоторыми уникальными комбинациями полей.

Каждая запись в накопительной базе данных ЕМСР имеет единый уникальный идентификационный номер - ЕИН.

Работа с ОБД строится по следующему сценарию: субъект информационного взаимодействия отправляет запрос в ЕМСР. ЕМСР после обработки запроса возвращает его результат. Запросом является требование на просмотр, добавление или модификацию информации в ОБД, построенное по определенному формату.

Операции, проводимые в ОБД следующие:

1)   модификация данных.

Модификация информации в ОБД производится на основании данных, поступающих из СМО. На изменения в параметрах объекта учета имеет право только его владелец;

2)   регистрация нового объекта.

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

Программным обеспечением ЕМСР производится анализ - не вступают ли в конфликт сведения по данному объекту с имеющейся информацией в ОБД. При обнаружении конфликта ЕМСР «предлагает» его устранить, для чего инициирует процесс согласования. Сведения по регистрируемому объекту и конфликтным объектам пересылаются всем владельцам объектов сформированного процесса согласования. Если при анализе данных конфликта обнаружено не было, в ОБД регистрируется новый объект.

3)   удаление объекта.

Для того чтобы указать, что финансирование СМО данного застрахованного прекращено, необходимо удалить его из ОБД. Удаление объекта может быть произведено в следующих случаях:

по запросу от «владельца» объекта;

по запросу ТФОМС;

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

4)   процедура согласования.

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

Согласование может быть двух типов:

«явное» согласование обуславливается ситуацией, когда вносимые изменения приводят к смене владельца объекта (т.е. меняются значения полей «код СМО» или «код ЛПУ ПМСП прикрепления») и при этом входящая информация однозначно находится в ОБД и не входит в конфликты с другими записями по дополнительным уникальным ключам;

«неявное» согласование вызывается ситуацией, когда владелец объекта учета не меняется, но внесение изменений вызывает нарушение уникальности хотя бы одного уникального ключа ОБД.

При наличии таких конфликтов изменение данных объекта учета требует подтверждения со стороны других субъектов ОМС, вовлеченных в конфликт. Функционирование процедуры согласования предполагает обновление сведений в ОБД только в случае успешного завершения процедуры согласования. Срок проведения процедуры согласования в ТФОМС устанавливается 7 суток.

1.4.2 Информационные пакеты для работы с ОБД

Информационный пакет - это защищенный паролем, архивный файл типа ZIP, в котором содержится фрагмент базы данных в виде набора взаимосвязанных таблиц формата DBF III (dBASE RUS cp866).

Формат имени информационного пакета имеет следующий вид:

NNNNNSSK.YMD, где:

NNNNN - код учреждения - отправителя информационного пакета;

SS - суффикс информационного пакета, (код пакета), определяет тип информационного пакета.

K - Символ, являющийся числом в системе счисления по основанию 32, означающий порядковый номер информационного пакета от данного учреждения за текущие сутки; Расширение файла YMD представляет собой дату формирования пакета в свернутом формате. Здесь Y - последняя цифра номера года; M - месяц в шестнадцатеричной системе счисления (для месяцев с января по декабрь - соответственно 1, 2, 3, 4, 5, 6, 7, 8, 9, A(10), B(11), C(12)); D - число месяца в системе счисления по основанию 32 (для чисел с 1 по 31 - соответственно 1, 2, 3, 4, 5, 6, 7, 8, 9, A(10), B(11), C(12), D(13), E(14), F(15), G(16), H(17), I(18), J(19), K(20), L(21), M(22), N(23), O(24), P(25), Q(26), R(27), S(28), T(29), U(30), V(31)).

За один день учреждением в адрес одного получателя может быть сформирован только 1 пакет с одним именем.

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

Таблица 1.1 - Типы информационных пакетов

№ п/п

Код

Комментарий

Отправитель

Получатель

Сроки передачи

1.

QR

Данные по страхованию

СМО

ТФОМС

По мере необходимости

2.

RQ

Результат обработки данных по страхованию в ТФОМС

ТФОМС

СМО

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


При пересылке пакета по электронной почте в теме письма необходимо указать строку «Data_for_UMSR».

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

.4.3 Транспортная таблица TRANS

Описание передаваемого запроса представляет собой запись в таблице TRANS, ее структура представлена в таблице 1.2.

Таблица 1.2 - Структура транспортной таблицы TRANS

№ п/п

Имя поля

Расшифровка

Тип

Длина

1

ЕIN

Единый идентификационный номер (ЕИН)

Character

16

2

SURNAME

Фамилия

Character

24

3

NAME

Имя

Character

16

4

SECNAME

Отчество

Character

16

5

NDOC

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

Numeric

7

6

NSDOC

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

Numeric

2

7

SDOC

Серия документа

Character

2

8

DOCTYPE

Тип документа

Numeric

1

9

DOCDATE

Дата выдачи документа

Date

8

10

DOCEMISS

Код подразделения УВД, выдавшего документ

Character

10

11

NPOLIS

Номер бланка страхового полиса ОМС

Numeric

8

12

SPOLIS

Серия бланка страхового полиса ОМС

Character

5

13

INSURER

Код СМО

Numeric

5

14

AGRNUM

Номер договора (ссылка на договор страхования PRED)

Numeric

6

15

BIRTHDAY

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

Date

8

16

RGN1

Код города или сельского района

Numeric

3

17

RGN2

Гор.,район,поселок или сельсовет

Numeric

3

18

RGN3

Населенный пункт

Numeric

3

19

STREET

Улица (заполняется из Streets)

Numeric

4

20

HOUSE

Номер дома

Numeric

4

21

HOUSEEDGE

Второй № дома, если дом - угловой

Numeric

4

22

HOUSELITER

Литера дома

Character

1

23

CORPUS

Корпус

Numeric

2

24

FLAT

Квартира

Numeric

4

25

FLATLITER

Литера квартиры

Character

1

26

LPUBASE

Код ЛПУ ПМСП прикрепления (заполняется из LPU)

Numeric

5

27

LPUBASE_U

Номер участка в LPUBASE

Numeric

3

28

LPUDENT

Код стоматологического ЛПУ прикрепления (заполняется из LPU)

Numeric

5

29

LOCAL

Признак регистрации прописки

Numeric

1

30

SEX

Пол

Numeric

1

31

Код территории проживания по КЛАДР, детализированный до уровня улицы для жителей иных областей

Character

17

32

FINSTAT

Страхователь: 1 - работодатель 2 - Правительство Самарской области за неработающее население

Numeric

1

33

POLISDATE

Дата выдачи полиса ОМС, используется для Silence

Date

8

34

REASONBASE

Причина смены ЛПУ ПМСП прикрепления

Numeric

1

35

REASONDENT

Причина смены стоматологического ЛПУ ПМСП прикрепления

Numeric

1

36

PENSION

Идентификатор пенсионного фонда

Character

14

37

REMSTAT

Признак окончания действия записи

Numeric

1

38

EIN REF

ЕИН оригинала (для «двойника»)

Character

16

39

BEGDATE

Дата регистрации объекта

Date

8

40

ENDDATE

Конец периода действия записи

Date

8

41

MODDATE

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

Date

8

42

SMOFIN

СМО, на которую производится финансирование квартала с FinDate (заполняется из справочника smo)

Numeric

5

43

BEGFIN

Дата начала квартала финансирования для СМО

Date

8

44

ENDFIN

Дата окончания финансирования

Date

8

45

INSTAT

Статус согласования записи

Numeric

1

46

AUTHORSTAT

Автор изменения статуса (пользователь или ЕМСР (Silence))

Numeric

1

47

LDBL

Ветка логического дублирования

Character

16

48

IDQ

Идентификатор запроса системы (уникальная ссылка на процесс)

Character

10

49

IDQ_SBJ

Идентификатор запроса субъекта (уникальная ссылка на процесс)

Character

20

50

DATE_CH

Дата последнего изменения записи в локальной БД страховой компании

Date

8

51

DOCREASON

Дополнительная информация ТФОМС

Character

40

52

OPERDATE

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

Date

8

53

NUMQ

Код запроса

Character

З

54

SILENCE

Признак действия по умолчанию

Numeric

1

55

SOURCETAB

Имя таблицы - источника

Character

8

56

MESSCODE

Код сообщения

Numeric

3

57

ERRCODE

Код ошибки

Numeric

3


Порядок заполнения полей таблицы TRANS зависит от вида запроса. Код запроса характеризуется значением поля NUMQ, возможные варианты его заполнения приведены ниже в таблице 1.3.

Таблица 1.3 - Значения поля NUMQ

Код запроса

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

Инициатор

Q01

Определение ЕИН

ЛПУ, СМО

Q02

Получение информации об объекте

ЛПУ, СМО

Q03

Регистрация объекта в ЕМСР

СМО

Q04

Изменение данных в ЕМСР (прикрепление застрахованного к СМО или ЛПУ ПМСП, изменение предметной информации о человеке)

СМО

Q05

Изменение статуса в данных, участвующих в согласовании (подтверждение изменений, апелляция, снятие запроса на изменение - отмена согласования)

СМО

Q08

Удаление объекта из ЕМСР

СМО, ТФОМС

Q09

Восстановление объекта в ЕМСР

СМО, ТФОМС


Поле EIN единый идентификационный номер жителя, проживающего на территории Самарской области.

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

Поле MODDATE - дата внесения информации в ОБД. Генерируется ЕМСР и фактически является началом периода действия записи.

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

Поле INSTAT определяет статус согласования. Может принимать следующие значения, перечисленные в таблице 1.4.

Таблица 1.4 - Значения поля INSTAT

Код

Расшифровка

0

исходящая запись с ошибками

1

входящая запись (заявка на согласование)

2

запись находится на согласовании

3

заявлена апелляция

4

подтверждение изменений

5

отмена изменений

6

силовое решение согласования


Значение поля AUTHORSTAT указаны в таблице 1.5.

Таблица 1.5 - Значения поля AUTHORSTAT

Код

Расшифровка

1

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

2

статус согласования был изменен ЕМСР по истечении срока


Поле LDBL хранит уникальные ключи, по которым запись была найдена в ЕМСР. Каждый символ данной строки - номер ветки логического дублирования в системе счисления по основанию 32.

Поле IDQ формируется в ЕМСР.

Поля LPUBASE, LPUDENT принимают значение 7001 для лиц, проживающих за пределами Самарской области (не заполнены поля RGN1,RGN2,RGN3, заполнено поле KLADRST).

Поле SILENCE описывает реакцию ЕМСР в случае завершения процесса согласования ЕМСР (если ни от одного участников процесса согласования не последовало реакции в установленный срок), значения поля представлены в таблице 1.6.

Таблица 1.6 - Значения поля SILENCE

Код

Расшифровка

1

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

2

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


Поле MessCode хранит ответ ЕМСР на запросы пользователей.

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

Таблица 1.7 - Значения полей перечислимого типа

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

Допустимые значения

DOCTYPE

1-паспорт; 2-свидетельство о рождении; 3- паспорт граждан, на которых не заполняются адресные данные (сотрудники правоохранительных органов); 4- документ, выданный иностранным гражданам (данные могут быть заполнены не полностью); 6- временное удостоверение личности 7- вид на жительство.

LOCAL

1-в таблице указан адрес регистрации постоянного жителя Самарской области; 2 - в таблице указан адрес проживания в Самарской области жителя, прописанного в другом регионе РФ.

SEX

1 - мужской; 2 - женский.

FINSTAT

1 - работодатель; 2 - областная администрация.

REASONBASE, REASONDENT

1 - по территории (по умолчанию); 2 - по заявлению.

REMSTAT

1 - умер; 2 - переехал в другой регион РФ; 3 - прекратил действие договор страхования; 4 - является двойником; 5 - действие записи прекращено по данным мониторинга ТФОМС.

Для всех записей таблицы TRANS, должны выполняться следующие требования:

в запросе к ЕМСР должны быть сгенерированы уникальные значения поля IDQ_SBJ. Пустые значения и дублирование значений поля IDQ_SBJ внутри таблицы TRANS не допускается;

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

Порядок заполнения полей таблицы TRANS для запросов представлен в таблице 1.8.

Таблица 1.8 - Порядок заполнения транспортной таблицы для запросов

№ п/п

Код запроса

Порядок заполнения полей

1

Q01

Значение поля EIN должно быть пустое. Обязательными для заполнения являются поля,IDQ_SBJ и хотя бы одна из комбинаций полей, соответствующая уникальным комбинациям ОБД ЕМСР.

2

Q02

Обязательными для заполнения являются поля EIN и IDQ_SBJ значения остальных полей могут быть пустыми.

3

Q03

Обязательными для заполнения являются поля, Surname, Name, Birthday, Sex, Insurer, Npolis, Spolis, Lpubase, Lpudent, FinStat, PolisDate, Ndoc, Doctype, Birthday, IDQ_SBJ и хотя бы одно из полей Rgn1, Rgn2, Rgn3.

4

Q04

Набор полей, обязательных для заполнения в точности соответствует набору полей для запроса Q03 но кроме этого обязательно должно быть заполнено поле EIN. Поле REMSTAT может принимать значения 0,2,3.

5

Q05

Обязательными для заполнения являются поля ein, Insurer, InStat, IDQ, IDQ_Sbj, NumQ. Поле IDQ заполняется значением идентификатора процесса согласования, статус которого изменяется субъектом-участником процесса.

6

Q08

Обязательными для заполнения являются поля EIN, REMSTAT, IDQ_SBJ и в случае если REMSTAT = 4, поле EIN_REF.

7

Q09

Набор полей, обязательных для заполнения в точности соответствует набору полей для запроса Q03 но кроме этого обязательно должно быть заполнено поле EIN. Поле REMSTAT может принимать значения 1,4,5.


         1.5 Формулировка общих и специальных требований к системе


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

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

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

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

Назначение:

Система предназначена для сбора, отправки и обработки информации о застрахованных. Результаты обработки могут быть использованы в дальнейших действиях, направленных на актуализацию данных в ЕМСР и ЛБД.

Требования к функциональным характеристикам:

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

отслеживание изменений в данных о застрахованных в ЛБД;

формирование информационного пакета с соответствующим запросом;

регистрация исходящих и входящих пакетов в журнале;

отправка и прием пакетов по электронной почте;

обработка полученных ответов;

обновление ЛБД в соответствии с результатом;

ведение архива данных за каждый квартал;

печать отчетов.

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

Требования к информационному обеспечению:

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

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

Результаты:

актуальная информация в ЕМСР, то есть успешный результат обработки;

отчеты для выверки в ОМС данных отбракованных ЕМСР;

обновление ЛБД;

журнал регистрации пакетов;

статистика по запросам.

Требования к надежности:

Обеспечить целостность хранимой информации.

Специальные требования:

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

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

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

Система должна работать на ПЭВМ типа IBM.

Минимальная конфигурация:

тип процессора - Pentium-совместимый;

объем оперативного запоминающего устройства - не менее 512 Мб;

сеть Internet;

почтовый сервер.

Требования к информационной и программной совместимости:

операционная система MS Windows 9X/NT/2000;

пакет прикладных программ Office 2003;

СУБД Visual FoxPro 9.0;

почтовый клиент типа the Bat.

         1.6 Выбор инструментальных средств разработки


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

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

Средством обмена информацией с ЕМСР служит пакет, состоящий из таблицы формата DBF III. Его поддерживают следующие средства разработки приложений:

Microsoft Visual FoxPro;

Delphi.

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

Для Visual FoxPro формат DBF III является родным. Кроме того имеет преимущество в цене.

Таким образом, для реализации данного проекта будем использовать систему управления базами данных (СУБД) и язык программирования Microsoft Visual FoxPro версии 9.0.

Visual FoxPro - это мощное средство для разработки настольных приложений, работающих с базами данных.

Его основными достоинствами являются:

1)   удобный интерфейс разработчика;

2)   простота базового языка;

3)   мощный диалект SQL для эффективной работы с локальными и удаленными данными;

4)   интеграция с остальными приложениями Microsoft Office с помощью OLE Automation;

5)   поддержка технологии COM и возможностей, предоставляемых Windows API;

         1.7 Декомпозиция системы


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

Предполагается, что система будет служить инструментом обмена информацией с ЕМСР. Средством, которого является информационный пакет, содержащий запрос, оформленный в виде таблицы формата DBF III.

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

1)   формирование запроса;

2)   обработка запроса.

Процесс формирования запроса к ЕМСР, можно разбить на следующие подзадачи:

1)   выборка данных из ЛБД.

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

на первичный запрос;

на последующий запрос;

2)   формирование информационного пакета.

Для этой подзадачи необходимо сделать следующее:

оформить запрос;

присвоить имя пакету;

зарегистрировать пакет в журнале;

3)   отправка пакета.

Эта подзадача заключается в следующем:

запаковке архиватором таблицы формата DBF III;

отсылке готового пакета по электронной почте.

Обработка запроса состоит в следующем:

1)   получение пакета.

Для этого необходимо:

получить пакет из электронной почты;

распаковать архиватором;

2)   обработка запроса.

Состоит из:

регистрации полученного пакета;

анализа полученной в ответ информации;

обновлении ЛБД.

Кроме того, техническим заданием предусмотрено, наличие следующих отчетных форм:

ошибки;

журнал регистрации.

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

Рисунок 1.3 - Диаграмма иерархии функций системы

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

Таблица 1.9 - Спецификация модулей приложения

№ п/п

Модуль

Состав процедур и функций

Назначение модуля

1

Запрос

Выборка из ЛБД

Осуществляет запрос к ЕМСР



Оформление запроса




Регистрация пакета




Запаковка архиватором




Отправка по почте




Получение из почты




Распаковка архиватором


2

Обработка

В зависимости от запроса анализ полученного ответа

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



Обновление ЛБД


3

Отчеты

Формирование отчетных форм

Формирует отчеты на печать

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

         1.8 Построение концептуальной модели данных


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

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

1)   «Запросы» - информация, отправленная на запрос;

2)   «Ответы» - информация, полученная в ответ.

Для отправки на первичный запрос, данные должны быть выбраны из ЛБД за интервал времени, который система должна хранить - сущность «Выборка».

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

тип пакета;

дата формирования;

порядковый номер.

Таким образом, формируются следующие сущности:

1)   «Типы пакетов» - справочник типов возможных пакетов;

2)   «Имя пакета» - данные для формирования имени: дата и номер.

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

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

ЕМСР в ответе на запрос возвращает одно из следующих значений:

1)   ошибку;

2)   сообщение;

3)   детальную ошибку.

Для хранения списка их значений, создадим сущности-справочники соответственно: «Ошибки», «Сообщения», «Детальные ошибки».

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

Итак, набор основных сущностей разрабатываемой системы, определен:

1)   «Запросы»;

2)   «Ответы»;

3)   «Выборка»;

4)   «Типы пакетов»;

5)   «Имя пакета»;

6)   «Пакеты»;

7)   «Статистика»;

8)   «Задачи»;

9)   «Расписание»;

10)«Ошибки»;

11)«Сообщения»;

12)«Детальные ошибки»;

13)«Результаты»;

14)«Группы результатов».

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

Таблица 1.10 - Взаимодействие сущностей

№ п/п

Сущность

Класс принадлежности

Расшифровка класса принадлежности

Тип связи

Расшифровка типа связи

1. «Запросы» - «Ответы»


«Запросы»

Обязательный

На каждый запрос всегда есть ответ

1:М

1 запрос имеет хотя бы 1 ответ


«Ответы»

Обязательный

На каждый ответ всегда есть запрос

1:1

1 ответ соответствует 1 запросу




Общий тип связи

1:М


2. «Пакеты» - «Запросы»


«Пакеты»

Обязательный

Каждый запрос входит в состав пакета

1:М

1 пакет содержит хотя бы 1 запрос


«Запросы»

Обязательный

Каждый пакет содержит запрос

1:1

1 запрос входит в состав 1 пакета




Общий тип связи

1:М


Аналогична связь пары сущностей «Пакеты» - «Ответы»

3. «Типы пакетов» - «Пакеты»


«Типы пакетов»

Обязательный

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

1:М

1 тип пакетов соответствует хотя бы 1 зарегистрированному пакету


«Пакеты»

Обязательный

Все типы пакетов участвуют в обмене

1:1

Пакет 1 типа соответствует 1 типу возможных типов пакетов




Общий тип связи

1:М


4. «Пакеты» - «Статистика»:


«Пакеты»

Обязательный

Статистика создается по каждому пакету

1:М

По 1 пакету можно составить статистику хотя бы по 1 запросу


«Статистика»

Обязательный

Каждый пакет имеет статистику по запросам

1:1

Статистика конкретного запроса принадлежит 1 пакету




Общий тип связи

1:М


5. «Задачи» - «Расписание»:


«Задачи»

Необязательный

Расписание может быть составлено не на все задачи

1:М

1 задача может запускаться несколько раз в день


«Расписание»

Необязательный

Не все задачи могут запускаться по расписанию

1:1

В конкретный момент может быть запущена только 1 задача




Общий тип связи

1:М


6. «Результаты» - «Запросы»:


«Результаты»

Необязательный

Запросы могут содержать не все результаты

1:М

1 результату соответствует несколько запросов


«Запросы»

Необязательный

Результат может не появиться в настоящий момент в запросе

1:1

1 запрос может содержать только 1 результат




Общий тип связи

1:М


7. «Группы результатов» - «Результаты»:


«Группы результатов»

Обязательный

Каждый результат входит в группу результатов

1:М

1 группа объединяет в себе несколько результатов


«Результаты»

Обязательный

Каждая группа содержит результаты

1:1

1 результат соответствует 1 конкретной группе




Общий тип связи

1:М


8. «Сообщения» - «Ответы»:


«Сообщения»

Необязательный

Не все ответы могут содержать сообщения

1:М

1 сообщение содержится в нескольких ответах


«Ответы»

Необязательный

Не все сообщения могут присутствовать в ответах

1:1

1 ответ содержит только 1 сообщение




Общий тип связи

1:М


Аналогична связь пар сущностей «Ошибки» - «Ответы», «Детальные ошибки» - «Ответы»


Сущности «Выборка» и «Имя пакета» являются независимыми, вспомогательными сущностями, поэтому не связаны ни с одной из других сущностей.

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

Рисунок 1.4 - Концептуальная модель данных

2. Разработка структур данных и программного обеспечения

.1 Построение физической модели данных

На основании анализа концептуальной модели данных и проведенной нормализации таблиц, в связи с устранением не атомарных атрибутов и связей «много-ко-многим», получим набор таблиц БД, представленный в таблице 2.1.

Таблица 2.2 - Набор таблиц базы данных

Сущность

Таблицы

1

Запросы

REQUEST.DBF

2

Ответы

REPLY.DBF

3

Выборка

MODIFYDATE.DBF

4

Типы пакетов

TYPEPACKETS.DBF

5

Имя пакета

FORNAMEPAK.DBF

6

Пакеты

PACKETY.DBF

7

Статистика

QUERYES.DBF

8

Задачи

RUNWHAT.DBF

9

Расписание

TIMING.DBF

10

Ошибки

ERRMESS.DBF

11

Сообщения

TRNMESS.DBF

12

Детальные ошибки

EXTENDERRMESS.DBF

13

Результаты

RESULTS.DBF

14

Группы результатов

RESULTGROUPS.DBF

15

Виды запросов

NUMQUERY.DBF

16

Улицы

STREETS.DBF

17

Районы

STANDART.DBF

18

Элементы

ITEMS.DBF


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

Рисунок 2.1 - Схема физической модели данных

Спецификация всей базы данных представлена в таблице 2.2.

Таблица 2.2 - Спецификация БД

Имя таблицы/БД

Назначение

EXCHANGE.DBC

Файл базы данных

1

TYPEPACKETS.DBF

Справочник типов пакетов, включает в себя тип пакета-запроса (QR), тип пакета-ответа(RQ), и имя шаблона в каждом случае (TRANS).

2

ERRMESS.DBF

Справочник ошибок, значения поля ERRCODE из пакета-ответа в таблице TRANS.

3

EXTENDERRMESS.DBF

Справочник для ошибок расширенных кодов, значения поля DOCREASON из пакета-ответа в таблице TRANS.

4

FORNAMEPAK.DBF

Данные генерации имени пакета, дата и порядковый номер пакета за эту дату.

5

MODIFYDATE.DBF

Параметры выгрузки данных из ЛБД на отправку первичного запроса. Период изменений данных: начальная и конечная даты. Может быть задан свой диапазон.

6

PACKETY.DBF

Сведения об отправленных и полученных пакетах. Журнал регистрации всех пакетов.

7

QUERYES.DBF

Статистика в разрезе "код запроса"/"количество записей" по указанному пакету.

8

TRNMESS.DBF

Справочник сообщений, значения поля MESSCODE из пакета-ответа в таблице TRANS.

9

RUNWHAT.DBF

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

10

TIMING.DBF

Расписание запуска задач.

11

NUMQUERY.DBF

Справочник запросов, содержит виды запросов и их описание.

12

RESULTS.DBF

Справочник кодов результатов обработки запросов, значение для поля RESULTID таблицы REQUEST.

13

RESULTGROUPS.DBF

Справочник групп результатов.

14

REPLY.DBF

Таблица ответов на запросы. Содержит ответы, полученные на запросы.

15

REQUEST.DBF

Таблица запросов. Содержит данные, отправленные на запросы.

16

SETTING.DBF

Настройки путей и постоянных значений.

17

ITEMS.DBF

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

18

STREETS.DBF

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

19

STANDART.DBF

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


Структуры таблиц представлены в таблице 2.3.

Таблица 2.3 - Структуры таблиц БД

№ п/п

Имя поля

Расшифровка

Тип

Длина

1. TYPEPACKETS.DBF

1

TYPEID

Код типа пакета (Первичный ключ)

Integer (AutoInc)

4

2

TYPE

Тип

Character

3

3

TEMPLATE

Имя таблицы-шаблона

Character

10

4

COMMENT

Комментарий

Character

100

2. ERRMESS.DBF

1

ERRMESSID

Код ошибки (первичный ключ)

Integer

4

2

NAME

Текст ошибки

Character

254

3. EXTENDERRMESS.DBF

1

EXERMESSID

Код ошибки (первичный ключ)

Integer

4

2

NAME

Текст ошибки

Character

254

4. FORNAMEPAK.DBF

1

FORNAMEPAKID

Код (первичный ключ)

4

2

DATEGEN 

Дата для генерации пакета

Date

8

3

NUM

Порядковый номер пакета за день

Numeric

2

5. MODIFYDATE.DBF

1

MODIFYDATEID

Код (первичный ключ)

Integer (AutoInc)

4

2

DATESTART 

Начальная дата поиска

DateTime

8

3

DATEFINISH 

Конечная дата поиска

DateTime

8

4

AMOUNT 

Количество найденных записей

Numeric

6

5

FLAG 

Признак изменения условий

Logical

1

6. PACKETY.DBF

1

PACKETID

Код (первичный ключ)

Integer (AutoInc)

4

2

NAME

Имя пакета

Character

12

3

DATETSEND

Дата/время отправки/получения

DateTime

8

7. QUERYES.DBF

1

QUERYESID

Код (первичный ключ)

Integer (AutoInc)

4

2

PACKETID

Код пакета (PACKETY)

Integer

4

3

NUMQ

Код Запроса (NUMQUERY)

Character

3

4

AMOUNTNUMQ 

Количество записей по запросу

Numeric

6

8. TRNMESS.DBF

1

TRNMESSID

Код сообщения (первичный ключ)

Integer

4

2

NAME 

Текст сообщения

Character

254

9. RUNWHAT.DBF

1

RUNWHATID

Код задачи (первичный ключ)

Integer (AutoInc)

4

2

NAME 

Описание задачи

Character

100

10. TIMING.DBF

1

TIMINGID

Код (первичный ключ)

Integer (AutoInc)

4

2

EVENTTIME

Время запуска

Character

5

3

EVENTRUN

Признак запуска

Logical

1

4

RUNWHATID

Код запускаемой задачи (RUNWHAT)

Integer

4

11. NUMQUERY.DBF

1

NUMQ 

Код запроса (первичный ключ)

Character

3

2

NAME 

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

Character

254

12. RESULTS.DBF

1

RESULTID

Код результата (первичный ключ)

Integer (AutoInc)

4

2

GROUPID

Код группы результата (GROUPSRESULT)

Integer

4

3

NAME 

Расшифровка результата

Character

254

13. RESULTGROUPS.DBF

1

GROUPID

Код группы (первичный ключ)

Integer (AutoInc)

4

2

NAME 

Расшифровка группы

Character

140

14. REPLY.DBF

1

REPLYID

Код (первичный ключ)

Integer (AutoInc)

4

2

PACKETID

Код пакета (PACKETY)

Integer

4

3

EIN 

Единый идентификационный номер (ЕИН)

Character

16

4

SURNAME 

Фамилия

Character

24

5

NAME 

Имя

Character

16

6

SECNAME 

Отчество

Character

16

7

NDOC 

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

Numeric

7

8

NSDOC 

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

Numeric

2

9

SDOC 

Серия документа

Character

2

10

DOCTYPE 

Тип документа (ITEMS)

Numeric

1

11

DOCDATE 

Дата выдачи документа

Date

8

12

DOCEMISS 

Код подразделения УВД, выдавшего документ

Character

10

13

NPOLIS 

Номер бланка страхового полиса ОМС

Numeric

8

14

SPOLIS 

Серия бланка страхового полиса ОМС

Character

5

15

INSURER 

Код СМО (SMO)

Numeric

5

16

AGRNUM 

Номер договора страхования

Numeric

6

17

BIRTHDAY 

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

Date

8

18

RGN1 

Код города или сельского района (STANDART)

Numeric

3

19

RGN2 

Гор.район, поселок или сельсовет (STANDART)

Numeric

3

20

RGN3 

Населенный пункт (STANDART)

Numeric

3

21

STREET 

Улица (STREETS)

Numeric

4

22

HOUSE 

Номер дома

Numeric

4

23

HOUSEEDGE 

Второй номер дома, если дом угловой

Numeric

4

24

HOUSELITER 

Литера дома

Character

1

25

CORPUS 

Корпус

Numeric

2

26

FLAT 

Квартира

Numeric

4

27

FLATLITER 

Литера квартиры

Character

1

28

LPUBASE 

Код ЛПУ ПМСП прикрепления (LPU)

Numeric

5

29

LPUBASE_U 

Номер участка в ЛПУ ПМСП

Numeric

3

30

LPUDENT 

Код стоматологического ЛПУ прикрепления (LPU)

Numeric

5

31

LOCAL 

Признак регистрации прописки (ITEMS)

Numeric

1

32

SEX 

Пол (ITEMS)

Numeric

1

33

FINSTAT 

Страхователь (ITEMS)

Numeric

1

34

POLISDATE

Дата выдачи полиса ОМС

Date

8

35

REASONBASE 

Причина смены ЛПУ ПМСП прикрепления (ITEMS)

Numeric

1

36

REASONDENT

Причина смены стоматологического ЛПУ ПМСП прикрепления (ITEMS)

Numeric

1

37

PENSION 

Идентификатор пенсионного фонда

Character

14

38

REMSTAT 

Признак окончания действия записи (ITEMS)

Numeric

1

39

EIN_REF 

ЕИН оригинала (для «двойника»)

Character

40

BEGDATE 

Дата регистрации объекта

Date

8

41

ENDDATE 

Конец периода действия записи

Date

8

42

MODDATE 

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

Date

8

43

SMOFIN 

СМО, на которую производится финансирование в текущем квартале(SMO)

Numeric

5

44

BEGFIN 

Дата начала квартала финансирования для СМО

Date

8

45

ENDFIN 

Дата окончания квартала финансирования

Date

8

46

INSTAT 

Статус согласования записи (ITEMS)

Numeric

1

47

AUTHORSTAT

Автор изменения статуса (ITEMS)

Numeric

1

48

DATE_CH 

Дата последнего изменения записи в локальной БД страховой компании

Date

8

49

KLADRST 

Для жителей иных областей - код территории проживания по КЛАДР, детализированный до уровня улицы (KLADRST)

Character

17

50

LDBL 

Ветка логического дублирования

Character

16

51

IDQ 

Идентификатор запроса в системе ЕМСР ТФОМС

Character

10

52

IDQ_SBJ 

Идентификатор запроса в системе «Система информационного обмена для СМО»

Character

20

53

OPERDATE 

Дата проведенной операции

Date

8

54

NUMQ 

Код запроса (NUMQUERY)

Character

3

55

SILENCE 

Признак действия по умолчания (ITEMS)

Numeric

1

56

SOURCETAB 

Имя таблицы-источника

Character

8

57

TRNMESSID 

Код сообщения (TRNMESS)

Integer

4

58

ERRMESSID 

Код ошибки (ERRMESS)

Integer

4

59

EXERMESSID 

Код расширенной ошибки (EXTENDERRMESS)

Integer

4

60

COMMENT 

Дополнительная информация ТФОМС

Character

40

15. REQUEST.DBF

1

REQUESTID

Код (первичный ключ)

Integer (AutoInc)

4

2

REPLYID

Ссылка на запись из ответа (REPLY)

Integer

4

3

PACKETID

Код пакета (PACKETY)

Integer

4

4

TKEY

Уникальный идентификатор записи в ЛБД СМО

Integer

4

5

EIN 

Единый идентификационный номер (ЕИН)

Character

16

6

SURNAME 

Фамилия

Character

24

7

NAME 

Имя

Character

16

8

SECNAME 

Отчество

Character

16

9

NDOC 

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

Numeric

7

10

NSDOC 

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

Numeric

2

11

SDOC 

Серия документа

Character

2

12

DOCTYPE 

Тип документа (ITEMS)

Numeric

1

13

DOCDATE 

Дата выдачи документа

Date

8

14

DOCEMISS 

Код подразделения УВД, выдавшего документ

Character

10

15

NPOLIS 

Номер бланка страхового полиса ОМС

Numeric

8

16

SPOLIS 

Серия бланка страхового полиса ОМС

Character

5

17

INSURER 

Код СМО (SMO)

Numeric

5

18

AGRNUM 

Номер договора страхования

Numeric

6

19

BIRTHDAY 

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

Date

8

20

RGN1 

Код города или сельского района (STANDART)

Numeric

3

21

RGN2 

Гор.район, поселок или сельсовет (STANDART)

Numeric

3

22

RGN3 

Населенный пункт (STANDART)

Numeric

3

23

STREET 

Улица (STREETS)

Numeric

4

24

HOUSE 

Номер дома

Numeric

4

25

HOUSEEDGE 

Второй номер дома, если дом угловой

Numeric

4

26

HOUSELITER 

Литера дома

Character

1

27

CORPUS 

Корпус

Numeric

2

28

FLAT 

Квартира

Numeric

4

29

FLATLITER 

Литера квартиры

Character

1

30

LPUBASE 

Код ЛПУ ПМСП прикрепления (LPU)

Numeric

5

31

LPUBASE_U 

Номер участка в ЛПУ ПМСП

Numeric

3

32

LPUDENT 

Код стоматологического ЛПУ прикрепления (LPU)

Numeric

5

33

LOCAL 

Признак регистрации прописки (ITEMS)

Numeric

1

34

SEX 

Пол (ITEMS)

Numeric

1

35

FINSTAT 

Страхователь (ITEMS)

Numeric

1

36

POLISDATE

Дата выдачи полиса ОМС

Date

8

37

REASONBASE 

Причина смены ЛПУ ПМСП прикрепления (ITEMS)

Numeric

1

38

REASONDENT

Причина смены стоматологического ЛПУ ПМСП прикрепления (ITEMS)

Numeric

1

39

PENSION 

Идентификатор пенсионного фонда

Character

14

40

REMSTAT 

Признак окончания действия записи (ITEMS)

Numeric

1

41

EIN_REF 

ЕИН оригинала (для «двойника»)

Character

16

42

BEGDATE 

Дата регистрации объекта

Date

8

43

ENDDATE 

Конец периода действия записи

Date

8

44

MODDATE 

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

Date

8

45

SMOFIN 

СМО, на которую производится финансирование в текущем квартале(SMO)

Numeric

5

46

BEGFIN 

Дата начала квартала финансирования для СМО

Date

8

47

ENDFIN 

Дата окончания квартала финансирования

Date

8

48

INSTAT 

Статус согласования записи (ITEMS)

Numeric

1

49

AUTHORSTAT

Автор изменения статуса (ITEMS)

Numeric

50

DATE_CH 

Дата последнего изменения записи в локальной БД страховой компании

Date

8

51

KLADRST 

Для жителей иных областей - код территории проживания по КЛАДР, детализированный до уровня улицы (KLADRST)

Character

17

52

LDBL 

Ветка логического дублирования

Character

16

53

IDQ 

Идентификатор запроса в системе ЕМСР ТФОМС

Character

10

54

IDQ_SBJ 

Идентификатор запроса в системе «Система информационного обмена для СМО»

Character

20

55

OPERDATE 

Дата проведенной операции

Date

8

56

NUMQ 

Код запроса (NUMQUERY)

Character

3

57

SILENCE 

Признак действия по умолчания (ITEMS)

Numeric

1

58

SOURCETAB 

Имя таблицы-источника

Character

8

59

RESULTID

Код результата обработки запроса (RESULTS)

Integer

4

16. SETTING.DBF

1

SETTINGID

Код

Integer

4

2

VARNAME

Имя переменной

Character

20

3

VARVALUE

Значение

Character

200

4

VARTEXT

Назначение

Character

100

17. ITEMS.DBF

1

CKEY

Уникальный код пункта прейскуранта

Numeric

6

2

CREF

Ссылка на родительский пункт

Numeric

6

3

CNUM

Пор. № пункта.в своей иерархии

Numeric

4

4

CEND

Флаг наличия подпунктов

Numeric

1

5

FIELD

Идентификатор поля

Character

10

6

CODE

Значение перечислимого параметра

Numeric

2

7

DESCRIPT

Описание значения перечислимого параметра

Character

64

8

ACTPACK

Идентификатор актуального пакета НСИ

Character

3

9

CHANGE_R

Признак внесения изменений в запись

Numeric

1

10

D_FIN

Дата окончания действия кода

Date

8

11

D_START

Дата ввода кода в действие

Date

8

12

D_MODIF

Дата последней модификации содержательной части записи

Date

8

13

DELETED

Признак логического удаления записи

Numeric

1

18. STREETS.DBF

1

STREET

Код улицы

Numeric

4

2

NAME

Наименование улицы текущее

Character

24

3

DELETED

Признак логического удаления записи

Numeric

1

4

STREET_NEW

Код улицы при переименовании

Numeric

4

5

ACTPACK

Идентификатор актуального пакета НСИ

Character

3

6

CHANGE_R

Признак внесения изменений в запись

Numeric

1

7

D_FIN

Дата окончания действия кода

Date

8

8

D_START

Дата ввода кода в действие

Date

8

9

D_MODIF

Дата последней модификации содержательной части записи

Date

8

19. STANDART.DBF

1

RGN1

Код города или сельского района

Numeric

3

2

RGN2

Гор. район, поселок или сельсовет

Numeric

3

3

RGN3

Населенный пункт

Numeric

3

4

NAME

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

Character

24

5

LABEL

Метка

Numeric

3

6

INSURER

Код базовой СМО на данной территории

Numeric

5

7

OR1

Код города или сельского района по ОКАТО

Numeric

2

8

OR2

Гор. район, поселок или сельсовет по ОКАТО

Numeric

3

9

OR3

Населенный пункт по ОКАТО

Numeric

6

10

ACTPACK

Идентификатор актуального пакета НСИ

Character

3

11

CHANGE_R

Признак внесения изменений в запись

Numeric

1

12

D_FIN

Дата окончания действия кода

Date

8

13

D_START

Дата ввода кода в действие

Date

8

14

D_MODIF

Дата последней модификации содержательной части записи

Date

8

15

DELETED

Признак логического удаления записи

Numeric

1


         2.2 Разработка алгоритмов


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

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

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

Программа

Начало

Инициализировать глобальные значения

Вывести окно приложения с заголовком и строкой меню

Выполнять

Если Выбрана команда пункта меню

То Выполнить команду

Конец-если

До Команда меню = Выход

Конец

Блок-схема алгоритма представлена на рисунке 2.2.

Рисунок 2.2 - Блок-схема алгоритма основной программы

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

Детализируем операцию Выполнить команду:

Выполнить команду

Выбор Команда

Файл:

Свернуть в трей

Выход

Настройка:

Параметры

Планировщик

Выгрузка первичного запроса

Запросы:

Формирование

Обработка

Навигатор

Отчеты

Конец - выбор

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

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

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

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

В результате, получим следующий алгоритм.

Программа

Начало

Запуск приложения

Выполнять

Если Выбрана команда пункта меню

То

Выбор команда

Файл:

Сворачивание приложения в трей

Настройка:

Вывод на экран формы «Параметры»

Вывод на экран формы «Планировщик»

Вывод на экран формы «Выгрузка первичного запроса»

Запросы:

Запуск модуля «Формирование запроса»

Запуск модуля «Обработка запроса»

Вывод на экран формы «Навигатор»

Вывод на экран формы «Отчеты»

Конец - выбор

Конец - если

До Команда = Выход

Конец

Блок-схема алгоритма представлена на рисунке 2.3.

Детализируем модули «Формирование запроса» и «Обработка запроса».

Процесс формирования запроса включает в себя следующие этапы:

1)   выгрузка из ЛБД на первичный запрос;

2)   выгрузка из ЛБД на последующий запрос;

3)   присвоение имени пакету;

4)   регистрация пакета;

5)   запаковка архиватором;

6)   отправка по электронной почте.

В свою очередь, процесс обработки запроса, содержит:

1)   получение пакета из электронной почты;

2)   распаковка архиватором;

3)   анализ полученной информации;

4)   обновление ЛБД.

Рисунок 2.3 - Блок-схема основной программы

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

Таблица 2.4 - Спецификация процедур и функций

№ п/п

Процедура/Функция

Описание

Параметры




На входе

На выходе

1

Выгрузка на первичный запрос

Выгружает из ЛБД в соответствии с интервалом времени данные для отправки на первичный запрос

Начальная дата, конечная дата

Dbf-таблица

2

Выгрузка на последующий запрос

-

Dbf-таблица

3

Присвоение имени пакету

Генерирует имя пакета

Дата, номер и тип пакета

Имя пакета

4

Регистрация пакета

Регистрирует пакет в журнале и создает статистику по видам запросам в разрезе каждого пакета

Dbf-таблица, имя и тип пакета

Идентификатор пакета

5

Запаковка

Запаковывает архиватором с паролем dbf-таблицу в пакет

Dbf-таблица, имя пакета

Пакет

6

Отправка

Отсылает пакет по электронной почте

Пакет

-

7

Получение

Проверяет электронную почту на наличие новых пакетов

-

Пакет

8

Распаковка

Распаковывает архиватором с паролем пакет

Пакет

-

9

Анализ ответа

В зависимости от вида запроса и полученной в ответ информации формирует результат

-

Обработанные данные

10

Обновление ЛБД

В соответствии с результатом обработки обновляет ЛБД

-

Обновленные данные


Исходя из полученной спецификации алгоритм модуля «Формирование запроса» будет выглядеть так:

Выгрузка на первичный запрос (Начальная дата, Конечная дата);

Выгрузка на последующий запрос ();

Если Выборка пуста

То

Конец

Иначе

Если Порядковый номер пакета > лимита (9)

То

Конец

Иначе

Присвоение имени пакету (Дата, Номер, Тип пакета)

Регистрация пакета (Выборка, Имя пакета, Тип пакета)

Запаковка (Выборка, Имя пакета)

Отправка (Пакет)

Конец - если

Конец - если

Блок-схема алгоритма, показана на рисунке 2.4.

Рисунок 2.4 - блок-схема алгоритма формирование запроса

Алгоритм модуля «Обработка запроса» будет иметь следующий вид:

Получение

Если Пакета нет

То

Конец

Иначе

Распаковка (Пакет)

Анализ ответа ()

Обновление ЛБД ()

Конец - если

Блок-схема алгоритма, показана на рисунке 2.5.

Рисунок 2.5 - Блок-схема алгоритма обработки запроса

2.3 Разработка интерфейса пользователя, экранных форм и отчетов

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

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

Рисунок 2.6 - Структура меню приложения

Кроме меню, для пунктов «Параметры», «Планировщик», «Выгрузка на первичный запрос», «Навигатор» и «Отчеты» предусмотрены диалоговые формы, включающие в себя элементы выбора, просмотра, редактирования и кнопки, что обеспечивает доступный и понятный интерфейс.

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

Рисунок 2.7 - Форма «Параметры выгрузки на первичный запрос»

Система предоставляет пользователю возможность пункты «Формирование» и «Обработка» запускать в двух режимах:

ручной - посредством выбора соответствующего пункта меню;

автоматический - через задание расписания запуска в планировщике задач.

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

Рисунок 2.8 - форма задания расписания запуска

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

Выполнение данных задач визуализировано при помощи формы, представленной на рисунке 2.9.

Рисунок 2.9 - Форма, демонстрирующая выполнение формирования запроса

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

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

Рисунок 2.10 - Форма навигации

Не менее важным в любой системе является формирование отчетных форм.

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

Спецификация всех форм приложения, представлена в таблице 2.5.

Таблица 2.5 - Спецификация форм приложения

Файл формы

Название

Описание

1

frmSet.scx

Параметры работы приложения

Установка настроек приложения, путей и постоянных значений

2

frmSetQuery.scx

Параметры выгрузки на первичный запрос

Изменяет интервал выгрузки данных из ЛБД на первичный запрос

3

frmPlaner.scx

Планировщик задач

Составляет расписание запуска задач

4

frmNavigator.scx

Навигатор

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

5

frmReports.scx

Отчеты

Формирует отчеты


         2.4 Разработка процедур и функций приложения


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

Таблица 2.6 - Спецификация процедур и функций

№ п/п

Процедура/Функция

Описание

Параметры на входе

Результат

1. Файл Main.prg

1

prcSetting

Устанавливает пути и постоянные значения

-

Начальные установки

2

prcExitApp

Процедура выхода из приложения

-

Выход

2. Файл mldPackets.prg

1

fncPrepareProcess

Осуществляет подготовку к обработке

-

1 - есть новые пакеты, 0 - нет новых пакетов

2

fncUnPack

Распаковывает архиватором полученный пакет

lcNamePak - пакет

Распакованный пакет

3

fncPrepareQuery

Осуществляет подготовку запроса

lcAlias - алиас таблицы

Алиас готовой таблицы

4

fncGetDataForQ1_2

Выбирает из ЛБД записи на первичный запрос

ldStartDate - начальная дата ldFinishDate - конечная дата

Алиас таблицы

5

fncGetDataForQ_Other

Выбирает записи из ЛБД на запросы модификации (последующий запрос)

-

Алиас таблицы

6

fncPack

Запаковывает архиватором таблицу в пакет

lcAlias - алиас таблицы, lcNamePak - имя пакета

Пакет

7

fncGetTemplate

Определяет имя шаблона таблицы

lnIdType - идентификатор типа пакета

Имя шаблона таблицы пакета

8

fncGetRegPacket

Функция регистрации пакета в журнале и отметка о статистике по запросам

lnNamePak - имя пакета, lnType - тип пакета lcAlias - алиас таблицы

Идентификатор пакета

9

fncGetNamePak

Функция генерации имени пакета

-

Имя пакета

10

fncGetTypePacket

Функция определения типа пакета

lnId - идентификатор типа

Тип пакета

11

fncDateToYMD

Функция перевода даты в формат ГМД

ldDate - дата

ГМД

12

fncSystem32

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

lcPartDate - часть даты

часть даты в системе счисления по основанию 32

13

fncGetNextPakNum

Функция определения следующего порядкового номера пакета

ldDate - дата

Номер пакета

14

RunProcess

Функция запуска приложение с ожиданием его завершения

tcCmdLine - командная строка запуска приложениея, ExDirectory - директория

0 - если Ошибка, 1- все в норме

3. Файл CreateQuery.prg

1

prcCreateQuery

Формирование запроса

-

Готовый запрос

4. Файл ProcessQuery.prg

1

prcProcessQuery

Обработка запроса

-

Обработанные и обновленные данные

5. Файл mdlProcess.prg

1

fncProcess

Обработка записей

-

Обработанные данные

2

fncGetUpdateLBD

Обновление ЛБД

-

Обновленные данные

3

fncGetProcessQ_Other

Обработка запросов модификации

lcNumq - вид запроса

Результат обработки

4

fncGetReplyIDForQ1_2

Определят запись из ответа для обработки запроса

lcIdq_sbj - код, lcSurName - фамилия, lcName - имя, lcSecName - отчество, ldBirthday - дата рождения, lnNpolis - номер полиса, lcSpolis - серия полиса, lnNdoc - номер документа, lcSdoc - серия документа, lnNsdoc - номер серии документа, lnDocType - тип документа, lnRGN1, lnRGN2, lnRGN3 lnStreet, lnFlat - адрес

Код записи из ответа

5

fncProcessQ1_2

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

lcIdq_sbj - код

Результат

 

6

fncIdent

Функция идентификации записей в ответе

lnReplyID - код записи в ответе, lcSurName - фамилия, lcName - имя, lcSecName - отчество, ldBirthday - дата рождения, lnNpolis - номер полиса, lcSpolis - серия полиса, lnNdoc - номер документа, lcSdoc - серия документа, lnNsdoc - номер серии документа, lnDocType - тип документа, lnRGN1, lnRGN2, lnRGN3 lnStreet, lnFlat - адрес

Истина если запись идентифицирована, Ложь в обратном случае

 

7

fncKeyFIOB

Функция проверки по ключу FIOB

lnReplyID - код записи в ответе, lcSurName - фамилия, lcName - имя, lcSecName - отчество, ldBirthday - дата рождения

Истина - запись совпала по ключу, ложь в обратном случае

 

8

fncKeyFIB

Функция проверки по ключу FIB

lnReplyID - код записи в ответе, lcSurName - фамилия, lcName - имя, ldBirthday - дата рождения

Истина - запись совпала по ключу, ложь в обратном случае

 

9

fncKeyFIO

Функция проверки по ключу FIO

lnReplyID - код записи в ответе, lcSurName - фамилия, lcName - имя, lcSecName - отчество

Истина - запись совпала по ключу, ложь в обратном случае

 

10

fncKeyIOB

Функция проверки по ключу IOB

lnReplyID - код записи в ответе, lcName - имя, lcSecName - отчество ldBirthday - дата рождения

Истина - запись совпала по ключу, ложь в обратном случае

 

11

fncKeyFOB

Функция проверки по ключу FOB

lcSurName - фамилия, lcSecName - отчество ldBirthday - дата рождения

Истина - запись совпала по ключу, ложь в обратном случае

 

12

fncAtrPolis

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

lnReplyID - код записи в ответе, lnNpolis - номер полиса, lcSpolis - серия полиса

Истина - запись совпала по атрибуту, ложь в обратном случае

 

13

fncAtrDoc

Функция проверки по атрибуту документ

lnReplyID - код записи в ответе, lnNdoc - номер документа, lcSdoc - серия документа, lnNsdoc - номер серии документа, lnDocType - тип документа,

Истина - запись совпала по атрибуту, ложь в обратном случае

 

14

fncAtrAdres

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

lnRGN1, lnRGN2, lnRGN3 lnStreet, lnFlat - адрес

Истина - запись совпала по атрибуту, ложь в обратном случае

 


         3. Технико-экономическое обоснование разработки ПО


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

Технико-экономическое обоснование разработки системы информационного обмена включает в себя следующее:

1)   расчет технико-экономических показателей и выбор базы сравнения;

2)   определение трудоемкости и стоимости программного обеспечения (ПО);

3)   расчет цены ПО;

4)   расчет капитальных и эксплуатационных затрат на разработку;

5)   определение показателей финансово-экономической эффективности.

Исходные данные для расчета экономических показателей приведены в таблице 3.1.

Таблица 3.1 - Исходные данные

№ п/п

Обозначение

Наименование показателя

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

Значение показателя

1

СЭВМ

Стоимость ЭВМ

Тыс. руб.

12

2

ДМ

Среднее количество дней в месяце

Дни

22

3

н

Норматив рентабельности

-

0,20

4

д

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

-

0,10

5

с

Коэффициент, учитывающий начисления органам социального страхования

-

0,356

6

н

Коэффициент, учитывающий накладные расходы организации

-

1,15

7

qI

Количество I-задач, решаемых потребителем

Зад. год

60

8

tM.B.I

Время, решаемой I-ой задачи разработанной программы

1

9

t’M.B.I

Время решаемой I-задачи базовой программой

Маш. час

6

10

nп

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

Шт.

7

11

ZЭЛ

Тариф за 1кВт/час

Руб.

1,63

12

н

Нормативный коэффициент эффективности капиталовложений

-

0,25

13

ТС

Срок службы разработанной программы

Год

4

14

НДС

Налог на добавленную стоимость

%

18

15

ТР

Количество рабочих дней в году

Дни

264

16

NCM

Количество смен работы ЭВМ

-

3

17

tСМ

Продолжительность смены

Часы

8

18

Простои ЭВМ

%

1

19

Р

Мощность, потребляемая ЭВМ

кВТ

0,25

20

NCP

Среднее количество ремонтов в год

-

1

21

SД

Стоимость деталей, заменяемых при ремонте

Руб.

500


        3.1 Расчет затрат на разработку ПО


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

(3.1)

где:  - затраты по заработной плате инженера-программиста;

 - накладные расходы.

Затраты по заработной плате инженера-программиста рассчитываются по формуле:

(3.2)

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

 - время, необходимое для разработки приложения программистом I-го разряда (чел.-мес.);

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

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

Приложение разрабатывалось 30 дней, если учесть что в одном месяце 22 рабочих дня, то:

 (чел.-мес.)

Таким образом, затраты по заработной плате инженера-программиста составят:

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

(3.3)

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

В качестве базы сравнения будем использовать АИС «ОМС».

        3.2 Расчет цена разработанной программы


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

(3.4)

где:  - оптовая цена (цена разработчика) (руб.);

 - суммарные затраты на разработку системы (руб.);

 - прибыль, рассчитанная по формуле:

(3.5)

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

Итак,


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

(3.6)

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

(3.7)

3.3 Расчет капитальных вложений

Капиталовложения, связанные с работой ПК рассчитываются по формуле:

(3.8)

где:  - стоимость ПК (руб.);

 - стоимость транспортировки ПК (руб.);

 - стоимость монтажа ПК (руб.);

 - стоимость запасных частей (руб.);

 - стоимость площади установки ПК (руб.).

Так как площадь, отводимая под установку ПК, в данном случае не существенна, то этим коэффициентом можно пренебречь.

Итак, произведем расчет коэффициентов входящих в формулу расчета величины капиталовложений:

; (руб.);

; (руб.);

;  (руб.).

Капиталовложения в ПК составляют:


         3.4 Расчет эксплуатационных расходов


Эксплуатационные расходы на ПК рассчитываются по формуле:

(3.9)

где:  - машинное время для решения задач с помощью разработанной системы, (маш.час/год);

- эксплуатационные расходы, приходящиеся на 1 час работы ПК;

 - цена, по которой продается система (руб.);

 - срок службы системы (г.).

Полезный фонд времени работы ПК рассчитывается по формуле:

(3.10)

где: - общий фонд времени работы ПК (дни); ;

 - количество смен работы ПК;

 - время одного рабочего дня (час);

 - простои ПК (в % от общего фонда времени работы ПК).

Полезный фонд времени работы ПК получим:

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

(3.11)

где:  - количество I-задач, решаемых потребителем в год (шт.);

 - время для решения I-задачи, разработанной системой (маш.час).

 (маш.час/год)

Эксплуатационные расходы, приходящиеся на 1 час работы ЭПК, оцениваются по формуле:

(3.12)

где:  - амортизационные отчисления (руб.);

 - затраты по заработной плате инженера в год (руб./год);

 - стоимость потребляемой энергии (руб.);

 - затраты на ремонт ПК (руб.);

 - полезный годовой фонд работы ПК (маш.час/год).

Амортизационные отчисления рассчитываются с учетом нормы амортизации ();


Затраты по заработной плате инженера за год рассчитываются по формуле:

(3.13)

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

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

 - основная заработная плата инженера за месяц 6-го разряда (10000 руб.).

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

 (руб./год)

Стоимость потребляемой энергии оценивается по формуле:

(3.14)

где:  - мощность, потребляемая ПК (кВт);

 - полезный годовой фонд работы ЭПК (маш.час/год);

 - тариф за 1 кВт/час (руб./кВт).

Итак, произведем расчет стоимости потребляемой энергии:

Затраты на ремонт ПК вычисляются по формуле:

(3.15)

где:  - среднее количество ремонтов в год;

 - стоимость деталей заменяемых при одном ремонте, в среднем.

 (руб.)

Произведем вычисление эксплуатационных расходов, приходящихся на 1 час работы ПК:

 (руб./час)

Далее вычислим эксплуатационные расходы на ПК:


3.5 Расчет денежного годового экономического эффекта

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

(3.16)

где:  - экономия стоимости машинного времени (руб.);

 - нормативный коэффициент эффективности капитальных вложений;

 - экономия капитальных вложений (руб.).

Расчет экономии капитальных вложений производится по формуле:

(3.17)

где:  - машинное время для решения задач с помощью разработанной системы (маш.час/год);

 - капиталовложения в ПК (руб.);

 - полезный годовой фонд работы ПК (маш.час/год);

 - машинное время для решения задач базовой системой рассчитывается с учетом  - время решения I-ой задачи базовой программой:

,

 (маш.час/год)

Произведем расчет экономии капитальных вложений по формуле:

Расчет экономии стоимости машинного времени производится по формуле:

(3.18)

где: - эксплуатационные расходы, приходящиеся на 1 час работы ПК;

 - машинное время для решения задач базовой программой (маш.час/год);

 - машинное время для решения задач с помощью разработанной системы (маш.час/год).

Произведем расчет экономии стоимости машинного времени по формуле:

Теперь определим денежный годовой экономический эффект по формуле:


.6 Определение показателей эффективности инвестиций

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

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

(3.19)

где:  - цена капитала;

 - коэффициент, учитывающий риск;

 - уровень инфляции на валютном рынке.

Приведение осуществляется путем умножения затрат и результатов на коэффициент дисконтирования, равный:

(3.20)

где:  - период дисконтирования.

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

чистая дисконтированная стоимость (текущая дисконтированная стоимость), т.е. доход;

внутренняя норма доходности;

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

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

Таблица 3.2 - План денежных потоков

№ п/п

Показатель

Значения, руб.



0-й год

1-й год

2-й год

3-й год

4-й год

1

Выручка от реализации


284 876,90

284 876,90

284 876,90

284 876,90








2

НДС (18%)


51 277,84

51 277,84

51 277,84

51 277,84

3

Выручка от реализации без НДС


233 599,06

233 599,06

233 599,06

233 599,06

4

Издержки на персонал


178 992

178 992

178 992

178 992








5

Эксплуатационные расходы


10 381,38

10 381,38

10 381,38

10 381,38








6

Амортизационные отчисления


1 851,75

1 851,75

1 851,75

1 851,75

7

Прибыль от реализации


42 373,93

42 373,93

42 373,93

42 373,93








8

Налог на прибыль (24%)


10 169,74

10 169,74

10 169,74

10 169,74

9

Чистая прибыль


32 204,19

32 204,19

32 204,19

32 204,19

10

Капитальные вложения

14 814





11

Прочие единовременные затраты

28 740,61





12

Денежный поток

-43 554,61

32 204,19

32 204,19

32 204,19

32 204,19


Размер выручки от реализации определяется с учетом прогнозируемой средней потребности в разработанной системе (7 шт.) и розничной цены (40 696,70 руб.).

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

(3.21)

где:  - результат в -ом году;

 - затраты в -ом году;

 - период дисконтирования.

Вычисление чистой дисконтированной стоимости и текущей дисконтированной стоимости приведено в таблице 3.3.

Таблица 3.3 - Вычисление чистой и текущей дисконтированной стоимости

№ п/п

Год

Затраты(+) Результаты (-)

 при (тыс. руб.)нарастающим итогом



1

0

-43 554,61

1

-43 554,61

-43 554,61

2

1

32 204,19

0,7576

24 475,18

-19 079,43

3

2

32 204,19

0,5739

18 356,39

-723,04

4

3

32 204,19

0,4348

13 847,80

13 124,76

5

4

32 204,19

0,3294

10 627,38

23 752,14

= 23 752,14


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

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

(3.22)

где:  - значение ставки дисконта, при которой  принимало последнее положительное значение;

 - последнее положительное значение ;

 - последнее отрицательное значение .

Зависимость чистой дисконтированной стоимости от нормы дисконта представлена в таблице 3.4. и отражена на рисунке 3.1.

Таблица 3.4 - Зависимость ЧДС от нормы дисконта

Номер

Значение нормы дисконта ()Значение , тыс. руб.


1

0,32

23,94

2

0,47

10,29

3

0,62

0,85

4

0,77

-5,99

Рисунок 3.1 - Зависимость  от нормы дисконта

Расчет внутренней нормы дисконта представлен в таблице 3.5.

Таблица 3.5 - Расчет внутренней нормы дисконта

№ п/п

Год

Денежные потоки

=63%=64%








1

0

-43 554,61

1

-43 554,61

1

-43 554,61

2

1

32 204,19

0,6135

19 757,27

0,6098

19 636,70

3

2

32 204,19

0,3764

12 121,66

0,3718

11 973,60

4

3

32 204,19

0,2309

7 435,95

0,2267

7 300,97

5

4

32 204,19

0,1417

4 563,33

0,1382

4 451,81


Точное значение внутренней нормы доходности (рентабельность) составит:

Рассчитанное значение , составляющее 63,63%, превышает фактическую норму дисконта , следовательно, инвестиции в данный проект оправданы.

Индекс доходности рассчитывается по формуле:

(3.23)

где:  - приведенная величина инвестиций, рассчитывающаяся по формуле:

(3.24)

где:  - величина инвестиций в -ом году.

Индекс доходности проекта составляет:

Рассчитанное значение  = 1,55 больше единицы, следовательно, разработку системы можно считать эффективной и экономически обоснованной.

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

(3.25)

где:  - индекс доходности проекта;

 - срок службы системы.

Средняя рентабельность разработки в нашем случае составит:

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

Определим  графическим методом, график, изображенный на рисунке 3.2, строится по данным таблицы 1.3.

Рисунок 3.2 - Определение срока окупаемости проекта

Как видно из графика, значение  составляет 2,05 года.

         3.7 Выводы


Обобщенные технико-экономические показатели разработки системы сведены в таблицу 3.6.

Таблица 3.6 - Обобщенные технико-экономические показатели

Показатель

Значение

1

Капитальные вложения (руб.)

14 814

2

Эксплуатационные расходы (руб.)

10 381,38

3

Оптовая цена (руб.)

34 488,73

4

Свободная отпускная цена (руб.)

40 696,70

5

Затраты на проектирование

28 740,61

6

Чистая дисконтированная стоимость (при =32%) (руб.)23 752,14


7

Внутренняя норма доходности (%)

63,63

8

Индекс доходности

1,55

9

Средняя рентабельность разработки (%)

38,63

10

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

2,05


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

4. Охрана труда

.1 Выявление явных и потенциально опасных вредных производственных факторов

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

Пользователь разрабатываемой системы, при работе с видеодисплейными терминалами (ВДТ) и ПК, сталкивается с воздействием следующих опасных и вредных производственных факторов:

излучение электромагнитных полей;

статическое электричество;

повышенный уровень шума;

микроклимат;

электрический ток;

недостаточная освещенность.

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

         4.1.1 Излучение электромагнитных полей

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

ПК являются источниками таких излучений как:

мягкого рентгеновского;

ультрафиолетового 200-400 нм;

видимого 400-700 нм;

ближнего инфракрасного 700-1050 нм;

радиочастотного 3 кГц-3О мГц;

электростатических полей.

Ультрафиолетовое излучение полезно в небольших количествах, но в больших дозах приводит к дерматиту кожи, головной боли, рези в глазах. Инфракрасное излучение приводит к перегреву тканей человека (особенно хрусталика глаза), повышению температуры тела. Уровни напряженности электростатических полей составляют не более 20 кВ/м. При повышенной опасности электромагнитного поля на расстоянии 5-10 см от экрана и корпуса монитора уровни напряженности могут достигать 140 В/м по электрической составляющей.

Предельно допустимые значения характеристик ЭМП указаны в таблице 4.1.

Таблица 4.1 - Предельно допустимые значения характеристик ЭМП

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

Допустимое значение

Напряженность электромагнитного поля по электрической составляющей на расстоянии 50 см от поверхности видеомонитора

10 В/м

Напряженность электромагнитного поля по магнитной составляющей на расстоянии 50 см от поверхности видеомонитора

0,3 А/м

Напряженность электростатического поля не должно превышать: - для взрослых пользователей

20 кВ/м

Напряженность электромагнитного поля на расстоянии 50 см вокруг ВДТ по электрической составляющей должна быть не более:


- в диапазоне частот 5 Гц - 2 кГц;

25 В/м

- в диапазоне частот 2 - 400 кГц

2,5 В/м

Плотность магнитного потока должна быть не более:


- в диапазоне частот 5 Гц - 2 кГц;

250 нТл

- в диапазоне частот 2 - 400 кГц

25 нТл

Поверхностный электростатический потенциал не должен превышать

500 В


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

Для предупреждения внедрения опасной техники все дисплеи проходят испытания на соответствие требованиям безопасности (например, международные стандарты MRP 2, TCO 99).

        

         4.1.2 Шум

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

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

В качестве мер по снижению шума можно предложить следующее:

облицовка потолка и стен звукопоглощающим материалом (снижает шум на 6-8 дб);

экранирование рабочего места (постановкой перегородок, диафрагм);

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

рациональная планировка помещения.

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

         4.1.3 Микроклимат

Работа администратора БД, относится к категории Іа (легкие физические работы), и соответствует следующим требованиям:

1)   оптимальная температура воздуха:

- в теплый период 23-25 С;

в холодный период 22-24 С;

2)   оптимальная относительная влажность - 40-60% (допустимая - не более 75%);

3)   скорость движения воздуха не более 0,1 м/с.

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

         4.1.4 Электробезопасность

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

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

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

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

4.1.5 Освещенность

Для освещения помещения, в котором работает администратор БД, используется совмещенное освещение, то есть сочетание естественного и искусственного освещения.

Естественное освещение - осуществляется через окна в наружных стенах здания.

Искусственное освещение - используется при недостаточном естественном освещении и осуществляется с помощью двух систем: общего и местного освещения. Общим называют освещение, светильники которого освещают всю площадь помещения. Местным называют освещение, предназначенное для определённого рабочего места.

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

В качестве источников света при искусственном освещении применяются преимущественно люминесцентные лампы типа ЛБ.

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

.1.6 Пожарная безопасность

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

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

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

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

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

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

.1.7 Организация рабочего места

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

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

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

По условиям работы рабочее место администратора БД относится к индивидуальному рабочему месту для работы сидя.

Рабочий стул администратора БД снабжен подъемно-поворотным механизмом. Высота сиденья регулируется в пределах 400 - 500 мм. Глубина сиденья составляет не менее 380 мм, а ширина - не менее 400 мм. Высота опорной поверхности спинки не менее 300 мм, ширина - не менее 380 мм. Угол наклона спинки стула к плоскости сиденья изменяется в пределах 90 - 110°.

         4.2 Мероприятия по устранению опасных и вредных производственных факторов


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

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

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

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

1)   отключение компьютера от сети;

2)   проверка отсутствия напряжения.

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

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

В организации используются рабочие столы с высотой рабочей поверхности 725 мм, а также рабочие кресла с подъемно-поворотным устройством. Конструкция кресел обеспечивает регулировку высоты опорной поверхности сиденья в пределах 400-500 мм и углов наклона вперед до 15 градусов и назад до 5 градусов. Каждое кресло оборудовано подлокотниками, что сводит к минимуму неблагоприятное воздействие на кистевые суставы рук.

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

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

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

Заключение

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

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

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

В ходе работы были сформулированы требования к техническому обеспечению и обоснован выбор средств автоматизации. Программное обеспечение системы разработано в среде Visual Fox Pro 9 под управлением ОС Windows XP.

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

Приложение 1

Листинг файла mdlPackets.prg

Функция подготовки к обработке, поступивших пакетов

На входе - ничего нет

На выходе - 1 - если есть новые пакеты, 0 в ином случае

FUNCTION fncPrepareProcesslnI as Integer,;as Integer,;as Integer,;as String,;as String = ADIR(MasFile, gcInPutPath + PADL(gcSmo,5,"0")+ "*.*")lnFileCnt = 00lnI = 1 TO lnFileCnt.container1.label3.ForeColor = RGB(0, 128, 255).container1.label3.caption = ALLTRIM(STR(lnI)).Refresh

= fncUnPack(MasFile[lnI,1])= MasFile[lnI,1]= fncGetTemplate(gnIDTypeOut)!USED(lcAlias)(gcArxPath + lcAlias) IN 0 ALIAS &lcAlias= fncGetRegPacket(lcNamePak, gnIDTypeOut, lcAlias)!USED('Reply')(gcDataPath + "Reply.dbf") IN 0 ALIAS Reply*, lnPacketID as PacketID FROM &lcAlias INTO CURSOR curReplyFROM DBF('cur')IN curIN ReplyIN &lcAlias1

ENDFUNC

&& Функция распаковки полученного пакета

&& На входе - полное имя пакета

&& На выходе - результат работы архиватора

FUNCTION fncUnPacklcNamePak as StringlnReturn as IntegerFILE (gcInPutPath + ALLTRIM(lcNamePak)) TO (gcArxPath + ALLTRIM(lcNamePak))= RunProcess(gcArxPath+"unpack.bat"+" "+ALLTRIM(lcNamePak),gcArxPath)

RETURN lnReturn

Функция подготовки к отправке

На входе - Алиас таблицы

На выходе - Алиас готовой таблицы

FUNCTION fncPrepareQuerylcAlias as StringldDate as Date,;as Integer,;as String,;as String,;as Integer,;_sbj as String!USED('Request')(gcDataPath + "Request") IN 0 ALIAS Request= DATE()= fncGetNextPakNum(ldDate)lnNum = 0(TTOC(DATETIME()) + ":";

+ " Превышен лимит пакетов в день " + CHR(10) + CHR(13),;

gcLogsPath + "Log.txt",1).Null.= fncDateToYMD(ldDate)_sbj = "S" + ALLTRIM(STR(lnNum)) + ALLTRIM(lcYMD)= fncGetNamePak(lnNum,lcYMD).container1.label12.ForeColor = RGB(0,128,255).container1.label12.caption = ALLTRIM(lcNamePak)= fncGetRegPacket(lcNamePak, gnIDTypeIn, lcAlias)&lcAlias SET PacketID = lnPacketID, idq_sbj = lcIdq_sbj + PADL(RECNO(),15,"0")&lcAliasFSIZE('RequestID') != 0table &lcAlias drop COLUMN RequestID* FROM &lcAlias INTO CURSOR curRequestFROM DBF('cur')IN curIN Request.container1.label4.ForeColor = RGB(0,255,64).container1.label12.ForeColor = RGB(0,255,64).container1.label5.ForeColor = RGB(0,128,255).container1.label13.ForeColor = RGB(0,128,255).container1.label13.caption = TTOC(DATETIME())

= fncPack(lcAlias,lcNamePak).container1.label5.ForeColor = RGB(0,255,64).container1.label13.ForeColor = RGB(0,255,64)

ENDFUNC

Функция, создающая выборку для запросов Q1,2

На входе - интервал времени

На выходе - Алиас выборки

FUNCTION fncGetDataForQ1_2ldStartDate, ldFinishDate as Datetime!USED('Request')(gcDataPath + "Request.dbf") IN 0 ALIAS RequestRequestSTRUCTURE TO (gcTempPath + "tmp1.dbf")(gcTempPath + "tmp1.dbf") IN 0 ALIAS tmp1IN RequestDATABASE (gcLBDPath + "dbins.dbc") SHAREDdbins!Fullins IN 0 ALIAS Fullins SHARED= 0.container1.label2.ForeColor = RGB(0,128,255).container1.label3.ForeColor = RGB(0,128,255).container1.label14.caption = "Внимание! Идет выборка на первичный запрос"

SELECT FullinsFOR BETWEEN(Fullins.changedate, ldStartDate, ldFinishDate)= k + 1.container1.label3.Caption = ALLTRIM(STR(k)).refreshMEMVAR Tmp1 BLANK MEMVAREMPTY(ein) OR VAL(ALLTRIM(ein)) = 0numq WITH 'Q01' IN Tmp1numq WITH 'Q02' IN Tmp1ResultID WITH 25,;WITH.F. IN Tmp1 Fullins

ENDSCAN

goFrm.container1.label2.ForeColor = RGB(0,255,64).container1.label3.ForeColor = RGB(0,255,64).refreshIN FullinsDATABASESRECCOUNT('tmp1') = 0(TTOC(DATETIME()) + ":";

+ " Нет данных за период: с " +;

TTOC(ldStartDate) + " по " +;(ldFinishDate)+ CHR(10) + CHR(13),;+ "Log.txt",1)'tmp1'

RETURN 'tmp1'

Функция создающая выборку для запросов модификации

На входе - ничего нет

На выходе - алиас

FUNCTION fncGetDataForQ_OtherlnNumq as Integer !USED('Results')(gcDataPath + "Results.dbf") IN 0 ALIAS Results!USED('Request')(gcDataPath + "Request.dbf") IN 0 ALIAS RequestRequestSTRUCTURE TO (gcTempPath + "tmp2.dbf")(gcTempPath + "tmp2.dbf") IN 0 ALIAS tmp2DATABASE (gcLBDPath + "dbins.dbc") SHAREDdbins!Fullins IN 0 ALIAS Fullins SHAREDrequestID, MAX(operdate) FROM Request WHERE Flag AND ResultID in;

(SELECT ResultID FROM Results WHERE groupid = 1) GROUP BY 1 INTO CURSOR curRECCOUNT('cur') = 0(TTOC(DATETIME()) + ":";

+ " Нет данных для отправки на запросы модификации" + CHR(10) + CHR(13),;

gcLogsPath + "Log.txt",1)'tmp2'= 0.container1.label2.ForeColor = RGB(0,128,255).container1.label3.ForeColor = RGB(0,128,255).container1.label14.caption = "Внимание! Идет выборка на запросы модификации"

SELECT cur

SCAN ALL

k = k + 1.container1.label3.Caption = ALLTRIM(STR(k)).refreshSEEK(cur.RequestID, 'Request', 'RequestID')Request= Request.ResultIDSEEK(Request.tkey, 'Fullins', 'tkey')FullinsMEMVARTmp2BLANKMEMVARResultID WITH 25,;WITH.F. IN Tmp2lnNumq = 1numq WITH "Q01" IN Tmp2lnNumq = 2numq WITH "Q03" IN Tmp2lnNumq = 3numq WITH "Q04" IN Tmp2lnNumq = 4numq WITH "Q05" IN Tmp2lnNumq = 5numq WITH "Q05" IN Tmp2lnNumq = 6numq WITH "Q08" IN Tmp2lnNumq = 7numq WITH "Q09" IN Tmp2IN FullinsDATABASESIN curIN ResultsIN Request!USED('Reply')(gcDataPath + "Reply.dbf") IN 0 ALIAS Replytmp2ALLSEEK(tmp2.ReplyID, 'Reply', 'ReplyID')

Продолжение приложения 1

IF ALLTRIM(tmp2.numq) == 'Q01'

replace ein WITH "" IN Tmp2ALLTRIM(tmp2.numq) == 'Q03'ein WITH "",;WITH 0 IN Tmp2ALLTRIM(tmp2.numq) == 'Q04'ein WITH Reply.ein IN Tmp2ALLTRIM(tmp2.numq) == 'Q08'ein WITH Reply.ein,;WITH 3 IN Tmp2ALLTRIM(tmp2.numq) == 'Q09'ein WITH Reply.ein,;WITH Reply.remstat IN Tmp2IN Reply

RETURN 'tmp2'

Процедура запаковки и отправки пакета

На входе - Алиас, полное имя пакета

На выходе - результат работы архиватора

FUNCTION fncPacklcAlias as String, lcNamePak as StringlcTemplate as String, lnReturn as Integer= fncGetTemplate(gnIDTypeIn)!USED(lcTemplate)(gcTemplatePath + lcTemplate) IN 0 ALIAS &lcTemplateSTEP ON TALK OFF IN &lcTemplateTALK ON &lcTemplateFROM DBF(lcAlias)IN &lcTemplateFILE (gcTemplatePath + ALLTRIM(lcTemplate)+'.dbf') TO (gcArxPath + ALLTRIM(lcTemplate)+'.dbf')=RunProcess(gcArxPath+"pack.bat"+" "+gcOutPutPath + ALLTRIM(lcNamePak) + " " + ALLTRIM(lcTemplate)+ ".dbf",gcArxPath)

* (0 - если Ошибка, 1- все в норме)

DELETE FILE (gcArxPath + ALLTRIM(lcTemplate)+'.dbf')

RETURN lnReturn

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

На входе - Id Типа пакета

На выходе - Имя шаблонаfncGetTemplatelnIdType as IntegerlcTemplate as String !USED('TypePackets')(gcDataPath + "TypePackets.dbf") IN 0 ALIAS TypePacketsTypePacketsFOR TypePackets.TypeId = lnIdTypeFOUND()= TypePackets.TemplateIN TypePacketslcTemplate

Функция регистрации пакета в журнале и отметка о статистике по запросам

На входе - Id Типа пакета, полное имя пакета, алиас таблицы

На выходе - Id ПакетаfncGetRegPacket

LPARAMETERS lnNamePak as String, lnType as Integer, lcAlias as StringlnId!USED('Packety')(gcDataPath + "Packety.dbf") IN 0 ALIAS PacketyINTO Packety (Name, TypeID) VALUES (lnNamePak, lnType)BOTTOM in Packety= Packety.PacketIdIN Packety!USED('Queryes')(gcDataPath + "Queryes.dbf") IN 0 ALIAS QueryeslnId as packetid, numq, COUNT(*) FROM &lcAlias GROUP BY 1,2 INTO CURSOR curINTO queryes (PacketId, Numq, AmountNumq) SELECT * FROM curIN curIN Queryes

RETURN lnId

Функция генерации имени пакета

На входе - нет ничего

На выходе - полное имя пакета

FUNCTION fncGetNamePaklnNum as Integer, lcYMD as StringlcType as String= fncGetTypePacket(gnIDTypeIn)PADL(gcSMO,5,"0") + ALLTRIM(lcType) + ALLTRIM(STR(lnNum)) + "." + ALLTRIM(lcYMD)

Функция определения типа исходящего пакета

Входной параметр - Id Типа

На выходе - типfncGetTypePacketlnId as IntegerlcType as String= ""!USED('TypePackets')(gcDataPath + "TypePackets.dbf") IN 0 ALIAS TypePacketsTypePacketsFOR TypePackets.TypeId = lnIdFOUND()= TypePackets.TypeIN TypePacketslcType

Функция перевода даты в формат ГМД

На входе - дата

На выходе - ГМД

FUNCTION fncDateToYMDldDate as DateldYear,;,;as Integer,;as StringDECIMALS TO 0= VAL(RIGHT(STR(YEAR(DATE())),2))= MONTH(ldDate)= DAY(ldDate)= fncSystem32(ldYear) + fncSystem32(ldMonth) + fncSystem32(ldDay)

RETURN lcYMD

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

На входе - часть даты

На выходе - часть даты в сч 32

Продолжение приложения 1fncSystem32lcPartDate as Integer lcPartDate >= 1 AND lcPartDate <= 9 THEN= ALLTRIM(STR(lcPartDate))lcPartDatelcPartDate > 9 THEN

RETURN CHR(65 + (lcPartDate - 10))

Функция определения следующего порядкового номера пакета

На входе - дата

На выходе - номер

FUNCTION fncGetNextPakNumldDate as DatelnRetVal as Integer !USED('ForNamePak')(gcDataPath + "ForNamePak.dbf") IN 0 ALIAS ForNamePakForNamePakFOR ForNamePak.DateGen = ldDateFOUND()= ForNamePak.NumBLANKDateGen WITH ldDate,;WITH 0 IN ForNamePak= ForNamePak.NumlnRetVal >= VAL(gcAmountPak)0ForNamePakFOR ForNamePak.DateGen = ldDateFOUND()= lnRetVal + 1Num WITH lnRetVal IN ForNamePakIN ForNamePaklnRetValShellExecutelcCmdName as StringLong ShellExecute IN Shell32.dll Long hwnd, String Operation, String File,;parameters, String Directory, Integer ShowCmdlnReturn as Integer= ShellExecute(0, "open", lcCmdName,.null.,.null., 1)

RETURN lnReturn

Приложение 2

Листинг файла main.prg

CLOSE ALL

*SET STEP ON prcSettingDATABASE (gcDataPath + "exchange.dbc") SHAREDSHUTDOWN do prcExitApp

_screen.Visible =.T.

_screen.Caption = "Обмен информацией с ЕМСР"

_screen.WindowState = 2

_screen.Icon = (gcIcoPath + "snow.ico")

_screen.MaxButton =.F.

_screen.MinButton =.F.

_screen.Picture = (gcIcoPath + "PIC.JPG")(gcMenuPath + "CustomMenu.mpr")Tray as Object,;as Object= CREATEOBJECT("systray.MyTray").systray1.iconfile = (gcIcoPath + "snow.ico")

Tray.systray1.tiptext = "Обмен информацией с ЕМСР"

goTimer = CREATEOBJECT("MyTimer.MyTimer").init()EVENTSprcSetting, gnIDTypeOut as Integer= 1=2SAFETY OFF TALK OFFDATE GERMANDECIMALS TO 0lcStr as String!FILE(ADDBS(application.DefaultFilePath) + "Setting.dbf")

MESSAGEBOX ("Отсутствует файл с настройками программы",0,"Error")

DO prcExitApp(ADDBS(application.DefaultFilePath) + "Setting.dbf") IN 0 ALIAS Setting EXCLUSIVESettingALL= "PUBLIC " + ALLTRIM(Setting.VarName) + " AS STRING "

Продолжение приложения 2

&lcStr= ALLTRIM(Setting.VarName) + "='" + ALLTRIM(Setting.VarValue) + "'"

&lcStrIN SettingLIBRARY TO (gcProgPath + "mdlPackets.prg") ADDITIVELIBRARY TO (gcProgPath + "tasks.prg") ADDITIVECLASSLIB TO (gcClassPath + "systray.vcx") ALIAS systray ADDITIVECLASSLIB TO (gcClassPath + "myforms.vcx") ALIAS myforms ADDITIVECLASSLIB TO (gcClassPath + "mytimer.vcx") ALIAS mytimer ADDITIVEprcExitAppTABLES ALLDATABASES ALLALLEVENTS

QUIT

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

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!