Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

  • СНИЛС (необязательный)
  • Фамилия
  • Имя
  • Отчество
  • Дата рождения
  • Код ДУЛ
  • Наименование ДУЛ
  • Серия ДУЛ
  • Номер ДУЛ
  • Дата выдачи ДУЛ

1. Поиск карт пациента

Для поиска карт пациента все данные нормализуются, чтобы искать через *_Find поля.

Поиск карт пациента происходит в БД МИП по входным данным запроса:

...

Блок кода
languagesql
DECLARE @@ss varchar(11) = @0
DECLARE @@fio varchar(200) = @1
DECLARE @@birthday datetime = @2
SELECT DISTINCT
  j.SourceGuid
FROM oms_mn_Ident id WITH(NOLOCK)
JOIN oms_mn_Journal j WITH(NOLOCK) ON id.rf_mn_personid = j.rf_mn_personid
JOIN oms_mn_Person p WITH(NOLOCK) ON id.rf_mn_PersonID = p.mn_PersonID
WHERE 1=1
AND id.SS_Find = @@ss
AND p.FIO_Find = @@fio
AND p.BithDayDate = @@birthday

    2) Если нет СНИЛС, либо не нашли по такому набору параметров, то ищем по набору ФИО + ДР + ДУЛ:

Блок кода
languagesql
DECLARE @@dul varchar(20) = @0
DECLARE @@fio varchar(200) = @1
DECLARE @@birthday datetime = @2
SELECT DISTINCT
 j.SourceGuid
FROM oms_mn_DocIdent di WITH(NOLOCK)
JOIN oms_mn_Journal j WITH(NOLOCK) ON di.rf_mn_PersonID = j.rf_mn_PersonID
JOIN Oms_TypeDoc td WITH(NOLOCK) ON di.rf_TypeDocID = td.TYPEDOCID
JOIN oms_mn_Person p WITH(NOLOCK) ON di.rf_mn_PersonID = p.mn_PersonID
WHERE 1=1
AND di.SNDOC_FIND = @@dul
AND p.FIO_Find = @@fio
AND p.BithDayDate = @@birthday

   3) Если не нашли по набору параметров из п. 2, пытаемся найти по ФИО + ДР и пустыми серией и номером документа:

Блок кода
languagesql
DECLARE @@fio varchar(200) = @0
DECLARE @@birthday datetime = @1
SELECT DISTINCT
  j.SourceGuid
FROM oms_mn_Person p WITH(NOLOCK)
JOIN oms_mn_Journal j WITH(NOLOCK) on j.rf_mn_PersonID = p.mn_PersonID
WHERE 1 = 1
AND p.FIO_Find = @@fio
AND p.BithDayDate = @@birthday
AND DocIdent_Series = '' 
AND DocIdent_Number = ''