Это список валидаций при отмене. Полные правила и валидации, которые касаются например Типов приема, находятся на странице Правила и валидации записи на прием.
Название | Правило валидации | Код настройки | Комментарий |
---|---|---|---|
Проверка актуальности записи на приём | Запрещено отменять запись на приём, если время приёма уже прошло | DeleteOldTime | |
Проверка статуса записи на приём | Запрещено отменять запись на приём, если прием уже был выполнен | DeleteVisitStatus | |
Проверка принадлежности записи к другим мероприятиям | Запрещено отменять запись на приём, связанную с вызовом на дом с обязательным мероприятием диспансеризации(только если не указать гуид мероприятия при отмене) или мероприятием иного типа | ActionSchedule |
Отмена записи на прием, привязанной к направлению на исследование
Данный алгоритм будет реализован в задаче API-840 - Получение подробных данных проблемы... СТАТУС
Удаление записи на прием, привязанной к направлению на исследование, выполняется по следующему алгоритму:
Выполняется проверка наличия заключения по исследованию по следующему запросу:
select case when (Select COUNT(*) from lbr_Research WHERE rf_LaboratoryResearchGUID=@0 and isComplete=1) > 0 --если есть записи со статусом завершенная then 1 else 0 end
- Если было найдено заключение, то отмена записи прерывается и клиенту отдается сообщение об ошибке "Имеется заключение по исследованию. Отмена записи невозможна". Если нет, переход к шагу 3;
- Удаляется связанная с текущей записью на прием (hlt_DoctorVisitTable) запись в таблице hlt_ActionSchedule;
В таблице lbr_LaboratoryResearch обновляется поле Flag: проставляется флаг 256 (отмена посещения) и убирается флаг 32 (признак отправки в ЕРИС):
UPDATE hlt_LaboratoryResearch SET Flag=(Flag | 256) &~ 32 WHERE GUID=@0
- Удаляется запись в таблице hlt_DoctorVisitTable
Отмена записи на прием, привязанной к мероприятию(ям) диспансеризации
- Получение списка связанных мероприятий диспансеризации
- Проверка на наличие среди привязанных мероприятий основных (hlt_disp_Service.IsMain=1). Если такие мероприятия имеются то будет выдана ошибка и запись отменена не будет, в противном случае переход к пункту 3.
- Выполняется удаление записей из hlt_ActionSchedule и обнуление ссылки hlt_disp_Exam.rf_DvtGuid
- Удаляется запись hlt_DoctorTimeTable
Если параметр examGuid передан, то будет выполнена отмена записи (удаление hlt_DoctorVisitTable), удаление связанных hlt_ActionSchedule и обнуление ссылок lt_disp_Exam.rf_DvtGuid не зависимо от типа мероприятия диспансеризации.