...
4) Из всех LpuPrvd выбираются только те, которые относятся к ЛПУ из списка, полученного в п. 3.
Запись на прием по направлению
Спецификация метода доступна по ссылке.
Внутренняя логика:
1) Получение данных из тела запроса;
2) Получение полезной нагрузки из CodToken;
3) Получение списка ЛПУ-МКАБов с помощью PersonClient;
4) Получение ЛПУ токена через AuthClient со специальными параметрами: если не смогли получить ЛПУ токен, мы КОПИРУЕМ МКАБ из ЛПУ источника направлений.
5) Получение типа направления происходит выполнением следующего запроса:
Блок кода | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
Select'consultation' as typeDirection
from hlt_direction dir with (NOLOCK)
where dir.GUID = @0
union all
Select 'diagnostic' as typeDirection
from lbr_LaboratoryResearch dir with (NOLOCK)
where dir.GUID = @0
union all
Select 'duvisit' as typeDirection
from hlt_RegMedicalCheck dir with (NOLOCK)
where dir.GUID = @0 |
6) Создание направления в ЛПУ, в которое оно было выписано, по гуидам обоих ЛПУ + гуиду направления + типу направления (по факту это просто копирование направления)
* если тип направления null (не получилось определить), выбрасываем исключение с сообщением: "По выбранному идентификатору направление не найдено";
* если тип направления duvisit, результатом будет идентификатор, полученный выполнением следующего запроса:
Блок кода | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
select RegMedicalCheckID from hlt_regMedicalCheck where guid = @0 |