Паспорт | ЕПГУ | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
Метод (код) | Описание | Шаг ЕПГУ | Описание | Базовый сценарий | ||||||
1 | GetPatientInfo | Предоставление информации о наличии сведений о пациенте в МИС | ValidatePerson | Этап идентификации данных пациента | Пациент, с помощью ЕПГУ, вводит первичные данные для записи и КУ ФЭР отправляет запрос о доступности услуг пациенту в центральную базу РМИС.
В центральной базе РМИС происходит попытка поиска данных о пациенте в системе при помощи получаемых обязательных параметров и идентификатора сессии.
| |||||
1.1 | GetReferralInfo | Предоставление данных о направлении пациента по номеру направления | Referral | Этап выбора направления | ||||||
2 | GetMOInfoExtended | Предоставление списка подразделений МО, в которые пациенту доступна запись к специалистам | MO | Этап получения списка медицинских организаций | КУ ФЭР отправляет запрос о доступных МО и их подразделений по прикреплению пациента в центральную базу РМИС.
Центральная база РМИС по идентификатору сессии определяет пациента.
Далее, в зависимости от настройки организации "ИспользоватьПолучениеПодразделенийВМОПрикрепления" формируется список доступных подразделений:
| |||||
3 | GetServicePostSpecsInfo | Предоставление списка должностей медицинских специалистов, доступных пациенту в выбранном подразделении МО | ServiceOrSpecs | Этап получения списка должностей по медицинской организации | Пациент выбирает необходимое подразделение и КУ ФЭР отправляет запрос в центральную базу РМИС о доступных мед. специальностях.
В центральной базе создаются запросы для извлечения параметров операции SOAP в строковом виде по идентификаторам сессии и подразделения.
Подключение к периферийной базе осуществляется под пользователем, под которым произведено подключение в центральной базе (WEBEMP_FWS_FER, WEBEMP_FWS_FER_OKAS, WEBEMP_FWS_FER_TM). Для успешной авторизации, необходимо чтобы в центральной базе в безопасном хранилище были записаны пароли от этих учетных записей.
| |||||
4 | GetMOResourceInfo | Предоставление сведений о подразделении МО и медицинских специалистах (или кабинетах) | Resource | Этап получения списка медицинских ресурсов по медицинской должности | Пациент выбирает необходимую должность или медицинскую услугу и КУ ФЭР отправляет запрос списка доступных специалистов в центральную базу РМИС.
В центральной базе РМИС в зависимости от выбранного подразделения МО, перенаправляет запрос в периферийную базу МО. Доступные специалисты (или кабинеты) определяются по доступным медицинским рабочим местам. В центральной базе создаются запросы для извлечения параметров операции SOAP в строковом виде по идентификаторам сессии и подразделения.
| |||||
5 | GetScheduleInfo | Получение свободных слотов выбранного медицинского специалиста | ||||||||
Доработка | Bitrix | Agile | ||||||||
Раскрыть | ||||||||||
|
Блок кода |
---|
ШагПриращения_ = Цел(4 * (КоличествоНайденныхСлотовНаДату + 4) / 40);
Если ШагПриращения_ = 0 Тогда
ШагПриращения_ = 1;
КонецЕсли; |
Шаг приращения - это то число, которое определяет с каким шагом нужно выводить слоты.
Например: есть 10 слотов, ШагПриращения = 3. Следовательно, выводится будет каждый 3 слот.
Также формула может быть задана в константе: Формула шага приращения для записи на прием
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 - время, до которого необходимо формировать расписание на день
Центральная база РМИС в зависимости от выбранного подразделения МО, перенаправляет запрос в периферийную базу МО.
- По идентификатору ресурса определяется рабочее место, при отсутствии идентификатора выдается ошибка "Идентификатор не найден"
- Данные сессии получаются из РС ФедеральныеВебСервисыЗаписьНаПриемСессии, в случае ее отсутствия в центральную базу возвращается ошибка выдается сообщение "Сессия не найдена".
- Если рабочие места не найдены, то возвращается исключение NO_DATA_FOUND с сообщением "Данные не найдены"
- Осуществляется получение доступных слотов. Функция принимает на вход необходимые даты и возвращает слоты в общем виде по тегам рабочего места, даты, идентификатора слота, а также кабинет
- Если массив равен нулю, то в центральную базу аналогично возвращается соответствующее сообщение
- В случае если попытка запроса оказалась неудачной, возвращается ошибка INTERNAL_ERROR и выдается сообщение "Внутренняя ошибка системы"
Выходные данные:
- Session_ID - идентификатор сессии
- Schedule - расписание ресурса
- Error - ошибка (NO_DATA_FOUND - по запросу данных не найдено, INTERNAL_ERROR - внутренняя ошибка системы, SESSION_TIMED_OUT - истекло время ожидания в рамках сессии)
Пациент выбирает дату и время приема, КУ ФЭР отправляет запрос на запись пациента к указанному специалисту на выбранные дату и время.
Входные данные:
- Session_ID - идентификатор сессии
- Slot_Id - идентификатор слота
Центральная база РМИС в зависимости от выбранного подразделения МО, перенаправляет запрос в периферийную базу.
- В МИС проверяется актуальность сессии, и в случае ее окончания выводит соответствующие исключения
- Если дата приема меньше чем дата сеанса, то возвращается исключение APPOINT_VISIT_TIME_HAS_PASSED с сообщением "Извините, запись невозможна. Время начала приема уже прошло. Выберите другое время"
- Формируется запись на прием. Функция принимает на вход пациента, организацию, рабочее место, должность, дату записи, ТекстОшибки
Если в процессе формирования возникла ошибка, то исключения INTERNAL_ERROR выдаются в зависимости от причины ошибки.
- В случае, если время занято возвращается исключение APPOINT_TIME_IS_BUSY
- В случае, если пациент уже записан возвращается исключение APPOINT_PATIENT_REGISTERED_SPECIALIST
- В случае, если уже записан на это время в другое место возвращается исключение APPOINT_PATIENT_REGISTERED_OTHER_SPECIALIST
- Если записи выполнена успешно, в ответе возвращаются соответствующие данные со статусом SUCCESS
В центральной базе создаются запросы для извлечения параметров операции 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 - извините, запись невозможна. Пациент уже записан на это время к другому специалисту. Выберите другое время)
В центральной базе создаются запросы для извлечения параметров операции 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 - состояние статуса отмены