if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_GetSchetPack90Xml]') and xtype = N'P')
drop procedure [dbo].[sp_GetSchetPack90Xml]
GO

-- =============================================
-- Author:		(C) Vitacard System 2012
-- Create date: 2012-10-27
-- Description:	Формирует xml, по фед. счет-реестру (Запорожская обл.)
-- Update: 2016-11-29
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetSchetPack90Xml]
	@SchetPackID uniqueidentifier,
	@calculate bit = null
AS 
BEGIN
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;

declare @PackName varchar(100), @PackNamePrefix varchar(100), @LPackNamePrefix varchar(100), @DISP varchar(3), @ONK varchar(3)

select @PackName = t.PackName,
	   @PackNamePrefix = isnull(t.PackNamePrefix, 'H'),
	   @DISP=t.DISP,
	   @LPackNamePrefix = case @PackNamePrefix	
                              when 'DP' then 'LP'
                              when 'DV' then 'LV'
                              when 'DO' then 'LO'
                              when 'DS' then 'LS'
                              when 'DU' then 'LU'
                              when 'DF' then 'LF'
                              when 'DD' then 'LD'
                              when 'DR' then 'LR'
							  when 'DA' then 'LA'
							  when 'DB' then 'LB'
					          else 'L'
						  end
from [AKUZ].T_SCHET_PACK t where t.SchetPackID = @SchetPackID

set @ONK = (case
				when @PackNamePrefix = 'C' then 'C'
				else null
			 end)
--set @DISP = (case @PackNamePrefix
--				when 'DP' then 'ДВ1'
--				when 'DV' then 'ДВ2'
--				when 'DO' then 'ОПВ'
--				when 'DS' then 'ДС1'
--				when 'DU' then 'ДС2'
--				when 'DF' then 'ПН1'
--				when 'DD' then 'ОН2'
--				when 'DR' then 'ОН3'
--				else null
--			 end)

	 
select @PackNamePrefix, '<?xml version="1.0" encoding="Windows-1251"?>' + (
	select
	--ZGLV
	CASE WHEN @PackNamePrefix = 'T' THEN '5.0' ELSE '6.0' END AS 'ZGLV/VERSION' 
	, convert(char(10), t1.MakeDate, 126) as 'ZGLV/DATA'
	, @PackNamePrefix + @PackName AS 'ZGLV/FILENAME'
	--, (select count(*) from [AKUZ].T_SCHET_SLUCH sluch with(nolock)
	--   left join [AKUZ].T_SCHET_ZAP zap with(nolock) on sluch.SchetZap = zap.SchetZapID
	--   where zap.SchetPack = @SchetPackID) as 'ZGLV/SD_Z'

	,(select count(*) from [AKUZ].T_SCHET_Z_SL sluch1 with(nolock)
	left join [AKUZ].T_SCHET_ZAP zap with(nolock) on sluch1.SchetZap = zap.SchetZapID
	 where zap.SchetPack = @SchetPackID) as 'ZGLV/SD_Z'
    

	--SCHET
	,t1.CODE AS 'SCHET/CODE'
	,lm.LpuCode AS 'SCHET/CODE_MO'
	,t1.[YEAR] AS 'SCHET/YEAR'
	,t1.[MONTH] AS 'SCHET/MONTH'
	,t1.NSCHET AS 'SCHET/NSCHET'
	,convert(char(10), t1.DSCHET, 126) AS 'SCHET/DSCHET'
	,t0.SMO AS 'SCHET/PLAT'
	,(case when t1.SUMMAV is null then 0.00 else (select SUM(ss.SUMV) from [AKUZ].T_SCHET_Z_SL ss with(nolock) where ss.SchetZap in (select sz.SchetZapID from [AKUZ].T_SCHET_ZAP sz with(nolock) where  sz.Schet = t1.SchetID and sz.SchetPack = @SchetPackID)) end) AS 'SCHET/SUMMAV'
	,t1.COMENTS AS 'SCHET/COMENTS'
	,@DISP AS 'SCHET/DISP'	--письмо тофмса №304 от 03.06.15

	--ZAP
	,( 
	 SELECT 
		z_sl.IDCASE AS 'N_ZAP' --zap.N_ZAP
		,zap.PR_NOV AS 'PR_NOV'
	    
		-- PACIENT
		,zap.ID_PAC AS 'PACIENT/ID_PAC' --zap.ID_PAC
		,zap.VPOLIS AS 'PACIENT/VPOLIS'
		,zap.SPOLIS AS 'PACIENT/SPOLIS'
		,CASE WHEN @PackNamePrefix = 'T' THEN zap.NPOLIS
			WHEN zap.VPOLIS <> '3' THEN zap.NPOLIS ELSE NULL END AS 'PACIENT/NPOLIS'
		,CASE WHEN @PackNamePrefix = 'T' THEN NULL
			WHEN zap.VPOLIS = '3' THEN ISNULL(zap.ENP,zap.NPOLIS) ELSE NULL END  AS 'PACIENT/ENP'
		--,zap.SMO AS 'PACIENT/SMO' 
		,case when @calculate=1 then null else zap.SMO end AS 'PACIENT/SMO'
		,zap.INV AS 'PACIENT/INV'
		,isnull(zap.NOVOR, '0') AS 'PACIENT/NOVOR'    --NOVOR	О	Т(9)	Признак новорождённого	Указывается в случае оказания медицинской помощи ребёнку до государственной регистрации рождения.0 – признак отсутствует.Если значение признака отлично от нуля, он заполняется по следующему шаблону:ПДДММГГН, гдеП – пол ребёнка в соответствии с классификатором V005 Приложения А;ДД – день рождения;ММ – месяц рождения;ГГ – последние две цифры года рождения;Н – порядковый номер ребёнка (до двух знаков).
		,zap.VNOV_D AS 'PACIENT/VNOV_D'    --VNOV_D	У	N(4)	Вес при рождении.
		,zap.SOC AS 'PACIENT/SOC' -- поле добавлено в справочник Q018 Указывается одно из следующих значеий: 000 – категория отсутствует; 035 - участник специальной военной операции (СВО), уволенный в запас (отставку); 065 - член семьи участника специальной военной операции (СВО)
		,CASE WHEN @DISP IS NOT NULL AND zap.NEXT_D IS NOT NULL THEN zap.NEXT_D END AS 'PACIENT/NEXT_D'
		,ISNULL(zap.MO_PR, NULL) AS 'PACIENT/MO_PR' -- Код МО прикрепления
		,CASE WHEN  @PackNamePrefix = 'T' THEN NULL ELSE ISNULL(zap.VZ, NULL) END AS 'PACIENT/VZ'  -- Вид занятости

		--Z_SL
		,
	  (
	  select 
		z_sl.IDCASE as IDCASE         -- IDCASE	    O	N(11)	Номер записи в реестре законченных случаев.
	  ,	z_sl.USL_OK as USL_OK         -- USL_OK	    O	N(2)	Условия оказания медицинской помощи (V006)    
	  ,	z_sl.VIDPOM as VIDPOM         -- VIDPOM	    O	N(4)	Вид помощи	Классификатор видов медицинской помощи. Справочник V008 Приложения А      
	  ,	z_sl.FOR_POM as FOR_POM       -- FOR_POM	O   N(1)    Форма оказания медицинской помощи. В соответствии с классификатором V014.   
	  ,	z_sl.NPR_MO as NPR_MO         -- NPR_MO     0   T(6)    Код МО. Заполняется в соответствии со справочником  F003
	  ,	convert(char(10), z_sl.NPR_DATE, 126) as NPR_DATE     -- NPR_DATE   У   D       Дата направления на лечение. 
	  ,	z_sl.LPU as LPU               -- LPU	    О	T(6)	Код МО	МО лечения.
	  , z_sl.VBR AS VBR -- VBR Признак мобильной медицинской бригады
	  , convert(char(10), z_sl.DATE_Z_1, 126) as DATE_Z_1     -- DATE_Z_1   O   D       Дата начала лечения 
	  ,	convert(char(10), z_sl.DATE_Z_2, 126) as DATE_Z_2     -- DATE_Z_2   O   D       Дата окончания лечения 
	  ,	z_sl.KD_Z as KD_Z             -- KD_Z       У   N(3)    Продолжительность госпитализации   
	  ,	(select [split] as VNOV_M from [dbo].[fn_Split](z_sl.VNOV_M, ';') where @DISP is null FOR XML PATH(''), TYPE)	  -- VNOV_M		 УМ     
	  --, z_sl.RSLT as RSLT
	  , case when lm.LpuCode=800003 and z_sl.ISHOD = 306 then 314 else z_sl.RSLT end as RSLT
	  , z_sl.P_OTK 
	  , z_sl.RSLT_D AS RSLT_D   --Результат диспансеризации
	  --, z_sl.VNOV_M as VNOV_M
	  -- , z_sl.RSLT as RSLT
	  , z_sl.ISHOD as ISHOD
	 -- ,	case when @DISP is null then z_sl.RSLT else null end  AS RSLT        -- RSLT          O	N(3)	Результат обращения/ госпитализации	Классификатор результатов обращения за медицинской помощью (Приложение А V009).
	 --,	case when @DISP is null then z_sl.ISHOD else null end AS ISHOD        -- ISHOD        O N(3) Исход заболевания Классификатор исходов заболевания (Приложение А V012).
	 -- ,	(select [split] as OS_SLUCH from [dbo].[fn_Split](z_sl.OS_SLUCH, ';') where @DISP is null FOR XML PATH(''), TYPE)  -- OS_SLUCH     НМ N(1) Признак "Особый случай" при регистрации обращения за медицинской помощью Указываются все имевшиеся особые случаи. 1 – медицинская помощь оказана новорожденному ребенку
	 ,	(select [split] as OS_SLUCH from [dbo].[fn_Split](z_sl.OS_SLUCH, ';') FOR XML PATH(''), TYPE)
	  ,	z_sl.VB_P as VB_P              -- VB_P     У    N(1)    Признак внутрибольничного перевода    


	  
		--SLUCH
		,( 
	   SELECT 
		  --t02.*
		  sluch.IDCASE AS SL_ID      -- IDCASE	    O	N(8)	Номер записи в реестре случаев	Соответствует порядковому номеру записи реестра счёта на бумажном носителе при его предоставлении.
		  ,case when @PackNamePrefix = 'T' then sluch.VID_HMP else null end AS VID_HMP	--VID_HMP	О	T(9)	Вид высокотехнологичной медицинской помощи	Классификатор видов высокотехнологичной медицинской помощи. Справочник V018 Приложения А
		  ,case when @PackNamePrefix = 'T' then sluch.METOD_HMP else null end AS METOD_HMP --METOD_HMP	О	N(3)	Метод высокотехнологичной медицинской помощи	Классификатор методов высокотехнологичной медицинской помощи. Справочник V019 Приложения А
	--	  ,case when @DISP is null then sluch.NPR_MO else null end AS NPR_MO      -- NPR_MO	    У	Т(6)	Код МО, направившего на лечение (диагностику, консультацию)	Код МО – юридического лица. Заполняется в соответствии со справочником F003 Приложения А. При отсутствии сведений может не заполняться.
	--	  ,case when @DISP is null then sluch.EXTR else null end AS EXTR          -- EXTR	        У	N(2)	Направление (госпитализация)	1 –плановая; 2 – экстренная
	--	  ,sluch.LPU AS LPU            -- LPU	        О	T(6)	Код МО	МО лечения.
		  ,sluch.LPU_1 AS LPU_1        -- LPU_1	        У	T(6)	Подразделение МО	Подразделение МО лечения из регионального справочника.
	   	  --,case when @DISP is not null then sluch.VBR else null end  AS VBR	    -- VBR			O	N(1)	Признак мобильной медицинской бригады
		  ,case when (@DISP is null) and (z_sl.USL_OK<>3 and z_sl.USL_OK<>4)  then sluch.PODR else null end AS PODR          -- PODR          У   N(8)	Код отделения	Отделение МО лечения из регионального справочника.
		   --,case when (@DISP is null) then sluch.PODR else null end AS PODR          -- PODR          У   N(8)	Код отделения	Отделение МО лечения из регионального справочника.
	   	  --,case when @DISP is not null then sluch.VBR else null end  AS VBR	    -- VBR			O	N(1)	Признак мобильной медицинской бригады
               -- 07.02.2025 закоментировано для ХО 
			   -- ,case 
					--	when @PackNamePrefix = 'DP' then '97'
					--	when @PackNamePrefix = 'DV' then '97'
					--	when @PackNamePrefix = 'DO' then '97'
					--	when @PackNamePrefix = 'DS' then '68'
					--	when @PackNamePrefix = 'DU' then '68'
						--when @PackNamePrefix = 'DF' then '68'
					--	when @PackNamePrefix = 'DD' then '68'
					--	when @PackNamePrefix = 'DR' then '68'
			--	else sluch.PROFIL end AS PROFIL      -- PROFIL	    O	N(3)	Профиль	Классификатор V002 Пр
				--,case when @DISP is null then sluch.PROFIL else null end AS PROFIL      -- PROFIL	    O	N(3)	Профиль	Классификатор V002 Приложения А.
				,sluch.PROFIL AS PROFIL
		  ,case when @DISP is null then sluch.PROFIL_K else null end AS PROFIL_K      -- PROFIL_BED	    O	T(6)	Профиль койки Классификатор V020 Приложения А.
		  ,case when @DISP is null then sluch.DET else null end AS DET            -- DET	        О	N(1)	Признак детского профиля	0-нет, 1-да.
		  ,case when @PackNamePrefix = 'T'  AND sluch.TAL_D IS NOT NULL then convert(char(10), sluch.TAL_D, 126) else null end AS TAL_D
		  ,case when @PackNamePrefix = 'T'  AND sluch.TAL_N IS NOT NULL then sluch.TAL_N else null end AS TAL_NUM
		  ,case when @PackNamePrefix = 'T'  AND sluch.TAL_P IS NOT NULL then convert(char(10), sluch.TAL_P, 126) else null end AS TAL_P
		  --,case when z_sl.USL_OK<>4 then 
		  --CASE WHEN sluch.P_CEL = '0' AND z_sl.USL_OK=3 AND sluch.DATE_1<>sluch.DATE_2 AND z_sl.FOR_POM = '3' THEN '3.0' 
				--WHEN sluch.P_CEL = '0' AND z_sl.USL_OK=3 AND sluch.DATE_1=sluch.DATE_2 AND z_sl.FOR_POM = '3' THEN '1.0'
				--WHEN sluch.P_CEL = '0' AND z_sl.USL_OK=3 AND sluch.DATE_1=sluch.DATE_2 AND z_sl.FOR_POM = '2' THEN '1.1'
				--ELSE NULL END
				--ELSE null end AS  P_CEL  -- P_CEL          O  T(3)   Классификатор целей посещения V025 Приложения А. 
		  ,CASE WHEN  @DISP is null AND sluch.P_CEL IS NOT NULL THEN sluch.P_CEL ELSE null end AS  P_CEL  -- P_CEL          O  T(3)   Классификатор целей посещения V025 Приложения А. 	
		  ,sluch.NHISTORY AS NHISTORY  -- NHISTORY	    O	T(50)	Номер истории болезни/ талона амбулаторного пациента
		  ,sluch.P_PER AS P_PER        -- P_PER        У N(1)  Признак поступления \перевода 
		                 -- ,case when @DISP is not null then sluch.P_OTK else null end AS P_OTK	-- P_OTK		O	N(1)	Признак отказа
		  ,convert(char(10), sluch.DATE_1, 126) AS DATE_1  -- DATE_1	O	D	Дата начала лечения
		  ,convert(char(10), sluch.DATE_2, 126) AS DATE_2  -- DATE_2	O	D	Дата окончания лечения
		 ,CASE WHEN  @PackNamePrefix = 'T' THEN NULL ELSE ISNULL(sluch.KD,NULL) END AS  KD -- KD        Y  N(3)   Продолжительность госпитализации (койко-дни/пациенто-дни)
		 ,sluch.WEI AS  WEI -- WEI    У	N(3.1)	Масса тела (кг)
		  ,case when @DISP is null then case when sluch.IDSP=28 and @DISP is null or sluch.DS0 like 'K%' then left(sluch.DS0,5) else sluch.DS0 end else null end AS DS0            -- DS0	        Н	T(10)	Диагноз первичный	Код из справочника МКБ до уровня подрубрики. Указывается при наличии
		  --,sluch.DS1  AS DS1  --DS1	        O	T(10) Диагноз основной	Код из справочника МКБ до уровня подрубрики. 
		 ,case when (sluch.IDSP=28 and @DISP is null and sluch.DS1 like 'K%') or (sluch.DS1 like 'K%') then left(sluch.DS1,5) else sluch.DS1 end AS DS1            -- DS1	        O	T(10) 	Диагноз основной	Код из справочника МКБ до уровня подрубрики.
		  ,case when @DISP is not null then sluch.DS1_PR else null end AS DS1_PR   -- У N(1) Установлен впервые
		  --, case when @DISP  is  null  then null else
		  ,case when @DISP is not null then sluch.DS_ONK ELSE NULL END AS DS_ONK --Признак подозрения на злок.новообр.
		  	,sluch.PR_D_N  AS PR_D_N   -- У N(1) Признак диспансерного наблюдения
		 -- ,(select 
		 --  (select [split] from [dbo].[fn_Split](ds2_n.split, ',') where number = 1 and  @DISP is not null) as DS2,
			--(select [split] from [dbo].[fn_Split](ds2_n.split, ',') where number = 2 and [split] != '' and  @DISP is not null) as DS2_PR
		 --  from [dbo].[fn_Split](sluch.DS2, ';')  ds2_n where @DISP is not null and [split] != '' FOR XML PATH('DS2_N'), TYPE)



		   ,(select 
(select [split] from [dbo].[fn_Split](ds2_n.split, ',') where number = 1 and @DISP is not null) as DS2,
--(select [split] from [dbo].[fn_Split](ds2_n.split, ',') where number = 2 and [split] != '' and @DISP is not null) as DS2_PR,
(select [split] from [dbo].[fn_Split](ds2_n.split, ',') where number = 2 and [split] <> '' and [split] <> 0) as DS2_PR,
3 as PR_DS2_N
from [dbo].[fn_Split](sluch.DS2, ';') ds2_n where @DISP is not null and [split] != '' FOR XML PATH('DS2_N'), TYPE)


		  --,case when @DISP is not null then sluch.NAZR else null end AS NAZR   -- У N(2) Назначения
		 -- ,case when @DISP is not null then sluch.NAZ_SP else null end AS NAZ_SP   -- У N(4) Специальность
		 -- ,case when @DISP is not null then sluch.NAZ_V else null end AS NAZ_V   -- У N(1) Вид обследования
		 -- ,case when @DISP is not null then sluch.NAZ_PMP else null end AS NAZ_PMP   -- У N(3) Профиль мед помощи
		 -- ,case when @DISP is not null then sluch.NAZ_PK else null end AS NAZ_PK   -- У N(1) Профиль койки
	
	 , (select 
				naz.NAZ_N as NAZ_N
				, naz.NAZ_R as NAZ_R
				, naz.NAZ_SP as NAZ_SP
				, naz.NAZ_IDDOKT as NAZ_IDDOKT
				, naz.NAZ_V as NAZ_V
				, naz.NAZ_USL as NAZ_USL

				, cast(naz.NAPR_DATE as date) as NAPR_DATE
		  		, CASE WHEN naz.NAZ_R IN ('2','3') AND sluch.DS_ONK = '1' THEN cast(naz.NAPR_DATE as date) END as PLAN_DATE
				, CASE WHEN naz.NAZ_R IN ('2','3') AND sluch.DS_ONK = '1' THEN naz.NAPR_MO END as NAPR_MO
				, CASE WHEN naz.NAZ_R IN ('4','5') THEN  naz.NAZ_PMP END as NAZ_PMP
				, CASE WHEN naz.NAZ_R IN ('6') THEN naz.NAZ_PK END as NAZ_PK
		from AKUZ.T_SCHET_NAZ naz with(nolock) 
		where naz.SchetSluch = sluch.SchetSluchID 
		for xml path('NAZ'), type
		)
	--закомментировали 06092022 , не хватает NAPR_DATE NAPR_MO
   
   --, (select naz.NAZ_N, naz.NAZ_R, naz.NAZ_IDDOKT, naz.NAZ_SP, naz.NAZ_V, naz.NAZ_USL, naz.NAZ_PMP, naz.NAZ_PK from AKUZ.T_SCHET_NAZ naz with(nolock) where naz.SchetSluch = sluch.SchetSluchID for xml path('NAZ'), type)
   --, case when not exists (select 1 from AKUZ.T_SCHET_NAZ naz with(nolock) where naz.SchetSluch = sluch.SchetSluchID) and lm.LpuCode = '800001' and (RSLT=334 or RSLT=335 or RSLT=336)
		--then (select '1' as NAZ_N, '1' as NAZ_R, '49' as NAZ_SP for xml path('NAZ'), type) end
		   --, case when not exists (select 1 from AKUZ.T_SCHET_NAZ naz with(nolock) where naz.SchetSluch = sluch.SchetSluchID) and lm.LpuCode = '800001' and (RSLT=345 or RSLT=355 or RSLT=356 or RSLT=359) -- закоментировала Юля с 01.07.2021
		--then (select '1' as NAZ_N, '1' as NAZ_R, '76' as NAZ_SP for xml path('NAZ'), type) end -- закоментировала Юля с 01.07.2021(не вносили и ругалось на NAZ_IDDOKT отсут-т )
		--,(select [split] as DS2 from [dbo].[fn_Split](sluch.DS2, ';') where @DISP is null FOR XML PATH(''), TYPE)
         ,(select case when (sluch.IDSP=28 and @DISP is null) or [split] like 'F%' then left([split],5) else [split] end as DS2 from [dbo].[fn_Split](sluch.DS2, ';') where @DISP is null FOR XML PATH(''), TYPE)            -- DS2         УМ T(10) Диагноз сопутствующего заболевания Код из справочника МКБ до уровня подрубрики. Указывается в случае установления в соответствии с медицинской документацией.
		  ,(select case when sluch.IDSP=29 and @DISP is null then left([split],5) else [split] end as DS3 from [dbo].[fn_Split](sluch.DS3, ';') where @DISP is null FOR XML PATH(''), TYPE)			  -- DS3		 УМ Т(10) Диагноз осложнения основного заболевания. Адаптированный классификатор МКБ - только позиции, отнесенные к ОМС.
		  , sluch.C_ZAB as C_ZAB
		  ,CASE WHEN  @PackNamePrefix IN ('H','C') THEN  sluch.DN ELSE NULL END as DN
		-- S_DN
		,(select 
			(select [split] from [dbo].[fn_Split](s_dn.split, '/') where number = 1 and [split] <> '') as DS_N,
			(select [split] from [dbo].[fn_Split](s_dn.split, '/') where number = 2 and [split] <> '') as DATE_DN
			from [dbo].[fn_Split](sluch90.S_DN, ';') s_dn 
			where @PackNamePrefix IN ('C') and [split] != '' FOR XML PATH('S_DN'), TYPE)	
		
		  ,case when @PackNamePrefix IN ('C','T') then case 
			when exists (select 1 FROM [AKUZ].t_SCHET_NAPR napr with(nolock) where napr.SchetSluch = sluch.SchetSluchID) then 1 
			else 0
			end 
			else null
			end as DS_ONK
 
		  --,case when @DISP is not null then 
				--case when @DISP='ОН3' then 7
				--	 when (@DISP='ОН1' or @DISP='ОН2') and COMENTSL is not null then right(COMENTSL,1)
				--	 else sluch.RSLT_D end 
			 --   else null end AS RSLT_D  -- RSLT_D        O N(3) Исход заболевания по диспансеризации Классификатор исходов заболевания (Приложение А V012).
		  --,(select [split] as VNOV_M from [dbo].[fn_Split](sluch.VNOV_M, ';') where @DISP is null FOR XML PATH(''), TYPE)	  -- VNOV_M		 УМ N(4) Вес при рождении.
		  --,case when @DISP is null AND sluch.CODE_MES1 IS NOT NULL then sluch.CODE_MES1 else null end AS CODE_MES1-- CODE_MES1     У	Т(16)	Код МЭС	Классификатор МЭС. Указывается при наличии утверждённого стандарта.
		  --,case when @DISP is null AND sluch.CODE_MES2 IS NOT NULL then sluch.CODE_MES2 else null end AS CODE_MES2-- CODE_MES2     У	Т(16)	Код МЭС сопутствующего заболевания
		  , ( select
						cast(napr.NAPR_DATE as date) as NAPR_DATE
						, napr.NAPR_MO as NAPR_MO
						, napr.NAPR_V as NAPR_V
						, napr.MET_ISSL as MET_ISSL
						, napr.NAPR_USL as NAPR_USL
					FROM [AKUZ].t_SCHET_NAPR napr with(nolock)
					where napr.SchetSluch = sluch.SchetSluchID and @onk is not null
					and NAPR_USL like '[^NП]%'   -- для кодов услуг ПФ, NAO и просто пустых, чтобы не выгружался блок NAPR
					FOR XML PATH('NAPR'), TYPE
					)

		,(
		select cons.PR_CONS as PR_CONS
			, cast(cons.DT_CONS as date) as DT_CONS
		FROM [AKUZ].T_SCHET_CONS cons with(nolock)
		where cons.SchetSluch = sluch.SchetSluchID AND @PackNamePrefix = 'C'
		
		   FOR
		   XML PATH('CONS'),  TYPE	
			)
			
			,(   select 0 as PR_CONS
					where   @onk is not null 
					--and not exists (select 1 FROM [AKUZ].t_SCHET_NAPR napr with(nolock) where napr.SchetSluch = sluch.SchetSluchID) 
					aND not exists (
						select c.PR_CONS 
						from [AKUZ].T_SCHET_CONS c with(nolock)
						where c.SchetSluch = sluch.SchetSluchID) 
					       
					FOR
					   XML PATH('CONS'),
					   TYPE	)

					
		  ---- сведения о случае лечения онко-заболеваний
		  , (select  isnull(onk.DS1_T, 0)    as DS1_T
			, onk.STAD as STAD
			, onk.ONK_T as ONK_T
			, onk.ONK_N as ONK_N
			, onk.ONK_M as ONK_M
			--, case when  onk.MTSTZ=1 then MTSTZ else null end as MTSTZ
			, onk.MTSTZ as MTSTZ
			, onk.SOD as SOD
			, onk.K_FR as K_FR
			, onk.WEI as WEI
			, onk.HEI as HEI
			, onk.BSA as BSA
			,(select 
			      cast(sbd.DIAG_DATE as date )as DIAG_DATE
			    ,  sbd.DIAG_TIP as DIAG_TIP
				, sbd.DIAG_CODE as DIAG_CODE
				, sbd.DIAG_RSLT as DIAG_RSLT
				, case when sbd.REC_RSLT=1 then 1 else null end as REC_RSLT 
				from akuz.T_SCHET_B_DIAG sbd with (nolock)
				where sbd.SchetOnkSl = onk.SchetOnkSlID
				FOR XML PATH('B_DIAG'), TYPE)	  -- B_DIAG
			,(select sbp.PROT as PROT
				, cast(sbp.D_PROT as date) as D_PROT
				from akuz.T_SCHET_B_PROT sbp with (nolock)
				where sbp.SchetOnkSl = onk.SchetOnkSlID
				FOR XML PATH('B_PROT'), TYPE)	  -- B_PROT
			
			, (
				select
					onk_usl.USL_TIP as USL_TIP
					, onk_usl.HIR_TIP as HIR_TIP
					, onk_usl.LEK_TIP_L as LEK_TIP_L
					, onk_usl.LEK_TIP_V as LEK_TIP_V
					,(
						select 
							slp.REGNUM as REGNUM
							--(select [split] as DS3 from [dbo].[fn_Split](sluch.DS3, ';') where @DISP is null FOR XML PATH(''), TYPE)

						    , slp.CODE_SH as CODE_SH
							--, (
							--	--select Split as DATE_INJ from [dbo].[fn_Split](slp.DATE_INJ, '|') where [split] != '' AND Number = 1

							----, (select cast(convert(datetime, Split, 104) as date) as DATE_INJ from [dbo].[fn_Split](slp.DATE_INJ, ';') where [split] != ''
							----, (select Split as DATE_INJ from [dbo].[fn_Split](slp.DATE_INJ, ';') where [split] != ''
							--			FOR
							--   XML PATH(''),
							--   TYPE)
							 -- DATE_INJ
							 		,(
									select 
										 (select Split as DATE_INJ from [dbo].[fn_Split](slp.DATE_INJ, '|') where [split] != '' AND Number = 1
											FOR
										   XML PATH(''),
										   TYPE)
										 -- DATE_INJ
									from akuz.T_SCHET_LEK_PR slp
									where slp.SchetOnkUsl = onk_usl.SchetOnkUslID and @onk is not null
									FOR 
										XML PATH('INJ'), 
										TYPE
									)
						from akuz.T_SCHET_LEK_PR slp
						where slp.SchetOnkUsl = onk_usl.SchetOnkUslID and @onk is not null
						FOR 
							XML PATH('LEK_PR'), 
							TYPE
						)	  -- B_PROT
						, onk_usl.PPTR as PPTR
					, onk_usl.LUCH_TIP as LUCH_TIP
				FROM [AKUZ].T_SCHET_ONK_USL onk_usl with(nolock)
				where onk_usl.SchetOnkSl = onk.SchetOnkSlID and @onk is not null
				FOR
				   XML PATH('ONK_USL'),
				   TYPE
				)

				, (
				select 5 as USL_TIP
					where not exists (
						select onk_usl.USL_TIP 
						FROM [AKUZ].T_SCHET_ONK_USL onk_usl with(nolock)
						where onk_usl.SchetOnkSl = onk.SchetOnkSlID) and  @onk is not null
					FOR
					   XML PATH('ONK_USL'),
					   TYPE	
				)

		  from akuz.T_SCHET_ONK_SL onk with (nolock)
		  where onk.SchetSluch =sluch.SchetSluchID  and @onk is not null for xml path ('ONK_SL'), type )

		   ,(
				select KSG_KPG.N_KSG as N_KSG  -- N_KSG    Y T(20) Номер КСГ (V023) с указанием подгруппы (в случае использования). 
				,	KSG_KPG.VER_KSG as VER_KSG   -- VER_KSG    O N(4)  Модель определения КСГ
				,	KSG_KPG.KSG_PG as KSG_PG  -- KSG_PG     O N(1) Признак использования подгруппы КСГ
				,	KSG_KPG.N_KPG as N_KPG  -- N_KPG       Y  N(2)    Номер КПГ Номер КПГ (V026). 
				,	KSG_KPG.KOEF_Z as KOEF_Z  -- KOEF_Z    O N(2.5) Значение коэффициента затратоемкости группы/подгруппы КСГ или КПГ
				,	isnull(KSG_KPG.KOEF_UP,0) as KOEF_UP  -- KOEF_UP    O N(2.5) Управленческий коэффициент
				,	isnull(KSG_KPG.BZTSZ,0) as BZTSZ --  BZTSZ       O N(6.2) Базовая ставка
				,	isnull(KSG_KPG.KOEF_D,0) as KOEF_D -- KOEF_D    O N(2.5) Коэффициент дифференциации
				,	isnull(KSG_KPG.KOEF_U,0) as KOEF_U -- KOEF_U     O  N(2.5) Коэффициент уровня/подуровня оказания медицинской помощи
				,  case when @PackNamePrefix in ('H','C') AND sluch.USL_OK in ('1','2') and sluch.date_2 >= '20240101' then '1.00000' end as K_ZP  -- K_ZP
				--,	isnull(KSG_KPG.DKK1,0) as DKK1 -- DKK1           Y T(10) Дополнительный классификационный критерий (V024)
				--,	isnull(KSG_KPG.DKK2,0) as DKK2  -- DKK2         Y  T (10) Дополнительный классификационный критерий
				,	KSG_KPG.DKK1 as CRIT -- DKK1           Y T(10) Дополнительный классификационный критерий (V024)
				--,	KSG_KPG.DKK2 as DKK2  -- DKK2         Y  T (10) Дополнительный классификационный критерий
				--,	KSG_KPG.SL_K as SL_K  -- SL_K        O  N (1) Признак использования КСЛП
				, case when exists(select * FROM AKUZ.T_SCHET_KSLP kslp where kslp.SchetSluch = sluch.SchetSluchID ) then 1 else 0 end as SL_K -- SL_K O N (1) Признак использования КСЛП
				--,	case when exists(select* from akuz.T_SCHET_KSLP kk where kk.SchetSluch = sluch.SchetSluchID and kk.N=104) then '1.00000'
						 --else KSG_KPG.IT_SL end as IT_SL  -- IT_SL     Y N (1.5) Применённый коэффициент сложности лечения пациента
				, case when exists(select * FROM AKUZ.T_SCHET_KSLP kslp where kslp.SchetSluch = sluch.SchetSluchID ) 
					then (select sum(kslp.k) FROM AKUZ.T_SCHET_KSLP kslp where kslp.SchetSluch = sluch.SchetSluchID ) else null end as IT_SL
				--, KSG_KPG.IT_SL  as IT_SL  -- IT_SL     Y N (1.5) Применённый коэффициент сложности лечения пациента
				--,	( select case 
				--                 when sluch.NHISTORY='3762'  and  CODE_MES1='st29.013' and kslp.N=1091 then '1092' else kslp.N end as IDSL, 
				--case when sluch.NHISTORY='3762'  and  CODE_MES1='st29.013' and kslp.N=1091 then '1.08000'
				--			 else cast(kslp.K as decimal(15,5)) end as Z_SL from [AKUZ].T_SCHET_KSLP kslp where kslp.SchetSluch = sluch.SchetSluchID FOR XML PATH('SL_KOEF'), TYPE)
							 , (select kslp.N as IDSL, cast(kslp.K as decimal(15,5)) as Z_SL  from [AKUZ].T_SCHET_KSLP kslp where kslp.SchetSluch = sluch.SchetSluchID FOR XML PATH('SL_KOEF'), TYPE)
				--,	(case when sluch.NHISTORY='859' then '1092' else  kslp.N end as IDSL, case when sluch.NHISTORY='859' then '1.97000' else cast(kslp.K as decimal(15,5)) end as Z_SL from [AKUZ].T_SCHET_KSLP kslp where kslp.SchetSluch = sluch.SchetSluchID FOR XML PATH('SL_KOEF'), TYPE)
				, ISNULL(KSG_KPG.PR_PR,'0') as PR_PR
				, ISNULL(KSG_KPG.KOEF_PR,'1')  as KOEF_PR
				from akuz.T_SCHET_KSG_KPG KSG_KPG 
				where KSG_KPG.SchetSluch = sluch.SchetSluchID 
				FOR XML PATH('KSG_KPG'), TYPE
			)
          ,sluch.REAB AS REAB      -- Признак  реабилитации  
		  --,sluch.RSLT AS RSLT        -- RSLT          O	N(3)	Результат обращения/ госпитализации	Классификатор результатов обращения за медицинской помощью (Приложение А V009).
		 -- ,sluch.ISHOD AS ISHOD        -- ISHOD        O N(3) Исход заболевания Классификатор исходов заболевания (Приложение А V012).
		  ,case when @DISP is null then sluch.PRVS  else null end AS PRVS          -- PRVS          O	N(9)	Специальность лечащего врача/ врача, закрывшего талон	Классификатор медицинских специальностей (Приложение А V004).
																  
		  ,case when @DISP is null then 'V021' else null end  AS VERS_SPEC
																   
		  ,case when @DISP is null then REPLACE(REPLACE(sluch.IDDOKT,'-',''),' ','') else null end  AS IDDOKT      -- IDDOKT        O	Т(16)	Код врача, закрывшего талон/историю болезни	Территориальный справочник
																	 
		 -- , (select [split] as OS_SLUCH from [dbo].[fn_Split](sluch.OS_SLUCH, ';') FOR XML PATH(''), TYPE)  -- OS_SLUCH     НМ N(1) Признак "Особый случай" при регистрации обращения за медицинской помощью Указываются все имевшиеся особые случаи. 1 – медицинская помощь оказана новорожденному ребенку до государственной регистрации рождения при многоплодных родах; 2 – в документе, удостоверяющем личность пациента /родителя (представителя) пациента, отсутствует отчество.
		  --,dv.CEL AS CEL			   -- CEL			O	N(1)	Цель обращения
		--  ,case when sluch.IDSP=9 then 24 else sluch.IDSP end 
		--  isnull(sluch.IDSP_TRUE,sluch.IDSP) AS IDSP          -- IDSP	        O	N(2)	Код способа оплаты медицинской помощи	Классификатор способов оплаты медицинской помощи V010

		   ,(case 
				when sluch.USL_OK = '1' or sluch.USL_OK = '2' then cast(sluch.ED_COL as numeric(7,2))
				when (sluch.IDSP in (28) and PRVS in (43,68,69,72,71,208,233) and @DISP is null) then null
				else cast(sluch.ED_COL as numeric(7,2))
			end ) AS ED_COL      -- ED_COL     У N(5.2) Количество единиц оплаты медицинской помощи

		   --,(case when (sluch.IDSP in (9) and @DISP is null) or (@DISP='ДВ2') then null
		    --when t.xCount is not null then cast(t.xCount as varchar(1000))
			--when sluch.IDSP in (33,43) then '1.00'
		     -- when sluch.ED_COL is not null then cast(sluch.ED_COL as varchar(1000))
		 --  else '1.00'  end --Письмо фонда №1685 от 231014
			--else null  end ) AS ED_COL      -- ED_COL     У N(5.2) Количество единиц оплаты медицинской помощи
			,ISNULL(sluch.TARIF, '0.0') as TARIF
			--,case when (sluch.IDSP=28 and PRVS in (68,69,71,72,208,233)) or @DISP='ДВ2' then null else ISNULL(sluch.TARIF,'0.0') end as TARIF
		 -- ,case when (sluch.IDSP in (28,31) and @DISP is null ) or (@DISP='ДВ2')  then null else sluch.TARIF end   AS TARIF        -- TARIF	        У	N(15.2)	Тариф
		  --Игорь Щеголев, 3.10.16 просит убрать условие на тариф case when (sluch.IDSP in (9,26,28,29) and @DISP is null) or (@DISP='ДВ2') then null и оставить case when (sluch.IDSP in (9,26,28,29) and @DISP is null) then null
		  ,isnull(sluch.SUM_M, 0) AS SUM_M          -- SUMV	        O	N(15.2)	Сумма, выставленная к оплате
		  ,(
						select 
							cast(lekpr_sl.DATA_INJ AS DATE) as DATA_INJ
							, lekpr_sl.CODE_SH as CODE_SH
							, lekpr_sl.REGNUM as REGNUM
							, lekpr_sl.COD_MARK as COD_MARK
							, ( select 
									lek_dose.ED_IZM as ED_IZM
									,lek_dose.DOSE_INJ as DOSE_INJ
									,lek_dose.METHOD_INJ as METHOD_INJ
									,lek_dose.CODE_INJ as COL_INJ
								from akuz.T_SCHET_LEK_DOSE_SL as lek_dose
								where lek_dose.lekprsl = lekpr_sl.SchetLekPrSlId
										FOR
							   XML PATH('LEK_DOSE'),
							   TYPE
							   )
						from akuz.T_SCHET_LEK_PR_SL lekpr_sl
						where lekpr_sl.SchetSluch = sluch.SchetSluchID  
						and sluch.DATE_2 >= '20220101' and sluch.DS1 in ('U07.1','U07.2') --and sluch.REAB <> '1' 
						--and sluch.USL_OK = '1' and sluch.KSG_ADD_CRITERION <> 'STT5'
						FOR 
							XML PATH('LEK_PR'), 
							TYPE
						)--28.01.22
		  
	      --,'<![CDATA[' + (select Event, KodPgg from [AKUZ].T_SCHET_SLUCH t where t.SchetSluchID = sluch.SchetSluchID for xml PATH(''), ROOT('root')) + ']]>' AS COMENTSL
	      
	        -- USL
		,( 
		   SELECT 
				su.IDSERV   as IDSERV -- IDSERV  O T(40) Номер записи в реестре услуг
				, su.LPU   as LPU -- LPU   O T(6) Код МО
				,sluch.LPU_1 AS LPU_1        -- LPU_1	        У	T(6)	Подразделение МО	Подразделение МО лечения из регионального справочника.
			

				, case when (@DISP is null) and (z_sl.USL_OK<>3 and z_sl.USL_OK<>4) then sluch.PODR else null end as PODR -- PODR   Y T(8) Код отделения
																	
												, case when @DISP is null then su.PROFIL else null end as PROFIL -- PROFIL  O N(3) Профиль
												--, su.PROFIL AS PROFIL
				--, su.VID_VME as VID_VME -- VID_VME  У T(15) Вид медицинского вмешательства письмо ТФОМС 667 от 13,05,15 с включением этих полей в реестр
				--, case when sluch.EntityIndex=1110  or DS like 'C%' then isnull(su.VID_VME,su.CODE_USL)
				--       when z_sl.USL_OK=4 and su.CODE_USL = 'A11.12.003.002' then 'A11.12.003.002' 
				--  else null end as VID_VME
				, case when @DISP is null then sluch.DET else null end AS DET-- DET   O N(1) Признак детского профиля
																				   
				, convert(char(10), su.DATE_IN, 126) AS DATE_IN  -- DATE_IN  O D  Дата начала оказания услуги
				, convert(char(10), su.DATE_OUT, 126) AS DATE_OUT -- DATE_OUT  O D  Дата окончания оказания услуги

				,
				case when (sluch.IDSP=9 and sluch.DS1 like 'K%') or (sluch.DS1 like 'K%') then left(isnull(su.DS, sluch.DS1),5) 
				else isnull(su.DS, sluch.DS1)  end  AS DS  -- DS   Y T(10) Диагноз
				
				,case when @DISP is not null then   case  when su.P_OTK = '1' then '1' else '0' end  else null end  AS P_OTK					
                                --, case when sluch.IDSP=9 then left(isnull(su.DS, sluch.DS1),5) else isnull(su.DS, sluch.DS1) end as DS -- DS   Y T(10) Диагноз
								--, isnull(su.DSff)), sluch.DS1) as DS -- DS   Y T(10) Диагноз
                --, case when (sluch.IDSP=9 and sluch.DS1 like 'K%') or (sluch.DS1 like 'K%') then left(isnull(su.DS, sluch.DS1),5) else isnull(su.DS, sluch.DS1) end as DS -- DS   Y T(10) Диагноз
				
				--, sluch.CODE_MES1 as CODE_USL
				,case when sluch.EntityIndex=1110 then isnull(su.VID_VME,su.CODE_USL) else ISNULL(su.CODE_USL,sluch.CODE_MES1) end as CODE_USL
				--закомментированно 25.06.2024 для ХО
				--,case when z_sl.USL_OK=3 then su.CODE_USL
				--   when left(su.CODE_USL,1) not in ('A','B') and sluch.EntityIndex<>1110 then su.VID_VME-- (select top 1 ms.EconomicCode from [AKUZ].T_MEDICAL_SERVICE ms where ms.Code=su.CODE_USL) 
				--	when sluch.EntityIndex=1110 then isnull(su.VID_VME,su.CODE_USL) else su.CODE_USL end as CODE_USL -- CODE_USL  O T(16) Код услуги письмо ТФОМС 667 от 13,05,15 с включением этих полей в реестр
				--, case when @DISP is null then su.CODE_USL else null end as CODE_USL -- CODE_USL  O T(16) Код услуги
				, case
				    when @DISP is not null then null
				    --when t.xCount is not null then cast(t.xCount as varchar(1000))
					--when sluch.IDSP in (33,43) then '1.00'
					--when sluch.IDSP in (9) then isnull(cast((select top 1 aso.Ratio from [AKUZ].T_AMBULANCE_SURGICAL_OPERATION aso where aso.MedicalRecordID=su.ServiceId) as decimal(5,2)),1.00)
					when su.KOL_USL is not null then cast(su.KOL_USL as varchar(1000))
				   else '1.00'
				  end as KOL_USL  -- KOL_USL  O N(6.2) Количество услуг (кратность услуги) 
			-- 10.02.2025 закоментировала для ХО	  
																																																																   
			 --	, case 
			--	when (@DISP='УД2') then isnull(su.TARIF, '0')
			--	when sluch.IDSP in (33,43) then null 
			--	when (@DISP='ДВ4') then isnull(su.TARIF, '0') --диспансеризация 1 р. в 2 года
				--10.06 when sluch.IDSP=28 and PRVS not in (68,69,71,72,208,233) and dv.CEL_POS<>11 and dv.CEL_POS<>18  then '0.00'
			--	when (@DISP='ДВ2') then isnull(su.SUMV_USL, '0') --временный костыль
			--	when @DISP is not null and su.CODE_USL not in ('B01.047.001.011','B01.047.001.012','B01.047.001.101','B01.047.001.102','B01.047.001.201','B04.031.002.001','B04.031.002.101','B04.031.002.201','B04.031.002.202','B04.031.002.203','B04.031.002.301','B04.031.002.302','B04.031.002.303') then '0.00'
				--when sluch.IDSP=28  then '0.00' 		
			--	 else isnull(isnull(su.TARIF,sluch.TARIF), '0.00') end as TARIF -- TARIF   У N(15.2) Тариф
			, case when (@DISP='ДВ4') then isnull (su.SUMV_USL,0.00) else 0.00 end as SUMV_USL	--isnull(su.SUMV_USL, '0') as SUMV_USL -- SUMV_USL   O N(15.2) Стоимость медицинской услуги, выставленная к оплате (руб.)
			, case when @disp is null and @PackNamePrefix <> 'H' then su.PRVS end   as PRVS -- PRVS   O N(9) Специальность медработника, выполнившего услугу
			, case when @disp is null and @PackNamePrefix <> 'H' then REPLACE(REPLACE(su.CODE_MD,'-',''),' ','')  end  as CODE_MD-- CODE_MD  O T(16) Код медицинского работника, оказавшего медицинскую услугу 
			, (
					select 1 as MR_N -- Номер по порядку
					, su.PRVS   as PRVS -- PRVS   O N(9) Специальность медработника, выполнившего услугу
					, REPLACE(REPLACE(su.CODE_MD,'-',''),' ','')  as CODE_MD-- CODE_MD  O T(16) Код медицинского работника, оказавшего медицинскую услугу
					WHERE  @PackNamePrefix NOT IN ('C','T')
					for xml path('MR_USL_N'), type
					)
					

	

								
				--, (
				--	select
				--		onk_usl.PR_CONS as PR_CONS
				--		, onk_usl.USL_TIP as USL_TIP
				--		, onk_usl.HIR_TIP as HIR_TIP
				--		, onk_usl.LEK_TIP_L as LEK_TIP_L
				--		, onk_usl.LEK_TIP_V as LEK_TIP_V
				--		, onk_usl.LUCH_TIP as LUCH_TIP
				--	FROM [AKUZ].T_SCHET_ONK_USL onk_usl with(nolock)
				--	where onk_usl.SchetUsl = su.SchetUslID
				--	FOR
				--	   XML PATH('ONK_USL'),
				--	   TYPE
				--	)
				--, (
				--	select
				--		onk_usl.PR_CONS as PR_CONS
				--		, onk_usl.USL_TIP as USL_TIP
				--		, onk_usl.HIR_TIP as HIR_TIP
				--		, onk_usl.LEK_TIP_L as LEK_TIP_L
				--		, onk_usl.LEK_TIP_V as LEK_TIP_V
				--		, onk_usl.LUCH_TIP as LUCH_TIP
				--	FROM [AKUZ].T_SCHET_ONK_USL onk_usl with(nolock)
					--inner join akuz.T_SCHET_USL susu
					--	on susu.SchetUslID = onk_usl.SchetUsl
					--	and susu.SchetSluch = sluch.SchetSluchID
					--where onk_usl.SchetUsl = su.SchetUslID	
					--	 and (sluch.P_CEL<>'1.3' or SLUCH.P_CEL is null)
					--FOR
					--   XML PATH('ONK_USL'),
					--   TYPE
					--)
				, su.COMENTU  as COMENTU -- COMENTU  Y T(250) Служебное поле
				--, case when su.CODE_USL in ('A06.09.006','A06.20.004') then  'PR_II 0' 
				                                                       --else null end  as COMENTU
			-- закоментировала для ХО  10.02.2025	
			--	, case 
			--			when su.CODE_USL in ('A06.09.006','A06.20.004','A06.03.069','A06.09.005','A06.11.004','A06.30.005','A06.23.004',
			--			'A06.25.003','A06.08.007.003','A06.04.017','A06.09.005.002','A06.30.005.004','A06.28.009.001','A06.20.002.002',
			--			'A06.21.003.002','A06.28.009','A06.23.004.006','A06.03.058.003','A06.03.058.002','A06.08.009.002','A06.08.009.001',
			--			'A06.12.050','A06.07.013','A07.30.043.001','A05.01.002','A05.01.002.001','A05.02.002','A05.03.001','A05.03.002',
			--			'A05.03.002.001','A05.03.003.001','A05.04.001','A05.04.001.001','A05.08.002','A05.08.004','A05.18.001','A05.21.001',
			--			'A05.21.001.001','A05.22.001','A05.22.001.001','A05.22.002','A05.22.002.001','A05.23.009','A05.23.009.001',
			--			'A05.23.009.010','A05.23.009.011','A05.26.008','A05.26.008.001','A05.30.004','A05.30.004.001','A05.30.005',
			--			'A05.30.005.001','A05.30.007','A05.30.007.001','A05.30.008','A05.30.008.001','A05.30.010','A05.30.011',
			--			'A05.30.011.001','A05.30.011.002','A05.30.012','A05.30.012.001','A05.30.012.002')
			--			or  
			--			su.VID_VME in ('A06.09.006','A06.20.004','A06.03.069','A06.09.005','A06.11.004','A06.30.005','A06.23.004',
			--			'A06.25.003','A06.08.007.003','A06.04.017','A06.09.005.002','A06.30.005.004','A06.28.009.001','A06.20.002.002',
			--			'A06.21.003.002','A06.28.009','A06.23.004.006','A06.03.058.003','A06.03.058.002','A06.08.009.002','A06.08.009.001',
			--			'A06.12.050','A06.07.013','A07.30.043.001','A05.01.002','A05.01.002.001','A05.02.002','A05.03.001','A05.03.002',
			--			'A05.03.002.001','A05.03.003.001','A05.04.001','A05.04.001.001','A05.08.002','A05.08.004','A05.18.001','A05.21.001',
			--			'A05.21.001.001','A05.22.001','A05.22.001.001','A05.22.002','A05.22.002.001','A05.23.009','A05.23.009.001',
			--			'A05.23.009.010','A05.23.009.011','A05.26.008','A05.26.008.001','A05.30.004','A05.30.004.001','A05.30.005',
			--			'A05.30.005.001','A05.30.007','A05.30.007.001','A05.30.008','A05.30.008.001','A05.30.010','A05.30.011',
			--			'A05.30.011.001','A05.30.011.002','A05.30.012','A05.30.012.001','A05.30.012.002')
			--			then  '0' 
			--		else null end  as PR_II
                
				/*10.06 , case when @DISP is null      -- Для сдачи счетов за июнь раскоментировать 
						then case when sluch.USL_OK=3 
								then case when dv.CEL_POS in (2, 3, 4, 11, 12, 13, 15, 16, 17, 18, 19, 30, 31, 33)
										then 1
										when dv.CEL_POS in (1, 28, 32, 34, 37, 38, 39, 40, 41, 42)
										then 2
									end
								end
						else case when su.CODE_USL in ('B01.047.001.103', 'B01.047.001.104', 'B01.047.001.201', 'B04.031.002.001', 'B01.047.001.101', 'B01.047.001.102')
								then 1
								else 2
							end
					end as USL_LEVEL */

                 
			FROM [AKUZ].T_SCHET_USL su with(nolock)
			where su.SchetSluch = sluch.SchetSluchID
	   --     and (
				--	(--sluch.IDSP<>36 or --скорая
				--	sluch.IDSP=36 --скорая
				--	and case when left(su.CODE_USL,1) not in ('A','B') and sluch.EntityIndex<>1110 then su.VID_VME-- (select top 1 ms.EconomicCode from [AKUZ].T_MEDICAL_SERVICE ms where ms.Code=su.CODE_USL) 
				--		when sluch.EntityIndex=1110 then su.VID_VME else su.CODE_USL end = 'A11.12.003.002'
				--	)
				--	or (@DISP is not null -- диспансеризация
				--		or (z_sl.USL_OK = 1 or z_sl.USL_OK = 2) --стационар
				--		or z_sl.IDSP=29 and @DISP is null --стоматология
				--		or z_sl.USL_OK = 3 and su.CODE_USL like 'B%' -- поликлиника с кодом услуги В
				--		or z_sl.USL_OK = 3 and IDSP = 28 --медицинские услуги
				--		or z_sl.USL_OK = 3 and exists (select * from akuz.T_SCHET_ONK_USL sou where sou.SchetUsl = su.SchetUslID)
				--		) 
				--)

			FOR
			   XML PATH('USL'),
			   TYPE
		 )		
		 ,sluch.COMENTSL AS COMENTSL
		 --10.06 , case when sluch.USL_OK=3 then dv.CEL_POS else null end as CEL_POS --У	У	Н(1)	Цель посещения	1- по заболевае-мости 2 - С профилакти-ческой целью 3 - В неотложной форме
		 --,case when dv.CEL_POS is not null then case when sluch.USL_OK=3 then dv.CEL_POS end 
			--else 37
		-- end as CEL_POS --У	У	Н(1)	Цель посещения	1- по заболевае-мости 2 - С профилакти-ческой целью 3 - В неотложной форме

		--kslp
		--,(
		--	select 
		--	N as 'N'
		--	,K as 'K'
		--	FROM [dbo].[fnx_kslp] (sluch.SchetSluchID)
		--	where sluch.IDSP in (21,33,43)
		--	FOR
		--		XML PATH('KSLP'),
		--		TYPE
		--	)
 -- ,sluch.KSG_ADD_CRITERION as KSG_DOP       --KSG_DOP Дополнительный классификационный критерий
-- , dv.ST_ONKO as  ST_ONKO
 --10.06 , dv.IND_BART as IND_BART
 --10.06 ,case when @DISP is null then cast(sluch.TARIF_DOP as int) else null end as CRIM
 --, 0 as TELEMED
  	

	--10.06 , (
	--	select case when dv.TMK is null then (select 0 as PR_TM for xml path(''), type)
	--				else (select stuff(dv.tmk, charindex(';',dv.tmk), 255, '') as PR_TM, stuff(dv.tmk, 1, charindex(';',dv.tmk), '') as TM_ID for xml path(''))
	--			end
	--	for xml path('TELEMED'), Type
	--	)

		--10.06 ,convert(char(10), dv.DN_NEXT_DT, 126) AS DN_NEXT_DT
		--,dv.DN_NEXT_DT   AS DN_NEXT_DT
		--10.06 ,case when sluch.USL_OK=3 then dv.TYPE_AMB else null end as TYPE_AMB  --У	У	Н(1)	Тип амб случая	1- обращение или диспа 2 - разовое посещение 3 - услуга 4 - вызов СМП  5 - иное  

	   FROM [AKUZ].T_SCHET_SLUCH sluch with(nolock)
	   left join [AKUZ].T_SCHET_SLUCH_90 sluch90 with(nolock) On sluch90.SchetSluchID = sluch.SchetSluchID
	   WHERE sluch.SchetZSl = z_sl.SchetZSlID
	   
	   FOR
	   XML PATH('SL'),
	   TYPE
	  )
	   ,	z_sl.IDSP as IDSP
	   , ISNULL(z_sl.SUMV,'0.0') AS SUMV
	 --FROM [AKUZ].T_SCHET_Z_SL z_sl with(nolock)                  --ZS
	 --  WHERE z_sl.SchetZSlID = z_sl1.SchetZSlID
	   
	   FOR
	   XML PATH('Z_SL'),                            --ZS
	   TYPE
	  )    


	 FROM [AKUZ].T_SCHET_ZAP zap with(nolock)
	 JOIN [AKUZ].T_SCHET_Z_SL z_sl with(nolock) on z_sl.SchetZap = zap.SchetZapID
	 WHERE zap.SchetPack = @SchetPackID AND exists (select * from [AKUZ].T_SCHET_SLUCH ss with(nolock) where ss.SchetZSl = z_sl.SchetZSlID)
	-- WHERE zap.SchetPack = @SchetPackID AND exists (select * from [AKUZ].T_SCHET_SLUCH ss with(nolock) where ss.SchetZap = zap.SchetZapID)
	 
	 FOR
	 XML PATH('ZAP'),
	 TYPE
	)

	from [AKUZ].T_SCHET_PACK t0 with(nolock)
	join [AKUZ].T_SCHET t1 with(nolock) On t0.Schet = t1.SchetID
	join [AKUZ].T_LPU_MAIN lm with(nolock) On lm.LpuID = t1.LpuMain
	--join [AKUZ].T_CONTRACT c On c.ContractID = t1.[Contract]
	--join [AKUZ].T_INSURANCE_COMPANY o On o.OrganizationID = c.Organization
	--left join [AKUZ].T_INSURER i On i.InsurerID = o.Insurer
	
	where t0.SchetPackID = @SchetPackID

	FOR XML PATH(''),
	ROOT('ZL_LIST')	
	) as xmltext


union


select @LPackNamePrefix, '<?xml version="1.0" encoding="Windows-1251"?>' +(	
	select
	--ZGLV
		--'3.0' AS 'ZGLV/VERSION' 
	--'3.1' AS 'ZGLV/VERSION' 
	'3.2' AS 'ZGLV/VERSION' 
	, convert(char(10), t1.MakeDate, 126) AS 'ZGLV/DATA'
	, @LPackNamePrefix + @PackName AS 'ZGLV/FILENAME'
	, @PackNamePrefix + @PackName AS 'ZGLV/FILENAME1'
	
	--PERS
	,(select 
	--/zap_sluch.SchetSluchID as ID_PAC --sz.ID_PAC
	    sz.ID_PAC as ID_PAC
		, sz.FAM as FAM
		, sz.IM as IM
		, case when sz.OT = 'НЕТ' then null else sz.OT end as OT
		, sz.W as W
		, convert(char(10), sz.DR, 126) as DR
		, sz.TEL as TEL
		, sz.FAM_P as FAM_P
		, sz.IM_P as IM_P
		, sz.OT_P as OT_P
		, sz.W_P as W_P
		, convert(char(10), sz.DR_P, 126) as DR_P
		, RTRIM(sz.MR) as MR
		, sz.DOCTYPE as DOCTYPE
		, sz.DOCSER as DOCSER
		, sz.DOCNUM as DOCNUM
		, convert(varchar(10), sz.DOCDATE, 23) as DOCDATE
		, sz.DOCORG as DOCORG
		, RTRIM(sz.SNILS) as SNILS
		--, sz.OKATOG as OKATOG
		--, sz.OKATOP as OKATOP
		, sz.COMENTP as COMENTP
	
	--from [AKUZ].T_SCHET_SLUCH zap_sluch with(nolock)
	--join [AKUZ].T_SCHET_ZAP sz with(nolock) on zap_sluch.SchetZap=sz.SchetZapID
	--where sz.SchetPack = @SchetPackID AND exists (select * from [AKUZ].T_SCHET_SLUCH ss with(nolock) where ss.SchetZap = sz.SchetZapID)
	from [AKUZ].T_SCHET_ZAP sz with(nolock)
	where sz.Schet = t1.SchetID AND exists (select * from [AKUZ].T_SCHET_SLUCH ss with(nolock) where ss.SchetZap = sz.SchetZapID)
	FOR XML PATH('PERS'),
	   TYPE
	)
from [AKUZ].T_SCHET_PACK t0 with(nolock)
	join [AKUZ].T_SCHET t1 with(nolock) On t0.Schet = t1.SchetID 
where t0.SchetPackID = @SchetPackID

FOR XML PATH(''),
ROOT('PERS_LIST')
) as xmltext

end