Пункт меню «Импорт случаев ОМС» предназначен для загрузки в БД программы файла с данными о случаях ОМС подготовленного в программах других разработчиков, структура файла имеет определенный формат.
Порядок нашего взаимодействия:
§ | Вы работете в своих программных продуктах, соблюдая правила, которые декларирует ТФОМС Волгоградской области в своих Соглашениях и Приказах |
§ | с какой-то степенью периодичности (раз в день, раз в неделю, и т.п.) вы экспортируете свои "набитые" случаи в файлы "_sluch.dbf" и "_sluch_u.dbf", одновременно с этим в этом же каталоге должны присутствовать заполненные справочники "_otd.dbf" и "_lpu.dbf". |
§ | затем в нашей программе в данном режиме импортируете файлы "_sluch.dbf", "_sluch_u.dbf", "_otd.dbf" и "_lpu.dbf" |
§ | если есть необходимость - заносите результат импорта в свою программу (в какую запись попал каждый Ваш случай) - эта процедура может быть полезной для того, чтобы не отсылать нам повторно уже отосланные случаи |
Алгоритм импорта:
§ | анализ корректности структуры файлов |
o | если некорректная структура – выход |
o | в своём справочнике учреждений программа ищет учреждение с кодом "KOD" |
o | если находит - перезаписывается поле "NAME" |
o | если не находит - добавляется запись в справочник учреждений |
o | проверяется, есть ли в "_lpu.dbf" запись _lpu->kod == _otd->kod_lpu |
· | если нет - выводится ошибка |
o | в своём справочнике отделений программа ищет отделение с кодом "KOD" |
· | если находит - перезаписывается поле "NAME" и поле "KOD_LPU" |
· | если не находит - добавляется запись в справочник отделений |
§ | Теперь собственно чтение случаев: |
§ | по полю "KOD" делается связка файлов "_sluch.dbf" и "_sluch_u.dbf" |
§ | цикл по файлу "_sluch.dbf" (пропуская записи с REC_HUMAN > 0) |
o | анализ корректности полноты заполнения случая |
· | если не заполнены обязательные поля - случай не обрабатывается (в протокол выводится "разумное" сообщение) |
o | анализ корректности правильности заполнения - сочетания полей |
· | если некорректное сочетание полей - случай не обрабатывается (в протокол выводится сообщение) |
o | (по файлу "_sluch.dbf") проверяется, есть ли в "_otd.dbf" запись (_sluch->otd = _otd->kod) |
· | если нет - выводится ошибка |
o | (по файлу "_sluch_u.dbf") проверяется, есть ли в "_otd.dbf" запись (_sluch_u->otd = _otd->kod) |
· | если нет - выводится ошибка |
o | проверка, присутствуют ли шифры оказанных услуг в справочнике ТФОМС |
· | если нет - случай не обрабатывается (в протокол выводится сообщение) |
o | проверяется правильность ввода цены услуги по справочнику ТФОМС |
· | если нет - случай не обрабатывается (в протокол выводится сообщение) |
o | анализируется полнота заполнения полей "FIO","FAM","IM","OT" |
· | если не заполнены отдельные поля (фамилия, имя и отчество), - поле "FIO" программа разбивает по пробелам на фамилию, имя и отчество. |
· | если у Вас сложилась ситуация, не вписывающаяся в данное правило (т.е. если в фамилии, имени или отчестве более одного «слова», разделённых пробелом, точкой, дефисом, кавычками или апострофом), то необходимо дополнительно заполнить поля - "FAM","IM","OT" |
o | т.к. в базе данных программы все реквизиты пациентов хранятся в "картотеке", производится поиск пациента в картотеке по ключу "ФИО + дата рождения" |
· | если не найден - в картотеку добавляется новый пациент |
· | если найден - в картотеке перезаписываются остальные реквизиты пациента (пол, адрес, полис, паспорт, СНИЛС, место рождения) |
o | т.к. в базе данных программы все врачи, оказывающие услуги, хранятся в справочнике персонала, производится поиск врача в справочнике персонала по табельному номеру |
· | если не найден - в справочник персонала добавляется новый врач |
· | если найден - в справочнике персонала перезаписываются ФИО и специальность врача |
o | у Вас не запрашивается признак цены "взрослая/детская", т.к. это будет определяться при импорте: |
· | для NOVOR > 0 - цена детская |
· | для NOVOR = 0 - определяется возраст по дате рождения и дате начала лечения, если менее 18 лет - цена детская |
o | добавляется запись в файл случаев ("human.dbf"), код записи записывается в поле "REC_HUMAN": _sluch->REC_HUMAN := human->(recno()) |
o | цикл, пока _sluch->KOD == _sluch_u->KOD |
· | т.к. в базе данных программы все услуги хранятся во внутреннем справочнике услуг, производится поиск услуги в справочнике услуг по шифру (коду ТФОМС) |
- | если не найдена - в справочник услуг добавляется новая услуга |
· | поиск врача в справочнике персонала по табельному номеру |
- | если не найден - в справочник персонала добавляется новый врач |
- | если найден - в справочнике персонала перезаписываются ФИО и специальность врача |
· | добавляется запись в файл оказанных услуг ("human_u.dbf"), код записи записывается в поле "REC_HUMANU": _sluch_u->REC_HUMANU := human_u->(recno()) |
o | конец цикла _sluch->KOD == _sluch_u->KOD |
§ | конец цикла прохода по файлу "_sluch.dbf" |
§ | вывод протокола на экран/печать |
§ | допускается после обработки, если не импортированы некоторые записи, тут же в любом редакторе DBF-файлов внести необходимые исправления, и повторно запустить процедуру импорта (т.к. уже импортированные записи программа будет пропускать) |
Структура файла _sluch.dbf:
§ | "REC_HUMAN","N8" - вы заполняете нулём (=0), а программа после удачного импорта заносит в данное поле номер записи в файле случаев "human.dbf", в которую записан Ваш случай (для обратной связи с Вашей программой, если есть необходимость, и для протокола), если импорт не прошёл - в данном поле останется 0 |
§ | "YOUR_RECNO","N10"- номер записи в Вашей БД (служебное поле для Ваших нужд) |
§ | "KOD","N6" - код для связи с файлом "услуги в случае" ("_sluch_u.dbf"), т.е. для одной записи в файле "_sluch.dbf" может быть несколько записей (услуг) в файле "_sluch_u.dbf" |
§ | "FIO","C50" - фамилия, имя и отчество пациента, разделённые пробелами. (Для новорожденного NOVOR > 0 - ФИО представителя). (Отчество может отсутствовать) |
§ | "FAM","C40" – фамилия пациента / его представителя |
§ | "IM","C40" – имя пациента / его представителя |
§ | "OT","C40" – отчество пациента / его представителя (может отсутствовать) |
§ | "W","N1" - пол пациента (представителя) (1-мужчина,2-женщина) |
§ | "DR","D8" - дата рождения пациента (представителя) |
§ | "VPOLIS","N1" - тип документа, подтверждающего факт страхования по ОМС (1-старый, 2-временный, 3-новый) (по умолчанию 1-старый) |
§ | "SPOLIS","C10" - серия документа, подтверждающего факт страхования по ОМС |
§ | "NPOLIS","C20" - номер документа, подтверждающего факт страхования по ОМС |
§ | "SMO","C5" - реестровый номер СМО (по справочнику F002), если иногородняя СМО не найдена в федеральном реестре, то проставляется “SMO”:=”34 “ |
§ | "SMO_OK" ,"C5" – ОКАТО территории страхования (обязательно к заполнению в случае, если “SMO”=”34 “) |
§ | "SMO_NAM","C100" – наименование иногородней СМО (обязательно к заполнению в случае, если “SMO”=”34 “) |
§ | "DOCTYPE","N2" - тип документа, удостоверяющего личность (по справочнику F011) |
§ | "DOCSER","C10" - серия документа, удостоверяющего личность |
§ | "DOCNUM","C20" - номер документа, удостоверяющего личность |
§ | "MR","C100" - место рождения |
§ | "SNILS","C11" - СНИЛС (без разделителей) (при наличии) |
§ | "OKATOG","C11" - ОКАТО места жительства (регистрации) |
§ | "OKATOP","C11" - ОКАТО места пребывания (если равно OKATOG, можно не заполнять) |
§ | "ADRES" ,"C50" – улица, дом, квартира места жительства (регистрации) |
§ | "ADRESP" ,"C50" - улица, дом, квартира места пребывания |
§ | "OTD","N2" - код отделения, где проводилось лечение |
§ | "PROFIL","N3" - профиль оказанной медицинской помощи (по справочнику V002) |
§ | "NHISTORY","C10" - номер амбулаторной карты (истории болезни) |
§ | "DATE_1","D8" - дата начала лечения |
§ | "DATE_2","D8" - дата окончания лечения |
§ | "DS0","C6" - диагноз первичный |
§ | "DS1","C6" - диагноз основной |
§ | "DS2","C6" - диагноз сопутствующего заболевания |
§ | "NOVOR","N1" - признак новорожденного (0-нет, 1-да) |
§ | "REB_NUMBER","N2" - порядковый номер ребёнка (для NOVOR > 0) |
§ | "REB_DR","D8" - дата рождения ребенка (для NOVOR > 0) |
§ | "REB_POL","N1" - пол ребенка (для NOVOR > 0) (1-муж.,2-жен.) |
§ | "USL_OK","N2" - условия оказания медицинской помощи (по справочнику V006) |
§ | "VIDPOM","N4" - вид помощи (по справочнику V008) |
§ | "IDSP","N2" - код способа оплаты медицинской помощи (по справочнику V010) |
§ | "F_SP","N1" - форма оказания скорой медицинской помощи (1-неотложная, 2 - экстренная), обязательно при оказании скорой медицинской помощи |
§ | "NPR_MO","C6" - код МО, направившего на лечение, присвоенный ТФОМС (по справочнику T001) |
§ | "EXTR","N1" - тип госпитализации (1-плановая,2-экстренная), обязательно при оказании стационарной помощи (по умолчанию =1) |
§ | "RSLT","N3" - результат обращения/госпитализации (по справочнику V009) |
§ | "ISHOD","N3" - исход заболевания (по справочнику V012) |
§ | "VRACH","N5" - табельный номер лечащего врача (врача, закрывшего талон) |
§ | "PRVS","N9" - специальность врача (по справочнику V004) |
§ | "VRACH_FIO","C50" - фамилия, имя и отчество врача |
§ | "SUMV","N10.2" - сумма, выставленная к оплате |
Структура файла _sluch_u.dbf:
§ | "REC_HUMANU","N8" - вы заполняете нулём (=0), а программа после удачного импорта заносит в данное поле номер записи в файле оказанных услуг "human_u.dbf", в которую записана Ваша услуга (для обратной связи с Вашей программой, если есть необходимость, и для протокола), если импорт не прошёл - в поле останется 0 |
§ | "YOUR_RECNO","N10" - номер записи в Вашей БД (служебное поле для Ваших нужд) |
§ | "KOD","N6" - код для связи с файлом "случаи" ("_sluch.dbf"), т.е. для одной записи в файле "_sluch.dbf" может быть несколько записей (услуг) в файле "_sluch_u.dbf" |
§ | "OTD","N2" - код отделения, где оказана услуга |
§ | "PROFIL","N3" - профиль оказанной медицинской помощи (по справочнику V002) |
§ | "CODE_USL","C10" - код услуги (по справочнику ТФОМС T002) |
§ | "DOM","N1" - если врачебный приём на дому (2.3.*, 2.79.*, 2.80.*), то проставляется "1" |
§ | "DATE_IN","D8" - дата начала оказания услуги |
§ | "KOL_USL","N3" - количество оказанных услуг |
§ | "TARIF","N10.2" - тариф/цена одной услуги (взрослая или детская, в зависимости от возраста пациента на дату начала лечения) (по справочнику ТФОМС T003) |
§ | "SUMV_USL","N10.2" - стоимость услуги, выставленная к оплате (равна KOL_USL * TARIF) |
§ | "VRACH","N5" - табельный номер врача, оказавшего услугу |
§ | "PRVS","N9" - специальность врача (по справочнику V004) |
§ | "VRACH_FIO","C50" - фамилия, имя и отчество врача |
§ | "ASSIS","N5" - табельный номер ассистента, оказавшего услугу (необязательное поле) |
§ | "ASSIS_FIO","C50" - фамилия, имя и отчество ассистента (необязательное поле) |
Структура файла _lpu.dbf:
§ | "KOD","N2" - ваш код учреждения (должен быть уникален внутри файла "_lpu.dbf") |
§ | "NAME","C30" - наименование учреждения |
Структура файла _otd.dbf:
§ | "KOD","N2" - ваш код отделения (должен быть уникален внутри файла "_otd.dbf") |
§ | "NAME","C30" - наименование отделения |
§ | "KOD_LPU", "N2" - код учреждения, в котором находится отделение (должен ссылаться на поле "KOD" из файла "_lpu.dbf") |