Диплом: Разработка информационной системы учета и контроля договоров обязательного медицинского страхования ООО СК "ИНГОССТРАХ-М"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
48
ввод количества граждан имеющих право на получение полиса ОМС
по результатам сверки численности застрахованных по договору
ОМС;
увеличение значения количества граждан внесенных на получение
полиса ОМС на единицу по факту внесения информации на
получение полиса ОМС в БД «Ингосстрах-М» для соответствующего
договора;
уменьшение значения количества граждан внесенных на получение
полиса ОМС на единицу по факту удаления информации на
получение полиса ОМС в БД «Ингосстрах-М» для соответствующего
договора;
увеличение значения количества граждан имеющих полис ОМС на
единицу по факту регистрации в регистре полисов ОМС в БД
«ОФОМС» для соответствующего договора;
уменьшение значения количества граждан имеющих полис ОМС на
единицу по факту изъятия полиса ОМС из регистра полисов ОМС в
БД «ОФОМС» для соответствующего договора;
по факту перехода гражданина с одного предприятия на другое
уменьшение и увеличение значения количества граждан имеющих
полис ОМС на единицу для договоров соответствующих данным
предприятиям;
определение реального количества граждан имеющих полис ОМС и
внесенных на получение полиса ОМС на момент запроса для каждого
договора, включенного в перечень договоров в результате
выполнения функции формирования перечня договоров выбранного
района;
формирование списка действующих договоров ОМС выбранного
района;
формирование списка расторгнутых договоров ОМС выбранного
района;
формирование списка граждан имеющих полисы ОМС и работающих
на предприятии соответствующего выбранному договору;
49
формирование списка граждан не получивших полис ОМС и
работающих на предприятии соответствующего выбранному
договору;
формирование списка граждан работающих на предприятии
соответствующего выбранному договору;
формирование списка граждан уволенных на предприятии
соответствующего выбранному договору.
2.3.4 Описание программных модулей
Модуль «Главный»
Входные данные
Модуль содержит линейку главного меню программы, и все
необходимые панели для просмотра и ввода статистической, контактной и
учетной информации по договору.
Входными данными будет перечень районов и городов областного
подчинения Курской области (таблицы №16 и 17).
Таблица №16
Структура таблицы «Регионы» (subjects)
Обозначение
Формат
Краткое описание назначения (комментарии)
subject_id
Smallint
ID номер региона
Subject_name
Varchar 50
Наименование региона
Таблица №17
Структура таблицы «Районы» (districts)
Обозначение
Формат
Краткое описание назначения (комментарии)
district_id
Smallint
ID номер района
subject_id
Smallint
ID номер региона
district_name
Varchar 50
Наименование района
Входными данными будут также контактные, учетные и статистические
данные по договору ОМС.
50
Выходные данные
Выходными данными будут заполненные контактными, учетными и
статистическими данными соответствующие поля и таблицы базы данных (см.
пункт 2.5. «Выходные данные»). На форме модуля «Главный» будет
отображаться следующая информация:
перечень районов и городов областного подчинения Курской области;
список договоров выбранного района со следующей статистической
информацией для каждого договора: количество застрахованных
имеющих полисы ОМС (действительные), количество
застрахованных внесенных в базу данных на получение полисов ОМС
(неперсонифицированные), количество сотрудников указанное в
бланке договора, количество сотрудников по результатам последней
сверки;
учетная и контактная информация выбранного договора.
Так же выходными данными будут являться, запущенные из меню
следующие программы (модули) и формы:
модуль выбора режима формирования перечня договоров;
форма для просмотра перечня действующих договоров ОМС;
форма для просмотра перечня расторгнутых договоров ОМС;
форма для просмотра списка действительных полисов ОМС
выбранного договора;
форма для просмотра списка изъятых из реестра полисов ОМС
выбранного договора;
форма для просмотра перечня застрахованных сотрудников
предприятия выбранного договора ОМС;
сообщение о программе.
Процессы обработки
Модуль «Главный» запускается сразу по запуску программы на
выполнение. Перед отображением формы модуля выводится диалоговое окно
регистрации доступа к базе данных (рисунок №9).
51
Рисунок №9- Диалоговое окно регистрации доступа
После ввода регистрационной информации программа проверяет
правильность введенного пароля:
proba:=0;
while not dm.conMedPolicy.Connected do
begin
if not(dlgLogin.ShowModal = mrOk) then
begin
proba:=0;
break;
end;
Inc(proba);
if length(trim(dlgLogin.ePassword.Text))<1 then
Application.MessageBox('Не введен пароль','Информация',0)
else
if Copy(dlgLogin.ePassword.Text,1,1)>'z' then
Application.MessageBox('Не введен пароль','Информация',0)
else
try
dm.conMedPolicy.Open(dlgLogin.eName.Text,dlgLogin.ePassword.Text);
except
case proba of
1: Application.MessageBox('Пароль не верен. Повторите ввод.',
'Предупреждение',0);
2: Application.MessageBox('Последняя попытка. Будьте
внимательны.',
'Предупреждение',0);
else
52
Application.Terminate
end;
end;
end;
if proba=0 then
Application.Terminate
else begin
dm.spRaion.Prepared:=True;
dm.spRaion.Active:=True;
end;
Пользователю предоставляется только три попытки ввода пароля и после
третьей не удачной попытки программа завершает работу.
После регистрации отображается форма модуля в виде представленном
на рисунок №10. Пока не будет получен перечень договоров, пункты меню
предоставляющие возможность просмотра и печати различных перечней и
работы с данными будут не доступны.
Рисунок №10- Модуль «Главный» (начальная загрузка)
По выбору пункта меню получить перечень договоров запускается на
выполнение модуль определения режима формирования перечня договоров
выбранного района.
53
procedure TfrVyborDogovor.mDogClick(Sender: TObject);
var
dubl: boolean;
begin
Ms := MesDog;
frMesDog.Caption := dm.spRaiondistrict_name.AsString;
if frMesDog.ShowModal = mrOk then
MesDog := frMesDog.rgMes.ItemIndex
else
exit;
if not mData.Enabled then
begin
mData.Enabled:=True;
mSotr.Enabled:=True;
mForPers.Enabled:=True;
mDog1.Enabled:=True;
mDog2.Enabled:=True;
end;
if MesDog = 0 then
dubl := (dm.spRaion.FieldValues['district_id']=distr)
else
dubl := (Ms=MesDog)and(dm.spRaion.FieldValues['district_id']=distr);
if dubl then
begin
if MessageDlg('Такой перечень договоров уже получен.'
+#13+'Получить все равно?',
mtInformation,[mbOk,mbCancel],0)<>mrOk then
exit;
end;
panel4.Caption:='Получение переченя действующих договоров. Ждите
...';
memo1.Text:='0';
memo2.Text:='0';
memo3.Text:='0';
memo4.Text:='0';
refresh;
if dm.spDogStat3.Active
then begin
try
dm.spDogStat1.Prepared:=False;
dm.spDogStat2.Prepared:=False;
dm.spDogStat3.First;
dm.spDogStat3.Active:=False;
dm.spDogStat3.Prepared:=False;
except
end;
end;
try//f
54
dm.spDogStat1.Parameters.ParamByName('@district').Value:=
dm.spRaion.FieldValues['district_id'];
dm.spDogStat1.Parameters.ParamByName('@mes').Value:=MesDog;
dm.spDogStat1.Prepared:=True;
dm.spDogStat1.ExecProc;
dm.spDogStat1.Prepared:=True;
try
dm.spDogStat3.Active:=True;
dm.spDogStat3.First;
Refresh;
numPP:=0;
while not dm.spDogStat3.Eof do
begin
panel4.Caption:='Определение статистики договора № '+
dm.spDogStat3.FieldValues['Number'];
panel4.Refresh;
dm.spDogStat2.Prepared:=False;
dm.spDogStat2.Parameters.ParamByName('@contract_id').Value:=
dm.spDogStat3.FieldValues['Kod'];
Inc(numPP);
dm.spDogStat2.Parameters.ParamByName('@num').Value:=numPP;
dm.spDogStat2.Prepared:=True;
dm.spDogStat2.ExecProc;
dm.spDogStat3.Next;
end;
dm.spDogStat3.First;
distr:=dm.spRaion.FieldValues['district_id'];
memo4.Text:=IntToStr(numPP);
except
panel4.Caption:=' ';
end;
try
if dm.spDogStat3.Active then
dm.spDogStat3.First;
dm.spDogStat3.Active:=False;
dm.spDogStat3.Active:=True;
dm.spDogStat3.First;
panel4.Caption:=dm.spRaion.FieldValues['district_name'];
if MesDog = 0 then
panel4.Caption:=panel4.Caption+' (перечень действующих договоров)'
else
panel4.Caption:=panel4.Caption+' (действующие договора заключенные
'+
frMesDog.rgMes.Items.Strings[frMesDog.rgMes.ItemIndex]+')';
Refresh;
iK_vo:=0; iKol_vo:=0; iForPers:=0;
while not dm.spDogStat3.Eof do
begin
55
inc(iK_vo,dm.spDogStat3K_vo.AsInteger);
inc(iKol_vo,dm.spDogStat3Kol_vo.AsInteger);
inc(iForPers,dm.spDogStat3ForPerson.AsInteger);
dm.spDogStat3.Next;
end;
memo1.Text:=IntToStr(iK_vo);
memo2.Text:=IntToStr(iKol_vo);
memo3.Text:=IntToStr(iForPers);
dm.spDogStat3.First;
except
panel4.Caption:=' ';
end;
finally
dm.spDogStat1.Prepared:=False;
dm.spDogStat2.Prepared:=False;
end;//f
end;
Рисунок №11- Формирование перечня договоров
После завершения формирования перечня и расчета статистических
данных для каждого договора из формируемого перечня форма модуля будет
иметь вид как на рисунок №11.
56
Рисунок №12- Модуль «Главный»
В модуле есть две панели ввода информации, которые отображаются по
выбору соответствующего пункта меню. Первая панель предназначена для ввода
статистической информации: количества страхуемых сотрудников указанного
бланке договора и по результатам последней сверки численности. Эта панель
отображается/скрывается по выбору пункта меню «Панель к-во застрахованных»
(рисунок №12).
procedure TfrVyborDogovor.N9Click(Sender: TObject);
begin
if frSaveK_va.ShowModal = mrOk then
begin
bK_vo:=StrToIntDef(frSaveK_va.meK_vo.Text,0);
SaveK_va;
end;
end;
procedure TfrVyborDogovor.meK_voKeyUp(Sender: TObject; var Key:
Word;
Shift: TShiftState);
begin
if Key in [13,33,34,38,40] then
begin
57
bK_vo:=StrToIntDef(meK_vo.Text,0);
if sK_vo <> bK_vo then
SaveK_va;
end;
case Key of
38: dm.spDogStat3.Prior;
40: dm.spDogStat3.Next;
33: dm.spDogStat3.MoveBy(-KolStr);
34: dm.spDogStat3.MoveBy(KolStr);
13: DBEdit1Change(Sender);
end;
end;
Рисунок №12- Выбор пункта меню для работы с данными
procedure TfrVyborDogovor.DBEdit1Change(Sender: TObject);
begin
if GroupBox2.Visible then
begin
sK_vo:=dm.spDogStat3K_vo.AsInteger;
meK_vo.Text:=dm.spDogStat3K_vo.AsString;
end;
end;
procedure TfrVyborDogovor.SaveK_va;
begin

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран