Получение списка ЛПУ, доступных для записи для отображения на портале РПГУ и в Колл-Центре.

Получение этого списка происходит через метод из апи для рпгу 2.7. Авторизация(описать). Этот метод, в свою очередь использует метод Получение информации о прикреплениях пациента

Список карт пациента вместе с гуидами лпу(LpuMkab) получается из МИПа(cod_person) gпо идентификатору пациента(PersonGuid) с помощью запроса:

declare @@docmkab int = (select mn_DocLPUID from oms_mn_DocLPU with(nolock) where Code = '1')
select j.SourceGuid as [Mkab],
lpu.GUIDLPU as [Lpu],
per.BithDayDate as [BD],
sex.CODE as [Gender],
per.polis_number as [N_pol],
per.polis_series as [S_pol],
per.Surname as [Family],
per.Name as [Name],
per.Patronymic as [Patronymic],
per.RegAddress_Str as [RegAddress],
per.LiveAddress_Str as [LiveAddress],
per.PhoneM as [Phone]
from oms_mn_Journal j with (NOLOCK)
join oms_LPU lpu with (NOLOCK) on lpu.LPUID = j.rf_LPUID
join oms_mn_Person per with (nolock)  on per.mn_PersonID = j.rf_mn_PersonID
join oms_kl_Sex sex with(nolock) on sex.kl_SexID = per.rf_kl_SexID
where per.PersonGUID in (@0) -- идентификатор пациента
and rf_mn_DocLPUID = @@docmkab
and lpu.DATE_E > getdate()

После получения из списка убираются закрытые карты(проверка в том же cod_person)


select 
UGUID as [MkabGuid],
isClosed as [isClosed]
from hlt_MKAB with(nolock)
where uguid in (@0) --Найденные карты

Формирование списка ЛПУ

  1. Сначала из списка всех незакрытых ЛПУ выбираются те, в которых у пациента есть карта.
  2. Для этих ЛПУ определяются их головные учреждения.
  3. Затем из списка всех ЛПУ берутся все подразделения этих головных учреждений
  4. Из полученного списка убираются все ЛПУ без расписания(Флаг HaveSchedule = false в методе Cписок ЛПУ или Получение информации о конкретной ЛПУ)
  5. Из полученного списка убираются все ЛПУ неактивные(Флаг IsActive = false в методе Cписок ЛПУ или Получение информации о конкретной ЛПУ). Берется из характеристики "Портал самозаписи: выводить на сайт самозаписи"
  6. Далее фильтруем полученные ЛПУ по полу и возрасту
    1. У взрослых отфильтруем детские (те, у которых есть только 1 категория обслуживания - Дети)
    2. У детей отфильтруем строго взрослые (категория обслуживания - Взрослые трудоспособного возраста / Пожилые и нет Дети / Все возрастные категории)
    3. Не показываем женские консультации мужчинам
  7. Добавляем ЛПУ с участком (если такой есть), если вдруг ее отсеяли на предыдущих шагах.

Условия подбора участка в прикреплении