| Паспорт | ЕПГУ |
|
---|
| Метод (код) | Описание | Шаг | Описание | Базовый сценарий |
---|
1 | GetPatientInfo | Предоставление информации о наличии сведений о пациенте в МИС | ValidatePerson | Этап идентификации данных пациента | Пациент, с помощью ЕПГУ, вводит первичные данные для записи и КУ ФЭР отправляет запрос о доступности услуг пациенту в центральную базу РМИС. Входные данные: - Patient_Data - данные пациента (номер полиса ОМС, серия полиса ОМС, СНИЛС, ФИО, дата рождения, пол)
- Session_ID - идентификатор сессии
- Pass_referral - признак необходимости возврата перечня направлений гражданина
- Patient_Info_Kind - тип запрашиваемой информации о пациенте (ATTACHMENT – сведения о лечащих врачах, D_OBSERVATION – сведения о диспансерном наблюдении, REFERRAL – сведения о направлениях гражданина)
В центральной базе РМИС происходит попытка поиска данных о пациенте в системе при помощи получаемых обязательных параметров и идентификатора сессии. - Если пациент не найден ни в одной из МИС, то возвращается ошибка PATIENT_NOT_FOUND с сообщением "Пациент не найден."
- Если пациент найден, в ответе возвращаются выходные данные о нем
- Если попытка поиска оказалась неудачной, то выдается исключение о внутренней ошибке системы INTERNAL_ERROR
Выходные данные: - Session_ID - идентификатор сессии
- Patient_Id - идентификатор пациента в РМИС
- Error - ошибка (PATIENT_NOT_FOUND - пациент не найден, INTERNAL_ERROR - внутренняя ошибка
|
---|
1.1 | GetReferralInfo | Предоставление данных о направлении пациента по номеру направления | Referral | Этап выбора направления |
|
---|
2 | GetMOInfoExtended | Предоставление списка подразделений МО, в которые пациенту доступна запись к специалистам | MO | Этап получения списка медицинских организаций | КУ ФЭР отправляет запрос о доступных МО и их подразделений по прикреплению пациента в центральную базу РМИС. Входные данные: - Session_ID - идентификатор сессии
- Patient_Id - идентификатор пациента в РМИС
- Service_Posts - список должностей
- Booking_Type - тип планирования (один из {APPOINTMENT, DISPENSARY(ADVANCED), VACCINATION(COVID)}
Центральная база РМИС по идентификатору сессии определяет пациента. - При помощи идентификатора и РС ФедеральныеВебСервисыЗаписьНаПриемСессии запрашиваются данные о сессии по ее идентификатору, если сессия истекла в ответе возвращается ошибка SESSION_TIMED_OUT с сообщением "Истекло время ожидания в рамках сессии"
- По указанным должностным кодам составляется список всех должностей
- Если переданы должности и включена настройка "ИспользоватьПолучениеПодразделенийВМОПрикрепления", то центральная база обращается к подразделениям с фильтрацией по должностям, иначе отбор по должностям действовать не будет - поиск будет происходить по всем должностям
Далее, в зависимости от настройки организации "ИспользоватьПолучениеПодразделенийВМОПрикрепления" формируется список доступных подразделений (см.Примечание в п6. тмб_ПолучитьДоступныеЛПУРабочиеМестаСпециальности): Если значение настройки = Нет, то список формируется в центральной базе (справочник "тмб_ОрганизацииУзлаОбменаСМИС"). Если передан список должностей, то производится сопоставление по табличной части «Должности подразделения» справочника «Организации узла обмена с МИС. Если для подразделения не указаны должности, то отбор по должности на подразделение не действует, т.е. выводится всегда. Если был передан параметр "Booking_Type", то дополнительно осуществляется подбор по меткам "Appointment, Dispensary, Vaccination" справочника "тмб_ОрганизацииУзлаОбменаСМИС" Если значение настройки = Да и был передан список должностей, то запрос перенаправляется в МИСы прикреплений. В МИСе происходит поиск подразделений, в которых есть доступные слоты. Полученный список передается обратно в центр, где формируется общий ответ для КУ ФЭР. Отбор по должностям осуществляет по указанной должности врача (справочник "Сотрудники") Если в служебной переменной количество доступных подразделение равно нулю, выводится ошибка NO_DATA_FOUND с сообщением "По запросу данных не найдено" В случае если в МИС пациент не был найден, выдается исключение NO_DATA_FOUND с сообщением "По запросу данных не найдено" При помощи функции тмб_ПолучитьДоступныеЛПУРабочиеМестаСпециальности общего модуля тмб_СервисЗаписьНаПрием отбираются по должностям и возвращаются только те подразделения, в которых присутствуют свободные слоты Если подразделений не найдено, то также возвращается исключение NO_DATA_FOUND В случае если попытка запроса оказалась неудачной, выдается исключение с ошибкой INTERNAL_ERROR и сообщением "Внутренняя ошибка системы"
Выходные данные: - Session_ID - идентификатор сессии NO_DATA_FOUND
- MO_List - список МО
- Error - ошибка (NO_DATA_FOUND - по запросу данных не найдено, INTERNAL_ERROR - внутренняя ошибка системы, SESSION_TIMED_OUT - истекло время ожидания в рамках сессии)
|
---|
3 | GetServicePostSpecsInfo | Предоставление списка должностей медицинских специалистов, доступных пациенту в выбранном подразделении МО | ServiceOrSpecs | Этап получения списка должностей по медицинской организации | Пациент выбирает необходимое подразделение и КУ ФЭР отправляет запрос в центральную базу РМИС о доступных мед. специальностях. Входные данные: - Session_ID - идентификатор сессии
- MO_Id - идентификатор подразделения МО
В центральной базе создаются запросы для извлечения параметров операции SOAP в строковом виде по идентификаторам сессии и подразделения. - Центральная база РМИС, в зависимости от выбранного подразделения МО, перенаправляет запрос в периферийную базу.
- Если узел обмена с МИС не был найден, то выдается ошибка NO_DATA_FOUND с сообщением "По запросу данных не найдено". Получаются данные сессии из РС ФедеральныеВебСервисыЗаписьНаПриемСессии по идентификатору
- Если сессия не найдена, то выдается ошибка SESSION_TIMED_OUT с сообщением "Сессия не найдена"
- Запрос перенаправляется в МИС, проверяется подразделение по указанному УИД, если оно не найдено возвращается ошибка по запросу данных
- Если пациент или соглашение из РС ПолисыСтрахованияПациентов не были найдены, выдается ошибка NO_DATA_FOUND с сообщением "По запросу данных не найдено"
- Отбираются рабочие места и специальности
- Отбираются и заполняются специальности в зависимости от прикрепления, если таблица оказалась пустой, выводится соответствующая ошибка, иначе заполнение из выходных данных
- В случае если попытка запроса оказалась неудачной, выдается исключение с ошибкой INTERNAL_ERROR и сообщением "Внутренняя ошибка системы"
Подключение к периферийной базе осуществляется под пользователем, под которым произведено подключение в центральной базе (WEBEMP_FWS_FER, WEBEMP_FWS_FER_OKAS, WEBEMP_FWS_FER_TM). Для успешной авторизации, необходимо чтобы в центральной базе в безопасном хранилище были записаны пароли от этих учетных записей. Выходные данные: - Session_ID - идентификатор сессии
- Service_Post_Specs - список должностей (специальностей) и медицинских услуг
- Error - ошибка (NO_DATA_FOUND - по запросу данных не найдено, INTERNAL_ERROR - внутренняя ошибка системы, SESSION_TIMED_OUT - истекло время ожидания в рамках сессии)
|
---|
4 | GetMOResourceInfo | Предоставление сведений о подразделении МО и медицинских специалистах (или кабинетах) | Resource | Этап получения списка медицинских ресурсов по медицинской должности | Пациент выбирает необходимую должность или медицинскую услугу и КУ ФЭР отправляет запрос списка доступных специалистов в центральную базу РМИС. Входные данные: - Session_ID - идентификатор сессии
- Service_Posts - информация о должности и услуге
- MO_OID_List - перечень МО/СП МО
- Start_Date_Range - дата начала периода предоставления информации о наличии/отсутствии свободных слотов
- End_Date_Range - дата окончания периода предоставления информации о наличии/отсутствии свободных слотов
В центральной базе РМИС в зависимости от выбранного подразделения МО, перенаправляет запрос в периферийную базу МО. Доступные специалисты (или кабинеты) определяются по доступным медицинским рабочим местам. В центральной базе создаются запросы для извлечения параметров операции SOAP в строковом виде по идентификаторам сессии и подразделения. - При помощи идентификатора и РС ФедеральныеВебСервисыЗаписьНаПриемСессии запрашиваются данные о сессии по ее идентификатору, если сессия истекла в ответе возвращается ошибка SESSION_TIMED_OUT с сообщением "Сессия не найдена"
- Если OID MO заполнено, то используя Справочники.НаправившаяОрганизация.ПолучитьНаправившуюОрганизациюПоОИД формируется узел обмена с МИС из РС сшпАдресаНаправившихОрганизаций и идентификатор МО.
- Если в данных сессии отсутствует узел обмена, то выдается ошибка NO_DATA_FOUND с сообщением "По запросу данных не найдено"
- Запрос перенаправляется в МИС и получает данные сессии, если сессия ранее не была создана, то функция "GetMOResourceInfo" вызвана сразу после функции "GetPatientInfo", создается сессия по переданным параметрам
- Если по указанным данным не удалось найти организацию или подразделения, то возвращается исключение NO_DATA_FOUND с сообщением "По запросу данных не найдено"
- Если пациент или соглашение не были найдены, то аналогично возвращается NO_DATA_FOUND
- Осуществляется получение доступных рабочих мест. Функция принимает на вход: дата приема, сотрудник, подразделение, адрес подразделения, рабочее место, специальность, НМУ. Полученная таблица сортируется по врачу и рабочему месту по колонкам с удалением всех дубликатов
- Если рабочие места не найдены, то возвращается исключение NO_DATA_FOUND с сообщением "Данные не найдены"
- Осуществляется получение доступных слотов. Функция принимает на вход необходимые даты и возвращает слоты в общем виде по тегам рабочего места, даты, идентификатора слота, а также кабинет
- Если при получении данных ресурса равно нулю, то возвращается исключение NO_DATA_FOUND, иначе заполнение из выходных данных
- В случае если попытка запроса оказалась неудачной, выдается исключение с ошибкой INTERNAL_ERROR и сообщением "Внутренняя ошибка системы"
Выходные данные: - Session_ID - идентификатор сессии
- MO_Resource_List - информация о доступных МО/СП МО и ресурса
- Error - ошибка (NO_DATA_FOUND - по запросу данных не найдено, INTERNAL_ERROR - внутренняя ошибка системы, SESSION_TIMED_OUT - истекло время ожидания в рамках сессии)
|
---|
5 | GetScheduleInfo | Получение свободных слотов выбранного медицинского специалиста | Slot | Этап получения расписания по медицинскому ресурсу | Пациент выбирает специалиста (или кабинет) и КУ ФЭР отправляет запрос расписания приема выбранного специалиста (или кабинета) Входные данные: - Session_ID - идентификатор сессии
- Specialist_SNILS - СНИЛС специалиста
- Room_OID - OID кабинета
- Room_Id - идентифиатор кабинета в МИС
- MO_OID - OID СП МО
- Service_Post - информация о должности и услуге
- Start_Date_Range - дата, с которой необходимо начать формировать расписание
- End_Date_Range - дата, до которой необходимо формировать расписание
- Start_Time_Range - время, с которого необходимо начать формировать расписание на день
- End_Time_Range - время, до которого необходимо формировать расписание на день
Центральная база РМИС в зависимости от выбранного подразделения МО, перенаправляет запрос в периферийную базу МО. - По идентификатору ресурса определяется рабочее место, при отсутствии идентификатора выдается ошибка "Идентификатор не найден"
- Данные сессии получаются из РС ФедеральныеВебСервисыЗаписьНаПриемСессии, в случае ее отсутствия в центральную базу возвращается ошибка выдается сообщение "Сессия не найдена".
- Через функцию тмб_ПолучитьДоступныеРабочиеМеста2 общего модуля ФедеральныеВебСервисыЗаписиНаПрием, полученная таблица сортируется по врачу и рабочему месту по колонкам с удалением дубликатов
- Если рабочие места не найдены, то возвращается исключение NO_DATA_FOUND с сообщением "Данные не найдены"
- Осуществляется получение доступных слотов. Функция принимает на вход необходимые даты и возвращает слоты в общем виде по тегам рабочего места, даты, идентификатора слота, а также кабинет
- Если массив равен нулю, то в центральную базу аналогично возвращается соответствующее сообщение
- В случае если попытка запроса оказалась неудачной, возвращается ошибка INTERNAL_ERROR и выдается сообщение "Внутренняя ошибка системы"
Выходные данные: - Session_ID - идентификатор сессии
- Schedule - расписание ресурса
- Error - ошибка (NO_DATA_FOUND - по запросу данных не найдено, INTERNAL_ERROR - внутренняя ошибка системы, SESSION_TIMED_OUT - истекло время ожидания в рамках сессии)
|
---|
6 | CreateAppointment | Создание записи на приём к медицинскому специалисту с указанием даты и времени приёма | Book | Этап записи на получение услуги | Пациент выбирает дату и время приема, КУ ФЭР отправляет запрос на запись пациента к указанному специалисту на выбранные дату и время. Входные данные: - Session_ID - идентификатор сессии
- Slot_Id - идентификатор слота
Центральная база РМИС в зависимости от выбранного подразделения МО, перенаправляет запрос в периферийную базу. - В МИС проверяется актуальность сессии, и в случае ее окончания выводит соответствующие исключения
- Если дата приема меньше чем дата сеанса, то возвращается исключение APPOINT_VISIT_TIME_HAS_PASSED с сообщением "Извините, запись невозможна. Время начала приема уже прошло. Выберите другое время"
- Если актуальность данных пациента, возвращается исключение INTERNAL_ERROR с сообщением "Сохраненных в сессии данных не достаточно для записи"
- Используя функцию тмб_ВыполнитьЗаписьНаПрием2 общего модуля ФедеральныеВебСервисыЗаписиНаПрием, которая принимает на вход пациента,организацию, рабочее место, должность, дату записи, ТекстОшибки формируется запись на прием
Если в процессе формирования возникла ошибка, то исключения INTERNAL_ERROR выдаются в зависимости от причины ошибки. - В случае, если время занято возвращается исключение APPOINT_TIME_IS_BUSY
- В случае, если пациент уже записан возвращается исключение APPOINT_PATIENT_REGISTERED_SPECIALIST
- В случае, если уже записан на это время в другое место возвращается исключение APPOINT_PATIENT_REGISTERED_OTHER_SPECIALIST
- Если записи выполнена успешно, в ответе возвращаются соответствующие данные со статусом SUCCESS
В центральной базе создаются запросы XPath для извлечения параметров операции SOAP в строковом виде по идентификаторам сессии, записи, слоту, и планируемому времени - РС ФедеральныеВебСервисыЗаписьНаПриемСессии формирует данные сессии, если сессия истекла, возвращается соответствующая ошибка INTERNAL_ERROR с сообщением "Сессия не найдена"
- Если идентификатор записи пустой, значит запись не заполнена, выдается исключение INTERNAL_ERROR
- Запись сохраняется,
- Если заполнен идентификатор направления, тогда запись регистрируется по направлению
- В случае если попытка запроса оказалась неудачной, возвращается ошибка INTERNAL_ERROR и выдается сообщение "Внутренняя ошибка системы"
Выходные данные: - Session_ID - идентификатор сессии
- Book_Id_Mis - идентификатор записи на прием в ИС Поставщика
- Status - информация о статусе записи (SUCCESS - успешное завершение операции, INTERNAL_ERROR - внутренняя ошибка системы, APPOINT_TIME_IS_BUSY - извините, запись невозможна. Время уже занято другим пациентом. Выберите другое время, APPOINT_PATIENT_REGISTERED_SPECIALIST - извините, запись невозможна. Пациент уже записан к врачу <ФИО врача> в кабинет <название кабинета> на услугу <название услуги> в этот день: <дата записи в формате дд.мм.гггг чч:мм>. Полную информацию об этой записи Вы можете посмотреть в Личном кабинете, APPOINT_PATIENT_REGISTERED_OTHER_SPECIALIST - извините, запись невозможна. Пациент уже записан на это время к другому специалисту. Выберите другое время)
|
---|
| ReferralAppointmentInformation | Передача сведений о регистрации записи на прием к врачу по направлению |
|
|
|
---|
| CancelAppointment | Отмена ранее созданной Пользователем записи на прием к врачу |
|
| В центральной базе создаются запросы для извлечения параметров операции SOAP в строковом виде по идентификаторам записи - Если не заполнен идентификатор записи, то выдается ошибка INTERNAL_ERROR с сообщением "Не заполнен тег <Book_Id_Mis>."
- Если значение узла обмена не заполнено, выдается ошибка INTERNAL_ERROR с сообщением "Не найдена МИС, в которой была произведена запись на прием."
- Запрос передается в подразделение и если услуга уже была оказана, то отменить ее не получится, возврат ошибки с сообщением "Услуга уже оказана.", иначе с помощью ФедеральныеВебСервисыЗаписьНаПрием происходит отмена услуги, в том числе если она была по направлению
- В случае если попытка запроса оказалась неудачной, возвращается ошибка INTERNAL_ERROR и выдается сообщение "Внутренняя ошибка системы"
Входные данные: - Book_Id_Mis - идентификатор записи на прием в ИС Поставщика
- Canceled_Reason - причина отмены записи (CANCELED_BY_PATIENT — отмена записи Пользователем, ERROR_DATA_MIS – отмена записи в связи с некорректно переданной информацией в ответе от ИС Поставщика, RECORD_NOT_CREATED_AT_EPGU — запись не создана в ИС Пользователя (ошибка создания записи), DATA_TRANSFER_ERROR_AT_EPGU — ошибка передачи данных о записи на ЕПГУ), Error_Data_Parameters - наименование параметров при записи, в которых обнаружены ошибки ИС Поставщика
Выходные данные: - Book_Id_Mis - идентификатор записи на прием в ИС Поставщика
- Status_Code - код статуса отмены (SUCCESS - успешное завершение операции, INTERNAL_ERROR - внутренняя ошибка системы, RECORD_CANNOT_CANCELED - запись на прием не может быть отменена, RECORD_NOT_FOUND - запись не найдена в ИС)
- Comment - состояние статуса отмены
|
---|
|
|
|
|
|
|
---|