IF  EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[SPUSS_237_KUDUZ_RISKLI_TEMAS]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE SPUSS_237_KUDUZ_RISKLI_TEMAS
GO

CREATE PROCEDURE [dbo].[SPUSS_237_KUDUZ_RISKLI_TEMAS] 
	@HDOSYAID INT=0,
	@HKUDUZRISKLITEMAS INT=0,
	@TUMUNUTEKRAR BIT = 0	 
AS
BEGIN
	--SPUSS_237_KUDUZ_RISKLI_TEMAS 3439329,54659290,1
	DECLARE @HATA NVARCHAR(2000) = ''
	DECLARE @MESAJ NVARCHAR(2000) = ''
	DECLARE @SAYIHATA BIT = 0
	DECLARE @XMLBASLIK NVARCHAR(2000) = ''
	DECLARE @SUBEID INT = 1
	DECLARE @GONDERIMTABLOSU TABLE 
		(
			GONDERILECEKXML XML,
			HATA NVARCHAR(2000),
			MESAJ NVARCHAR(2000),	
			XMLBASLIK NVARCHAR(3500),
			TABLOID INT,
			MINID INT,
			MAXID INT
		)


	IF OBJECT_ID('tempdb..#TMPDOSYA') IS NOT NULL 
		DROP TABLE #TMPDOSYA
	IF OBJECT_ID('tempdb..#TMPKUDUZRISKLITEMAS') IS NOT NULL 
		DROP TABLE #TMPKUDUZRISKLITEMAS



	SELECT 
		HDOSYA.SUBEID AS HDOSYA_SUBEID,
		SUBELER.SUBEADI AS SUBELER_SUBEADI,
		HDOSYA.SNOTAKIPNO AS HDOSYA_SNOTAKIPNO,		
		--ISNULL((SELECT TOP 1 VALUESTR FROM CONFIG WITH(NOLOCK) WHERE SECTIONSTR='Saglik-Net' AND PROGNAME='MEDISOFT' AND KEYNAME= CONVERT(VARCHAR,HDOSYA.SUBEID)+' numaralı şubenin kurum numarası'),'') AS SAGLIKNETKURUMKODU	
	    ISNULL((SELECT TOP 1 VALUESTR FROM CONFIG WITH(NOLOCK) WHERE SECTIONSTR='Saglik-Net' AND PROGNAME='MEDISOFT' AND KEYNAME= CONVERT(VARCHAR,HDOSYA.SUBEID)+' numarali subede Yenidoğanların Kimliksiz fatura edilebilir gün sayısı'),'') 	AS SAGLIKNETKIMLIKSIZYENIDOGANGUN,

        CASE WHEN (SELECT TOP 1 VALUESTR FROM CONFIG WITH(NOLOCK) WHERE SECTIONSTR='Saglik-Net' AND PROGNAME='MEDISOFT' AND /* VALUESTR='1' AND*/ KEYNAME LIKE CONVERT(VARCHAR,HDOSYA.SUBEID)+' numaral% %ubede Sa%l%k Net Online test modu aktif')='1' THEN
		  '10000038' 
		ELSE
		   ISNULL((SELECT TOP 1 VALUESTR FROM CONFIG WITH(NOLOCK) WHERE SECTIONSTR='Saglik-Net' AND PROGNAME='MEDISOFT' AND KEYNAME= CONVERT(VARCHAR,HDOSYA.SUBEID)+' numaralı şubenin kurum numarası'),'') 
		END AS SAGLIKNETKURUMKODU,

		 CASE WHEN (SELECT TOP 1 VALUESTR FROM CONFIG WITH(NOLOCK) WHERE SECTIONSTR='Saglik-Net' AND PROGNAME='MEDISOFT' AND /* VALUESTR='1' AND*/ KEYNAME LIKE CONVERT(VARCHAR,HDOSYA.SUBEID)+' numaral% %ubede Sa%l%k Net Online test modu aktif')='1' THEN
		  '3bc26a7d-4a19-4edf-ab9f-1413ac85e7d0' /*TEST KTS FİRMA KODU*/
		ELSE
		   'C740D0288ED4C45FE0407C0A04162BDD'  /*KTS TALYA*/ 
		END AS SNOKTSFIRMAKODU,

		ISNULL((SELECT TOP 1 VALUESTR FROM CONFIG WITH(NOLOCK) WHERE SECTIONSTR='Saglik-Net' AND PROGNAME='MEDISOFT' AND KEYNAME= CONVERT(VARCHAR,HDOSYA.SUBEID)+' numarali subede Hasta kayıt gönderiminde referans no ön Karakteri'),'') AS REFNOONEK

	INTO #TMPDOSYA
	FROM
		HDOSYA WITH(NOLOCK)
		LEFT JOIN SUBELER WITH(NOLOCK) ON SUBELER.SUBEID = HDOSYA.SUBEID
	WHERE
		HDOSYA.HDOSYAID = @HDOSYAID		
		

    SELECT  HKUDUZRISKLITEMAS.RISKLITEMASTARIH AS KUDUZRISKLIREMASTARIH ,		
			HKUDUZRISKLITEMAS.RISKLITEMASTIPIID AS RISKLITEMASTIPID,
			HKUDUZRISKLITEMAS.KISIYEPLANLANANPROFLAKSIID AS KISIYEPLANLANANPROFLAKSIID,
			HKUDUZRISKLITEMAS.RISKLITEMASASEBEPOLANHAYVANID AS SEBEPOLANHAYVANID ,
			HKUDUZRISKLITEMAS.KUDUZANTISERUMUYAPILMADURUMU AS ANTISERUMYAPILMADURUMU,
			HKUDUZRISKLITEMAS.TETANOZPROFILAKSISIYAPILMADURUMU AS TETANOZYAPILMADURUMU,
			HKUDUZRISKLITEMAS.YARABAKIMIYAPILMADURUMU AS YARABAKIMIYAPILMADURUMU,
			HKUDUZRISKLITEMAS.OLAYINGERCEKLESTIGIADRES AS GERCEKLESTIGIADRES,
			HKUDUZRISKLITEMAS.BUCAKID AS BUCAKID,
            HKUDUZRISKLITEMAS.CSBM AS CSBM, 
			HKUDUZRISKLITEMAS.DISKAPI AS DISKAPI,
			HKUDUZRISKLITEMAS.ICKAPI AS ICKAPI,
			HKUDUZRISKLITEMAS.ILCEID AS ILCEID,
			HKUDUZRISKLITEMAS.ILID AS ILID,
			HKUDUZRISKLITEMAS.KOYID AS KOYID,
			HKUDUZRISKLITEMAS.MAHALLEID AS MAHALLEID,
			HKUDUZRISKLITEMAS.TELEFONTIPIID AS TELEFONTIPIID,
			HKUDUZRISKLITEMAS.TELEFONNO AS TELEFONNO,
			RISKLITEMASTIP.KUDUZRISKLITEMASTIPIADI AS RISKLITEMASTIPI,
			PKUDUZPROFLAKSI.KISIYEPLANLANANKUDUZPROFLAKSISIADI AS KUDUZPROFLAKSIADI,  
			TEMASASEBEPOLANHAYVAN.RISKLITEMASASEBEPOLANHAYVANADI AS SEBEPOLANHAYVANADI,
			TBUCAK.BUCAKADI AS BUCAK,
			TIL.IL AS TIL_IL,  
			TILCENFS.ILCEADI AS TILCENFS_ILCEADI,
			TKOY.KOYADI,
			TSKRSTELEFONTIPI.ADI AS TELEFONTIPI			
	INTO #TMPKUDUZRISKLITEMAS
	FROM HDOSYA WITH(NOLOCK)
	 INNER JOIN HMUAYENE WITH(NOLOCK) ON HMUAYENE.HDOSYAID = HDOSYA.HDOSYAID
	 LEFT JOIN HKUDUZRISKLITEMAS  WITH(NOLOCK) ON HKUDUZRISKLITEMAS.HMUAYENEID = HMUAYENE.HMUAYENEID
	 LEFT JOIN TSKRSKUDUZRISKLITEMASTIPI RISKLITEMASTIP  WITH(NOLOCK) ON RISKLITEMASTIP.KUDUZRISKLITEMASTIPIKODU = HKUDUZRISKLITEMAS.RISKLITEMASTIPIID
	 LEFT JOIN TSKRSKISIYEPLANLANANKUDUZPROFLAKSISI PKUDUZPROFLAKSI  WITH(NOLOCK) ON PKUDUZPROFLAKSI.KISIYEPLANLANANKUDUZPROFLAKSISIKODU = HKUDUZRISKLITEMAS.KISIYEPLANLANANPROFLAKSIID
	 LEFT JOIN TSKRSRISKLITEMASASEBEPOLANHAYVAN TEMASASEBEPOLANHAYVAN  WITH(NOLOCK) ON TEMASASEBEPOLANHAYVAN.RISKLITEMASASEBEPOLANHAYVANKODU = HKUDUZRISKLITEMAS.RISKLITEMASASEBEPOLANHAYVANID
	 LEFT JOIN TBUCAK  WITH(NOLOCK) ON TBUCAK.BUCAKID = HKUDUZRISKLITEMAS.BUCAKID 
	 LEFT JOIN	TILCEMAH WITH(NOLOCK) ON TILCEMAH.MAHALLEID = HKUDUZRISKLITEMAS.MAHALLEID   
	 LEFT JOIN	TILCENFS WITH(NOLOCK) ON TILCENFS.ILCEID = HKUDUZRISKLITEMAS.ILCEID  
 	 LEFT JOIN	TIL WITH(NOLOCK) ON TIL.ILID = HKUDUZRISKLITEMAS.ILID  
	 LEFT JOIN	TSKRSTELEFONTIPI WITH(NOLOCK) ON TSKRSTELEFONTIPI.KODU = HKUDUZRISKLITEMAS.TELEFONTIPIID  
	 LEFT JOIN	TKOY WITH(NOLOCK) ON TKOY.KOYID = HKUDUZRISKLITEMAS.KOYID 
	WHERE HDOSYA.HDOSYAID = @HDOSYAID
		AND (@HKUDUZRISKLITEMAS=0 OR HKUDUZRISKLITEMAS.HKUDUZRISKLITEMASID = @HKUDUZRISKLITEMAS)
	--	AND (@TUMUNUTEKRAR=1 OR (@TUMUNUTEKRAR=0 AND ISNULL(HYIZLEM.OZELLIKLIIZLEMGONDERILDI,0)=1))
 
	
	
	IF (SELECT HDOSYA_SUBEID FROM #TMPDOSYA WHERE ISNULL(HDOSYA_SNOTAKIPNO,'')='') > 0 
		SET @HATA = @HATA + 'Sağlık Net hasta takip numarası alınmadan USS sistemine Kuduz izlem kaydı yapılamaz. '
			      
	IF (SELECT COUNT(*) FROM #TMPKUDUZRISKLITEMAS) = 0
	BEGIN
		SET @SAYIHATA = 1 
		SET @MESAJ = @MESAJ + 'Silinecek kuduz riskli temas bulunmadı.'
	END

	IF NOT EXISTS(SELECT TELEFONTIPIID FROM #TMPKUDUZRISKLITEMAS )
		SET @HATA =@HATA+  'Telefon tipi bilgisi girilmemiş! '

	IF NOT EXISTS(SELECT TELEFONNO FROM #TMPKUDUZRISKLITEMAS )
		SET @HATA =@HATA+  'Telefon numara bilgisi girilmemiş! '

	IF NOT EXISTS(SELECT KISIYEPLANLANANPROFLAKSIID FROM #TMPKUDUZRISKLITEMAS )
		SET @HATA =@HATA+  'Kişiye planlanan Kuduz Profilaksisi bilgisi girilmemiş! '

	IF NOT EXISTS(SELECT SEBEPOLANHAYVANID FROM #TMPKUDUZRISKLITEMAS )
		SET @HATA =@HATA+  'Kuduz Riskli temasa Sebep olan hayvan bilgisi girilmemiş! '

	IF NOT EXISTS(SELECT RISKLITEMASTIPID FROM #TMPKUDUZRISKLITEMAS )
		SET @HATA =@HATA+  'Kuduz Riskli temas tipi bilgisi girilmemiş! '

	IF NOT EXISTS(SELECT KUDUZRISKLIREMASTARIH FROM #TMPKUDUZRISKLITEMAS )
		SET @HATA =@HATA+  'Kuduz Riskli temas tarihi bilgisi girilmemiş! '

	IF (SELECT COUNT(*) FROM #TMPDOSYA WHERE HDOSYA_SUBEID IS NULL) > 0 
		SET @HATA = @HATA + 'İşlemin şube kaydı bulunamadı! '

	IF (SELECT HDOSYA_SUBEID FROM #TMPDOSYA WHERE ISNULL(HDOSYA_SNOTAKIPNO,'')='') > 0 
		SET @HATA = @HATA + 'Sağlık Net hasta takip numarası alınmadan USS sistemine Kuduz izlem kaydı yapılamaz. '

	IF @HATA='' AND @SAYIHATA=0
	BEGIN		
		SELECT @SUBEID = HDOSYA_SUBEID FROM #TMPDOSYA
		DECLARE @TBLXMLBASLIK TABLE (XMLBASLIK NVARCHAR(2000), HATA NVARCHAR(2000),MESAJ NVARCHAR(2000))
		INSERT INTO @TBLXMLBASLIK (XMLBASLIK, HATA, MESAJ) EXEC SPUSS_000_XML_BASLIK @SUBEID		
		SELECT @HATA=@HATA+HATA, @MESAJ=@MESAJ+MESAJ, @XMLBASLIK=XMLBASLIK FROM @TBLXMLBASLIK		
	END

	IF @HATA = '' AND @SAYIHATA = 0
	BEGIN
	

					
							BEGIN TRY

								INSERT INTO @GONDERIMTABLOSU (GONDERILECEKXML,HATA,MESAJ,XMLBASLIK,TABLOID,MINID,MAXID)
								SELECT							 
									(

											SELECT 
												NEWID() AS 'messageGuid/@value',
												'1' AS 'messageType/@version',
												'0a9ba485-e7e0-4abb-9c86-0a14fd364bb8' AS 'messageType/@codeSystemGuid' ,
												'237' AS 'messageType/@code',
												'Kuduz Riskli Temas Bildirim Veri Seti' AS 'messageType/@value' ,
												LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),GETDATE(),120),' ',''),'-',''),':',''),12) AS  'documentGenerationTime/@value',
												(	 
													 SELECT
														'1' AS  'healthcareProvider/@version',
														 'c3eade04-4f91-5dab-e043-14031b0ac9f9' AS  'healthcareProvider/@codeSystemGuid',
														SAGLIKNETKURUMKODU AS 'healthcareProvider/@code',
														SUBELER_SUBEADI as 'healthcareProvider/@value'  
													 FOR XML PATH('author'), TYPE
												  ),
												  --'C740D0288ED4C45FE0407C0A04162BDD'  AS 'firmaKodu/@value',
												  SNOKTSFIRMAKODU AS 'firmaKodu/@value',
												  (

													 SELECT--RECORD DATA
														(
															SELECT
															   ISNULL(HDOSYA_SNOTAKIPNO,'') AS 'SYSTakipNo/@value'
															FOR XML PATH('HASTA_TAKIP_BILGISI'), TYPE
														),
														(																														
															SELECT --KUDUZ_RISKLI_TEMAS_BILDIRIM
															CASE WHEN ISNULL(GERCEKLESTIGIADRES,'') = ''  THEN GERCEKLESTIGIADRES END AS 'OLAYIN_GERCEKLESTIGI_ADRES/@value',--Koşullu
															LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),KUDUZRISKLIREMASTARIH,120),' ',''),'-',''),':',''),12) AS 'RISKLI_TEMAS_TARIHI/@value',--Zorunlu
															'1' AS 'KUDUZ_ANTISERUMU_YAPILMA_DURUMU/@version',
															'c9d56fee-d143-4602-ad7b-ba131ef92ad9' AS 'KUDUZ_ANTISERUMU_YAPILMA_DURUMU/@codeSystemGuid',
															CASE WHEN ANTISERUMYAPILMADURUMU = 1 THEN '1' ELSE '2' END AS 'KUDUZ_ANTISERUMU_YAPILMA_DURUMU/@code',
															CASE WHEN ANTISERUMYAPILMADURUMU = 1 THEN 'EVET' ELSE 'HAYIR' END AS 'KUDUZ_ANTISERUMU_YAPILMA_DURUMU/@value',
															'1' AS 'TETANOZ_PROFILAKSISI_YAPILMA_DURUMU/@version',
															'c9d56fee-d143-4602-ad7b-ba131ef92ad9' AS 'TETANOZ_PROFILAKSISI_YAPILMA_DURUMU/@codeSystemGuid',
															CASE WHEN TETANOZYAPILMADURUMU = 1 THEN '1' ELSE '2' END AS 'TETANOZ_PROFILAKSISI_YAPILMA_DURUMU/@code',
															CASE WHEN TETANOZYAPILMADURUMU = 1 THEN 'EVET' ELSE 'HAYIR' END AS 'TETANOZ_PROFILAKSISI_YAPILMA_DURUMU/@value',
														    '1' AS 'YARA_BAKIMI_YAPILMA_DURUMU/@version',
															'c9d56fee-d143-4602-ad7b-ba131ef92ad9' AS 'YARA_BAKIMI_YAPILMA_DURUMU/@codeSystemGuid',
															CASE WHEN YARABAKIMIYAPILMADURUMU = 1 THEN '1' ELSE '2' END AS 'YARA_BAKIMI_YAPILMA_DURUMU/@code',
															CASE WHEN YARABAKIMIYAPILMADURUMU = 1 THEN 'EVET' ELSE 'HAYIR' END AS 'YARA_BAKIMI_YAPILMA_DURUMU/@value',

															'1' AS 'RISKLI_TEMAS_TIPI/@version', --Zorunlu														
															'76578724-3b1a-433e-aba6-40ffd47d6dd7'  AS 'RISKLI_TEMAS_TIPI/@codeSystemGuid',
														    ISNULL(RISKLITEMASTIPID,0) AS 'RISKLI_TEMAS_TIPI/@code',
															RISKLITEMASTIPI AS 'RISKLI_TEMAS_TIPI/@value',															
														    (SELECT --BEYAN_ADRES_BILGISI  --Seçimli
																ISNULL(BUCAKID,'') AS 'BUCAK_KODU/@value',
																ISNULL(CSBM,'') AS 'CSBM_KODU/@value',
																ISNULL(DISKAPI,'') AS 'DIS_KAPI/@value',
																ISNULL(ICKAPI,'') AS 'IC_KAPI/@value',

																'1' AS 'ILCE_KODU/@version', 														
																'96184a9e-537c-4a70-8b3a-27a7a170355b'  AS 'ILCE_KODU/@codeSystemGuid',
																ISNULL(ILCEID,0) AS 'ILCE_KODU/@code',
																TILCENFS_ILCEADI AS 'ILCE_KODU/@value',	

																'1' AS 'IL_KODU/@version',													
																'5bc508fa-782a-4d75-831f-34948e350e72'  AS 'IL_KODU/@codeSystemGuid',
																ISNULL(ILID,0) AS 'IL_KODU/@code',
																TIL_IL AS 'IL_KODU/@value',

																ISNULL(KOYID,0) AS 'KOY_KODU/@value',
																ISNULL(MAHALLEID,0) AS 'MAHALLE_KODU/@value'
															    WHERE (ILID IS NOT NULL) AND (ILCEID IS NOT NULL)
																FOR XML PATH('BEYAN_ADRES_BILGISI'),TYPE),
																(SELECT --KISIYE_PLANLANAN_KUDUZ_PROFILAKSISI_BILGISI
																	'1' AS 'KISIYE_PLANLANAN_KUDUZ_PROFILAKSISI/@version',													
																	'f71eb1ea-1854-4836-9319-3c549b8d49a5'  AS 'KISIYE_PLANLANAN_KUDUZ_PROFILAKSISI/@codeSystemGuid',
																	ISNULL(KISIYEPLANLANANPROFLAKSIID,0) AS 'KISIYE_PLANLANAN_KUDUZ_PROFILAKSISI/@code',
																	KUDUZPROFLAKSIADI AS 'KISIYE_PLANLANAN_KUDUZ_PROFILAKSISI/@value'
																	FOR XML PATH('KISIYE_PLANLANAN_KUDUZ_PROFILAKSISI_BILGISI'),TYPE),
																(SELECT --RISKLI_TEMASA_SEBEP_OLAN_HAYVAN_BILGISI
																	'1' AS 'RISKLI_TEMASA_SEBEP_OLAN_HAYVAN/@version',													
																	'81eac734-5328-4f90-bae0-7191311ebbaf'  AS 'RISKLI_TEMASA_SEBEP_OLAN_HAYVAN/@codeSystemGuid',
																	ISNULL(SEBEPOLANHAYVANID,0) AS 'RISKLI_TEMASA_SEBEP_OLAN_HAYVAN/@code',
																	SEBEPOLANHAYVANADI AS 'RISKLI_TEMASA_SEBEP_OLAN_HAYVAN/@value'
																	FOR XML PATH('RISKLI_TEMASA_SEBEP_OLAN_HAYVAN_BILGISI'),TYPE),
																(SELECT --TELEFON_BILGISI
																    TELEFONNO AS 'TELEFON_NUMARASI/@value',
																	'1' AS 'TELEFON_TIPI/@version',													
																	'e387c902-9062-4406-85ef-63e085754f9e'  AS 'TELEFON_TIPI/@codeSystemGuid',
																	ISNULL(TELEFONTIPIID,0) AS 'TELEFON_TIPI/@code',
																	TELEFONTIPI AS 'TELEFON_TIPI/@value'
																	FOR XML PATH('TELEFON_BILGISI'),TYPE)
															FROM #TMPKUDUZRISKLITEMAS
																	
															FOR XML PATH('KUDUZ_RISKLI_TEMAS_BILDIRIM'), TYPE
														)
												  FOR XML PATH('recordData'), TYPE
											  )
	
										FROM #TMPDOSYA 

										FOR XML PATH (''), ROOT('SYSMessage')

									) AS GONDERILECEKXML,
									@HATA AS HATA, 
									@MESAJ AS MESAJ,
									@XMLBASLIK AS XMLBASLIK,
									@HKUDUZRISKLITEMAS AS TABLOID,
									'' AS MINID,
									'' AS MAXID

							END TRY
							BEGIN CATCH
								SET @HATA = ERROR_MESSAGE()
								IF @HATA = ''
									SET @HATA = 'Bilinmeyen bir hata oluştu'

								INSERT INTO @GONDERIMTABLOSU (GONDERILECEKXML,HATA,MESAJ,XMLBASLIK,TABLOID,MINID,MAXID)
								SELECT	'' AS GONDERILECEKXML,
										@HATA AS HATA, 
										@MESAJ AS MESAJ,
										'' AS XMLBASLIK,
										@HKUDUZRISKLITEMAS AS TABLOID,
										0 AS MINID,
										0 AS MAXID
			

							END CATCH				


		

	END
	ELSE
	BEGIN

		INSERT INTO @GONDERIMTABLOSU (GONDERILECEKXML,HATA,MESAJ,XMLBASLIK,TABLOID,MINID,MAXID)
		SELECT	'' AS GONDERILECEKXML,
				@HATA AS HATA, 
				@MESAJ AS MESAJ,
				'' AS XMLBASLIK,
				@HKUDUZRISKLITEMAS AS TABLOID,
				0 AS MINID,
				0 AS MAXID	

		SET @HATA = ''	 
	END


	
	IF OBJECT_ID('tempdb..#TMPDOSYA') IS NOT NULL 
		DROP TABLE #TMPDOSYA

	IF OBJECT_ID('tempdb..#TMPKUDUZRISKLITEMAS') IS NOT NULL 
		DROP TABLE #TMPKUDUZRISKLITEMAS


	SELECT * FROM @GONDERIMTABLOSU


END
