Для методов получения информации по данным беременной и ребенка входная информация является одинаковой:
- СНИЛС (необязательный)
- Фамилия
- Имя
- Отчество
- Дата рождения
- Код ДУЛ
- Наименование ДУЛ
- Серия ДУЛ
- Номер ДУЛ
- Дата выдачи ДУЛ
1. Поиск карт пациента
Для поиска карт пациента все данные нормализуются, чтобы искать через *_Find поля.
Поиск карт пациента происходит в БД МИП по входным данным запроса:
1) Если есть СНИЛС, то ищем по набору данных ФИО + ДР + СНИЛС:
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) Если нет СНИЛС, либо не нашли по такому набору параметров, то ищем по набору ФИО + ДР + ДУЛ:
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, пытаемся найти по ФИО + ДР и пустыми серией и номером документа:
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 = ''