Это список валидаций при отмене. Полные правила и валидации, которые касаются например Типов приема, находятся на странице Правила и валидации записи на прием.

НазваниеПравило валидацииКод настройкиКомментарий
Проверка актуальности записи на приёмЗапрещено отменять запись на приём, если время приёма уже прошлоDeleteOldTime
Проверка статуса записи на приёмЗапрещено отменять запись на приём, если прием уже был выполненDeleteVisitStatus
Проверка принадлежности записи к другим мероприятиямЗапрещено отменять запись на приём, связанную с вызовом на дом с обязательным мероприятием диспансеризации(только если не указать гуид мероприятия при отмене) или мероприятием иного типаActionSchedule

Отмена записи на прием, привязанной к направлению на исследование

Данный алгоритм будет реализован в задаче  API-840 - Получение подробных данных проблемы... СТАТУС


Удаление записи на прием, привязанной к направлению на исследование, выполняется по следующему алгоритму:

  1. Выполняется проверка наличия заключения по исследованию по следующему запросу:

    select
    case when
    (Select COUNT(*)
    from lbr_Research
    WHERE rf_LaboratoryResearchGUID=@0 and isComplete=1) > 0 --если есть записи со статусом завершенная
    then 1 else 0 end
  2. Если было найдено заключение, то отмена записи прерывается и клиенту отдается сообщение об ошибке  "Имеется заключение по исследованию. Отмена записи невозможна". Если нет, переход к шагу 3;
  3. Удаляется связанная с текущей записью на прием (hlt_DoctorVisitTable) запись в таблице hlt_ActionSchedule;
  4. В таблице lbr_LaboratoryResearch обновляется поле Flag: проставляется флаг 256 (отмена посещения) и убирается флаг 32 (признак отправки в ЕРИС):

    UPDATE hlt_LaboratoryResearch SET Flag=(Flag | 256) &~ 32 WHERE GUID=@0
  5. Удаляется запись в таблице hlt_DoctorVisitTable



Отмена записи на прием, привязанной к мероприятию(ям) диспансеризации

В случае если не передан параметр examGuid отмена записи привязанной к мероприятию диспансеризации будет происходить по следующему алгоритму:
  1. Получение списка связанных мероприятий диспансеризации
  2. Проверка на наличие среди привязанных мероприятий основных (hlt_disp_Service.IsMain=1). Если такие мероприятия имеются то будет выдана ошибка и запись отменена не будет, в противном случае переход к пункту 3.
  3. Выполняется удаление записей из hlt_ActionSchedule и обнуление ссылки hlt_disp_Exam.rf_DvtGuid
  4. Удаляется запись hlt_DoctorTimeTable

Если параметр examGuid передан, то будет выполнена отмена записи (удаление hlt_DoctorVisitTable), удаление связанных hlt_ActionSchedule и обнуление ссылок lt_disp_Exam.rf_DvtGuid не зависимо от типа мероприятия диспансеризации.


  • Нет меток