Диплом: Разработка программы по оформлению медико-экономической экспертизы и экспертизы качества стационарной медицинской помощи

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
71
Expert
bit
Признак включения в реестр экспертов
имеющих право проводить экспертизу качества
МП
Profiles
varchar(255)
Перечень кодов профилей МП, по которым
может проводить экспертизу
SMO
varchar(255)
Страховая медицинская организация
Продолжение таблицы 15
Обозначение
Формат
Краткое описание назначения (комментарии)
Date_Term
smalldatetime
Дата включения в реестр экспертов имеющих
право проводить экспертизу качества МП
Таблица 16
Структура таблицы «Экспертиза» (Expert)
Обозначение
Формат
Краткое описание назначения (комментарии)
NumRee
int
Номер реестра оказания МП
DaySt
tinyint
Признак оказания стационарозамещающей МП
Num_PP
smallint
Номер по порядку записи в реестре
Kod_Otd
tinyint
Код отделения ЛПУ
Profil
tinyint
Профиль оказанной МП
UKDL_Ex
numeric(5,3)
Оценка качества оказанной МП
Day_Ex
smallint
Количество оплачиваемых дней лечения
Sum_Ex
numeric(12,2)
Сумма оплаты СМО ЛПУ за оказанную МП
Num_Exp
int
Номер записи (autoincrement)
Errors
int
Отмеченные ошибки
Us_ID
int
Идентификатор пользователя
Date_Change
dateme
Дата корректировки
72
Таблица 17 – Структура таблицы «Пункт нарушения договора» (Shtraf)
Обозначение
Формат
Краткое описание назначения (комментарии)
Num_Punkt
int
Номер записи (autoincrement)
Period
smalldatetime
Дата начала действия
Продолжение таблицы 17
Обозначение
Формат
Краткое описание назначения (комментарии)
Punkt
char(10)
Номер пункта нарушения договора
Sign
tinyint
Код алгоритма расчета
Part_Shtr
numeric(6,3)
Значение параметра для расчета
Type
tinyint
Тип пункта нарушения договора
Name_Shtr
text
Описание нарушений договора, относящихся к
данному пункту
Таблица 18
Структура таблицы «Тип нарушения договора» (Typ_Shtr)
Обозначение
Формат
Краткое описание назначения (комментарии)
Type
tinyint
Код типа нарушения договора
Name_Type
char(100)
Наименование типа нарушения договора
Таблица 19
Структура таблицы «Выявленные нарушения» (ExpShtr)
Обозначение
Формат
Краткое описание назначения (комментарии)
Num_Exp
int
Регистрационный код экспертизы
Num_Punkt
int
Код пункта нарушения договора
Sum_Shtr
numeric(12,2)
Сумма уменшения оплаты за МП
Mn
float
Us_ID
int
Идентификатор пользователя
Date_Change
dateme
Дата корректировки
73
Таблица 20
Структура таблицы «Алгоритм расчета» (Typ_RasSht)
Обозначение
Формат
Краткое описание назначения (комментарии)
Sign
tinyint
Код алгоритма расчета
Type_Shtr
char(100)
Описание алгоритма расчета
Таблица 21
Структура таблицы «СМО» (SMO)
Обозначение
Формат
Краткое описание назначения (комментарии)
SMO
tinyint
Код СМО
SMO_Name
varchar(255)
Наименование СМО
Expert
bit
Признак проведения экспертиз качества
Address
varchar(255)
Почтовый адрес
Own
bit
Признак - своя
Title
text
Шапка формируемых документов
Post
char(100)
Должность руководителя
FIO
char(70)
ФИО руководителя
Raion
varchar(255)
Описание размещения
OKPO
char(10)
ОКПО
2.2. Информационное обеспечение задачи
2.2.1. Информационная модель и её описание
Исходя из выше сказанного и анализа функционального назначения
задачи, программа должна включать в себя следующие основные модули,
один из которых должен быть предназначен для доступа к данным (модуль
данных) [41.стр.15-16]:
 главного управляющего модуля;
74
 модуля данных;
 формы идентификации пользователя;
 формы для поиска и выбора ЛПУ;
 формы для выбора контролируемого реестра, выбранного ЛПУ;
 формы для задания параметров формирования акта (кода ЛПУ и
регистрационного номера реестра);
 модуля формирования акта медико-экономического контроля;
 модуля формирования акта результатов медико-экономической
экспертизы;
 модуля формирования акта результатов экспертизы качества
оказания стационарной и стационарозамещающей медицинской
помощи;
 модуля формирования выборки записей по коду нозологии;
 модуля формирования выборки записей с отклонением сроков
лечения от норматива более чем на 30%;
 модуля формирования выборки записей с летальным исходом;
 модуля формирования случайной выборки записей указанного
объёма (например, 20%);
 формы для просмотра и печати сформированных документов.
75
Главный
Выборка
умерших
пациентов
Выборка
отклонений
от норматива
Идентифи-
кация
ЛПУ
Список
принятых
реестров
Акт МЭЭ Акт ЭКАкт МЭК
Выборка
по коду
нозологии
Перечень
МЭЭ
Случайная
20 %
выборка
Настройка
доступа
к БД
Определение
праметров
Перечень
ЭК
Рис. 11 Схема взаимодействия программных модулей
2. 2.2. Характеристика нормативно-справочной, входной и оперативной
информации
Для проведения экспертизы качества в лечебно-профилактическом
учреждении (ЛПУ) запрашиваются истории болезней граждан, которым
была оказана стационарная или стационарозамещающая медицинская
помощь. Для того чтобы экспертиза качества выявила, как можно больше
недостатков в работе лечебного учреждения, необходимо выбрать из
реестров записи, в которых наиболее вероятны недостатки в оказании
медицинской помощи. Например, формирование и печать выборки записей
с отклонением сроков лечения от норматива более 30% или
формирование и печать выборки записей с летальным исходом[43.стр.62].
Алгоритм формирования выборки записей с отклонением сроков
лечения от норматива более 30% будет заключаться в задании периода, за
который производится выборка. После чего заданные границы периода
передаются в следующий SQL-запрос[45.стр.16]:
-- удлиненные/укороченные сроки госпитализации
76
declare @Begin smalldatetime, @End smalldateme
select @Begin=:begin, @End=:end /*
select @Begin='20100101', @End='20100201' --*/
select sr.Kod_LPU, LPU.name, convert(varchar(8),sr.period,4)as period, r.nozo,
r.norm,
r.s_day,(abs(isNull(r.norm,0)-isNull(r.s_day,0))*100)/isNull(r.norm,0) as
otkl,
left(t.text_Isch,10) , r.family, convert(varchar(8),r.date_r,4)as date_r
from reestr r
left outer join spisRee sr on sr.NumRee=r.NumRee
left outer join LPU on LPU.Kod_LPU=sr.Kod_LPU
left outer join Text_Ischod t on t.Ischod=r.Ischod
where (sr.period between @Begin and @End)
and isNull(r.norm,0)>0
and DaySt=0
and not r.Ischod in(3,4)
and not sr.Kod_LPU in (218,8226,539,8654,9172) /*
and not sr.Kod_LPU = 218 --*/
and (abs(isNull(r.norm,0)-isNull(r.s_day,0))*100)/isNull(r.norm,0)>29
order by sr.Kod_LPU, sr.period
Алгоритм формирования выборки записей с пересечением сроков
госпитализации будет заключаться в задании периода, за который
производится выборка. После чего заданные границы периода передаются
в следующий SQL-запрос[28.стр.12]:
-- Перекрест 2 сроков госпитализации
declare @PERIOD1 SMALLDATETIME,@PERIOD2 SMALLDATETIME
select @PERIOD1 = :period1, @PERIOD2 = :period2 /*
select @PERIOD1 = '20100101', @PERIOD2 = '20100301' --*/
SELECT
r1.FAMILY, convert(varchar(8),r1.DATE_R,4)as DATE_R1, R1.POLIS_NUM+';' as
polis1,
convert(varchar(8),s1.PERIOD,4)as PERIOD,
s1.Kod_LPU as kod1, L1.NAME AS lpu1, p1.PROF_NAME as spec1, r1.nozo as nozo1,
convert(varchar(8),r1.DP,4)as DP1,convert(varchar(8),r1.DW,4)as DW1,
s2.Kod_LPU as kod2, L2.NAME AS lpu2, p2.PROF_NAME as spec2,r2.nozo as nozo2,
convert(varchar(8),r2.DP,4)as DP2,convert(varchar(8),r2.DW,4)as DW2,
convert(varchar(8),s2.PERIOD,4)as PERIOD2
FROM reestr r1 (nolock)
INNER JOIN REESTR.DBO.REESTR R2 (nolock)
ON ((r1.NUMREE<>R2.NUMREE)or((r1.NUMREE=R2.NUMREE)and(r1.NUM_PP<>R2.NUM_PP)))
AND ( (r1.POLIS_NUM=R2.POLIS_NUM)OR(r1.FAMILY=R2.FAMILY AND r1.DATE_R=R2.DATE_R))
INNER JOIN REESTR.DBO.SPISREE S1 (nolock) ON S1.NUMREE =r1.NUMREE
INNER JOIN REESTR.DBO.LPU L1 (nolock) ON S1.KOD_LPU=L1.KOD_LPU
INNER JOIN REESTR.DBO.PROFIL p1 (nolock) ON p1.PROFIL=R1.PROFIL
INNER JOIN REESTR.DBO.SPISREE S2 (nolock) ON S2.NUMREE =r2.NUMREE
INNER JOIN REESTR.DBO.LPU L2 (nolock) ON S2.KOD_LPU=L2.KOD_LPU
INNER JOIN REESTR.DBO.PROFIL p2 (nolock) ON p2.PROFIL=R2.PROFIL
--where r1.DP>R2.DP AND r1.DP<R2.DW and r1.dp between @PERIOD1 and @PERIOD2
where r1.DP>=R2.DP AND r1.DP<R2.DW and s1.period=@PERIOD2 and s2.period between
@PERIOD1 and @PERIOD2
--ORDER BY s1.Kod_LPU, r1.FAMILY
ORDER BY s1.PERIOD, s1.Kod_LPU, r1.FAMILY
Алгоритм формирования выборки записей по коду нозологии
будет заключаться, во вводе шаблона кода нозологии и задании периода,
за который производится выборка. После чего шаблон и заданные
границы периода передаются в следующий SQL-запрос[30.стр.48]:
77
/*** Снятие с оплаты по МЭЭ R00-R99 (Reestr) ***/
declare @nozo varchar(7), @dateMEE datetime, @Err tinyint,
@dateBeg smalldatetime, @dateEnd smalldatetime, @noSpec tinyint
select @nozo = 'R%', @dateMEE = '20100419', @Err =7,
@dateBeg = '20090101', @dateEnd = '20100501', @noSpec = 22
--select @dateMEE as DateCheck
--insert into addExpert select r.numRee, @dateMEE as DateCheck, r.profil, /*
select r.Family, convert(varchar(10),r.Date_R,104) as DR,
p.prof_name, r.nozo, convert(varchar(10),r.DP,104) as DP,
convert(varchar(10),r.DW,104) as DW,
r.s_Day, r.Day_Opl, r.Sum_Before,
LPU.Name, convert(varchar(10),s.period,104) as Ree --*/
--v.Tarif, v.UET,
--0 as SumPay, @Err as CodChangeReason, 7 as UserId
from reestr..reestr r (nolock)
inner join reestr..SpisRee s (nolock) on s.numRee=r.numRee
left outer join reestr..LPU (nolock) on LPU.Kod_LPU=s.Kod_LPU
left outer join reestr..profil p (nolock) on p.profil=r.profil
where
s.period between @dateBeg and @dateEnd
--and v.nozo like @nozo and not v.codeSpec=@noSpec
--and v.nozo like 'R%' and not v.codeSpec=22
and ((r.nozo like 'R%' and not (r.nozo in ('R04.0','R10.0','R10.4')))
or (r.s_Day>4 and r.nozo in ('R04.0','R10.0','R10.4')))
and r.Sum_Before>0
--*/
В соответствии с пунктом 1.2.1 разрабатываем в Delphi следующую
форму для получения документа «Акт медико-экономического контроля»
Рис.12 Шаблон для формирования акта медико-экономического контроля
Прежде чем формировать акт контроля необходимо проверить,
представленный в электронном виде, реестр оказания стационарной и
стационарозамещающей медицинской помощи. ЛПУ представляют реестр
в виде dbf-файла со структурой, представленной в таблице 2:
78
Для получения перечня принятых реестров - информации
необходимой для формирования акта медико-экономического контроля -
создаём следующий запрос к базе данных[34.стр.96]:
declare @NumRee int, @NumLic int, @KodLPU smallint, @period smalldatetime
select @NumRee = :NumRee,
@KodLPU = :KodLPU
select @period=period from spisRee (nolock) where NumRee=@NumRee
select @NumLic=0
select @NumLic=Num_Lic from Licen (nolock) where Kod_LPU=@KodLPU and @period between
begin_date and end_date
if exists(
select r.DaySt from reestr r (nolock)
where numRee=@NumRee
--and errors>0
and ((s_day<>day_opl)or(r.summa<>sum_before))
and isNull(num_Ex,0)=0
and isNull(num_AddEx,0)=0
)
select distinct --@period as a1, t.date_tar as a2,
r.DaySt, r.NumRee, r.Kod_otd, r.Profil, r.Nozo, r.Family,
r.Tarif as TarifLPU, r.Ukdl, r.S_day, r.Day_opl, r.Summa,
r.Sum_Before, d.Name_otd, p.Prof_name, t.summa as TarifSK,
r.polis_Num, r.DP, r.DW, r.errors, convert(varchar(255),r.note) as note
from reestr r (nolock)
left outer join departLPU d (nolock) on d.kod_otd=r.kod_otd and Kod_LPU=@KodLPU
left outer join prof_depart pd (nolock) on pd.num_Lic=@NumLic and
pd.kod_otd=r.kod_otd and pd.profil=r.profil and pd.DaySt=r.DaySt
left outer join profil p (nolock) on p.profil=r.profil
left outer join tarif_Sum t (nolock) on t.profil=r.profil and
t.category=pd.category
and t.date_tar = (select max(ts.date_tar) from tarif_Sum ts (nolock)
where @period>ts.date_tar and ts.profil=r.profil and ts.category=pd.category)
where numRee=@NumRee
--and errors>0
and ((s_day<>day_opl)or(r.summa<>sum_before))
and isNull(num_Ex,0)=0
and isNull(num_AddEx,0)=0
order by r.Kod_otd, r.DaySt, r.Profil
else --//IF @@ROWCOUNT=0
select 0 as DaySt, @NumRee as NumRee, 0 as Kod_otd, 0 as Profil,
'-' as Nozo, 'Нет изменения сумм до экспертизы' as Family,
convert(numeric(8,2),0) as TarifLPU, convert(numeric(5,3),0) as Ukdl,
0 as S_day, 0 as Day_opl, convert(numeric(12,2),0) as Summa,
convert(numeric(12,2),0) as Sum_Before, '-' as Name_otd,
'-' as Prof_name, convert(numeric(10,2),0) as TarifSK,
'-' as polis_Num, @period as DP, @period as DW, 0 as errors, '-' as note
Для определения номера регистрации реестра и формирования
информации для получения акта медико-экономического контроля создаём
следующую форму, представленную на рис. 13.
79
Рис. 13 Форма определения параметров для формирования акта медико-
экономического контроля
При приёме реестра оказания стационарной и
стационарозамещающей медицинской помощи, контролируются
параметры, описанные в пункте 2.2:
Для формирования и печати акта медико-экономического контроля
будут использованы возможности QuickReport.
Для формирования акта используются следующие входные и
выходные данные представленные в виде схемы на рисунке 14. С учетом
схемы данных создаем следующий запрос для формирования акта медико-
экономического контроля[42.стр.141]:
declare @NumRee int, @NumLic int, @KodLPU smallint, @period smalldatetime
select @NumRee = :NumRee,
@KodLPU = :KodLPU
select @period=period from spisRee (nolock) where NumRee=@NumRee
select @NumLic=0
select @NumLic=Num_Lic from Licen (nolock) where Kod_LPU=@KodLPU and @period between
begin_date and end_date
if exists(
select r.DaySt from reestr r (nolock)
where numRee=@NumRee
--and errors>0
and ((s_day<>day_opl)or(r.summa<>sum_before))
and isNull(num_Ex,0)=0
and isNull(num_AddEx,0)=0
)
select distinct --@period as a1, t.date_tar as a2,
r.DaySt, r.NumRee, r.Kod_otd, r.Profil, r.Nozo, r.Family,
r.Tarif as TarifLPU, r.Ukdl, r.S_day, r.Day_opl, r.Summa,
r.Sum_Before, d.Name_otd, p.Prof_name, t.summa as TarifSK,
r.polis_Num, r.DP, r.DW, r.errors, convert(varchar(255),r.note) as note
from reestr r (nolock)
left outer join departLPU d (nolock) on d.kod_otd=r.kod_otd and Kod_LPU=@KodLPU
left outer join prof_depart pd (nolock) on pd.num_Lic=@NumLic and
pd.kod_otd=r.kod_otd and pd.profil=r.profil and pd.DaySt=r.DaySt
left outer join profil p (nolock) on p.profil=r.profil
left outer join tarif_Sum t (nolock) on t.profil=r.profil and
t.category=pd.category
and t.date_tar = (select max(ts.date_tar) from tarif_Sum ts (nolock)
where @period>ts.date_tar and ts.profil=r.profil and ts.category=pd.category)
where numRee=@NumRee
--and errors>0
and ((s_day<>day_opl)or(r.summa<>sum_before))
and isNull(num_Ex,0)=0
80
and isNull(num_AddEx,0)=0
order by r.Kod_otd, r.DaySt, r.Profil
else --//IF @@ROWCOUNT=0
select 0 as DaySt, @NumRee as NumRee, 0 as Kod_otd, 0 as Profil,
'-' as Nozo, 'Нет изменения сумм до экспертизы' as Family,
convert(numeric(8,2),0) as TarifLPU, convert(numeric(5,3),0) as Ukdl,
0 as S_day, 0 as Day_opl, convert(numeric(12,2),0) as Summa,
convert(numeric(12,2),0) as Sum_Before, '-' as Name_otd,
'-' as Prof_name, convert(numeric(10,2),0) as TarifSK,
'-' as polis_Num, @period as DP, @period as DW, 0 as errors, '-' as note
Справочник
ЛПУ
Акт МЭК
Запрос
на форм.
акта МЭК
Определение
параметров
Код
ЛПУ
Запрос
на выбор
ЛПУ
Выбор
ЛПУ
Запрос
на выбор
реестра
Команда
на форм.
акта МЭК
Список
принятых
реестров
Выбор
реестра
ЛПУ
Код
реестра
ЛПУ
Формирование
акта МЭК
Акт МЭК
Медицинская
помощь
Отделение
Профиль
медицинской
помощи
Отделение
<=>
Профиль
Тариф
Просмотр
и печать
акта МЭК
Рис. 14 Схема данных формирования акта медико-экономического
контроля
Для ускорения работы программы принимаем решение о том, что
главная форма не будет нести никакой информационной нагрузки, а будет
содержать только главное меню и необходимые управляющие и
вычислительные функции.
Исходя этого, главная форма будет выглядеть, как показано на
рисунке 15 и включать в себя следующее меню:
 Параметры
 Настройка подключения к серверу баз данных;
 Подключение к серверу баз данных
 Экспертиза
 Выборка записей по коду нозологии
 Выборка записей с отклонением сроков

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

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