--do $$
--begin
--	if exists 
--	(
--		select * from pg_proc p
--		where p.proname = 'sp_importpersonlpuinfo'
--	)
--	then
--		drop function public.sp_importpersonlpuinfo(text);
--	end if;
--end;
--$$ language plpgsql;
---- =============================================
---- Author:  Marat Zigangarayev
---- Create date: 2009/10/15
---- Description: Импорт информации о привязке персоны к ЛПУ
---- =============================================
--CREATE or Replace Function public.sp_ImportPersonLpuInfo
--( 
--	"XmlDocument" text -- xml
--)
--RETURNS void
--As 
--$$
--Begin
--	--DECLARE @DocHandle int

--	--EXEC sp_xml_preparedocument @DocHandle OUTPUT, @XmlDocument

--	-- те, кого нашли в удаленном ЛПУ
--	drop table if exists Tmp;	
--	create temp table Tmp(pid UUID, num varchar(12), lpu varchar(4), reg varchar(1), rd TimeStamp, PersonLinkID UUID);
--	insert into Tmp(pid, num, lpu, reg, rd, PersonLinkID)
--	select	nullif(trim(xpath('/p/@pid', x)::text,'{}"'),'')::UUID
--	,	nullif(trim(xpath('/p/@num', x)::text,'{}"'),'')::varchar(12)
--	,	nullif(trim(xpath('/p/@lpu', x)::text,'{}"'),'')::varchar(4)
--	,	nullif(trim(xpath('/p/@reg', x)::text,'{}"'),'')::varchar(1)
--	,	to_timestamp(nullif(trim(xpath('/p/@rd', x)::text,'{}"'),''),'DD.MM.YYYY')
--	,	uuid_generate_v1()
--	from
--	(
--		select unnest(xpath('/root/ps/p', "XmlDocument"::xml)) as x
--	) q;

--	drop table if exists Tmp_PersonLink;	
--	create temp table Tmp_PersonLink(PersonLinkID UUID, BeginDate TimeStamp, Person UUID, num varchar(12), lpu varchar(4), reg varchar(1));
--	-- выявляем пациентов-учащихся
--	Insert Into Tmp_PersonLink(PersonLinkID, BeginDate, Person, num, lpu, reg)
--	Select uuid_generate_v1(), t.rd, t.pid, t.num, t.lpu, t.reg
--	From Tmp t
--	left Join 
--		akuz.T_PERSON_LINK pl 
--		On pl.Person = t.pid
--	Where t.pid not in 
--	(
--		Select pl.Person 
--		From akuz.T_PERSON_LINK pl
--		inner Join 
--			akuz.T_PERSON_LPU plpu 
--			on pl.PersonLinkID = plpu.PersonLinkID
--		Where pl.EndDate Is Null 
--		And plpu.CardNumber = t.num
--		And plpu.Registration = t.reg::int
--	);
--	-- добавляем в связку
--	Insert Into akuz.T_PERSON_LINK(PersonLinkID, BeginDate, EndDate, Person, type_)
--	Select pl.PersonLinkID, pl.BeginDate, NULL, pl.Person, 803
--	From Tmp_PersonLink pl
--	inner Join 
--		akuz.T_BRANCH lm 
--		On lm.BranchCode = pl.lpu;
--	-- добавляем в наследуемую
--	Insert Into akuz.T_PERSON_LPU(CardNumber, LpuMain, Registration, PersonLinkID)
--	Select pl.num, lm.LpuID, pl.reg::int, pl.PersonLinkID
--	From Tmp_PersonLink pl
--	inner Join 
--		akuz.T_LPU_MAIN lm 
--		On lm.Code = pl.lpu;
--End;
--$$ Language plpgsql;