Описание структурных единиц информации входных сообщений
Наименование единиц информации | Обозначение | Идентификатор | Длина в знаках | Диапазон изменения |
Код региона | REGION | М010102 | 9(3) | 1-999 |
Код главного ЛПУ | GLAV | М010102 | А(5) | - |
ЛПУ символы | LPU | М010102 | A(5) | - |
ЛПУ числа | LPU_N | М010102 | A(5) | - |
Путь рассылки | PATH | М010102 | A(30) | - |
Номер ЛПУ | NLPU | М010102 | 9(3) | 1-999 |
Код района | RAI | М010102 | 9(3) | 1-999 |
Категория населения | KATEGOR | М010102 | 9(1) | 1-9 |
Расшифровка | FULL | М010102 | A(10) | - |
Наименование | NAIM | М010102 | A(25) | - |
Код услуги | KODUSL | М010102 | A(4) | - |
Тариф старый | TARIF | М010102 | 9(7),2 | - |
Тариф новый | TARIF_N | М010102 | 9(7),2 | - |
Дата смены тарифа | DATE | М010102 | 9(8) | - |
Тип договора | GOG_YN | М010102 | 9(1) | 1-9 |
Профиль отделения | PROFIL | М010102 | A(2) | - |
Уровень качества лечения | UKL | М010102 | 9(4),2 | - |
Вид оплаты | IV | М010102 | 9(4) | - |
Признак страхования | PR_STR | М010102 | 9(1) | 1-2 |
Вид графика | GRAFIK | М010102 | A(5) | - |
Код диагноза | KOD | М010102 | A(8) | - |
Код отказа | NEC | М010102 | 9(2) | 1-99 |
Территория страхования | TERR_STR | М010102 | 9(4) | - |
2.2.4 Описание алгоритма решения задачи
Данная задача решается с помощью прикладной программы. Общая технология обработки информации в ней представлена на рис.4:
Рисунок 4. Технология обработки информации
Все каталоги, с которыми работает программа настраиваются в самой программой. Входными файлами для задачи являются архивы счетов ЛПУ, которые имеют вид Ln???.ARJ, где n=1,2,4. (1-стационар, 2 – поликлиника, 4- стоматология). ??? – код ЛПУ.
Архив счета стационара должен содержать файлы вида L1???.DBF,I1???.DBF,O1???.DBF, где ??? – код ЛПУ. База L1???.DBF содержит основную информацию о пролеченных в стационаре, I1???.DBF содержит дополнительную информацию о гражданах, застрахованных в других регионах, но пролеченных в ЛПУ Ивановской области, а файл O1???.DBF включает в себя дополнительную информацию о проведенных операциях.
Архив счета поликлиники должен содержать файлы вида L2???.DBF,I2???.DBF,L2???_US.DBF, архив счета стоматологии должен содержать файлы вида L4???.DBF,I4???.DBF,L4???_US.DBF,
При входном контроле может быть сформирован текстовый файл вида P?nnn.TXT, содержащий ошибки по полисам контролируемого счета. Текстовый файл помещается в M:\AIO=SCHT\OUT вместе с конвертом для рассылки.
После входного контроля программой DecodSch может быть дополнительно создана БД отбракованных записей счета в виде B?nnn.DBF, где ? = ( 1 - стационар, 2 – поликлиника, 4 – стоматология), nnn – код ЛПУ.
Причем БД после входного контроля уже подготовлены для переноса на ORACLE, поэтому не желательно их просматривать с помощью FOXPRO или программ, написанных на нем, т.к. FOXPRO нередко изменяет кодовую страницу открытых БД. В этом случае при переносе могут быть проблемы с русскими буквами в символьных строках ('асмимти' - ‘######’). Далее осуществляется перенос информации на ORACLE. Для этого информация переписывается в алиас TOORA(D:\DATA\TOORA) в соответствующие БД, но информация хранится уже не в DOS, а в WINDOWS-кодировке и затем переносится на ORACLE-сервер. При завершении переноса формируется файл вида M?nnnsss.LPU, где ? =( 1 - стационар, 2 – поликлиника, 4 – стоматология), nnn – код ЛПУ, sss – номер счета.
Он содержит информацию о результатах автоматической проверки счета. В случае получения повторного счета также формируется аналогичный файл с сообщением «Повторный сводный счет – ОТКЛОНЕН !!!» . Пустые счета просто удаляются из обработки.
Теперь подробнее о контроле счетов «Поликлиника» (аналогично работают алгоритмы для счетов «Стоматология» и «Стационар)».
Алгоритм работы программы:
Осуществляется проверка наличия файлов (MAIN.PAS, процедура actFindFilesExecute).
Подготовка таблиц. Проверяется структура БД на наличие требуемых полей, которые были добавлены в БД относительно недавно. В случае их отсутствия требуемые поля добавляются в БД автоматически. Иногородние больные переписываются в основную БД. БД индексируется.
Проверка сводного счета по коду ЛПУ, дате счета и номеру счета. Если представлен повторный сводный счет, то формируется текстовый файл по результатам автоматической проверки с сообщением «Повторный сводный счет - ОТКЛОНЕН !!!» (MAIN.PAS, процедура actSvodSchetExecute)
Проверки в соответствии с письмом № 07-2194 от 06.09.2000 года (для выполнения приказа № 70 ФФОМС о взаиморасчетах между территориями) (MyFunc.PAS,процедура New_cntrl_amb) если в поле «Категория» стоит «Работающий», то поле «Место работы» должно быть обязательно заполнено.
Обязательно должна быть введена информация либо о полисе пациента, либо его паспортные данные.
Если нет информации о полисе пациента, то должно быть заполнено поле «Особый случай»
Если в поле «Особый случай» заполнено «Медпомощь новорожденному» или «Документ родителя», то обязательно должны быть заполнены поля «Фамилия», «Имя», «Отчество» родителя или опекуна
Если в поле «Особый случай» заполнено «В документе отсутствует отчество», то поле «Отчество» должно быть пустым для отделенческой больницы все записи о пролеченных больных-жителей Ивановской области отправляются в некорректные
Проверка на соответствие поводов посещения и услуг в соответствии с письмом от 30.11.1998 года. (MAIN.PAS, процедура ActAmbCtrlUslExecute)
Проверка иногородних пациентов не является ли они иностранцами (их мы не оплачиваем). (MyFunc.PAS, процедура Del_States)
Контроль по срокам представления счетов к оплате. В представленном счете дата последней услуги, оказанной пациенту должна быть не позднее 3-х месяцев от даты формирования счета. Также в счете не должно быть услуг с датой услуги, относящейся к будущим плановым периодам (MyFunc.PAS, процедура Date_cntrl_amb).
Не должно быть записей-дубликатов в основном файле представленного счета . (MAIN.PAS, процедура ActAmbDoubleStrExecute)
Проверка заполнения требуемых полей. В основной базе обязательно должны быть заполнены поля «Фамилия», «Дата рождения», «Категория», «Повод посещения» «Основной диагноз», «Случай», «Стоимость». В БД иногородних обязательно должны быть заполнены те же поля, что и в основной БД, а также информация о полисе пациента или его паспортные данные. (MAIN.PAS, процедура ActAmbReqFieldsExecute)
Проверка кода основного диагноза по МКБ, а также проверка на правильность сочетания основного диагноза и повода посещения . Кроме того не оплачиваются пациенты старше 18 лет с некоторыми диагнозами (см. записку отдела КТиСМП от 19.10.2000 года) (MAIN.PAS, процедура actFindDiagORAExecute).
Проверка посещений. Не должно быть случаев преставления счетов на два посещения к одному врачу пациента в тот же день. Внутри одного талона не должно быть дубликатных услуг (MAIN.PAS, процедура actAmbOneToOneExecute).
Проверка наличия полиса пациента в областной БД полисов и совпадение фамилии, имени, отчества и даты рождения пациента и тех же сведений в областной базе. Кроме того проверяется наличие полиса у пациентов, предъявивших только паспорт и делается соответствующая отметка в БД для отдела ОМС. (MAIN.PAS, процедура ActFindPolisIBExecute)
Сравнение с архивом. Для данного ЛПУ проверяется по номеру талона, фамилии, имени и отчеству пациента наличие информации в архиве ранее предъявленных счетов к оплате. Кроме того, не должно быть двух посещений к одному врачу в тот же день в текущем счете и в архиве.(MAIN.PAS, процедура actAmbCompArcORAExecute)
Проверка стоимости оказанных медицинских услуг. (MyFunc.PAS, процедура AMB_Stoim)
Для наглядности алгоритм работы программы представлена следующей блок-схемой (рисунок 5).
Проверка заполнения требуемых полей |
Проверка кода диагноза и его сочетания со способом посещения |
Проверка посещений |
Проверка полиса пациента по областной БД |
Обеспечение целостности данных |