|
N |
Наименование
файла в соответствии с Приказом |
Формальное |
|
1. |
Файл записей типа
"Л" - данные об отпущенных |
L |
|
2. |
Файл записей типа
"Р" - данные о выписанных |
R |
|
3. |
Файл записей типа
МКВ - Международный |
MKB |
|
4. |
Файл записей типа
"ПЛС" - Перечень лекарствен- |
PLS |
|
5. |
Файл записей типа
СВФ - Справочник врачей и |
Doctor |
|
6. |
Файл записей типа
"ПЦЛС" - Справочник |
PCLS |
|
7. |
Файл записей типа
"ЦЛС" - Справочник |
CLS |
|
8. |
Файл записей типа
"Л" - реестр оплаченных |
PayL |
|
9. |
Файл записей типа
"ФП" - персональные данные о |
FP |
|
10. |
Файл записей типа
"ФЛ" - данные о документах, |
FL |
|
11. |
Файл записей типа
"ЛПУ" - Справочник лечебно- |
LPU |
3. Алгоритмы
экспертиз
Алгоритмы автоматизированной экспертизы
реестров рецептов разбиты на следующие группы:
- синтаксический контроль (наличие
формальных ошибок в реестрах данных);
- семантический контроль (наличие
смысловых ошибок в значениях данных);
- строгий контроль.
Формальное описание алгоритмов экспертизы
приведено на языке T-SQL (Transact Structured Query Language) в соответствии со
стандартом ANSI SQL-92.
Перечень и описание алгоритмов
автоматизированной экспертизы реестров рецептов приведены в таблице 2.
Таблица 2
┌─────┬──────────────┬────────────────────────────────────────────────┬────────────────────────┬──────┐
│Код │ Наименование │ Текст алгоритма (T-SQL) │ Описание │ Код │
│алго-│ │ │ │ошибки│
│ритма│ │ │ │ │
├─────┼──────────────┴────────────────────────────────────────────────┴────────────────────────┼──────┤
│00 │ Синтаксический контроль │ │
├─────┼──────────────┬────────────────────────────────────────────────┬────────────────────────┼──────┤
│00.01│Номер рецепта │SELECT * FROM L WHERE ISNUMERIC │Проверка корректности │Р06 │
│ │не корректен │(REVERSE(SUBSTRING(REVERSE(LTRIM(RTRIM(SN_LR))),│формата номера рецепта │ │
│ │ │1, CHARINDEX(' ',REVERSE(LTRIM(RTRIM(SN_LR))), │(номер рецепта должен │ │
│ │ │1) -1))) = 0 │быть положительным целым│ │
│ │ │ │числом). Номер рецепта │ │
│ │ │ │получаем из строки │ │
│ │ │ │SN_LR, учитывая, что │ │
│ │ │ │между серией и номером │ │
│ │ │ │стоит пробел. │ │
│ │ │ │Входные данные: реестр │ │
│ │ │ │рецептов (файл записей │ │
│ │ │ │типа "Л"). │ │
│ │ │ │Выходные данные: пере- │ │
│ │ │ │чень рецептов реестра, │ │
│ │ │ │содержащих ошибку │ │
├─────┼──────────────┼────────────────────────────────────────────────┼────────────────────────┼──────┤
│00.02│Серия рецепта │SELECT * FROM L WHERE │Проверка серии рецепта │Р07 │
│ │не корректна │REVERSE(SUBSTRING(REVERSE(LTRIM(RTRIM(SN_LR))), │на отличие от допустимых│ │
│ │ │CHARINDEXC(' ',REVERSE(LTRIM(RTRIM(SN_LR))), │значений, принятых в │ │
│ │ │1) + 1, │регионе. │ │
│ │ │LEN(LTRIM(RTRIM(SN_LR))))) NOT IN ("50","5006") │Замечание: "50" и "5006"│ │
│ │ │ │(пример допустимых серий│ │
│ │ │ │на территории региона). │ │
│ │ │ │Входные данные: реестр │ │
│ │ │ │рецептов (файл записей │ │
│ │ │ │типа "Л"). │ │
│ │ │ │Выходные данные: пере- │ │
│ │ │ │чень рецептов реестра, │ │
│ │ │ │содержащих ошибку │ │
├─────┼──────────────┼────────────────────────────────────────────────┼────────────────────────┼──────┤
│00.03│Код диагноза │SELECT * FROM L │Проверка диагноза, пос- │Р08 │
│ │отсутствует в │WHERE DS NOT IN │тавленного в рецепте, на│ │
│ │справочнике │(SELECT DS FROM MKB) │наличие его в справочни-│ │
│ │МКБ-10 │ │ке МКБ-10. Поиск диагно-│ │
│ │ │ │за осуществляется по │ │
│ │ │ │полю DS. │ │
│ │ │ │Входные данные: реестр │ │
│ │ │ │рецептов (файл записей │ │
│ │ │ │типа "Л"), файл типа │ │
│ │ │ │МКБ. Выходные данные: │ │
│ │ │ │перечень рецептов реест-│ │
│ │ │ │ра, содержащих ошибку │ │
├─────┼──────────────┼────────────────────────────────────────────────┼────────────────────────┼──────┤
│00.04│Код ЛПУ отсут-│SELECT L.* FROM L │Проверка рецепта на │Р04 │
│ │ствует в спра-│LEFT OUTER JOIN LPU ON │соответствие хотя бы │ │
│ │вочнике ЛПУ, │LPU.C_OGRN = L.C_OGRN AND │одному из критериев: │ │
│ │работающих в │LPU.MCOD = L.MCOD AND │- лечебно-профилактичес-│ │
│ │системе ДЛО │L.DATE_VR BETWEEN LPU.DATE_B AND │кое учреждение с таким │ │
│ │ │(CASE LPU.DATE_E WHEN
" THEN '01/01/2222' ELSE │C_OGRN
и MCOD не найдено│
│
│ │ │ISNULL(LPU.DATE_E,
'01/01/2222') END) │в справочнике ЛПУ; │ │
│ │ │WHERE LPU.C_OGRN IS
NULL │- на дату выписки рецеп-│ │
│ │ │
│та (DATE_VR)
ЛПУ не име-│ │
│ │ │ │ло права выписки льгот- │ │
│ │ │ │ных рецептов. │ │
│ │ │ │L.DATE_VR > LPU.DATE_E │ │
│ │ │ │(дата исключения ЛПУ из │ │
│ │ │ │справочника, при этом │ │
│ │ │ │учитывается, что эта │ │
│ │ │ │дата может быть пустой) │ │
│ │ │ │или │ │
│ │ │ │L.DATE_VR < LPU.DATE_B │ │
│ │ │ │(дата включения ЛПУ в │ │
│ │ │ │справочник). │ │
│ │ │ │Входные данные: реестр │ │
│ │ │ │рецептов (файл записей │ │
│ │ │ │типа "Л"), файл типа │ │
│ │ │ │"ЛПУ". │ │
│ │ │ │Выходные данные: пере- │ │
│ │ │ │чень рецептов реестра, │ │
│ │ │ │содержащих ошибку │ │
├─────┼──────────────┴────────────────────────────────────────────────┴────────────────────────┼──────┤
│01 │ Семантический контроль │ │
├─────┼──────────────┬────────────────────────────────────────────────┬────────────────────────┼──────┤
│01.01│Просроченный │SELECT L.* FROM L │Проверка рецепта на │Р10 │
│ │рецепт │WHERE DATE_OBR > DATEADD(DAY,30,DATE_VR) │соответствие критерию: │ │
│ │ │ │- дата выписки рецепта │ │
│ │ │ │отличается от даты обра-│ │
│ │ │ │щения больше чем на 30 │ │
│ │ │ │дней. │ │
│ │ │ │L.DATE_OBR > L.DATE_VR +│ │
│ │ │ │30 дней. │ │
│ │ │ │Входные данные: реестр │ │
│ │ │ │рецептов (файл записей │ │
│ │ │ │типа "Л"). │ │
│ │ │ │Выходные данные: пере- │ │
│ │ │ │чень рецептов реестра, │ │
│ │ │ │содержащих ошибку │ │
├─────┼──────────────┼────────────────────────────────────────────────┼────────────────────────┼──────┤
│01.02│Проверка дуб- │SELECT L.* FROM L INNER JOIN │Проверка рецепта на со- │Л04 │
│ │лей внутри │(SELECT SN_LR │ответствие обоим крите- │ │
│ │реестра │FROM L │риям: │ │
│ │ │GROUP BY SN_LR │- рецепт имеет поле │ │
│ │ │HAVING COUNT(*) > 1) T
ON │D_TYPE =
000; │ │
│ │ │T.SN_LR = L.SN_LR AND │- в текущем реестре су- │ │
│ │ │T.D_TYPE = '000' │ществует более одного │ │
│ │ │ │рецепта, имеющего такую │ │
│ │ │ │же серию и номер │ │
│ │ │ │(SN_LR). │ │
│ │ │ │Входные данные: реестр │ │
│ │ │ │рецептов (файл записей │ │
│ │ │ │типа "Л"). │ │
│ │ │ │Выходные данные: пере- │ │
│ │ │ │чень рецептов реестра, │ │
│ │ │ │содержащих ошибку │ │
├─────┼──────────────┼────────────────────────────────────────────────┼────────────────────────┼──────┤
│01.03│МНН отпущенно-│SELECT L.* FROM L │Проверка рецепта на │Р05 │
│ │го ЛС не соот-│INNER OUTER PLS ON │соответствие критерию: │ │
│ │ветствует ука-│PLS.NOMK_LS = L.NOMK_LS │- рецепт найден в списке│ │
│ │занному в ре- │INNER JOIN R ON │выписанных рецептов, но │ │
│ │естре выписан-│R.SN_LR = L.SN_LR AND │ЛС в рецепте, предъяв- │ │
│ │ных рецептов │R.DATE_VR = L.DATE_VR AND │ленном на экспертизу, не│ │
│ │ │R.C_OGRN = L.C_OGRN AND │соответствует МНН выпи- │ │
│ │ │R.MCOD = L.MCOD AND │санного рецепта. │ │
│ │ │R.C_MNN <> PLS.C_MNN │Поиск рецепта осуществ- │ │
│ │ │ │ляется по следующим │ │
│ │ │ │полям: │ │
│ │ │ │- Серия и номер рецепта │ │
│ │ │ │SN_LR; │ │
│ │ │ │- Дата выписки DATE_VR; │ │
│ │ │ │- ЛПУ с такими C_OGRN и │ │
│ │ │ │MCOD. │ │
│ │ │ │Входные данные: реестр │ │
│ │ │ │рецептов (файл записей │ │
│ │ │ │типа "Л"), реестр выпи- │ │
│ │ │ │санных рецептов, файл │ │
│ │ │ │типа "ПЛС". │ │
│ │ │ │Выходные данные: пере- │ │
│ │ │ │чень рецептов реестра, │ │
│ │ │ │содержащих ошибку │ │
├─────┼──────────────┼────────────────────────────────────────────────┼────────────────────────┼──────┤
│01.04│Код ЛПУ в об- │SELECT L.* FROM L │Проверка рецепта на со- │Р11 │
│ │cлуженном ре- │INNER JOIN R ON │ответствие критерию: │ │
│ │цепте не соот-│R.SN_LR = L.SN_LR AND │- рецепт найден в списке│ │
│ │ветствует ко- │(R.C_OGRN <> L.C_OGRN OR │выписанных рецептов, по-│ │
│ │ду, указанному│R.MCOD <> L.MCOD) │лученных от ЛПУ, но в │ │
│ │в реестре вы- │ │выписанном рецепте и в │ │
│ │писанных ре- │ │рецепте, предъявленном │ │
│ │цептов │ │на экспертизу, указаны │ │
│ │ │ │разные ЛПУ. │ │
│ │ │ │Поиск рецепта │ │
│ │ │ │осуществляется по полю: │ │
│ │ │ │- Серия и номер рецепта │ │
│ │ │ │SN_LR. │ │
│ │ │ │Входные данные: реестр │ │
│ │ │ │рецептов (файл записей │ │
│ │ │ │типа "Л"), реестр │ │
│ │ │ │выписанных рецептов │ │
│ │ │ │Выходные данные: пере- │ │
│ │ │ │чень рецептов реестра, │ │
│ │ │ │содержащих ошибку │ │
├─────┼──────────────┼────────────────────────────────────────────────┼────────────────────────┼──────┤
│01.05│СНИЛС пациента│SELECT L.* FROM L │Проверка рецепта на │П05 │
│ │в обслуженном │INNER JOIN R ON │соответствие критерию: │ │
│ │рецепте не │R.SN_LR = L.SN_LR AND │- рецепт найден в списке│ │
│ │соответствует │R.DATE_VR = L.DATE_VR AND │выписанных рецептов, │ │
│ │СНИЛС, указан-│R.C_OGRN = L.C_OGRN AND │полученных от ЛПУ, но в │ │
│ │ному в реестре│R.MCOD = L.MCOD AND │выписанном рецепте и в │ │
│ │выписанных │R.SS <> L.SS │рецепте, предъявленном │ │
│ │рецептов │ │на экспертизу, указаны │ │
│ │ │ │разные пациенты. │ │
│ │ │ │Поиск рецепта осуществ- │ │
│ │ │ │ляется по следующим │ │
│ │ │ │полям: │ │
│ │ │ │- Серия и номер рецепта │ │
│ │ │ │SN_LR; │ │
│ │ │ │- ЛПУ (C_OGRN, MCOD). │ │
│ │ │ │Входные данные: реестр │ │
│ │ │ │рецептов (файл записей │ │
│ │ │ │типа "Л"), реестр выпи- │ │
│ │ │ │санных рецептов. │ │
│ │ │ │Выходные данные: пере- │ │
│ │ │ │чень рецептов реестра, │ │
│ │ │ │содержащих ошибку │ │
├─────┼──────────────┼────────────────────────────────────────────────┼────────────────────────┼──────┤
│01.06│Дата выписки в│SELECT L.* FROM L │Проверка рецепта на │Р12 │
│ │обслуженном │INNER JOIN R ON │соответствие критерию: │ │
│ │рецепте не │R.SN_LR = L.SN_LR AND │- рецепт найден в списке│ │
│ │соответствует │R.C_OGRN = L.C_OGRN AND │выписанных рецептов, │ │
│ │дате, │R.MCOD = L.MCOD AND │полученных от ЛПУ, но в │ │
│ │указанной в │R.DATE_VR <> L.DATE_VR │выписанном рецепте и в │ │
│ │реестре │ │рецепте, предъявленном │ │
│ │выписанных │ │на экспертизу, указаны │ │
│ │рецептов │ │разные даты выписки. │ │
│ │ │ │Поиск рецепта осуществ- │ │
│ │ │ │ляется по следующим │ │
│ │ │ │полям: │ │
│ │ │ │- Серия и номер рецепта │ │
│ │ │ │SN_LR; │ │
│ │ │ │- ЛПУ (C_OGRN, MCOD). │ │
│ │ │ │Входные данные: реестр │ │
│ │ │ │рецептов (файл записей │ │
│ │ │ │типа "Л"), реестр выпи- │ │
│ │ │ │санных рецептов. │ │
│ │ │ │Выходные данные: пере- │ │
│ │ │ │чень рецептов реестра, │ │
│ │ │ │содержащих ошибку │ │
├─────┼──────────────┼────────────────────────────────────────────────┼────────────────────────┼──────┤
│01.07│Рецепт не най-│SELECT L.* FROM L │Проверка рецепта на │Р09 │
│ │ден в реестре │LEFT OUTER JOIN R ON │соответствие критерию: │ │
│ │выписанных │R.SN_LR = L.SN_LR │- рецепт не найден в │ │
│ │рецептов │WHERE R.SN_LR IS NULL │списке выписанных рецеп-│ │
│ │ │ │тов, полученных от ЛПУ. │ │
│ │ │ │Поиск рецепта │ │
│ │ │ │осуществляется по полю: │ │
│ │ │ │- Серия и номер рецепта │ │
│ │ │ │SN_LR. │ │
│ │ │ │Входные данные: реестр │ │
│ │ │ │рецептов (файл записей │ │
│ │ │ │типа "Л"), реестр выпи- │ │
│ │ │ │санных рецептов. │ │
│ │ │ │Выходные данные: пере- │ │
│ │ │ │чень рецептов реестра, │ │
│ │ │ │содержащих ошибку │ │
├─────┼──────────────┴────────────────────────────────────────────────┴────────────────────────┴──────┤
│02 │ Строгий контроль │
├─────┼──────────────┬────────────────────────────────────────────────┬────────────────────────┬──────┤
│02.01│На дату выпис-│SELECT L.* FROM L │Проверка рецепта на │Р13 │
│ │ки рецепта │LEFT OUTER JOIN DOCTOR ON │соответствие хотя бы │ │
│ │врач был иск- │DOCTOR.PCOD = L.PCOD AND │одному из критериев: │ │
│ │лючен из ре- │L.DATE_VR < │- врач, выписавший ре- │ │
│ │гистра врачей │(CASE DOCTOR.DATE_E WHEN " THEN '01/01/2222' │цепт, не найден в спра- │ │
│ │ │ELSE ISNULL(DOCTOR.DATE_E, '01/01/2222') END) │вочнике врачей и фельд- │ │
│ │ │WHERE DOCTOR.PCOD IS NULL │шеров, имеющих право на │ │
│ │ │ │выписку рецептов. │ │
│ │ │ │Поиск осуществляется по │ │
│ │ │ │полю: │ │
│ │ │ │- PCOD доктора; │ │
│ │ │ │- врач был исключен из │ │
│ │ │ │регистра врачей до даты │ │
│ │ │ │выписки рецепта │ │
│ │ │ │L.DATE_VR > │ │
│ │ │ │Doctor.DATE_E (дата │ │
│ │ │ │исключения из регистра │ │
│ │ │ │врачей, имеющих право на│ │
│ │ │ │выписку льготных катего-│ │
│ │ │ │рий граждан, учитывает- │ │
│ │ │ │ся, что эта дата может │ │
│ │ │ │быть пустой). │ │
│ │ │ │Входные данные: реестр │ │
│ │ │ │рецептов (файл записей │ │
│ │ │ │типа "Л"), файл типа │ │
│ │ │ │"СВФ". │ │
│ │ │ │Выходные данные: пере- │ │
│ │ │ │чень рецептов реестра, │ │
│ │ │ │содержащих ошибку │ │
├─────┼──────────────┼────────────────────────────────────────────────┼────────────────────────┼──────┤
│02.02│Рецепт уже │SELECT L.* FROM L │Проверка рецептов │Л03 │
│ │оплачен │INNER JOIN PAYL ON │реестра на соответствие │ │
│ │ │PAYL.SN_LR - L.SN_LR AND │критерию: │ │
│ │ │PAYL.C_OGRN = L.C_OGRN AND │- присутствует ли рецепт│ │
│ │ │PAYL.PCOD = L.PCOD AND │среди оплаченных ранее. │ │
│ │ │PAYL.SS = L.SS AND │Поиск осуществляется по │ │
│ │ │PAYL.DATE_VR <> L.DATE_VR │совпадению (всех) сле- │ │
│ │ │ │дующих полей: │ │
│ │ │ │- SN_LR; │ │
│ │ │ │- C_ОGRN; │ │
│ │ │ │- PCOD; │ │
│ │ │ │- SS; │ │
│ │ │ │- DATE_VR. │ │
│ │ │ │Входные данные: реестр │ │
│ │ │ │рецептов (файл записей │ │
│ │ │ │типа "Л"), реестр опла- │ │
│ │ │ │ченных рецептов. │ │
│ │ │ │Выходные данные: пере- │ │
│ │ │ │чень рецептов реестра, │ │
│ │ │ │содержащих ошибку │ │
├─────┼──────────────┼────────────────────────────────────────────────┼────────────────────────┼──────┤
│02.03│Отпущенное ЛС │SELECT L.* FROM L │Проверка рецепта на │Л05 │
│ │не входит в │LEFT OUTER JOIN PLS ON │соответствие хотя бы │ │
│ │Перечень ЛС на│PLS.NOMK_LS = L.NOMK_LS AND │одному из критериев: │ │
│ │дату отпуска │L.DATE_OTP BETWEEN_PLS.DATE_B AND │- лекарственное средство│ │
│ │ │(CASE PLS.DATE_E WHEN
" THEN '01/01/2222' ELSE │с NOMK_LS, отпущенным по│ │
│ │ │ISNULL(PLS.DATE_E,
'01/01/2222') END) │рецепту, не найдено в
│ │
│ │ │WHERE PLS. NOMK_LS IS
NULL │справочнике лекарствен- │
│
│ │ │ │ных средств; │ │
│ │ │ │- ЛС не действует (не │ │
│ │ │ │действовало) на дату от-│ │
│ │ │ │пуска рецепта. │ │
│ │ │ │L.DATE_OTP < PLS.DATE_B │ │
│ │ │ │(дата включения в спра- │ │
│ │ │ │вочник) │ │
│ │ │ │или │ │
│ │ │ │L.DATE_OTP > PLS.DATE_E │ │
│ │ │ │(дата исключения из │ │
│ │ │ │справочника, учитывает- │ │
│ │ │ │ся, что эта дата может │ │
│ │ │ │быть пустой). │ │
│ │ │ │Входные данные: реестр │ │
│ │ │ │рецептов (файл записей │ │
│ │ │ │типа "Л"), файл типа │ │
│ │ │ │"ПЛС". │ │
│ │ │ │Выходные данные: пере- │ │
│ │ │ │чень рецептов реестра, │ │
│ │ │ │содержащих ошибку │ │
├─────┼──────────────┼────────────────────────────────────────────────┼────────────────────────┼──────┤
│02.04│В рецепте ука-│SELECT L.* FROM L │Проверка рецепта на │Л06 │
│ │зан некор- │LEFT OUTER JOIN CLS ON │соответствие хотя бы │ │
│ │ректный код │CLS.C_PFS = L.C_PFS AND │одному из критериев: │ │
│ │позиции переч-│L.DATE_OTP BETWEEN CLS.DATE_BP AND │- в справочнике зарегис-│ │
│ │ня │(CASE CLS.DATE_EP WHEN " THEN '01/01/2222' ELSE │трированных цен не най- │ │
│ │ │ISNULL(CLS.DATE_EP, '01/01/2222') END) │дена цена с кодом C_PFS,│ │
│ │ │WHERE CLS.C_PFS IS NULL │указанным в рецепте; │ │
│ │ │ │- дата действия цены не │ │
│ │ │ │соответствует дате от- │ │
│ │ │ │пуска рецепта: │ │
│ │ │ │L.DATE_OTP > CLS.DATE_EP│ │
│ │ │ │(дата окончания действия│ │
│ │ │ │цены, учитывается, что │ │
│ │ │ │эта дата может быть │ │
│ │ │ │пустой) │ │
│ │ │ │или │ │
│ │ │ │L.DATE_OTP < CLS.DATE_BP│ │
│ │ │ │(дата начала действия │ │
│ │ │ │цены). │ │
│ │ │ │Входные данные: реестр │ │
│ │ │ │рецептов (файл записей │ │
│ │ │ │типа "Л"), файл типа │ │
│ │ │ │"ЦЛС". │ │
│ │ │ │Выходные данные: пере- │ │
│ │ │ │чень рецептов реестра, │ │
│ │ │ │содержащих ошибку │ │
├─────┼──────────────┼────────────────────────────────────────────────┼────────────────────────┼──────┤
│02.05│Пациент не │SELECT L.* FROM L │Проверка рецепта на со- │П01 │
│ │имеет права на│LEFT OUTER JOIN FP ON │ответствие хотя бы одно-│ │
│ │ГСП │FP.SS = L.SS AND │му из следующих критери-│ │
│ │ │FP.S_EDV = 1 AND │ев: │ │
│ │ │L.DATE_VR < │- человек с таким СНИЛС-│ │
│ │ │(CASE FP.DATE_RSE WHEN
" THEN '01/01/2222' ELSE │ом (SS) не найден в ре- │ │
│ │ │ISNULL(FP.DATE_RSE,
'01/01/2222') END) │естре лиц, имеющих право│ │
│ │ │WHERE FP.SS IS NULL │на получение НСУ; │ │
│ │ │ │- человек, получивший │ │
│ │ │ │рецепт, отказался от │ │
│ │ │ │получения НСУ (S_EDV=0);│ │
│ │ │ │- человек, получивший │ │
│ │ │ │рецепт, исключен из │ │
│ │ │ │регистра лиц, имеющих │ │
│ │ │ │право на получение НСУ, │ │
│ │ │ │раньше, чем был выписан │ │
│ │ │ │рецепт. │ │
│ │ │ │L.DATE_VR > P.DATE_RSE │ │
│ │ │ │(дата исключения из │ │
│ │ │ │регионального сегмента │ │
│ │ │ │регистра, учитывается, │ │
│ │ │ │что эта дата может быть │ │
│ │ │ │пустой). │ │
│ │ │ │Входные данные: реестр │ │
│ │ │ │рецептов (файл записей │ │
│ │ │ │типа "Л"), региональный │ │
│ │ │ │сегмент регистра лиц, │ │
│ │ │ │имеющих право на получе-│ │
│ │ │ │ние государственной со- │ │
│ │ │ │циальной помощи в виде │ │
│ │ │ │дополнительного набора │ │
│ │ │ │социальных услуг, рецеп-│ │
│ │ │ │тов (файл записей типа │ │
│ │ │ │"ФП"). │ │
│ │ │ │Выходные данные: пере- │ │
│ │ │ │чень рецептов реестра, │ │
│ │ │ │содержащих ошибку │ │
├─────┼──────────────┼────────────────────────────────────────────────┼────────────────────────┼──────┤
│02.06│У пациента нет│SELECT L.* FROM L │Проверка рецепта на │П03 │
│ │льготы на дату│LEFT OUTER JOIN FL ON │соответствие критерию: │ │
│ │выписки рецеп-│FL.SS = L.SS AND │- на дату выписки │ │
│ │та │L.DATE_VR BETWEEN FL.DATE_BL AND │рецепта льготник не имел│ │
│ │ │(CASE FP.DATE_EL WHEN
" THEN '01/01/2222' ELSE │ни одной действующей │
│
│ │ │ISNULL(FP.DATE_EL,
'01/01/2222') END) │льготы. │ │
│ │ │WHERE FL.SS IS NULL │L.DATE_VR
< FL.DATE_BL │ │
│ │ │
│(дата начала действия) │ │
│ │ │
│или │ │
│ │ │
│L.DATE_VR > FL.DATE_EL │ │
│ │ │ │(дата окончания │ │
│ │ │ │действия, учитывается, │ │
│ │ │ │что эта дата может быть │ │
│ │ │ │пустой). │ │
│ │ │ │Входные данные: реестр │ │
│ │ │ │рецептов (файл записей │ │
│ │ │ │типа "Л"), файл типа │ │
│ │ │ │"ФЛ" - данные о │ │
│ │ │ │документах. │ │
│ │ │ │Выходные данные: пере- │ │
│ │ │ │чень рецептов реестра, │ │
│ │ │ │содержащих ошибку │ │
├─────┼──────────────┼────────────────────────────────────────────────┼────────────────────────┼──────┤
│02.07│Превышена цена│SELECT L.* FROM L │Проверка рецепта на со- │Л02 │
│ │отпущенного ЛС│LEFT OUTER JOIN PCLS ON │ответствие хотя бы одно-│ │
│ │ │L.C_PFS = PCLS.C_PFS │му из следующих критери-│ │
│ │ │WHERE │ев: │ │
│ │ │((PCLS.MSG_TEXT LIKE '%ЦЕНА УКАЗАНА ЗА%') AND │- в справочнике зарегис-│ │
│ │ │(L.SL_ALL - ROUND(ROUND(PCLS.PR_REG_LIM * │трированных цен не най- │ │
│ │ │L.DOZ_LS, 2) * L.KO_ALL, 2) >= 0.01)) │дена цена с кодом C_PFS,│ │
│ │ │OR │указанным в рецепте; │ │
│ │ │((PCLS.MSG_TEXT NOT LIKE '%ЦЕНА УКАЗАНА ЗА%') │- превышение предельной │ │
│ │ │AND │цены отпуска на 0,01 │ │
│ │ │(L.SL_ALL - ROUND(PCLS.PR_REG_LIM * L.KO_ALL, │руб. │ │
│ │ │2)) > 0.01)) │Более подробно алгоритм │ │
│ │ │OR PCLS.PR_REG_LIM IS NULL │расчета суммы превышения│ │
│ │ │ │приведен в описании │ │
│ │ │ │алгоритма Расчет цены │ │
│ │ │ │превышения (код 02.08). │ │
│ │ │ │Входные данные: реестр │ │
│ │ │ │рецептов (файл записей │ │
│ │ │ │типа "Л"), файл типа │ │
│ │ │ │"ПЦЛС". │ │
│ │ │ │Выходные данные: пере- │ │
│ │ │ │чень рецептов реестра, │ │
│ │ │ │содержащих ошибку │ │
├─────┼──────────────┼────────────────────────────────────────────────┼────────────────────────┼──────┤
│02.08│Расчет цены │SELECT L.*, │Расчет суммы отказа для │ │
│ │превышения │CASE │рецептов с превышением │ │
│ │ │WHEN PCLS.PR_REG_LIM IS
NULL THEN L.SL_ALL │предельной цены. │ │
│ │ │WHEN (PCLS.MSG_TEXT LIKE
'%ЦЕНА УКАЗАНА ЗА%') │Для заданного в рецепте │ │
│ │ │AND │C_PFS берется цена из │ │
│ │ │(L.SL_ALL > ROUND(ROUND(PCLS.PR_REG_LIM * │справочника зарегистри- │ │
│ │ │L.DOZ_LS, 2) * L.KO_ALL, 2)) │рованных предельных цен │ │
│ │ │THEN L.SL_ALL -
ROUND(ROUND(PCLS.PR_REG_LIM * │(PR_REG_LIM)
для данного│ │
│ │ │L.DOZ_LS, 2) * L.KO_ALL, 2) │региона. │ │
│ │ │WHEN (PCLS.MSG_TEXT NOT
LIKE '%ЦЕНА УКАЗАНА
│Если
PR_REG_LIM не │ │
│ │ │ЗA%') AND │найдена, то
│ │
│ │ │(L.SL_ALL >
ROUND(PCLS.PR_REG_LIM * L.KO_ALL, │СуммаПревышения = │ │
│ │ │2)) THEN L.SL_ALL -
ROUND(PCLS.PR_REG_LIM * │SL_ALL,
в противном
│ │
│ │ │L.KO_ALL, 2) │случае: ПредельнаяЦена =│ │
│ │ │ELSE 0 │PR_RE_LIM Если для цены │ │
│ │ │END AS [СУММАПРЕВЫШЕНИЯ] │в справочнике цен указа-│ │
│ │ │FROM L │но примечание - 'Цена │ │
│ │ │LEFT OUTER JOIN PCLS │указана за 1 ME' или │
│
│ │ │ON L.C_PFS =
PCLS.C_PFS │'Цена указана за 1 │ │
│ │ │ │грамм', то полученная │ │
│ │ │ │предельная Цена │ │
│ │ │ │вычисляется так: │ │
│ │ │ │ПредельнаяЦена = │ │
│ │ │ │ОкруглитьДоКопеек │ │
│ │ │ │Значение (PR_REG_LIM * │ │
│ │ │ │DOZ_ME │ │
│ │ │ │(УказаннаяВРецептеДози- │ │
│ │ │ │ровка)) │ │
│ │ │ │Тогда │ │
│ │ │ │Если SL_ALL > │ │
│ │ │ │ОкруглитьДоКопеек │ │
│ │ │ │(ПредельнаяЦена*КО_АLL) │ │
│ │ │ │Считаем │ │
│ │ │ │СуммаПревышения = SL_ALL│ │
│ │ │ │- ОкруглитьДоКопеек │ │
│ │ │ │(ПредельнаяЦена*КолВо) │ │
│ │ │ │В противном случае │ │
│ │ │ │СуммаПревышения = 0. │ │
│ │ │ │Входные данные: реестр │ │
│ │ │ │рецептов (файл записей │ │
│ │ │ │типа "Л"), файл типа │ │
│ │ │ │"ПЦЛС". │ │
│ │ │ │Выходные данные: реестр │ │
│ │ │ │рецептов с дополнитель- │ │
│ │ │ │ной колонкой │ │
│ │ │ │"СуммаПревышения" и про-│ │
│ │ │ │считанными для каждого │ │
│ │ │ │рецепта значениями │ │
└─────┴──────────────┴────────────────────────────────────────────────┴────────────────────────┴──────┘
4. Коды ошибок
Выявленным в ходе проведения экспертиз
ошибкам присвоены соответствующие формальные коды. Перечень ошибок, выявляемых
в ходе автоматизированной экспертизы реестров рецептов, приведен в таблице 3.
Таблица 3
|
Наименование
ошибки |
Код |
Код ошибки
по |
|
"Предоставление
ЛС лицам, не включен- |
П |
П |
|
Пациент не имеет
права на ГСП |
П01 |
П01 |
|
У пациента нет
льготы на дату выписки |
П03 |
П03 |
|
СНИЛС пациента в
обслуженном рецепте |
П05 |
- |
|
"Предоставление
ЛС, не входящих в |
Л |
Л |
|
Отпущенное ЛС не
входит в Перечень ЛС |
Л05 |
Л01 |
|
В рецепте указан
некорректный код |
Л06 |
|
|
"Дублирование
рецептов" |
|
|
|
Проверка дублей
внутри реестра |
Л04 |
Л04 |
|
Рецепт уже
оплачен |
Л03 |
Л03 |
|
"Предоставление
ЛС по рецептам, офор- |
Р |
Р |
|
Номер рецепта не
корректен |
Р06 |
Р02 |
|
Серия рецепта не
корректна |
Р07 |
|
|
Код диагноза
отсутствует в |
Р08 |
- |
|
Код ЛПУ
отсутствует в справочнике |
Р04 |
Р04 |
|
Врач/фельдшер
отсутствует в регистре |
Р03 |
Р03 |
|
Рецепт не найден
в реестре выписанных |
Р09 |
- |
|
Просроченный
рецепт |
Р10 |
- |
|
МНН отпущенного
ЛС не соответствует |
Р05 |
Р05 |
|
Код ЛПУ в
обслуженном рецепте не со- |
Р11 |
- |
|
Дата выписки в
обслуженном рецепте не |
Р12 |
- |
|
На дату выписки
рецепта врач был |
Р13 |
- |
|
Ошибки по
результатам экспертизы |
Э |
|
|
Код диагноза не
соответствует |
Э01 |
- |
|
"Превышение
цены ЛС" |
|
|
|
Превышена цена
отпущенного ЛС |
Л02 |
Л02 |
5. Жизненный цикл
рецепта ДЛО
Зона ответственности
Контрольные данные
Лечебно-профилактическое учреждение __ __ __ __ __ __
__ __ __ __ __ __ __ __ __ __ __ __
┌─┐
┌─────────────────┐ ┌──────────────┐ Рецептурные
│1│
│Реестр выписанных│
│ Выписка │ данные
└┬┘ ┌─┤ реестров
│<───┤ │ Дата выписки
│ │ └─────────────────┘ └─────┬────────┘
│ │ \/ ┌─────────────────┐
┌┴┐ │ ┌──────────────┐ │Реестр
выписанных│
│1│ │ │ Выбор аптеки │ │ рецептов
│
└─┘ │ └─┬────────────┘ └─────────────────┘
Аптечное учреждение _ __ __ __ │_ __ __/\__ __ __
__ __ __ __ __ __ __ __ __ __ __ __ __
┌─┐ │ \/ │
│2│ │ ┌─────────┴────┐ ┌──────────────────┐
└┬┘ │ │Предъявление к├─>│Прием
на отсрочен-│ Дата предъявления
│ │ │ обслуживанию │ │ное обслуживание │
│ │ └──────┬───────┘ └─────────┬────────┘
│ │ \/ \/
│ │ ┌──────────────┐ ┌──────────────────┐
│ │ │ Обслуживание │<─┤ Отсроченное │
Дата помещения
│ │ │ │ │
обслуживание │ на обслуживание
│ │ └──────┬───────┘ └────────┬─────────┘
│ │ ┌─────────────────┐ \/ \/
│ │ │Реестр отпущенных│ ┌───────────────┐ ┌──────────────────┐
│ │ │ лекарственных
│<──┤Отпуск лекарст-│ │ Реестр отложенных├───┐ Дата отпуска
│ │ │ средств
│ │венных средств │ │
рецептов │ │
Сумма
│ │ └────────┬────────┘ └───────┬───────┘ └──────────────────┘ │
Торговое
│ │ │ │ │ наименование
┌┴┐ │ │ │ ┌────┴─────────────────┐
│2│ │ │ │ │Реестр
отпущенных ЛС и│
└─┘ │ │ │ │ отложенных
рецептов │
│ │ │ └────┬─────────────────┘
Фармдистрибьютер __ __ __ __ __ __ _│_ __ __ __
__ __ __ __ __ __ __ _│_ __ __ __ __ __ _
┌─┐ │ │ │ │
│3│ │ │ │ │
└┬┘ │ │ \/ │
│ │ │ ┌─────────────────┐ │
│ │ │ │Обработка, форми-│ │
│ │ │ │рование реестра и│<───────────┐ │
│ │ │ │счета │ │ │
│ │ │ └───────┬─────────┘ │ │
│ │ │ \/ │ │
│ │ │ ┌─────────────────┐ │ │ Дата и номер счета
│ │ │ │ Предъявление к │ │ │ Сумма
┌┴┐ │ │ │ оплате
│ │ ┌────┴─────────────────┐
│3│ │ │ └───────┬─────────┘ │ │Реестр отпущенных ЛС, │
└─┘ │ │ │ │ │предъявленных к оплате│
│ │ │ │ └────┬─────────────────┘
Территориальный фонд ОМС __ __ __ _│_ __ __ __ __
__ __ __│__ __ __ __│__ __ __ __ __ __ _
│ │ │ │ │
┌─┐ │ │ \/ │ │
│4│ │ │ ┌─────────────────┐ ┌─────────┴──────┐ │
Дата экспертизы
└┬┘ │ │ │Реестр отпущенных│ │
Дефектная │ │
Код дефекта
│ │ │ │
лекарственных │ │
ведомость │ │ Сумма
│ │ │ │ средств
│ │ │ │
│ │ │ └───────┬─────────┘ └────────────────┘ │
│ │ │ \/ /\ │
│ │ │ ┌─────────────────┐ ┌─────────┴──────────┐│
│ │ └──────────>│ ├─>│Реестр
рецептов, не ││
│ │ │ Экспертиза
│ │прошедших
экспертизу││
│ └─────────────────────>│ │ └────────────────────┘│
│ │ │<───────────────────────┘ Дата экспертизы
│ └───────┬─────────┘ Код дефекта
│ \/
Сумма
│ ┌─────────────────┐
│ │Реестр
рецептов, │
│ │прошедших
экспер-│
│ │тизу │
│ └───────┬─────────┘
│ \/
│ ┌─────────────────┐ Дата и номер
│ │ Оплата
│
платежного
│ └─────────────────┘ поручения
│
Сумма
│
┌──────────────────────────┐
┌┴┐
│Реестр оплаченных рецептов│
│4│
│ Реестр отказов в оплате │
└─┘
└──────────────────────────┘
__ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
__ __ __ __ __ __ __ __ __ __ __ __ _
6. Применение кодов
ошибок при проведении
автоматизированной экспертизы
6.1. Перечень ошибок, при которых
устанавливается отказ от оплаты (для ошибки Л02 - частичный отказ):
|
Наименование
ошибки |
Код ошибки |
|
"Предоставление
ЛС лицам, не включенным в Регистр"
|
П |
|
Пациент не имеет
право на ГСП (отсутствует в |
П01 |
|
У пациента нет
льготы на дату выписки рецепта |
П03 |
|
"Предоставление
ЛС, не входящих в Перечень ЛС"
|
Л |
|
Отпущенное ЛС не
входит в перечень ЛС на дату отпуска |
Л05 |
|
В рецепте указан
некорректный код позиции перечня |
Л06 |
|
"Дублирование
рецептов"
|
|
|
Проверка дублей
внутри реестра |
Л04 |
|
Рецепт уже
оплачен
|
Л03 |
|
"Превышение
цены ЛС"
|
|
|
Превышена цена
отпущенного ЛС |
Л02 |
|
На дату выписки
рецепта врач был исключен из регистра |
Р13 |
Дополнительные требования по применению
ошибок с кодами Л05, Л06. В связи с тем, что в файлах справочника ЛС,
действующего на настоящий момент, имеются записи, по которым дата исключения из
Перечня ЛС (PLS.DATE_E, Файл записей типа "ПЛС" "Перечень
лекарственных средств"), меньше даты действия зарегистрированной цены ЛС
(CLS.DATE_EP, "Файл записей типа "ЦЛС" - Справочник
зарегистрированных цен ЛС"), алгоритм 02.03 с кодом ошибки Л05 не
применяется. В указанном случае может применяться только алгоритм 02.04 с кодом
ошибки Л06, который использует таблицу CLS.
Дополнительные требования по применению
ошибки с кодом Л03. В случае отпуска по одному рецепту нескольких упаковок
(единиц отпуска) лекарств, имеющих разные номенклатурные коды или разную
стоимость упаковки, формируется несколько записей по одному рецепту с
одинаковыми значениями поля SN_LR - по одной на каждый номенклатурный код или
разную стоимость упаковки - с соответствующими значениями поля SL_ALL. Алгоритм
02.02 ошибки Л03 указан для случая полной оплаты или отказа от оплаты всех
записей по рецепту, т.е. не допускает частичной оплаты отдельных записей по
рецепту и дальнейшего повторного выставления счета по другим записям, не
принятым к оплате. В случае, если ТФОМС применяет частичную оплату по записям с
D_TYPE=1, алгоритм 02.02 необходимо дополнить сравнением C_PFS и SL_ALL в
таблицах PAYL и L.
6.2. Перечень ошибок для применения на
территориях, реализовавших автоматизированные системы формирования и печати
рецепта со штрих-кодом в программных комплексах ЛПУ и обеспечивших наличие всех
выписанных рецептов в реестрах выписанных рецептов, передаваемых в ТФОМС, а
также полное соответствие реквизитов выписанного рецепта реестру:
|
СНИЛС пациента в
обслуженном рецепте не соответствует |
П05 |
|
Рецепт не найден
в реестре выписанных рецептов |
Р09 |
|
МНН отпущенного
ЛС не соответствует указанному в |
Р05 |
|
Код ЛПУ в
обслуженном рецепте не соответствует коду, |
Р11 |
|
Дата выписки в
обслуженном рецепте не соответствует |
Р12 |
В случае разногласий с фармацевтической
организацией по указанным ошибкам для правомерности применения перечисленных
ошибок может потребоваться соответствующее документальное подтверждение от ЛПУ.
6.3. Ошибки, применение которых требует
использования утвержденных в установленном порядке Министерством
здравоохранения и социального развития РФ стандартов лечения и обязательного
использования стандартов в ЛПУ:
|
Ошибки по
результатам экспертизы
|
Э |
|
Код диагноза не
соответствует выписанному ЛС |
Э01 |
введены ФОМС для будущего применения и в
настоящее время не должны использоваться при выставлении отказов по счетам
фармацевтических организаций.
6.4. Прочие ошибки (Р03, Р04, Р06-Р08,
Р10), связанные с предоставлением ЛС по рецептам, оформленным с нарушением
установленного порядка, направляются по результатам экспертизы ТФОМС в
фармацевтическую организацию, которая обеспечивает их исправление и повторное
выставление исправленного счета или его исправленной части в ТФОМС. В алгоритме
01.01 ошибки Р10 для простоты описания длительность месяца принята 30 дней.
Рекомендуется учитывать при проверке длительность месяца, в котором выписан
рецепт.