IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'SERVISENTEGRASYONTANIM' AND TABLE_SCHEMA = 'DBO') 
BEGIN
    IF EXISTS (SELECT *  FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS WHERE CONSTRAINT_NAME = 'FK_SERVISENTEGRASYON_SERVISENTEGRASYONTANIM' AND CONSTRAINT_SCHEMA = 'DBO')
	   ALTER TABLE [dbo].[SERVISENTEGRASYON] DROP CONSTRAINT [FK_SERVISENTEGRASYON_SERVISENTEGRASYONTANIM] 
    DELETE FROM [dbo].[SERVISENTEGRASYONTANIM]
END
ELSE
BEGIN
    CREATE TABLE [dbo].[SERVISENTEGRASYONTANIM](
	    [GONDERIMFONKSIYONADI] [nvarchar](50) NOT NULL,
	    [SERVISTIPI] [tinyint] NULL,
	    [KAYITTABLOADI] [varchar](25) NULL,
	    [KAYITALANADI] [varchar](25) NULL,
	    [GONDERILECEKLERISECSORGU] [nvarchar](max) NULL,
	    [ISTEKSQL] [nvarchar](max) NULL,
	    [CEVAPSQL] [nvarchar](max) NULL,
	    [NOTLAR] [nvarchar](250) NULL,
	    [GONDERIMPERYODU] [varchar](20) NULL,
	    [ONCELIK] [tinyint] NULL,
	CONSTRAINT [PK_SERVISENTEGRASYONTANIM] PRIMARY KEY CLUSTERED 
    (
	    [GONDERIMFONKSIYONADI] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
END
GO
INSERT [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI], [SERVISTIPI], [KAYITTABLOADI], [KAYITALANADI], [GONDERILECEKLERISECSORGU], [ISTEKSQL], [CEVAPSQL], [NOTLAR], [GONDERIMPERYODU], [ONCELIK]) VALUES (N'ASI_VERI_SETI', 1, N'HASILAR', N'HASIID', N'SELECT HASILAR.HASIID AS TABLOID,
       ISNULL(HDOSYA.SUBEID, 1) AS SUBEID
FROM HASILAR
     INNER JOIN HMUAYENE WITH(NOLOCK) ON HASILAR.HMUAYENEID = HMUAYENE.HMUAYENEID
     INNER JOIN HDOSYA WITH(NOLOCK) ON HMUAYENE.HDOSYAID = HDOSYA.HDOSYAID
WHERE ISNULL(HASILAR.SNOASIGONDERILDI, 0) = 0
	 AND HMUAYENE.IPTAL=0
	 AND HDOSYA.HDIPTAL=0
      AND HASILAR.KYTARIH > DATEADD(MINUTE, -5, GETDATE())', N'DECLARE @HATA NVARCHAR(2000) =''''
DECLARE @SUBEID VARCHAR(10) = ''#SUBEID#''
DECLARE @HASIID VARCHAR(10) = ''#TABLOID#''

IF
(SELECT COUNT(*) FROM SUBELER WHERE SUBEID = @SUBEID) = 0
BEGIN
    SET @HATA = ''İşlemin şube kaydı bulunamadı! ''
END
 IF ISNULL((SELECT ASIISLEMTURUID FROM HASILAR WHERE HASILAR.HASIID = @HASIID),0) = 1 
	 AND
	ISNULL((SELECT ATSSORGUNO FROM HASILAR WHERE HASILAR.HASIID =  @HASIID),'''') = ''''
BEGIN
	SET @HATA = @HATA + ''Sağlık Net ATS numarası alınmadan USS sistemine aşı kayıdı yapılamaz. ''
END
IF ISNULL((SELECT ASIISLEMTURUID FROM HASILAR WHERE HASILAR.HASIID = @HASIID),0) = 0
	BEGIN
		SET @HATA =@HATA + '' Aşı işlem türü bilgisi boş olamaz. ''
	END
IF (SELECT ASIISLEMTURUID FROM HASILAR WHERE HASILAR.HASIID = @HASIID) = 2
	BEGIN 
		IF ISNULL((SELECT [USER].TCKIMLIKNO
			FROM HASILAR 
				 INNER JOIN [USER] ON [USER].USERID = HASILAR.USERID
				 WHERE HASILAR.HASIID = @HASIID),'''') =''''
			BEGIN 
				SET @HATA = @HATA + '' İşlem Yapan Personel boş olamaz. ''
			END
		IF ISNULL((SELECT BILGIALINANADISOYADI
			FROM HASILAR 					
				WHERE HASILAR.HASIID = @HASIID),'''') =''''
			BEGIN 
				SET @HATA = @HATA + ''Bilgi alınan kişi adı soyadı boş olamaz. ''
			END
		IF ISNULL((SELECT BILGIALINANTELEFON	
			FROM HASILAR 				
				 WHERE HASILAR.HASIID = @HASIID),'''') = ''''
			BEGIN 
				SET @HATA = @HATA + '' Bilgi alınan kişi telefon numarası boş olamaz. ''
		END
		IF ISNULL((SELECT BEYANYAPILDIGIKURUM
			FROM HASILAR 					
				WHERE HASILAR.HASIID = @HASIID),'''') =  ''''
			BEGIN 
				SET @HATA = @HATA + '' Beyana dayalı aşı kaydında yapıldığı kurum numarası boş olamaz. ''
		END
	END
	IF ISNULL((SELECT ASIDOZUID 
			FROM HASILAR					
			WHERE HASILAR.HASIID = @HASIID),0) = 0
			BEGIN 
				SET @HATA = @HATA + '' Aşının Dozu bilgisi boş olamaz. ''
		END
	IF ISNULL((SELECT ASIUYGYERIID 
		FROM HASILAR 				
			 WHERE HASILAR.HASIID = @HASIID),0) = 0
		BEGIN 
			SET @HATA = @HATA + '' Aşı uygulama yeri bilgisi boş olamaz. ''
	END
	IF ISNULL((SELECT ASIUYGSEKLIID 
		FROM HASILAR 				
			 WHERE HASILAR.HASIID = @HASIID),0) = 0
		BEGIN 
			SET @HATA = @HATA + ''Aşının uygulama şekli bilgisi boş olamaz. ''
	END
IF @HATA<>'''' 
BEGIN
    IF NOT EXISTS(SELECT ID FROM SERVISENTEGRASYONHATALARI WHERE SERVISGONDERIMFONKSIYONADI=''ASI_VERI_SETI'' AND KAYITID=@HASIID AND SUBEID=@SUBEID AND HATA=@HATA AND TARIH>DATEADD(DAY,-2,GETDATE()))	
	INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI,SUBEID,KAYITID,HATA,TARIH) VALUES (''ASI_VERI_SETI'',@SUBEID,@HASIID, @HATA, GETDATE())
END
ELSE 
BEGIN
	/*START*/--SILMEYIN ONEMLI
	   SELECT 
	   NEWID() AS ''messageGuid/@value'',
	   ''1'' AS ''messageType/@version'',
	   ''0a9ba485-e7e0-4abb-9c86-0a14fd364bb8'' as ''messageType/@codeSystemGuid'',
	   ''207'' AS ''messageType/@code'',
	   ''Asi 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'',
					ISNULL((SELECT VALUESTR FROM CONFIG WHERE SECTIONSTR=''Saglik-Net'' AND PROGNAME=''MEDISOFT'' AND KEYNAME= @SUBEID+'' numaralı şubenin kurum numarası''),'''') as ''healthcareProvider/@code'',
					SUBELER.SUBEADI as ''healthcareProvider/@value''  
					FOR XML PATH(''author''), TYPE),
				   ''C740D0288ED4C45FE0407C0A04162BDD'' as ''firmaKodu/@value'' ,
					(SELECT 
					(SELECT
					 ISNULL((SELECT CASE
						WHEN HMUAYENEISL.HMUAYENEISLID IS NOT NULL
							THEN HMUAYENEISL.SNOTAKIPNO
						WHEN HMUAYENEISL.HMUAYENEISLID IS NULL	
							THEN 
						(SELECT CASE WHEN NOT EXISTS
								(SELECT HYATIS.SNOTAKIPNO
									WHERE HYATIS.HMUAYENEID = HMUAYENE.HMUAYENEID 
										AND (HESAPISLYATIS.UYGDRID) = HMUAYENE.HMDRID )
									THEN ''''
										ELSE
										(SELECT HYATIS.SNOTAKIPNO 
											WHERE HYATIS.HMUAYENEID = HMUAYENE.HMUAYENEID 
												AND HESAPISLYATIS.UYGDRID = HMUAYENE.HMDRID)
								END) 
							END
						FROM HMUAYENE(NOLOCK)
								LEFT JOIN HMUAYENEISL(NOLOCK) ON HMUAYENEISL.HMUAYENEID = HMUAYENE.HMUAYENEID
								LEFT JOIN HYATIS(NOLOCK) ON HYATIS.HMUAYENEID = HMUAYENE.HMUAYENEID
								LEFT JOIN HESAPISL HESAPISLYATIS ON HESAPISLYATIS.HESAPISLID = HYATIS.HESAPISLID AND HESAPISLYATIS.IPTAL = 0 AND HESAPISLYATIS.ONAYLI = 1 AND ISNULL(HESAPISLYATIS.TEKLIF, 0) = 0
								WHERE HMUAYENE.HMUAYENEID = HASILAR.HMUAYENEID),'''')
								 AS ''SYSTakipNo/@value''
						FOR XML PATH(''HASTA_TAKIP_BILGISI''), TYPE)
						,(SELECT 
						
								''1'' AS ''ASI_ISLEM_TURU/@version'',
								''5fff8778-89a4-4045-b33e-a7ffe0de0179'' AS ''ASI_ISLEM_TURU/@codeSystemGuid'',
								 HASILAR.ASIISLEMTURUID AS ''ASI_ISLEM_TURU/@code'',
						(SELECT CASE HASILAR.ASIISLEMTURUID
							WHEN 1 
								THEN ''Gerçek Zamanlı''
							ELSE ''Beyana Dayalı''
								END) AS ''ASI_ISLEM_TURU/@value'',
						(SELECT CASE WHEN 
							HASILAR.ASIISLEMTURUID = 2 AND HASILAR.BEYANYAPILDIGIKURUM <> ''''
								THEN
									''1'' END) AS ''IZLEMIN_YAPILDIGI_YER/@version'',
						(SELECT CASE WHEN 
							HASILAR.ASIISLEMTURUID = 2 AND HASILAR.BEYANYAPILDIGIKURUM <> ''''
								THEN
										''c3eade04-4f91-5dab-e043-14031b0ac9f9'' END) AS ''IZLEMIN_YAPILDIGI_YER/@codeSystemGuid'',
						(SELECT CASE WHEN 
							HASILAR.ASIISLEMTURUID = 2 AND HASILAR.BEYANYAPILDIGIKURUM <> ''''
								THEN
									HASILAR.BEYANYAPILDIGIKURUM END) AS ''IZLEMIN_YAPILDIGI_YER/@code'',
							(SELECT CASE WHEN 
									HASILAR.ASIISLEMTURUID = 2 AND HASILAR.BEYANYAPILDIGIKURUM <> ''''
										THEN
											(SELECT TSNKURUM.ADI FROM TSNKURUM WHERE TSNKURUM.KURUMKODU = HASILAR.BEYANYAPILDIGIKURUM) END) AS ''IZLEMIN_YAPILDIGI_YER/@value'',
							(SELECT [USER].TCKIMLIKNO FROM [USER] WHERE [USER].USERID = HASILAR.USERID) AS ''ISLEM_YAPAN/@value'',
							ISNULL(HASILAR.BILGIALINANADISOYADI, '''') AS ''BILGI_ALINAN_KISI_ADI_SOYADI/@value'',
							ISNULL(HASILAR.BILGIALINANTELEFON,'''') AS ''BILGI_ALINAN_KISI_TEL/@value'',
							LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),HASILAR.YAPILDITRH,120),'' '',''''),''-'',''''),'':'',''''),12) AS ''ASI_YAPILMA_ZAMANI/@value'',
							(SELECT 
								(SELECT CASE WHEN HASILAR.OZELDURUMNEDENIID IS NOT NULL THEN 
									''1'' END) AS ''ASI_OZEL_DURUM_NEDENI/@version'',
								(SELECT CASE WHEN HASILAR.OZELDURUMNEDENIID IS NOT NULL THEN 
								   ''0a8f681f-4ed0-4830-9dc9-a0295686398b'' END)  AS ''ASI_OZEL_DURUM_NEDENI/@codeSystemGuid'',
								(SELECT CASE WHEN HASILAR.OZELDURUMNEDENIID IS NOT NULL THEN 
								   HASILAR.OZELDURUMNEDENIID END) AS ''ASI_OZEL_DURUM_NEDENI/@code'',
								(SELECT TASIOZELDURUMNEDENI.ASIOZELDURUMNEDENI FROM TASIOZELDURUMNEDENI WHERE 
										TASIOZELDURUMNEDENI.ASIOZELDURUMNEDENIID = HASILAR.OZELDURUMNEDENIID) AS''ASI_OZEL_DURUM_NEDENI/@value'',
								''1'' AS ''ASI/@version'',
								 ''c3dbbb53-3b59-06e1-e043-14031b0a9fe6'' AS ''ASI/@codeSystemGuid'',
								 (SELECT TSNASI.ASIKODU FROM TSNASI WHERE TSNASI.ASIID = HASILAR.ASIID) ''ASI/@code'',
								 (SELECT TSNASI.ASI FROM TSNASI WHERE TSNASI.ASIID = HASILAR.ASIID) AS ''ASI/@value'',
								 ''1'' AS ''ASI_DOZU/@version'',
								 ''da92a50e-b1a8-4e6a-be8c-2b6ca2c0a58b'' AS ''ASI_DOZU/@codeSystemGuid'',
								 ISNULL(CONVERT(VARCHAR(10),HASILAR.ASIDOZUID),'''')
									 AS ''ASI_DOZU/@code'',
								 (SELECT CASE HASILAR.ASIDOZUID
									WHEN 1
										THEN ''Aşının birinci dozu''
									WHEN 2 THEN 
										''Aşının ikinci dozu''
									WHEN 3 THEN 
										''Aşının üçüncü dozu''
									WHEN 4 THEN 
										''Aşının dördüncü dozu''
									WHEN 5 THEN 
										''Aşının beşinci dozu''
									WHEN 6 THEN 
										''Aşının rapel dozu''
									WHEN 7 THEN 
										''9-11 AY dozu''
									WHEN 8 THEN 
										''SALGIN/KAMPANYA AŞILAMASI''
									WHEN 9 THEN 
										''ÖZEL DURUM AŞI DOZU''
									ELSE ''''	END) AS ''ASI_DOZU/@value'',
								''1'' AS ''ASININ_UYGULAMA_SEKLI/@version'',
								''f20210e0-d780-4961-87eb-3323000b7dbb'' AS ''ASININ_UYGULAMA_SEKLI/@codeSystemGuid'',
								ISNULL(CONVERT(VARCHAR(10),HASILAR.ASIUYGSEKLIID),'''')
									 AS ''ASININ_UYGULAMA_SEKLI/@code'',
								(SELECT CASE HASILAR.ASIUYGSEKLIID 
									WHEN 1 THEN
											''İntra Musküler (IM)''
									WHEN 2 THEN 
											''İntradermal (ID)''
									WHEN 3 THEN 
											''Oral''
									WHEN 4 THEN 
											''Subcutan (SC)''
									WHEN 98 THEN
											''Diğer''	
									ELSE ''''
									END) AS ''ASININ_UYGULAMA_SEKLI/@value'',
								''1'' AS ''ASININ_UYGULAMA_YERI/@version'',
								''eb66330f-2b96-40a7-931e-fc9aed2b9409'' AS ''ASININ_UYGULAMA_YERI/@codeSystemGuid'',
								ISNULL(CONVERT(VARCHAR(10),HASILAR.ASIUYGSEKLIID),'''')
									AS ''ASININ_UYGULAMA_YERI/@code'',
								(SELECT CASE HASILAR.ASIUYGSEKLIID 
									WHEN  1
										THEN ''Ağız''
									WHEN 2
										THEN ''Sağ Deltoid Bölge''
									WHEN 3
										THEN ''Sağ Uyluk''
									WHEN 4
										THEN ''Sol Deltoid Bölge''
									WHEN 5 
										THEN ''Sol Uyluk''
									WHEN 98
										THEN  ''Diğer''	
									ELSE ''''
									END) AS ''ASININ_UYGULAMA_YERI/@value'',
								ISNULL(HASILAR.ATSSORGUNO,'''') AS ''ASI_SORGU_NUMARASI/@value''
							 FROM HASILAR 
							 INNER JOIN HMUAYENE ON HASILAR.HMUAYENEID = HMUAYENE.HMUAYENEID
							 INNER JOIN HDOSYA ON HMUAYENE.HDOSYAID=HDOSYA.HDOSYAID
							 WHERE	 HDOSYA.SUBEID = @SUBEID AND 
									 HASILAR.HASIID = @HASIID
						FOR XML PATH(''ASI_BILGISI''),TYPE)
					FOR XML PATH(''ASI_VERI_SETI''), TYPE)
				FOR XML PATH(''recordData''), TYPE)
				
				FROM HASILAR WITH(NOLOCK)
				INNER JOIN HMUAYENE WITH(NOLOCK) ON HASILAR.HMUAYENEID = HMUAYENE.HMUAYENEID
				INNER JOIN HDOSYA WITH(NOLOCK) ON HMUAYENE.HDOSYAID=HDOSYA.HDOSYAID
				INNER JOIN SUBELER WITH(NOLOCK) ON CONVERT(VARCHAR, SUBELER.SUBEID) = HDOSYA.SUBEID
				WHERE	SUBELER.SUBEID = @SUBEID AND
						HASILAR.HASIID = @HASIID
		FOR XML PATH (''''), ROOT(''SYSMessage'')
 /*END*/--SILMEYIN ONEMLI
END', N'DECLARE @SERVISENTEGRASYONID INT
DECLARE @XML1 XML
DECLARE @XML2 VARCHAR(MAX)
DECLARE @XML3 XML
DECLARE @SNOTakipNo VARCHAR(20)
DECLARE @SONUCKODU VARCHAR(20)
DECLARE @SONUCMESAJI VARCHAR(1000)
SET @SERVISENTEGRASYONID = ''#SERVISENTEGRASYONID#''
SET @SNOTakipNo = ''''
SET @XML1 = ''''
SET @XML2 = ''''
SET @XML3 = ''''
SET @XML1 = (SELECT CEVAPXML FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID)
SET @XML2 = (SELECT @XML1.value (''declare namespace s =  "http://schemas.xmlsoap.org/soap/envelope/"; (/s:Envelope/s:Body/*)[1]'',''varchar(4000)'') AS id)
	--GET SONUCKODU FOR HATA IF ANY 
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCKODU = (SELECT T.C.value(''@value'', ''varchar(100)'') AS SONUCKODU
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucKodu)'') AS T(C))
	--GET SONUCMESAJI
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCMESAJI = (SELECT T.C.value(''@value'', ''varchar(1000)'') AS SONUCMESAJI
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucMesaji)'') AS T(C))
	IF	@SONUCKODU = ''S0000''  
		BEGIN
		  UPDATE SERVISENTEGRASYON SET DURUM=1,DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1,CEVAPZAMANI=GETDATE() WHERE ID=@SERVISENTEGRASYONID
		  UPDATE HASILAR SET HASILAR.SNOASIGONDERILDI = 1 
			FROM HASILAR
			 JOIN SERVISENTEGRASYON SE ON SE.KAYITID = HASILAR.HASIID
			 WHERE SE.ID = @SERVISENTEGRASYONID
		END
	
	ELSE 
		BEGIN
			UPDATE SERVISENTEGRASYON SET DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1 WHERE ID=@SERVISENTEGRASYONID
			
			INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, SERVISENTEGRASYONID, SONUCKODU, HATA, TARIH) SELECT SERVISGONDERIMFONKSIYONADI, SERVISENTEGRASYON.SUBEID, KAYITID, ID, @SONUCKODU, @SONUCMESAJI, GETDATE() FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID AND 0=(SELECT COUNT(*) FROM SERVISENTEGRASYONHATALARI WHERE SERVISENTEGRASYONID = @SERVISENTEGRASYONID)
		END', N'', N'1day', 10)
GO
INSERT [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI], [SERVISTIPI], [KAYITTABLOADI], [KAYITALANADI], [GONDERILECEKLERISECSORGU], [ISTEKSQL], [CEVAPSQL], [NOTLAR], [GONDERIMPERYODU], [ONCELIK]) VALUES (N'AY_SONU_VERI_SETI', 1, NULL, NULL, N'SELECT TOP 4 CONVERT(VARCHAR, USSAYSONUGONDERIM.YIL)+RIGHT(''00''+CONVERT(VARCHAR, USSAYSONUGONDERIM.AY), 2) AS TABLOID,
             USSAYSONUGONDERIM.SUBEID
FROM USSAYSONUGONDERIM WITH(NOLOCK)
WHERE CONVERT(INT, CONVERT(VARCHAR, USSAYSONUGONDERIM.YIL)+RIGHT(''0''+CONVERT(VARCHAR, USSAYSONUGONDERIM.AY), 2)) < CONVERT(INT, LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),GETDATE(),120),'' '',''''),''-'',''''),'':'',''''),6))
ORDER BY CONVERT(INT, CONVERT(VARCHAR, USSAYSONUGONDERIM.YIL)+RIGHT(''0''+CONVERT(VARCHAR, USSAYSONUGONDERIM.AY), 2)) DESC', N'DECLARE @SUBEID VARCHAR(10) = ''#SUBEID#''
DECLARE @YILAY VARCHAR(10) =   ''#TABLOID#''
DECLARE @YIL VARCHAR(10) =   LEFT(@YILAY,4)
DECLARE @AY VARCHAR(10) =  RIGHT(@YILAY,2)
DECLARE @HATA NVARCHAR(2000) = ''''
IF (SELECT COUNT(*) FROM SUBELER WHERE SUBEID = @SUBEID) = 0 
	BEGIN
		SET @HATA =  ''İşlemin şube kaydı bulunamadı!''
	END 
IF @HATA<>''''
BEGIN
	IF NOT EXISTS(SELECT ID FROM SERVISENTEGRASYONHATALARI WHERE SERVISGONDERIMFONKSIYONADI=''AY_SONU_VERI_SETI'' AND KAYITID=@YIL+@AY AND SUBEID=@SUBEID AND HATA=@HATA AND TARIH>DATEADD(DAY,-2,GETDATE()))
	INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI,SUBEID,KAYITID,HATA,TARIH) VALUES (''AY_SONU_VERI_SETI'',@SUBEID,@YIL+@AY,@HATA,GETDATE())
END
/*START*/--SILMEYIN ONEMLI
SELECT 
    NEWID() as ''messageGuid/@value'',
    ''1'' as ''messageType/@version'',
    ''0a9ba485-e7e0-4abb-9c86-0a14fd364bb8'' as ''messageType/@codeSystemGuid'',
    ''408'' as ''messageType/@code'',
    ''Ay Sonu 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'',
            (SELECT VALUESTR FROM CONFIG WHERE KEYNAME = CAST(SUBELER.SUBEID AS VARCHAR) +'' numaralı şubenin Sağlık.NET 2 kullanıcı adı'') as ''healthcareProvider/@code'',
            SUBELER.SUBEADI as ''healthcareProvider/@value''  
            FOR XML PATH(''author''), TYPE
    ),
    ''C740D0288ED4C45FE0407C0A04162BDD'' as ''firmaKodu/@value'',      
    (
	   SELECT 
		  ''1'' as ''KAYIT_YERI/@version'',
		  ''c3eade04-4f91-5dab-e043-14031b0ac9f9'' as ''KAYIT_YERI/@codeSystemGuid'',
		  CONFIG.VALUESTR as ''KAYIT_YERI/@code'',
		  SUBELER.SUBEADI as ''KAYIT_YERI/@value'',
		  @YIL AS ''KALITE_YIL/@value'',
		  @AY AS ''KALITE_AY/@value'',               
		  (
			 SELECT 
				''1'' AS ''KLINIK_KODU/@version'',
                    ''c04bee57-c5d4-443d-e040-7b0a6f146a3d'' AS ''KLINIK_KODU/@codeSystemGuid'',
                    ISNULL(CONVERT(VARCHAR(20),USSAYSONUGONDERIMKLINIKKALITEKLINIK.KLINIKKODU),'''') AS ''KLINIK_KODU/@code'',
				ISNULL(TKLINIK.KLINIKADI,'''') AS  ''KLINIK_KODU/@value'',                        
				(
				    SELECT
					   ''1''AS  ''KLINIK_KALITE_TANIM/@version'',
					   ''4fa9b630-c081-44e1-8b8c-0ef0f967c17d'' AS ''KLINIK_KALITE_TANIM/@codeSystemGuid'',
					   ISNULL(CONVERT(VARCHAR(20),USSAYSONUGONDERIMKLINIKKALITE.KLINIKKALITEKOD),'''') AS ''KLINIK_KALITE_TANIM/@code'',
					   ISNULL(TKLINIKKALITE.KLINIKKALITEADI,'''') AS ''KLINIK_KALITE_TANIM/@value'', 
					   ISNULL(CONVERT(VARCHAR(20),USSAYSONUGONDERIMKLINIKKALITEKLINIK.KLINIKKALITESAYI),'''') AS ''KLINIK_KALITE_SAYI/@value''			
					   FOR XML PATH(''KLINIK_KALITE_BILGISI''), TYPE
				)
									
			 FROM   USSAYSONUGONDERIM WITH(NOLOCK)
			 JOIN   USSAYSONUGONDERIMKLINIKKALITE WITH(NOLOCK) ON USSAYSONUGONDERIMKLINIKKALITE.USSAYSONUGONDERIMID = USSAYSONUGONDERIM.USSAYSONUGONDERIMID	   
			 JOIN   USSAYSONUGONDERIMKLINIKKALITEKLINIK WITH(NOLOCK) ON USSAYSONUGONDERIMKLINIKKALITEKLINIK.USSAYSONUGONDERIMKLINIKKALITEID = USSAYSONUGONDERIMKLINIKKALITE.USSAYSONUGONDERIMKLINIKKALITEID
	   		 JOIN   TKLINIKKALITE WITH(NOLOCK) ON USSAYSONUGONDERIMKLINIKKALITE.KLINIKKALITEKOD = TKLINIKKALITE.KLINIKKALITEKOD
			 JOIN   TKLINIK WITH(NOLOCK) ON USSAYSONUGONDERIMKLINIKKALITEKLINIK.KLINIKKODU = TKLINIK.KLINIKKODU						
			 WHERE	
				    USSAYSONUGONDERIM.YIL = CONVERT(INT,@YIL) 
				AND USSAYSONUGONDERIM.AY = CONVERT(INT,@AY)
				AND CONVERT(VARCHAR, SUBEID) = @SUBEID			
			 FOR XML PATH(''KLINIK_KODU_KALITE_BILGISI''), TYPE
		  )
	   FOR XML PATH(''AY_SONU_VERI_SETI''),ROOT(''recordData''), TYPE
    )  
    FROM SUBELER (NOLOCK)
    LEFT JOIN CONFIG (NOLOCK)ON KEYNAME = CAST(SUBELER.SUBEID AS VARCHAR) + '' numaralı şubenin Sağlık.NET 2 kullanıcı adı''
    WHERE  CONVERT(VARCHAR, SUBEID) = @SUBEID
    FOR XML PATH (''''), ROOT(''SYSMessage'')
    /*END*/--SILMEYIN ONEMLI
', N'DECLARE @SERVISENTEGRASYONID INT
DECLARE @XML1 XML
DECLARE @XML2 VARCHAR(MAX)
DECLARE @XML3 XML
DECLARE @SONUCKODU VARCHAR(20)
DECLARE @SONUCMESAJI VARCHAR(1000)
SET @SERVISENTEGRASYONID = ''#SERVISENTEGRASYONID#''
SET @XML1 = ''''
SET @XML2 = ''''
SET @XML3 = ''''
SET @XML1 = (SELECT CEVAPXML FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID)
SET @XML2 = (SELECT @XML1.value (''declare namespace s =  "http://schemas.xmlsoap.org/soap/envelope/"; (/s:Envelope/s:Body/*)[1]'',''varchar(4000)'') AS id)
	--GET SONUCKODU FOR HATA IF ANY 
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCKODU = (SELECT T.C.value(''@value'', ''varchar(100)'') AS SONUCKODU
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucKodu)'') AS T(C))
	--GET SONUCMESAJI
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCMESAJI = (SELECT T.C.value(''@value'', ''varchar(1000)'') AS SONUCMESAJI
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucMesaji)'') AS T(C))
	IF	@SONUCKODU = ''S0000''  
		BEGIN
			UPDATE SERVISENTEGRASYON SET DURUM=1,DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1,CEVAPZAMANI=GETDATE() WHERE ID=@SERVISENTEGRASYONID
			UPDATE USSAYSONUGONDERIM SET USSAYSONUGONDERIM.GONDERIMTARIHI = GETDATE()
			FROM USSAYSONUGONDERIM
			 JOIN SERVISENTEGRASYON SE ON SE.KAYITID = CONVERT(VARCHAR,USSAYSONUGONDERIM.YIL) + RIGHT(''0''+CONVERT(VARCHAR,USSAYSONUGONDERIM.AY),2) AND USSAYSONUGONDERIM.SUBEID = SE.SUBEID
			 WHERE SE.ID = @SERVISENTEGRASYONID
		END
	
	ELSE 
		BEGIN
			UPDATE SERVISENTEGRASYON SET DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1 WHERE ID=@SERVISENTEGRASYONID
			
			
			INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, SERVISENTEGRASYONID, SONUCKODU, HATA, TARIH) SELECT SERVISGONDERIMFONKSIYONADI, SERVISENTEGRASYON.SUBEID, KAYITID, ID, @SONUCKODU, KAYITID+'' ayına ait ay sonu özet verilerinin USS-ye gönderimi sırasında bir hata oluştu. ''+@SONUCMESAJI, GETDATE() FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID AND 0=(SELECT COUNT(*) FROM SERVISENTEGRASYONHATALARI WHERE SERVISENTEGRASYONID = @SERVISENTEGRASYONID)
		END', N'', N'1month', 10)
GO
INSERT [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI], [SERVISTIPI], [KAYITTABLOADI], [KAYITALANADI], [GONDERILECEKLERISECSORGU], [ISTEKSQL], [CEVAPSQL], [NOTLAR], [GONDERIMPERYODU], [ONCELIK]) VALUES (N'BULASICI_HASTALIK_BILDIRIM_VERI_SETI', 1, N'BULASICITAKIP', N'BULASICITAKIPID', N'SELECT BULASICITAKIP.BULASICITAKIPID AS TABLOID,
       ISNULL(HDOSYA.SUBEID, 1) AS SUBEID
FROM BULASICITAKIP WITH(NOLOCK)
     JOIN HMUAYENE WITH(NOLOCK) ON HMUAYENE.HMUAYENEID = BULASICITAKIP.HMUAYENEID
     JOIN HDOSYA WITH(NOLOCK) ON HDOSYA.HDOSYAID = HMUAYENE.HDOSYAID
WHERE ISNULL(BULASICITAKIP.SNOGONDERILDI, 0) = 0
	 AND HMUAYENE.IPTAL = 0
	 AND HDOSYA.HDIPTAL = 0
      AND HMUAYENE.HMTARIH > DATEADD(DAY, -1*(SELECT CONVERT(INT,GONDERIMPERYODU) FROM SERVISENTEGRASYONTANIM WHERE GONDERIMFONKSIYONADI=''HEADER''), GETDATE())', N'DECLARE @HATA NVARCHAR(2000) =''''
DECLARE @SUBEID VARCHAR(10) = ''#SUBEID#''
DECLARE @BULASICITAKIPID VARCHAR(20) = ''#TABLOID#''

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

SELECT VWBULASICITAKIP.*, TILCENFS.ILCEADI,TIL.IL,SUBELER.SUBEADI
INTO #TMPVWBULASICITAKIP
FROM VWBULASICITAKIP WITH(NOLOCK)
LEFT JOIN SUBELER WITH(NOLOCK) ON SUBELER.SUBEID = VWBULASICITAKIP.SUBEID
LEFT JOIN TILCENFS WITH(NOLOCK) ON TILCENFS.ILCEID = VWBULASICITAKIP.ILCEID
LEFT JOIN TIL WITH(NOLOCK) ON TIL.ILID = VWBULASICITAKIP.ILID
WHERE   BULASICITAKIPID =  @BULASICITAKIPID
    AND SUBELER.SUBEID = CONVERT(INT,@SUBEID)


IF (SELECT COUNT(*) FROM SUBELER WHERE SUBEID = @SUBEID) = 0 
BEGIN
    SET @HATA = @HATA + ''İşlemin şube kaydı bulunamadı.''
END 
IF NOT EXISTS(SELECT BULASICITAKIPID FROM #TMPVWBULASICITAKIP WHERE ISNULL(SNOTAKIPNO,'''')<>'''')
BEGIN 
    SET @HATA = @HATA + ''Sağlık Net hasta takip numarası alınmadan USS sistemine bulaşıcı kayıdı yapılamaz. ''
END 
IF NOT EXISTS(SELECT BULASICITAKIPID FROM #TMPVWBULASICITAKIP)
BEGIN
    SET @HATA = @HATA + ''Muayene kaydı için bulaşıcı takip girişi yapılmamış. USS sistemine kayıt yapılamaz. ''
END
IF NOT EXISTS(SELECT BULASICITAKIPID FROM #TMPVWBULASICITAKIP WHERE ISNULL(LDTARIHI,0)<>0)
BEGIN 
    SET @HATA = @HATA + ''Hastanın doğum tarihi girilmemiş. USS sistemine kayıt yapılamaz. ''
END 
IF NOT EXISTS(SELECT BULASICITAKIPID FROM #TMPVWBULASICITAKIP WHERE ISNULL(HCINSIYETI,'''')=''E'' OR ISNULL(HCINSIYETI,'''')=''K'')
BEGIN 
    SET @HATA = @HATA + ''Hastanın cinsiyeti girilmemiş. USS sistemine kayıt yapılamaz. ''
END
IF NOT EXISTS(SELECT BULASICITAKIPID FROM #TMPVWBULASICITAKIP WHERE ISNULL(ULKEMERNISKODU,0)<>0 AND ISNULL(ULKEADI,'''')<>'''')
BEGIN 
    SET @HATA = @HATA + ''Hastanın ülke kodu SKRS kodları içerisinde bulunamadı. USS sistemine kayıt yapılamaz. ''
END 
IF NOT EXISTS(SELECT BULASICITAKIPID FROM #TMPVWBULASICITAKIP WHERE ISNULL(ILCEID,0)<>0)
BEGIN 
    SET @HATA = @HATA + ''Ilce tanımı bulunamadı. ''
END 
IF NOT EXISTS(SELECT BULASICITAKIPID FROM #TMPVWBULASICITAKIP WHERE ISNULL(ILID,0)<>0)
BEGIN 
    SET @HATA = @HATA + ''Il tanımı bulunamadı. ''
END 
IF @HATA <> ''''
	BEGIN 
	   IF NOT EXISTS(SELECT ID FROM SERVISENTEGRASYONHATALARI WHERE SERVISGONDERIMFONKSIYONADI=''BULASICI_HASTALIK_BILDIRIM_VERI_SETI'' AND KAYITID=@BULASICITAKIPID AND SUBEID=@SUBEID AND HATA=@HATA AND TARIH>DATEADD(DAY,-2,GETDATE()))
	   INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI,SUBEID,KAYITID,HATA,TARIH) VALUES (''BULASICI_HASTALIK_BILDIRIM_VERI_SETI'',@SUBEID,@BULASICITAKIPID,@HATA,GETDATE())
	END
ELSE
BEGIN
	/*START*/--SILMEYIN ONEMLI
    SELECT 
	   NEWID() AS ''messageGuid/@value'',
	   ''1'' AS ''messageType/@version'',
	   ''0a9ba485-e7e0-4abb-9c86-0a14fd364bb8'' as ''messageType/@codeSystemGuid'',
	   ''214'' AS ''messageType/@code'',
	   ''Bulasici Hastalik 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'',
			 ISNULL((SELECT VALUESTR FROM CONFIG WHERE SECTIONSTR=''Saglik-Net'' AND PROGNAME=''MEDISOFT'' AND KEYNAME= @SUBEID +'' numaralı şubenin kurum numarası''),'''') as ''healthcareProvider/@code'',
			 SUBEADI as ''healthcareProvider/@value''  
		  FOR XML PATH(''author''), TYPE
	   ),
	   ''C740D0288ED4C45FE0407C0A04162BDD'' as ''firmaKodu/@value'' ,
	   (
		  SELECT 
			 (
				SELECT
				    ISNULL(SNOTAKIPNO,'''')
				    AS ''SYSTakipNo/@value''
				FOR XML PATH(''HASTA_TAKIP_BILGISI''), TYPE
			 ),
			 (
				SELECT 
				    ''1'' AS ''VAKA_TIPI/@version'',
				    ''663db642-20db-4160-bd77-c9be99c7f496'' AS ''VAKA_TIPI/@codeSystemGuid'',
				    ISNULL(CONVERT(VARCHAR(20),BULASICIVAKATIPI),'''') AS ''VAKA_TIPI/@code'', 
				    (SELECT CASE BULASICIVAKATIPI
					   WHEN 1 
						  THEN ''ŞÜPHELİ VAKA''
					   WHEN 2
						  THEN ''OLASI VAKA''
					   WHEN 3
						  THEN ''KESIN VAKA''
					   ELSE '''' END)  AS ''VAKA_TIPI/@value'',
				    ISNULL(LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),BULBELIRTIBASTRH,120),'' '',''''),''-'',''''),'':'',''''),8),'''')  AS ''KLINIK_BELIRTILERIN_BASLADIGI_TARIH/@value'',
				    (
					   SELECT
						  ISNULL(CONVERT(VARCHAR(20),BUCAKID),'''') AS ''BUCAK_KODU/@value'',
						  ISNULL(CONVERT(VARCHAR(20),CSBM),'''') AS ''CSBM_KODU/@value'',
						  ISNULL(CONVERT(VARCHAR(20),DISKAPINO),'''') AS ''DIS_KAPI/@value'',
						  ISNULL(CONVERT(VARCHAR(20),ICKAPINO),'''') AS ''IC_KAPI/@value'',
							
						  ''1'' AS ''ILCE_KODU/@version'',
						  ''96184a9e-537c-4a70-8b3a-27a7a170355b'' as ''ILCE_KODU/@codeSystemGuid'',
						  ISNULL(CONVERT(VARCHAR(20),ILCEID),'''')
							 AS ''ILCE_KODU/@code'',
						  ISNULL(ILCEADI,'''') AS ''ILCE_KODU/@value'',
						  ''1'' AS ''IL_KODU/@version'',
						  ''5bc508fa-782a-4d75-831f-34948e350e72'' as ''IL_KODU/@codeSystemGuid'',
						  ISNULL(CONVERT(VARCHAR(420),ILID),'''') AS ''IL_KODU/@code'',
						  ISNULL(IL,'''') AS ''IL_KODU/@value'',
						  ISNULL(CONVERT(VARCHAR(20),KOYID),'''') AS ''KOY_KODU/@value'',
						  ISNULL(CONVERT(VARCHAR(20),MAHALLEID),'''') AS ''MAHALLE_KODU/@value''
					   FOR XML PATH(''BEYAN_ADRESI''),TYPE
					),
				    (
					   SELECT 
						  CASE WHEN TELEFONTIPIID IS NOT NULL THEN 
						  (
							 SELECT 
								TELEFONNO AS ''TELEFON_NUMARASI/@value'',
								''1'' AS ''TELEFON_TIPI/@version'',
								''e387c902-9062-4406-85ef-63e085754f9e'' AS ''TELEFON_TIPI/@codeSystemGuid'',
								ISNULL(CONVERT(VARCHAR(25),TELEFONTIPIID),'''') AS ''TELEFON_TIPI/@code'',					
								ISNULL((SELECT CASE TELEFONTIPIID
								    WHEN 1 THEN ''CEP TELEFONU''
								    WHEN 2 THEN ''EV TELEFONU''
								    WHEN 3 THEN ''İŞ TELEFONU''
								    WHEN 4 THEN ''VELİSİNİN/YAKINININ TELEFONU''
								    END),'''')  AS ''TELEFON_TIPI/@value''
							 FOR XML PATH(''TELEFON_BILGISI''),TYPE
						  )
						  END
					),
				    (
					   SELECT DISTINCT
						  ''1'' AS ''ICD10/@version'',
						  ''c3eaabad-8c4c-56ee-e043-14031b0a5530'' AS ''ICD10/@codeSystemGuid'',
						  HDOSYAICD.ICDKOD AS ''ICD10/@code'',
						  TICD.ICDADI AS ''ICD10/@value''
					   FROM HDOSYAICD(NOLOCK) 
					   INNER JOIN TICD(NOLOCK) ON TICD.ICDKOD= HDOSYAICD.ICDKOD
					   WHERE HDOSYAICD.HDOSYAID = HDOSYAID AND TICD.BULASICI = 1 									
					   FOR XML PATH (''''),ROOT(''TANI_BILGISI''),TYPE
				    ),
				    (
					   SELECT 
						  ISNULL(HTCKIMLIKNO,'''') AS ''HASTA_KIMLIK_NUMARASI/@value'',
						  ISNULL(HADI,'''') AS ''AD/@value'',
						  ISNULL(HSOYADI,'''') AS ''SOYAD/@value'',
						  ISNULL(LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),LDTARIHI,120),'' '',''''),''-'',''''),'':'',''''),12),'''') AS ''DOGUM_TARIHI/@value'',
						  ''1'' AS ''CINSIYET/@version'',
						  ''784d0f4f-0603-4425-937f-1a3941fc3a1f'' AS ''CINSIYET/@codeSystemGuid'',
						  (
							 SELECT CASE HCINSIYETI 
								WHEN ''E''
								THEN 1
								WHEN ''K'' 
								THEN 2 
								END
						  ) AS ''CINSIYET/@code'',
						  (
							 SELECT CASE HCINSIYETI 
								WHEN ''E''
								THEN ''ERKEK''
								WHEN ''K'' 
								THEN ''KADIN'' 
								END
						  ) AS ''CINSIYET/@value'',
						  ''1'' AS ''UYRUK/@version'',
						  ''d650777a-3d4d-a259-e040-7c0a01167a83'' AS ''UYRUK/@codeSystemGuid'',
						  (
							 SELECT CASE 
								WHEN ULKEMERNISKODU IS NULL
								THEN ''9980''
								ELSE CONVERT(VARCHAR(20),ULKEMERNISKODU) 
								END
						  ) AS ''UYRUK/@code'',
						  (
							 SELECT CASE 
								WHEN ULKEMERNISKODU IS NULL
								THEN ''TÜRKİYE CUMHURİYETİ''
								ELSE ULKEADI 
								END
						  ) AS ''UYRUK/@value'',
						  (
							 SELECT CASE 
								WHEN HTCKIMLIKNO = '''' AND (ULKEMERNISKODU = 0 OR 
								    ULKEMERNISKODU = 9980) AND DATEDIFF(day,HMTARIH,LDTARIHI) <= 28
								THEN 
								    ANNETCKIMLIKNO
								ELSE 
								    ''''
								END
						) AS ''ANNE_KIMLIK_NUMARASI/@value'',
						(
							 SELECT CASE 
								WHEN HTCKIMLIKNO = '''' AND (ULKEMERNISKODU = 0 OR 
								    ULKEMERNISKODU = 9980) AND DATEDIFF(day,HMTARIH,LDTARIHI) <= 28
								THEN 
								    CONVERT(VARCHAR(30), DOGUMSIRANO)
								ELSE 
								    ''''
								END
						) AS ''DOGUM_SIRASI/@value'',
						(
							 SELECT CASE 
								WHEN ULKEMERNISKODU <> 0 AND ULKEMERNISKODU <>9980 AND HTCKIMLIKNO <> ''''
								THEN CONVERT(VARCHAR(50),HTCKIMLIKNO)
								ELSE '''' 
								END
						) AS ''YABANCI_HASTA_KIMLIK_NUMARASI/@value'',
						(
							 SELECT CASE 
								WHEN (ULKEMERNISKODU<>0 AND ULKEMERNISKODU<>9980 AND HTCKIMLIKNO = '''')
								THEN HPASAPORT
								ELSE '''' 
								END
						) AS ''PASAPORT_NO/@value'',
					     (
							 SELECT CASE 
								WHEN ULKEMERNISKODU <>0
								    AND ULKEMERNISKODU <> 9980
								    AND HTCKIMLIKNO = '''' 
								    AND HPASAPORT = ''''
								THEN  
								    ISNULL((SELECT VALUESTR FROM CONFIG WHERE SECTIONSTR=''Saglik-Net''
								    AND PROGNAME=''MEDISOFT'' AND KEYNAME= @SUBEID +'' numaralı şubenin kurum numarası''),'''') + ''_'' + CONVERT(NVARCHAR(4),HKIMLIKID)
								ELSE ''''
								END
						)AS ''KIMLIKSIZ_HASTA_BILGISI/@value''
				    FOR XML PATH (''BILDIRIM_KIMLIK_BILGISI''),TYPE
				)
			 FOR XML PATH(''BULASICI_HASTALIK_BILDIRIM''),TYPE
		  )						
	   FOR XML PATH(''recordData''), TYPE
    )
	
    FROM #TMPVWBULASICITAKIP   
FOR XML PATH (''''), ROOT(''SYSMessage'')
 /*END*/--SILMEYIN ONEMLI
 END
IF OBJECT_ID(''tempdb..#TMPVWBULASICITAKIP'') IS NOT NULL 
    DROP TABLE #TMPVWBULASICITAKIP', N'DECLARE @SERVISENTEGRASYONID INT
DECLARE @XML1 XML
DECLARE @XML2 VARCHAR(MAX)
DECLARE @XML3 XML
DECLARE @SONUCKODU VARCHAR(20)
DECLARE @SONUCMESAJI VARCHAR(1000)
SET @SERVISENTEGRASYONID = ''#SERVISENTEGRASYONID#''
SET @XML1 = ''''
SET @XML2 = ''''
SET @XML3 = ''''
SET @XML1 = (SELECT CEVAPXML FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID)
SET @XML2 = (SELECT @XML1.value (''declare namespace s =  "http://schemas.xmlsoap.org/soap/envelope/"; (/s:Envelope/s:Body/*)[1]'',''varchar(4000)'') AS id)
	--GET SONUCKODU FOR HATA IF ANY 
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCKODU = (SELECT T.C.value(''@value'', ''varchar(1000)'') AS SONUCKODU
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucKodu)'') AS T(C))
	--GET SONUCMESAJI
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCMESAJI = (SELECT T.C.value(''@value'', ''varchar(100)'') AS SONUCMESAJI
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucMesaji)'') AS T(C))
	IF	@SONUCKODU = ''S0000''  
		BEGIN
			UPDATE SERVISENTEGRASYON SET DURUM=1,DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1,CEVAPZAMANI=GETDATE() WHERE ID=@SERVISENTEGRASYONID
			UPDATE BULASICITAKIP SET BULASICITAKIP.SNOGONDERILDI = 1
			FROM BULASICITAKIP
			 JOIN SERVISENTEGRASYON SE ON SE.KAYITID = 
			 BULASICITAKIP.BULASICITAKIPID
			 WHERE SE.ID = @SERVISENTEGRASYONID
		END
	
	ELSE 
		BEGIN
			UPDATE SERVISENTEGRASYON SET DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1 WHERE ID=@SERVISENTEGRASYONID

			INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, SERVISENTEGRASYONID, SONUCKODU, HATA, TARIH) SELECT SERVISGONDERIMFONKSIYONADI, SERVISENTEGRASYON.SUBEID, KAYITID, ID, @SONUCKODU, CONVERT(VARCHAR,VWBULASICITAKIP.HMUAYENEID)+''  muayene numaralı ''+ VWBULASICITAKIP.HADI+ '' ''+ VWBULASICITAKIP.HSOYADI+ '' isimli hasta. Doktor:''+VWBULASICITAKIP.DRAD +'' Bölüm:''+VWBULASICITAKIP.LBOLUM +'' Muayene Tarihi:''+CONVERT(VARCHAR,VWBULASICITAKIP.HMTARIH)+'' Uss Kayıt cevabı:''+@SONUCMESAJI, GETDATE() FROM SERVISENTEGRASYON JOIN VWBULASICITAKIP ON VWBULASICITAKIP.BULASICITAKIPID=SERVISENTEGRASYON.KAYITID WHERE ID = @SERVISENTEGRASYONID AND 0=(SELECT COUNT(*) FROM SERVISENTEGRASYONHATALARI WHERE SERVISENTEGRASYONID = @SERVISENTEGRASYONID)
		END', N'', N'10min', 10)
GO
INSERT [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI], [SERVISTIPI], [KAYITTABLOADI], [KAYITALANADI], [GONDERILECEKLERISECSORGU], [ISTEKSQL], [CEVAPSQL], [NOTLAR], [GONDERIMPERYODU], [ONCELIK]) VALUES (N'CIKIS_BILGISI_KAYIT', 1, N'HYATIS', N'HYATISID', N'SELECT HYATIS.HYATISID AS TABLOID,
       ISNULL(HDOSYA.SUBEID, 1) AS SUBEID
FROM HYATIS WITH(NOLOCK)
     JOIN HDOSYA WITH(NOLOCK) ON HDOSYA.HDOSYAID = HYATIS.HDOSYAID
WHERE HYATIS.SNOYATISCIKISGONDERILDI = 0
      AND HYATIS.DURUM = 2
	 AND HDOSYA.HDIPTAL = 0
      AND HYATIS.HYYATISTARIH > DATEADD(DAY, -1*(SELECT CONVERT(INT,GONDERIMPERYODU) FROM SERVISENTEGRASYONTANIM WHERE GONDERIMFONKSIYONADI=''HEADER''), GETDATE())', N'DECLARE @SUBEID VARCHAR(10) = ''#SUBEID#''
DECLARE @HYATISID NVARCHAR(20) = ''#TABLOID#''
DECLARE @HATA NVARCHAR(2000) = ''''
IF (SELECT COUNT(*) FROM SUBELER WHERE SUBEID = @SUBEID) = 0 
	BEGIN
		SET @HATA = @HATA + ''İşlemin şube kaydı bulunamadı!''
	END 
IF @HATA <>''''
BEGIN
    IF NOT EXISTS(SELECT ID FROM SERVISENTEGRASYONHATALARI WHERE SERVISGONDERIMFONKSIYONADI=''CIKIS_BILGISI_KAYIT'' AND KAYITID=@HYATISID AND SUBEID=@SUBEID AND HATA=@HATA AND TARIH>DATEADD(DAY,-2,GETDATE()))		
    INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI,SUBEID,KAYITID,HATA,TARIH) VALUES (''CIKIS_BILGISI_KAYIT'',@SUBEID,@HYATISID,@HATA,GETDATE())
END
ELSE
BEGIN
/*START*/--SILMEYIN ONEMLI
	   SELECT 
	   NEWID() as ''messageGuid/@value'',
	   ''1'' as ''messageType/@version'',
	   ''0a9ba485-e7e0-4abb-9c86-0a14fd364bb8'' as ''messageType/@codeSystemGuid'',
	   ''106'' as ''messageType/@code'',
	   ''Çıkış Bilgisi Kayıt'' 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'',
					ISNULL((SELECT VALUESTR FROM CONFIG WHERE SECTIONSTR =''Saglik-Net'' AND PROGNAME=''MEDISOFT'' AND KEYNAME = @SUBEID+'' numaralı şubenin kurum numarası''),'''') as ''healthcareProvider/@code'',
					SUBELER.SUBEADI as ''healthcareProvider/@value''  
					FOR XML PATH(''author''), TYPE),
				   ''C740D0288ED4C45FE0407C0A04162BDD'' as ''firmaKodu/@value'',
			(SELECT 
					(SELECT
                            ISNULL(HYATIS.SNOTAKIPNO,'''') AS ''SYSTakipNo/@value''
								FOR XML PATH(''HASTA_TAKIP_BILGISI''), TYPE),
						(SELECT 
							ISNULL(replace(convert(varchar(8), HYATIS.HYCIKISTARIH, 112)+convert(varchar(8), HYATIS.HYCIKISTARIH, 114), '':'',''''),'''')AS ''CIKIS_ZAMANI/@value'',
							''1'' AS ''CIKIS_SEKLI/@version'',
							''e8fba324-ae10-49a9-9178-e2c5ad0b57e9'' AS ''CIKIS_SEKLI/@codeSystemGuid'',
							ISNULL(CONVERT(VARCHAR(10),HYATIS.CIKISSEVKTURUID),'''') AS ''CIKIS_SEKLI/@code'',
							(SELECT CASE HYATIS.CIKISSEVKTURUID
									WHEN 1 THEN  ''Tedavi önerileriyle çıkış''
									WHEN 2 THEN ''Taburcu (Yatan Hasta)''
									WHEN 3 THEN ''Kurum içine sevk''
									WHEN 4 THEN ''Kurum dışına sevk''
									WHEN 5 THEN ''Tıbbi önerileri/tedavileri redderedek çıkış''
									WHEN 6 THEN ''Ölüm''
									WHEN 7 THEN ''İyileşerek Çıkış/Taburcu''
									WHEN 8 THEN ''Haliyle Çıkış/Taburcu''
									WHEN 98 THEN ''Diğer''
									WHEN 33 THEN ''Kendi arzusu ile çıkış'' END)  AS ''CIKIS_SEKLI/@value''
							 
						FOR XML PATH(''HASTA_CIKIS_BILGILERI''),TYPE)
					FOR XML PATH(''recordData''), TYPE)
	FROM        
			 HYATIS WITH(NOLOCK)   
	LEFT JOIN	 HDOSYA WITH(NOLOCK) ON HDOSYA.HDOSYAID = HYATIS.HDOSYAID 
	LEFT JOIN	 SUBELER WITH(NOLOCK) ON SUBELER.SUBEID = HDOSYA.SUBEID 
	WHERE CONVERT(VARCHAR, SUBELER.SUBEID) = @SUBEID 
		 AND HYATIS.HYATISID = @HYATISID
	FOR XML PATH (''''), ROOT(''SYSMessage'')
 /*END*/--SILMEYIN ONEMLI
 END', N'DECLARE @SERVISENTEGRASYONID INT
DECLARE @XML1 XML
DECLARE @XML2 VARCHAR(MAX)
DECLARE @XML3 XML
DECLARE @SNOTakipNo VARCHAR(20)
DECLARE @SONUCKODU VARCHAR(20)
DECLARE @SONUCMESAJI VARCHAR(1000)
SET @SERVISENTEGRASYONID = ''#SERVISENTEGRASYONID#''
SET @SNOTakipNo = ''''
SET @XML1 = ''''
SET @XML2 = ''''
SET @XML3 = ''''
SET @XML1 = (SELECT CEVAPXML FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID)
SET @XML2 = (SELECT @XML1.value (''declare namespace s =  "http://schemas.xmlsoap.org/soap/envelope/"; (/s:Envelope/s:Body/*)[1]'',''varchar(4000)'') AS id)
	--GET SONUCKODU FOR HATA IF ANY 
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCKODU = (SELECT T.C.value(''@value'', ''varchar(1000)'') AS SONUCKODU
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucKodu)'') AS T(C))
	--GET SONUCMESAJI
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCMESAJI = (SELECT T.C.value(''@value'', ''varchar(100)'') AS SONUCMESAJI
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucMesaji)'') AS T(C))
	IF	@SONUCKODU = ''S0000''  
		BEGIN
			UPDATE SERVISENTEGRASYON SET DURUM=1,DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1,CEVAPZAMANI=GETDATE() WHERE ID=@SERVISENTEGRASYONID
			UPDATE HY SET HY.SNOYATISCIKISGONDERILDI= 1
			FROM HYATIS HY
			 JOIN SERVISENTEGRASYON SE ON SE.KAYITID = HY.HYATISID
			 WHERE SE.ID = @SERVISENTEGRASYONID
		END
	
	ELSE 
		BEGIN
			UPDATE SERVISENTEGRASYON SET DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1 WHERE ID=@SERVISENTEGRASYONID

			INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, SERVISENTEGRASYONID, SONUCKODU, HATA, TARIH) SELECT SERVISGONDERIMFONKSIYONADI, SERVISENTEGRASYON.SUBEID, KAYITID, ID, @SONUCKODU, @SONUCMESAJI, GETDATE() FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID AND 0=(SELECT COUNT(*) FROM SERVISENTEGRASYONHATALARI WHERE SERVISENTEGRASYONID = @SERVISENTEGRASYONID)
		END', N'', N'1day', 10)
GO
INSERT [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI], [SERVISTIPI], [KAYITTABLOADI], [KAYITALANADI], [GONDERILECEKLERISECSORGU], [ISTEKSQL], [CEVAPSQL], [NOTLAR], [GONDERIMPERYODU], [ONCELIK]) VALUES (N'DOGUM_BILDIRIM_VERI_SETI', 1, N'HDOGUM', N'HDOGUMID', N'SELECT HDOGUMDETAY.HDOGUMID AS TABLOID,
       ISNULL(HDOGUM.SUBEID,ISNULL((SELECT SUBEID FROM VWMUAYENE WHERE VWMUAYENE.HMUAYENEID=HDOGUM.HMUAYENEID),1)) AS SUBEID
FROM HDOGUMDETAY WITH(NOLOCK)
     JOIN HDOGUM WITH(NOLOCK) ON HDOGUM.HDOGUMID = HDOGUMDETAY.HDOGUMID
WHERE ISNULL(HDOGUMDETAY.DS_SN_GONDERILDI, 0) = 0
      AND HDOGUMDETAY.ISLEMZAMANI > DATEADD(DAY, -1*(SELECT CONVERT(INT,GONDERIMPERYODU) FROM SERVISENTEGRASYONTANIM WHERE GONDERIMFONKSIYONADI=''HEADER''), GETDATE())', N'DECLARE @SUBEID VARCHAR(10) = ''#SUBEID#'' 
DECLARE @HDOGUMID NVARCHAR(10) = ''#TABLOID#''
DECLARE @HATA NVARCHAR(2000) = ''''
IF (SELECT COUNT(*) FROM SUBELER WHERE SUBEID = @SUBEID) = 0 
BEGIN
    SET @HATA = @HATA + ''İşlemin şube kaydı bulunamadı! ''
END
IF NOT EXISTS(SELECT HDOGUMDETAYID FROM  HDOGUMDETAY (NOLOCK) WHERE  HDOGUMDETAY.HDOGUMID = @HDOGUMID AND ISNULL(HDOGUMDETAY.DOGUMYONTEMI,0)<>0)
BEGIN 
    SET @HATA = @HATA + ''Doğum yöntemi girilmemiş. ''
END
IF NOT EXISTS(SELECT HDOGUMDETAYID FROM  HDOGUMDETAY (NOLOCK) WHERE  HDOGUMDETAY.HDOGUMID = @HDOGUMID AND ISNULL(HDOGUMDETAY.BASCEVRESI,0)<>0)
BEGIN 
    SET @HATA = @HATA + ''Doğum bildirim için bebeğin baş çevresi ölçüm değeri girilmemiş. ''
END
IF NOT EXISTS(SELECT HDOGUMDETAYID FROM  HDOGUMDETAY (NOLOCK) WHERE  HDOGUMDETAY.HDOGUMID = @HDOGUMID AND ISNULL(HDOGUMDETAY.AGIRLIK,0)<>0)
BEGIN 
    SET @HATA = @HATA  + ''Doğum bildirim için bebeğin ağırlık ölçüm değeri girilmemiş ''
END
IF NOT EXISTS(SELECT HDOGUMID FROM  HDOGUM (NOLOCK) WHERE  HDOGUM.HDOGUMID = @HDOGUMID AND ISNULL(HMUAYENEID,0)<>0)
BEGIN 
    SET @HATA = @HATA  + ''Doğum muayene bilgisi bulunamadı ''
END
IF @HATA <> ''''
BEGIN 
	   IF NOT EXISTS(SELECT ID FROM SERVISENTEGRASYONHATALARI WHERE SERVISGONDERIMFONKSIYONADI=''DOGUM_BILDIRIM_VERI_SETI'' AND KAYITID=@HDOGUMID AND SUBEID=@SUBEID AND HATA=@HATA AND TARIH>DATEADD(DAY,-2,GETDATE()))
	   INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI,SUBEID,KAYITID,HATA,TARIH) VALUES (''DOGUM_BILDIRIM_VERI_SETI'',@SUBEID,@HDOGUMID,@HATA,GETDATE())
END
ELSE
BEGIN
    /*START*/--SILMEYIN ONEMLI
    SELECT 
	   NEWID() as ''messageGuid/@value'',
	   ''1'' as ''messageType/@version'',
	   ''0a9ba485-e7e0-4abb-9c86-0a14fd364bb8'' as ''messageType/@codeSystemGuid'',
	   ''218'' as ''messageType/@code'',
	   ''Dogum 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'',
			 ISNULL((SELECT VALUESTR FROM CONFIG WHERE SECTIONSTR=''Saglik-Net'' AND PROGNAME=''MEDISOFT'' AND KEYNAME= @SUBEID + '' numaralı şubenin kurum numarası''),'''') as ''healthcareProvider/@code'',
			 SUBELER.SUBEADI as ''healthcareProvider/@value''  
			 FOR XML PATH(''author''), TYPE
	   ),
	   ''C740D0288ED4C45FE0407C0A04162BDD'' as ''firmaKodu/@value'' ,
	   (
		  SELECT 
						
			 (
				SELECT
				    (
					   SELECT 
						  CASE WHEN VWMUAYENE.HMUAYENEISLID IS NOT NULL THEN ISNULL(VWMUAYENE.SNOTAKIPNO,'''')
							  WHEN VWMUAYENE.HMUAYENEISLID IS NULL THEN 
							  (
									ISNULL(	(SELECT SNOTAKIPNO 
											FROM VWYATIS(NOLOCK)
											WHERE VWYATIS.HMUAYENEID = VWDOGUM.HMUAYENEID 
											AND VWYATIS.UYGDRID = VWMUAYENE.HMDRID AND SNOTAKIPNO IS NOT NULL)
										   ,'''')
							 )
						  END
				    ) AS ''SYSTakipNo/@value''
				FOR XML PATH(''HASTA_TAKIP_BILGISI''), TYPE
			 ),
			 (
				SELECT
				    ISNULL(CONVERT(VARCHAR(20),VWDOGUM.AGIRLIK),'''') AS ''AGIRLIK/@value'',
				    ISNULL(CONVERT(VARCHAR(20),VWDOGUM.APGAR1),'''') AS ''APGAR_1/@value'',
				    ISNULL(CONVERT(VARCHAR(20),VWDOGUM.APGAR5),'''') AS ''APGAR_5/@value'',
				    ISNULL(CONVERT(VARCHAR(20),VWDOGUM.BASCEVRESI),'''') AS ''BAS_CEVRESI/@value'',
				    ISNULL(CONVERT(VARCHAR(20),VWDOGUM.DHDOGUMSIRANO),'''')  AS ''DOGUM_SIRASI/@value'',
				    ''1'' AS ''DOGUM_YONTEMI/@version'',
				    ''c03d71af-54c5-4245-aea4-ad58e876e8bd'' AS ''DOGUM_YONTEMI/@codeSystemGuid'',
				    ISNULL(CONVERT(VARCHAR(20),VWDOGUM.DOGUMYONTEMI),'''') AS ''DOGUM_YONTEMI/@code'',
				    ISNULL(VWDOGUM.DOGUMYONTEMI,'''') AS ''DOGUM_YONTEMI/@value'',
				    ISNULL(CONVERT(VARCHAR(20),VWDOGUM.HDOGUMDETAYID),'''') AS ''ISLEM_REFERANS_NUMARASI/@value''
				FOR XML PATH(''DOGUM_BILDIRIM''),TYPE
			)
		  FOR XML PATH(''recordData''), TYPE
		)
		FROM  VWDOGUM WITH(NOLOCK)
		LEFT JOIN VWMUAYENE WITH(NOLOCK) ON VWMUAYENE.HMUAYENEID = VWDOGUM.HMUAYENEID
		LEFT JOIN TDOGUMYONTEMI WITH(NOLOCK) ON TDOGUMYONTEMI.DOGUMYONTEMIID = VWDOGUM.DOGUMYONTEMI
		LEFT JOIN SUBELER WITH(NOLOCK) ON SUBELER.SUBEID = VWDOGUM.SUBEID
		WHERE	VWDOGUM.HDOGUMID = @HDOGUMID 
				AND SUBELER.SUBEID = @SUBEID
	FOR XML PATH (''''), ROOT(''SYSMessage'')
 /*END*/--SILMEYIN ONEMLI
END', N'DECLARE @SERVISENTEGRASYONID INT
DECLARE @XML1 XML
DECLARE @XML2 VARCHAR(MAX)
DECLARE @XML3 XML
DECLARE @SNOTakipNo VARCHAR(20)
DECLARE @SONUCKODU VARCHAR(20)
DECLARE @SONUCMESAJI VARCHAR(1000)
SET @SERVISENTEGRASYONID = ''#SERVISENTEGRASYONID#''
SET @SNOTakipNo = ''''
SET @XML1 = ''''
SET @XML2 = ''''
SET @XML3 = ''''
SET @XML1 = (SELECT CEVAPXML FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID)
SET @XML2 = (SELECT @XML1.value (''declare namespace s =  "http://schemas.xmlsoap.org/soap/envelope/" (/s:Envelope/s:Body/*)[1]'',''varchar(4000)'') AS id)
	--GET SONUCKODU FOR HATA IF ANY 
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCKODU = (SELECT T.C.value(''@value'', ''varchar(100)'') AS SONUCKODU
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucKodu)'') AS T(C))
	--GET SONUCMESAJI
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCMESAJI = (SELECT T.C.value(''@value'', ''varchar(1000)'') AS SONUCMESAJI
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucMesaji)'') AS T(C))
	IF	@SONUCKODU = ''S0000''  
		BEGIN
			UPDATE SERVISENTEGRASYON SET DURUM=1,DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1,CEVAPZAMANI=GETDATE() WHERE ID=@SERVISENTEGRASYONID
			UPDATE HDOGUMDETAY SET HDOGUMDETAY.DS_SN_GONDERILDI = 1 
		
			FROM HDOGUMDETAY
			 JOIN SERVISENTEGRASYON SE ON SE.KAYITID = HDOGUMDETAY.HDOGUMID
			 WHERE SE.ID = @SERVISENTEGRASYONID
		END
	
	ELSE 
		BEGIN
			UPDATE SERVISENTEGRASYON SET DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1 WHERE ID=@SERVISENTEGRASYONID

			INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, SERVISENTEGRASYONID, SONUCKODU, HATA, TARIH) SELECT SERVISGONDERIMFONKSIYONADI, SERVISENTEGRASYON.SUBEID, KAYITID, ID, @SONUCKODU, @SONUCMESAJI, GETDATE() FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID AND 0=(SELECT COUNT(*) FROM SERVISENTEGRASYONHATALARI WHERE SERVISENTEGRASYONID = @SERVISENTEGRASYONID)
		END', N'', N'1hour', 10)
GO
INSERT [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI], [SERVISTIPI], [KAYITTABLOADI], [KAYITALANADI], [GONDERILECEKLERISECSORGU], [ISTEKSQL], [CEVAPSQL], [NOTLAR], [GONDERIMPERYODU], [ONCELIK]) VALUES (N'GEBE_IZLEM_VERI_SETI', 1, N'HMUAYENEKDGEBELIKTAKIP', N'HKDGEBELIKTAKIPID', N'SELECT HMUAYENEKDGEBELIKTAKIP.HKDGEBELIKTAKIPID AS TABLOID,
       HMUAYENEKDGEBELIK.SUBEID AS SUBEID
FROM HMUAYENEKDGEBELIKTAKIP WITH(NOLOCK)
     JOIN HMUAYENEKDGEBELIK WITH(NOLOCK) ON HMUAYENEKDGEBELIK.HKDGEBELIKID = HMUAYENEKDGEBELIKTAKIP.HKDGEBELIKID
WHERE(ISNULL(HMUAYENEKDGEBELIKTAKIP.SNOGONDERILDI, 0) = 0
      OR HMUAYENEKDGEBELIKTAKIP.SNOGONDERILDI = '''')
     AND ISNULL(HMUAYENEKDGEBELIK.SN_GONDERILDI, 0) <> 0
     AND HMUAYENEKDGEBELIKTAKIP.TARIH > DATEADD(DAY, -1*(SELECT CONVERT(INT,GONDERIMPERYODU) FROM SERVISENTEGRASYONTANIM WHERE GONDERIMFONKSIYONADI=''HEADER''), GETDATE())', N'DECLARE @SUBEID VARCHAR(10) =''#SUBEID#'' 
DECLARE @HKDGEBELIKTAKIPID NVARCHAR(20) = ''#TABLOID#''
DECLARE @HATA NVARCHAR(2000) = ''''
IF (SELECT COUNT(*) FROM SUBELER WHERE SUBEID = @SUBEID) = 0 
BEGIN
    SET @HATA =  ''İşlemin şube kaydı bulunamadı! ''
END
IF NOT EXISTS(SELECT HKDGEBELIKTAKIPID FROM HMUAYENEKDGEBELIKTAKIP WHERE HKDGEBELIKTAKIPID = @HKDGEBELIKTAKIPID AND ISNULL(KACINCIGEBEIZLEMID,0)<>0)
BEGIN 
    SET @HATA = @HATA + ''Hastanın kaçıncı gebe izlemi olduğu bilgisi boş olamaz. ''
END
IF NOT EXISTS(SELECT HKDGEBELIKTAKIPID FROM HMUAYENEKDGEBELIKTAKIP WHERE HKDGEBELIKTAKIPID = @HKDGEBELIKTAKIPID AND ISNULL(IDRARPROTEIN,0)<>0)
BEGIN
    SET @HATA = @HATA + ''Gebe izlem için hastanın idrarda protein bilgisi girilmemiş. ''
END
IF NOT EXISTS(SELECT  HKDGEBELIKTAKIPID FROM HMUAYENEKDGEBELIKTAKIP WHERE HKDGEBELIKTAKIPID = @HKDGEBELIKTAKIPID AND ISNULL(GEBERISKDURUMID,0)<>0)
BEGIN
    SET @HATA = @HATA + ''Gebe izlem için hastanın gebelik risk durumu bilgisi girilmemiş. ''
END
IF NOT EXISTS(SELECT HKDGEBELIKTAKIPID FROM HMUAYENEKDGEBELIKTAKIP WHERE HKDGEBELIKTAKIPID = @HKDGEBELIKTAKIPID AND ISNULL(HEMOGLOBIN,0)<>0)
BEGIN 
    SET @HATA = @HATA + ''Gebe izlem için hastanın hemoglobin bilgisi girilmemiş. ''
END
--update HMUAYENEKDGEBELIKTAKIP set  USERID=1014,BILGIALINANADISOYADI=''Yok Yok'',BILGIALINANTELEFON=''5005005050'' where HKDGEBELIKTAKIPID=@HKDGEBELIKTAKIPID
IF NOT EXISTS(SELECT HKDGEBELIKTAKIPID FROM HMUAYENEKDGEBELIKTAKIP WHERE HKDGEBELIKTAKIPID = @HKDGEBELIKTAKIPID AND ISNULL(USERID,0)<>0)
BEGIN 
    SET @HATA = @HATA + ''Gebe izlem için hastanın işlem yapan kişi bilgisi girilmemiş. ''
END	
/*IF NOT EXISTS(SELECT HKDGEBELIKTAKIPID FROM HMUAYENEKDGEBELIKTAKIP WHERE HKDGEBELIKTAKIPID = @HKDGEBELIKTAKIPID AND ISNULL(BILGIALINANADISOYADI,0)<>0)
BEGIN 
    SET @HATA = @HATA + ''Gebe izlem için bilgi alınan adı soyadı bilgisi girilmemiş. ''
END	*/
/*IF NOT EXISTS(SELECT HKDGEBELIKTAKIPID FROM HMUAYENEKDGEBELIKTAKIP WHERE HKDGEBELIKTAKIPID = @HKDGEBELIKTAKIPID AND ISNULL(BILGIALINANTELEFON,0)<>0)
BEGIN 
    SET @HATA = @HATA + ''Gebe izlem için bilgi alınan telefon bilgisi girilmemiş. ''
END*/
IF NOT EXISTS(SELECT HKDGEBELIKTAKIPID FROM HMUAYENEKDGEBELIKTAKIP WHERE HKDGEBELIKTAKIPID = @HKDGEBELIKTAKIPID AND ISNULL(DEMIRLOJISTIGIID,0)<>0)
BEGIN 
    SET @HATA = @HATA + ''Gebe izlem için hastanın demir lojistiği ve desteği bilgisi girilmemiş. ''
END
IF NOT EXISTS(SELECT HKDGEBELIKTAKIPID FROM HMUAYENEKDGEBELIKTAKIP WHERE HKDGEBELIKTAKIPID = @HKDGEBELIKTAKIPID AND ISNULL(DVITAMINILOJISTIGIID,0)<>0)
BEGIN 
    SET @HATA = @HATA + ''Gebe izlem için hastanın D vitamini lojistiği ve desteği bilgisi girilmemiş.''
END
IF @HATA<>''''
BEGIN
    IF NOT EXISTS(SELECT ID FROM SERVISENTEGRASYONHATALARI WHERE SERVISGONDERIMFONKSIYONADI=''GEBE_IZLEM_VERI_SETI'' AND KAYITID=@HKDGEBELIKTAKIPID AND SUBEID=@SUBEID AND HATA=@HATA AND TARIH>DATEADD(DAY,-2,GETDATE()))
    INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI,SUBEID,KAYITID,HATA,TARIH) VALUES (''GEBE_IZLEM_VERI_SETI'',@SUBEID,@HKDGEBELIKTAKIPID,@HATA, GETDATE())
END
ELSE
BEGIN
  /*START*/--SILMEYIN ONEMLI
  SELECT 
	   NEWID() as ''messageGuid/@value'',
	   ''1'' as ''messageType/@version'',
	   ''0a9ba485-e7e0-4abb-9c86-0a14fd364bb8'' as ''messageType/@codeSystemGuid'',
	   ''221'' as ''messageType/@code'',
	   ''Gebe Izlem 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'',
				ISNULL((SELECT VALUESTR FROM CONFIG WHERE SECTIONSTR=''Saglik-Net'' AND PROGNAME=''MEDISOFT'' AND KEYNAME= @SUBEID +'' numaralı şubenin kurum numarası''),'''') as ''healthcareProvider/@code'',
				SUBELER.SUBEADI as ''healthcareProvider/@value''  
				FOR XML PATH(''author''), TYPE),
				''C740D0288ED4C45FE0407C0A04162BDD'' as ''firmaKodu/@value'' ,
				(
					SELECT
						(
							SELECT
								ISNULL(
											(
												SELECT 
													CASE
													WHEN VWMUAYENE.HMUAYENEISLID IS NOT NULL THEN VWMUAYENE.SNOTAKIPNO
													WHEN VWMUAYENE.HMUAYENEISLID IS NULL 	THEN VWYATIS.SNOTAKIPNO
													END
												FROM VWMUAYENE(NOLOCK)
												LEFT JOIN VWYATIS(NOLOCK) ON VWYATIS.HMUAYENEID = VWMUAYENE.HMUAYENEID
												WHERE VWMUAYENE.HMUAYENEID = HMUAYENEKDGEBELIKTAKIP.HMUAYENEID
											),''''
										)	AS ''SYSTakipNo/@value''
							FOR XML PATH(''HASTA_TAKIP_BILGISI''), TYPE
						),
						(
							SELECT 
								ISNULL((SELECT TCKIMLIKNO FROM [USER] WHERE HMUAYENEKDGEBELIKTAKIP.USERID = [dbo].[USER].USERID),'''') AS ''ISLEM_YAPAN/@value'',
								(SELECT CASE WHEN HMUAYENEKDGEBELIKTAKIP.GESTASYONELDIYABETID IS NOT NULL THEN ''1'' END) AS ''GESTASYONEL_DIYABET_TARAMASI/@version'',
								(SELECT CASE WHEN HMUAYENEKDGEBELIKTAKIP.GESTASYONELDIYABETID IS NOT NULL THEN ''eac44682-3583-47f3-8066-7310aac49a21'' END) AS ''GESTASYONEL_DIYABET_TARAMASI/@codeSystemGuid'',
								(SELECT CASE WHEN HMUAYENEKDGEBELIKTAKIP.GESTASYONELDIYABETID IS NOT NULL THEN ISNULL(CONVERT(VARCHAR(20),HMUAYENEKDGEBELIKTAKIP.GESTASYONELDIYABETID),'''') END) AS ''GESTASYONEL_DIYABET_TARAMASI/@code'',
								(SELECT CASE WHEN HMUAYENEKDGEBELIKTAKIP.GESTASYONELDIYABETID IS NOT NULL THEN ISNULL((SELECT GESTASYONELDIYABETADI FROM TSNGESTASYONELDIYABET WHERE TSNGESTASYONELDIYABET.GESTASYONELDIYABETID = HMUAYENEKDGEBELIKTAKIP.GESTASYONELDIYABETID AND HKDGEBELIKTAKIPID = @HKDGEBELIKTAKIPID),'''') END) AS ''GESTASYONEL_DIYABET_TARAMASI/@value'',
								''1'' AS ''IZLEM_ISLEM_TURU/@version'',
								''5fff8778-89a4-4045-b33e-a7ffe0de0179'' AS ''IZLEM_ISLEM_TURU/@codeSystemGuid'',
								''1'' AS ''IZLEM_ISLEM_TURU/@code'',
								''Beyana Dayalı'' AS ''IZLEM_ISLEM_TURU/@value'',
								''1'' AS ''KACINCI_GEBE_IZLEM/@version'',
								''a280b762-8804-4049-b587-7c471ff2cbee'' AS ''KACINCI_GEBE_IZLEM/@codeSystemGuid'',
								ISNULL(CONVERT(VARCHAR(20),HMUAYENEKDGEBELIKTAKIP.KACINCIGEBEIZLEMID),'''') AS ''KACINCI_GEBE_IZLEM/@code'',
								ISNULL((SELECT CASE HMUAYENEKDGEBELIKTAKIP.KACINCIGEBEIZLEMID
									WHEN 1 THEN  ''1.Dönem(0-14 Hafta)''
									WHEN 2 THEN  ''2.Dönem(18-24 Hafta)''
									WHEN 3 THEN  ''3.Dönem(30-32 Hafta)''
									WHEN 4 THEN  ''4.Dönem(36-38 Hafta)''
									WHEN 96 THEN ''İzlem Dışı''
									END),'''')AS ''KACINCI_GEBE_IZLEM/@value'',
								''1'' AS ''DEMIR_LOJISTIGI_VE_DESTEGI/@version'',
								''83c966d5-1054-451c-87c6-19a0e11b287b'' AS ''DEMIR_LOJISTIGI_VE_DESTEGI/@codeSystemGuid'',
								 ISNULL(CONVERT(VARCHAR(20),HMUAYENEKDGEBELIKTAKIP.DEMIRLOJISTIGIID),'''') AS ''DEMIR_LOJISTIGI_VE_DESTEGI/@code'',
								ISNULL((SELECT DEMIRLOJISTIGIADI FROM TSNDEMIRLOJISTIGI WHERE TSNDEMIRLOJISTIGI.DEMIRLOJISTIGIID = HMUAYENEKDGEBELIKTAKIP.DEMIRLOJISTIGIID AND HKDGEBELIKTAKIPID = @HKDGEBELIKTAKIPID),'''') AS ''DEMIR_LOJISTIGI_VE_DESTEGI/@value'',
								''1'' AS ''D_VITAMINI_LOJISTIGI_VE_DESTEGI/@version'',
								''672986f8-5e0d-43a6-b417-37bdc59cd09b'' AS ''D_VITAMINI_LOJISTIGI_VE_DESTEGI/@codeSystemGuid'',
								ISNULL(CONVERT(VARCHAR(20),HMUAYENEKDGEBELIKTAKIP.DVITAMINILOJISTIGIID),'''') AS ''D_VITAMINI_LOJISTIGI_VE_DESTEGI/@code'',
								ISNULL((SELECT DVITAMINILOJISTIGIADI FROM TSNDVITAMINILOJISTIGI WHERE HMUAYENEKDGEBELIKTAKIP.DVITAMINILOJISTIGIID = TSNDVITAMINILOJISTIGI.DVITAMINILOJISTIGIID AND HKDGEBELIKTAKIPID = @HKDGEBELIKTAKIPID),'''') AS ''D_VITAMINI_LOJISTIGI_VE_DESTEGI/@value'',
								''1'' AS ''KONJENITAL_ANOMALI_VARLIGI/@version'',
								''484b2fc2-d1a2-4675-872e-c2c56e72d921'' AS ''KONJENITAL_ANOMALI_VARLIGI/@codeSystemGuid'',
								ISNULL(CONVERT(VARCHAR(20),HMUAYENEKDGEBELIKTAKIP.KONJENITALANOMALILIID),'''') AS ''KONJENITAL_ANOMALI_VARLIGI/@code'',
								ISNULL((SELECT CASE HMUAYENEKDGEBELIKTAKIP.KONJENITALANOMALILIID 
									WHEN 1 THEN ''Var''
									WHEN 97 THEN ''Yok''
									ELSE '''' END),'''') AS ''KONJENITAL_ANOMALI_VARLIGI/@value'',
								--ISNULL(HMUAYENEKDGEBELIKTAKIP.BILGIALINANADISOYADI,'''') AS ''BILGI_ALINAN_KISI_ADI_SOYADI/@value'',
								--ISNULL(HMUAYENEKDGEBELIKTAKIP.BILGIALINANTELEFON,'''') AS ''BILGI_ALINAN_KISI_TEL/@value'',
								/*''1'' AS ''GEBELIKTE_RISK_DURUMU/@version'',
								''cd4807ca-845a-4176-a8f2-f3a3a1274599'' AS ''GEBELIKTE_RISK_DURUMU/@codeSystemGuid'',
								ISNULL(CONVERT(VARCHAR(20),HMUAYENEKDGEBELIKTAKIP.GEBERISKDURUMID),'''') AS ''GEBELIKTE_RISK_DURUMU/@code'',
								ISNULL((SELECT CASE HMUAYENEKDGEBELIKTAKIP.GEBERISKDURUMID 
									WHEN 1 THEN ''Yüksek Riskli''
									WHEN 2 THEN ''Riskli''
									WHEN 3 THEN ''Risk Yok'' 
									ELSE ''''
									END ),'''') AS ''GEBELIKTE_RISK_DURUMU/@value'',*/
								''1'' AS ''IDRARDA_PROTEIN/@version'',
								''f3d218b5-1a31-4e67-a5f2-72f2d412a802'' AS ''IDRARDA_PROTEIN/@codeSystemGuid'',
								ISNULL(CONVERT(VARCHAR(20),HMUAYENEKDGEBELIKTAKIP.IDRARPROTEIN),'''') AS ''IDRARDA_PROTEIN/@code'',
								ISNULL((SELECT CASE HMUAYENEKDGEBELIKTAKIP.IDRARPROTEIN 
									WHEN 1 THEN ''Negatif''
									WHEN 2 THEN ''+Pozitif''
									WHEN 3 THEN ''++ Pozitif''
									WHEN 4 THEN ''+++ Pozitif''
									WHEN 5 THEN ''++++ Pozitif''
									ELSE '''' END
									),'''') AS ''IDRARDA_PROTEIN/@value'',
								ISNULL(HMUAYENEKDGEBELIKTAKIP.HEMOGLOBIN,'''') AS ''HEMOGLOBIN/@value''	,
								--INSERT INTO GEBEFETUSKALPSESI (FETUSKALPSESI,HKDGEBELIKTAKIPID) VALUES(''160'',''524'')					
								(SELECT CASE WHEN (SELECT COUNT(*) FROM GEBEFETUSKALPSESI WHERE HKDGEBELIKTAKIPID=@HKDGEBELIKTAKIPID) > 0
									THEN 
										(SELECT 
											ISNULL(GEBEFETUSKALPSESI.FETUSKALPSESI,'''') AS ''FETUS_KALP_SESI/@value''
											FROM GEBEFETUSKALPSESI 
											WHERE 
											HMUAYENEKDGEBELIKTAKIP.HKDGEBELIKTAKIPID = GEBEFETUSKALPSESI.HKDGEBELIKTAKIPID 
											AND GEBEFETUSKALPSESI.HKDGEBELIKTAKIPID = @HKDGEBELIKTAKIPID
											FOR XML PATH(''FETUS_KALP_SESI_BILGISI''),TYPE)END),
								(CASE WHEN ISNULL(HMUAYENEKDGEBELIKTAKIP.DIASTOLIKKANBASINCI,0)<>0 AND ISNULL(HMUAYENEKDGEBELIKTAKIP.SISTOLLIKKANBASINCI,0)<>0
									THEN 
										(SELECT 
											HMUAYENEKDGEBELIKTAKIP.DIASTOLIKKANBASINCI AS ''DIASTOLIK_KAN_BASINCI_DEGERI/@value'',
											HMUAYENEKDGEBELIKTAKIP.SISTOLLIKKANBASINCI AS ''SISTOLIK_KAN_BASINCI_DEGERI/@value''											
											FOR XML PATH(''TANSIYON_BILGISI''),TYPE)END),
								/*(SELECT CASE WHEN (SELECT COUNT(*) FROM GEBELOHUSAKOMPLIKASYONTANI) > 0
									THEN (SELECT 
											''1'' AS ''KOMPLIKASYON_TANISI/@version'',
											''c3eaabad-8c4c-56ee-e043-14031b0a5530'' AS ''KOMPLIKASYON_TANISI/@codeSystemGuid'',
											GEBELOHUSAKOMPLIKASYONTANI.KOMPLIKASYONICDKOD AS ''KOMPLIKASYON_TANISI/@code'',
											(SELECT TICD.ICDADI 
												FROM TICD WHERE GEBELOHUSAKOMPLIKASYONTANI.KOMPLIKASYONICDKOD = TICD.ICDKOD				  AND GEBELOHUSAKOMPLIKASYONTANI.HMUAYENEID =  HMUAYENEKDGEBELIK.HMUAYENEKDID 
												AND HMUAYENEKDGEBELIK.HKDGEBELIKID = HMUAYENEKDGEBELIKTAKIP.HKDGEBELIKID			  AND HMUAYENEKDGEBELIKTAKIP.HKDGEBELIKTAKIPID = @HKDGEBELIKTAKIPID) 
												AS ''KOMPLIKASYON_TANISI/@value''
										FROM GEBELOHUSAKOMPLIKASYONTANI  WHERE GEBELOHUSAKOMPLIKASYONTANI.HMUAYENEID =  HMUAYENEKDGEBELIK.HMUAYENEKDID 
												AND HMUAYENEKDGEBELIK.HKDGEBELIKID = HMUAYENEKDGEBELIKTAKIP.HKDGEBELIKID			  AND HMUAYENEKDGEBELIKTAKIP.HKDGEBELIKTAKIPID = @HKDGEBELIKTAKIPID
								FOR XML PATH(''KOMPLIKASYON_TANISI_BILGISI''),TYPE)END),*/
							/*(SELECT CASE WHEN (SELECT COUNT(*) FROM GEBEDANISMANLIK) > 0
									THEN (SELECT 
											''1'' AS ''GEBE_BILGILENDIRME_VE_DANISMANLIK/@version'',
											''d7d1283b-3440-5c76-e040-7c0a04161e8f''
												AS ''GEBE_BILGILENDIRME_VE_DANISMANLIK/@codeSystemGuid'',
											GEBEDANISMANLIK.GEBEDANISMANLIKID AS ''GEBE_BILGILENDIRME_VE_DANISMANLIK/@code'',
											(SELECT CASE GEBEDANISMANLIK.GEBEDANISMANLIKID
												WHEN 1 THEN ''Gebeliğe bağlı olağan yakınmalar'' 
												WHEN 2 THEN ''Beslenme ve diyet''
												WHEN 3 THEN ''Fiziksel aktivite ve çalışma koşulları''
												WHEN 4 THEN ''Gebelikte cinsel yaşam''
												WHEN 5 THEN ''Hijyen ve genel vücut bakımı''
												WHEN 6 THEN''Ağız ve diş sağlığı''
												WHEN 7 THEN ''Sigara alışkanlığı'' 
												WHEN 8 THEN ''Alkol alışkanlığı ve madde bağımlılığı''
												WHEN 9 THEN ''İlaç kullanımı'' 
												WHEN 10 THEN ''Tetanoz toksoid immünizasyonu''
												WHEN 11 THEN ''Gebelikte tehlike işaretleri''
												WHEN 12 THEN ''Acil durumlarda gebe ve ailesinin izleyeceği yöntem''
												WHEN 13 THEN ''Doğum eylemi ve doğum''
												WHEN 14 THEN ''Doğumun nerede ve kim tarafından yapılacağının planlanması''
												WHEN 15 THEN ''Emzirme''
												WHEN 16 THEN ''Postpartum aile planlaması danışmanlığı''
												WHEN 17 THEN ''Fetal anomaliler, tarama testleri ve USG incelemeleri''
												ELSE '''' 
												END) AS ''GEBE_BILGILENDIRME_VE_DANISMANLIK/@value''
											
											FROM GEBEDANISMANLIK WHERE
											GEBEDANISMANLIK.HKDGEBELIKTAKIPID = HMUAYENEKDGEBELIKTAKIP.HKDGEBELIKTAKIPID
											 AND HKDGEBELIKTAKIPID = @HKDGEBELIKTAKIPID
							FOR XML PATH(''GEBE_BILGILENDIRME_VE_DANISMANLIK_BILGISI''),TYPE)END),*/
							/*(SELECT CASE WHEN ((SELECT COUNT(*) FROM GEBELOHUSATEHLIKE) > 0)
								THEN 
									(SELECT  ''1'' AS ''GEBELIK_LOHUSALIK_SEYRINDE_TEHLIKE_ISARETI/@version'',
											 ''86d2237f-1896-41cc-bfd5-7745cd576e2d'' 
												 AS ''GEBELIK_LOHUSALIK_SEYRINDE_TEHLIKE_ISARETI/@codeSystemGuid'',
											 GEBELOHUSATEHLIKE.GEBELOHUSATEHLIKEISARETI
												AS ''GEBELIK_LOHUSALIK_SEYRINDE_TEHLIKE_ISARETI/@code'',
										   ISNULL((SELECT TGEBELOHUSATEHLIKE.GEBELOHUSATEHLIKE FROM TGEBELOHUSATEHLIKE
											WHERE TGEBELOHUSATEHLIKE.GEBELOHUSATEHLIKEKODU = 
												  GEBELOHUSATEHLIKE.GEBELOHUSATEHLIKEISARETI 
												AND HMUAYENEKDGEBELIKTAKIP.HKDGEBELIKTAKIPID = @HKDGEBELIKTAKIPID),'''')
										   AS	''GEBELIK_LOHUSALIK_SEYRINDE_TEHLIKE_ISARETI/@value''
										FROM GEBELOHUSATEHLIKE
										 WHERE GEBELOHUSATEHLIKE.HMUAYENEID
															= HMUAYENEKDGEBELIKTAKIP.HMUAYENEID 
										 AND HKDGEBELIKTAKIPID = @HKDGEBELIKTAKIPID
									FOR XML PATH(''GEBELIK_LOHUSALIK_SEYRINDE_TEHLIKE_ISARETI_BILGISI''),TYPE)END
							),*/
							/*(SELECT CASE WHEN (SELECT COUNT(*) FROM GEBELIKTERISKFAKTOR) > 0
									THEN (SELECT 
										   ''1'' AS ''GEBELIKTE_RISK_FAKTORLERI/@version'',
										   ''ad9ae051-f75d-4180-b57f-38f45132a1b0'' 
										   AS ''GEBELIKTE_RISK_FAKTORLERI/@codeSystemGuid'',
										   GEBELIKTERISKFAKTOR.GEBELIKTERISKFAKTORU
											AS ''GEBELIKTE_RISK_FAKTORLERI/@code'',
										   ISNULL((SELECT TGEBERISKFAKTOR.GEBERISKFAKTOR FROM TGEBERISKFAKTOR
											WHERE TGEBERISKFAKTOR.GEBERISKFAKTORKODU = 
												  GEBELIKTERISKFAKTOR.GEBELIKTERISKFAKTORU 
												AND HMUAYENEKDGEBELIKTAKIP.HKDGEBELIKTAKIPID = @HKDGEBELIKTAKIPID),'''')
										   AS	''GEBELIKTE_RISK_FAKTORLERI/@value''
										FROM GEBELIKTERISKFAKTOR
										 WHERE GEBELIKTERISKFAKTOR.HKDGEBELIKTAKIPID
															= HMUAYENEKDGEBELIKTAKIP.HKDGEBELIKTAKIPID 
										 AND HKDGEBELIKTAKIPID = @HKDGEBELIKTAKIPID
									FOR XML PATH(''GEBELIKTE_RISK_FAKTORLERI_BILGISI''),TYPE)END),*/
						/*(SELECT CASE WHEN (SELECT COUNT(*) FROM KADINIZLEMKADINSAGLIGI) > 0
									THEN ( SELECT 
											''1'' AS ''KADIN_SAGLIGI_ISLEMLERI/@version'',
											''9f10cc39-f47a-4611-b328-78e044a8a2bc'' 
												AS ''KADIN_SAGLIGI_ISLEMLERI/@codeSystemGuid'',
											 KADINIZLEMKADINSAGLIGI.KADINIZLEMKADINSAGLIGIID 
												AS ''KADIN_SAGLIGI_ISLEMLERI/@code'',
											 (SELECT CASE KADINIZLEMKADINSAGLIGI.KADINIZLEMKADINSAGLIGIID
												WHEN 1 THEN  ''Ap Danışmanlığı''
												WHEN 2 THEN  ''Beslenme Danışmanlığı''
												WHEN 3 THEN   ''Emzirme Danışmanlığı''
												WHEN 5 THEN  ''Diş Sağlığı Danışmanlığı''
												WHEN 6 THEN  ''Kendi Kendine Meme Muayenesi Eğitimi''
												WHEN 7 THEN ''Klinik Meme Muayenesi''
												WHEN 8 THEN  ''Menopoz Danışmanlığı''
												WHEN 9 THEN  ''Servikal Smear (Pap Smear)''
												END) 
													AS ''KADIN_SAGLIGI_ISLEMLERI/@value''
										  FROM KADINIZLEMKADINSAGLIGI
										  WHERE HMUAYENEKDGEBELIKTAKIP.HMUAYENEID = KADINIZLEMKADINSAGLIGI.HMUAYENEID
										  AND HMUAYENEKDGEBELIKTAKIP.HKDGEBELIKTAKIPID = @HKDGEBELIKTAKIPID
									FOR XML PATH(''KADIN_SAGLIGI_ISLEMLERI_BILGISI''),TYPE)END),*/
					(SELECT 
						'''' AS ''BOY/@value'',
						 ISNULL(CONVERT(VARCHAR(20),HMUAYENEKDGEBELIKTAKIP.KILO),'''') AS ''KILO/@value''
						FOR XML PATH(''BOY_KILO_BILGILERI''),TYPE)
					FOR XML PATH(''GEBE_IZLEM''),TYPE)
			FOR XML PATH(''recordData''), TYPE)
			FROM HMUAYENEKDGEBELIKTAKIP WITH(NOLOCK)
			INNER JOIN  HMUAYENEKDGEBELIK WITH(NOLOCK) ON HMUAYENEKDGEBELIK.HKDGEBELIKID = HMUAYENEKDGEBELIKTAKIP.HKDGEBELIKID
			LEFT JOIN SUBELER WITH(NOLOCK) ON SUBELER.SUBEID = HMUAYENEKDGEBELIK.SUBEID
			WHERE SUBELER.SUBEID = @SUBEID AND  HMUAYENEKDGEBELIKTAKIP.HKDGEBELIKTAKIPID = @HKDGEBELIKTAKIPID
		FOR XML PATH (''''), ROOT(''SYSMessage'')
 /*END*/--SILMEYIN ONEMLI
END', N'DECLARE @SERVISENTEGRASYONID INT
DECLARE @XML1 XML
DECLARE @XML2 VARCHAR(MAX)
DECLARE @XML3 XML
DECLARE @SNOTakipNo VARCHAR(20)
DECLARE @SONUCKODU VARCHAR(20)
DECLARE @SONUCMESAJI VARCHAR(1000)
SET @SERVISENTEGRASYONID = ''#SERVISENTEGRASYONID#''
SET @SNOTakipNo = ''''
SET @XML1 = ''''
SET @XML2 = ''''
SET @XML3 = ''''
SET @XML1 = (SELECT CEVAPXML FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID)
SET @XML2 = (SELECT @XML1.value (''declare namespace s =  "http://schemas.xmlsoap.org/soap/envelope/"; (/s:Envelope/s:Body/*)[1]'',''varchar(4000)'') AS id)
	--GET SONUCKODU FOR HATA IF ANY 
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCKODU = (SELECT T.C.value(''@value'', ''varchar(100)'') AS SONUCKODU
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucKodu)'') AS T(C))
	--GET SONUCMESAJI
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCMESAJI = (SELECT T.C.value(''@value'', ''varchar(1000)'') AS SONUCMESAJI
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucMesaji)'') AS T(C))
	IF	@SONUCKODU = ''S0000''  
		BEGIN
			UPDATE SERVISENTEGRASYON SET DURUM=1,DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1,CEVAPZAMANI=GETDATE() WHERE ID=@SERVISENTEGRASYONID
			UPDATE HMUAYENEKDGEBELIKTAKIP SET HMUAYENEKDGEBELIKTAKIP.SNOGONDERILDI = 1 
			FROM HMUAYENEKDGEBELIKTAKIP
			 JOIN SERVISENTEGRASYON SE ON SE.KAYITID = HMUAYENEKDGEBELIKTAKIP.HKDGEBELIKTAKIPID
			 WHERE SE.ID = @SERVISENTEGRASYONID
		END
	
	ELSE 
		BEGIN	
			UPDATE SERVISENTEGRASYON SET DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1 WHERE ID=@SERVISENTEGRASYONID
			
			INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, SERVISENTEGRASYONID, SONUCKODU, HATA, TARIH) SELECT SERVISGONDERIMFONKSIYONADI, SERVISENTEGRASYON.SUBEID, KAYITID, ID, @SONUCKODU, @SONUCMESAJI, GETDATE() FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID AND 0=(SELECT COUNT(*) FROM SERVISENTEGRASYONHATALARI WHERE SERVISENTEGRASYONID = @SERVISENTEGRASYONID)
		END', N'', N'1hour', 9)
GO
INSERT [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI], [SERVISTIPI], [KAYITTABLOADI], [KAYITALANADI], [GONDERILECEKLERISECSORGU], [ISTEKSQL], [CEVAPSQL], [NOTLAR], [GONDERIMPERYODU], [ONCELIK]) VALUES (N'GEBELIK_BILDIRIM_VERI_SETI', 1, N'HMUAYENEKDGEBELIK', N'HKDGEBELIKID', N'SELECT HMUAYENEKDGEBELIK.HKDGEBELIKID AS TABLOID,
       HMUAYENEKDGEBELIK.SUBEID
FROM HMUAYENEKDGEBELIK WITH(NOLOCK)
     LEFT OUTER JOIN HMUAYENE WITH(NOLOCK) ON HMUAYENE.HMUAYENEID = HMUAYENEKDGEBELIK.ACILANHMUAYENEID
WHERE ISNULL(HMUAYENEKDGEBELIK.SN_GONDERILDI, 0) = 0
      AND HMUAYENE.HMTARIH > DATEADD(DAY, -1*(SELECT CONVERT(INT,GONDERIMPERYODU) FROM SERVISENTEGRASYONTANIM WHERE GONDERIMFONKSIYONADI=''HEADER''), GETDATE())', N'DECLARE @SUBEID VARCHAR(10) = ''#SUBEID#'' 
DECLARE @HKDGEBELIKID NVARCHAR(20) = ''#TABLOID#''
DECLARE @HATA NVARCHAR(2000) = ''''
IF (SELECT COUNT(*) FROM SUBELER WHERE SUBEID = @SUBEID) = 0 
BEGIN
    SET @HATA = @HATA + ''İşlemin şube kaydı bulunamadı! ''
END
IF NOT EXISTS(SELECT HKDGEBELIKID  FROM HMUAYENEKDGEBELIK (NOLOCK) WHERE HMUAYENEKDGEBELIK.SUBEID = @SUBEID AND HMUAYENEKDGEBELIK.HKDGEBELIKID = @HKDGEBELIKID AND ISNULL(SAT,'''')<>'''')
BEGIN 
    SET @HATA = @HATA + ''Gebe bildirim için hasta son adet tarihi girilmemiş ''
END
IF NOT EXISTS(SELECT HKDGEBELIKID 
    FROM VWMUAYENE (NOLOCK) 
    JOIN HMUAYENEKDGEBELIK ON HMUAYENEKDGEBELIK.ACILANHMUAYENEID = VWMUAYENE.HMUAYENEID 
    WHERE VWMUAYENE.SUBEID = @SUBEID  AND HMUAYENEKDGEBELIK.HKDGEBELIKID = @HKDGEBELIKID AND ISNULL(HKANGRUBUID,'''')<>'''')
BEGIN 	
    SET @HATA = @HATA + '' Gebe bildirim için hasta kan grubu girilmemiş. ''
END
IF NOT EXISTS(SELECT HKDGEBELIKID FROM HMUAYENEKDGEBELIK (NOLOCK) WHERE HMUAYENEKDGEBELIK.SUBEID = @SUBEID AND HMUAYENEKDGEBELIK.HKDGEBELIKID = @HKDGEBELIKID AND ISNULL(KACINCIGEBELIK,0)<>0)
BEGIN
    SET @HATA = @HATA + '' Hastanın gebelik takibi için kaçıncı gebelik bilgisi girilmemiş ''
END
IF NOT EXISTS(SELECT HKDGEBELIKID FROM HMUAYENEKDGEBELIK  (NOLOCK) WHERE HMUAYENEKDGEBELIK.SUBEID = @SUBEID AND HMUAYENEKDGEBELIK.HKDGEBELIKID = @HKDGEBELIKID AND ISNULL(ONCEKIDOGUMDURUMUID,0)<>0)
BEGIN
    SET @HATA = @HATA + '' Hastanın önceki doğum durumu bilgisi girilmemiş! ''
END
ELSE
BEGIN 
    IF (SELECT ONCEKIDOGUMDURUMUID FROM HMUAYENEKDGEBELIK  (NOLOCK) WHERE HMUAYENEKDGEBELIK.SUBEID = @SUBEID AND HMUAYENEKDGEBELIK.HKDGEBELIKID = @HKDGEBELIKID) = 1
    BEGIN
	   IF (	
			 (
				    NOT EXISTS(SELECT HKDGEBELIKID 
						  FROM HMUAYENEKDGEBELIK (NOLOCK) 
						  WHERE HMUAYENEKDGEBELIK.SUBEID = @SUBEID AND HMUAYENEKDGEBELIK.HKDGEBELIKID = @HKDGEBELIKID AND ISNULL(OLUDOGBEBEKSAYISI,0)<>0)
			 )
			 AND			
			 (
				    NOT EXISTS(SELECT HKDGEBELIKID 
						  FROM HMUAYENEKDGEBELIK 
						  WHERE HMUAYENEKDGEBELIK.SUBEID = @SUBEID AND HMUAYENEKDGEBELIK.HKDGEBELIKID = @HKDGEBELIKID AND ISNULL(CANLIDOGBEBEKSAYISI,0)<>0)
			 )
		  )					
	   BEGIN
		  SET @HATA = @HATA + '' Önceki doğum durumu ''''Daha önce dogum yapmış'''' seçilmiş olduğu için Canlı Doğan Bebek Sayısı veya Ölü Doğan Bebek Sayısı bilgisi sıfırdan büyük olmalıdır. ''
	   END
    END
END 
IF EXISTS(	SELECT HKDGEBELIKID 
	   FROM KADINIZLEMDUSUK (NOLOCK)
	   LEFT JOIN HMUAYENEKDGEBELIK(NOLOCK) ON HMUAYENEKDGEBELIK.ACILANHMUAYENEID = KADINIZLEMDUSUK.HMUAYENEID
	   WHERE HMUAYENEKDGEBELIK.SUBEID = @SUBEID AND  HMUAYENEKDGEBELIK.HKDGEBELIKID = @HKDGEBELIKID AND ISNULL(DUSUKTURUID,0)<>0)
BEGIN 
    IF NOT EXISTS(SELECT HKDGEBELIKID FROM KADINIZLEMDUSUK (NOLOCK)
	   LEFT JOIN HMUAYENEKDGEBELIK(NOLOCK) ON HMUAYENEKDGEBELIK.ACILANHMUAYENEID = KADINIZLEMDUSUK.HMUAYENEID
	   WHERE HMUAYENEKDGEBELIK.SUBEID = @SUBEID AND  HMUAYENEKDGEBELIK.HKDGEBELIKID = @HKDGEBELIKID AND ISNULL(DUSUKSAYISI,0)<>0)
	   BEGIN 
		  SET @HATA =  @HATA + '' Düşük türü dolu iken düşük sayısı bilgisi boş olamaz. ''
	   END
END
IF @HATA<>'''' 
BEGIN
    IF NOT EXISTS(SELECT ID FROM SERVISENTEGRASYONHATALARI WHERE SERVISGONDERIMFONKSIYONADI=''GEBELIK_BILDIRIM_VERI_SETI'' AND KAYITID=@HKDGEBELIKID AND SUBEID=@SUBEID AND HATA=@HATA AND TARIH>DATEADD(DAY,-2,GETDATE()))
    INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI,SUBEID,KAYITID,HATA,TARIH) VALUES (''GEBELIK_BILDIRIM_VERI_SETI'',@SUBEID,@HKDGEBELIKID,@HATA,GETDATE())
END
ELSE
BEGIN
/*START*/--SILMEYIN ONEMLI
	SELECT 
		NEWID() as ''messageGuid/@value'',
		''1'' as ''messageType/@version'',
		''0a9ba485-e7e0-4abb-9c86-0a14fd364bb8'' as ''messageType/@codeSystemGuid'',
		''223'' as ''messageType/@code'',
		''Gebelik 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'',
				ISNULL((SELECT VALUESTR FROM CONFIG WHERE SECTIONSTR=''Saglik-Net'' AND PROGNAME=''MEDISOFT'' AND KEYNAME= @SUBEID+'' numaralı şubenin kurum numarası''),'''') as ''healthcareProvider/@code'',
				SUBELER.SUBEADI as ''healthcareProvider/@value''  
				FOR XML PATH(''author''), TYPE),
				''C740D0288ED4C45FE0407C0A04162BDD'' as ''firmaKodu/@value'' ,
				(
					SELECT 
						(
							SELECT
								ISNULL((SELECT 
											CASE
											WHEN VWMUAYENE.HMUAYENEISLID IS NOT NULL THEN ISNULL(VWMUAYENE.SNOTAKIPNO ,'''')
											WHEN VWMUAYENE.HMUAYENEISLID IS NULL THEN ISNULL(VWYATIS.SNOTAKIPNO ,'''')												 
											END
										),'''')
								AS ''SYSTakipNo/@value''
							FOR XML PATH(''HASTA_TAKIP_BILGISI''), TYPE
						),
						(
							SELECT
								(SELECT CASE WHEN HMUAYENEKDGEBELIK.BABAKANGRUBUID IS NOT NULL THEN ''1'' END) AS ''BABANIN_KAN_GRUBU/@version'',
								(SELECT CASE WHEN HMUAYENEKDGEBELIK.BABAKANGRUBUID IS NOT NULL THEN ''50b46fe7-a7b0-463a-aff6-d284f9550509''  END) AS ''BABANIN_KAN_GRUBU/@codeSystemGuid'',
								(SELECT CASE WHEN HMUAYENEKDGEBELIK.BABAKANGRUBUID IS NOT NULL THEN HMUAYENEKDGEBELIK.BABAKANGRUBUID END) AS ''BABANIN_KAN_GRUBU/@code'',
								(SELECT CASE WHEN HMUAYENEKDGEBELIK.BABAKANGRUBUID IS NOT NULL THEN ISNULL((SELECT TKANGRUBU.KANGRUBU FROM TKANGRUBU (NOLOCK) WHERE TKANGRUBU.KANGRUBUID = HMUAYENEKDGEBELIK.BABAKANGRUBUID),'''')  END) AS ''BABANIN_KAN_GRUBU/@value'',
								ISNULL(CONVERT(VARCHAR(20),HMUAYENEKDGEBELIK.CANLIDOGBEBEKSAYISI),'''')  AS ''CANLI_DOGAN_BEBEK_SAYISI/@value'',
								ISNULL(HMUAYENEKDGEBELIK.KACINCIGEBELIK,'''') AS ''KACINCI_GEBELIK/@value'',
								''1'' AS ''KAN_GRUBU/@version'',
								''a3d6e943-5d85-4c75-ac72-709115974fb7'' as ''KAN_GRUBU/@codeSystemGuid'',							 
								ISNULL(CONVERT(VARCHAR(20),VWMUAYENE.HKANGRUBUID),'''') AS ''KAN_GRUBU/@code'',
								ISNULL((SELECT TKANGRUBU.KANGRUBU FROM TKANGRUBU WHERE TKANGRUBU.KANGRUBUID = VWMUAYENE.HKANGRUBUID AND VWMUAYENE.HMUAYENEID = HMUAYENEKDGEBELIK.ACILANHMUAYENEID),'''')  AS ''KAN_GRUBU/@value'',
								ISNULL(CONVERT (VARCHAR(20),HMUAYENEKDGEBELIK.OLUDOGBEBEKSAYISI),'''') AS ''OLU_DOGAN_BEBEK_SAYISI/@value'',
								''1'' AS ''BIR_ONCEKI_DOGUM_DURUMU/@version'',
								''d7e6d65a-b82a-6717-e040-7c0a021654a2'' as ''BIR_ONCEKI_DOGUM_DURUMU/@codeSystemGuid'',
								ISNULL(CONVERT(VARCHAR(20),HMUAYENEKDGEBELIK.ONCEKIDOGUMDURUMUID),'''') AS ''BIR_ONCEKI_DOGUM_DURUMU/@code'',
								ISNULL((SELECT CASE 
									WHEN  HMUAYENEKDGEBELIK.ONCEKIDOGUMDURUMUID = 1
										THEN CONVERT(NVARCHAR(25), ''Daha önce dogum yapmış'')
									WHEN HMUAYENEKDGEBELIK.ONCEKIDOGUMDURUMUID = 2
										THEN CONVERT(NVARCHAR(25), ''Daha önce dogum yapmamış'') 
								END),'''') AS ''BIR_ONCEKI_DOGUM_DURUMU/@value'',
								LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),HMUAYENEKDGEBELIK.SAT,120),'' '',''''),''-'',''''),'':'',''''),12) AS ''SON_ADET_TARIHI/@value'',
								(
									SELECT
										''1'' AS ''DUSUK_TURU/@version'',
										''1a3c91f6-9086-4963-94db-d2a19d5cb5f1'' AS ''DUSUK_TURU/@codeSystemGuid'',
										ISNULL(CONVERT(VARCHAR(20),KADINIZLEMDUSUK.DUSUKTURUID),'''') AS ''DUSUK_TURU/@code'',
										(SELECT CASE 
											WHEN KADINIZLEMDUSUK.DUSUKTURUID = 1
												THEN ''İsteyerek düşük''
											WHEN KADINIZLEMDUSUK.DUSUKTURUID = 2
												THEN  ''Kendiliğinden düşük''
											WHEN KADINIZLEMDUSUK.DUSUKTURUID = 3
												THEN ''Terapotik düşük''
											ELSE ''''
										END) AS ''DUSUK_TURU/@value'', 
										ISNULL(CONVERT(VARCHAR(20),KADINIZLEMDUSUK.DUSUKSAYISI),'''') AS ''DUSUK_SAYISI/@value''
									FROM KADINIZLEMDUSUK(NOLOCK)
									WHERE
										KADINIZLEMDUSUK.HMUAYENEID = HMUAYENEKDGEBELIK.ACILANHMUAYENEID
										AND (SELECT COUNT(*) FROM KADINIZLEMDUSUK WHERE KADINIZLEMDUSUK.HMUAYENEID = VWMUAYENE.HMUAYENEID) <> 0
									FOR XML PATH(''DUSUK_BILGISI''), TYPE
								)
							FOR XML PATH(''GEBELIK_BILDIRIM_VERI_SETI''),TYPE
						)						
			FOR XML PATH(''recordData''), TYPE
		)
		FROM  HMUAYENEKDGEBELIK WITH(NOLOCK) 
		JOIN SUBELER WITH(NOLOCK) ON SUBELER.SUBEID =  HMUAYENEKDGEBELIK.SUBEID 
		LEFT JOIN VWMUAYENE WITH(NOLOCK) ON VWMUAYENE.HMUAYENEID = HMUAYENEKDGEBELIK.ACILANHMUAYENEID 
		LEFT JOIN VWYATIS WITH(NOLOCK) ON VWYATIS.HMUAYENEID = VWMUAYENE.HMUAYENEID AND VWYATIS.UYGDRID = VWMUAYENE.HMDRID
		WHERE SUBELER.SUBEID = @SUBEID
		AND HMUAYENEKDGEBELIK.HKDGEBELIKID = @HKDGEBELIKID
	FOR XML PATH (''''), ROOT(''SYSMessage'')
 /*END*/--SILMEYIN ONEMLI
 END', N'DECLARE @SERVISENTEGRASYONID INT
DECLARE @XML1 XML
DECLARE @XML2 VARCHAR(MAX)
DECLARE @XML3 XML
DECLARE @SNOTakipNo VARCHAR(20)
DECLARE @SONUCKODU VARCHAR(20)
DECLARE @SONUCMESAJI VARCHAR(1000)
SET @SERVISENTEGRASYONID = ''#SERVISENTEGRASYONID#''
SET @SNOTakipNo = ''''
SET @XML1 = ''''
SET @XML2 = ''''
SET @XML3 = ''''
SET @XML1 = (SELECT CEVAPXML FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID)
SET @XML2 = (SELECT @XML1.value (''declare namespace s =  "http://schemas.xmlsoap.org/soap/envelope/"; (/s:Envelope/s:Body/*)[1]'',''varchar(4000)'') AS id)
	--GET SONUCKODU FOR HATA IF ANY 
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCKODU = (SELECT T.C.value(''@value'', ''varchar(1000)'') AS SONUCKODU
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucKodu)'') AS T(C))
	--GET SONUCMESAJI
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCMESAJI = (SELECT T.C.value(''@value'', ''varchar(100)'') AS SONUCMESAJI
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucMesaji)'') AS T(C))
	IF	@SONUCKODU = ''S0000''  
		BEGIN
			UPDATE SERVISENTEGRASYON SET DURUM=1,DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1,CEVAPZAMANI=GETDATE() WHERE ID=@SERVISENTEGRASYONID
			UPDATE HMUAYENEKDGEBELIK SET HMUAYENEKDGEBELIK.SN_GONDERILDI = 1 
			FROM HMUAYENEKDGEBELIK
			 JOIN SERVISENTEGRASYON SE ON SE.KAYITID = HMUAYENEKDGEBELIK.HKDGEBELIKID
			 WHERE SE.ID = @SERVISENTEGRASYONID
		END
	
	ELSE 
		BEGIN
			UPDATE SERVISENTEGRASYON SET DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1 WHERE ID=@SERVISENTEGRASYONID
			
			INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, SERVISENTEGRASYONID, SONUCKODU, HATA, TARIH) SELECT SERVISGONDERIMFONKSIYONADI, SERVISENTEGRASYON.SUBEID, KAYITID, ID, @SONUCKODU, @SONUCMESAJI, GETDATE() FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID AND 0=(SELECT COUNT(*) FROM SERVISENTEGRASYONHATALARI WHERE SERVISENTEGRASYONID = @SERVISENTEGRASYONID)
		END 
		   
', N'', N'1hour', 8)
GO
INSERT [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI], [SERVISTIPI], [KAYITTABLOADI], [KAYITALANADI], [GONDERILECEKLERISECSORGU], [ISTEKSQL], [CEVAPSQL], [NOTLAR], [GONDERIMPERYODU], [ONCELIK]) VALUES (N'GEBELIK_SONUCU_VERI_SETI', 1, N'HDOGUM', N'HDOGUMID', N'SELECT HDOGUM.HDOGUMID AS TABLOID,
       ISNULL(HDOGUM.SUBEID,ISNULL((SELECT SUBEID FROM VWMUAYENE WITH(NOLOCK) WHERE VWMUAYENE.HMUAYENEID=HDOGUM.HMUAYENEID),1)) AS SUBEID
FROM HDOGUM WITH(NOLOCK)
WHERE ISNULL(HDOGUM.GS_SN_GONDERILDI, 0) = 0
      AND HDOGUM.KYTTARIHI > DATEADD(DAY, -1*(SELECT CONVERT(INT,GONDERIMPERYODU) FROM SERVISENTEGRASYONTANIM WHERE GONDERIMFONKSIYONADI=''HEADER''), GETDATE())', N'DECLARE @SUBEID VARCHAR(10) = ''#SUBEID#'' 
DECLARE @HDOGUMID NVARCHAR(10) = ''#TABLOID#''
DECLARE @HATA NVARCHAR(2000) = ''''
IF (SELECT COUNT(*) FROM SUBELER WHERE SUBEID = @SUBEID) = 0 
BEGIN
	SET @HATA = @HATA +  ''İşlemin şube kaydı bulunamadı! ''
END
IF NOT EXISTS(SELECT GebelikSonucu FROM HDOGUM WHERE HDOGUMID = @HDOGUMID AND ISNULL(GebelikSonucu,'''')<>'''')
BEGIN
	SET @HATA = @HATA + '' Gebelik sonucu girilmemiş. ''
END
IF NOT EXISTS(SELECT SonlanmaTarihi FROM HDOGUM WHERE HDOGUMID = @HDOGUMID  AND ISNULL(SonlanmaTarihi,0)<>0)
BEGIN
	SET @HATA = @HATA + '' Gebelik sonlanma tarihi girilmemiş. ''
END
IF NOT EXISTS(SELECT OLUBEBEKSAYISI FROM HDOGUM WHERE HDOGUMID = @HDOGUMID  AND ISNULL(OLUBEBEKSAYISI,0)<>0) AND NOT EXISTS(SELECT CANLIBEBEKSAYISI FROM HDOGUM WHERE HDOGUMID = @HDOGUMID AND ISNULL(CANLIBEBEKSAYISI,0)<>0)
BEGIN
	SET @HATA = @HATA + ''Gebelik Sonucu gönderilirken, "Canlı Bebek Sayısı" ya da "Ölü Bebek Sayısı" ya da her ikisi de sıfırdan büyük olmalıdır. ''
END
IF NOT EXISTS(SELECT HDOGUM.YARDIMEDEN FROM HDOGUM WHERE HDOGUMID = @HDOGUMID AND SUBEID = @SUBEID AND ISNULL(YARDIMEDEN,'''')<>'''')
BEGIN
	SET @HATA = @HATA + ''Gebelik Sonucu gönderilirken doğuma yardım eden kişinin bilgileri girilmemiş. ''
END
IF NOT EXISTS(SELECT DOGUMYERI FROM HDOGUM WHERE HDOGUMID = @HDOGUMID AND SUBEID = @SUBEID AND ISNULL(DOGUMYERI,'''')<>'''')
BEGIN
	SET @HATA = @HATA + ''Gebelik Sonucu gönderilirken doğum yerinin bilgileri girilmemiş. ''
END
IF NOT EXISTS(SELECT YONTEMI FROM HDOGUM WHERE HDOGUMID = @HDOGUMID AND SUBEID = @SUBEID AND ISNULL(YONTEMI,0)<>0)
BEGIN
	SET @HATA = @HATA + ''Gebelik Sonucu gönderilirken doğumun yöntemin bilgileri girilmemiş. ''
END
IF EXISTS(SELECT YONTEMI FROM HDOGUM WHERE HDOGUMID =   @HDOGUMID  AND ISNULL(YONTEMI,'''')<>'''')
	 AND (SELECT YONTEMI FROM HDOGUM WHERE HDOGUMID =   @HDOGUMID ) = 2 
	 AND NOT EXISTS(SELECT SEZARYENENDIKASYONID FROM HDOGUM WHERE HDOGUMID =  @HDOGUMID AND ISNULL(SEZARYENENDIKASYONID,0)<>0)
BEGIN
	SET @HATA = @HATA + ''Doğum Yöntemi "Sezaryen Müdahaleli Dogum" seçilmişse Sezaryan Endikasyon bilgisinin girişi zorunludur. ''
END
IF @HATA <> '''' 
BEGIN
    IF NOT EXISTS(SELECT ID FROM SERVISENTEGRASYONHATALARI WHERE SERVISGONDERIMFONKSIYONADI=''GEBELIK_SONUCU_VERI_SETI'' AND KAYITID=@HDOGUMID AND SUBEID=@SUBEID AND HATA=@HATA AND TARIH>DATEADD(DAY,-2,GETDATE()))
	INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI,SUBEID,KAYITID,HATA,TARIH) VALUES (''GEBELIK_SONUCU_VERI_SETI'',@SUBEID,@HDOGUMID,@HATA,GETDATE())
END
ELSE
BEGIN
  /*START*/--SILMEYIN ONEMLI
	SELECT 
		NEWID() as ''messageGuid/@value'',
		''1'' as ''messageType/@version'',
		''0a9ba485-e7e0-4abb-9c86-0a14fd364bb8'' as ''messageType/@codeSystemGuid'',
		''224'' as ''messageType/@code'',
		''Gebelik Sonucu 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'',
				ISNULL((SELECT VALUESTR FROM CONFIG WHERE SECTIONSTR=''Saglik-Net'' AND PROGNAME=''MEDISOFT'' AND KEYNAME= @SUBEID+'' numaralı şubenin kurum numarası''),'''') as ''healthcareProvider/@code'',
				SUBELER.SUBEADI as ''healthcareProvider/@value''  
				FOR XML PATH(''author''), TYPE),
				''C740D0288ED4C45FE0407C0A04162BDD'' as ''firmaKodu/@value'' ,
				(
					SELECT 
						(
							SELECT
								ISNULL((SELECT CASE WHEN VWMUAYENE.HMUAYENEISLID IS NOT NULL THEN ISNULL(VWMUAYENE.SNOTAKIPNO,'''')
													WHEN VWMUAYENE.HMUAYENEISLID IS NULL THEN  ISNULL(VWYATIS.SNOTAKIPNO,'''')
														
													END
										FROM VWMUAYENE(NOLOCK) 
										LEFT JOIN VWYATIS(NOLOCK) ON VWYATIS.HMUAYENEID = VWMUAYENE.HMUAYENEID AND VWYATIS.UYGDRID = VWMUAYENE.HMDRID
										WHERE  VWMUAYENE.HMUAYENEID = HDOGUM.HMUAYENEID),'''') 
								 AS ''SYSTakipNo/@value''
							FOR XML PATH(''HASTA_TAKIP_BILGISI''), TYPE
						),
						(
							SELECT 
								ISNULL(CONVERT(VARCHAR(10),HDOGUM.CANLIBEBEKSAYISI),'''') AS ''CANLI_DOGAN_BEBEK_SAYISI/@value'',
								''1'' AS ''DOGUMA_YARDIM_EDEN/@version'',
								''a85c1ba7-3ae9-44c5-b0d0-613f92c5281b'' AS ''DOGUMA_YARDIM_EDEN/@codeSystemGuid'',
								ISNULL(CONVERT(VARCHAR(20),HDOGUM.YARDIMEDEN),'''') AS ''DOGUMA_YARDIM_EDEN/@code'',
								ISNULL((SELECT CASE HDOGUM.YARDIMEDEN
									WHEN 1 THEN ''Doktor'' 
									WHEN 2 THEN ''Ebe-Hemşire''
									WHEN 3 THEN  ''Diğer Sağlık Personeli'' 
									WHEN 4 THEN  ''Sağlık Personeli Yardımı olmadan'' 
									ELSE '''' END ),'''') AS ''DOGUMA_YARDIM_EDEN/@value'',
								''1'' AS ''DOGUMUN_GERCEKLESTIGI_YER/@version'',
								''bc2104af-0c2b-4a9d-a450-c0827effe607'' AS ''DOGUMUN_GERCEKLESTIGI_YER/@codeSystemGuid'',
								ISNULL(CONVERT(VARCHAR(20),HDOGUM.DOGUMYERI),'''') AS ''DOGUMUN_GERCEKLESTIGI_YER/@code'',
								ISNULL((SELECT CASE HDOGUM.DOGUMYERI
									WHEN 1 THEN ''Evde''
									WHEN 2 THEN ''1. Basamak Sağlık Kurumu''
									WHEN 3 THEN ''2. Basamak Sağlık Kurumu''
									WHEN 4 THEN ''3. Basamak Sağlık Kurumu''
									WHEN 5 THEN ''Sevk Sırasında''
									WHEN 98 THEN ''Diğer''
									WHEN 99 THEN ''Belirtilmedi''
								ELSE '''' END),'''') AS ''DOGUMUN_GERCEKLESTIGI_YER/@value'',						 
								''1'' AS ''DOGUM_YONTEMI/@version'',
								 ''c03d71af-54c5-4245-aea4-ad58e876e8bd'' AS ''DOGUM_YONTEMI/@codeSystemGuid'',
								 ISNULL(CONVERT(VARCHAR(20),HDOGUM.YONTEMI),'''') AS ''DOGUM_YONTEMI/@code'',
								 (SELECT DOGUMYONTEMI FROM TDOGUMYONTEMI WHERE HDOGUM.YONTEMI= TDOGUMYONTEMI.DOGUMYONTEMIID AND HDOGUMID = @HDOGUMID) AS ''DOGUM_YONTEMI/@value'',
								 ISNULL(LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),HDOGUM.SonlanmaTarihi,120),'' '',''''),''-'',''''),'':'',''''),12),'''') AS ''GEBELIK_SONLANMA_TARIHI/@value'',
								 ''1'' AS ''GEBELIK_SONUCU/@version'',
								 ''b5070ebb-a700-46dd-8f50-bee87e4b4596'' AS ''GEBELIK_SONUCU/@codeSystemGuid'',
								  ISNULL(CONVERT(VARCHAR(20),HDOGUM.GebelikSonucu),'''') AS ''GEBELIK_SONUCU/@code'',
								  ISNULL((SELECT CASE HDOGUM.GebelikSonucu
									WHEN 1 THEN ''Doğum''
									WHEN 2 THEN ''İsteyerek Düşük''
									WHEN 3 THEN  ''Kendiliğinden Düşük''
									WHEN 4 THEN  ''Sahte Gebelik''
									WHEN 5 THEN  ''Terapotik Abortus''
									ELSE '''' END),'''') AS ''GEBELIK_SONUCU/@value'',
								HDOGUM.OLUBEBEKSAYISI AS ''OLU_DOGAN_BEBEK_SAYISI/@value'',
								(SELECT CASE WHEN HDOGUM.SEZARYENNEDENID IS NOT NULL THEN ''1'' END) AS ''SEZARYAN_ENDIKASYON/@version'',
								(SELECT CASE WHEN HDOGUM.SEZARYENNEDENID IS NOT NULL THEN ''d7d14450-eaf1-7321-e040-7c0a04164cc0'' END) AS ''SEZARYAN_ENDIKASYON/@codeSystemGuid'',
								(SELECT CASE WHEN HDOGUM.SEZARYENNEDENID IS NOT NULL THEN  HDOGUM.SEZARYENNEDENID END) AS ''SEZARYAN_ENDIKASYON/@code'',
								(SELECT CASE WHEN HDOGUM.SEZARYENNEDENID IS NOT NULL THEN  (SELECT CASE HDOGUM.SEZARYENNEDENID
											WHEN 1 THEN ''Fetal Endikasyon''
											WHEN 2 THEN ''Maternal Endikasyon'' 
											WHEN 3 THEN ''Travay veya doğuma ait endikasyon''
											WHEN 4 THEN ''Umbilikal kord veya plasentaya ait endikasyon'' 
											ELSE '''' END )END) AS ''SEZARYAN_ENDIKASYON/@value'',
								(SELECT CASE WHEN HDOGUM.ENDIKASYONNEDENID IS NOT NULL
								THEN 
									(SELECT
										''1'' AS ''ENDIKASYON_NEDENLERI/@version'',
										''d7d15411-dbc7-f5bd-e040-7c0a041665a6'' 
										AS ''ENDIKASYON_NEDENLERI/@codeSystemGuid'',
										HDOGUM.ENDIKASYONNEDENID AS ''ENDIKASYON_NEDENLERI/@code'',
										(SELECT CASE HDOGUM.ENDIKASYONNEDENID
											 WHEN 1 THEN ''Fetal Sıkıntı''
											 WHEN 2 THEN ''Fetal Prezentasyon anomalileri (Makat Prezentasyon)''
											 WHEN 3 THEN ''Fetal Prezentasyon anomalileri (Diğer Prezentasyon Anomalileri) (Transvers, alın, yüz geliş, vb.)''
											 WHEN 4 THEN ''Çoğul Gebelikler''
											 WHEN 5 THEN ''Fetal Anomaliler (Hidrosefali, sakrokoksigeal teratom vb.)''
											 WHEN 6 THEN ''Geçirilmiş Uterus Cerrahisi (Sezaryen, diğer operasyonlar)''
											 WHEN 7 THEN ''Sistemik Hastalıklar 
											 (DM, HT, Gebeliğe Bağlı Hipertansiyon vb.)''
											 WHEN 8 THEN ''Vertikal Geçişli Maternal Enfeksiyonlar (HIV, HSV-2, vb.)''
											 WHEN 9 THEN  ''Baş-pelvis uyumsuzluğu''
											 WHEN 10 THEN ''İlerlemeyen eylem''
											 WHEN 11 THEN ''Fetal makrozomi''
											 WHEN 12 THEN ''Kordon sarkması''
											 WHEN 13 THEN ''Plasenta previa''
											 WHEN 14 THEN  ''Plasenta dekolmanı''
											 WHEN 15 THEN ''Vaza previa''
											 ELSE '''' END
										) AS ''ENDIKASYON_NEDENLERI/@value''
									 FROM HDOGUM WHERE HDOGUMID = @HDOGUMID
									FOR XML PATH(''ENDIKASYON_NEDENLERI_BILGISI''),TYPE)
								END)
							FOR XML PATH (''GEBELIK_SONUCU_VERI_SETI''), TYPE
						)
					FOR XML PATH(''recordData''), TYPE
				)
			FROM HDOGUM WITH(NOLOCK)
			LEFT JOIN SUBELER WITH(NOLOCK) ON SUBELER.SUBEID = HDOGUM.SUBEID
			WHERE HDOGUMID = @HDOGUMID AND SUBELER.SUBEID = @SUBEID
		FOR XML PATH (''''), ROOT(''SYSMessage'')
 /*END*/--SILMEYIN ONEMLI
 END', N'DECLARE @SERVISENTEGRASYONID INT
DECLARE @XML1 XML
DECLARE @XML2 VARCHAR(MAX)
DECLARE @XML3 XML
DECLARE @SNOTakipNo VARCHAR(20)
DECLARE @SONUCKODU VARCHAR(20)
DECLARE @SONUCMESAJI VARCHAR(1000)
SET @SERVISENTEGRASYONID = ''#SERVISENTEGRASYONID#''
SET @SNOTakipNo = ''''
SET @XML1 = ''''
SET @XML2 = ''''
SET @XML3 = ''''
SET @XML1 = (SELECT CEVAPXML FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID)
SET @XML2 = (SELECT @XML1.value (''declare namespace s =  "http://schemas.xmlsoap.org/soap/envelope/"; (/s:Envelope/s:Body/*)[1]'',''varchar(4000)'') AS id)
	--GET SONUCKODU FOR HATA IF ANY 
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCKODU = (SELECT T.C.value(''@value'', ''varchar(1000)'') AS SONUCKODU
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucKodu)'') AS T(C))
	--GET SONUCMESAJI
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCMESAJI = (SELECT T.C.value(''@value'', ''varchar(100)'') AS SONUCMESAJI
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucMesaji)'') AS T(C))
	IF	@SONUCKODU = ''S0000''  
		BEGIN
			UPDATE SERVISENTEGRASYON SET DURUM=1,DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1,CEVAPZAMANI=GETDATE() WHERE ID=@SERVISENTEGRASYONID
			UPDATE HDOGUM SET HDOGUM.GS_SN_GONDERILDI = 1 
			FROM HDOGUM
			 JOIN SERVISENTEGRASYON SE ON SE.KAYITID = HDOGUM.HDOGUMID
			 WHERE SE.ID = @SERVISENTEGRASYONID
		END
	
	ELSE 
		BEGIN
			UPDATE SERVISENTEGRASYON SET DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1 WHERE ID=@SERVISENTEGRASYONID
			
			INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, SERVISENTEGRASYONID, SONUCKODU, HATA, TARIH) SELECT SERVISGONDERIMFONKSIYONADI, SERVISENTEGRASYON.SUBEID, KAYITID, ID, @SONUCKODU, @SONUCMESAJI, GETDATE() FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID AND 0=(SELECT COUNT(*) FROM SERVISENTEGRASYONHATALARI WHERE SERVISENTEGRASYONID = @SERVISENTEGRASYONID)
		END', N'', N'1hour', 10)
GO
INSERT [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI], [SERVISTIPI], [KAYITTABLOADI], [KAYITALANADI], [GONDERILECEKLERISECSORGU], [ISTEKSQL], [CEVAPSQL], [NOTLAR], [GONDERIMPERYODU], [ONCELIK]) VALUES (N'GUN_SONU_VERI_SETI', 1, NULL, NULL, N'SELECT LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),USSGUNSONUGONDERIM.TARIH,120),'' '',''''),''-'',''''),'':'',''''),8) AS TABLOID,
       USSGUNSONUGONDERIM.SUBEID
FROM USSGUNSONUGONDERIM WITH(NOLOCK)
WHERE USSGUNSONUGONDERIM.TARIH >= DATEADD(DAY, -10, GETDATE())', N'DECLARE @SUBEID VARCHAR = ''#SUBEID#''
DECLARE @TARIH VARCHAR(8) = ''#TABLOID#''
DECLARE @HATA NVARCHAR(2000) = ''''
IF (SELECT COUNT(*) FROM SUBELER WHERE SUBEID = @SUBEID) = 0 
	BEGIN
		SET @HATA =  ''İşlemin şube kaydı bulunamadı!''
	END 
IF @HATA<>''''
BEGIN
    IF NOT EXISTS(SELECT ID FROM SERVISENTEGRASYONHATALARI WHERE SERVISGONDERIMFONKSIYONADI=''GUN_SONU_VERI_SETI'' AND KAYITID=@TARIH AND SUBEID=@SUBEID AND HATA=@HATA AND TARIH>DATEADD(DAY,-2,GETDATE()))
	INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI,SUBEID,KAYITID,HATA,TARIH) VALUES (''GUN_SONU_VERI_SETI'',@SUBEID,@TARIH,@HATA,GETDATE())
END
/*START*/--SILMEYIN ONEMLI
SELECT 
    NEWID() as ''messageGuid/@value'',
    ''1'' as ''messageType/@version'',
    ''0a9ba485-e7e0-4abb-9c86-0a14fd364bb8'' as ''messageType/@codeSystemGuid'',
    ''407'' as ''messageType/@code'',
    ''Gün Sonu 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'',
            (SELECT VALUESTR FROM CONFIG WHERE KEYNAME = CAST(SUBELER.SUBEID AS VARCHAR) +'' numaralı şubenin Sağlık.NET 2 kullanıcı adı'') as ''healthcareProvider/@code'',
            SUBELER.SUBEADI as ''healthcareProvider/@value''  
            FOR XML PATH(''author''), TYPE
	),
    ''C740D0288ED4C45FE0407C0A04162BDD'' as ''firmaKodu/@value'',      
    (		
	   SELECT 
		  ''1'' as ''KAYIT_YERI/@version'',
		  ''c3eade04-4f91-5dab-e043-14031b0ac9f9'' as ''KAYIT_YERI/@codeSystemGuid'',
		  CONFIG.VALUESTR as ''KAYIT_YERI/@code'',
		  SUBELER.SUBEADI as ''KAYIT_YERI/@value'',
		  (
			 SELECT 
				@TARIH  AS ''GUN_SONU_TARIH/@value'',
				( 
				    SELECT
					   ''1''AS  ''KLINIK_KALITE_TANIM/@version'',
					   ''4fa9b630-c081-44e1-8b8c-0ef0f967c17d'' AS ''KLINIK_KALITE_TANIM/@codeSystemGuid'',
					   USSGUNSONUGONDERIMKLINIKKALITE.KLINIKKALITEKOD AS ''KLINIK_KALITE_TANIM/@code'',
					   TKLINIKKALITE.KLINIKKALITEADI AS ''KLINIK_KALITE_TANIM/@value'',
					   USSGUNSONUGONDERIMKLINIKKALITE.KLINIKKALITESAYI AS ''KLINIK_KALITE_SAYI/@value''	
				    FROM USSGUNSONUGONDERIM WITH(NOLOCK)
				    JOIN USSGUNSONUGONDERIMKLINIKKALITE WITH(NOLOCK) ON  USSGUNSONUGONDERIMKLINIKKALITE.USSGUNSONUGONDERIMID =  USSGUNSONUGONDERIM.USSGUNSONUGONDERIMID
				    JOIN TKLINIKKALITE WITH(NOLOCK) ON USSGUNSONUGONDERIMKLINIKKALITE.KLINIKKALITEKOD =TKLINIKKALITE.KLINIKKALITEKOD
				    WHERE  USSGUNSONUGONDERIM.TARIH = CONVERT(DATE,@TARIH)
              		    FOR XML PATH(''KLINIK_KALITE_BILGISI''), TYPE
				)	
			 FOR XML PATH(''GUN_SONU_BILGISI''), TYPE
		  )
	   FOR XML PATH(''GUN_SONU_VERI_SETI''),ROOT(''recordData''), TYPE
    )  
FROM SUBELER
LEFT JOIN CONFIG ON KEYNAME = CAST(SUBELER.SUBEID AS VARCHAR) +
'' numaralı şubenin Sağlık.NET 2 kullanıcı adı''
WHERE CONVERT(VARCHAR, SUBELER.SUBEID) = @SUBEID
FOR XML PATH (''''), ROOT(''SYSMessage'')
/*END*/--SILMEYIN ONEMLI', N'DECLARE @SERVISENTEGRASYONID INT
DECLARE @XML1 XML
DECLARE @XML2 VARCHAR(MAX)
DECLARE @XML3 XML
DECLARE @SONUCKODU VARCHAR(20)
DECLARE @SONUCMESAJI VARCHAR(1000)
SET @SERVISENTEGRASYONID = ''#SERVISENTEGRASYONID#''
SET @XML1 = ''''
SET @XML2 = ''''
SET @XML3 = ''''
SET @XML1 = (SELECT CEVAPXML FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID)
SET @XML2 = (SELECT @XML1.value (''declare namespace s =  "http://schemas.xmlsoap.org/soap/envelope/"; (/s:Envelope/s:Body/*)[1]'',''varchar(4000)'') AS id)
	--GET SONUCKODU FOR HATA IF ANY 
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCKODU = (SELECT T.C.value(''@value'', ''varchar(100)'') AS SONUCKODU
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucKodu)'') AS T(C))
	--GET SONUCMESAJI
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCMESAJI = (SELECT T.C.value(''@value'', ''varchar(1000)'') AS SONUCMESAJI
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucMesaji)'') AS T(C))
	IF	@SONUCKODU = ''S0000''  
		BEGIN
			UPDATE SERVISENTEGRASYON SET DURUM=1,DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1,CEVAPZAMANI=GETDATE() WHERE ID=@SERVISENTEGRASYONID
			UPDATE USSGUNSONUGONDERIM SET USSGUNSONUGONDERIM.GONDERIMTARIHI = GETDATE()
			FROM USSGUNSONUGONDERIM
			 JOIN SERVISENTEGRASYON SE ON SE.KAYITID = LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),USSGUNSONUGONDERIM.TARIH,120),'' '',''''),''-'',''''),'':'',''''),8) AND SE.SUBEID = USSGUNSONUGONDERIM.SUBEID
			 WHERE SE.ID = @SERVISENTEGRASYONID 
		END
	
	ELSE 
		BEGIN
			UPDATE SERVISENTEGRASYON SET DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1 WHERE ID=@SERVISENTEGRASYONID

			INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, SERVISENTEGRASYONID, SONUCKODU, HATA, TARIH) SELECT SERVISGONDERIMFONKSIYONADI, SERVISENTEGRASYON.SUBEID, KAYITID, ID, @SONUCKODU, KAYITID+'' gününe ait gün sonu özet verilerinin USS-ye gönderimi sırasında bir hata oluştu. ''+@SONUCMESAJI, GETDATE() FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID AND 0=(SELECT COUNT(*) FROM SERVISENTEGRASYONHATALARI WHERE SERVISENTEGRASYONID = @SERVISENTEGRASYONID)
		END ', N'', N'1day', 10)
GO
INSERT [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI], [SERVISTIPI], [KAYITTABLOADI], [KAYITALANADI], [GONDERILECEKLERISECSORGU], [ISTEKSQL], [CEVAPSQL], [NOTLAR], [GONDERIMPERYODU], [ONCELIK]) VALUES (N'HASTA_KAYIT_MUAYENE', 1, N'HMUAYENEISL', N'HMUAYENEISLID', N'SELECT HMUAYENEISL.HMUAYENEISLID AS TABLOID,
       ISNULL(HDOSYA.SUBEID, 1) AS SUBEID
FROM HMUAYENEISL WITH(NOLOCK)
     JOIN HESAPISL WITH(NOLOCK) ON HESAPISL.HESAPISLID = HMUAYENEISL.HESAPISLID
     JOIN HDOSYA WITH(NOLOCK) ON HDOSYA.HDOSYAID = HESAPISL.HDOSYAID
WHERE(ISNULL(HMUAYENEISL.SNOTAKIPNO, ''0'') = ''0''
      OR ISNULL(HMUAYENEISL.SNOTAKIPNO, '''') = '''')
     AND HESAPISL.ITARIH > (CASE WHEN DATEPART(HOUR,GETDATE()) BETWEEN 1 AND 6 AND SUBSTRING(CONVERT(VARCHAR, getdate(), 100), 18, 2)=''AM'' THEN DATEADD(DAY, -1*(SELECT CONVERT(INT,GONDERIMPERYODU) FROM SERVISENTEGRASYONTANIM WHERE GONDERIMFONKSIYONADI=''HEADER''), GETDATE()) ELSE DATEADD(MINUTE, -6, GETDATE()) END)
    AND HDOSYA.HDIPTAL = 0
    AND (HESAPISL.IPTAL = 0) 
    AND (HESAPISL.ONAYLI = 1) 
    AND (ISNULL(HESAPISL.TEKLIF, 0) = 0)
     AND HMUAYENEISL.HMUAYENEISLID NOT IN
(
    SELECT KAYITID
    FROM SERVISENTEGRASYON
    WHERE SERVISGONDERIMFONKSIYONADI = ''HASTA_KAYIT_MUAYENE''
)
', N'DECLARE @SUBEID VARCHAR(10) =  ''#SUBEID#''
DECLARE @HMUAYENEISLID VARCHAR(20) = ''#TABLOID#'' 
DECLARE @HATA NVARCHAR(2000) = ''''

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

SELECT	VWMUAYENEISL.*,
		VWYATIS.YATISTIPI,
		VWYATIS.YATISACILIYETID,
		VWYATIS.HYYATAKNO,
		SUBELER.SUBEADI INTO #TMPVWMUAYENEISL
FROM VWMUAYENEISL WITH(NOLOCK)
		LEFT OUTER JOIN VWYATIS WITH(NOLOCK) ON VWYATIS.HMUAYENEID = VWMUAYENEISL.HMUAYENEID
		LEFT OUTER JOIN SUBELER WITH(NOLOCK) ON SUBELER.SUBEID = VWMUAYENEISL.SUBEID
WHERE VWMUAYENEISL.HMUAYENEISLID = @HMUAYENEISLID
		AND SUBELER.SUBEID = CONVERT(INT,@SUBEID)	 
		  
IF (SELECT COUNT(*) FROM #TMPVWMUAYENEISL) = 0 
BEGIN
	SET @HATA = @HATA + ''Muayene kaydı bulunamadı! ''
END
IF (SELECT COUNT(*) FROM SUBELER WHERE SUBEID = @SUBEID) = 0 
BEGIN
	SET @HATA = @HATA + ''İşlemin şube kaydı bulunamadı! ''
END
IF NOT EXISTS(SELECT HMUAYENEISLID FROM #TMPVWMUAYENEISL WHERE (HCINSIYETI=''E'' OR HCINSIYETI=''K''))
BEGIN
    SET @HATA = @HATA + ''Hastanın cinsiyeti girilmemiş! ''
END
IF EXISTS(SELECT HMUAYENEISLID FROM #TMPVWMUAYENEISL WHERE ISNULL(HULKEMERNISKODU,0)<>0 AND RTRIM(ISNULL(HULKEADI,''''))='''')
BEGIN
    SET @HATA = @HATA  + ''Hastanın ülke kodu SKRS kodları içerisinde bulunamadı! ''
END 
IF NOT EXISTS(SELECT HMUAYENEISLID FROM #TMPVWMUAYENEISL WHERE RTRIM(ISNULL(UYGBOLUMKLINIKKODU,''''))<>'''')                  
BEGIN
    SET @HATA = @HATA + ''Uygulama bölümü için klinik kodu tanımlanmamış! ''
END
IF NOT EXISTS(SELECT HMUAYENEISLID FROM #TMPVWMUAYENEISL WHERE ISNULL(HDTARIHI,0)<>0)
BEGIN
    SET @HATA =@HATA+  ''Hastanın doğum tarihi girilmemiş! ''
END
IF NOT EXISTS(SELECT HMUAYENEISLID FROM #TMPVWMUAYENEISL WHERE ISNULL(ITARIH,0)<>0)
BEGIN
	SET @HATA = @HATA+ ''Hastanın kabul zamanı girilmemiş! ''
END
IF (SELECT ISNULL(HTCKIMLIKNO,'''') FROM #TMPVWMUAYENEISL) = ''''
	AND 
		(
			(SELECT ISNULL(HULKEMERNISKODU,0) FROM #TMPVWMUAYENEISL) = 0
			OR 
			(SELECT HULKEMERNISKODU FROM #TMPVWMUAYENEISL) = 9980
		)
	AND (SELECT DATEDIFF(DAY,HDTARIHI, ITARIH) FROM #TMPVWMUAYENEISL) <= 28
BEGIN
    IF (SELECT ISNULL(ANNETCKIMLIKNO,'''') FROM #TMPVWMUAYENEISL) = ''''
    BEGIN
        SET @HATA = @HATA + ''Yeni doğan hastanın anne TC kimlik numarası girilmemiş! ''
    END
	IF (SELECT ISNULL(DOGUMSIRANO,0) FROM #TMPVWMUAYENEISL) = 0
	BEGIN
		SET @HATA =@HATA +  ''Yeni doğan hastanın doğum sıra numarası girilmemiş! ''
	END
END
IF @HATA <> ''''
BEGIN
    IF NOT EXISTS(SELECT ID FROM SERVISENTEGRASYONHATALARI WHERE SERVISGONDERIMFONKSIYONADI=''HASTA_KAYIT_MUAYENE'' AND KAYITID=@HMUAYENEISLID AND SUBEID=@SUBEID AND HATA=@HATA AND TARIH>DATEADD(DAY,-2,GETDATE()))
    INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI,SUBEID,KAYITID,HATA,TARIH) VALUES (''HASTA_KAYIT_MUAYENE'',@SUBEID,@HMUAYENEISLID, @HATA, GETDATE())	
END
ELSE
BEGIN
/*START*/--SILMEYIN ONEMLI
SELECT 
	NEWID() AS ''messageGuid/@value'',
	''1'' AS ''messageType/@version'',
	''0a9ba485-e7e0-4abb-9c86-0a14fd364bb8'' AS ''messageType/@codeSystemGuid'',
	''101'' AS ''messageType/@code'',
	''Hasta Kayıt'' 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'',
			ISNULL((SELECT VALUESTR FROM CONFIG (NOLOCK) WHERE SECTIONSTR = ''Saglik-Net'' AND PROGNAME = ''MEDISOFT'' AND KEYNAME = CONVERT(VARCHAR, @SUBEID) + '' numaralı şubenin kurum numarası''),'''') AS ''healthcareProvider/@code'',
			SUBEADI AS ''healthcareProvider/@value''
		FOR XML PATH(''author''), TYPE
	),
	''C740D0288ED4C45FE0407C0A04162BDD'' AS ''firmaKodu/@value'',
	(
		SELECT
			(
				SELECT
					(
						SELECT
							
							CASE WHEN (ISNULL(HULKEMERNISKODU,0) = 0 OR HULKEMERNISKODU = 9980) AND HTCKIMLIKNO <> '''' AND LEFT(ISNULL(HTCKIMLIKNO,''''),1)<>''9'' THEN HTCKIMLIKNO
                                 ELSE ''''
                            END) AS ''HASTA_KIMLIK_NUMARASI/@value'',
							ISNULL(HADI, '''') AS ''AD/@value'',
						   ISNULL(HSOYADI, '''') AS ''SOYAD/@value'',
						   ''1'' AS ''CINSIYET/@version'',
						   ''784d0f4f-0603-4425-937f-1a3941fc3a1f'' AS ''CINSIYET/@codeSystemGuid'',
						   ISNULL((
							   SELECT CASE HCINSIYETI
										  WHEN ''E'' THEN
											  ''1''
										  WHEN ''K'' THEN
											  ''2''
									  END),'''') AS ''CINSIYET/@code'',
							ISNULL((
								SELECT CASE HCINSIYETI
                                      WHEN ''E'' THEN
                                          ''ERKEK''
                                      WHEN ''K'' THEN
                                          ''KADIN''
                                  END),'''') AS ''CINSIYET/@value'',
							ISNULL(LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),HDTARIHI,120),'' '',''''),''-'',''''),'':'',''''),8) + ''0000'', '''') AS ''DOGUM_TARIHI/@value'',
							''1'' AS ''UYRUK/@version'',
							''d650777a-3d4d-a259-e040-7c0a01167a83'' AS ''UYRUK/@codeSystemGuid'',
						   (SELECT CASE
										  WHEN ISNULL(HULKEMERNISKODU,0) = 0 THEN
											  9980
										  ELSE
											  ISNULL(CONVERT(VARCHAR, HULKEMERNISKODU),0)
									  END) AS ''UYRUK/@code'',
						   (SELECT CASE
									 WHEN ISNULL(HULKEMERNISKODU,0) = 0 THEN
											  ''TÜRKİYE CUMHURİYETİ''
									 ELSE
											  ISNULL(HULKEADI, '''')
									  END) AS ''UYRUK/@value'',
						   (SELECT CASE
									  WHEN (ISNULL(HULKEMERNISKODU,0) = 0
										OR HULKEMERNISKODU = 9980)
										AND (DATEDIFF(DAY, HDTARIHI, ITARIH) <= 28) THEN
											ISNULL(ANNETCKIMLIKNO, '''')
										ELSE
											 '''' END) AS ''ANNE_KIMLIK_NUMARASI/@value'',
						   (SELECT CASE
								WHEN (ISNULL(HULKEMERNISKODU,0) = 0
								OR HULKEMERNISKODU = 9980)
								AND (DATEDIFF(DAY, HDTARIHI, ITARIH) <= 28)
								 THEN (SELECT CASE WHEN DOGUMSIRANO > 0 THEN
										 ISNULL(CONVERT(VARCHAR, DOGUMSIRANO), '''')
														 ELSE
															 '''' END)
										  ELSE '''' END) AS ''DOGUM_SIRASI/@value'',
						   (SELECT CASE
										  WHEN ISNULL(HTCKIMLIKNO, '''') <> '''' AND LEFT(ISNULL(HTCKIMLIKNO, ''''),1)=''9''
										  THEN
											ISNULL(HTCKIMLIKNO, 0) 
										  WHEN
										  (ISNULL(HULKEMERNISKODU,0) <> 0
											  AND HULKEMERNISKODU <> 9980
											  AND HTCKIMLIKNO <> '''' ) THEN
											  ISNULL(HTCKIMLIKNO, 0)
										  ELSE
											  ''''
									  END) AS ''YABANCI_HASTA_KIMLIK_NUMARASI/@value'',
						   (SELECT CASE WHEN
								(ISNULL(HULKEMERNISKODU,0) <> 0
									AND HULKEMERNISKODU <> 9980
									AND HTCKIMLIKNO = '''') THEN
									ISNULL(HPASAPORT, '''')
								ELSE
									'''' END) AS ''PASAPORT_NO/@value'',
						   (SELECT CASE WHEN
								(ISNULL(HULKEMERNISKODU,0) <> 0
									AND HULKEMERNISKODU <> 9980
									AND HTCKIMLIKNO <> ''''
									AND HPASAPORT = '''') THEN
									@SUBEID + ''_'' + ISNULL(CONVERT(VARCHAR, HKIMLIKID), '''')
										  ELSE
											  '''' END) AS ''KIMLIKSIZ_HASTA_BILGISI/@value'',
						   ISNULL(LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),HDTARIHI,120),'' '',''''),''-'',''''),'':'',''''),8) + ''0000'','''') AS ''BEYAN_DOGUM_TARIHI/@value'',
						   ''1'' AS ''HASTA_TIPI/@version'',
						   ''4f4fd85e-6f52-4c38-a302-6d5e3d6dc1c4'' AS ''HASTA_TIPI/@codeSystemGuid'',
							ISNULL(CONVERT(VARCHAR,
								(SELECT CASE 
											 WHEN HTCKIMLIKNO <> '''' AND SUBSTRING(HTCKIMLIKNO, 1, 1) = ''9''                      
												THEN 2
											 WHEN((ISNULL(HULKEMERNISKODU,0) = 0
													OR HULKEMERNISKODU = 9980)
													AND HTCKIMLIKNO <> '''') 
												THEN 1
											 WHEN
												(DATEDIFF(DAY, HDTARIHI, ITARIH) + 1) <= 28 THEN
													(SELECT CASE WHEN HULKEMERNISKODU <> 9980
																AND HTCKIMLIKNO = ''''
																AND ANNETCKIMLIKNO <> ''''
																AND SUBSTRING(ANNETCKIMLIKNO, 1, 2) <> ''99'' 
															THEN 6
															ELSE 4
															END)
											WHEN HPASAPORT <> ''''
													AND HTCKIMLIKNO = '''' 
												THEN 2
											ELSE 3
											END)),'''') AS ''HASTA_TIPI/@code'',
							   ISNULL(CONVERT(VARCHAR,
									(SELECT CASE 
											 WHEN  HTCKIMLIKNO <> '''' AND SUBSTRING(ISNULL(HTCKIMLIKNO,''''), 1, 1) = ''9''											 
												THEN ''YABANCI_KAYIT''	
											 WHEN(
												(ISNULL( HULKEMERNISKODU,0) = 0
												OR HULKEMERNISKODU = 9980)
												AND HTCKIMLIKNO <> '''')
											THEN ''VATANDAŞ_KAYIT''
											WHEN (DATEDIFF(DAY, HDTARIHI, ITARIH) + 1) <= 28 
											THEN
												(SELECT CASE WHEN HULKEMERNISKODU <> 9980
																AND HTCKIMLIKNO = ''''
																AND ANNETCKIMLIKNO <> ''''
																AND SUBSTRING(ANNETCKIMLIKNO, 1, 2) <> ''99''			
														THEN ''KİMLİKSİZ''
														ELSE ''YENIDOĞAN_KAYIT'' END)
											WHEN HPASAPORT <> ''''
												  AND HTCKIMLIKNO = ''''
											THEN ''YABANCI_KAYIT''
											ELSE ''VATANSIZ_KAYIT(MÜLTECI)'' 
											END)),'''') AS ''HASTA_TIPI/@value'',
								(SELECT
									''1'' AS ''ADRES_KODU_SEVIYESI/@version'',
									''aa0e83ba-e9db-4817-80da-577fd6a17373'' AS ''ADRES_KODU_SEVIYESI/@codeSystemGuid'',
									''5'' AS ''ADRES_KODU_SEVIYESI/@code'',
									''MAHALLE'' AS ''ADRES_KODU_SEVIYESI/@value'',
									ISNULL(CONVERT(VARCHAR, EVMAHSNADRESKODU), '''') AS ''ADRES_KODU/@value'',
									ISNULL(EVMAHSNADRESADI, '''') AS ''ACIK_ADRES/@value'',
									ISNULL(EVILADI, '''') AS ''ACIK_ADRES_IL/@value'',
									ISNULL(EVILCEADI, '''') AS ''ACIK_ADRES_ILCE/@value''
                           FOR XML PATH(''ADRES_BILGISI''), TYPE
						)
					FOR XML PATH(''HASTA_KIMLIK_BILGILERI''), TYPE
				),
			   (
					SELECT ISNULL((SELECT CASE
                                     WHEN ACKKMTAKIPNO <> '''' THEN
                                     ISNULL(ACKKMTAKIPNO, '''')
                                     END),'''') AS ''AMBULANS_TAKIP_NUMARASI/@value'',
                          ''1'' AS ''HIZMET_SUNUCU/@version'',
                          ''c3eade04-4f91-5dab-e043-14031b0ac9f9'' AS ''HIZMET_SUNUCU/@codeSystemGuid'',
                          ISNULL((SELECT VALUESTR
                              FROM CONFIG (NOLOCK)
                              WHERE SECTIONSTR = ''Saglik-Net''
                                    AND PROGNAME = ''MEDISOFT''
                                    AND KEYNAME = CONVERT(VARCHAR, @SUBEID) + '' numaralı şubenin kurum numarası''
                          ),'''') AS ''HIZMET_SUNUCU/@code'',
                          ISNULL(SUBEADI, '''') AS ''HIZMET_SUNUCU/@value'',
                          ''1'' AS ''KAYIT_YERI/@version'',
                          ''c3eade04-4f91-5dab-e043-14031b0ac9f9'' AS ''KAYIT_YERI/@codeSystemGuid'',
                          ISNULL((SELECT VALUESTR
                              FROM CONFIG (NOLOCK)
                              WHERE SECTIONSTR = ''Saglik-Net''
                                    AND PROGNAME = ''MEDISOFT''
                                    AND KEYNAME = CONVERT(VARCHAR, @SUBEID) + '' numaralı şubenin kurum numarası''
                          ),'''') AS ''KAYIT_YERI/@code'',
                          ISNULL(SUBEADI, '''') AS ''KAYIT_YERI/@value'',
                          /*''K-''
                          +
                          ( SELECT VALUESTR
                              FROM CONFIG (NOLOCK)
                              WHERE KEYNAME = CAST(@SUBEID AS VARCHAR) + '' numaralı şubenin Sağlık.NET 2 kullanıcı adı'') + ''-'' + ISNULL(CAST(UYGBOLUMKLINIKKODU AS VARCHAR(6)), '''') + ''-'' + ''00''
                          + CAST(BIRIMSIRANO AS VARCHAR) + ''-'' + ISNULL(MUAYENETIPIKODU, '''')
                          + ''-''
                          + ISNULL(CONVERT(VARCHAR(20), REPLACE(CONVERT(CHAR(8), ITARIH, 3), ''/'', '''')), '''')
                          + ''-''
                          + ISNULL((SELECT CASE
                                           WHEN LEN(PPROTOKOLNO) = 3 THEN
                                               ''00000'' + CAST(PPROTOKOLNO AS VARCHAR)
                                           WHEN LEN(PPROTOKOLNO) = 4 THEN
                                               ''0000'' + CAST(PPROTOKOLNO AS VARCHAR)
                                       END),'''')*/
						  ISNULL(PPROTOKOLNO,'''') AS ''PROTOKOL_NUMARASI/@value'',
                          ISNULL(CONVERT(VARCHAR, HESAPISLID), '''') AS ''HASTANE_REFERANS_NUMARASI/@value'',
                          ISNULL(MDLTAKIPNO, '''') AS ''SGK_TAKIP_NUMARASI/@value'',
                          ISNULL(CONVERT(VARCHAR, LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),ITARIH,120),'' '',''''),''-'',''''),'':'',''''),12)), '''') AS ''KABUL_ZAMANI/@value'',
                          ''1'' AS ''KLINIK_KODU/@version'',
                          ''c04bee57-c5d4-443d-e040-7b0a6f146a3d'' AS ''KLINIK_KODU/@codeSystemGuid'',
                          ISNULL(UYGBOLUMKLINIKKODU, '''') AS ''KLINIK_KODU/@code'',
                          ISNULL(UYGBOLUMKLINIKADI, '''') AS ''KLINIK_KODU/@value'',
                          ''1'' AS ''SOSYAL_GUVENCE_DURUMU/@version'',
                          ''530da738-2be0-4adc-a7c1-aca18c66a3f8'' AS ''SOSYAL_GUVENCE_DURUMU/@codeSystemGuid'',
                          ISNULL(CONVERT(VARCHAR, SGDURUMID), '''') AS ''SOSYAL_GUVENCE_DURUMU/@code'',
                          ISNULL(SGDURUMADI, '''') AS ''SOSYAL_GUVENCE_DURUMU/@value'',
                          ISNULL(UYGDRTCKIMLIKNO, '''') AS ''HEKIM_KIMLIK_NUMARASI/@value'',
                          ''1'' AS ''VAKA_TURU/@version'',
                          ''46380e82-d8b1-407d-9554-255d95a9f959'' AS ''VAKA_TURU/@codeSystemGuid'',
                          (SELECT CASE
                                WHEN MUAYENETIPIID = ''6'' THEN
                                    ''13''
                                WHEN GSSPROVTIPI = ''A'' THEN
                                    ''2''
                                WHEN GSSPROVTIPI = ''T'' THEN
                                    ''3''
                                WHEN GSSPROVTIPI = ''I'' THEN
                                    ''4''
                                WHEN GSSPROVTIPI = ''V'' THEN
                                    ''5''
                                WHEN GSSPROVTIPI = ''M'' THEN
                                    ''6''
                                ELSE
                                    ''1''
                               END) AS ''VAKA_TURU/@code'',
                          (SELECT CASE
								WHEN MUAYENETIPIID = ''6'' THEN
									''Konsultasyon Muayenesi''
								WHEN GSSPROVTIPI = ''A'' THEN
									''Acil''
								WHEN GSSPROVTIPI = ''T'' THEN
									''Trafik kazası''
								WHEN GSSPROVTIPI = ''I'' THEN
									''İş kazası''
								WHEN GSSPROVTIPI = ''V'' THEN
									''Adli Vaka''
								WHEN GSSPROVTIPI = ''M'' THEN
									''Meslek hastalığı''
								ELSE
                                  ''Normal''
                                     END) AS ''VAKA_TURU/@value'',
                          '''' AS ''MHRS_RANDEVU_NUMARASI/@value'',
                          ''1'' AS ''TRIAJ/@version'',
                          ''1ddcbef5-4006-41fe-87c0-6190c9801708'' AS ''TRIAJ/@codeSystemGuid'',
                          ISNULL(CONVERT(   VARCHAR,
                                 ( SELECT CASE WHEN HDTRIYAJID = '''' THEN
                                                    ''0''
                                                ELSE
                                                    HDTRIYAJID
                                            END )),''0'') AS ''TRIAJ/@code'',
                          ISNULL((SELECT CASE HDTRIYAJID
                                         WHEN '''' THEN
                                             ''BELİRTİLMEMİŞ''
                                         WHEN 1 THEN
                                             ''YESIL''
                                         WHEN 2 THEN
                                             ''SARI''
                                         WHEN 3 THEN
                                             ''KIRMIZI''
                                         WHEN 4 THEN
                                             ''SIYAH''
                                     END
                          ),''BELİRTİLMEMİŞ'') AS ''TRIAJ/@value'',
                          ISNULL(SNOTAKIPNO, '''') AS ''SYSTakipNo/@value'',
                          (SELECT
                              (SELECT CASE HDYATIYOR
                                WHEN 1 THEN
                                    ISNULL(CONVERT(VARCHAR,
									LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),ITARIH,120),'' '',''''),''-'',''''),'':'',''''),12)),'''')
									ELSE '''' END) AS ''YATIS_KABUL_ZAMANI/@value'',
                              (SELECT CASE HDYATIYOR
                                WHEN 1 THEN
                                    ISNULL(HYYATAKNO, '''')
                                ELSE
									'''' END) AS ''YATAK_NO/@value'',
							 (SELECT CASE HDYATIYOR
                                  WHEN 1 THEN
									(SELECT CASE
										WHEN YATISTIPI = ''Müşahade''
										OR YATISTIPI = ''Günubirlik Yatış''
										THEN ''EVET''
										  ELSE ''HAYIR''  
										END) ELSE '''' END) AS ''YATIS_GUNUBIRLIK_MI/@value'',
                                  ''1'' AS ''YATISIN_ACILIYETI/@version'',
                                  ''dc6ff680-555f-44b2-855e-a47c51207e4f''
								   AS ''YATISIN_ACILIYETI/@codeSystemGuid'',
                                (SELECT CASE HDYATIYOR
                                   WHEN 1
								THEN ISNULL(CONVERT(VARCHAR, YATISACILIYETID), ''99'')
                                   ELSE ''99''
									END) AS ''YATISIN_ACILIYETI/@code'',
                                  ISNULL((SELECT CASE HDYATIYOR
                                           WHEN 1 THEN
                                            (SELECT CASE YATISACILIYETID
                                                WHEN 1 THEN
                                                    ''Aciliyet Durumu Atanmış - Acil''
                                                WHEN 2 THEN
                                                    ''Aciliyet Durumu Atanmış - Elektif''
                                                WHEN 3 THEN
                                                    ''Aciliyet Durumu Atanmamış''
                                                WHEN 9 THEN
                                                    ''BELİRTİLMEDİ''
                                                ELSE
                                                    ''BELİRTİLMEDİ'' END)END),
							''BELİRTİLMEDİ'') AS ''YATISIN_ACILIYETI/@value''
							FOR XML PATH(''YATIS_BILGISI''), TYPE)
					FOR XML PATH(''HASTA_BASVURU_BILGILERI''), TYPE
				)
           FOR XML PATH(''recordData''), TYPE
		)		  
FROM #TMPVWMUAYENEISL (NOLOCK)
FOR XML PATH(''''), ROOT(''SYSMessage'')
 /*END*/--SILMEYIN ONEMLI
END
IF OBJECT_ID(''tempdb..#TMPVWMUAYENEISL'') IS NOT NULL 
DROP TABLE #TMPVWMUAYENEISL', N'DECLARE @XML1 XML
DECLARE @XML2 VARCHAR(MAX)
DECLARE @XML3 XML
DECLARE @SNOTakipNo VARCHAR(20)
DECLARE @SONUCKODU VARCHAR(20)
DECLARE @SONUCMESAJI VARCHAR(100)
DECLARE @SERVISENTEGRASYONID INT =  ''#SERVISENTEGRASYONID#''
SET @SNOTakipNo=''''
SET @XML1 = ''''
SET @XML2 = ''''
SET @XML3 = ''''
SET @XML1 = (SELECT CEVAPXML FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID)
SET @XML2 = (SELECT @XML1.value (''declare namespace s =  "http://schemas.xmlsoap.org/soap/envelope/"; (/s:Envelope/s:Body/*)[1]'',''varchar(4000)'') AS id)
   --GET @SNOTakipNo
    SET @XML3 = (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SNOTakipNo = (SELECT T.C.value(''@value'', ''varchar(100)'') as SNOTakipNo
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/SYSTakipNo)'') as T(C))
   --GET SONUCKODU FOR HATA IF ANY 
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCKODU = (SELECT T.C.value(''@value'', ''varchar(100)'') AS SONUCKODU
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucKodu)'') AS T(C))
	--GET @SONUCMESAJI
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCMESAJI = (SELECT T.C.value(''@value'', ''varchar(1000)'') AS SONUCMESAJI
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucMesaji)'') AS T(C))
  
  
	IF @SONUCKODU = ''E2033'' 
			BEGIN
			UPDATE SERVISENTEGRASYON SET DURUM=1,DENEMESAYISI=0,CEVAPZAMANI=GETDATE() WHERE ID=@SERVISENTEGRASYONID

			--INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, SERVISENTEGRASYONID, SONUCKODU, HATA, TARIH) SELECT SERVISGONDERIMFONKSIYONADI, SERVISENTEGRASYON.SUBEID, KAYITID, ID, @SONUCKODU, ''Hastanın USS hasta kaydı daha önce yapıldığı için önceki takip numarası sisteme kaydedildi.'', GETDATE() FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID AND 0=(SELECT COUNT(*) FROM SERVISENTEGRASYONHATALARI WHERE SERVISENTEGRASYONID = @SERVISENTEGRASYONID)
		END
    ELSE IF @SONUCKODU = ''S0000''
		BEGIN
		  UPDATE SERVISENTEGRASYON SET DURUM=1,DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1,CEVAPZAMANI=GETDATE() WHERE ID=@SERVISENTEGRASYONID
		IF @SNOTakipNo <>
		(SELECT HMISL.SNOTAKIPNO FROM HMUAYENEISL HMISL
		 JOIN SERVISENTEGRASYON SE ON SE.KAYITID=HMISL.HMUAYENEISLID
		 WHERE SE.ID = @SERVISENTEGRASYONID)
	   OR
	   (SELECT HMISL.SNOTAKIPNO FROM HMUAYENEISL HMISL
	    JOIN SERVISENTEGRASYON SE ON SE.KAYITID=HMISL.HMUAYENEISLID
		WHERE SE.ID = @SERVISENTEGRASYONID) IS NULL
		BEGIN	
			UPDATE HMISL SET HMISL.SNOTAKIPNO = @SNOTakipNo FROM HMUAYENEISL HMISL
				   JOIN SERVISENTEGRASYON SE ON SE.KAYITID=HMISL.HMUAYENEISLID
				   WHERE SE.ID = @SERVISENTEGRASYONID
		END
		END
	
   ELSE 
		BEGIN
			UPDATE SERVISENTEGRASYON SET DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1 WHERE ID=@SERVISENTEGRASYONID
			
			INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, SERVISENTEGRASYONID, SONUCKODU, HATA, TARIH) SELECT SERVISGONDERIMFONKSIYONADI, SERVISENTEGRASYON.SUBEID, KAYITID, ID, @SONUCKODU, @SONUCMESAJI, GETDATE() FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID AND 0=(SELECT COUNT(*) FROM SERVISENTEGRASYONHATALARI WHERE SERVISENTEGRASYONID = @SERVISENTEGRASYONID)
		END', N'', N'1day', 5)
GO
INSERT [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI], [SERVISTIPI], [KAYITTABLOADI], [KAYITALANADI], [GONDERILECEKLERISECSORGU], [ISTEKSQL], [CEVAPSQL], [NOTLAR], [GONDERIMPERYODU], [ONCELIK]) VALUES (N'HASTA_KAYIT_YATIS', 1, N'HYATIS', N'HYATISID', N'SELECT HYATIS.HYATISID AS TABLOID,
       ISNULL(HDOSYA.SUBEID, 1) AS SUBEID
FROM HYATIS WITH(NOLOCK)
     JOIN HESAPISL WITH(NOLOCK) ON HESAPISL.HESAPISLID = HYATIS.HESAPISLID
     JOIN HDOSYA WITH(NOLOCK) ON HDOSYA.HDOSYAID = HESAPISL.HDOSYAID
WHERE(ISNULL(HYATIS.SNOTAKIPNO, ''0'') = ''0'' OR ISNULL(HYATIS.SNOTAKIPNO, '''') = '''')
    AND HDOSYA.HDIPTAL = 0
    AND (HESAPISL.IPTAL = 0) 
    AND (HESAPISL.ONAYLI = 1) 
    AND (ISNULL(HESAPISL.TEKLIF, 0) = 0)
    AND HESAPISL.ITARIH > (CASE WHEN DATEPART(HOUR,GETDATE()) BETWEEN 1 AND 6 AND SUBSTRING(CONVERT(VARCHAR, getdate(), 100), 18, 2)=''AM'' THEN DATEADD(DAY, -1*(SELECT CONVERT(INT,GONDERIMPERYODU) FROM SERVISENTEGRASYONTANIM WHERE GONDERIMFONKSIYONADI=''HEADER''), GETDATE()) ELSE DATEADD(MINUTE, -6, GETDATE()) END)
    AND HYATIS.DURUM = 2
    AND HYATIS.HYATISID NOT IN
    (
	   SELECT KAYITID
	   FROM SERVISENTEGRASYON
	   WHERE SERVISGONDERIMFONKSIYONADI = ''HASTA_KAYIT_YATIS''
    )', N'DECLARE @SUBEID VARCHAR(10) = ''#SUBEID#'' 
DECLARE @HYATISID VARCHAR(20) = ''#TABLOID#'' 
DECLARE @HATA NVARCHAR(2000) = ''''


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

SELECT VWYATIS.*,SUBELER.SUBEADI INTO #TMPVWYATIS
FROM VWYATIS WITH(NOLOCK)
LEFT OUTER JOIN SUBELER WITH(NOLOCK) ON SUBELER.SUBEID = VWYATIS.SUBEID
WHERE HYATISID = @HYATISID
      AND SUBELER.SUBEID = CONVERT(INT,@SUBEID)


IF (SELECT COUNT(*) FROM #TMPVWYATIS) = 0 
BEGIN
	SET @HATA = @HATA + ''Yatış kaydı bulunamadı! ''
END
IF (SELECT COUNT(*) FROM SUBELER WHERE SUBEID = @SUBEID) = 0 
BEGIN
	SET @HATA = @HATA + ''İşlemin şube kaydı bulunamadı! ''
END
IF NOT EXISTS(SELECT HYATISID FROM #TMPVWYATIS WHERE (HCINSIYETI=''E'' OR HCINSIYETI=''K''))
BEGIN
    SET @HATA = @HATA + ''Hastanın cinsiyeti girilmemiş! ''
END
IF EXISTS(SELECT HYATISID FROM #TMPVWYATIS WHERE ISNULL(ULKEMERNISKODU,0)<>0 AND RTRIM(ISNULL(ULKEADI,''''))='''')
BEGIN
    SET @HATA = @HATA  + ''Hastanın ülke kodu SKRS kodları içerisinde bulunamadı! ''
END 
IF NOT EXISTS(SELECT HYATISID FROM #TMPVWYATIS WHERE RTRIM(ISNULL(UYGBOLUMID,''''))<>'''')                  
BEGIN
    SET @HATA = @HATA + ''Uygulama bölümü için klinik kodu tanımlanmamış! ''
END
IF NOT EXISTS(SELECT HYATISID FROM #TMPVWYATIS WHERE ISNULL(LDTARIHI,0)<>0)
BEGIN
    SET @HATA =@HATA+  ''Hastanın doğum tarihi girilmemiş! ''
END
IF (SELECT ISNULL(LTCKIMLIKNO,'''') FROM #TMPVWYATIS) = ''''
	AND 
		(
			(SELECT ISNULL(ULKEMERNISKODU,0) FROM #TMPVWYATIS) = 0
			OR 
			(SELECT ULKEMERNISKODU FROM #TMPVWYATIS) = 9980
		)
	AND (SELECT DATEDIFF(DAY,LDTARIHI, ITARIH) FROM #TMPVWYATIS) <= 28
BEGIN
    IF (SELECT ISNULL(ANNETCKIMLIKNO,'''') FROM #TMPVWYATIS) = ''''
    BEGIN
        SET @HATA = @HATA + ''Yeni doğan hastanın anne TC kimlik numarası girilmemiş! ''
    END
	IF (SELECT ISNULL(DOGUMSIRANO,0) FROM #TMPVWYATIS) = 0
	BEGIN
		SET @HATA =@HATA +  ''Yeni doğan hastanın doğum sıra numarası girilmemiş! ''
	END
END
IF NOT EXISTS(SELECT HYATISID FROM #TMPVWYATIS WHERE RTRIM(ISNULL(YATISACILIYETID,'''')) IN (''1'',''2'',''3'',''99''))                  
BEGIN
    SET @HATA = @HATA + ''Hastanın yatış aciliyeti geçerli değil! ''
END
IF @HATA <> ''''
BEGIN
    IF NOT EXISTS(SELECT ID FROM SERVISENTEGRASYONHATALARI WHERE SERVISGONDERIMFONKSIYONADI=''HASTA_KAYIT_YATIS'' AND KAYITID=@HYATISID AND SUBEID=@SUBEID AND HATA=@HATA AND TARIH>DATEADD(DAY,-2,GETDATE()))
    INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI,SUBEID,KAYITID,HATA,TARIH) VALUES (''HASTA_KAYIT_YATIS'', @SUBEID, @HYATISID, @HATA , GETDATE())
END
ELSE
BEGIN
          /*START*/--SILMEYIN ONEMLI
SELECT NEWID() AS ''messageGuid/@value'',
       ''1'' AS ''messageType/@version'',
       ''0a9ba485-e7e0-4abb-9c86-0a14fd364bb8'' AS ''messageType/@codeSystemGuid'',
       ''101'' AS ''messageType/@code'',
       ''Hasta Kayıt'' 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'',
                  ISNULL(
                  (
                      SELECT VALUESTR
                      FROM CONFIG (NOLOCK)
                      WHERE SECTIONSTR = ''Saglik-Net''
                            AND PROGNAME = ''MEDISOFT''
                            AND KEYNAME = CONVERT(VARCHAR, @SUBEID) + '' numaralı şubenin kurum numarası''
                  ),
                  ''''
                        ) AS ''healthcareProvider/@code'',
                  SUBEADI AS ''healthcareProvider/@value''
           FOR XML PATH(''author''), TYPE
       ),
       ''C740D0288ED4C45FE0407C0A04162BDD'' AS ''firmaKodu/@value'',
       (
           SELECT
               (
                   SELECT
                       (SELECT	CASE WHEN (ISNULL(ULKEMERNISKODU,0) = 0 OR ULKEMERNISKODU = 9980) AND LTCKIMLIKNO <> '''' AND LEFT(ISNULL(LTCKIMLIKNO,''''),1)<>''9''
								THEN
									LTCKIMLIKNO
                                ELSE
                                    ''''
                                END
                       ) AS ''HASTA_KIMLIK_NUMARASI/@value'',
                       ISNULL(HADI, '''') AS ''AD/@value'',
                       ISNULL(HSOYADI, '''') AS ''SOYAD/@value'',
					    ISNULL(LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),LDTARIHI,120),'' '',''''),''-'',''''),'':'',''''),8) + ''0000'', '''')  AS ''DOGUM_TARIHI/@value'',
                       ''1'' AS ''CINSIYET/@version'',
                       ''784d0f4f-0603-4425-937f-1a3941fc3a1f'' AS ''CINSIYET/@codeSystemGuid'',
					   ISNULL((SELECT CASE HCINSIYETI WHEN ''E'' THEN ''1'' WHEN ''K'' THEN ''2'' END),'''') AS ''CINSIYET/@code'',
                       ISNULL((SELECT CASE HCINSIYETI WHEN ''E'' THEN ''ERKEK'' WHEN ''K'' THEN ''KADIN'' END),'''') AS ''CINSIYET/@value'',                      
                       ''1'' AS ''UYRUK/@version'',
                       ''d650777a-3d4d-a259-e040-7c0a01167a83'' AS ''UYRUK/@codeSystemGuid'',
                       (
                           SELECT CASE
                                      WHEN ISNULL(ULKEMERNISKODU,0) = 0 THEN
                                          9980
                                      ELSE
                                          ISNULL(CONVERT(VARCHAR, ULKEMERNISKODU), '''')
                                  END
                       ) AS ''UYRUK/@code'',
                       (
                           SELECT CASE
                                      WHEN ISNULL(ULKEMERNISKODU,0) = 0 THEN
                                          ''TÜRKİYE CUMHURİYETİ''
                                      ELSE
                                          ISNULL(ULKEADI, '''')
                                  END
                       ) AS ''UYRUK/@value'',
                       (
                           SELECT CASE
                                      WHEN (
                                               ISNULL(ULKEMERNISKODU,0)= 0
                                               OR ULKEMERNISKODU = 9980
                                           )
                                           AND (DATEDIFF(DAY, LDTARIHI, ITARIH) <= 28) THEN
                                          ISNULL(ANNETCKIMLIKNO, '''')
                                      ELSE
                                          ''''
                                  END
                       ) AS ''ANNE_KIMLIK_NUMARASI/@value'',
                       (
                           SELECT CASE
                                      WHEN (
                                              ISNULL(ULKEMERNISKODU,0) = 0
                                               OR ULKEMERNISKODU = 9980
                                           )
                                           AND (DATEDIFF(DAY, LDTARIHI, ITARIH) <= 28) THEN
                                      (
                                          SELECT CASE
                                                     WHEN DOGUMSIRANO > 0 THEN
                                                         ISNULL(CONVERT(VARCHAR, DOGUMSIRANO), '''')
                                                     ELSE
                                                         ''''
                                                 END
                                      )
                                      ELSE
                                          ''''
                                  END
                       ) AS ''DOGUM_SIRASI/@value'',
                       (
                           SELECT CASE
							   WHEN ISNULL(LTCKIMLIKNO, '''') <> '''' AND LEFT(ISNULL(LTCKIMLIKNO, ''''),1)=''9''
						        THEN
								    ISNULL(LTCKIMLIKNO, 0) 
                                      WHEN
                                      (
                                          ISNULL(ULKEMERNISKODU,0) <> 0
                                          AND ULKEMERNISKODU <> 9980
                                          AND LTCKIMLIKNO <> ''''
                                      ) THEN
                                          ISNULL(LTCKIMLIKNO, '''')
                                      ELSE
                                          ''''
                                  END
                       ) AS ''YABANCI_HASTA_KIMLIK_NUMARASI/@value'',
                       (
                           SELECT CASE
                                      WHEN
                                      (
                                          ISNULL(ULKEMERNISKODU,0) <> 0
                                          AND ULKEMERNISKODU <> 9980
                                          AND LTCKIMLIKNO = ''''
                                      ) THEN
                                          ISNULL(HPASAPORT, '''')
                                      ELSE
                                          ''''
                                  END
                       ) AS ''PASAPORT_NO/@value'',
                       (
                           SELECT CASE
                                      WHEN
                                      (
                                          ISNULL(ULKEMERNISKODU,0) <> 0
                                          AND ULKEMERNISKODU <> 9980
                                          AND LTCKIMLIKNO <> ''''
                                          AND HPASAPORT = ''''
                                      ) THEN
                                          @SUBEID + ''_'' + ISNULL(CONVERT(VARCHAR, HKIMLIKID), '''')
                                      ELSE
                                          ''''
                                  END
                       ) AS ''KIMLIKSIZ_HASTA_BILGISI/@value'',
                       ISNULL(LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),LDTARIHI,120),'' '',''''),''-'',''''),'':'',''''),8) + ''0000'','''')  AS ''BEYAN_DOGUM_TARIHI/@value'',
                       ''1'' AS ''HASTA_TIPI/@version'',
                       ''4f4fd85e-6f52-4c38-a302-6d5e3d6dc1c4'' AS ''HASTA_TIPI/@codeSystemGuid'',
						CONVERT(VARCHAR,ISNULL(                                 
							(
								SELECT CASE
								     WHEN LTCKIMLIKNO <> ''''
										AND SUBSTRING(LTCKIMLIKNO, 1, 1) = ''9'' 
									THEN 2
									WHEN
										(
											(
												ISNULL(ULKEMERNISKODU,0) = 0
												OR ULKEMERNISKODU = 9980
											)
										AND LTCKIMLIKNO <> ''''
										) 
									THEN 1
									WHEN (DATEDIFF(DAY, LDTARIHI, ITARIH) + 1) <= 28 
									THEN
										(
											SELECT CASE
												WHEN ULKEMERNISKODU <> 9980
													AND LTCKIMLIKNO = ''''
													AND ANNETCKIMLIKNO <> ''''
													AND SUBSTRING(ANNETCKIMLIKNO, 1, 2) <> ''99'' 
												THEN 6
												ELSE 4
												END
											)
									
									WHEN HPASAPORT <> ''''
										AND LTCKIMLIKNO = '''' 
									THEN 2
									ELSE 3
									END),''''
							)) AS ''HASTA_TIPI/@code'',
						CONVERT(VARCHAR,
						ISNULL(			
									(
										SELECT CASE
										     WHEN LTCKIMLIKNO <> ''''AND SUBSTRING(LTCKIMLIKNO, 1, 1) = ''9'' 
											THEN
												''YABANCI_KAYIT''
											WHEN
												(
													(
														ISNULL(ULKEMERNISKODU,0) = 0
														OR ULKEMERNISKODU = 9980
													)
												AND LTCKIMLIKNO <> ''''
												) 
											THEN ''VATANDAŞ_KAYIT''
											WHEN (DATEDIFF(DAY, LDTARIHI, ITARIH) + 1) <= 28 
											THEN
												(
													SELECT CASE
													WHEN ULKEMERNISKODU <> 9980
														AND LTCKIMLIKNO = ''''
														AND ANNETCKIMLIKNO <> ''''
														AND SUBSTRING(ANNETCKIMLIKNO, 1, 2) <> ''99'' 
													THEN
														''KİMLİKSİZ''
													ELSE
														''YENIDOĞAN_KAYIT''
													END
												)											
											WHEN HPASAPORT <> '''' AND LTCKIMLIKNO = '''' 
											THEN
												''YABANCI_KAYIT''
											ELSE
													''VATANSIZ_KAYIT(MÜLTECI)''
											END						
									),'''')
						) AS ''HASTA_TIPI/@value'',
						(
                           SELECT ''1'' AS ''ADRES_KODU_SEVIYESI/@version'',
                                  ''aa0e83ba-e9db-4817-80da-577fd6a17373'' AS ''ADRES_KODU_SEVIYESI/@codeSystemGuid'',
                                  ''5'' AS ''ADRES_KODU_SEVIYESI/@code'',
                                  ''MAHALLE'' AS ''ADRES_KODU_SEVIYESI/@value'',
                                  ISNULL(CONVERT(VARCHAR, EVMAHSNADRESKODU), '''') AS ''ADRES_KODU/@value'',
                                  ISNULL(EVMAHSNADRESADI, '''') AS ''ACIK_ADRES/@value'',
                                  ISNULL(EVILADI, '''') AS ''ACIK_ADRES_IL/@value'',
                                  ISNULL(EVILCEADI, '''') AS ''ACIK_ADRES_ILCE/@value''
                           FOR XML PATH(''ADRES_BILGISI''), TYPE
						)
                   FOR XML PATH(''HASTA_KIMLIK_BILGILERI''), TYPE
               ),
               (
                   SELECT ISNULL(
                          (
                              SELECT CASE
                                         WHEN ACKKMTAKIPNO <> '''' THEN
                                             ISNULL(ACKKMTAKIPNO, '''')
                                     END
                          ),
                          ''''
                                ) AS ''AMBULANS_TAKIP_NUMARASI/@value'',
                          ''1'' AS ''HIZMET_SUNUCU/@version'',
                          ''c3eade04-4f91-5dab-e043-14031b0ac9f9'' AS ''HIZMET_SUNUCU/@codeSystemGuid'',
                          ISNULL(
                          (
                              SELECT VALUESTR
                              FROM CONFIG (NOLOCK)
                              WHERE SECTIONSTR = ''Saglik-Net''
                                    AND PROGNAME = ''MEDISOFT''
                                    AND KEYNAME = CONVERT(VARCHAR, @SUBEID) + '' numaralı şubenin kurum numarası''
                          ),
                          ''''
                                ) AS ''HIZMET_SUNUCU/@code'',
                          ISNULL(SUBEADI, '''') AS ''HIZMET_SUNUCU/@value'',
                          ''1'' AS ''KAYIT_YERI/@version'',
                          ''c3eade04-4f91-5dab-e043-14031b0ac9f9'' AS ''KAYIT_YERI/@codeSystemGuid'',
                          ISNULL(
                          (
                              SELECT VALUESTR
                              FROM CONFIG (NOLOCK)
                              WHERE SECTIONSTR = ''Saglik-Net''
                                    AND PROGNAME = ''MEDISOFT''
                                    AND KEYNAME = CONVERT(VARCHAR, @SUBEID) + '' numaralı şubenin kurum numarası''
                          ),
                          ''''
                                ) AS ''KAYIT_YERI/@code'',
                          ISNULL(SUBEADI, '''') AS ''KAYIT_YERI/@value'',
                          /*''K-''
                          +
                          (
                              SELECT VALUESTR
                              FROM CONFIG (NOLOCK)
                              WHERE KEYNAME = CAST(@SUBEID AS VARCHAR) + '' numaralı şubenin Sağlık.NET 2 kullanıcı adı''
                          ) + ''-'' + ISNULL(CAST(UYGKLINIKKODU AS VARCHAR(6)), '''') + ''-'' + ''00''
                          + CAST(UYGBIRIMID AS VARCHAR) + ''-'' + ISNULL(YATISTIPI, '''') + ''-''
                          + ISNULL(CONVERT(VARCHAR(20), REPLACE(CONVERT(CHAR(8), ITARIH, 3), ''/'', '''')), '''')
                          + ''-''
                          + ISNULL(
                            (
                                SELECT CASE
                                           WHEN LEN(SERVISPROTOKOLNO) = 3 THEN
                                               ''00000'' + CAST(SERVISPROTOKOLNO AS VARCHAR)
                                           WHEN LEN(SERVISPROTOKOLNO) = 4 THEN
                                               ''0000'' + CAST(SERVISPROTOKOLNO AS VARCHAR)
                                       END
                            ),
                            ''''
                                  )*/
						  ISNULL(SERVISPROTOKOLNO,'''') AS ''PROTOKOL_NUMARASI/@value'',
                          ISNULL(CONVERT(VARCHAR, HESAPISLID), '''') AS ''HASTANE_REFERANS_NUMARASI/@value'',
                          ISNULL(MDLTAKIPNO, '''') AS ''SGK_TAKIP_NUMARASI/@value'',
                          ISNULL(LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),ITARIH,120),'' '',''''),''-'',''''),'':'',''''),12), '''') AS ''KABUL_ZAMANI/@value'',
                          ''1'' AS ''KLINIK_KODU/@version'',
                          ''c04bee57-c5d4-443d-e040-7b0a6f146a3d'' AS ''KLINIK_KODU/@codeSystemGuid'',
                          ISNULL(UYGKLINIKKODU, '''') AS ''KLINIK_KODU/@code'',
                          ISNULL(UYGKLINIKADI, '''') AS ''KLINIK_KODU/@value'',
                          ''1'' AS ''SOSYAL_GUVENCE_DURUMU/@version'',
                          ''530da738-2be0-4adc-a7c1-aca18c66a3f8'' AS ''SOSYAL_GUVENCE_DURUMU/@codeSystemGuid'',
                          ISNULL(CONVERT(VARCHAR, SGDURUMID), '''') AS ''SOSYAL_GUVENCE_DURUMU/@code'',
                          ISNULL(SGDURUMADI, '''') AS ''SOSYAL_GUVENCE_DURUMU/@value'',
                          ISNULL(UYGDRTCKIMLIKNO, '''') AS ''HEKIM_KIMLIK_NUMARASI/@value'',
                          ''1'' AS ''VAKA_TURU/@version'',
                          ''46380e82-d8b1-407d-9554-255d95a9f959'' AS ''VAKA_TURU/@codeSystemGuid'',
                          ''1'' AS ''VAKA_TURU/@code'',
                          ''Normal'' AS ''VAKA_TURU/@value'',
                          '''' AS ''MHRS_RANDEVU_NUMARASI/@value'',
                          ''1'' AS ''TRIAJ/@version'',
                          ''1ddcbef5-4006-41fe-87c0-6190c9801708'' AS ''TRIAJ/@codeSystemGuid'',
                          ISNULL(CONVERT(   VARCHAR,
											 (
												 SELECT CASE WHEN TRIYAJID = '''' THEN ''0'' ELSE TRIYAJID END
											 )
                                        ),
                                 ''0''
                                ) AS ''TRIAJ/@code'',
                          ISNULL(
                          (
                              SELECT CASE TRIYAJID
                                         WHEN '''' THEN
                                             ''BELİRTİLMEMİŞ''
                                         WHEN 1 THEN
                                             ''YESIL''
                                         WHEN 2 THEN
                                             ''SARI''
                                         WHEN 3 THEN
                                             ''KIRMIZI''
                                         WHEN 4 THEN
                                             ''SIYAH''
                                     END
                          ),
                          ''BELİRTİLMEMİŞ''
                                ) AS ''TRIAJ/@value'',
                          ISNULL(SNOTAKIPNO, '''') AS ''SYSTakipNo/@value'',
                          (
                              SELECT
                                  (SELECT CASE HDYATIYOR
                                                 WHEN 1 THEN
                                                     ISNULL(LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),ITARIH,120),'' '',''''),''-'',''''),'':'',''''),12),'''')
                                                 ELSE
                                                     ''''
                                             END
                                  ) AS ''YATIS_KABUL_ZAMANI/@value'',
                                  (SELECT CASE HDYATIYOR
                                                 WHEN 1 THEN
                                                     ISNULL(HYYATAKNO, '''')
                                                 ELSE
                                                     ''''
                                             END
                                  ) AS ''YATAK_NO/@value'',
                                  (SELECT CASE WHEN HYYATISTIPI IN (1,3) THEN 1 ELSE 0 END) AS ''YATIS_GUNUBIRLIK_MI/@value'',
                                  ''1'' AS ''YATISIN_ACILIYETI/@version'',
                                  ''dc6ff680-555f-44b2-855e-a47c51207e4f'' AS ''YATISIN_ACILIYETI/@codeSystemGuid'',
                                  (
                                      SELECT CASE HDYATIYOR
                                                 WHEN 1 THEN
                                                     ISNULL(CONVERT(VARCHAR, YATISACILIYETID), ''99'')
                                                 ELSE
                                                     ''99''
                                             END
                                  ) AS ''YATISIN_ACILIYETI/@code'',
                                  (
                                      SELECT CASE HDYATIYOR
                                                 WHEN 1 THEN
                                                 (
                                                     SELECT CASE YATISACILIYETID
                                                                WHEN 1 THEN
                                                                    ''Aciliyet Durumu Atanmış - Acil''
                                                                WHEN 2 THEN
                                                                    ''Aciliyet Durumu Atanmış - Elektif''
                                                                WHEN 3 THEN
                                                                    ''Aciliyet Durumu Atanmamış''
                                                                WHEN 9 THEN
                                                                    ''BELİRTİLMEDİ''
                                                                ELSE
                                                                    ''BELİRTİLMEDİ''
                                                            END
                                                 )
                                             END
                                  ) AS ''YATISIN_ACILIYETI/@value''
                              FOR XML PATH(''YATIS_BILGISI''), TYPE
                          )
                   FOR XML PATH(''HASTA_BASVURU_BILGILERI''), TYPE
               )
           FOR XML PATH(''recordData''), TYPE
       )
FROM #TMPVWYATIS (NOLOCK)
FOR XML PATH(''''), ROOT(''SYSMessage'')
/*END*/ --SILMEYIN ONEMLI 
END
IF OBJECT_ID(''tempdb..#TMPVWYATIS'') IS NOT NULL 
DROP TABLE #TMPVWYATIS
                  ', N'DECLARE @XML1 XML
DECLARE @XML2 VARCHAR(MAX)
DECLARE @XML3 XML
DECLARE @SNOTakipNo VARCHAR(20)
DECLARE @SONUCKODU VARCHAR(20)
DECLARE @SONUCMESAJI VARCHAR(100)
DECLARE @SERVISENTEGRASYONID INT =  ''#SERVISENTEGRASYONID#''
SET @SNOTakipNo=''''
SET @XML1 = ''''
SET @XML2 = ''''
SET @XML3 = ''''
SET @XML1 = (SELECT CEVAPXML FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID)
SET @XML2 = (SELECT @XML1.value (''declare namespace s =  "http://schemas.xmlsoap.org/soap/envelope/"; (/s:Envelope/s:Body/*)[1]'',''varchar(4000)'') AS id)
--GET @SNOTakipNo
SET @XML3 = (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
SET @SNOTakipNo = (SELECT T.C.value(''@value'', ''varchar(100)'') as SNOTakipNo
FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/SYSTakipNo)'') as T(C))
--GET SONUCKODU FOR HATA IF ANY 
SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
SET @SONUCKODU = (SELECT T.C.value(''@value'', ''varchar(100)'') AS SONUCKODU
FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucKodu)'') AS T(C))
--GET @SONUCMESAJI
SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
SET @SONUCMESAJI = (SELECT T.C.value(''@value'', ''varchar(1000)'') AS SONUCMESAJI
FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucMesaji)'') AS T(C))
IF @SONUCKODU = ''E2033'' 
BEGIN
	UPDATE SERVISENTEGRASYON SET DURUM=1,DENEMESAYISI=0,CEVAPZAMANI=GETDATE() WHERE ID=@SERVISENTEGRASYONID
	--INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, SERVISENTEGRASYONID, SONUCKODU, HATA, TARIH) SELECT SERVISGONDERIMFONKSIYONADI, SERVISENTEGRASYON.SUBEID, KAYITID, ID, @SONUCKODU, ''Hastanın USS hasta kaydı daha önce yapıldığı için önceki takip numarası sisteme kaydedildi.'', GETDATE() FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID AND 0=(SELECT COUNT(*) FROM SERVISENTEGRASYONHATALARI WHERE SERVISENTEGRASYONID = @SERVISENTEGRASYONID)	
END
ELSE 
BEGIN
	IF @SONUCKODU = ''S0000''
	BEGIN
		UPDATE SERVISENTEGRASYON SET DURUM=1,DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1,CEVAPZAMANI=GETDATE() WHERE ID=@SERVISENTEGRASYONID
		
		IF (	(@SNOTakipNo <> (SELECT HY.SNOTAKIPNO  FROM HYATIS HY  JOIN SERVISENTEGRASYON SE ON SE.KAYITID = HY.HYATISID  WHERE SE.ID = @SERVISENTEGRASYONID)) 
			OR 	((SELECT HY.SNOTAKIPNO  FROM HYATIS HY JOIN SERVISENTEGRASYON SE ON SE.KAYITID = HY.HYATISID  WHERE SE.ID = @SERVISENTEGRASYONID) IS NULL))
		BEGIN 
			UPDATE HY SET HY.SNOTAKIPNO = @SNOTakipNo FROM HYATIS HY JOIN SERVISENTEGRASYON SE ON SE.KAYITID = HY.HYATISID  WHERE SE.ID = @SERVISENTEGRASYONID
		END
	END	
	ELSE 
	BEGIN
		UPDATE SERVISENTEGRASYON SET DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1 WHERE ID=@SERVISENTEGRASYONID
		
		INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, SERVISENTEGRASYONID, SONUCKODU, HATA, TARIH) SELECT SERVISGONDERIMFONKSIYONADI, SERVISENTEGRASYON.SUBEID, KAYITID, ID, @SONUCKODU, @SONUCMESAJI, GETDATE() FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID AND 0=(SELECT COUNT(*) FROM SERVISENTEGRASYONHATALARI WHERE SERVISENTEGRASYONID = @SERVISENTEGRASYONID)
	END
END', N'', N'1day', 6)
GO
INSERT [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI], [SERVISTIPI], [KAYITTABLOADI], [KAYITALANADI], [GONDERILECEKLERISECSORGU], [ISTEKSQL], [CEVAPSQL], [NOTLAR], [GONDERIMPERYODU], [ONCELIK]) VALUES (N'HEADER', 1, NULL, NULL, N'DECLARE @SERVISADI NVARCHAR(200) = ''#SERVISADI#''
DECLARE @ISTEKSQLAL NVARCHAR(MAX)
DECLARE @HEADERSQLAL NVARCHAR(MAX)
DECLARE @ISTEKSQL NVARCHAR(MAX)
DECLARE @HEADERSQL NVARCHAR(MAX)
DECLARE @CONTENT NVARCHAR(MAX)
DECLARE @TBLHEADER TABLE(HEADER NVARCHAR(MAX))
DECLARE @ISTEKXMLTABLE TABLE (ISTEKXML XML)
DECLARE @CEVAPXMLTABLE TABLE (CEVAP XML)
DECLARE @ISTEKXML XML
DECLARE @ISTEKXMLEMPTY XML
DECLARE @SUBEID INT=1
DECLARE @TABLOID INT=0

SELECT @HEADERSQLAL=ISTEKSQL FROM SERVISENTEGRASYONTANIM WITH(NOLOCK) WHERE GONDERIMFONKSIYONADI=''HEADER''
SELECT @ISTEKSQLAL = ISTEKSQL FROM SERVISENTEGRASYONTANIM WITH(NOLOCK) WHERE GONDERIMFONKSIYONADI=@SERVISADI

DECLARE CUR_TABLO CURSOR FOR
#GONDERILECEKLERISECSORGU#
OPEN CUR_TABLO
FETCH NEXT FROM CUR_TABLO INTO @TABLOID,@SUBEID
WHILE @@FETCH_STATUS = 0
BEGIN

    SET @ISTEKXML = ''''

    --ŞUBE NUMARASINI BELİRLE
    SET @ISTEKSQL = REPLACE(@ISTEKSQLAL,''#SUBEID#'',CONVERT(VARCHAR,@SUBEID))
    SET @HEADERSQL = REPLACE(@HEADERSQLAL,''#SUBEID#'',CONVERT(VARCHAR,@SUBEID))
    --HASIID NUMARASINI BELİRLE
    SET @ISTEKSQL = REPLACE(@ISTEKSQL,''#TABLOID#'',CONVERT(VARCHAR,@TABLOID))
    SET @HEADERSQL = REPLACE(@HEADERSQL,''#TABLOID#'',CONVERT(VARCHAR,@TABLOID))
    --DEĞİŞKEN ATA
    SET @ISTEKSQL = REPLACE(@ISTEKSQL,''/*START*/'',''SELECT @ISTEKXML = ('')
    SET @ISTEKSQL = REPLACE(@ISTEKSQL,''/*END*/'','')'')
    INSERT INTO @TBLHEADER (HEADER) EXECUTE SP_EXECUTESQL @HEADERSQL
    SELECT @CONTENT = HEADER FROM @TBLHEADER

    IF @CONTENT<>''HATA''
    BEGIN

	   EXECUTE SP_EXECUTESQL @ISTEKSQL, N''@ISTEKXML XML OUTPUT'', @ISTEKXML OUTPUT

	   IF @ISTEKXML.exist(''/SYSMessage/messageGuid'')>0 OR (left(@SERVISADI,30)=''NOBETCI_PERSONEL_BILGISI_KAYIT'' AND @ISTEKXML.exist(''/SYSMessage/recordData/NOBETCI_PERSONEL_BILGISI/NOBETCI_PERSONEL_BILGILERI'')>0)
	   BEGIN
		  IF 0 = (
				    SELECT COUNT(*)--GONDERILMISSE VEYA SON 8 GUN ICUNDE KAYDI VARSA TEKRAR GÖNDERME 
				    FROM SERVISENTEGRASYON 
				    WHERE	  SERVISGONDERIMFONKSIYONADI=@SERVISADI
				    AND	  SUBEID = @SUBEID
				    AND	  KAYITID = CONVERT(VARCHAR,@TABLOID) 
				    AND	  (
								DURUM=1 
							 OR (
								    DURUM = 0 
								    AND 
								    ISTEKZAMANI>DATEADD(DAY,-8,GETDATE())
								)
						  )
				    AND	  @SERVISADI<>''GUN_SONU_VERI_SETI'' 
				    AND	  @SERVISADI<>''AY_SONU_VERI_SETI''
				)
		  BEGIN

				SET @CONTENT=REPLACE(@CONTENT,''#MESSAGE#'',CONVERT(VARCHAR(MAX),@ISTEKXML))

				INSERT INTO SERVISENTEGRASYON (SERVISGONDERIMFONKSIYONADI, ISTEKZAMANI, SUBEID, KAYITID, ISTEKXML, CEVAPXML, DENEMESAYISI, DURUM)
				VALUES (@SERVISADI, GETDATE(),@SUBEID,CONVERT(VARCHAR(10),@TABLOID), @CONTENT,'''',0,0)

		  END
	   END
    END

FETCH NEXT FROM CUR_TABLO INTO @TABLOID,@SUBEID
END
CLOSE CUR_TABLO
DEALLOCATE CUR_TABLO', N'DECLARE @HSUBEID VARCHAR(10)=''#SUBEID#'' --''1''
DECLARE @HHATA NVARCHAR(2000) =''''
DECLARE @HKULLANICI NVARCHAR(50) =''''
DECLARE @HSIFRE NVARCHAR(50) =''''
DECLARE @HKURUMNO NVARCHAR(50) =''''
SET @HKULLANICI = ISNULL((SELECT VALUESTR FROM CONFIG WITH(NOLOCK) WHERE SECTIONSTR=''Saglik-Net'' AND PROGNAME=''MEDISOFT'' AND KEYNAME= @HSUBEID+'' numaralı şubenin Sağlık.NET 2 kullanıcı adı''),'''')
IF @HHATA='''' AND @HKULLANICI=''''
    BEGIN
        SET @HHATA=CONVERT(VARCHAR,@HSUBEID)+'' Nolu şube için Sağlık Net sürüm 2 kullanıcı tanımı yapılmamış! USS sistemine kayıt yapılamaz.''
    END
SET @HSIFRE = ISNULL((SELECT VALUESTR FROM CONFIG WITH(NOLOCK) WHERE SECTIONSTR=''Saglik-Net'' AND PROGNAME=''MEDISOFT'' AND KEYNAME= @HSUBEID+'' numaralı şubenin Sağlık.NET 2 kullanıcı şifresi''),ISNULL((SELECT VALUESTR FROM CONFIG WHERE SECTIONSTR=''Saglik-Net'' AND PROGNAME=''MEDISOFT'' AND KEYNAME= @HSUBEID+'' numaralı şubenin kullanıcı şifresi''),''''))
IF @HHATA='''' AND @HSIFRE=''''
    BEGIN
        SET @HHATA=CONVERT(VARCHAR,@HSUBEID)+'' Nolu şube için Sağlık Net sürüm 2 kullanıcı şifre tanımı yapılmamış! USS sistemine kayıt yapılamaz.''
    END
SET @HKURUMNO = ISNULL((SELECT VALUESTR FROM CONFIG WITH(NOLOCK) WHERE SECTIONSTR=''Saglik-Net'' AND PROGNAME=''MEDISOFT'' AND KEYNAME= @HSUBEID+'' numaralı şubenin kurum numarası''),'''')
IF @HHATA='''' AND @HKURUMNO='''' 
    BEGIN
        SET @HHATA=CONVERT(VARCHAR,@HSUBEID)+'' Nolu şube için Sağlık-Net kurum numarası konfigürasyon tablosunda tanımlanmamış! USS sistemine kayıt yapılamaz.''
    END
IF @HHATA<>''''
    BEGIN
	   --INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI,HATA,TARIH) VALUES (''HEADER'',@HHATA,GETDATE())
	   SELECT ''HATA'' AS HEADER	   
    END
    ELSE
    BEGIN
	   SELECT ''<?xml version="1.0" encoding="utf-8"?>
				<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
				    <SOAP-ENV:Header xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">
					   <wsse:Security>
						  <wsse:UsernameToken wsu:Id="SecurityToken-DCE17E0A-6F53-4593-943E-0DA476F28C78">
						  <wsse:Username>''+@HKULLANICI+''</wsse:Username>
						  <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">''+@HSIFRE+''</wsse:Password>
						  </wsse:UsernameToken>
					   </wsse:Security>
				    </SOAP-ENV:Header>
				    <SOAP-ENV:Body>
					   <SYSSendMessage xmlns="https://sys.sagliknet.saglik.gov.tr/SYS/">
						  <input><![CDATA[<?xml version="1.0" encoding="UTF-8"?>#MESSAGE#]]></input>
					   </SYSSendMessage>
				    </SOAP-ENV:Body>
				</SOAP-ENV:Envelope>'' AS HEADER
    END
', N'', N'', N'2', 0)
GO
INSERT [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI], [SERVISTIPI], [KAYITTABLOADI], [KAYITALANADI], [GONDERILECEKLERISECSORGU], [ISTEKSQL], [CEVAPSQL], [NOTLAR], [GONDERIMPERYODU], [ONCELIK]) VALUES (N'HIZMET_ILAC_MALZEME_BILGISI_KAYIT', 1, N'HESAPISL', N'HESAPISLID', N'SELECT HESAPISLID AS TABLOID,
       SUBEID
FROM
(
	--YATARAK
    SELECT HESAPISL.HESAPISLID,
           HDOSYA.SUBEID
    FROM HYATIS WITH(NOLOCK)
         LEFT JOIN HESAPISL WITH(NOLOCK) ON HESAPISL.HESAPISLID = HYATIS.HESAPISLID
         LEFT JOIN HDOSYA WITH(NOLOCK) ON HDOSYA.HDOSYAID = HESAPISL.HDOSYAID
    WHERE HDOSYA.HDYATIYOR = 1
          AND HESAPISL.SNOISLEMKYTDURUMID <> 2
          AND HESAPISL.KYTARIH > DATEADD(DAY, -1*(SELECT CONVERT(INT,GONDERIMPERYODU) FROM SERVISENTEGRASYONTANIM WHERE GONDERIMFONKSIYONADI=''HEADER''), GETDATE())
          AND HDOSYA.GSSCIKISTARIHI IS NOT NULL
		  AND HDOSYA.HDIPTAL = 0
		  AND HESAPISL.IPTAL = 0 
		  AND HESAPISL.ONAYLI = 1 
		  AND ISNULL(HESAPISL.TEKLIF, 0) = 0
		  AND HESAPISL.SNKAYDET = 1
		  AND ISNULL(HYATIS.SNOTAKIPNO,'''')<>''''
    UNION 
	--AYAKTAN
    SELECT HESAPISL.HESAPISLID,
           HDOSYA.SUBEID
    FROM HMUAYENE WITH(NOLOCK)
         JOIN HMUAYENEISL WITH(NOLOCK) ON HMUAYENE.HMUAYENEID = HMUAYENEISL.HMUAYENEID
         JOIN HESAPISL WITH(NOLOCK) ON HESAPISL.HESAPISLID = HMUAYENEISL.HESAPISLID
         JOIN HDOSYA WITH(NOLOCK) ON HDOSYA.HDOSYAID = HESAPISL.HDOSYAID
    WHERE ISNULL(HDOSYA.HDYATIYOR, 0) = 0
          AND HESAPISL.SNOISLEMKYTDURUMID <> 2
          AND HESAPISL.KYTARIH > DATEADD(DAY, -1*(SELECT CONVERT(INT,GONDERIMPERYODU) FROM SERVISENTEGRASYONTANIM WHERE GONDERIMFONKSIYONADI=''HEADER''), GETDATE())
		  AND HMUAYENE.IPTAL = 0
		  AND HDOSYA.HDIPTAL = 0
		  AND HESAPISL.IPTAL = 0
		  AND HESAPISL.ONAYLI = 1
		  AND HESAPISL.SNKAYDET = 1
		  AND ISNULL(HESAPISL.TEKLIF, 0) = 0
		  AND ISNULL(HMUAYENEISL.SNOTAKIPNO,'''')<>''''
) AS TBL', N'DECLARE @SUBEID VARCHAR(10) = ''#SUBEID#'' 
DECLARE @HESAPISLID NVARCHAR(20) = ''#TABLOID#''
DECLARE @HATA NVARCHAR(2000) = ''''
IF (SELECT COUNT(*) FROM SUBELER WHERE SUBEID = @SUBEID) = 0 
BEGIN
    SET @HATA = @HATA + ''İşlemin şube kaydı bulunamadı.''
END
/* 
IF (SELECT GERCEKLESMEZAMANI FROM VWSNOMUAYENEISLEMLERI WHERE HESAPISLID = @HESAPISLID) < (SELECT ITARIH FROM VWSNOMUAYENEISLEMLERI WHERE HESAPISLID = @HESAPISLID)
BEGIN
	SET @HATA = @HATA + '' GERCEKLESME_ZAMANI bilgisi ISLEM_ZAMANI bilgisinden daha önceki bir tarih olamaz. HESAPISLID: '' + @HESAPISLID
END*/
IF @HATA <> ''''
BEGIN
    EXEC SPUSS_OPHESAPISLUPDATE @HESAPISLID
END
IF @HATA <> ''''
BEGIN
    IF NOT EXISTS(SELECT ID FROM SERVISENTEGRASYONHATALARI WHERE SERVISGONDERIMFONKSIYONADI=''HIZMET_ILAC_MALZEME_BILGISI_KAYIT'' AND KAYITID=@HESAPISLID AND SUBEID=@SUBEID AND HATA=@HATA AND TARIH>DATEADD(DAY,-2,GETDATE()))
    INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, HATA, TARIH) VALUES (''HIZMET_ILAC_MALZEME_BILGISI_KAYIT'', @SUBEID, @HESAPISLID, @HATA, GETDATE())
END
ELSE
BEGIN
/*START*/--SILMEYIN ONEMLI
SELECT 
		NEWID() AS ''messageGuid/@value'',
		''1'' AS ''messageType/@version'',
		''0a9ba485-e7e0-4abb-9c86-0a14fd364bb8'' AS ''messageType/@codeSystemGuid'' ,
	    ''102'' AS ''messageType/@code'',
		''Hizmet Ilaç Malzeme Bilgisi Kayıt'' 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'',
				ISNULL((SELECT VALUESTR FROM CONFIG WHERE SECTIONSTR =''Saglik-Net'' AND PROGNAME =''MEDISOFT'' AND KEYNAME =
				CONVERT (VARCHAR, @SUBEID) +'' numaralı şubenin kurum numarası''),'''') AS ''healthcareProvider/@code'',
				SUBELER.SUBEADI as ''healthcareProvider/@value''  
			 FOR XML PATH(''author''), TYPE
		  ),
		  ''C740D0288ED4C45FE0407C0A04162BDD''  AS ''firmaKodu/@value'',
		  (
			 SELECT 
				(
				    SELECT
					   ISNULL((SELECT CASE 
								WHEN ISNULL(VWSNOMUAYENEISL.TABLOTIPI,0) = 0 
								THEN VWSNOMUAYENEISL.MSNOTAKIPNO
								WHEN ISNULL(VWSNOMUAYENEISL.TABLOTIPI,0) = 4
								THEN VWSNOMUAYENEISL.YSNOTAKIPNO
								END), '''') AS ''SYSTakipNo/@value''
				    FOR XML PATH(''HASTA_TAKIP_BILGISI''), TYPE
				),
		  (
			 SELECT 
				(
				    SELECT 
					   ''1'' AS ''KLINIK_KODU/@version'',
					   ''c04bee57-c5d4-443d-e040-7b0a6f146a3d'' AS ''KLINIK_KODU/@codeSystemGuid'' ,
					   VWSNOMUAYENEISLEMLERI.KLINIKKODU AS ''KLINIK_KODU/@code'', 
					   VWSNOMUAYENEISLEMLERI.KLINIKADI AS ''KLINIK_KODU/@value'',
					   LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),VWSNOMUAYENEISLEMLERI.GERCEKLESMEZAMANI,120),'' '',''''),''-'',''''),'':'',''''),12) AS ''GERCEKLESME_ZAMANI/@value'',
					   ''1'' AS ''ISLEM_TURU/@version'',
					   ''d03e562d-252e-451f-9a80-98d48b47c2f2'' AS ''ISLEM_TURU/@codeSystemGuid'',
					    ISNULL((SELECT CASE 
							    WHEN VWSNOMUAYENEISLEMLERI.ITEMTURUID = 3
								    THEN 2
							    WHEN VWSNOMUAYENEISLEMLERI.ITEMTURUID = 5
								    THEN 3
							    ELSE 1
						END),'''') AS ''ISLEM_TURU/@code'',											
					    ISNULL((SELECT CASE 
								WHEN VWSNOMUAYENEISLEMLERI.ITEMTURUID = 3
								THEN ''İLAÇ''
								WHEN VWSNOMUAYENEISLEMLERI.ITEMTURUID = 5
								THEN ''MALZEME''
								ELSE ''DIĞER (SUT, VAKA BAŞI VEYA PAKET IŞLEMLER)''
								END),'''')
								AS ''ISLEM_TURU/@value''  ,
					   ISNULL((SELECT CASE 
								WHEN VWSNOMUAYENEISLEMLERI.ITEMTURUID = 3
								THEN VWSNOMUAYENEISLEMLERI.BARKOD
								WHEN VWSNOMUAYENEISLEMLERI.ITEMTURUID = 5
								THEN VWSNOMUAYENEISLEMLERI.UBBKODU
							     ELSE CASE 
									WHEN LEFT(ISNULL(VWSNOMUAYENEISLEMLERI.ITEMKODU2,''''),1)=''P'' AND LEN(VWSNOMUAYENEISLEMLERI.ITEMKODU2)>1
									THEN RIGHT(VWSNOMUAYENEISLEMLERI.ITEMKODU2,LEN(VWSNOMUAYENEISLEMLERI.ITEMKODU2)-1)
									ELSE ISNULL(VWSNOMUAYENEISLEMLERI.ITEMKODU2,'''')
									END
								END),'''')
							    AS ''ISLEM_KODU/@value'',				
						 ISNULL(VWSNOMUAYENEISLEMLERI.ITEMADI2,'''') AS ''ISLEM_ADI/@value'',
						 CASE WHEN VWSNOMUAYENEISLEMLERI.ITEMTURUID = ''1'' THEN REPLACE(ISNULL(VWSNOMUAYENEISLEMLERI.ITEMKODU2,''''),''P'','''') ELSE '''' END AS ''GIRISIMSEL_ISLEM_KODU/@value'',
						 ISNULL(LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),VWSNOMUAYENEISLEMLERI.ITARIH,120),'' '',''''),''-'',''''),'':'',''''),12),'''') AS ''ISLEM_ZAMANI/@value'',
						 ISNULL(CONVERT(VARCHAR(20), CAST(VWSNOMUAYENEISLEMLERI.ADET AS money), 1),'''') AS ''ADET/@value'',
						 ISNULL(CONVERT(VARCHAR(20), CAST(0 AS MONEY), 1),'''') AS  ''HASTA_TUTARI/@value'',
						 ISNULL(CONVERT(VARCHAR(20), CAST(0 AS MONEY), 1),'''') AS ''KURUM_TUTARI/@value'',
						 ISNULL(LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),VWSNOMUAYENEISLEMLERI.ITARIH,120),'' '',''''),''-'',''''),'':'',''''),12),'''') AS ''RANDEVU_ZAMANI/@value'',
						 ISNULL(VWSNOMUAYENEISLEMLERI.KAYDEDENTCKIMLIKNO,'''') AS ''KULLANICI_KIMLIK_NUMARASI/@value'',
						 '''' AS ''CIHAZ_NUMARASI/@value'',
						 ISNULL(VWSNOMUAYENEISLEMLERI.HESAPISLID,'''') AS ''ISLEM_REFERANS_NUMARASI/@value'',
						  (
							 SELECT 
								ISNULL(VWSNOMUAYENEISLEMLERI.DRTCKIMLIKNO,'''') AS ''HEKIM_KIMLIK_NUMARASI/@value'',
								''0.00'' AS ''ISLEM_PUANI/@value'',
								ISNULL(LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),VWSNOMUAYENEISLEMLERI.GERCEKLESMEZAMANI,120),'' '',''''),''-'',''''),'':'',''''),12),'''' ) AS ''PUAN_HAKEDIS_ZAMANI/@value''							
							 FOR XML PATH(''ISLEM_PUAN_BILGISI''), TYPE
						  )				    
				    FOR XML PATH(''ISLEM_BILGISI''), TYPE
				)
			 FOR XML PATH(''HASTA_ISLEM_BILGILERI''), TYPE
		  )
	   FOR XML PATH(''recordData''), TYPE
    )
	
FROM VWSNOMUAYENEISL WITH(NOLOCK)
LEFT JOIN VWSNOMUAYENEISLEMLERI WITH(NOLOCK) ON VWSNOMUAYENEISLEMLERI.OPHESAPISLID = VWSNOMUAYENEISL.HESAPISLID OR VWSNOMUAYENEISLEMLERI.HESAPISLID = VWSNOMUAYENEISL.HESAPISLID 
LEFT JOIN SUBELER WITH(NOLOCK) ON SUBELER.SUBEID = VWSNOMUAYENEISL.SUBEID
WHERE VWSNOMUAYENEISL.HESAPISLID = @HESAPISLID 
    AND VWSNOMUAYENEISL.SUBEID = @SUBEID
			
FOR XML PATH (''''), ROOT(''SYSMessage'')
/*END*/--SILMEYIN ONEMLI
END', N'DECLARE @SERVISENTEGRASYONID INT
DECLARE @XML1 XML
DECLARE @XML2 VARCHAR(MAX)
DECLARE @XML3 XML
DECLARE @SONUCKODU VARCHAR(20)
DECLARE @SONUCMESAJI VARCHAR(1000)
SET @SERVISENTEGRASYONID = ''#SERVISENTEGRASYONID#''
SET @XML1 = ''''
SET @XML2 = ''''
SET @XML3 = ''''
SET @XML1 = (SELECT CEVAPXML FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID)
SET @XML2 = (SELECT @XML1.value (''declare namespace s =  "http://schemas.xmlsoap.org/soap/envelope/"; (/s:Envelope/s:Body/*)[1]'',''varchar(4000)'') AS id)
	--GET SONUCKODU FOR HATA IF ANY 
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCKODU = (SELECT T.C.value(''@value'', ''varchar(100)'') AS SONUCKODU
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucKodu)'') AS T(C))
	--GET SONUCMESAJI
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCMESAJI = (SELECT T.C.value(''@value'', ''varchar(1000)'') AS SONUCMESAJI
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucMesaji)'') AS T(C))
	IF	@SONUCKODU = ''S0000''  
		BEGIN
			UPDATE SERVISENTEGRASYON SET DURUM=1,DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1,CEVAPZAMANI=GETDATE() WHERE ID=@SERVISENTEGRASYONID
			UPDATE VWSNOMUAYENEISL SET VWSNOMUAYENEISL.SNOISLEMKYTDURUMID = 2 			
			FROM VWSNOMUAYENEISL
			 JOIN VWSNOMUAYENEISLEMLERI 
				ON VWSNOMUAYENEISLEMLERI.HESAPISLID = VWSNOMUAYENEISL.HESAPISLID
			 JOIN SERVISENTEGRASYON SE ON SE.KAYITID = VWSNOMUAYENEISL.HESAPISLID
			 WHERE SE.ID = @SERVISENTEGRASYONID
			UPDATE VWSNOMUAYENEISLEMLERI SET VWSNOMUAYENEISLEMLERI.SNOGONDERILDI = 1
			FROM VWSNOMUAYENEISL
			 JOIN VWSNOMUAYENEISLEMLERI 
				ON VWSNOMUAYENEISLEMLERI.HESAPISLID = VWSNOMUAYENEISL.HESAPISLID
			 JOIN SERVISENTEGRASYON SE ON SE.KAYITID = VWSNOMUAYENEISL.HESAPISLID
			 WHERE SE.ID = @SERVISENTEGRASYONID
		END
	
	ELSE 
		BEGIN
			UPDATE SERVISENTEGRASYON SET DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1 WHERE ID=@SERVISENTEGRASYONID

			INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, SERVISENTEGRASYONID, SONUCKODU, HATA, TARIH) SELECT SERVISGONDERIMFONKSIYONADI, SERVISENTEGRASYON.SUBEID, KAYITID, ID, @SONUCKODU, @SONUCMESAJI, GETDATE() FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID AND 0=(SELECT COUNT(*) FROM SERVISENTEGRASYONHATALARI WHERE SERVISENTEGRASYONID = @SERVISENTEGRASYONID)
		END 
		   
', N'', N'1day', 8)
GO
INSERT [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI], [SERVISTIPI], [KAYITTABLOADI], [KAYITALANADI], [GONDERILECEKLERISECSORGU], [ISTEKSQL], [CEVAPSQL], [NOTLAR], [GONDERIMPERYODU], [ONCELIK]) VALUES (N'HIZMET_SILME_PAKETI', 1, N'HESAPISL', N'HESAPISLID', N'SELECT(CASE
           WHEN HDOSYA.HDYATIYOR = 1
           THEN HYATIS.HESAPISLID
           ELSE HMUAYENEISL.HESAPISLID
       END) AS TABLOID,
      HDOSYA.SUBEID AS SUBEID
FROM HMUAYENEISL
     RIGHT OUTER JOIN HYATIS ON HYATIS.HMUAYENEID = HMUAYENEISL.HMUAYENEISLID
     RIGHT OUTER JOIN HESAPISL ON HESAPISL.HESAPISLID = HYATIS.HESAPISLID
     LEFT OUTER JOIN HDOSYA ON HDOSYA.HDOSYAID = HESAPISL.HDOSYAID
WHERE HESAPISL.SNOISLEMKYTDURUMID <> 2
      AND HESAPISL.KYTARIH > DATEADD(DAY, -1*(SELECT CONVERT(INT,GONDERIMPERYODU) FROM SERVISENTEGRASYONTANIM WHERE GONDERIMFONKSIYONADI=''HEADER''), GETDATE())
      AND (HDOSYA.HDYATIYOR = 0
           OR (HDOSYA.HDYATIYOR = 1
               AND HDOSYA.GSSCIKISTARIHI IS NOT NULL))
      AND (HYATIS.HESAPISLID IS NOT NULL
           OR HMUAYENEISL.HESAPISLID IS NOT NULL)', N'DECLARE @SUBEID VARCHAR(10) = ''#SUBEID#'' --1
DECLARE @HESAPISLID NVARCHAR(20) = ''#TABLOID#''
DECLARE @HATA NVARCHAR(2000) = ''''
IF
(
    SELECT COUNT(*) FROM SUBELER WHERE SUBEID = @SUBEID
) = 0
BEGIN
    SET @HATA = ''İşlemin şube kaydı bulunamadı!''
END
IF @HATA <> ''''
BEGIN
    IF NOT EXISTS(SELECT ID FROM SERVISENTEGRASYONHATALARI WHERE SERVISGONDERIMFONKSIYONADI=''HIZMET_SILME_PAKETI'' AND KAYITID=@HESAPISLID AND SUBEID=@SUBEID AND HATA=@HATA AND TARIH>DATEADD(DAY,-2,GETDATE()))
    INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, HATA, TARIH) VALUES (''HIZMET_SILME_PAKETI'', @SUBEID, @HESAPISLID, @HATA, GETDATE())
END
/*START*/--SILMEYIN ONEMLI
SELECT 
		NEWID() AS ''messageGuid/@value'',
		''1'' AS ''messageType/@version'',
		''0a9ba485-e7e0-4abb-9c86-0a14fd364bb8'' AS ''messageType/@codeSystemGuid'' ,
	    ''302'' AS ''messageType/@code'',
		''Hizmet Silme'' 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'',
				ISNULL((SELECT VALUESTR FROM CONFIG WHERE SECTIONSTR =''Saglik-Net'' AND PROGNAME =''MEDISOFT'' AND KEYNAME =
				CONVERT (VARCHAR, @SUBEID) +'' numaralı şubenin kurum numarası''),'''') AS ''healthcareProvider/@code'',
				SUBELER.SUBEADI as ''healthcareProvider/@value''  
				FOR XML PATH(''author''), TYPE),
			    ''C740D0288ED4C45FE0407C0A04162BDD''  AS ''firmaKodu/@value'',
	(
	  SELECT 
		(SELECT
			ISNULL((SELECT CASE WHEN (SELECT VWSNOMUAYENEISL.TABLOTIPI FROM VWSNOMUAYENEISL
									  WHERE VWSNOMUAYENEISL.HESAPISLID = @HESAPISLID) = 0 
									THEN (SELECT VWSNOMUAYENEISL.MSNOTAKIPNO FROM VWSNOMUAYENEISL
									  WHERE VWSNOMUAYENEISL.HESAPISLID = @HESAPISLID)
								WHEN (SELECT VWSNOMUAYENEISL.TABLOTIPI FROM VWSNOMUAYENEISL
									  WHERE VWSNOMUAYENEISL.HESAPISLID = @HESAPISLID) = 4
									THEN (SELECT VWSNOMUAYENEISL.YSNOTAKIPNO FROM VWSNOMUAYENEISL
									  WHERE VWSNOMUAYENEISL.HESAPISLID = @HESAPISLID) END), '''') AS ''SYSTakipNo/@value''
							FOR XML PATH(''HASTA_TAKIP_BILGISI''), TYPE),
						(SELECT
							(SELECT 
								VWSNOMUAYENEISLEMLERI.HESAPISLID AS ''ISLEM_REFERANS_NUMARASI/@value''
								FROM VWSNOMUAYENEISLEMLERI
								   WHERE VWSNOMUAYENEISLEMLERI.OPHESAPISLID = VWSNOMUAYENEISL.HESAPISLID
										 OR VWSNOMUAYENEISLEMLERI.HESAPISLID = VWSNOMUAYENEISL.HESAPISLID 
							FOR XML PATH(''SilinecekHizmet''), TYPE)
				FOR XML PATH(''SilinecekHizmetBilgisi''), TYPE)
				FROM VWSNOMUAYENEISL
				LEFT OUTER JOIN VWSNOMUAYENEISLEMLERI 
					ON VWSNOMUAYENEISLEMLERI.OPHESAPISLID = VWSNOMUAYENEISL.HESAPISLID
					OR VWSNOMUAYENEISLEMLERI.HESAPISLID = VWSNOMUAYENEISL.HESAPISLID 
				WHERE VWSNOMUAYENEISL.HESAPISLID = @HESAPISLID 
					AND VWSNOMUAYENEISL.SUBEID = @SUBEID 
			FOR XML PATH(''recordData''), TYPE)
	
	FROM SUBELER
	WHERE SUBELER.SUBEID = @SUBEID
			
FOR XML PATH (''''), ROOT(''SYSMessage'')
/*END*/--SILMEYIN ONEMLI', N'DECLARE @SERVISENTEGRASYONID INT
DECLARE @XML1 XML
DECLARE @XML2 VARCHAR(MAX)
DECLARE @XML3 XML
DECLARE @SONUCKODU VARCHAR(20)
DECLARE @SONUCMESAJI VARCHAR(1000)
SET @SERVISENTEGRASYONID = ''#SERVISENTEGRASYONID#''
SET @XML1 = ''''
SET @XML2 = ''''
SET @XML3 = ''''
SET @XML1 = (SELECT CEVAPXML FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID)
SET @XML2 = (SELECT @XML1.value (''declare namespace s =  "http://schemas.xmlsoap.org/soap/envelope/"; (/s:Envelope/s:Body/*)[1]'',''varchar(4000)'') AS id)
	--GET SONUCKODU FOR HATA IF ANY 
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCKODU = (SELECT T.C.value(''@value'', ''varchar(100)'') AS SONUCKODU
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucKodu)'') AS T(C))
	--GET SONUCMESAJI
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCMESAJI = (SELECT T.C.value(''@value'', ''varchar(1000)'') AS SONUCMESAJI
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucMesaji)'') AS T(C))
	IF	@SONUCKODU = ''S0000''  
		BEGIN
			UPDATE SERVISENTEGRASYON SET DURUM=1,DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1,CEVAPZAMANI=GETDATE() WHERE ID=@SERVISENTEGRASYONID
			UPDATE VWSNOMUAYENEISL SET VWSNOMUAYENEISL.SNOISLEMKYTDURUMID = 0
			FROM VWSNOMUAYENEISL
			 JOIN VWSNOMUAYENEISLEMLERI 
				ON VWSNOMUAYENEISLEMLERI.HESAPISLID = VWSNOMUAYENEISL.HESAPISLID
			 JOIN SERVISENTEGRASYON SE ON SE.KAYITID = VWSNOMUAYENEISL.HESAPISLID
			 WHERE SE.ID = @SERVISENTEGRASYONID
			UPDATE VWSNOMUAYENEISLEMLERI SET VWSNOMUAYENEISLEMLERI.SNOGONDERILDI = 0
			FROM VWSNOMUAYENEISL
			 JOIN VWSNOMUAYENEISLEMLERI 
				ON VWSNOMUAYENEISLEMLERI.HESAPISLID = VWSNOMUAYENEISL.HESAPISLID
			 JOIN SERVISENTEGRASYON SE ON SE.KAYITID = VWSNOMUAYENEISL.HESAPISLID
			 WHERE SE.ID = @SERVISENTEGRASYONID
		END
	
	ELSE 
		BEGIN
			UPDATE SERVISENTEGRASYON SET DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1 WHERE ID=@SERVISENTEGRASYONID

			INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, SERVISENTEGRASYONID, SONUCKODU, HATA, TARIH) SELECT SERVISGONDERIMFONKSIYONADI, SERVISENTEGRASYON.SUBEID, KAYITID, ID, @SONUCKODU, @SONUCMESAJI, GETDATE() FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID AND 0=(SELECT COUNT(*) FROM SERVISENTEGRASYONHATALARI WHERE SERVISENTEGRASYONID = @SERVISENTEGRASYONID)
		END', N'', N'', 0)
GO
INSERT [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI], [SERVISTIPI], [KAYITTABLOADI], [KAYITALANADI], [GONDERILECEKLERISECSORGU], [ISTEKSQL], [CEVAPSQL], [NOTLAR], [GONDERIMPERYODU], [ONCELIK]) VALUES (N'LABORATUVAR_SONUC_KAYIT', 1, N'HTETKIKKART', N'HTETKIKKARTID', N'SELECT DISTINCT
       HTETKIKKART.HTETKIKKARTID AS TABLOID,
       ISNULL(HDOSYA.SUBEID, 1) AS SUBEID
FROM HTETKIKKART WITH(NOLOCK)
     JOIN HTETKIK WITH(NOLOCK) ON HTETKIK.HTETKIKKARTID = HTETKIKKART.HTETKIKKARTID
     JOIN HESAPISL WITH(NOLOCK) ON HTETKIK.HESAPISLID = HESAPISL.HESAPISLID
     JOIN HDOSYA WITH(NOLOCK) ON HESAPISL.HDOSYAID = HDOSYA.HDOSYAID
     LEFT JOIN TBOLUM AS UYGBOLUM WITH(NOLOCK) ON UYGBOLUM.BOLUMID = HTETKIKKART.UYGBOLUMID
WHERE ISNULL(HTETKIK.USSTETKIKGONDERILDI, 0) = 0
    AND HTETKIK.DURUM = 2
    AND HDOSYA.HDIPTAL = 0
    AND HESAPISL.IPTAL = 0
    AND HESAPISL.ONAYLI = 1
    AND HESAPISL.SNKAYDET = 1
    AND UYGBOLUM.KLINIKKODU NOT IN(''104'', ''130'', ''178'')
    AND UYGBOLUM.KLINIKKODU NOT IN(''182'', ''194'', ''155'')
    AND HTETKIKKART.GIRISTARIH > DATEADD(DAY, -1*(SELECT CONVERT(INT,GONDERIMPERYODU) FROM SERVISENTEGRASYONTANIM WHERE GONDERIMFONKSIYONADI=''HEADER''), GETDATE())', N'DECLARE @SUBEID VARCHAR(10) = ''#SUBEID#''
DECLARE @HTETKIKKARTID VARCHAR(15) = ''#TABLOID#'' 
DECLARE @HATA NVARCHAR(2000) = ''''
DECLARE @SNOTAKIPNO VARCHAR(100)=''''

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

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


SELECT VWTETKIKHASTA.*,SUBELER.SUBEADI,SUBELER.LAB INTO #TMPVWTETKIKHASTA FROM VWTETKIKHASTA JOIN SUBELER ON VWTETKIKHASTA.SUBEID =  SUBELER.SUBEID  WHERE VWTETKIKHASTA.HTETKIKKARTID = @HTETKIKKARTID AND SUBELER.SUBEID=@SUBEID
SELECT VWTETKIK.*,SUBELER.SUBEADI,SUBELER.LAB INTO #TMPVWTETKIK FROM VWTETKIK JOIN SUBELER ON VWTETKIK.SUBEID =  SUBELER.SUBEID WHERE VWTETKIK.HTETKIKKARTID = @HTETKIKKARTID AND SUBELER.SUBEID=@SUBEID

IF (SELECT COUNT(*) FROM SUBELER WHERE SUBEID = @SUBEID) = 0 
BEGIN
    SET @HATA =  ''İşlemin şube kaydı bulunamadı! ''
END
IF NOT EXISTS(SELECT * FROM #TMPVWTETKIK)
BEGIN
	SET @HATA = @HATA + ''Tetkik kartı için USS''''ye gönderilecek tetkik bulunmamaktadır! ''
END
IF EXISTS(SELECT * FROM #TMPVWTETKIK WHERE DURUM<>2)
BEGIN
	SET @HATA = @HATA + ISNULL((SELECT TOP 1 ISNULL(#TMPVWTETKIKHASTA.LADISOYADI,'''') + ''''''e '' + ISNULL(CONVERT(VARCHAR,#TMPVWTETKIKHASTA.GIRISTARIH),'''') +'' tarihinde yapılan '' +#TMPVWTETKIK.LITEMADI FROM #TMPVWTETKIK JOIN  #TMPVWTETKIKHASTA ON #TMPVWTETKIK.HTETKIKKARTID=#TMPVWTETKIKHASTA.HTETKIKKARTID WHERE DURUM<>2 ),'''') + + '' işlemi tamamlanmamış durumdadır. ''
END

IF EXISTS(SELECT * FROM #TMPVWTETKIK WHERE SNOGONDERILDI<>1)
BEGIN
	SET @HATA = @HATA + ISNULL((SELECT TOP 1 ISNULL(#TMPVWTETKIKHASTA.LADISOYADI,'''') + ''''''e '' + ISNULL(CONVERT(VARCHAR,#TMPVWTETKIKHASTA.GIRISTARIH),'''') +'' tarihinde yapılan '' +#TMPVWTETKIK.LITEMADI FROM #TMPVWTETKIK JOIN  #TMPVWTETKIKHASTA ON #TMPVWTETKIK.HTETKIKKARTID=#TMPVWTETKIKHASTA.HTETKIKKARTID WHERE DURUM<>2 ),'''')++ '' işlemi USS''''ye hizmet gönderimini yapınız ''
END


IF @HATA=''''
BEGIN
	--DIŞ İSTEK DEĞİLSE
	IF NOT EXISTS (SELECT #TMPVWTETKIK.HTETKIKID FROM #TMPVWTETKIKHASTA JOIN  #TMPVWTETKIK ON #TMPVWTETKIK.HTETKIKKARTID = #TMPVWTETKIKHASTA.HTETKIKKARTID WHERE #TMPVWTETKIKHASTA.LAB = 1 OR #TMPVWTETKIKHASTA.DISISTEK=1)
	BEGIN
		--OPHESAPISLID BOŞSA
		IF EXISTS(SELECT #TMPVWTETKIK.OPHESAPISLID FROM #TMPVWTETKIK WHERE #TMPVWTETKIK.HTETKIKKARTID = @HTETKIKKARTID AND #TMPVWTETKIK.OPHESAPISLID IS NULL)
		BEGIN
			--AYAKTANSA
			IF (SELECT #TMPVWTETKIKHASTA.MDLTEDAVITURU FROM #TMPVWTETKIKHASTA WHERE #TMPVWTETKIKHASTA.HTETKIKKARTID = @HTETKIKKARTID) = ''A''
			BEGIN
				
				IF EXISTS(	SELECT TOP 1 VWMUAYENEISL.HESAPISLID 
							FROM VWMUAYENEISL 
							JOIN VWTETKIK ON VWMUAYENEISL.HDOSYAID = VWTETKIK.HDOSYAID 
											AND VWMUAYENEISL.UYGDRID = VWTETKIK.ISTDRID
											AND VWMUAYENEISL.HMTARIH <= VWTETKIK.ITARIH
							WHERE VWTETKIK.HTETKIKKARTID = @HTETKIKKARTID)
				BEGIN
				
					UPDATE VWTETKIKGUNCELLE 
						SET VWTETKIKGUNCELLE.OPHESAPISLID = (
												SELECT TOP 1 VWMUAYENEISL.HESAPISLID 
												FROM VWMUAYENEISL 
												JOIN VWTETKIK ON VWMUAYENEISL.HDOSYAID = VWTETKIK.HDOSYAID 
																AND VWMUAYENEISL.UYGDRID = VWTETKIK.ISTDRID 
																AND VWMUAYENEISL.HMTARIH <= VWTETKIK.ITARIH
												WHERE VWTETKIK.HTETKIKKARTID = @HTETKIKKARTID
												ORDER BY VWMUAYENEISL.HMTARIH DESC
											)
					FROM VWTETKIK VWTETKIKGUNCELLE
					WHERE VWTETKIKGUNCELLE.HTETKIKKARTID = @HTETKIKKARTID
					AND VWTETKIKGUNCELLE.OPHESAPISLID IS NULL
					AND VWTETKIKGUNCELLE.SUBEID = @SUBEID

					UPDATE VWTETKIKGUNCELLE 
						SET VWTETKIKGUNCELLE.OPHESAPISLID = (
												SELECT TOP 1 VWMUAYENEISL.HESAPISLID 
												FROM VWMUAYENEISL 
												JOIN VWTETKIK ON VWMUAYENEISL.HDOSYAID = VWTETKIK.HDOSYAID 
																AND VWMUAYENEISL.UYGDRID = VWTETKIK.ISTDRID 
																AND VWMUAYENEISL.HMTARIH <= VWTETKIK.ITARIH
												WHERE VWTETKIK.HTETKIKKARTID = @HTETKIKKARTID
												ORDER BY VWMUAYENEISL.HMTARIH DESC
											)
					FROM #TMPVWTETKIK VWTETKIKGUNCELLE
					WHERE VWTETKIKGUNCELLE.HTETKIKKARTID = @HTETKIKKARTID
					AND VWTETKIKGUNCELLE.OPHESAPISLID IS NULL
					AND VWTETKIKGUNCELLE.SUBEID = @SUBEID
				
				END
				ELSE
				BEGIN
					SET @HATA = @HATA + (SELECT TOP 1 LADISOYADI+'' e ''+CONVERT(NVARCHAR(20), GIRISTARIH) + '' tarihinde yapılan ''+ LITEMADI + '' işlemi muayene kaydına bağlı değildir. İşlemin bulunduğu dosyada tetkik işleminin isteyen doktoru tarafından takip edilen işlemin istendiği tarih ve saatin öncesinde hastanın muayene işleminin bulunması gerekmektedir.''
										 FROM #TMPVWTETKIK
										 WHERE #TMPVWTETKIK.HTETKIKKARTID = @HTETKIKKARTID AND #TMPVWTETKIK.OPHESAPISLID IS NULL)
				END
			END
			ELSE--AYAKTAN DEĞİLSE
			BEGIN
				IF EXISTS(	SELECT TOP 1 VWYATIS.HESAPISLID 
							FROM VWYATIS 
							JOIN VWTETKIK ON VWYATIS.HDOSYAID = VWTETKIK.HDOSYAID 
											AND VWYATIS.UYGDRID = VWTETKIK.ISTDRID
											AND VWYATIS.HYYATISTARIH <= VWTETKIK.ITARIH
											AND (HYCIKISTARIH IS NULL OR HYCIKISTARIH >=VWTETKIK.ITARIH)
							WHERE VWTETKIK.HTETKIKKARTID = @HTETKIKKARTID)
				BEGIN
				
					UPDATE VWTETKIKGUNCELLE 
						SET VWTETKIKGUNCELLE.OPHESAPISLID = (
												SELECT TOP 1 VWYATIS.HESAPISLID 
												FROM VWYATIS 
												JOIN VWTETKIK ON VWYATIS.HDOSYAID = VWTETKIK.HDOSYAID 
																AND VWYATIS.UYGDRID = VWTETKIK.ISTDRID
																AND VWYATIS.HYYATISTARIH <= VWTETKIK.ITARIH
																AND (HYCIKISTARIH IS NULL OR HYCIKISTARIH >=VWTETKIK.ITARIH)
												WHERE VWTETKIK.HTETKIKKARTID = @HTETKIKKARTID
												ORDER BY  VWYATIS.HYYATISTARIH DESC
											)
					FROM VWTETKIK VWTETKIKGUNCELLE
					WHERE VWTETKIKGUNCELLE.HTETKIKKARTID = @HTETKIKKARTID
					AND VWTETKIKGUNCELLE.OPHESAPISLID IS NULL
					AND VWTETKIKGUNCELLE.SUBEID = @SUBEID


					UPDATE VWTETKIKGUNCELLE 
						SET VWTETKIKGUNCELLE.OPHESAPISLID = (
												SELECT TOP 1 VWYATIS.HESAPISLID 
												FROM VWYATIS 
												JOIN VWTETKIK ON VWYATIS.HDOSYAID = VWTETKIK.HDOSYAID 
																AND VWYATIS.UYGDRID = VWTETKIK.ISTDRID
																AND VWYATIS.HYYATISTARIH <= VWTETKIK.ITARIH
																AND (HYCIKISTARIH IS NULL OR HYCIKISTARIH >=VWTETKIK.ITARIH)
												WHERE VWTETKIK.HTETKIKKARTID = @HTETKIKKARTID
												ORDER BY  VWYATIS.HYYATISTARIH DESC
											)
					FROM #TMPVWTETKIK VWTETKIKGUNCELLE
					WHERE VWTETKIKGUNCELLE.HTETKIKKARTID = @HTETKIKKARTID
					AND VWTETKIKGUNCELLE.OPHESAPISLID IS NULL
					AND VWTETKIKGUNCELLE.SUBEID = @SUBEID
				
				END
				ELSE
				BEGIN
					SET @HATA = @HATA + (SELECT TOP 1 LADISOYADI+'' e ''+CONVERT(NVARCHAR(20), GIRISTARIH) + '' tarihinde yapılan ''+ LITEMADI + '' işlemi yatış kaydına bağlı değildir. İşlemin bulunduğu dosyada tetkik işleminin isteyen doktoru tarafından takip edilen işlemin istendiği tarih ve saatin öncesinde hastanın muayene işleminin bulunması gerekmektedir.''
										 FROM #TMPVWTETKIK
										 WHERE #TMPVWTETKIK.HTETKIKKARTID = @HTETKIKKARTID AND #TMPVWTETKIK.OPHESAPISLID IS NULL)
				END
			END--AYAKTANSA SON
		END
		ELSE--OPHESAPISLID BOŞ DEĞİLSE
		BEGIN
			--AYAKTANSA
			IF (SELECT #TMPVWTETKIKHASTA.MDLTEDAVITURU FROM #TMPVWTETKIKHASTA WHERE #TMPVWTETKIKHASTA.HTETKIKKARTID = @HTETKIKKARTID) = ''A''
			BEGIN
				IF EXISTS(SELECT SNOTAKIPNO FROM VWMUAYENEISL WITH(NOLOCK) WHERE HESAPISLID IN (SELECT OPHESAPISLID FROM #TMPVWTETKIK) AND ISNULL(SNOTAKIPNO,'''')='''')
				BEGIN
					SET @HATA = @HATA +  ''Tetkik işleminin bağlı olduğu muayene kaydı sistemde bulunamadı. ''
				END
			END
			ELSE--AYAKTAN DEĞİLSE
			BEGIN
				IF EXISTS(SELECT SNOTAKIPNO FROM VWYATIS WITH(NOLOCK) WHERE HESAPISLID IN (SELECT OPHESAPISLID FROM #TMPVWTETKIK) AND ISNULL(SNOTAKIPNO,'''')='''')
				BEGIN
					SET @HATA = @HATA +  ''Tetkik işleminin bağlı olduğu muayene kaydı sistemde bulunamadı. ''
				END
			END--AYAKTANSA SON
		END--OPHESAPISLID BOŞSA SON

		--AYAKTANSA
		IF (SELECT #TMPVWTETKIKHASTA.MDLTEDAVITURU FROM #TMPVWTETKIKHASTA WHERE #TMPVWTETKIKHASTA.HTETKIKKARTID = @HTETKIKKARTID) = ''A''
		BEGIN
			SET @SNOTAKIPNO = ISNULL((SELECT TOP 1 SNOTAKIPNO FROM VWMUAYENEISL (NOLOCK) WHERE HESAPISLID=(SELECT TOP 1 OPHESAPISLID FROM #TMPVWTETKIK WHERE OPHESAPISLID IS NOT NULL ORDER BY OPHESAPISLID DESC) ORDER BY HESAPISLID DESC),'''')
		END--AYAKTAN DEĞİLSE
		ELSE
		BEGIN
			SET @SNOTAKIPNO = ISNULL((SELECT TOP 1 SNOTAKIPNO FROM VWYATIS (NOLOCK) WHERE HESAPISLID=(SELECT TOP 1 OPHESAPISLID FROM #TMPVWTETKIK WHERE OPHESAPISLID IS NOT NULL ORDER BY OPHESAPISLID DESC) ORDER BY HESAPISLID DESC),'''')
		END--AYAKTANSA SON

	END
	ELSE--DIŞ İSTEKSE
	BEGIN
		SET @SNOTAKIPNO = ISNULL((SELECT SNOTAKIPNO FROM #TMPVWTETKIKHASTA),'''')
		IF (@SNOTAKIPNO = '''') SET @HATA = @HATA + ''Tetkik kartı için USS''''ye hasta kaydını yapınız. ''
	END
END--HATA YOKSA

IF (@SNOTAKIPNO = '''' AND @HATA='''') SET @HATA = @HATA + ''Önce hasta kaydını gerçekleştiriniz. ''


IF @HATA <> ''''
BEGIN
    IF NOT EXISTS(SELECT ID FROM SERVISENTEGRASYONHATALARI WHERE SERVISGONDERIMFONKSIYONADI=''LABORATUVAR_SONUC_KAYIT'' AND KAYITID=@HTETKIKKARTID AND SUBEID=@SUBEID AND HATA=@HATA AND TARIH>DATEADD(DAY,-2,GETDATE()))
    INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, HATA, TARIH) VALUES (''LABORATUVAR_SONUC_KAYIT'', @SUBEID, @HTETKIKKARTID, @HATA, GETDATE())
END
ELSE
BEGIN
/*START*/--SILMEYIN ONEMLI
SELECT NEWID() AS ''messageGuid/@value'',
       ''1'' AS ''messageType/@version'',
       ''0a9ba485-e7e0-4abb-9c86-0a14fd364bb8'' AS ''messageType/@codeSystemGuid'',
       ''105'' AS ''messageType/@code'',
       ''Laboratuvar Sonuç Kayıt'' 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'',
                  ISNULL(
                  (
                      SELECT VALUESTR
                      FROM CONFIG
                      WHERE SECTIONSTR = ''Saglik-Net''
                            AND PROGNAME = ''MEDISOFT''
                            AND KEYNAME = CONVERT(VARCHAR, @SUBEID) + '' numaralı şubenin kurum numarası''
                  ),
                  ''''
                        ) AS ''healthcareProvider/@code'',
                  #TMPVWTETKIKHASTA.SUBEADI AS ''healthcareProvider/@value''
           FOR XML PATH(''author''), TYPE
       ),
       ''C740D0288ED4C45FE0407C0A04162BDD'' AS ''firmaKodu/@value'',
       (
           SELECT
				(
                   SELECT ISNULL(@SNOTAKIPNO, '''' ) AS ''SYSTakipNo/@value''
                   FOR XML PATH(''HASTA_TAKIP_BILGISI''), TYPE 
				),
				(
					SELECT						
						LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),#TMPVWTETKIKHASTA.ILKGIRISTRH,120),'' '',''''),''-'',''''),'':'',''''),12) AS ''PAKETE_AIT_ISLEM_ZAMANI/@value'',
						(
							SELECT 
								ISNULL(#TMPVWTETKIK.HESAPISLID, '''') AS ''ISLEM_REFERANS_NUMARASI/@value'',
								ISNULL((
										SELECT TOP 1
											CONVERT(VARCHAR(20), HTETKIKDETAY.ORNEKID)
										FROM HTETKIKDETAY
										WHERE HTETKIKDETAY.HTETKIKID = #TMPVWTETKIK.HTETKIKID),'''') AS ''TETKIK_ORNEK_NUMARASI/@value'',
								ISNULL(LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),#TMPVWTETKIK.ORNEKTARIHI,120),'' '',''''),''-'',''''),'':'',''''),12), '''') AS ''TETKIK_ORNEGININ_ALINDIGI_ZAMAN/@value'',
								ISNULL((SELECT CASE
									WHEN #TMPVWTETKIK.KABULTARIH IS NULL 
									THEN
										LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),#TMPVWTETKIK.KABULTARIH,120),'' '',''''),''-'',''''),'':'',''''),12)
									ELSE
										LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),#TMPVWTETKIK.ORNEKTARIHI,120),'' '',''''),''-'',''''),'':'',''''),12)
									END),'''') AS ''TETKIK_ORNEGININ_KABUL_ZAMANI/@value'',
								ISNULL(LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),#TMPVWTETKIK.SONUCTARIH,120),'' '',''''),''-'',''''),'':'',''''),12), '''') AS ''TETKIK_SONUC_TARIHI/@value'',
								ISNULL(LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),#TMPVWTETKIK.ONAYZAMANI,120),'' '',''''),''-'',''''),'':'',''''),12), '''') AS ''TETKIK_SONUC_ONAY_TARIHI/@value'',
								ISNULL(#TMPVWTETKIK.AccessionNo, '''') AS ''SONUC_DIS_ERISIM_BILGISI/@value'',
								(
									SELECT 
										ISNULL(#TMPVWTETKIK.LOINCID, '''') AS ''LOINC_KODU/@value'',
										ISNULL(HTETKIKDETAY.OLCUM, '''') AS ''TETKIK_SONUC_PARAMETRE_ADI/@value'',
										ISNULL((SELECT CASE
												WHEN HTETKIKDETAY.SONUCR IS NULL 
												THEN
													STR(HTETKIKDETAY.SONUCR,25,5)
												ELSE
													HTETKIKDETAY.SONUCY
												END),'''') AS ''TETKIK_SONUCU/@value'',
										ISNULL(CONVERT(NVARCHAR, HTETKIKDETAY.MIND) + ''-'' + CONVERT(NVARCHAR, HTETKIKDETAY.MAXD),'''') AS ''TETKIK_SONUCU_REFERANS_DEGERI/@value'',
										ISNULL(HTETKIKDETAY.BIRIM, '''') AS ''TETKIK_SONUCU_BIRIMI/@value'',
										ISNULL(CAST(CAST(HTETKIKDETAY.MIND AS DECIMAL(20)) AS VARCHAR(20)), '''') + ''-'' + ISNULL(CAST(CAST(HTETKIKDETAY.MAXD AS DECIMAL(20)) AS VARCHAR(20)), '''') AS ''TETKIK_SONUCU_REFERANS_DEGERI/@value'',
										CASE WHEN HTETKIKDETAY.UYARIISRT = '''' THEN ''0'' ELSE ''1'' END AS ''TETKIK_SONUCU_REFERANS_DEGER_ARALIGINDA_MI/@value''
									FROM HTETKIKDETAY
									WHERE HTETKIKDETAY.HTETKIKID = #TMPVWTETKIK.HTETKIKID
									FOR XML PATH(''TETKIK_SONUC_BILGISI''), TYPE
								)
							FROM #TMPVWTETKIK
							WHERE #TMPVWTETKIK.HTETKIKKARTID = #TMPVWTETKIKHASTA.HTETKIKKARTID
							ORDER BY #TMPVWTETKIK.HESAPISLID
							FOR XML PATH(''TETKIK_BILGISI''), TYPE
						)
					FOR XML PATH(''TETKIK_SONUC_BILGILERI''), TYPE
               )
           FOR XML PATH(''recordData''), TYPE
       )
FROM #TMPVWTETKIKHASTA

FOR XML PATH(''''), ROOT(''SYSMessage'')
/*END*/--SILMEYIN ONEMLI
END
IF OBJECT_ID(''tempdb..#TMPVWTETKIKHASTA'') IS NOT NULL 
DROP TABLE #TMPVWTETKIKHASTA

IF OBJECT_ID(''tempdb..#TMPVWTETKIK'') IS NOT NULL 
DROP TABLE #TMPVWTETKIK', N'DECLARE @SERVISENTEGRASYONID INT
DECLARE @XML1 XML
DECLARE @XML2 VARCHAR(MAX)
DECLARE @XML3 XML
DECLARE @SNOTakipNo VARCHAR(20)
DECLARE @SONUCKODU VARCHAR(20)
DECLARE @SONUCMESAJI VARCHAR(1000)
SET @SERVISENTEGRASYONID = ''#SERVISENTEGRASYONID#''
SET @SNOTakipNo = ''''
SET @XML1 = ''''
SET @XML2 = ''''
SET @XML3 = ''''
SET @XML1 = (SELECT CEVAPXML FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID)
SET @XML2 = (SELECT @XML1.value (''declare namespace s =  "http://schemas.xmlsoap.org/soap/envelope/"; (/s:Envelope/s:Body/*)[1]'',''varchar(4000)'') AS id)
	--GET SONUCKODU FOR HATA IF ANY 
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCKODU = (SELECT T.C.value(''@value'', ''varchar(100)'') AS SONUCKODU
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucKodu)'') AS T(C))
	--GET SONUCMESAJI
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCMESAJI = (SELECT T.C.value(''@value'', ''varchar(1000)'') AS SONUCMESAJI
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucMesaji)'') AS T(C))
	IF	@SONUCKODU = ''S0000''  
		BEGIN
			UPDATE SERVISENTEGRASYON SET DURUM=1,DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1,CEVAPZAMANI=GETDATE() WHERE ID=@SERVISENTEGRASYONID
			UPDATE VWTETKIK SET VWTETKIK.USSTETKIKGONDERILDI = 1 
		
			FROM VWTETKIK
			 JOIN SERVISENTEGRASYON SE ON SE.KAYITID = VWTETKIK.HTETKIKKARTID
			 WHERE SE.ID = @SERVISENTEGRASYONID
		END
	
	ELSE 
		BEGIN
			UPDATE SERVISENTEGRASYON SET DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1 WHERE ID=@SERVISENTEGRASYONID

			INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, SERVISENTEGRASYONID, SONUCKODU, HATA, TARIH) SELECT SERVISGONDERIMFONKSIYONADI, SERVISENTEGRASYON.SUBEID, KAYITID, ID, @SONUCKODU, VWTETKIKHASTA.HADI+ '' ''+ VWTETKIKHASTA.HSOYADI+ '' isimli hasta. Uygulama Bölüm:''+VWTETKIKHASTA.LUYGBOLUM +'' Giriş Tarihi:''+CONVERT(VARCHAR,VWTETKIKHASTA.GIRISTARIH)+'' Uss Kayıt cevabı:''+@SONUCMESAJI, GETDATE() FROM SERVISENTEGRASYON JOIN VWTETKIKHASTA ON VWTETKIKHASTA.HTETKIKKARTID=SERVISENTEGRASYON.KAYITID WHERE ID = @SERVISENTEGRASYONID AND 0=(SELECT COUNT(*) FROM SERVISENTEGRASYONHATALARI WHERE SERVISENTEGRASYONID = @SERVISENTEGRASYONID)			
		END', N'', N'1day', 9)
GO
INSERT [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI], [SERVISTIPI], [KAYITTABLOADI], [KAYITALANADI], [GONDERILECEKLERISECSORGU], [ISTEKSQL], [CEVAPSQL], [NOTLAR], [GONDERIMPERYODU], [ONCELIK]) VALUES (N'LOGTABLOSUARSIVLE', 0, N'LOG', N'LOGID', N'SELECT TOP 1 LOGID FROM LOGARCHIVE', N'INSERT INTO LOGARCHIVE (TARIH,SAAT,[USER],ISLEM,[TABLE],ICERIK1,KAYITNO,DEGISIKLIK,LOGID) SELECT TOP 600000 TARIH,SAAT,[USER],ISLEM,[TABLE],ICERIK1,KAYITNO,DEGISIKLIK,LOGID FROM [LOG] WHERE TARIH<DATEADD(DAY,-14,GETDATE()) and [LOG].LOGID NOT IN (SELECT LOGID FROM LOGARCHIVE) ORDER BY LOGID
DELETE FROM [LOG] WHERE LOGID IN (SELECT TOP 600000 LOGID FROM [LOG] WHERE TARIH<DATEADD(DAY,-14,GETDATE()) ORDER BY LOGID)', NULL, NULL, N'1daylast', 3)
GO
INSERT [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI], [SERVISTIPI], [KAYITTABLOADI], [KAYITALANADI], [GONDERILECEKLERISECSORGU], [ISTEKSQL], [CEVAPSQL], [NOTLAR], [GONDERIMPERYODU], [ONCELIK]) VALUES (N'MUAYENE_BILGISI_KAYIT', 1, N'HMUAYENEISL', N'HMUAYENEISLID', N'SELECT HMUAYENEISL.HMUAYENEISLID AS TABLOID,
       ISNULL(HDOSYA.SUBEID, 1) AS SUBEID
FROM HMUAYENEISL WITH(NOLOCK)
     JOIN HESAPISL WITH(NOLOCK) ON HESAPISL.HESAPISLID = HMUAYENEISL.HESAPISLID
     JOIN HDOSYA WITH(NOLOCK) ON HDOSYA.HDOSYAID = HESAPISL.HDOSYAID
WHERE HMUAYENEISL.SNOMUAYENEGONDERILDI = 0
	   AND HESAPISL.KYTARIH > DATEADD(DAY, -1*(SELECT CONVERT(INT,GONDERIMPERYODU) FROM SERVISENTEGRASYONTANIM WHERE GONDERIMFONKSIYONADI=''HEADER''), GETDATE())
	   AND ISNULL(HMUAYENEISL.SNOTAKIPNO, '''') <> ''''
	   AND HDOSYA.HDIPTAL = 0
	   AND HESAPISL.IPTAL = 0
	   AND HESAPISL.ONAYLI = 1
	   AND HESAPISL.SNKAYDET = 1
	   AND ISNULL(HESAPISL.TEKLIF, 0) = 0
	   AND ISNULL(HMUAYENEISL.SNOTAKIPNO,'''')<>''''', N'DECLARE @SUBEID VARCHAR(10) =  ''#SUBEID#''
DECLARE @MUAYENEISLID VARCHAR(20) = ''#TABLOID#'' 
DECLARE @HATA NVARCHAR(2000) = ''''

IF (SELECT COUNT(*) FROM SUBELER WHERE SUBEID = @SUBEID) = 0 
BEGIN
	SET @HATA = @HATA + ''İşlemin şube kaydı bulunamadı! ''
END

IF NOT EXISTS(SELECT HDOSYAICDID FROM HDOSYAICD 
				JOIN TICD ON TICD.ICDKOD = HDOSYAICD.ICDKOD
				JOIN VWMUAYENEISL ON VWMUAYENEISL.HMUAYENEID = HDOSYAICD.HMUAYENEID
				WHERE HDOSYAICD.HMUAYENEID =  VWMUAYENEISL.HMUAYENEID
				AND VWMUAYENEISL.HMUAYENEISLID = @MUAYENEISLID)
BEGIN
    SET @HATA = @HATA + ''Muayene kaydı için tanı girişi yapılmamış! USS sistemine kayıt yapılamaz. ''
END
	
IF @HATA<>''''
BEGIN
    IF NOT EXISTS(SELECT ID FROM SERVISENTEGRASYONHATALARI WHERE SERVISGONDERIMFONKSIYONADI=''MUAYENE_BILGISI_KAYIT'' AND KAYITID=@MUAYENEISLID AND SUBEID=@SUBEID AND HATA=@HATA AND TARIH>DATEADD(DAY,-2,GETDATE()))
    INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI,SUBEID,KAYITID,HATA,TARIH) VALUES (''MUAYENE_BILGISI_KAYIT'',@SUBEID,@MUAYENEISLID,@HATA,GETDATE())
END
ELSE
BEGIN
/*START*/--SILMEYIN ONEMLI
SELECT 
	   NEWID() AS ''messageGuid/@value'',
       ''1'' AS ''messageType/@version'',
       ''0a9ba485-e7e0-4abb-9c86-0a14fd364bb8'' AS ''messageType/@codeSystemGuid'',
       ''103'' AS ''messageType/@code'',
       ''Muayene Bilgisi Kayıt'' 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'',
				ISNULL((SELECT VALUESTR FROM CONFIG WHERE SECTIONSTR = ''Saglik-Net'' AND PROGNAME = ''MEDISOFT'' AND KEYNAME = CONVERT(VARCHAR, @SUBEID)+'' numaralı şubenin kurum numarası''), '''') AS ''healthcareProvider/@code'',			    
				SUBELER.SUBEADI AS ''healthcareProvider/@value'' FOR XML PATH(''author''), TYPE
	   ),
	   
	   ''C740D0288ED4C45FE0407C0A04162BDD'' AS ''firmaKodu/@value'',
	   
	   (/*p1*/
		  SELECT 
				(SELECT ISNULL(VWMUAYENEISL.SNOTAKIPNO, '''') AS ''SYSTakipNo/@value'' FOR XML PATH(''HASTA_TAKIP_BILGISI''), TYPE ),
				(/*p2*/
					 SELECT /*s1*/
							CASE
							WHEN EXISTS
									   (
										  SELECT *
										  FROM VWRECETE
										  WHERE VWRECETE.HMUAYENEID = VWMUAYENEISL.HMUAYENEID											  
									   )
							THEN
									   (/*p3*/
										  SELECT /*s2*/
												(/*p4*/
												    SELECT /*s3*/
														 ISNULL(LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),VWRECETE.HRECTARIH,120),'' '',''''),''-'',''''),'':'',''''),12), '''') AS ''RECETE_TARIHI/@value'',
														 ISNULL(CONVERT(VARCHAR(20), VWRECETE.HRECETEID), '''') AS ''RECETE_NUMARASI/@value'',
														 ''1'' AS ''RECETE_TURU/@version'',
														 ''c2fbe9bb-f6b3-4cb5-8670-47890ed7ed4b'' AS ''RECETE_TURU/@codeSystemGuid'',
														 ISNULL(CONVERT(VARCHAR(20), VWRECETE.RECETETURID), '''') AS ''RECETE_TURU/@code'',
														 ISNULL(VWRECETE.RECETETURUADI, '''') AS ''RECETE_TURU/@value'',
														 ISNULL(VWRECETE.DRTCKIMLIKNO, '''') AS ''HEKIM_KIMLIK_NUMARASI/@value'',
														  (/*p5*/
															    SELECT /*s4*/
																	  ISNULL((SELECT CASE WHEN ILACBARKOD IS NULL THEN TILAC.BARKOD ELSE ILACBARKOD END), '''') AS ''ILAC_BARKODU/@value'',
																	  ISNULL(HRECETEISL.ILACADI, '''') AS ''ILAC_ADI/@value'',
																	  ISNULL(CONVERT(VARCHAR(20), HRECETEISL.MIKTAR), '''') AS ''KUTU_ADETI/@value'',
																	  ''1'' AS ''ILAC_KULLANIM_SEKLI/@version'',
																	  ''32d57611-4928-46da-afac-624aaaa388d8'' AS ''ILAC_KULLANIM_SEKLI/@codeSystemGuid'',
																	  ISNULL(CONVERT(VARCHAR(20), HRECETEISL.ILACKULSEKLIID), '''') AS ''ILAC_KULLANIM_SEKLI/@code'',
																	  ISNULL(ILACKULSEKLIADI, '''') AS ''ILAC_KULLANIM_SEKLI/@value'',
																	  CONVERT(VARCHAR, 1) AS ''ILAC_KULLANIM_SAYISI/@value'',
																	  ISNULL(CONVERT(VARCHAR(20), KULLANIMADET), '''') AS ''ILAC_KULLANIM_DOZU/@value'',
																	  ISNULL(CONVERT(VARCHAR(20), KULPERIYODU), '''') AS ''ILAC_KULLANIM_PERIYODU/@value'',
																	  ''1'' AS ''ILAC_KULLANIM_PERIYODU_BIRIMI/@version'',
																	  ''64408499-b82a-4e64-805e-e821aa0c64c9'' AS ''ILAC_KULLANIM_PERIYODU_BIRIMI/@codeSystemGuid'',
																	  ISNULL(CONVERT(VARCHAR(20), KULPERIYODBIRIMI), '''') AS ''ILAC_KULLANIM_PERIYODU_BIRIMI/@code'',
																	  ISNULL((SELECT CASE KULPERIYODBIRIMI WHEN 1 THEN ''Dakika'' WHEN 2 THEN ''Saat'' WHEN 3 THEN ''Gün'' WHEN 4 THEN ''Hafta''						                 WHEN 5 THEN ''Ay'' ELSE '''' END), '''') AS ''ILAC_KULLANIM_PERIYODU_BIRIMI/@value'',
																	  '''' AS ''ILAC_ACIKLAMA/@value''
																FROM HRECETEISL
																	LEFT JOIN TILAC ON TILAC.ILACID = HRECETEISL.ILACID AND TILAC.AKTIF = 1
																	LEFT OUTER JOIN TILACKULSEKLI ON TILACKULSEKLI.ILACKULSEKLIID = HRECETEISL.ILACKULSEKLIID
																WHERE VWRECETE.HRECETEID = HRECETEISL.HRECETEID FOR XML PATH(''ILAC_BILGISI''), TYPE
																/*s4 end*/
														  )/*p5 end*/
												    FROM VWRECETE
												    WHERE VWRECETE.HMUAYENEID = VWMUAYENEISL.HMUAYENEID FOR XML PATH(''RECETE_BILGISI''), TYPE
												    /*s3 end*/
								
												)/*p4 end*/ FOR XML PATH(''HASTA_RECETE_BILGILERI''), TYPE
										  /*s2 end*/
									  )/*p3 end*/
							END /*case end*/
					   /*s1 end*/
				)/*p2 end*/,
				
				(/*p2*/
					  SELECT/*s1*/
								(/*p3*/
								    SELECT 
										  CASE
										  WHEN
												(
												    SELECT HMSIKAYETI
												    FROM HMUAYENE
													    LEFT JOIN HMUAYENEISL ON HMUAYENEISL.HMUAYENEID = HMUAYENE.HMUAYENEID
												    WHERE HMUAYENEISL.HMUAYENEISLID = @MUAYENEISLID
												) IS NOT NULL
										  THEN
												(
												    SELECT 
														  ''Yakınması'' AS ''EPIKRIZ_BILGISI_BASLIK/@value'',
														  ISNULL((SELECT HMSIKAYETI FROM HMUAYENE LEFT JOIN HMUAYENEISL ON HMUAYENEISL.HMUAYENEID = HMUAYENE.HMUAYENEID WHERE						   HMUAYENEISL.HMUAYENEISLID = @MUAYENEISLID ), '''') 
																 AS ''EPIKRIZ_BILGISI_ACIKLAMA/@value'' FOR XML PATH (''EPIKRIZ_BILGISI''), TYPE
												)
										  END								    
								)/*p3 end*/,
								(/*p3*/
								    SELECT 
										  CASE
										  WHEN
												(
												    SELECT HMHKIKAYESI
												    FROM HMUAYENE
													    LEFT JOIN HMUAYENEISL ON HMUAYENEISL.HMUAYENEID = HMUAYENE.HMUAYENEID
												    WHERE HMUAYENEISL.HMUAYENEISLID = @MUAYENEISLID
												) IS NOT NULL
										  THEN
												(
												    SELECT 
														  ''Hikayesi'' AS ''EPIKRIZ_BILGISI_BASLIK/@value'',
														  ISNULL((SELECT HMHKIKAYESI FROM HMUAYENE LEFT JOIN HMUAYENEISL ON HMUAYENEISL.HMUAYENEID = HMUAYENE.HMUAYENEID
																WHERE HMUAYENEISL.HMUAYENEISLID = @MUAYENEISLID ), '''') 
																AS ''EPIKRIZ_BILGISI_ACIKLAMA/@value'' FOR XML PATH(''EPIKRIZ_BILGISI''), TYPE
												)
										  END
								)/*p3 end*/,
								(/*p3*/
								    SELECT 
										  CASE
										  WHEN
												(
												    SELECT HMMUAYENE
												    FROM HMUAYENE
													    LEFT JOIN HMUAYENEISL ON HMUAYENEISL.HMUAYENEID = HMUAYENE.HMUAYENEID
												    WHERE HMUAYENEISL.HMUAYENEISLID = @MUAYENEISLID
												) IS NOT NULL
										  THEN
												(
												    SELECT 
														  ''Fiziki Bakı'' AS ''EPIKRIZ_BILGISI_BASLIK/@value'',
														  ISNULL((SELECT HMMUAYENE FROM HMUAYENE LEFT JOIN HMUAYENEISL ON HMUAYENEISL.HMUAYENEID = HMUAYENE.HMUAYENEID WHERE						    HMUAYENEISL.HMUAYENEISLID = @MUAYENEISLID), '''') 
																  AS ''EPIKRIZ_BILGISI_ACIKLAMA/@value'' FOR XML PATH(''EPIKRIZ_BILGISI''), TYPE
												)
										  END
								)/*p3 end*/,
								(/*p3*/
								    SELECT 
										  CASE
										  WHEN 
											 ISNULL(
												    (
													   SELECT HMONERI
													   FROM HMUAYENE
														   LEFT JOIN HMUAYENEISL ON HMUAYENEISL.HMUAYENEID = HMUAYENE.HMUAYENEID
													   WHERE HMUAYENEISL.HMUAYENEISLID = @MUAYENEISLID
												    ), '''') IS NOT NULL
										  THEN
												    (
													   SELECT ''Öneri'' AS ''EPIKRIZ_BILGISI_BASLIK/@value'',
															ISNULL(
												    (
													   SELECT HMONERI
													   FROM HMUAYENE
														   LEFT JOIN HMUAYENEISL ON HMUAYENEISL.HMUAYENEID = HMUAYENE.HMUAYENEID
													   WHERE HMUAYENEISL.HMUAYENEISLID = @MUAYENEISLID
												    ), '''') AS ''EPIKRIZ_BILGISI_ACIKLAMA/@value'' FOR XML PATH(''EPIKRIZ_BILGISI''), TYPE
												    )
										 END
								)/*p3 end*/,
								(/*p3*/
								    SELECT 
										  CASE
										  WHEN
												(
												    SELECT HMSONUC
												    FROM HMUAYENE
													    LEFT JOIN HMUAYENEISL ON HMUAYENEISL.HMUAYENEID = HMUAYENE.HMUAYENEID
												    WHERE HMUAYENEISL.HMUAYENEISLID = @MUAYENEISLID
												) IS NOT NULL
										  THEN
												(
												    SELECT ''Sonuç'' AS ''EPIKRIZ_BILGISI_BASLIK/@value'',
														 ISNULL(
												(
												    SELECT HMSONUC
												    FROM HMUAYENE
													    LEFT JOIN HMUAYENEISL ON HMUAYENEISL.HMUAYENEID = HMUAYENE.HMUAYENEID
												    WHERE HMUAYENEISL.HMUAYENEISLID = @MUAYENEISLID
												), '''') AS ''EPIKRIZ_BILGISI_ACIKLAMA/@value'' FOR XML PATH(''EPIKRIZ_BILGISI''), TYPE
												)
										 END
								)/*p3 end*/,
								(/*p3*/
								    SELECT 
										  CASE
										  WHEN 
												EXISTS
												    (
													   SELECT HDOSYAICD.ICDKOD,
															ICDADI
													   FROM HDOSYAICD
														   INNER JOIN TICD ON TICD.ICDKOD = HDOSYAICD.ICDKOD
													   WHERE HDOSYAICD.HMUAYENEID = VWMUAYENEISL.HMUAYENEID
														    AND VWMUAYENEISL.HMUAYENEISLID = @MUAYENEISLID
												    )
											THEN
												    (
													   SELECT ''1'' AS ''ICD10/@version'',
															''c3eaabad-8c4c-56ee-e043-14031b0a5530'' AS ''ICD10/@codeSystemGuid'',
															ISNULL(CONVERT(VARCHAR(20), HDOSYAICD.ICDKOD), '''') AS ''ICD10/@code'',
															ISNULL(TICD.ICDADI, '''') AS ''ICD10/@value''
													   FROM HDOSYAICD
														   INNER JOIN TICD ON TICD.ICDKOD = HDOSYAICD.ICDKOD
													   WHERE HDOSYAICD.HMUAYENEID = VWMUAYENEISL.HMUAYENEID
														    AND VWMUAYENEISL.HMUAYENEISLID = @MUAYENEISLID FOR XML PATH(''TANI_BILGISI''), TYPE
												    )
											END
								)/*p3 end*/ FOR XML PATH(''MUAYENE_BILGILERI''), TYPE
				    )/*p2 end*/ FOR XML PATH(''recordData''), TYPE
	   )/*p1 end*/
FROM VWMUAYENEISL(NOLOCK)
	   JOIN SUBELER(NOLOCK) ON SUBELER.SUBEID = VWMUAYENEISL.SUBEID
WHERE VWMUAYENEISL.HMUAYENEISLID = @MUAYENEISLID
	   AND CONVERT(VARCHAR, SUBELER.SUBEID) = @SUBEID FOR XML PATH(''''), ROOT(''SYSMessage'')
/*END*/--SILMEYIN ONEMLI
END', N'DECLARE @XML1 XML
DECLARE @XML2 VARCHAR(MAX)
DECLARE @XML3 XML
DECLARE @SNOTakipNo VARCHAR(20)
DECLARE @SONUCKODU VARCHAR(20)
DECLARE @SERVISENTEGRASYONID INT = ''#SERVISENTEGRASYONID#''
DECLARE @SONUCMESAJI VARCHAR(1000)
SET @SNOTakipNo = ''''
SET @XML1 = ''''
SET @XML2 = ''''
SET @XML3 = ''''
SET @XML1 = (SELECT CEVAPXML FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID)
SET @XML2 = (SELECT @XML1.value (''declare namespace s =  "http://schemas.xmlsoap.org/soap/envelope/"; (/s:Envelope/s:Body/*)[1]'',''varchar(4000)'') AS id)
   --GET SNOTAKIPNO 
    SET @XML3 = (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SNOTakipNo = (SELECT T.C.value(''@value'', ''varchar(100)'') AS SNOTakipNo
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/SYSTakipNo)'') AS T(C))
	
	--GET SONUCKODU FOR HATA IF ANY 
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCKODU = (SELECT T.C.value(''@value'', ''varchar(100)'') AS SNOTakipNo
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucKodu)'') AS T(C))
		--GET SONUCMESAJI
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCMESAJI = (SELECT T.C.value(''@value'', ''varchar(1000)'') AS SONUCMESAJI
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucMesaji)'') AS T(C))
	SELECT @SNOTakipNo
	SELECT HMISL.SNOTAKIPNO FROM HMUAYENEISL HMISL JOIN SERVISENTEGRASYON SE ON SE.KAYITID  = HMISL.HMUAYENEISLID  WHERE SE.ID = @SERVISENTEGRASYONID
	SELECT HMISL.SNOTAKIPNO FROM HMUAYENEISL HMISL JOIN SERVISENTEGRASYON SE ON   SE.KAYITID=HMISL.HMUAYENEISLID   WHERE SE.ID = @SERVISENTEGRASYONID
	IF  @SONUCKODU = ''S0000'' AND @SNOTakipNo IS NOT NULL 
		/*AND  (@SNOTakipNo <> (SELECT HMISL.SNOTAKIPNO FROM HMUAYENEISL HMISL JOIN SERVISENTEGRASYON SE ON SE.KAYITID  = HMISL.HMUAYENEISLID  WHERE SE.ID = @SERVISENTEGRASYONID) 
	    OR  (SELECT HMISL.SNOTAKIPNO FROM HMUAYENEISL HMISL JOIN SERVISENTEGRASYON SE ON   SE.KAYITID=HMISL.HMUAYENEISLID   WHERE SE.ID = @SERVISENTEGRASYONID) IS NULL)*/
	BEGIN
			UPDATE SERVISENTEGRASYON SET DURUM=1,DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1,CEVAPZAMANI=GETDATE() WHERE ID=@SERVISENTEGRASYONID
			UPDATE HMUAYENEISL SET HMUAYENEISL.SNOMUAYENEGONDERILDI = 1 FROM HMUAYENEISL JOIN SERVISENTEGRASYON SE ON SE.KAYITID = HMUAYENEISL.HMUAYENEISLID WHERE SE.ID = @SERVISENTEGRASYONID
	END
	ELSE
		BEGIN
		UPDATE SERVISENTEGRASYON SET DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1 WHERE ID=@SERVISENTEGRASYONID

		INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, SERVISENTEGRASYONID, SONUCKODU, HATA, TARIH) SELECT SERVISGONDERIMFONKSIYONADI, SERVISENTEGRASYON.SUBEID, KAYITID, ID, @SONUCKODU, VWMUAYENEISL.HADI+ '' ''+ VWMUAYENEISL.HSOYADI+ '' isimli hasta. Doktor:''+VWMUAYENEISL.UYGDRADI +'' Bölüm:''+VWMUAYENEISL.UYGBOLUM +'' Muayene Tarihi:''+CONVERT(VARCHAR,VWMUAYENEISL.ITARIH)+'' Uss Kayıt cevabı:''+@SONUCMESAJI, GETDATE() FROM SERVISENTEGRASYON JOIN VWMUAYENEISL ON VWMUAYENEISL.HMUAYENEISLID=SERVISENTEGRASYON.KAYITID WHERE ID = @SERVISENTEGRASYONID AND 0=(SELECT COUNT(*) FROM SERVISENTEGRASYONHATALARI WHERE SERVISENTEGRASYONID = @SERVISENTEGRASYONID)
	END
	
	IF @SONUCKODU = ''E2020''
		BEGIN			
			UPDATE HMUAYENEISL SET HMUAYENEISL.SNOMUAYENEGONDERILDI = 0 FROM HMUAYENEISL JOIN SERVISENTEGRASYON SE ON SE.KAYITID = HMUAYENEISL.HMUAYENEISLID WHERE SE.ID = @SERVISENTEGRASYONID
		END', N'', N'1day', 7)
GO
INSERT [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI], [SERVISTIPI], [KAYITTABLOADI], [KAYITALANADI], [GONDERILECEKLERISECSORGU], [ISTEKSQL], [CEVAPSQL], [NOTLAR], [GONDERIMPERYODU], [ONCELIK]) VALUES (N'NOBETCI_PERSONEL_BILGISI_KAYIT_BUGUN', 1, NULL, NULL, N'SELECT ''1''+CONVERT(VARCHAR, LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),GETDATE(),120),'' '',''''),''-'',''''),'':'',''''),8)) AS TABLOID,
       SUBEID
FROM SUBELER', N'DECLARE @SUBEID VARCHAR(10)=  ''#SUBEID#'' --1
DECLARE @Peryot VARCHAR(20)= ''BUGUN'' -- ''BUGUN'',''YARIN'',''HAFTALIK''
DECLARE @STARTDATE DATETIME
DECLARE @ENDDATE DATETIME
DECLARE @KLINIKKODU nvarchar(12)
DECLARE @KLINIKKODUBOLUM nvarchar(12)
DECLARE @NOBETBASTARIH DATETIME
DECLARE @DRNOBETID INT
DECLARE @HATA NVARCHAR(2000) =''''
IF
(
    SELECT COUNT(*) FROM SUBELER WHERE SUBEID = @SUBEID
) = 0
BEGIN
    SET @HATA = ''İşlemin şube kaydı bulunamadı!''
END
IF @Peryot = ''BUGUN'' 
BEGIN
    SET @STARTDATE = convert(datetime,convert(varchar(8),getdate(),112))
    SET @ENDDATE = convert(datetime,convert(varchar(8),DATEADD(DAY,1,getdate()),112))
END
IF @Peryot = ''YARIN'' 
BEGIN
    SET @STARTDATE = convert(datetime,convert(varchar(8),DATEADD(DAY,1,getdate()),112))
    SET @ENDDATE = convert(datetime,convert(varchar(8),DATEADD(DAY,2,getdate()),112))
END
IF @Peryot = ''HAFTALIK'' 
BEGIN
    SET @STARTDATE = convert(datetime,convert(varchar(8),DATEADD(DAY, 2-DATEPART(WEEKDAY, GETDATE()), GETDATE()),112))
    SET @ENDDATE = DATEADD(DAY,7,@STARTDATE)   
END
IF @Peryot = ''HAFTALIK''
BEGIN
    DECLARE CUR CURSOR FOR
    SELECT  DRNOBET.DRNOBETID,TBOLUM.KLINIKKODU, TKLINIK.KLINIKKODU, NOBETBASTARIH
    FROM        DRNOBET WITH(NOLOCK)
		  INNER JOIN TDRKIMLIK WITH(NOLOCK) ON TDRKIMLIK.DRID = DRNOBET.DRID
		  INNER JOIN TDRUZMANLIK WITH(NOLOCK) ON TDRUZMANLIK.DRUZMANLIKID = TDRKIMLIK.DRUZMANLIKID
		  INNER JOIN TBOLUM WITH(NOLOCK) ON TBOLUM.BOLUMID = TDRKIMLIK.BOLUMID
		  LEFT JOIN  TKLINIK WITH(NOLOCK) ON TKLINIK.KLINIKKODU=TBOLUM.KLINIKKODU
    WHERE NOBETBASTARIH < @ENDDATE and NOBETBITTARIH >= @STARTDATE AND DRNOBET.SUBEID = @SUBEID
END
ELSE
BEGIN
    DECLARE CUR CURSOR FOR
    SELECT  DRNOBET.DRNOBETID,TBOLUM.KLINIKKODU, TKLINIK.KLINIKKODU, NOBETBASTARIH
    FROM        DRNOBET WITH(NOLOCK)
		  INNER JOIN TDRKIMLIK WITH(NOLOCK) ON TDRKIMLIK.DRID = DRNOBET.DRID
		  INNER JOIN TDRUZMANLIK WITH(NOLOCK) ON TDRUZMANLIK.DRUZMANLIKID = TDRKIMLIK.DRUZMANLIKID
		  INNER JOIN TBOLUM WITH(NOLOCK) ON TBOLUM.BOLUMID = TDRKIMLIK.BOLUMID
		  LEFT JOIN  TKLINIK WITH(NOLOCK) ON TKLINIK.KLINIKKODU=TBOLUM.KLINIKKODU
    WHERE NOBETBASTARIH < @ENDDATE and NOBETBITTARIH >= @STARTDATE AND DRNOBET.SUBEID = @SUBEID
END
OPEN CUR  
FETCH NEXT FROM CUR INTO @DRNOBETID,@KLINIKKODUBOLUM,@KLINIKKODU,@NOBETBASTARIH
IF @@CURSOR_ROWS=0 
    BEGIN
	   SET @HATA = @HATA + '' '' + CONVERT(VARCHAR,@STARTDATE)+''-''+CONVERT(VARCHAR,@ENDDATE)+'' tarihleri arasında ''+@Peryot+'' için personel nöbet listesi girişleri yapılmamış.''
    END
WHILE @@FETCH_STATUS = 0  
BEGIN 
    
    IF (@NOBETBASTARIH IS NULL)
	   SET @HATA=@HATA+ CONVERT(VARCHAR,@DRNOBETID) +'' Numaralı kaydın nöbet başlangıç tarih saati girilmemiş.''
    IF RTRIM(ISNULL(@KLINIKKODU,''''))='''' 
	   BEGIN
		  SET @HATA=@HATA+@KLINIKKODUBOLUM + '' Klinik kaydı bulunamadı.''
	   END
FETCH NEXT FROM CUR INTO @DRNOBETID,@KLINIKKODUBOLUM,@KLINIKKODU,@NOBETBASTARIH
END
CLOSE CUR  
DEALLOCATE CUR 
IF @HATA<>''''
BEGIN
    IF NOT EXISTS(SELECT ID FROM SERVISENTEGRASYONHATALARI WHERE SERVISGONDERIMFONKSIYONADI=''NOBETCI_PERSONEL_BILGISI_KAYIT_BUGUN'' AND KAYITID=@Peryot AND SUBEID=@SUBEID AND HATA=@HATA AND TARIH>DATEADD(DAY,-2,GETDATE()))
    INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI,SUBEID,KAYITID,HATA,TARIH) VALUES (''NOBETCI_PERSONEL_BILGISI_KAYIT_BUGUN'',@SUBEID,@Peryot,@HATA,GETDATE())
END
ELSE
BEGIN
/*START*/--SILMEYIN ONEMLI
SELECT 
    NEWID() as ''messageGuid/@value'',
    ''1'' as ''messageType/@version'',
    ''0a9ba485-e7e0-4abb-9c86-0a14fd364bb8'' as ''messageType/@codeSystemGuid'',
    ''260'' as ''messageType/@code'',
    ''Nöbetci Personel Bilgisi Kayıt'' 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'',
		  ISNULL((SELECT VALUESTR FROM CONFIG WHERE SECTIONSTR=''Saglik-Net'' AND PROGNAME=''MEDISOFT'' AND KEYNAME= @SUBEID+'' numaralı şubenin kurum numarası''),'''') as ''healthcareProvider/@code'',
		  SUBELER.SUBEADI as ''healthcareProvider/@value''  
		  FOR XML PATH(''author''), TYPE
    ),
    ''C740D0288ED4C45FE0407C0A04162BDD'' as ''firmaKodu/@value'',                 
    (
	   SELECT 
		  CONVERT(VARCHAR(8), @STARTDATE, 112) + ''0000'' as ''Tarih/@value'',
		  ''1'' as ''KAYIT_YERI/@version'',
		  ''c3eade04-4f91-5dab-e043-14031b0ac9f9'' as ''KAYIT_YERI/@codeSystemGuid'',
		  CONFIG.VALUESTR as ''KAYIT_YERI/@code'',
		  SUBELER.SUBEADI as ''KAYIT_YERI/@value'',
		  (
			 SELECT 
				ISNULL(TD.DRTCKIMLIKNO,'''') as ''PERSONEL_KIMLIK_NUMARASI/@value'',
				''1'' as ''KLINIK_KODU/@version'',
				''c04bee57-c5d4-443d-e040-7b0a6f146a3d'' as ''KLINIK_KODU/@codeSystemGuid'',
				ISNULL(TKLINIK.KLINIKKODU,'''') as ''KLINIK_KODU/@code'',
				ISNULL(TKLINIK.KLINIKADI,'''') as ''KLINIK_KODU/@value'',
				''1'' as ''GOREV_TURU/@version'',
				''21cf297c-ccaa-4ae4-98f7-e39a0121bcbb'' as ''GOREV_TURU/@codeSystemGuid'',                                                 
				CASE WHEN DRNOBET.ICAPCI=1 THEN 2 ELSE 1 END as ''GOREV_TURU/@code'',
				ISNULL((SELECT CASE 
						  WHEN DRNOBET.ICAPCI=1
							 THEN  ''ICAP''
						  else      ''NÖBET''
						  END
				),'''') as ''GOREV_TURU/@value'',
				''1'' as ''PERSONEL_GOREV_KODU/@version'',
				''c1dcdc84-b1a4-401b-8db3-1eb20afaaa74'' as ''PERSONEL_GOREV_KODU/@codeSystemGuid'',                                                
				ISNULL((SELECT CASE  
						  WHEN TD.BASHEKIM = 1
							 THEN 1
						  WHEN TD.BASHEKIMYARDIMCISI = 1
							 THEN 2
						  WHEN TBOLUM.ACILSERVIS = 1
							 THEN 3
						  ELSE
								4
						  END
				),'''') as ''PERSONEL_GOREV_KODU/@code'',
				ISNULL((SELECT CASE  
						  WHEN TD.BASHEKIM = 1
							 THEN ''BAŞHEKIM''
						  WHEN TD.BASHEKIMYARDIMCISI = 1
							 THEN ''BAŞHEKIM YARDIMCISI''
						  WHEN TBOLUM.ACILSERVIS = 1
							 THEN ''ACIL SERVIS SORUMLU HEKIM''
						  ELSE
								''HEKIM''
						  END
				),'''') as ''PERSONEL_GOREV_KODU/@value'',                    
				LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),DRNOBET.NOBETBASTARIH,120),'' '',''''),''-'',''''),'':'',''''),12) as ''NOBET_BASLANGIC_TARIHI/@value'',
				LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),DRNOBET.NOBETBITTARIH,120),'' '',''''),''-'',''''),'':'',''''),12) as ''NOBET_BITIS_TARIHI/@value'',
				ISNULL(TD.DRTEL1, '''') as ''TELEFON_NUMARASI/@value''
				--ISNULL(TD.DRTEL1, '''') as ''TELEFON_NUMARASI2/@value''           
			 FROM DRNOBET WITH(NOLOCK)
				JOIN TDRKIMLIK TD WITH(NOLOCK) ON TD.DRID = DRNOBET.DRID
				LEFT JOIN TBOLUM WITH(NOLOCK) ON TD.BOLUMID = TBOLUM.BOLUMID
				JOIN TKLINIK WITH(NOLOCK) ON TBOLUM.KLINIKKODU = TKLINIK.KLINIKKODU                         
			 WHERE NOBETBASTARIH < @ENDDATE 
				    AND NOBETBITTARIH >= @STARTDATE
				    AND DRNOBET.NOBETBASTARIH IS NOT NULL
				    AND TD.SUBEID = SUBELER.SUBEID
			 FOR XML PATH(''NOBETCI_PERSONEL_BILGILERI''), TYPE
		  )
                        
		  FOR XML PATH(''NOBETCI_PERSONEL_BILGISI''),ROOT(''recordData''), TYPE
    )    
FROM SUBELER WITH(NOLOCK)
    LEFT JOIN CONFIG WITH(NOLOCK) ON KEYNAME = CAST(SUBELER.SUBEID AS VARCHAR) +'' numaralı şubenin kurum numarası''
WHERE SUBELER.SUBEID = @SUBEID
FOR XML PATH (''''), ROOT(''SYSMessage'')
/*END*/--SILMEYIN ONEMLI
END
', N'DECLARE @SERVISENTEGRASYONID INT
DECLARE @XML1 XML
DECLARE @XML2 VARCHAR(MAX)
DECLARE @XML3 XML
DECLARE @SONUCKODU VARCHAR(20)
DECLARE @SONUCMESAJI VARCHAR(100)
SET @SERVISENTEGRASYONID = ''#SERVISENTEGRASYONID#''
SET @XML1 = ''''
SET @XML2 = ''''
SET @XML3 = ''''
SET @XML1 = (SELECT CEVAPXML FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID)
SET @XML2 = (SELECT @XML1.value (''declare namespace s =  "http://schemas.xmlsoap.org/soap/envelope/"; (/s:Envelope/s:Body/*)[1]'',''varchar(4000)'') AS id)
	--GET SONUCKODU FOR HATA IF ANY 
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCKODU = (SELECT T.C.value(''@value'', ''varchar(100)'') AS SONUCKODU
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucKodu)'') AS T(C))
	--GET SONUCMESAJI
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCMESAJI = (SELECT T.C.value(''@value'', ''varchar(1000)'') AS SONUCMESAJI
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucMesaji)'') AS T(C))
	IF	@SONUCKODU = ''S0000''  
	BEGIN
		
		UPDATE SERVISENTEGRASYON SET DURUM=1,DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1,CEVAPZAMANI=GETDATE() WHERE ID=@SERVISENTEGRASYONID
	END
	ELSE
	 BEGIN			
		UPDATE SERVISENTEGRASYON SET DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1 WHERE ID=@SERVISENTEGRASYONID

		INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, SERVISENTEGRASYONID, SONUCKODU, HATA, TARIH) SELECT SERVISGONDERIMFONKSIYONADI, SERVISENTEGRASYON.SUBEID, KAYITID, ID, @SONUCKODU, @SONUCMESAJI, GETDATE() FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID AND 0=(SELECT COUNT(*) FROM SERVISENTEGRASYONHATALARI WHERE SERVISENTEGRASYONID = @SERVISENTEGRASYONID)
	END', N'', N'6hour', 10)
GO
INSERT [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI], [SERVISTIPI], [KAYITTABLOADI], [KAYITALANADI], [GONDERILECEKLERISECSORGU], [ISTEKSQL], [CEVAPSQL], [NOTLAR], [GONDERIMPERYODU], [ONCELIK]) VALUES (N'NOBETCI_PERSONEL_BILGISI_KAYIT_HAFTALIK', 1, NULL, NULL, N'SELECT ''7''+CONVERT(VARCHAR, LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),GETDATE(),120),'' '',''''),''-'',''''),'':'',''''),8)) AS TABLOID,
       SUBEID
FROM SUBELER', N'DECLARE @SUBEID VARCHAR(10)=  ''#SUBEID#'' --1
DECLARE @Peryot VARCHAR(20)= ''HAFTALIK'' -- ''BUGUN'',''YARIN'',''HAFTALIK''
DECLARE @STARTDATE DATETIME
DECLARE @ENDDATE DATETIME
DECLARE @KLINIKKODU nvarchar(12)
DECLARE @KLINIKKODUBOLUM nvarchar(12)
DECLARE @NOBETBASTARIH DATETIME
DECLARE @DRNOBETID INT
DECLARE @HATA NVARCHAR(2000) =''''
IF
(
    SELECT COUNT(*) FROM SUBELER WHERE SUBEID = @SUBEID
) = 0
BEGIN
    SET @HATA = ''İşlemin şube kaydı bulunamadı!''
END
IF @Peryot = ''BUGUN'' 
BEGIN
    SET @STARTDATE = convert(datetime,convert(varchar(8),getdate(),112))
    SET @ENDDATE = convert(datetime,convert(varchar(8),DATEADD(DAY,1,getdate()),112))
END
IF @Peryot = ''YARIN'' 
BEGIN
    SET @STARTDATE = convert(datetime,convert(varchar(8),DATEADD(DAY,1,getdate()),112))
    SET @ENDDATE = convert(datetime,convert(varchar(8),DATEADD(DAY,2,getdate()),112))
END
IF @Peryot = ''HAFTALIK'' 
BEGIN
    SET @STARTDATE = convert(datetime,convert(varchar(8),DATEADD(DAY, 2-DATEPART(WEEKDAY, GETDATE()), GETDATE()),112))
    SET @ENDDATE = DATEADD(DAY,7,@STARTDATE)   
END
IF @Peryot = ''HAFTALIK''
BEGIN
    DECLARE CUR CURSOR FOR
    SELECT  DRNOBET.DRNOBETID,TBOLUM.KLINIKKODU, TKLINIK.KLINIKKODU, NOBETBASTARIH
    FROM        DRNOBET WITH(NOLOCK)
		  INNER JOIN TDRKIMLIK WITH(NOLOCK) ON TDRKIMLIK.DRID = DRNOBET.DRID
		  INNER JOIN TDRUZMANLIK WITH(NOLOCK) ON TDRUZMANLIK.DRUZMANLIKID = TDRKIMLIK.DRUZMANLIKID
		  INNER JOIN TBOLUM WITH(NOLOCK) ON TBOLUM.BOLUMID = TDRKIMLIK.BOLUMID
		  LEFT JOIN  TKLINIK WITH(NOLOCK) ON TKLINIK.KLINIKKODU=TBOLUM.KLINIKKODU
    WHERE NOBETBASTARIH < @ENDDATE and NOBETBITTARIH >= @STARTDATE AND DRNOBET.SUBEID = @SUBEID
END
ELSE
BEGIN
    DECLARE CUR CURSOR FOR
    SELECT  DRNOBET.DRNOBETID,TBOLUM.KLINIKKODU, TKLINIK.KLINIKKODU, NOBETBASTARIH
    FROM        DRNOBET WITH(NOLOCK)
		  INNER JOIN TDRKIMLIK WITH(NOLOCK) ON TDRKIMLIK.DRID = DRNOBET.DRID
		  INNER JOIN TDRUZMANLIK WITH(NOLOCK) ON TDRUZMANLIK.DRUZMANLIKID = TDRKIMLIK.DRUZMANLIKID
		  INNER JOIN TBOLUM WITH(NOLOCK) ON TBOLUM.BOLUMID = TDRKIMLIK.BOLUMID
		  LEFT JOIN  TKLINIK WITH(NOLOCK) ON TKLINIK.KLINIKKODU=TBOLUM.KLINIKKODU
    WHERE NOBETBASTARIH < @ENDDATE and NOBETBITTARIH >= @STARTDATE AND DRNOBET.SUBEID = @SUBEID
END
OPEN CUR  
FETCH NEXT FROM CUR INTO @DRNOBETID,@KLINIKKODUBOLUM,@KLINIKKODU,@NOBETBASTARIH
IF @@CURSOR_ROWS=0 
    BEGIN
	   SET @HATA = @HATA + '' '' + CONVERT(VARCHAR,@STARTDATE)+''-''+CONVERT(VARCHAR,@ENDDATE)+'' tarihleri arasında ''+@Peryot+'' için personel nöbet listesi girişleri yapılmamış.''
    END
WHILE @@FETCH_STATUS = 0  
BEGIN 
    
    IF (@NOBETBASTARIH IS NULL)
	   SET @HATA=@HATA+ CONVERT(VARCHAR,@DRNOBETID) +'' Numaralı kaydın nöbet başlangıç tarih saati girilmemiş.''
    IF RTRIM(ISNULL(@KLINIKKODU,''''))='''' 
	   BEGIN
		  SET @HATA=@HATA+@KLINIKKODUBOLUM + '' Klinik kaydı bulunamadı.''
	   END
FETCH NEXT FROM CUR INTO @DRNOBETID,@KLINIKKODUBOLUM,@KLINIKKODU,@NOBETBASTARIH
END
CLOSE CUR  
DEALLOCATE CUR 
IF @HATA<>''''
BEGIN
    IF NOT EXISTS(SELECT ID FROM SERVISENTEGRASYONHATALARI WHERE SERVISGONDERIMFONKSIYONADI=''NOBETCI_PERSONEL_BILGISI_KAYIT_HAFTALIK'' AND KAYITID=@Peryot AND SUBEID=@SUBEID AND HATA=@HATA AND TARIH>DATEADD(DAY,-2,GETDATE()))
    INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI,SUBEID,KAYITID,HATA,TARIH) VALUES (''NOBETCI_PERSONEL_BILGISI_KAYIT_HAFTALIK'',@SUBEID,@Peryot,@HATA,GETDATE())
END
ELSE
BEGIN
/*START*/--SILMEYIN ONEMLI
SELECT 
    NEWID() as ''messageGuid/@value'',
    ''1'' as ''messageType/@version'',
    ''0a9ba485-e7e0-4abb-9c86-0a14fd364bb8'' as ''messageType/@codeSystemGuid'',
    ''260'' as ''messageType/@code'',
    ''Nöbetci Personel Bilgisi Kayıt'' 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'',
		  ISNULL((SELECT VALUESTR FROM CONFIG WHERE SECTIONSTR=''Saglik-Net'' AND PROGNAME=''MEDISOFT'' AND KEYNAME= @SUBEID+'' numaralı şubenin kurum numarası''),'''') as ''healthcareProvider/@code'',
		  SUBELER.SUBEADI as ''healthcareProvider/@value''  
		  FOR XML PATH(''author''), TYPE
    ),
    ''C740D0288ED4C45FE0407C0A04162BDD'' as ''firmaKodu/@value'',                 
    (
	   SELECT 
		  CONVERT(VARCHAR(8), @STARTDATE, 112) + ''0000'' as ''Tarih/@value'',
		  ''1'' as ''KAYIT_YERI/@version'',
		  ''c3eade04-4f91-5dab-e043-14031b0ac9f9'' as ''KAYIT_YERI/@codeSystemGuid'',
		  CONFIG.VALUESTR as ''KAYIT_YERI/@code'',
		  SUBELER.SUBEADI as ''KAYIT_YERI/@value'',
		  (
			 SELECT 
				ISNULL(TD.DRTCKIMLIKNO,'''') as ''PERSONEL_KIMLIK_NUMARASI/@value'',
				''1'' as ''KLINIK_KODU/@version'',
				''c04bee57-c5d4-443d-e040-7b0a6f146a3d'' as ''KLINIK_KODU/@codeSystemGuid'',
				ISNULL(TKLINIK.KLINIKKODU,'''') as ''KLINIK_KODU/@code'',
				ISNULL(TKLINIK.KLINIKADI,'''') as ''KLINIK_KODU/@value'',
				''1'' as ''GOREV_TURU/@version'',
				''21cf297c-ccaa-4ae4-98f7-e39a0121bcbb'' as ''GOREV_TURU/@codeSystemGuid'',                                                 
				CASE WHEN DRNOBET.ICAPCI=1 THEN 2 ELSE 1 END as ''GOREV_TURU/@code'',
				ISNULL((SELECT CASE 
						  WHEN DRNOBET.ICAPCI=1
							 THEN  ''ICAP''
						  else      ''NÖBET''
						  END
				),'''') as ''GOREV_TURU/@value'',
				''1'' as ''PERSONEL_GOREV_KODU/@version'',
				''c1dcdc84-b1a4-401b-8db3-1eb20afaaa74'' as ''PERSONEL_GOREV_KODU/@codeSystemGuid'',                                                
				ISNULL((SELECT CASE  
						  WHEN TD.BASHEKIM = 1
							 THEN 1
						  WHEN TD.BASHEKIMYARDIMCISI = 1
							 THEN 2
						  WHEN TBOLUM.ACILSERVIS = 1
							 THEN 3
						  ELSE
								4
						  END
				),'''') as ''PERSONEL_GOREV_KODU/@code'',
				ISNULL((SELECT CASE  
						  WHEN TD.BASHEKIM = 1
							 THEN ''BAŞHEKIM''
						  WHEN TD.BASHEKIMYARDIMCISI = 1
							 THEN ''BAŞHEKIM YARDIMCISI''
						  WHEN TBOLUM.ACILSERVIS = 1
							 THEN ''ACIL SERVIS SORUMLU HEKIM''
						  ELSE
								''HEKIM''
						  END
				),'''') as ''PERSONEL_GOREV_KODU/@value'',                    
				LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),DRNOBET.NOBETBASTARIH,120),'' '',''''),''-'',''''),'':'',''''),12) as ''NOBET_BASLANGIC_TARIHI/@value'',
				LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),DRNOBET.NOBETBITTARIH,120),'' '',''''),''-'',''''),'':'',''''),12) as ''NOBET_BITIS_TARIHI/@value'',
				ISNULL(TD.DRTEL1, '''') as ''TELEFON_NUMARASI/@value''
				--ISNULL(TD.DRTEL1, '''') as ''TELEFON_NUMARASI2/@value''           
			 FROM DRNOBET WITH(NOLOCK)
				JOIN TDRKIMLIK TD WITH(NOLOCK) ON TD.DRID = DRNOBET.DRID
				LEFT JOIN TBOLUM WITH(NOLOCK) ON TD.BOLUMID = TBOLUM.BOLUMID
				JOIN TKLINIK WITH(NOLOCK) ON TBOLUM.KLINIKKODU = TKLINIK.KLINIKKODU                         
			 WHERE NOBETBASTARIH < @ENDDATE 
				    AND NOBETBITTARIH >= @STARTDATE
				    AND DRNOBET.NOBETBASTARIH IS NOT NULL
				    AND TD.SUBEID = SUBELER.SUBEID
			 FOR XML PATH(''NOBETCI_PERSONEL_BILGILERI''), TYPE
		  )
                        
		  FOR XML PATH(''NOBETCI_PERSONEL_BILGISI''),ROOT(''recordData''), TYPE
    )    
FROM SUBELER WITH(NOLOCK)
    LEFT JOIN CONFIG WITH(NOLOCK) ON KEYNAME = CAST(SUBELER.SUBEID AS VARCHAR) +'' numaralı şubenin kurum numarası''
WHERE SUBELER.SUBEID = @SUBEID
FOR XML PATH (''''), ROOT(''SYSMessage'')
/*END*/--SILMEYIN ONEMLI
END
', N'DECLARE @SERVISENTEGRASYONID INT
DECLARE @XML1 XML
DECLARE @XML2 VARCHAR(MAX)
DECLARE @XML3 XML
DECLARE @SONUCKODU VARCHAR(20)
DECLARE @SONUCMESAJI VARCHAR(100)
SET @SERVISENTEGRASYONID = ''#SERVISENTEGRASYONID#''
SET @XML1 = ''''
SET @XML2 = ''''
SET @XML3 = ''''
SET @XML1 = (SELECT CEVAPXML FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID)
SET @XML2 = (SELECT @XML1.value (''declare namespace s =  "http://schemas.xmlsoap.org/soap/envelope/"; (/s:Envelope/s:Body/*)[1]'',''varchar(4000)'') AS id)
	--GET SONUCKODU FOR HATA IF ANY 
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCKODU = (SELECT T.C.value(''@value'', ''varchar(100)'') AS SONUCKODU
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucKodu)'') AS T(C))
	--GET SONUCMESAJI
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCMESAJI = (SELECT T.C.value(''@value'', ''varchar(1000)'') AS SONUCMESAJI
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucMesaji)'') AS T(C))
	IF	@SONUCKODU = ''S0000''  
	BEGIN
		
		UPDATE SERVISENTEGRASYON SET DURUM=1,DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1,CEVAPZAMANI=GETDATE() WHERE ID=@SERVISENTEGRASYONID
	END
	ELSE
	 BEGIN			
		UPDATE SERVISENTEGRASYON SET DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1 WHERE ID=@SERVISENTEGRASYONID

		INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, SERVISENTEGRASYONID, SONUCKODU, HATA, TARIH) SELECT SERVISGONDERIMFONKSIYONADI, SERVISENTEGRASYON.SUBEID, KAYITID, ID, @SONUCKODU, @SONUCMESAJI, GETDATE() FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID AND 0=(SELECT COUNT(*) FROM SERVISENTEGRASYONHATALARI WHERE SERVISENTEGRASYONID = @SERVISENTEGRASYONID)
	END', N'', N'6hour', 10)
GO
INSERT [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI], [SERVISTIPI], [KAYITTABLOADI], [KAYITALANADI], [GONDERILECEKLERISECSORGU], [ISTEKSQL], [CEVAPSQL], [NOTLAR], [GONDERIMPERYODU], [ONCELIK]) VALUES (N'NOBETCI_PERSONEL_BILGISI_KAYIT_YARIN', 1, NULL, NULL, N'SELECT ''2''+CONVERT(VARCHAR, LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),GETDATE(),120),'' '',''''),''-'',''''),'':'',''''),8)) AS TABLOID,
       SUBEID
FROM SUBELER', N'DECLARE @SUBEID VARCHAR(10)=  ''#SUBEID#'' --1
DECLARE @Peryot VARCHAR(20)= ''YARIN'' -- ''BUGUN'',''YARIN'',''HAFTALIK''
DECLARE @STARTDATE DATETIME
DECLARE @ENDDATE DATETIME
DECLARE @KLINIKKODU nvarchar(12)
DECLARE @KLINIKKODUBOLUM nvarchar(12)
DECLARE @NOBETBASTARIH DATETIME
DECLARE @DRNOBETID INT
DECLARE @HATA NVARCHAR(2000) =''''
IF
(
    SELECT COUNT(*) FROM SUBELER WHERE SUBEID = @SUBEID
) = 0
BEGIN
    SET @HATA = ''İşlemin şube kaydı bulunamadı!''
END
IF @Peryot = ''BUGUN'' 
BEGIN
    SET @STARTDATE = convert(datetime,convert(varchar(8),getdate(),112))
    SET @ENDDATE = convert(datetime,convert(varchar(8),DATEADD(DAY,1,getdate()),112))
END
IF @Peryot = ''YARIN'' 
BEGIN
    SET @STARTDATE = convert(datetime,convert(varchar(8),DATEADD(DAY,1,getdate()),112))
    SET @ENDDATE = convert(datetime,convert(varchar(8),DATEADD(DAY,2,getdate()),112))
END
IF @Peryot = ''HAFTALIK'' 
BEGIN
    SET @STARTDATE = convert(datetime,convert(varchar(8),DATEADD(DAY, 2-DATEPART(WEEKDAY, GETDATE()), GETDATE()),112))
    SET @ENDDATE = DATEADD(DAY,7,@STARTDATE)   
END
IF @Peryot = ''HAFTALIK''
BEGIN
    DECLARE CUR CURSOR FOR
    SELECT  DRNOBET.DRNOBETID,TBOLUM.KLINIKKODU, TKLINIK.KLINIKKODU, NOBETBASTARIH
    FROM        DRNOBET WITH(NOLOCK)
		  INNER JOIN TDRKIMLIK WITH(NOLOCK) ON TDRKIMLIK.DRID = DRNOBET.DRID
		  INNER JOIN TDRUZMANLIK WITH(NOLOCK) ON TDRUZMANLIK.DRUZMANLIKID = TDRKIMLIK.DRUZMANLIKID
		  INNER JOIN TBOLUM WITH(NOLOCK) ON TBOLUM.BOLUMID = TDRKIMLIK.BOLUMID
		  LEFT JOIN  TKLINIK WITH(NOLOCK) ON TKLINIK.KLINIKKODU=TBOLUM.KLINIKKODU
    WHERE NOBETBASTARIH < @ENDDATE and NOBETBITTARIH >= @STARTDATE AND DRNOBET.SUBEID = @SUBEID
END
ELSE
BEGIN
    DECLARE CUR CURSOR FOR
    SELECT  DRNOBET.DRNOBETID,TBOLUM.KLINIKKODU, TKLINIK.KLINIKKODU, NOBETBASTARIH
    FROM        DRNOBET WITH(NOLOCK)
		  INNER JOIN TDRKIMLIK WITH(NOLOCK) ON TDRKIMLIK.DRID = DRNOBET.DRID
		  INNER JOIN TDRUZMANLIK WITH(NOLOCK) ON TDRUZMANLIK.DRUZMANLIKID = TDRKIMLIK.DRUZMANLIKID
		  INNER JOIN TBOLUM WITH(NOLOCK) ON TBOLUM.BOLUMID = TDRKIMLIK.BOLUMID
		  LEFT JOIN  TKLINIK WITH(NOLOCK) ON TKLINIK.KLINIKKODU=TBOLUM.KLINIKKODU
    WHERE NOBETBASTARIH < @ENDDATE and NOBETBITTARIH >= @STARTDATE AND DRNOBET.SUBEID = @SUBEID
END
OPEN CUR  
FETCH NEXT FROM CUR INTO @DRNOBETID,@KLINIKKODUBOLUM,@KLINIKKODU,@NOBETBASTARIH
IF @@CURSOR_ROWS=0 
    BEGIN
	   SET @HATA = @HATA + '' '' + CONVERT(VARCHAR,@STARTDATE)+''-''+CONVERT(VARCHAR,@ENDDATE)+'' tarihleri arasında ''+@Peryot+'' için personel nöbet listesi girişleri yapılmamış.''
    END
WHILE @@FETCH_STATUS = 0  
BEGIN 
    
    IF (@NOBETBASTARIH IS NULL)
	   SET @HATA=@HATA+ CONVERT(VARCHAR,@DRNOBETID) +'' Numaralı kaydın nöbet başlangıç tarih saati girilmemiş.''
    IF RTRIM(ISNULL(@KLINIKKODU,''''))='''' 
	   BEGIN
		  SET @HATA=@HATA+@KLINIKKODUBOLUM + '' Klinik kaydı bulunamadı.''
	   END
FETCH NEXT FROM CUR INTO @DRNOBETID,@KLINIKKODUBOLUM,@KLINIKKODU,@NOBETBASTARIH
END
CLOSE CUR  
DEALLOCATE CUR 
IF @HATA<>''''
BEGIN
    IF NOT EXISTS(SELECT ID FROM SERVISENTEGRASYONHATALARI WHERE SERVISGONDERIMFONKSIYONADI=''NOBETCI_PERSONEL_BILGISI_KAYIT_YARIN'' AND KAYITID=@Peryot AND SUBEID=@SUBEID AND HATA=@HATA AND TARIH>DATEADD(DAY,-2,GETDATE()))
    INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI,SUBEID,KAYITID,HATA,TARIH) VALUES (''NOBETCI_PERSONEL_BILGISI_KAYIT_YARIN'',@SUBEID,@Peryot,@HATA,GETDATE())
END
ELSE
BEGIN
/*START*/--SILMEYIN ONEMLI
SELECT 
    NEWID() as ''messageGuid/@value'',
    ''1'' as ''messageType/@version'',
    ''0a9ba485-e7e0-4abb-9c86-0a14fd364bb8'' as ''messageType/@codeSystemGuid'',
    ''260'' as ''messageType/@code'',
    ''Nöbetci Personel Bilgisi Kayıt'' 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'',
		  ISNULL((SELECT VALUESTR FROM CONFIG WHERE SECTIONSTR=''Saglik-Net'' AND PROGNAME=''MEDISOFT'' AND KEYNAME= @SUBEID+'' numaralı şubenin kurum numarası''),'''') as ''healthcareProvider/@code'',
		  SUBELER.SUBEADI as ''healthcareProvider/@value''  
		  FOR XML PATH(''author''), TYPE
    ),
    ''C740D0288ED4C45FE0407C0A04162BDD'' as ''firmaKodu/@value'',                 
    (
	   SELECT 
		  CONVERT(VARCHAR(8), @STARTDATE, 112) + ''0000'' as ''Tarih/@value'',
		  ''1'' as ''KAYIT_YERI/@version'',
		  ''c3eade04-4f91-5dab-e043-14031b0ac9f9'' as ''KAYIT_YERI/@codeSystemGuid'',
		  CONFIG.VALUESTR as ''KAYIT_YERI/@code'',
		  SUBELER.SUBEADI as ''KAYIT_YERI/@value'',
		  (
			 SELECT 
				ISNULL(TD.DRTCKIMLIKNO,'''') as ''PERSONEL_KIMLIK_NUMARASI/@value'',
				''1'' as ''KLINIK_KODU/@version'',
				''c04bee57-c5d4-443d-e040-7b0a6f146a3d'' as ''KLINIK_KODU/@codeSystemGuid'',
				ISNULL(TKLINIK.KLINIKKODU,'''') as ''KLINIK_KODU/@code'',
				ISNULL(TKLINIK.KLINIKADI,'''') as ''KLINIK_KODU/@value'',
				''1'' as ''GOREV_TURU/@version'',
				''21cf297c-ccaa-4ae4-98f7-e39a0121bcbb'' as ''GOREV_TURU/@codeSystemGuid'',                                                 
				CASE WHEN DRNOBET.ICAPCI=1 THEN 2 ELSE 1 END as ''GOREV_TURU/@code'',
				ISNULL((SELECT CASE 
						  WHEN DRNOBET.ICAPCI=1
							 THEN  ''ICAP''
						  else      ''NÖBET''
						  END
				),'''') as ''GOREV_TURU/@value'',
				''1'' as ''PERSONEL_GOREV_KODU/@version'',
				''c1dcdc84-b1a4-401b-8db3-1eb20afaaa74'' as ''PERSONEL_GOREV_KODU/@codeSystemGuid'',                                                
				ISNULL((SELECT CASE  
						  WHEN TD.BASHEKIM = 1
							 THEN 1
						  WHEN TD.BASHEKIMYARDIMCISI = 1
							 THEN 2
						  WHEN TBOLUM.ACILSERVIS = 1
							 THEN 3
						  ELSE
								4
						  END
				),'''') as ''PERSONEL_GOREV_KODU/@code'',
				ISNULL((SELECT CASE  
						  WHEN TD.BASHEKIM = 1
							 THEN ''BAŞHEKIM''
						  WHEN TD.BASHEKIMYARDIMCISI = 1
							 THEN ''BAŞHEKIM YARDIMCISI''
						  WHEN TBOLUM.ACILSERVIS = 1
							 THEN ''ACIL SERVIS SORUMLU HEKIM''
						  ELSE
								''HEKIM''
						  END
				),'''') as ''PERSONEL_GOREV_KODU/@value'',                    
				LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),DRNOBET.NOBETBASTARIH,120),'' '',''''),''-'',''''),'':'',''''),12) as ''NOBET_BASLANGIC_TARIHI/@value'',
				LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),DRNOBET.NOBETBITTARIH,120),'' '',''''),''-'',''''),'':'',''''),12) as ''NOBET_BITIS_TARIHI/@value'',
				ISNULL(TD.DRTEL1, '''') as ''TELEFON_NUMARASI/@value''
				--ISNULL(TD.DRTEL1, '''') as ''TELEFON_NUMARASI2/@value''           
			 FROM DRNOBET WITH(NOLOCK)
				JOIN TDRKIMLIK TD WITH(NOLOCK) ON TD.DRID = DRNOBET.DRID
				LEFT JOIN TBOLUM WITH(NOLOCK) ON TD.BOLUMID = TBOLUM.BOLUMID
				JOIN TKLINIK WITH(NOLOCK) ON TBOLUM.KLINIKKODU = TKLINIK.KLINIKKODU                         
			 WHERE NOBETBASTARIH < @ENDDATE 
				    AND NOBETBITTARIH >= @STARTDATE
				    AND DRNOBET.NOBETBASTARIH IS NOT NULL
				    AND TD.SUBEID = SUBELER.SUBEID
			 FOR XML PATH(''NOBETCI_PERSONEL_BILGILERI''), TYPE
		  )
                        
		  FOR XML PATH(''NOBETCI_PERSONEL_BILGISI''),ROOT(''recordData''), TYPE
    )    
FROM SUBELER WITH(NOLOCK)
    LEFT JOIN CONFIG WITH(NOLOCK) ON KEYNAME = CAST(SUBELER.SUBEID AS VARCHAR) +'' numaralı şubenin kurum numarası''
WHERE SUBELER.SUBEID = @SUBEID
FOR XML PATH (''''), ROOT(''SYSMessage'')
/*END*/--SILMEYIN ONEMLI
END
', N'DECLARE @SERVISENTEGRASYONID INT
DECLARE @XML1 XML
DECLARE @XML2 VARCHAR(MAX)
DECLARE @XML3 XML
DECLARE @SONUCKODU VARCHAR(20)
DECLARE @SONUCMESAJI VARCHAR(100)
SET @SERVISENTEGRASYONID = ''#SERVISENTEGRASYONID#''
SET @XML1 = ''''
SET @XML2 = ''''
SET @XML3 = ''''
SET @XML1 = (SELECT CEVAPXML FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID)
SET @XML2 = (SELECT @XML1.value (''declare namespace s =  "http://schemas.xmlsoap.org/soap/envelope/"; (/s:Envelope/s:Body/*)[1]'',''varchar(4000)'') AS id)
	--GET SONUCKODU FOR HATA IF ANY 
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCKODU = (SELECT T.C.value(''@value'', ''varchar(100)'') AS SONUCKODU
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucKodu)'') AS T(C))
	--GET SONUCMESAJI
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCMESAJI = (SELECT T.C.value(''@value'', ''varchar(1000)'') AS SONUCMESAJI
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucMesaji)'') AS T(C))
	IF	@SONUCKODU = ''S0000''  
	BEGIN
		
		UPDATE SERVISENTEGRASYON SET DURUM=1,DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1,CEVAPZAMANI=GETDATE() WHERE ID=@SERVISENTEGRASYONID
	END
	ELSE
	 BEGIN			
		UPDATE SERVISENTEGRASYON SET DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1 WHERE ID=@SERVISENTEGRASYONID

		INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, SERVISENTEGRASYONID, SONUCKODU, HATA, TARIH) SELECT SERVISGONDERIMFONKSIYONADI, SERVISENTEGRASYON.SUBEID, KAYITID, ID, @SONUCKODU, @SONUCMESAJI, GETDATE() FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID AND 0=(SELECT COUNT(*) FROM SERVISENTEGRASYONHATALARI WHERE SERVISENTEGRASYONID = @SERVISENTEGRASYONID)
	END', N'', N'6hour', 10)
GO
INSERT [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI], [SERVISTIPI], [KAYITTABLOADI], [KAYITALANADI], [GONDERILECEKLERISECSORGU], [ISTEKSQL], [CEVAPSQL], [NOTLAR], [GONDERIMPERYODU], [ONCELIK]) VALUES (N'OLAY_AFET_BILGISI', 1, N'AFETOLAYTAKIP', N'AFETOLAYTAKIPID', N'SELECT AFETOLAYTAKIP.AFETOLAYTAKIPID AS TABLOID,
       AFETOLAYTAKIP.SUBEID
FROM AFETOLAYTAKIP WITH(NOLOCK)
WHERE ISNULL(AFETOLAYTAKIP.SNOGONDERILDI, 0) = 0
      AND AFETOLAYTAKIP.TAKIPTARIH > DATEADD(DAY, -1*(SELECT CONVERT(INT,GONDERIMPERYODU) FROM SERVISENTEGRASYONTANIM WHERE GONDERIMFONKSIYONADI=''HEADER''), GETDATE())
', N'DECLARE @SUBEID VARCHAR(10) = ''#SUBEID#'' --1
DECLARE @AFETOLAYTAKIPID NVARCHAR(20) = ''#TABLOID#''
DECLARE @HATA NVARCHAR(2000) = ''''
IF
(SELECT COUNT(*) FROM SUBELER WHERE SUBEID = @SUBEID) = 0
BEGIN
    SET @HATA = ''İşlemin şube kaydı bulunamadı!''
END
IF (SELECT AFETOLAYVATANDASTIPIID FROM AFETOLAYTAKIP 
	  WHERE AFETOLAYTAKIP.SUBEID = @SUBEID
	  AND AFETOLAYTAKIP.AFETOLAYTAKIPID = @AFETOLAYTAKIPID) IS NULL 
BEGIN 
	SET @HATA = @HATA + '' Afet Olay Vatandaş Tipi bilgisi boş olamaz.''
END	
IF (SELECT AFETOLAYID FROM AFETOLAYTAKIP 
	  WHERE AFETOLAYTAKIP.SUBEID = @SUBEID
	  AND AFETOLAYTAKIP.AFETOLAYTAKIPID = @AFETOLAYTAKIPID) IS NULL 
BEGIN 
	SET @HATA =@HATA + '' Afet Olay İsmi bilgisi boş olamaz.''
END	
IF (SELECT HAYATITEHLIKEDURUMUID FROM AFETOLAYTAKIP 
	  WHERE AFETOLAYTAKIP.SUBEID = @SUBEID
	  AND AFETOLAYTAKIP.AFETOLAYTAKIPID = @AFETOLAYTAKIPID) IS NULL 
BEGIN 
	SET @HATA =@HATA + '' Hayati Tehlike Durumu bilgisi boş olamaz.''
END	
IF (SELECT GLASGOWKOMASKALASI FROM AFETOLAYTAKIP 
	  WHERE AFETOLAYTAKIP.SUBEID = @SUBEID
	  AND AFETOLAYTAKIP.AFETOLAYTAKIPID = @AFETOLAYTAKIPID) IS NULL 
BEGIN 
	SET @HATA =@HATA + '' Glaskow Koma Skalası bilgisi boş olamaz.''
END	
	
IF @HATA<>''''
    BEGIN
	 IF NOT EXISTS(SELECT ID FROM SERVISENTEGRASYONHATALARI WHERE SERVISGONDERIMFONKSIYONADI=''OLAY_AFET_BILGISI'' AND KAYITID=@AFETOLAYTAKIPID AND SUBEID=@SUBEID AND HATA=@HATA AND TARIH>DATEADD(DAY,-2,GETDATE()))
	 INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI,SUBEID,KAYITID,HATA,TARIH) VALUES (''OLAY_AFET_BILGISI'',@SUBEID,@AFETOLAYTAKIPID,@HATA ,GETDATE())
  END
ELSE 
BEGIN
	/*START*/--SILMEYIN ONEMLI
	   SELECT 
	   NEWID() AS ''messageGuid/@value'',
	   ''1'' AS ''messageType/@version'',
	   ''0a9ba485-e7e0-4abb-9c86-0a14fd364bb8'' as ''messageType/@codeSystemGuid'',
	   ''261'' AS ''messageType/@code'',
	   ''Olay Afet Bilgisi'' 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'',
					ISNULL((SELECT VALUESTR FROM CONFIG WHERE SECTIONSTR=''Saglik-Net'' AND PROGNAME=''MEDISOFT'' AND KEYNAME= @SUBEID+'' numaralı şubenin kurum numarası''),'''') as ''healthcareProvider/@code'',
					SUBELER.SUBEADI as ''healthcareProvider/@value''  
					FOR XML PATH(''author''), TYPE),
				   ''C740D0288ED4C45FE0407C0A04162BDD'' as ''firmaKodu/@value'' ,
					(SELECT 
						(SELECT
						   ISNULL((SELECT CASE
									 WHEN VWMUAYENE.HMUAYENEISLID IS NOT NULL
											THEN VWMUAYENE.SNOTAKIPNO
									 WHEN VWMUAYENE.HMUAYENEISLID IS NULL	
											THEN 
									 (SELECT CASE WHEN NOT EXISTS
											 (SELECT VWYATIS.SNOTAKIPNO
												WHERE VWYATIS.HMUAYENEID = VWMUAYENE.HMUAYENEID 
													  AND VWYATIS.UYGDRID = VWMUAYENE.HMDRID )
												 THEN ''''
												     ELSE
														(SELECT VWYATIS.SNOTAKIPNO 
															WHERE VWYATIS.HMUAYENEID = VWMUAYENE.HMUAYENEID 
																AND VWYATIS.UYGDRID = VWMUAYENE.HMDRID)
										END) 
									END
									FROM VWMUAYENE(NOLOCK)
										 LEFT JOIN VWYATIS(NOLOCK) ON VWYATIS.HMUAYENEID = VWMUAYENE.HMUAYENEID
									     WHERE VWMUAYENE.HMUAYENEID = AFETOLAYTAKIP.HMUAYENEID
										 AND AFETOLAYTAKIP.AFETOLAYTAKIPID = @AFETOLAYTAKIPID),'''')
								 AS ''SYSTakipNo/@value''
						FOR XML PATH(''HASTA_TAKIP_BILGISI''), TYPE),
						 (SELECT
							''1'' AS ''AFET_OLAY_VATANDAS_TIPI/@version'',
							''ddb59d45-97c3-4b87-ba90-03fc7689b7eb'' AS ''AFET_OLAY_VATANDAS_TIPI/@codeSystemGuid'',
							ISNULL(CONVERT(VARCHAR(20),AFETOLAYTAKIP.AFETOLAYVATANDASTIPIID),'''') AS ''AFET_OLAY_VATANDAS_TIPI/@code'',
							ISNULL((SELECT CASE AFETOLAYTAKIP.AFETOLAYVATANDASTIPIID
								WHEN 1
									THEN ''POLIS''
								WHEN 2
									THEN ''ASKER''
								WHEN 3
									THEN ''RESMI GOREVLI''
								WHEN 4
									THEN ''SIVIL''
							END),'''') AS ''AFET_OLAY_VATANDAS_TIPI/@value'',
							''1'' AS ''OLAY_ID/@version'',
							''6fedbc09-c34f-4189-88b7-6c6f4798fcfc'' AS ''OLAY_ID/@codeSystemGuid'',
							ISNULL(CONVERT(VARCHAR(20),AFETOLAYTAKIP.AFETOLAYID),'''') AS ''OLAY_ID/@code'',
							ISNULL((SELECT VWAFETOLAY.OLAYISMI FROM VWAFETOLAY WHERE VWAFETOLAY.AFETOLAYID = AFETOLAYTAKIP.AFETOLAYID),'''') AS ''OLAY_ID/@value'',
							''1'' AS ''HAYATI_TEHLIKE_DURUMU/@version'',
							''8999f472-8252-4dff-901e-66e3f9f57c68'' AS ''HAYATI_TEHLIKE_DURUMU/@codeSystemGuid'',
							ISNULL(CONVERT(VARCHAR(20),AFETOLAYTAKIP.HAYATITEHLIKEDURUMUID),'''') AS ''HAYATI_TEHLIKE_DURUMU/@code'',
							ISNULL((SELECT CASE AFETOLAYTAKIP.HAYATITEHLIKEDURUMUID
									WHEN 1
										THEN ''VAR''
									WHEN 2
										THEN ''YOK''
									END),'''')
							AS ''HAYATI_TEHLIKE_DURUMU/@value'',
						 ISNULL(CONVERT(VARCHAR(20),AFETOLAYTAKIP.GLASGOWKOMASKALASI),'''')  AS ''GLASGOW_KOMA_SKALASI/@value''
						
			
							FOR XML PATH(''OLAY_AFET_BILGILERI''),TYPE)
					FOR XML PATH(''recordData''), TYPE)
					FROM  AFETOLAYTAKIP LEFT OUTER JOIN
					SUBELER ON   SUBELER.SUBEID = AFETOLAYTAKIP.SUBEID
					WHERE CONVERT(VARCHAR, SUBELER.SUBEID) = @SUBEID 
				   AND AFETOLAYTAKIP.AFETOLAYTAKIPID = @AFETOLAYTAKIPID
		FOR XML PATH (''''), ROOT(''SYSMessage'')
 /*END*/--SILMEYIN ONEMLI
 
 END', N'DECLARE @SERVISENTEGRASYONID INT
DECLARE @XML1 XML
DECLARE @XML2 VARCHAR(MAX)
DECLARE @XML3 XML
DECLARE @SNOTakipNo VARCHAR(20)
DECLARE @SONUCKODU VARCHAR(20)
DECLARE @SONUCMESAJI VARCHAR(1000)
SET @SERVISENTEGRASYONID = ''#SERVISENTEGRASYONID#''
SET @SNOTakipNo = ''''
SET @XML1 = ''''
SET @XML2 = ''''
SET @XML3 = ''''
SET @XML1 = (SELECT CEVAPXML FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID)
SET @XML2 = (SELECT @XML1.value (''declare namespace s =  "http://schemas.xmlsoap.org/soap/envelope/"; (/s:Envelope/s:Body/*)[1]'',''varchar(4000)'') AS id)
	--GET SONUCKODU FOR HATA IF ANY 
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCKODU = (SELECT T.C.value(''@value'', ''varchar(100)'') AS SONUCKODU
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucKodu)'') AS T(C))
	--GET SONUCMESAJI
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCMESAJI = (SELECT T.C.value(''@value'', ''varchar(1000)'') AS SONUCMESAJI
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucMesaji)'') AS T(C))
	IF	@SONUCKODU = ''S0000''  
		BEGIN
		UPDATE SERVISENTEGRASYON SET DURUM=1,DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1,CEVAPZAMANI=GETDATE() WHERE ID=@SERVISENTEGRASYONID
			UPDATE AFETOLAYTAKIP SET AFETOLAYTAKIP.SNOGONDERILDI = 1 
			FROM AFETOLAYTAKIP
			 JOIN SERVISENTEGRASYON SE ON SE.KAYITID = AFETOLAYTAKIP.AFETOLAYTAKIPID
			 WHERE SE.ID = @SERVISENTEGRASYONID
			UPDATE AFETOLAYTAKIP SET AFETOLAYTAKIP.SNOGONDERILDITARIH = SYSDATETIME() 
			FROM AFETOLAYTAKIP
			 JOIN SERVISENTEGRASYON SE ON SE.KAYITID = AFETOLAYTAKIP.AFETOLAYTAKIPID
			 WHERE SE.ID = @SERVISENTEGRASYONID
		END
	
	ELSE 
		BEGIN
			
		UPDATE SERVISENTEGRASYON SET DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1 WHERE ID=@SERVISENTEGRASYONID

		INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, SERVISENTEGRASYONID, SONUCKODU, HATA, TARIH) SELECT SERVISGONDERIMFONKSIYONADI, SERVISENTEGRASYON.SUBEID, KAYITID, ID, @SONUCKODU, @SONUCMESAJI, GETDATE() FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID AND 0=(SELECT COUNT(*) FROM SERVISENTEGRASYONHATALARI WHERE SERVISENTEGRASYONID = @SERVISENTEGRASYONID)
		END', N'', N'10min', 10)
GO
INSERT [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI], [SERVISTIPI], [KAYITTABLOADI], [KAYITALANADI], [GONDERILECEKLERISECSORGU], [ISTEKSQL], [CEVAPSQL], [NOTLAR], [GONDERIMPERYODU], [ONCELIK]) VALUES (N'OLUM_BILDIRIM_VERI_SETI', 1, N'HDOSYA', N'HDOSYAID', N'SELECT HDOSYA.HDOSYAID AS TABLOID,
       ISNULL(HDOSYA.SUBEID, '''') AS SUBELER
FROM HDOSYA WITH(NOLOCK)
WHERE ISNULL(HDOSYA.SNOOLUMGONDERILDI, 0) = 0
      AND HDOSYA.GSSCIKISTARIHI > DATEADD(DAY, -1*(SELECT CONVERT(INT,GONDERIMPERYODU) FROM SERVISENTEGRASYONTANIM WHERE GONDERIMFONKSIYONADI=''HEADER''), GETDATE())
      AND HDOSYA.GSSTABURCUKODU = 10
	 AND HDOSYA.HDIPTAL = 0', N'DECLARE @SUBEID VARCHAR(10) = ''#SUBEID#'' --1
DECLARE @HDOSYAID NVARCHAR(20) = ''#TABLOID#''
DECLARE @HATA NVARCHAR(2000) = ''''

IF (SELECT COUNT(*) FROM SUBELER WHERE SUBEID = @SUBEID) = 0
BEGIN
    SET @HATA = ''İşlemin şube kaydı bulunamadı!''
END
IF (SELECT OLUMTARIHI FROM HDOSYA WHERE
	 HDOSYA.SUBEID = @SUBEID AND HDOSYA.HDOSYAID = @HDOSYAID) = ''''
BEGIN 
	SET @HATA = @HATA + '' Ölüm tarihi girilmemiş.''
END
IF (SELECT OLUMYERIID FROM HDOSYA 
	WHERE HDOSYA.SUBEID = @SUBEID AND HDOSYA.HDOSYAID = @HDOSYAID)IS NULL 
BEGIN 
	SET @HATA = @HATA + '' Ölüm yeri seçilmemiş.''
END
IF (SELECT OLUMSEKLIID FROM HDOSYA 
	WHERE HDOSYA.SUBEID = @SUBEID AND HDOSYA.HDOSYAID = @HDOSYAID)IS NULL 
BEGIN 
	SET @HATA = ''Ölüm şekli seçilmemiş.''
END
IF (SELECT ISNULL(OLUMNEDENIDEGERLENDIRME,'''') FROM  HDOSYA 
	WHERE HDOSYA.SUBEID = @SUBEID AND HDOSYA.HDOSYAID = @HDOSYAID)='''' 
BEGIN 
	SET @HATA = @HATA +  ''Hastanın ölüm nedeni değerlendirmesi girilmemiş.''
END
IF NOT EXISTS (SELECT HDOLUMNEDENI.*, TICD.ICDADI 
	FROM HDOLUMNEDENI (NOLOCK) INNER JOIN TICD(NOLOCK) ON HDOLUMNEDENI.ICDKOD = TICD.ICDKOD
	LEFT JOIN HDOSYA ON HDOSYA.HDOSYAID = HDOLUMNEDENI.HDOSYAID 
	WHERE  HDOLUMNEDENI.HDOSYAID = HDOSYA.HDOSYAID AND HDOSYA.SUBEID = @SUBEID AND HDOSYA.HDOSYAID = @HDOSYAID
)
BEGIN
	SET @HATA = @HATA + '' Ölüm nedeni ve veya ölüm nedenleri girilmemiş.''
END
IF (SELECT  ISNULL(HKIMLIK.HEVMAHID,'''')  
		FROM HKIMLIK(NOLOCK) LEFT OUTER JOIN 
		TILCEMAH ON TILCEMAH.MAHALLEID = HKIMLIK.HEVMAHID LEFT OUTER JOIN 
		HDOSYA ON HDOSYA.HKIMLIKID = HKIMLIK.HKIMLIKID  
		WHERE HDOSYA.SUBEID = @SUBEID AND HDOSYA.HDOSYAID = @HDOSYAID
		AND HKIMLIK.HKIMLIKID = HDOSYA.HKIMLIKID 
	)= ''''
 BEGIN
	SET @HATA = @HATA + '' Hasta ev adresi mahallesi girilmemiş.''
END
IF (SELECT 	HKIMLIK.HEVMAHID
		FROM HKIMLIK(NOLOCK) LEFT OUTER JOIN 
		TILCEMAH ON TILCEMAH.MAHALLEID = HKIMLIK.HEVMAHID LEFT OUTER JOIN 
		HDOSYA ON HDOSYA.HKIMLIKID = HKIMLIK.HKIMLIKID
		WHERE 	HKIMLIK.HKIMLIKID =  HDOSYA.HKIMLIKID 
		AND HDOSYA.SUBEID = @SUBEID AND HDOSYA.HDOSYAID = @HDOSYAID
	) IS NULL AND (SELECT 	ISNULL(TILCEMAH.ADRESKODU, '''')
		FROM HKIMLIK(NOLOCK) LEFT OUTER JOIN 
		TILCEMAH ON TILCEMAH.MAHALLEID = HKIMLIK.HEVMAHID LEFT OUTER JOIN 
		HDOSYA ON HDOSYA.HKIMLIKID = HKIMLIK.HKIMLIKID 
		WHERE 	HKIMLIK.HKIMLIKID =  HDOSYA.HKIMLIKID 
		AND HDOSYA.SUBEID = @SUBEID AND HDOSYA.HDOSYAID = @HDOSYAID
	)=''''
 BEGIN
	SET @HATA = @HATA + '' Hasta ev adresi mahallesinin mahalle tanımında adres kodu girilmemiş.''
END
IF (SELECT DEFINIZINVERENDRID FROM HDOSYA 
	LEFT JOIN SUBELER ON HDOSYA.SUBEID = CONVERT(VARCHAR, SUBELER.SUBEID) WHERE  HDOSYA.SUBEID = @SUBEID AND HDOSYA.HDOSYAID = @HDOSYAID)IS NULL 
	BEGIN
		SET @HATA = @HATA + '' Defin iznini veren doktor girilmemiş.''
	END
ELSE 
	BEGIN
	IF (SELECT ISNULL(DRTCKIMLIKNO,'''') FROM TDRKIMLIK(NOLOCK) 
		LEFT JOIN HDOSYA ON HDOSYA.DRID = TDRKIMLIK.DRID
		LEFT JOIN SUBELER ON HDOSYA.SUBEID = CONVERT(VARCHAR, SUBELER.SUBEID) WHERE TDRKIMLIK.DRID 
		= HDOSYA.DEFINIZINVERENDRID AND  HDOSYA.SUBEID = @SUBEID AND HDOSYA.HDOSYAID = @HDOSYAID) = '''' 
			BEGIN
				SET @HATA =@HATA + '' Defin iznini veren doktorun TC kimlik numarası girilmemiş.''
			END
	END
IF @HATA<>''''
    BEGIN
	   IF NOT EXISTS(SELECT ID FROM SERVISENTEGRASYONHATALARI WHERE SERVISGONDERIMFONKSIYONADI=''OLUM_BILDIRIM_VERI_SETI'' AND KAYITID=@HDOSYAID AND SUBEID=@SUBEID AND HATA=@HATA AND TARIH>DATEADD(DAY,-2,GETDATE()))
	   INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI,SUBEID,KAYITID,HATA,TARIH) VALUES (''OLUM_BILDIRIM_VERI_SETI'',@SUBEID,@HDOSYAID,@HATA,GETDATE())
  END
ELSE
BEGIN
/*START*/--SILMEYIN ONEMLI
	   SELECT 
	   NEWID() as ''messageGuid/@value'',
	   ''1'' as ''messageType/@version'',
	   ''0a9ba485-e7e0-4abb-9c86-0a14fd364bb8'' as ''messageType/@codeSystemGuid'',
	   ''241'' as ''messageType/@code'',
	   ''Ölüm 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'',
					ISNULL((SELECT VALUESTR FROM CONFIG WHERE SECTIONSTR =''Saglik-Net'' AND PROGNAME=''MEDISOFT'' AND KEYNAME = @SUBEID+'' numaralı şubenin kurum numarası''),'''') as ''healthcareProvider/@code'',
					SUBELER.SUBEADI as ''healthcareProvider/@value''  
					FOR XML PATH(''author''), TYPE),
				   ''C740D0288ED4C45FE0407C0A04162BDD'' as ''firmaKodu/@value'' ,
				   (SELECT 
				   	  (SELECT
                            ISNULL((SELECT CASE WHEN HD.MDLTEDAVITURU = ''A'' THEN
                                        (SELECT CASE WHEN NOT EXISTS(
                                            SELECT TOP 1
                                                VWMUAYENEISL.SNOTAKIPNO
                                            FROM VWMUAYENEISL (NOLOCK)
											WHERE HD.HDOSYAID = VWMUAYENEISL.HDOSYAID AND										VWMUAYENEISL.UYGDRID = HD.DRID
												 AND VWMUAYENEISL.HDOSYAID = @HDOSYAID)
											THEN ''''
											ELSE (SELECT TOP 1
														VWMUAYENEISL.SNOTAKIPNO
													FROM VWMUAYENEISL (NOLOCK)
													WHERE HD.HDOSYAID = VWMUAYENEISL.HDOSYAID AND										VWMUAYENEISL.UYGDRID = HD.DRID
														 AND VWMUAYENEISL.HDOSYAID = @HDOSYAID)END)
										
							ELSE (SELECT CASE WHEN NOT EXISTS
										(SELECT TOP 1
											VWYATIS.SNOTAKIPNO
										 FROM VWYATIS (NOLOCK)
											WHERE
											VWYATIS.HDOSYAID = HD.HDOSYAID AND
											VWYATIS.UYGDRID = HD.DRID AND
											VWYATIS.HDOSYAID = @HDOSYAID) THEN '''' ELSE
									  (SELECT TOP 1
											VWYATIS.SNOTAKIPNO
										FROM VWYATIS (NOLOCK)
										WHERE
											VWYATIS.HDOSYAID = HD.HDOSYAID AND
											VWYATIS.UYGDRID = HD.DRID AND
											VWYATIS.HDOSYAID = @HDOSYAID) END)END),'''') AS ''SYSTakipNo/@value''
						FOR XML PATH(''HASTA_TAKIP_BILGISI''), TYPE),
						(SELECT 
							(SELECT VWHKIMLIK.HEVADRES_1  FROM VWHKIMLIK  WHERE HD.HKIMLIKID = VWHKIMLIK.HKIMLIKID AND HD.HDOSYAID = @HDOSYAID) 
							 AS ''ACIK_ADRES/@value'',
							ISNULL((SELECT TILCEMAH.ADRESKODU FROM TILCEMAH LEFT OUTER JOIN HKIMLIK ON HKIMLIK.HEVMAHID = TILCEMAH.MAHALLEID WHERE HKIMLIK.HKIMLIKID = HD.HKIMLIKID AND HD.HDOSYAID = @HDOSYAID),'''') AS ''ADRES_KODU/@value'',
							''1'' AS ''ADRES_KODU_SEVIYESI/@version'',
						    ''aa0e83ba-e9db-4817-80da-577fd6a17373'' AS ''ADRES_KODU_SEVIYESI/@codeSystemGuid'',
							''5'' AS ''ADRES_KODU_SEVIYESI/@code'',
							''MAHALLE'' AS ''ADRES_KODU_SEVIYESI/@value'',
							''1'' AS ''ADRES_TIPI/@version'',
						    ''35f4968a-3e72-41ce-9ae4-f4d22f90ea2e'' AS ''ADRES_TIPI/@codeSystemGuid'',
							''1'' AS ''ADRES_TIPI/@code'',
							''SÜREKLİ İKAMET ADRESİ'' AS ''ADRES_TIPI/@value'',
							ISNULL((SELECT TDRKIMLIK.DRTCKIMLIKNO FROM TDRKIMLIK WHERE HD.DRID = TDRKIMLIK.DRID AND HD.HDOSYAID = @HDOSYAID),'''')AS ''DEFIN_IZNINI_VEREN_KISININ_KIMLIK_NUMARASI/@value'',
							ISNULL(HD.OLUMNEDENIDEGERLENDIRME,'''') AS ''OLUM_NEDENI_DEGERLENDIRME/@value'',
							ISNULL(LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),HD.OLUMTARIHI,120),'' '',''''),''-'',''''),'':'',''''),12),'''') AS ''OLUM_TARIHI/@value'',
							''1'' AS ''OLUM_YERI/@version'',
							''a4a991c6-70fa-4e40-9ffe-aaea2150faf2''  AS ''OLUM_YERI/@codeSystemGuid'',
							ISNULL(CONVERT(VARCHAR(20),HD.OLUMYERIID),'''')  AS ''OLUM_YERI/@code'',
							ISNULL((SELECT CASE OLUMYERIID
									WHEN 1
										THEN ''Ev''
									WHEN 3
										THEN  ''İş''
									WHEN 4
										THEN ''1. Basamak Sağlık Kurum/Kuruluşu''
									WHEN 5
										THEN  ''2. Basamak Sağlık Kurum/Kuruluşu''
									WHEN 6
										THEN ''3. Basamak Sağlık Kurum/Kuruluşu''
									WHEN 7
										THEN  ''Sevk Sırasında''
									WHEN 99 
										THEN ''Diğer''
							  END),'''')AS ''OLUM_YERI/@value'',
							  (SELECT CASE WHEN HD.OTOPSIDURUMUID IS NOT NULL
								THEN 
									''1'' ELSE ''''
								END) AS ''OTOPSI_DURUMU/@version'',
							(SELECT CASE WHEN HD.OTOPSIDURUMUID IS NOT NULL
								THEN 
								''3854f1ab-d485-4882-9811-e1ec26ae35eb'' END) AS ''OTOPSI_DURUMU/@codeSystemGuid'',
							(SELECT CASE WHEN HD.OTOPSIDURUMUID IS NOT NULL
									THEN 
								OTOPSIDURUMUID ELSE '''' END) AS ''OTOPSI_DURUMU/@code'',
							(SELECT CASE WHEN HD.OTOPSIDURUMUID IS NOT NULL
									THEN 
									(SELECT CASE HD.OTOPSIDURUMUID 
											WHEN 1 
												THEN ''CEP TELEFONU''
											WHEN 2
												THEN ''EV TELEFONU''
											WHEN 3 
												THEN  ''İŞ TELEFONU''
											WHEN 4
												THEN ''VELİSİNİN/YAKINININ TELEFONU''
								 END)ELSE '''' END) AS ''OTOPSI_DURUMU/@value'',
							(SELECT CASE WHEN HD.YARALANMAYERIID IS NOT NULL
									THEN ''1'' ELSE '''' END) AS ''YARALANMANIN_YERI/@version'',
							(SELECT CASE WHEN HD.YARALANMAYERIID IS NOT NULL
									THEN ''aab59c51-81bf-46ca-9743-d08288c845cb'' ELSE ''''  END) AS ''YARALANMANIN_YERI/@codeSystemGuid'',
							(SELECT CASE WHEN HD.YARALANMAYERIID IS NOT NULL
									THEN HD.YARALANMAYERIID ELSE ''''  END) AS ''YARALANMANIN_YERI/@code'',
							(SELECT CASE WHEN HD.YARALANMAYERIID IS NOT NULL
									THEN (SELECT CASE HD.YARALANMAYERIID
											WHEN 1 
												THEN ''CEP TELEFONU''
											WHEN 2
												THEN ''EV TELEFONU''
											WHEN 3 
												THEN  ''İŞ TELEFONU''
											WHEN 4
												THEN ''VELİSİNİN/YAKINININ TELEFONU''    
									END) ELSE ''''  END) AS ''YARALANMANIN_YERI/@value'',
							(SELECT CASE WHEN HD.YARALANMATARIHI IS NOT NULL	
								THEN  LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),HD.YARALANMATARIHI,120),'' '',''''),''-'',''''),'':'',''''),12) END) AS ''YARALANMA_TARIHI/@value'',
							(SELECT 
								''1'' AS ''OLUM_NEDENI_TANI_KODU/@version'',
								''c3eaabad-8c4c-56ee-e043-14031b0a5530'' AS ''OLUM_NEDENI_TANI_KODU/@codeSystemGuid'',
								ISNULL(CONVERT(VARCHAR(20),HDOLUMNEDENI.ICDKOD),'''') AS ''OLUM_NEDENI_TANI_KODU/@code'',
								ISNULL(TICD.ICDADI,'''') AS ''OLUM_NEDENI_TANI_KODU/@value'',
								''1'' AS ''OLUM_NEDENI_TURU/@version'',
								''95c5182e-9715-4c27-b91c-f178dc383b2'' AS ''OLUM_NEDENI_TURU/@codeSystemGuid'',
								ISNULL(CONVERT(VARCHAR(20),HDOLUMNEDENI.OLUMNEDENITURUID),'''') AS ''OLUM_NEDENI_TURU/@code'',
								ISNULL((SELECT CASE HDOLUMNEDENI.OLUMNEDENITURUID
									WHEN 1
										THEN  ''Son Neden''
									WHEN 2 
										THEN ''Ara Neden''
									WHEN 3 
										THEN ''Temel Neden''
									WHEN 4 
										THEN ''Diğer Nedenler'' END),'''') AS ''OLUM_NEDENI_TURU/@value''
							    FROM HKIMLIK LEFT OUTER JOIN
									HDOLUMNEDENI ON HDOLUMNEDENI.HDOSYAID = HD.HDOSYAID LEFT OUTER JOIN
									TICD ON TICD.ICDKOD = HDOLUMNEDENI.ICDKOD 
								WHERE 
									 HD.HDOSYAID = @HDOSYAID
									 AND HKIMLIK.HKIMLIKID =  HD.HKIMLIKID
									 AND HD.SUBEID = @SUBEID
								    
								FOR XML PATH(''OLUM_NEDENI_BILGISI''),TYPE),
								(SELECT 
								''1'' AS ''OLUM_SEKLI/@version'',
								''c3eaabad-8c4c-56ee-e043-14031b0a5530'' AS ''OLUM_SEKLI/@codeSystemGuid'',
							   ISNULL(CONVERT(VARCHAR(20),HD.OLUMSEKLIID),'''') AS ''OLUM_SEKLI/@code'',
							   ISNULL((SELECT CASE HD.OLUMSEKLIID
								WHEN 1 
									THEN ''Henüz ölüm nedeni belli değil''
								WHEN 2
									THEN ''Cinayet''
								WHEN 3
									THEN ''Diğer kazalar''
								WHEN 4
									THEN ''Doğal ölüm''
								WHEN 5 
									THEN 
										''İntihar''
								WHEN 6 
									THEN ''İş kazası''
								WHEN 7
									THEN ''Trafik kazası''
								WHEN 8 
									THEN ''Ev kazası''
								WHEN 98
									THEN ''Diğer''
								END ),'''') AS ''OLUM_SEKLI/@value''
							FOR XML PATH(''OLUM_SEKLI_BILGISI''),TYPE)
						FOR XML PATH(''OLUM_BILDIRIM''),TYPE)
			FOR XML PATH(''recordData''), TYPE)
	FROM        
		HDOSYA HD  LEFT OUTER JOIN
		SUBELER ON HD.SUBEID = CONVERT(VARCHAR, SUBELER.SUBEID) 
	WHERE CONVERT(VARCHAR, SUBELER.SUBEID) = @SUBEID AND HD.HDOSYAID = @HDOSYAID
	FOR XML PATH (''''), ROOT(''SYSMessage'')
 /*END*/--SILMEYIN ONEMLI
 END', N'DECLARE @SERVISENTEGRASYONID INT
DECLARE @XML1 XML
DECLARE @XML2 VARCHAR(MAX)
DECLARE @XML3 XML
DECLARE @SNOTakipNo VARCHAR(20)
DECLARE @SONUCKODU VARCHAR(20)
DECLARE @SONUCMESAJI VARCHAR(1000)
SET @SERVISENTEGRASYONID = ''#SERVISENTEGRASYONID#''
SET @SNOTakipNo = ''''
SET @XML1 = ''''
SET @XML2 = ''''
SET @XML3 = ''''
SET @XML1 = (SELECT CEVAPXML FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID)
SET @XML2 = (SELECT @XML1.value (''declare namespace s =  "http://schemas.xmlsoap.org/soap/envelope/"; (/s:Envelope/s:Body/*)[1]'',''varchar(4000)'') AS id)
	--GET SONUCKODU FOR HATA IF ANY 
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCKODU = (SELECT T.C.value(''@value'', ''varchar(100)'') AS SONUCKODU
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucKodu)'') AS T(C))
	--GET SONUCMESAJI
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCMESAJI = (SELECT T.C.value(''@value'', ''varchar(1000)'') AS SONUCMESAJI
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucMesaji)'') AS T(C))
	IF	@SONUCKODU = ''S0000''  
		BEGIN
		UPDATE SERVISENTEGRASYON SET DURUM=1,DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1,CEVAPZAMANI=GETDATE() WHERE ID=@SERVISENTEGRASYONID
			UPDATE HDOSYA SET HDOSYA.SNOOLUMGONDERILDI = 1 
			FROM HDOSYA
			 JOIN SERVISENTEGRASYON SE ON SE.KAYITID = HDOSYA.HDOSYAID
			 WHERE SE.ID = @SERVISENTEGRASYONID
		END
	
	ELSE 
		BEGIN
		UPDATE SERVISENTEGRASYON SET DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1 WHERE ID=@SERVISENTEGRASYONID

		INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, SERVISENTEGRASYONID, SONUCKODU, HATA, TARIH) SELECT SERVISGONDERIMFONKSIYONADI, SERVISENTEGRASYON.SUBEID, KAYITID, ID, @SONUCKODU, @SONUCMESAJI, GETDATE() FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID AND 0=(SELECT COUNT(*) FROM SERVISENTEGRASYONHATALARI WHERE SERVISENTEGRASYONID = @SERVISENTEGRASYONID)
		END', N'', N'1hour', 10)
GO
INSERT [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI], [SERVISTIPI], [KAYITTABLOADI], [KAYITALANADI], [GONDERILECEKLERISECSORGU], [ISTEKSQL], [CEVAPSQL], [NOTLAR], [GONDERIMPERYODU], [ONCELIK]) VALUES (N'PATOLOJI_KAYIT', 1, N'HTETKIKKART', N'HTETKIKKARTID', N'SELECT DISTINCT
       HTETKIKKART.HTETKIKKARTID AS TABLOID,
       ISNULL(HDOSYA.SUBEID, 1) AS SUBEID
FROM HTETKIKKART WITH(NOLOCK)
     JOIN HTETKIK WITH(NOLOCK) ON HTETKIK.HTETKIKKARTID = HTETKIKKART.HTETKIKKARTID
     JOIN HESAPISL WITH(NOLOCK) ON HTETKIK.HESAPISLID = HESAPISL.HESAPISLID
     JOIN HDOSYA WITH(NOLOCK) ON HESAPISL.HDOSYAID = HDOSYA.HDOSYAID
     LEFT JOIN TBOLUM AS UYGBOLUM WITH(NOLOCK) ON UYGBOLUM.BOLUMID = HTETKIKKART.UYGBOLUMID
WHERE ISNULL(HTETKIK.USSTETKIKGONDERILDI, 0) = 0
    AND UYGBOLUM.KLINIKKODU IS NOT NULL
    AND UYGBOLUM.KLINIKKODU IN(''182'', ''194'', ''155'')
    AND HTETKIK.DURUM = 2
    AND HTETKIKKART.GIRISTARIH > DATEADD(DAY, -1*(SELECT CONVERT(INT,GONDERIMPERYODU) FROM SERVISENTEGRASYONTANIM WHERE GONDERIMFONKSIYONADI=''HEADER''), GETDATE())
    AND HDOSYA.HDIPTAL = 0
    AND HESAPISL.IPTAL = 0
    AND HESAPISL.ONAYLI = 1
    AND HESAPISL.SNKAYDET = 1
    AND ISNULL(HESAPISL.TEKLIF, 0) = 0', N'DECLARE @SUBEID VARCHAR(10) = ''#SUBEID#''
DECLARE @HTETKIKKARTID VARCHAR(15) = ''#TABLOID#'' 
DECLARE @HATA NVARCHAR(2000) = ''''
DECLARE @SNOTAKIPNO VARCHAR(20)


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

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

SELECT VWTETKIKHASTA.*,SUBELER.SUBEADI,SUBELER.LAB INTO #TMPVWTETKIKHASTA FROM VWTETKIKHASTA JOIN SUBELER ON VWTETKIKHASTA.SUBEID =  SUBELER.SUBEID  WHERE VWTETKIKHASTA.HTETKIKKARTID = @HTETKIKKARTID AND SUBELER.SUBEID=@SUBEID
SELECT VWTETKIK.*,SUBELER.SUBEADI,SUBELER.LAB INTO #TMPVWTETKIK FROM VWTETKIK JOIN SUBELER ON VWTETKIK.SUBEID =  SUBELER.SUBEID WHERE VWTETKIK.HTETKIKKARTID = @HTETKIKKARTID AND SUBELER.SUBEID=@SUBEID


IF (SELECT COUNT(*) FROM SUBELER WHERE SUBEID = @SUBEID) = 0 
BEGIN
    SET @HATA =  ''İşlemin şube kaydı bulunamadı! ''
END

IF NOT EXISTS(SELECT * FROM #TMPVWTETKIK)
BEGIN
	SET @HATA = @HATA + ''Tetkik kartı için USS''''ye gönderilecek pataloji kaydı bulunmamaktadır! ''
END

IF EXISTS(SELECT * FROM #TMPVWTETKIK WHERE DURUM<>2)
BEGIN
	SET @HATA = @HATA + ISNULL((SELECT TOP 1 ISNULL(#TMPVWTETKIKHASTA.LADISOYADI,'''') + ''''''e '' + ISNULL(CONVERT(VARCHAR,#TMPVWTETKIKHASTA.GIRISTARIH),'''') +'' tarihinde yapılan '' +#TMPVWTETKIK.LITEMADI FROM #TMPVWTETKIK JOIN  #TMPVWTETKIKHASTA ON #TMPVWTETKIK.HTETKIKKARTID=#TMPVWTETKIKHASTA.HTETKIKKARTID WHERE DURUM<>2 ),'''') + + '' işlemi tamamlanmamış durumdadır. ''
END

IF EXISTS(SELECT * FROM #TMPVWTETKIK WHERE SNOGONDERILDI<>1)
BEGIN
	SET @HATA = @HATA + ISNULL((SELECT TOP 1 ISNULL(#TMPVWTETKIKHASTA.LADISOYADI,'''') + ''''''e '' + ISNULL(CONVERT(VARCHAR,#TMPVWTETKIKHASTA.GIRISTARIH),'''') +'' tarihinde yapılan '' +#TMPVWTETKIK.LITEMADI FROM #TMPVWTETKIK JOIN  #TMPVWTETKIKHASTA ON #TMPVWTETKIK.HTETKIKKARTID=#TMPVWTETKIKHASTA.HTETKIKKARTID WHERE DURUM<>2 ),'''')++ '' işlemi USS''''ye hizmet gönderimini yapınız ''
END

			
IF @HATA=''''
BEGIN
	--DIŞ İSTEK DEĞİLSE
	IF NOT EXISTS (SELECT #TMPVWTETKIK.HTETKIKID FROM #TMPVWTETKIKHASTA JOIN  #TMPVWTETKIK ON #TMPVWTETKIK.HTETKIKKARTID = #TMPVWTETKIKHASTA.HTETKIKKARTID WHERE #TMPVWTETKIKHASTA.LAB = 1 OR #TMPVWTETKIKHASTA.DISISTEK=1)
	BEGIN
		--OPHESAPISLID BOŞSA
		IF EXISTS(SELECT #TMPVWTETKIK.OPHESAPISLID FROM #TMPVWTETKIK WHERE #TMPVWTETKIK.HTETKIKKARTID = @HTETKIKKARTID AND #TMPVWTETKIK.OPHESAPISLID IS NULL)
		BEGIN
			--AYAKTANSA
			IF (SELECT #TMPVWTETKIKHASTA.MDLTEDAVITURU FROM #TMPVWTETKIKHASTA WHERE #TMPVWTETKIKHASTA.HTETKIKKARTID = @HTETKIKKARTID) = ''A''
			BEGIN
				
				IF EXISTS(	SELECT TOP 1 VWMUAYENEISL.HESAPISLID 
							FROM VWMUAYENEISL 
							JOIN VWTETKIK ON VWMUAYENEISL.HDOSYAID = VWTETKIK.HDOSYAID 
											AND VWMUAYENEISL.UYGDRID = VWTETKIK.ISTDRID
											AND VWMUAYENEISL.HMTARIH <= VWTETKIK.ITARIH
							WHERE VWTETKIK.HTETKIKKARTID = @HTETKIKKARTID)
				BEGIN
				
					UPDATE VWTETKIKGUNCELLE 
						SET VWTETKIKGUNCELLE.OPHESAPISLID = (
												SELECT TOP 1 VWMUAYENEISL.HESAPISLID 
												FROM VWMUAYENEISL 
												JOIN VWTETKIK ON VWMUAYENEISL.HDOSYAID = VWTETKIK.HDOSYAID 
																AND VWMUAYENEISL.UYGDRID = VWTETKIK.ISTDRID 
																AND VWMUAYENEISL.HMTARIH <= VWTETKIK.ITARIH
												WHERE VWTETKIK.HTETKIKKARTID = @HTETKIKKARTID
												ORDER BY VWMUAYENEISL.HMTARIH DESC
											)
					FROM VWTETKIK VWTETKIKGUNCELLE
					WHERE VWTETKIKGUNCELLE.HTETKIKKARTID = @HTETKIKKARTID
					AND VWTETKIKGUNCELLE.OPHESAPISLID IS NULL
					AND VWTETKIKGUNCELLE.SUBEID = @SUBEID

					UPDATE VWTETKIKGUNCELLE 
						SET VWTETKIKGUNCELLE.OPHESAPISLID = (
												SELECT TOP 1 VWMUAYENEISL.HESAPISLID 
												FROM VWMUAYENEISL 
												JOIN VWTETKIK ON VWMUAYENEISL.HDOSYAID = VWTETKIK.HDOSYAID 
																AND VWMUAYENEISL.UYGDRID = VWTETKIK.ISTDRID 
																AND VWMUAYENEISL.HMTARIH <= VWTETKIK.ITARIH
												WHERE VWTETKIK.HTETKIKKARTID = @HTETKIKKARTID
												ORDER BY VWMUAYENEISL.HMTARIH DESC
											)
					FROM #TMPVWTETKIK VWTETKIKGUNCELLE
					WHERE VWTETKIKGUNCELLE.HTETKIKKARTID = @HTETKIKKARTID
					AND VWTETKIKGUNCELLE.OPHESAPISLID IS NULL
					AND VWTETKIKGUNCELLE.SUBEID = @SUBEID
				
				END
				ELSE
				BEGIN
					SET @HATA = @HATA + (SELECT TOP 1 LADISOYADI+'' e ''+CONVERT(NVARCHAR(20), GIRISTARIH) + '' tarihinde yapılan ''+ LITEMADI + '' işlemi muayene kaydına bağlı değildir. İşlemin bulunduğu dosyada tetkik işleminin isteyen doktoru tarafından takip edilen işlemin istendiği tarih ve saatin öncesinde hastanın muayene işleminin bulunması gerekmektedir.''
										 FROM #TMPVWTETKIK
										 WHERE #TMPVWTETKIK.HTETKIKKARTID = @HTETKIKKARTID AND #TMPVWTETKIK.OPHESAPISLID IS NULL)
				END
			END
			ELSE--AYAKTAN DEĞİLSE
			BEGIN
				IF EXISTS(	SELECT TOP 1 VWYATIS.HESAPISLID 
							FROM VWYATIS 
							JOIN VWTETKIK ON VWYATIS.HDOSYAID = VWTETKIK.HDOSYAID 
											AND VWYATIS.UYGDRID = VWTETKIK.ISTDRID
											AND VWYATIS.HYYATISTARIH <= VWTETKIK.ITARIH
											AND (HYCIKISTARIH IS NULL OR HYCIKISTARIH >=VWTETKIK.ITARIH)
							WHERE VWTETKIK.HTETKIKKARTID = @HTETKIKKARTID)
				BEGIN
				
					UPDATE VWTETKIKGUNCELLE 
						SET VWTETKIKGUNCELLE.OPHESAPISLID = (
												SELECT TOP 1 VWYATIS.HESAPISLID 
												FROM VWYATIS 
												JOIN VWTETKIK ON VWYATIS.HDOSYAID = VWTETKIK.HDOSYAID 
																AND VWYATIS.UYGDRID = VWTETKIK.ISTDRID 
																AND VWYATIS.HYYATISTARIH <= VWTETKIK.ITARIH
																AND (HYCIKISTARIH IS NULL OR HYCIKISTARIH >=VWTETKIK.ITARIH)
												WHERE VWTETKIK.HTETKIKKARTID = @HTETKIKKARTID
												ORDER BY  VWYATIS.HYYATISTARIH DESC
											)
					FROM VWTETKIK VWTETKIKGUNCELLE
					WHERE VWTETKIKGUNCELLE.HTETKIKKARTID = @HTETKIKKARTID
					AND VWTETKIKGUNCELLE.OPHESAPISLID IS NULL
					AND VWTETKIKGUNCELLE.SUBEID = @SUBEID


					UPDATE VWTETKIKGUNCELLE 
						SET VWTETKIKGUNCELLE.OPHESAPISLID = (
												SELECT TOP 1 VWYATIS.HESAPISLID 
												FROM VWYATIS 
												JOIN VWTETKIK ON VWYATIS.HDOSYAID = VWTETKIK.HDOSYAID 
																AND VWYATIS.UYGDRID = VWTETKIK.ISTDRID 
																AND VWYATIS.HYYATISTARIH <= VWTETKIK.ITARIH
																AND (HYCIKISTARIH IS NULL OR HYCIKISTARIH >=VWTETKIK.ITARIH)
												WHERE VWTETKIK.HTETKIKKARTID = @HTETKIKKARTID
												ORDER BY  VWYATIS.HYYATISTARIH DESC
											)
					FROM #TMPVWTETKIK VWTETKIKGUNCELLE
					WHERE VWTETKIKGUNCELLE.HTETKIKKARTID = @HTETKIKKARTID
					AND VWTETKIKGUNCELLE.OPHESAPISLID IS NULL
					AND VWTETKIKGUNCELLE.SUBEID = @SUBEID
				
				END
				ELSE
				BEGIN
					SET @HATA = @HATA + (SELECT TOP 1 LADISOYADI+'' e ''+CONVERT(NVARCHAR(20), GIRISTARIH) + '' tarihinde yapılan ''+ LITEMADI + '' işlemi yatış kaydına bağlı değildir. İşlemin bulunduğu dosyada tetkik işleminin isteyen doktoru tarafından takip edilen işlemin istendiği tarih ve saatin öncesinde hastanın muayene işleminin bulunması gerekmektedir.''
										 FROM #TMPVWTETKIK
										 WHERE #TMPVWTETKIK.HTETKIKKARTID = @HTETKIKKARTID AND #TMPVWTETKIK.OPHESAPISLID IS NULL)
				END
			END--AYAKTANSA SON
		END
		ELSE--OPHESAPISLID BOŞ DEĞİLSE
		BEGIN
			--AYAKTANSA
			IF (SELECT #TMPVWTETKIKHASTA.MDLTEDAVITURU FROM #TMPVWTETKIKHASTA WHERE #TMPVWTETKIKHASTA.HTETKIKKARTID = @HTETKIKKARTID) = ''A''
			BEGIN
				IF EXISTS(SELECT SNOTAKIPNO FROM VWMUAYENEISL WITH(NOLOCK) WHERE HESAPISLID IN (SELECT OPHESAPISLID FROM #TMPVWTETKIK) AND ISNULL(SNOTAKIPNO,'''')='''')
				BEGIN
					SET @HATA = @HATA +  ''Tetkik işleminin bağlı olduğu muayene kaydı sistemde bulunamadı. ''
				END
			END
			ELSE--AYAKTAN DEĞİLSE
			BEGIN
				IF EXISTS(SELECT SNOTAKIPNO FROM VWYATIS WITH(NOLOCK) WHERE HESAPISLID IN (SELECT OPHESAPISLID FROM #TMPVWTETKIK) AND ISNULL(SNOTAKIPNO,'''')='''')
				BEGIN
					SET @HATA = @HATA +  ''Tetkik işleminin bağlı olduğu muayene kaydı sistemde bulunamadı. ''
				END
			END--AYAKTANSA SON
		END--OPHESAPISLID BOŞSA SON

		--AYAKTANSA
		IF (SELECT #TMPVWTETKIKHASTA.MDLTEDAVITURU FROM #TMPVWTETKIKHASTA WHERE #TMPVWTETKIKHASTA.HTETKIKKARTID = @HTETKIKKARTID) = ''A''
		BEGIN
			SET @SNOTAKIPNO = ISNULL((SELECT TOP 1 SNOTAKIPNO FROM VWMUAYENEISL (NOLOCK) WHERE HESAPISLID=(SELECT TOP 1 OPHESAPISLID FROM #TMPVWTETKIK WHERE OPHESAPISLID IS NOT NULL ORDER BY OPHESAPISLID DESC) ORDER BY HESAPISLID DESC),'''')
		END--AYAKTAN DEĞİLSE
		ELSE
		BEGIN
			SET @SNOTAKIPNO = ISNULL((SELECT TOP 1 SNOTAKIPNO FROM VWYATIS (NOLOCK) WHERE HESAPISLID=(SELECT TOP 1 OPHESAPISLID FROM #TMPVWTETKIK WHERE OPHESAPISLID IS NOT NULL ORDER BY OPHESAPISLID DESC) ORDER BY HESAPISLID DESC),'''')
		END--AYAKTANSA SON

	END
	ELSE--DIŞ İSTEKSE
	BEGIN
		SET @SNOTAKIPNO = ISNULL((SELECT SNOTAKIPNO FROM #TMPVWTETKIKHASTA),'''')
		IF (@SNOTAKIPNO = '''') SET @HATA = @HATA + ''Tetkik kartı için USS''''ye hasta kaydını yapınız. ''
	END
END--HATA YOKSA

IF (@SNOTAKIPNO = '''' AND @HATA='''') SET @HATA = @HATA + ''Önce hasta kaydını gerçekleştiriniz. ''

IF EXISTS(SELECT HTETKIKID FROM #TMPVWTETKIK WHERE  ISNULL(ISTDRTCKIMLIKNO,'''')='''')
BEGIN
    SET @HATA = @HATA + '' '' + ''Tetkik istemini yapan doktorun TC Kimlik numarası tanımlanmamış. ''
END
IF EXISTS(SELECT HTETKIKID FROM #TMPVWTETKIK WHERE  ISNULL(SONUCTARIH,'''')='''')
BEGIN
    SET @HATA = @HATA + '' '' + ''Tetkikin sonuç zamanı (raporlama tarihi) girilmemiş. ''
END
IF EXISTS(SELECT HTETKIKID FROM #TMPVWTETKIK WHERE  ISNULL(UYGDRID,0)=0 AND ISNULL(TETKIKDOKTORID,0)=0)
BEGIN
    SET @HATA = @HATA + '' '' + ''Tetkiki uygulayan doktorun TC Kimlik Numarası tanımlanmamış. ''
END
IF EXISTS(SELECT HTETKIKID FROM #TMPVWTETKIK LEFT JOIN TTETKIKDOKTOR ON TTETKIKDOKTOR.TETKIKDOKTORID = #TMPVWTETKIK.TETKIKDOKTORID WHERE  ISNULL(TTETKIKDOKTOR.TETKIKDOKTORID,0)=0)
BEGIN
    SET @HATA = @HATA + '' '' + ''Tetkiki raporlayan doktorun TC Kimlik Numarası tanımlanmamış. ''
END
IF EXISTS(SELECT HTETKIKID FROM #TMPVWTETKIK WHERE  ISNULL(NUMUNEDOKUOZELID,0)=0)
BEGIN
    SET @HATA = @HATA + '' '' + ''Tetkik numunesinin alındığı dokunun temel özelliği girilmemiş. ''
END
IF EXISTS(SELECT HTETKIKID FROM #TMPVWTETKIK WHERE  ISNULL(NUMUNEALINMASEKLIID,0)=0)
BEGIN
    SET @HATA = @HATA + '' '' + ''Tetkikin numunesinin alınma şekli girilmemiş. ''
END
IF EXISTS(SELECT HTETKIKID FROM #TMPVWTETKIK WHERE  ISNULL(PATPREPARATDRMID,0)=0)
BEGIN
    SET @HATA = @HATA + '' '' + ''Patoloji preparatı durumu girilmemiş. ''
END
IF EXISTS(SELECT HTETKIKID FROM #TMPVWTETKIK WHERE  ISNULL(ICDOYERLESIMYERIKOD,0)=0)
BEGIN
    SET @HATA = @HATA + '' '' + ''Yerleşim yeri girilmemiş. ''
END
IF EXISTS(SELECT HTETKIKID FROM #TMPVWTETKIK WHERE  ISNULL(MORFOLOJIKOD,0)=0)
BEGIN
    SET @HATA = @HATA + '' '' + ''Yerleşim yeri girilmemiş. ''
END


IF @HATA<>''''
BEGIN
    IF NOT EXISTS(SELECT ID FROM SERVISENTEGRASYONHATALARI WHERE SERVISGONDERIMFONKSIYONADI=''PATOLOJI_KAYIT'' AND KAYITID=@HTETKIKKARTID AND SUBEID=@SUBEID AND HATA=@HATA AND TARIH>DATEADD(DAY,-2,GETDATE()))
	INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI,SUBEID,KAYITID,HATA,TARIH) VALUES (''PATOLOJI_KAYIT'',@SUBEID,@HTETKIKKARTID,@HATA ,GETDATE())
END
ELSE
BEGIN
	/*START*/--SILMEYIN ONEMLI
    SELECT 
	   NEWID() AS ''messageGuid/@value'',
	   ''1'' AS ''messageType/@version'',
	   ''0a9ba485-e7e0-4abb-9c86-0a14fd364bb8'' as ''messageType/@codeSystemGuid'',
	   ''201'' AS ''messageType/@code'',
	   ''Patoloji Kayıt'' 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'',
			 ISNULL((SELECT VALUESTR FROM CONFIG WHERE SECTIONSTR=''Saglik-Net'' AND PROGNAME=''MEDISOFT'' AND KEYNAME= @SUBEID +'' numaralı şubenin kurum numarası''),'''') as ''healthcareProvider/@code'',
			 #TMPVWTETKIKHASTA.SUBEADI as ''healthcareProvider/@value''  
			 FOR XML PATH(''author''), TYPE),
			 ''C740D0288ED4C45FE0407C0A04162BDD'' as ''firmaKodu/@value'' ,
			 (
				SELECT 
				    (
					   SELECT 
						  (
							 SELECT 
									#TMPVWTETKIK.HESAPISLID AS ''ISLEM_REFERANS_NUMARASI/@value'',
									LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),#TMPVWTETKIK.GIRISTARIH,120),'' '',''''),''-'',''''),'':'',''''),12)	 AS ''ISTEM_ZAMANI/@value'',
									''1'' AS ''ISTEM_YAPILAN_KLINIK/@version'',
									''c04bee57-c5d4-443d-e040-7b0a6f146a3d'' AS ''ISTEM_YAPILAN_KLINIK/@codeSystemGuid'',
									ISNULL(#TMPVWTETKIK.ISTKLINIKKODU,'''')AS ''ISTEM_YAPILAN_KLINIK/@code'',
									ISNULL(#TMPVWTETKIK.ISTKLINIKADI,'''') AS ''ISTEM_YAPILAN_KLINIK/@value'',
									ISNULL(#TMPVWTETKIK.ISTDRTCKIMLIKNO,'''') AS ''ISTEM_YAPAN_HEKIM_KIMLIK_NUMARASI/@value'',
									ISNULL(LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),#TMPVWTETKIK.SONUCTARIH,120),'' '',''''),''-'',''''),'':'',''''),12),'''') AS ''RAPORLAMA_ZAMANI/@value'',
									(SELECT CASE 
										  WHEN #TMPVWTETKIK.UYGDRID IS NULL 
										  THEN 
											#TMPVWTETKIK.UYGDRTCKIMLIKNO 
										  ELSE
											 ISNULL((SELECT top 1 TTETKIKDOKTOR.DRTCKIMLIKNO FROM TTETKIKDOKTOR 
												WHERE TTETKIKDOKTOR.TETKIKDOKTORID = #TMPVWTETKIK.TETKIKDOKTORID),'''') END) AS ''RAPORLAYAN_HEKIM_KIMLIK_NUMARASI/@value'',
									''1'' AS ''NUMUNENIN_ALINDIGI_DOKUNUN_TEMEL_OZELLIGI/@version'',
									''cf34c46d-c31f-4922-9b74-68cc69412cfc'' AS ''NUMUNENIN_ALINDIGI_DOKUNUN_TEMEL_OZELLIGI/@codeSystemGuid'',
									ISNULL(CONVERT(VARCHAR(20),#TMPVWTETKIK.NUMUNEDOKUOZELID),'''') AS ''NUMUNENIN_ALINDIGI_DOKUNUN_TEMEL_OZELLIGI/@code'',
									ISNULL((SELECT top 1 TNUMUNEDOKUOZEL.NUMUNEDOKUOZELLIGI FROM TNUMUNEDOKUOZEL 
											 WHERE TNUMUNEDOKUOZEL.NUMUNEDOKUOZELID = #TMPVWTETKIK.NUMUNEDOKUOZELID),'''') AS ''NUMUNENIN_ALINDIGI_DOKUNUN_TEMEL_OZELLIGI/@value'',
									''1'' AS ''NUMUNE_ALINMA_SEKLI/@version'',
									''051c2db0-f724-457a-ac46-7d3a741b7ae2'' AS ''NUMUNE_ALINMA_SEKLI/@codeSystemGuid'',
									ISNULL(CONVERT(VARCHAR(20),#TMPVWTETKIK.NUMUNEALINMASEKLIID),'''') AS ''NUMUNE_ALINMA_SEKLI/@code'',
									ISNULL((SELECT TNUMUNEALINMASEKLI.NUMUNEALINMASEKLI FROM TNUMUNEALINMASEKLI WHERE
											 TNUMUNEALINMASEKLI.NUMUNEALINMASEKLIID = #TMPVWTETKIK.NUMUNEALINMASEKLIID),'''') AS ''NUMUNE_ALINMA_SEKLI/@value'',						
									''1'' AS ''PREPARAT_DURUMU/@version'',
									''4016f2d2-9b44-43e1-834d-d1c045419fea'' AS ''PREPARAT_DURUMU/@codeSystemGuid'',
									ISNULL(CONVERT(VARCHAR(20), #TMPVWTETKIK.PATPREPARATDRMID),'''') AS ''PREPARAT_DURUMU/@code'',
									ISNULL((SELECT TPATOLOJIPREPARATDRM.PATPREPARATDRM FROM TPATOLOJIPREPARATDRM WHERE
										 TPATOLOJIPREPARATDRM.PATPREPARATDRMID = #TMPVWTETKIK.PATPREPARATDRMID),'''') AS ''PREPARAT_DURUMU/@value'',
									''1'' AS ''YERLESIM_YERI/@version'',
									''fc24f548-c383-4855-be0b-0f1d23599bba'' AS ''YERLESIM_YERI/@codeSystemGuid'',
									ISNULL(CONVERT(VARCHAR(20),#TMPVWTETKIK.ICDOYERLESIMYERIKOD),'''') AS ''YERLESIM_YERI/@code'',
									ISNULL((SELECT TICDOYERLESIMYERI.TANIM FROM TICDOYERLESIMYERI
											   WHERE TICDOYERLESIMYERI.KOD = #TMPVWTETKIK.ICDOYERLESIMYERIKOD),'''') AS ''YERLESIM_YERI/@value'',
									''1'' AS ''MORFOLOJI_KODU/@version'',
									''40220f50-1c9c-43c9-9bbd-45794d5cc7b2'' AS ''MORFOLOJI_KODU/@codeSystemGuid'',
									ISNULL(CONVERT(VARCHAR(20),#TMPVWTETKIK.MORFOLOJIKOD),'''') AS ''MORFOLOJI_KODU/@code'',
									ISNULL((SELECT TICDOMORFOLOJI.TANIM FROM TICDOMORFOLOJI
												WHERE TICDOMORFOLOJI.MORFOLOJIKOD = #TMPVWTETKIK.MORFOLOJIKOD),'''') AS ''MORFOLOJI_KODU/@value'',
									ISNULL(DBO.RTF2Text(#TMPVWTETKIK.HTSONUC),'''') AS ''TETKIK_SONUCU/@value''
							 FROM #TMPVWTETKIK							 
							 WHERE   #TMPVWTETKIK.HTETKIKKARTID = #TMPVWTETKIKHASTA.HTETKIKKARTID
							FOR XML PATH(''PATOLOJI_BILGISI''),TYPE
						)
					FOR XML PATH(''HASTA_PATOLOJI_BILGILERI''),TYPE
				),					
                   (
				    SELECT ISNULL(@SNOTAKIPNO, '''' ) AS ''SYSTakipNo/@value''
				    FOR XML PATH(''HASTA_TAKIP_BILGISI''), TYPE 
				)							
			 FOR XML PATH(''recordData''), TYPE
		  )
	   FROM #TMPVWTETKIKHASTA WITH(NOLOCK)
    FOR XML PATH (''''), ROOT(''SYSMessage'')
 /*END*/--SILMEYIN ONEMLI
 END
IF OBJECT_ID(''tempdb..#TMPVWTETKIKHASTA'') IS NOT NULL 
DROP TABLE #TMPVWTETKIKHASTA

IF OBJECT_ID(''tempdb..#TMPVWTETKIK'') IS NOT NULL 
DROP TABLE #TMPVWTETKIK', N'DECLARE @SERVISENTEGRASYONID INT
DECLARE @XML1 XML
DECLARE @XML2 VARCHAR(MAX)
DECLARE @XML3 XML
DECLARE @SNOTakipNo VARCHAR(20)
DECLARE @SONUCKODU VARCHAR(20)
DECLARE @SONUCMESAJI VARCHAR(1000)
SET @SERVISENTEGRASYONID = ''#SERVISENTEGRASYONID#''
SET @SNOTakipNo = ''''
SET @XML1 = ''''
SET @XML2 = ''''
SET @XML3 = ''''
SET @XML1 = (SELECT CEVAPXML FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID)
SET @XML2 = (SELECT @XML1.value (''declare namespace s =  "http://schemas.xmlsoap.org/soap/envelope/"; (/s:Envelope/s:Body/*)[1]'',''varchar(4000)'') AS id)
   --GET SNOTAKIPNO 
    SET @XML3 = (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SNOTakipNo = (SELECT T.C.value(''@value'', ''varchar(100)'') AS SNOTakipNo
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/SYSTakipNo)'') AS T(C))
	--GET SONUCKODU FOR HATA IF ANY 
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCKODU = (SELECT T.C.value(''@value'', ''varchar(100)'') AS SONUCKODU
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucKodu)'') AS T(C))
	--GET SONUCMESAJI
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCMESAJI = (SELECT T.C.value(''@value'', ''varchar(1000)'') AS SONUCMESAJI
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucMesaji)'') AS T(C))
	IF	@SONUCKODU = ''S0000''  
		AND  @SNOTakipNo IS NOT NULL 
		BEGIN
			
			UPDATE SERVISENTEGRASYON SET DURUM=1,DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1,CEVAPZAMANI=GETDATE() WHERE ID=@SERVISENTEGRASYONID
			UPDATE VWTETKIK SET VWTETKIK.USSTETKIKGONDERILDI = 1 FROM VWTETKIK 
			JOIN SERVISENTEGRASYON SE ON SE.KAYITID = VWTETKIK.HTETKIKKARTID 
			WHERE SE.ID = @SERVISENTEGRASYONID
		END
	
	ELSE 
		BEGIN
		UPDATE SERVISENTEGRASYON SET DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1 WHERE ID=@SERVISENTEGRASYONID

		INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, SERVISENTEGRASYONID, SONUCKODU, HATA, TARIH) SELECT SERVISGONDERIMFONKSIYONADI, SERVISENTEGRASYON.SUBEID, KAYITID, ID, @SONUCKODU, VWTETKIKHASTA.HADI+ '' ''+ VWTETKIKHASTA.HSOYADI+ '' isimli hasta. Uygulama Bölüm:''+VWTETKIKHASTA.LUYGBOLUM +'' Giriş Tarihi:''+CONVERT(VARCHAR,VWTETKIKHASTA.GIRISTARIH)+'' Uss Kayıt cevabı:''+@SONUCMESAJI, GETDATE() FROM SERVISENTEGRASYON JOIN VWTETKIKHASTA ON VWTETKIKHASTA.HTETKIKKARTID=SERVISENTEGRASYON.KAYITID WHERE ID = @SERVISENTEGRASYONID AND 0=(SELECT COUNT(*) FROM SERVISENTEGRASYONHATALARI WHERE SERVISENTEGRASYONID = @SERVISENTEGRASYONID)
		END', N'', N'1day', 8)
GO
INSERT [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI], [SERVISTIPI], [KAYITTABLOADI], [KAYITALANADI], [GONDERILECEKLERISECSORGU], [ISTEKSQL], [CEVAPSQL], [NOTLAR], [GONDERIMPERYODU], [ONCELIK]) VALUES (N'RADYOLOJI_SONUC_KAYIT_PAKETI', 1, N'HTETKIKKART', N'HTETKIKKARTID', N'SELECT DISTINCT
       HTETKIKKART.HTETKIKKARTID AS TABLOID,
       HDOSYA.SUBEID
FROM HTETKIKKART WITH(NOLOCK)
     JOIN HTETKIK WITH(NOLOCK) ON HTETKIK.HTETKIKKARTID = HTETKIKKART.HTETKIKKARTID
     INNER JOIN HESAPISL WITH(NOLOCK) ON HTETKIK.HESAPISLID = HESAPISL.HESAPISLID
     INNER JOIN HDOSYA WITH(NOLOCK) ON HESAPISL.HDOSYAID = HDOSYA.HDOSYAID
     LEFT JOIN TBOLUM AS UYGBOLUM WITH(NOLOCK) ON UYGBOLUM.BOLUMID = HTETKIKKART.UYGBOLUMID
WHERE HTETKIK.USSTETKIKGONDERILDI = 0
    AND HTETKIK.DURUM = 2
    AND UYGBOLUM.KLINIKKODU IN(''104'', ''130'', ''178'')
    AND HTETKIKKART.GIRISTARIH > DATEADD(DAY, -1*(SELECT CONVERT(INT,GONDERIMPERYODU) FROM SERVISENTEGRASYONTANIM WHERE GONDERIMFONKSIYONADI=''HEADER''), GETDATE())
    AND HDOSYA.HDIPTAL = 0
    AND HESAPISL.IPTAL = 0
    AND HESAPISL.ONAYLI = 1
    AND HESAPISL.SNKAYDET = 1
    AND ISNULL(HESAPISL.TEKLIF, 0) = 0', N'DECLARE @SUBEID VARCHAR(10) = ''#SUBEID#''
DECLARE @HTETKIKKARTID VARCHAR(15) =''#TABLOID#''
DECLARE @HATA NVARCHAR(2000) = ''''
DECLARE @SNOTAKIPNO VARCHAR(20)

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

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

SELECT VWTETKIKHASTA.*,SUBELER.SUBEADI,SUBELER.LAB INTO #TMPVWTETKIKHASTA FROM VWTETKIKHASTA JOIN SUBELER ON VWTETKIKHASTA.SUBEID =  SUBELER.SUBEID  WHERE VWTETKIKHASTA.HTETKIKKARTID = @HTETKIKKARTID AND SUBELER.SUBEID=@SUBEID
SELECT VWTETKIK.*,SUBELER.SUBEADI,SUBELER.LAB INTO #TMPVWTETKIK FROM VWTETKIK JOIN SUBELER ON VWTETKIK.SUBEID =  SUBELER.SUBEID WHERE VWTETKIK.HTETKIKKARTID = @HTETKIKKARTID AND SUBELER.SUBEID=@SUBEID

IF (SELECT COUNT(*) FROM SUBELER WHERE SUBEID = @SUBEID) = 0 
BEGIN
    SET @HATA =  ''İşlemin şube kaydı bulunamadı! ''
END

IF NOT EXISTS(SELECT * FROM #TMPVWTETKIK)
BEGIN
	SET @HATA = @HATA + ''Tetkik kartı için USS''''ye gönderilecek pataloji kaydı bulunmamaktadır! ''
END

IF EXISTS(SELECT * FROM #TMPVWTETKIK WHERE DURUM<>2)
BEGIN
	SET @HATA = @HATA + ISNULL((SELECT TOP 1 ISNULL(#TMPVWTETKIKHASTA.LADISOYADI,'''') + ''''''e '' + ISNULL(CONVERT(VARCHAR,#TMPVWTETKIKHASTA.GIRISTARIH),'''') +'' tarihinde yapılan '' +#TMPVWTETKIK.LITEMADI FROM #TMPVWTETKIK JOIN  #TMPVWTETKIKHASTA ON #TMPVWTETKIK.HTETKIKKARTID=#TMPVWTETKIKHASTA.HTETKIKKARTID WHERE DURUM<>2 ),'''') + + '' işlemi tamamlanmamış durumdadır. ''
END

IF EXISTS(SELECT * FROM #TMPVWTETKIK WHERE SNOGONDERILDI<>1)
BEGIN
	SET @HATA = @HATA + ISNULL((SELECT TOP 1 ISNULL(#TMPVWTETKIKHASTA.LADISOYADI,'''') + ''''''e '' + ISNULL(CONVERT(VARCHAR,#TMPVWTETKIKHASTA.GIRISTARIH),'''') +'' tarihinde yapılan '' +#TMPVWTETKIK.LITEMADI FROM #TMPVWTETKIK JOIN  #TMPVWTETKIKHASTA ON #TMPVWTETKIK.HTETKIKKARTID=#TMPVWTETKIKHASTA.HTETKIKKARTID WHERE DURUM<>2 ),'''')++ '' işlemi USS''''ye hizmet gönderimini yapınız ''
END

			
IF @HATA=''''
BEGIN
	--DIŞ İSTEK DEĞİLSE
	IF NOT EXISTS (SELECT #TMPVWTETKIK.HTETKIKID FROM #TMPVWTETKIKHASTA JOIN  #TMPVWTETKIK ON #TMPVWTETKIK.HTETKIKKARTID = #TMPVWTETKIKHASTA.HTETKIKKARTID WHERE #TMPVWTETKIKHASTA.LAB = 1 OR #TMPVWTETKIKHASTA.DISISTEK=1)
	BEGIN
		--OPHESAPISLID BOŞSA
		IF EXISTS(SELECT #TMPVWTETKIK.OPHESAPISLID FROM #TMPVWTETKIK WHERE #TMPVWTETKIK.HTETKIKKARTID = @HTETKIKKARTID AND #TMPVWTETKIK.OPHESAPISLID IS NULL)
		BEGIN
			--AYAKTANSA
			IF (SELECT #TMPVWTETKIKHASTA.MDLTEDAVITURU FROM #TMPVWTETKIKHASTA WHERE #TMPVWTETKIKHASTA.HTETKIKKARTID = @HTETKIKKARTID) = ''A''
			BEGIN
				
				IF EXISTS(	SELECT TOP 1 VWMUAYENEISL.HESAPISLID 
							FROM VWMUAYENEISL 
							JOIN VWTETKIK ON VWMUAYENEISL.HDOSYAID = VWTETKIK.HDOSYAID 
											AND VWMUAYENEISL.UYGDRID = VWTETKIK.ISTDRID
											AND VWMUAYENEISL.HMTARIH <= VWTETKIK.ITARIH
							WHERE VWTETKIK.HTETKIKKARTID = @HTETKIKKARTID)
				BEGIN
				
					UPDATE VWTETKIKGUNCELLE 
						SET VWTETKIKGUNCELLE.OPHESAPISLID = (
												SELECT TOP 1 VWMUAYENEISL.HESAPISLID 
												FROM VWMUAYENEISL 
												JOIN VWTETKIK ON VWMUAYENEISL.HDOSYAID = VWTETKIK.HDOSYAID 
																AND VWMUAYENEISL.UYGDRID = VWTETKIK.ISTDRID 
																AND VWMUAYENEISL.HMTARIH <= VWTETKIK.ITARIH
												WHERE VWTETKIK.HTETKIKKARTID = @HTETKIKKARTID
												ORDER BY VWMUAYENEISL.HMTARIH DESC
											)
					FROM VWTETKIK VWTETKIKGUNCELLE
					WHERE VWTETKIKGUNCELLE.HTETKIKKARTID = @HTETKIKKARTID
					AND VWTETKIKGUNCELLE.OPHESAPISLID IS NULL
					AND VWTETKIKGUNCELLE.SUBEID = @SUBEID

					UPDATE VWTETKIKGUNCELLE 
						SET VWTETKIKGUNCELLE.OPHESAPISLID = (
												SELECT TOP 1 VWMUAYENEISL.HESAPISLID 
												FROM VWMUAYENEISL 
												JOIN VWTETKIK ON VWMUAYENEISL.HDOSYAID = VWTETKIK.HDOSYAID 
																AND VWMUAYENEISL.UYGDRID = VWTETKIK.ISTDRID 
																AND VWMUAYENEISL.HMTARIH <= VWTETKIK.ITARIH
												WHERE VWTETKIK.HTETKIKKARTID = @HTETKIKKARTID
												ORDER BY VWMUAYENEISL.HMTARIH DESC
											)
					FROM #TMPVWTETKIK VWTETKIKGUNCELLE
					WHERE VWTETKIKGUNCELLE.HTETKIKKARTID = @HTETKIKKARTID
					AND VWTETKIKGUNCELLE.OPHESAPISLID IS NULL
					AND VWTETKIKGUNCELLE.SUBEID = @SUBEID
				
				END
				ELSE
				BEGIN
					SET @HATA = @HATA + (SELECT TOP 1 LADISOYADI+'' e ''+CONVERT(NVARCHAR(20), GIRISTARIH) + '' tarihinde yapılan ''+ LITEMADI + '' işlemi muayene kaydına bağlı değildir. İşlemin bulunduğu dosyada tetkik işleminin isteyen doktoru tarafından takip edilen işlemin istendiği tarih ve saatin öncesinde hastanın muayene işleminin bulunması gerekmektedir.''
										 FROM #TMPVWTETKIK
										 WHERE #TMPVWTETKIK.HTETKIKKARTID = @HTETKIKKARTID AND #TMPVWTETKIK.OPHESAPISLID IS NULL)
				END
			END
			ELSE--AYAKTAN DEĞİLSE
			BEGIN
				IF EXISTS(	SELECT TOP 1 VWYATIS.HESAPISLID 
							FROM VWYATIS 
							JOIN VWTETKIK ON VWYATIS.HDOSYAID = VWTETKIK.HDOSYAID 
											AND VWYATIS.UYGDRID = VWTETKIK.ISTDRID
											AND VWYATIS.HYYATISTARIH <= VWTETKIK.ITARIH
											AND (HYCIKISTARIH IS NULL OR HYCIKISTARIH >=VWTETKIK.ITARIH)
							WHERE VWTETKIK.HTETKIKKARTID = @HTETKIKKARTID)
				BEGIN
				
					UPDATE VWTETKIKGUNCELLE 
						SET VWTETKIKGUNCELLE.OPHESAPISLID = (
												SELECT TOP 1 VWYATIS.HESAPISLID 
												FROM VWYATIS 
												JOIN VWTETKIK ON VWYATIS.HDOSYAID = VWTETKIK.HDOSYAID 
																AND VWYATIS.UYGDRID = VWTETKIK.ISTDRID 
																AND VWYATIS.HYYATISTARIH <= VWTETKIK.ITARIH
																AND (HYCIKISTARIH IS NULL OR HYCIKISTARIH >=VWTETKIK.ITARIH)
												WHERE VWTETKIK.HTETKIKKARTID = @HTETKIKKARTID
												ORDER BY  VWYATIS.HYYATISTARIH DESC
											)
					FROM VWTETKIK VWTETKIKGUNCELLE
					WHERE VWTETKIKGUNCELLE.HTETKIKKARTID = @HTETKIKKARTID
					AND VWTETKIKGUNCELLE.OPHESAPISLID IS NULL
					AND VWTETKIKGUNCELLE.SUBEID = @SUBEID


					UPDATE VWTETKIKGUNCELLE 
						SET VWTETKIKGUNCELLE.OPHESAPISLID = (
												SELECT TOP 1 VWYATIS.HESAPISLID 
												FROM VWYATIS 
												JOIN VWTETKIK ON VWYATIS.HDOSYAID = VWTETKIK.HDOSYAID 
																AND VWYATIS.UYGDRID = VWTETKIK.ISTDRID 
																AND VWYATIS.HYYATISTARIH <= VWTETKIK.ITARIH
																AND (HYCIKISTARIH IS NULL OR HYCIKISTARIH >=VWTETKIK.ITARIH)
												WHERE VWTETKIK.HTETKIKKARTID = @HTETKIKKARTID
												ORDER BY  VWYATIS.HYYATISTARIH DESC
											)
					FROM #TMPVWTETKIK VWTETKIKGUNCELLE
					WHERE VWTETKIKGUNCELLE.HTETKIKKARTID = @HTETKIKKARTID
					AND VWTETKIKGUNCELLE.OPHESAPISLID IS NULL
					AND VWTETKIKGUNCELLE.SUBEID = @SUBEID
				
				END
				ELSE
				BEGIN
					SET @HATA = @HATA + (SELECT TOP 1 LADISOYADI+'' e ''+CONVERT(NVARCHAR(20), GIRISTARIH) + '' tarihinde yapılan ''+ LITEMADI + '' işlemi yatış kaydına bağlı değildir. İşlemin bulunduğu dosyada tetkik işleminin isteyen doktoru tarafından takip edilen işlemin istendiği tarih ve saatin öncesinde hastanın muayene işleminin bulunması gerekmektedir.''
										 FROM #TMPVWTETKIK
										 WHERE #TMPVWTETKIK.HTETKIKKARTID = @HTETKIKKARTID AND #TMPVWTETKIK.OPHESAPISLID IS NULL)
				END
			END--AYAKTANSA SON
		END
		ELSE--OPHESAPISLID BOŞ DEĞİLSE
		BEGIN
			--AYAKTANSA
			IF (SELECT #TMPVWTETKIKHASTA.MDLTEDAVITURU FROM #TMPVWTETKIKHASTA WHERE #TMPVWTETKIKHASTA.HTETKIKKARTID = @HTETKIKKARTID) = ''A''
			BEGIN
				IF EXISTS(SELECT SNOTAKIPNO FROM VWMUAYENEISL WITH(NOLOCK) WHERE HESAPISLID IN (SELECT OPHESAPISLID FROM #TMPVWTETKIK) AND ISNULL(SNOTAKIPNO,'''')='''')
				BEGIN
					SET @HATA = @HATA +  ''Tetkik işleminin bağlı olduğu muayene kaydı sistemde bulunamadı. ''
				END
			END
			ELSE--AYAKTAN DEĞİLSE
			BEGIN
				IF EXISTS(SELECT SNOTAKIPNO FROM VWYATIS WITH(NOLOCK) WHERE HESAPISLID IN (SELECT OPHESAPISLID FROM #TMPVWTETKIK) AND ISNULL(SNOTAKIPNO,'''')='''')
				BEGIN
					SET @HATA = @HATA +  ''Tetkik işleminin bağlı olduğu muayene kaydı sistemde bulunamadı. ''
				END
			END--AYAKTANSA SON
		END--OPHESAPISLID BOŞSA SON

		--AYAKTANSA
		IF (SELECT #TMPVWTETKIKHASTA.MDLTEDAVITURU FROM #TMPVWTETKIKHASTA WHERE #TMPVWTETKIKHASTA.HTETKIKKARTID = @HTETKIKKARTID) = ''A''
		BEGIN
			SET @SNOTAKIPNO = ISNULL((SELECT TOP 1 SNOTAKIPNO FROM VWMUAYENEISL (NOLOCK) WHERE HESAPISLID=(SELECT TOP 1 OPHESAPISLID FROM #TMPVWTETKIK WHERE OPHESAPISLID IS NOT NULL ORDER BY OPHESAPISLID DESC) ORDER BY HESAPISLID DESC),'''')
		END--AYAKTAN DEĞİLSE
		ELSE
		BEGIN
			SET @SNOTAKIPNO = ISNULL((SELECT TOP 1 SNOTAKIPNO FROM VWYATIS (NOLOCK) WHERE HESAPISLID=(SELECT TOP 1 OPHESAPISLID FROM #TMPVWTETKIK WHERE OPHESAPISLID IS NOT NULL ORDER BY OPHESAPISLID DESC) ORDER BY HESAPISLID DESC),'''')
		END--AYAKTANSA SON

	END
	ELSE--DIŞ İSTEKSE
	BEGIN
		SET @SNOTAKIPNO = ISNULL((SELECT SNOTAKIPNO FROM #TMPVWTETKIKHASTA),'''')
		IF (@SNOTAKIPNO = '''') SET @HATA = @HATA + ''Tetkik kartı için USS''''ye hasta kaydını yapınız. ''
	END
END--HATA YOKSA

IF (@SNOTAKIPNO = '''' AND @HATA='''') SET @HATA = @HATA + ''Önce hasta kaydını gerçekleştiriniz. ''



IF @HATA<>''''
BEGIN
     IF NOT EXISTS(SELECT ID FROM SERVISENTEGRASYONHATALARI WHERE SERVISGONDERIMFONKSIYONADI=''RADYOLOJI_KAYIT'' AND KAYITID=@HTETKIKKARTID AND SUBEID=@SUBEID AND HATA=@HATA AND TARIH>DATEADD(DAY,-2,GETDATE()))
	INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI,SUBEID,KAYITID,HATA,TARIH) VALUES (''RADYOLOJI_KAYIT'',@SUBEID,@HTETKIKKARTID, @HATA,GETDATE())
END
ELSE
BEGIN

	/*START*/--SILMEYIN ONEMLI
    SELECT 
	   NEWID() AS ''messageGuid/@value'',
	   ''1'' AS ''messageType/@version'',
	   ''0a9ba485-e7e0-4abb-9c86-0a14fd364bb8'' as ''messageType/@codeSystemGuid'',
	   ''409'' AS ''messageType/@code'',
	   ''Radyoloji Sonuç Kayıt Paketi'' 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'',
			 ISNULL((SELECT VALUESTR FROM CONFIG WHERE SECTIONSTR=''Saglik-Net'' AND PROGNAME=''MEDISOFT'' AND KEYNAME= @SUBEID +'' numaralı şubenin kurum numarası''),'''') as ''healthcareProvider/@code'',
			 #TMPVWTETKIKHASTA.SUBEADI as ''healthcareProvider/@value''  
		  FOR XML PATH(''author''), TYPE
	   ),
	   ''C740D0288ED4C45FE0407C0A04162BDD'' as ''firmaKodu/@value'' ,
	   (
		  SELECT 
			 (
				SELECT ISNULL(@SNOTAKIPNO, '''' ) AS ''SYSTakipNo/@value''
				FOR XML PATH(''HASTA_TAKIP_BILGISI''), TYPE 
			 ),
			 (
				SELECT 
				    (
					   SELECT 
						  #TMPVWTETKIK.HESAPISLID AS ''ISLEM_REFERANS_NUMARASI/@value'',
						  ISNULL(LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),#TMPVWTETKIK.SONUCTARIH,120),'' '',''''),''-'',''''),'':'',''''),12),'''') AS ''RAPOR_ONAYLANMA_ZAMANI/@value'',
						  (
							 SELECT 
								ISNULL(#TMPVWTETKIK.RAPORBASLIK,'''')  AS ''SONUC_BASLIK/@value'',
								DBO.RTF2Text(#TMPVWTETKIK.HTRAPORU)  AS ''SONUC_ACIKLAMA/@value''								    
							 FOR XML PATH(''RAPOR_SONUC_BILGISI''),TYPE
						  )
					   FROM #TMPVWTETKIK WITH(NOLOCK)
					   WHERE  #TMPVWTETKIK.HTETKIKKARTID = #TMPVWTETKIKHASTA.HTETKIKKARTID
					   FOR XML PATH(''RADYOLOJI_BILGISI''),TYPE
				    )
				FOR XML PATH(''RADYOLOJI_SONUC_KAYIT''),TYPE
			 )		
		  FOR XML PATH(''recordData''), TYPE
	   )
    FROM #TMPVWTETKIKHASTA	
    FOR XML PATH (''''), ROOT(''SYSMessage'')
 /*END*/--SILMEYIN ONEMLI
 END
IF OBJECT_ID(''tempdb..#TMPVWTETKIKHASTA'') IS NOT NULL 
DROP TABLE #TMPVWTETKIKHASTA

IF OBJECT_ID(''tempdb..#TMPVWTETKIK'') IS NOT NULL 
DROP TABLE #TMPVWTETKIK
', N'DECLARE @SERVISENTEGRASYONID INT
DECLARE @XML1 XML
DECLARE @XML2 VARCHAR(MAX)
DECLARE @XML3 XML
DECLARE @SNOTakipNo VARCHAR(20)
DECLARE @SONUCKODU VARCHAR(20)
DECLARE @SONUCMESAJI VARCHAR(1000)
SET @SERVISENTEGRASYONID = ''#SERVISENTEGRASYONID#''
SET @SNOTakipNo = ''''
SET @XML1 = ''''
SET @XML2 = ''''
SET @XML3 = ''''
SET @XML1 = (SELECT CEVAPXML FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID)
SET @XML2 = (SELECT @XML1.value (''declare namespace s =  "http://schemas.xmlsoap.org/soap/envelope/"; (/s:Envelope/s:Body/*)[1]'',''varchar(4000)'') AS id)
   --GET SNOTAKIPNO 
    SET @XML3 = (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SNOTakipNo = (SELECT T.C.value(''@value'', ''varchar(100)'') AS SNOTakipNo
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/SYSTakipNo)'') AS T(C))
	--GET SONUCKODU FOR HATA IF ANY 
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCKODU = (SELECT T.C.value(''@value'', ''varchar(100)'') AS SONUCKODU
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucKodu)'') AS T(C))
	--GET SONUCMESAJI
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCMESAJI = (SELECT T.C.value(''@value'', ''varchar(1000)'') AS SONUCMESAJI
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucMesaji)'') AS T(C))
	IF	@SONUCKODU = ''S0000''  
		AND  @SNOTakipNo IS NOT NULL 
		BEGIN
		
			UPDATE SERVISENTEGRASYON SET DURUM=1,DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1,CEVAPZAMANI=GETDATE() WHERE ID=@SERVISENTEGRASYONID
			UPDATE VWTETKIK SET VWTETKIK.USSTETKIKGONDERILDI = 1 FROM VWTETKIK 
			JOIN SERVISENTEGRASYON SE ON SE.KAYITID = VWTETKIK.HTETKIKKARTID 
			WHERE SE.ID = @SERVISENTEGRASYONID
		END
	
	ELSE 
		BEGIN
		
			UPDATE SERVISENTEGRASYON SET DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1 WHERE ID=@SERVISENTEGRASYONID

			INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, SERVISENTEGRASYONID, SONUCKODU, HATA, TARIH) SELECT SERVISGONDERIMFONKSIYONADI, SERVISENTEGRASYON.SUBEID, KAYITID, ID, @SONUCKODU, VWTETKIKHASTA.HADI+ '' ''+ VWTETKIKHASTA.HSOYADI+ '' isimli hasta. Uygulama Bölüm:''+VWTETKIKHASTA.LUYGBOLUM +'' Giriş Tarihi:''+CONVERT(VARCHAR,VWTETKIKHASTA.GIRISTARIH)+'' Uss Kayıt cevabı:''+@SONUCMESAJI, GETDATE() FROM SERVISENTEGRASYON JOIN VWTETKIKHASTA ON VWTETKIKHASTA.HTETKIKKARTID=SERVISENTEGRASYON.KAYITID WHERE ID = @SERVISENTEGRASYONID AND 0=(SELECT COUNT(*) FROM SERVISENTEGRASYONHATALARI WHERE SERVISENTEGRASYONID = @SERVISENTEGRASYONID)
		END', N'', N'1day', 8)
GO
INSERT [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI], [SERVISTIPI], [KAYITTABLOADI], [KAYITALANADI], [GONDERILECEKLERISECSORGU], [ISTEKSQL], [CEVAPSQL], [NOTLAR], [GONDERIMPERYODU], [ONCELIK]) VALUES (N'USSAYSONUHESAPLA', 0, N'USSAYSONUGONDERIM', N'USSAYSONUGONDERIMID', N'SELECT TOP 1 KLINIKKALITEKOD FROM TKLINIKKALITE', N'EXEC SPUSS_KLINIKKALITESAYIYAZ_AYLIK 1,NULL,NULL,NULL', N'', N'', N'1monthlast', 4)
GO
INSERT [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI], [SERVISTIPI], [KAYITTABLOADI], [KAYITALANADI], [GONDERILECEKLERISECSORGU], [ISTEKSQL], [CEVAPSQL], [NOTLAR], [GONDERIMPERYODU], [ONCELIK]) VALUES (N'USSGUNSONUHESAPLA', 0, N'USSGUNSONUGONDERIM', N'USSGUNSONUGONDERIMID', N'SELECT TOP 1 KLINIKKALITEKOD FROM TKLINIKKALITE', N'EXEC SPUSS_KLINIKKALITESAYIYAZ_GUNLUK 1,NULL,NULL,NULL', N'', N'', N'1daylast', 4)
GO
INSERT [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI], [SERVISTIPI], [KAYITTABLOADI], [KAYITALANADI], [GONDERILECEKLERISECSORGU], [ISTEKSQL], [CEVAPSQL], [NOTLAR], [GONDERIMPERYODU], [ONCELIK]) VALUES (N'VERI_PAKETI_SILME', 1, NULL, NULL, N'SELECT CONVERT(VARCHAR, LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),GETDATE(),120),'' '',''''),''-'',''''),'':'',''''),10)) AS TABLOID,
       ISNULL(VWMUAYENE.SUBEID, 1) AS SUBEID
FROM VWMUAYENE
WHERE VWMUAYENE.HMUAYENEISLID = @HMUAYENEISLID', N'DECLARE @SUBEID  VARCHAR(10)  = ''#SUBEID#'' 
DECLARE @BULASICITAKIP VARCHAR(15) = ''#BULASICITAKIP#''
DECLARE @HASIID VARCHAR(10) = ''#HASIID#''
DECLARE @AFETOLAYTAKIPID VARCHAR(10) = ''#AFETOLAYTAKIPID#''
DECLARE @HTETKIKKARTID VARCHAR(10) = ''#HTETEKIKKARTID#''
DECLARE @HATA NVARCHAR(2000) = ''''
 IF @HATA <> ''''
    BEGIN
	   INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI,HATA,TARIH) VALUES (''VERI_PAKET_SILME'',@HATA,GETDATE())
  END
/*START*/--SILMEYIN ONEMLI
SELECT 
	(
	  SELECT 
		NEWID() AS  ''messageGuid/@value'',
		''1'' AS ''messageType/@version'',
		''0a9ba485-e7e0-4abb-9c86-0a14fd364bb8'' AS ''messageType/@codeSystemGuid'',
	    ''200'' AS ''messageType/@code'',
	    ''Veri Paketi Silme'' 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'',
				ISNULL((SELECT VALUESTR FROM CONFIG WHERE SECTIONSTR =''Saglik-Net'' AND PROGNAME =''MEDISOFT'' AND KEYNAME =
				CONVERT (VARCHAR,@SUBEID) +'' numaralı şubenin kurum numarası''),'''') AS ''healthcareProvider/@code'',
				SUBELER.SUBEADI as ''healthcareProvider/@value''
				FOR XML PATH(''author''), TYPE),
			    ''C740D0288ED4C45FE0407C0A04162BDD''  AS ''firmaKodu/@value'',
				(SELECT 
					(SELECT 
							''1'' AS ''SILINECEK_VERI_PAKETI/@version'',
							''0a9ba485-e7e0-4abb-9c86-0a14fd364bb8'' AS ''SILINECEK_VERI_PAKETI/@codeSystemGuid'',
					ISNULL((SELECT
						(SELECT CASE 
							WHEN EXISTS(SELECT * FROM VWBULASICITAKIP WHERE BULASICITAKIPID = @BULASICITAKIP) THEN ''214''
							WHEN EXISTS(SELECT * FROM VWTETKIKHASTA WHERE  HTETKIKKARTID = @HTETKIKKARTID)
							THEN ''201''
							WHEN EXISTS (SELECT * FROM HASILAR WHERE HASIID = @HASIID)
							THEN ''207''
						 WHEN EXISTS (SELECT * FROM AFETOLAYTAKIP WHERE AFETOLAYTAKIPID = @AFETOLAYTAKIPID)
						THEN  ''261''
						END)),'''') AS ''SILINECEK_VERI_PAKETI/@code'',
						ISNULL((SELECT
						(SELECT CASE 
							WHEN EXISTS(SELECT * FROM VWBULASICITAKIP WHERE BULASICITAKIPID = @BULASICITAKIP) THEN ''BULASICI_HASTALIK_BILDIRIM''
							 WHEN EXISTS(SELECT * FROM VWTETKIKHASTA WHERE  HTETKIKKARTID = @HTETKIKKARTID)
											THEN ''HASTA_PATOLOJI_BILGILERI''
							WHEN EXISTS (SELECT * FROM HASILAR WHERE HASIID = @HASIID )
							THEN ''ASI_UYGULAMA_BILGILERI''
						 WHEN EXISTS (SELECT * FROM AFETOLAYTAKIP WHERE AFETOLAYTAKIPID = @AFETOLAYTAKIPID)
						THEN  ''OLAY_AFET_BILGILERI''
						END)),'''')AS ''SILINECEK_VERI_PAKETI/@value''
				
						FOR XML PATH(''VERI_PAKETI_SILME''), TYPE) 
						FOR XML PATH(''HASTA_TAKIP_BILGISI''), TYPE),	
			  (SELECT
			    (SELECT CASE 
				 WHEN EXISTS(SELECT * FROM VWBULASICITAKIP WHERE BULASICITAKIPID = @BULASICITAKIP) THEN
				   (SELECT SNOTAKIPNO FROM VWBULASICITAKIP WHERE BULASICITAKIPID = @BULASICITAKIP)
					
				 WHEN EXISTS(SELECT * FROM VWTETKIK WHERE  HTETKIKKARTID = @HTETKIKKARTID)
					 THEN (SELECT CASE
							WHEN NOT EXISTS 
									(SELECT *
										FROM VWTETKIKHASTA
										INNER JOIN SUBELER ON SUBELER.SUBEID = VWTETKIKHASTA.SUBEID
										WHERE VWTETKIKHASTA.SUBEID = @SUBEID
											  AND VWTETKIKHASTA.HTETKIKKARTID = @HTETKIKKARTID
											AND SUBELER.LAB = 1)
								OR NOT EXISTS(SELECT *
											FROM VWTETKIKHASTA
											INNER JOIN SUBELER ON SUBELER.SUBEID = VWTETKIKHASTA.SUBEID
											WHERE VWTETKIKHASTA.HTETKIKKARTID = @HTETKIKKARTID
												  AND VWTETKIKHASTA.DISISTEK = 1)  THEN
					(SELECT CASE WHEN (SELECT VWTETKIKHASTA.MDLTEDAVITURU 
										FROM VWTETKIKHASTA WHERE 
										VWTETKIKHASTA.HTETKIKKARTID = @HTETKIKKARTID
										AND VWTETKIKHASTA.SUBEID = @SUBEID) = ''A'' THEN
								(SELECT TOP 1
										VWMUAYENEISL.SNOTAKIPNO
									FROM VWMUAYENEISL (NOLOCK)
										LEFT JOIN VWTETKIK (NOLOCK)
											ON VWTETKIK.HDOSYAID = VWMUAYENEISL.HDOSYAID
										WHERE VWMUAYENEISL.HESAPISLID = VWTETKIK.OPHESAPISLID 
											AND VWTETKIK.HTETKIKKARTID = @HTETKIKKARTID)
						ELSE(
						SELECT TOP 1
							VWYATIS.SNOTAKIPNO
						FROM VWYATIS (NOLOCK)
							LEFT OUTER JOIN VWTETKIK (NOLOCK)
								ON VWTETKIK.HDOSYAID = VWYATIS.HDOSYAID
						WHERE VWYATIS.HESAPISLID = VWTETKIK.OPHESAPISLID
								AND VWTETKIK.HTETKIKKARTID = @HTETKIKKARTID
								AND VWTETKIK.SUBEID = @SUBEID)END)
							ELSE
								(SELECT VWTETKIKHASTA.SNOTAKIPNO FROM VWTETKIKHASTA WHERE 
									VWTETKIKHASTA.HTETKIKKARTID = @HTETKIKKARTID
									AND VWTETKIKHASTA.SUBEID = @SUBEID)
						END)
				 WHEN EXISTS(SELECT * FROM HASILAR WHERE HMUAYENEID = @HASIID) THEN
				 (SELECT CASE
						WHEN VWMUAYENE.HMUAYENEISLID IS NOT NULL
							THEN VWMUAYENE.SNOTAKIPNO
						WHEN VWMUAYENE.HMUAYENEISLID IS NULL	
							THEN 
						(SELECT CASE WHEN NOT EXISTS
								(SELECT VWYATIS.SNOTAKIPNO
								WHERE VWYATIS.HMUAYENEID = VWMUAYENE.HMUAYENEID 
										AND VWYATIS.UYGDRID = VWMUAYENE.HMDRID )
									THEN ''''
										ELSE
										(SELECT VWYATIS.SNOTAKIPNO 
											WHERE VWYATIS.HMUAYENEID = VWMUAYENE.HMUAYENEID 
												AND VWYATIS.UYGDRID = VWMUAYENE.HMDRID)
								END) 
							END
						FROM VWMUAYENE(NOLOCK)
								INNER JOIN VWYATIS(NOLOCK) ON VWYATIS.HMUAYENEID = VWMUAYENE.HMUAYENEID
								INNER JOIN HASILAR ON HASILAR.HMUAYENEID = VWMUAYENE.HMUAYENEID
								WHERE VWMUAYENE.HMUAYENEID = HASILAR.HMUAYENEID
								AND HASILAR.HASIID = @HASIID)
				 WHEN EXISTS(SELECT * FROM HASILAR WHERE HASIID = @HASIID) THEN
				 (SELECT CASE
									 WHEN VWMUAYENE.HMUAYENEISLID IS NOT NULL
											THEN VWMUAYENE.SNOTAKIPNO
									 WHEN VWMUAYENE.HMUAYENEISLID IS NULL	
											THEN 
									 (SELECT CASE WHEN NOT EXISTS
											 (SELECT VWYATIS.SNOTAKIPNO
												WHERE VWYATIS.HMUAYENEID = VWMUAYENE.HMUAYENEID 
													  AND VWYATIS.UYGDRID = VWMUAYENE.HMDRID )
												 THEN ''''
												     ELSE
														(SELECT VWYATIS.SNOTAKIPNO 
															WHERE VWYATIS.HMUAYENEID = VWMUAYENE.HMUAYENEID 
																AND VWYATIS.UYGDRID = VWMUAYENE.HMDRID)
										END) 
									END
									FROM VWMUAYENE(NOLOCK)
										 INNER JOIN VWYATIS(NOLOCK) ON VWYATIS.HMUAYENEID = VWMUAYENE.HMUAYENEID
										 INNER JOIN AFETOLAYTAKIP(NOLOCK)
										  ON AFETOLAYTAKIP.HMUAYENEID = VWMUAYENE.HMUAYENEID
									     WHERE VWMUAYENE.HMUAYENEID = AFETOLAYTAKIP.HMUAYENEID
										 AND AFETOLAYTAKIP.AFETOLAYTAKIPID = @AFETOLAYTAKIPID)
				END)) AS ''SYSTakipNo/@value''
			FOR XML PATH(''recordData''), TYPE)
			FROM SUBELER
			 WHERE SUBELER.SUBEID = @SUBEID
FOR XML PATH (''''), ROOT(''SYSMessage'')
/*END*/--SILMEYIN ONEMLI 
 ', N'', N'', N'', 0)
GO
INSERT [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI], [SERVISTIPI], [KAYITTABLOADI], [KAYITALANADI], [GONDERILECEKLERISECSORGU], [ISTEKSQL], [CEVAPSQL], [NOTLAR], [GONDERIMPERYODU], [ONCELIK]) VALUES (N'YATAK_BILGISI_KAYIT', 1, NULL, NULL, N'SELECT CONVERT(VARCHAR, LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),GETDATE(),120),'' '',''''),''-'',''''),'':'',''''),10)) AS TABLOID,
       ISNULL(ACILKLINIKADET.SUBEID, 1) AS SUBEID
FROM ACILKLINIKADET WITH(NOLOCK)
WHERE ACILKLINIKADET.TARIH > DATEADD(DAY, -1*(SELECT CONVERT(INT,GONDERIMPERYODU) FROM SERVISENTEGRASYONTANIM WHERE GONDERIMFONKSIYONADI=''HEADER''), GETDATE())', N'DECLARE @SUBEID  VARCHAR(10)  = ''#SUBEID#''
DECLARE @HATA NVARCHAR(2000) = ''''

IF (SELECT COUNT(*) FROM SUBELER WHERE SUBEID = @SUBEID) = 0 
BEGIN
    SET @HATA = @HATA + ''İşlemin şube kaydı bulunamadı. ''
END 
IF NOT EXISTS(SELECT * FROM ACILKLINIKADET WHERE CAST(TARIH AS DATE)= CAST(GETDATE() AS DATE) AND CONVERT(VARCHAR,ACILKLINIKADET.SUBEID) = @SUBEID) 
BEGIN
    SET @HATA = @HATA +  ''Gönderim tarihi girilmemiş. ''
END 
IF NOT EXISTS(SELECT KLINIKKODU FROM TKLINIK WHERE KLINIKKODU IN (SELECT KLINIKKODU FROM ACILKLINIKADET WHERE CAST(TARIH AS DATE)= CAST(GETDATE() AS DATE) AND SUBEID = @SUBEID))
	BEGIN 
		SET @HATA = @HATA + (SELECT  KLINIKKODU FROM ACILKLINIKADET 
							WHERE CAST(TARIH AS DATE)= CAST(GETDATE() AS DATE) 
							AND  ACILKLINIKADET.SUBEID = @SUBEID) + 
				 '' Numaralı klinik kaydı bulunamadı. ''
	END
IF EXISTS(SELECT ACILKLINIKADETID FROM ACILKLINIKADET WHERE CAST(TARIH AS DATE)= CAST(GETDATE() AS DATE) AND SUBEID = @SUBEID AND KLINIKAKTIF=0 AND ISNULL(KLINIKKAPALINEDENIID,0)=0)
	BEGIN 
		SET @HATA = @HATA + (SELECT  KLINIKKODU FROM ACILKLINIKADET
							 WHERE CAST(TARIH AS DATE)= CAST(GETDATE() AS DATE) 
							 AND  ACILKLINIKADET.SUBEID = @SUBEID) 
					+ '' Klinik kapama nedeni bulunamadı. ''
	END


 IF @HATA<>''''
    BEGIN
	   IF NOT EXISTS(SELECT ID FROM SERVISENTEGRASYONHATALARI WHERE SERVISGONDERIMFONKSIYONADI=''YATAK_BILGISI_KAYIT'' AND SUBEID=@SUBEID AND HATA=@HATA AND TARIH>DATEADD(DAY,-2,GETDATE()))
	   INSERT INTO SERVISENTEGRASYONHATALARI(SERVISGONDERIMFONKSIYONADI,SUBEID,HATA,TARIH) VALUES (''YATAK_BILGISI_KAYIT'',@SUBEID,@HATA ,GETDATE())
    END
ELSE
BEGIN
    /*START*/--SILMEYIN ONEMLI
    SELECT 
    	   ''F5C1C213-C7CB-4B8B-A022-C43CAC98388B'' AS ''messageGuid/@value'',
    	   ''1'' as ''messageType/@version'',
    	   ''0a9ba485-e7e0-4abb-9c86-0a14fd364bb8'' AS ''messageType/@codeSystemGuid'',
    	   ''901'' AS ''messageType/@code'',
    	   ''Yatak Bilgisi Kayıt'' 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'',
			 (SELECT VALUESTR FROM CONFIG WHERE KEYNAME = CAST(SUBELER.SUBEID AS VARCHAR) +'' numaralı şubenin Sağlık.NET 2 kullanıcı adı'') as ''healthcareProvider/@code'',
			 SUBELER.SUBEADI as ''healthcareProvider/@value'' 
		  FOR XML PATH(''author''), TYPE
	   ),
	   ''C740D0288ED4C45FE0407C0A04162BDD'' AS ''firmaKodu/@value'',
	   ( 
		  SELECT 
			 LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),GETDATE(),120),'' '',''''),''-'',''''),'':'',''''),12)AS ''Tarih/@value'',
			 ''1'' as ''KAYIT_YERI/@version'',
			 ''c3eade04-4f91-5dab-e043-14031b0ac9f9'' AS ''KAYIT_YERI/@codeSystemGuid'',
			 (SELECT VALUESTR FROM CONFIG WHERE KEYNAME = CAST(SUBELER.SUBEID AS VARCHAR) +'' numaralı şubenin Sağlık.NET 2 kullanıcı adı'') as ''KAYIT_YERI/@code'',
			 SUBELER.SUBEADI as ''KAYIT_YERI/@value'',
			 (
				SELECT 
				    ISNULL(CONVERT(VARCHAR(20),ACILKLINIKADET.YOGUNBYATAKSEVIYE),'''') AS ''YOGUN_BAKIM_YATAK_SEVIYE_BILGISI/@value'',
				    ''1'' as ''KLINIK_KODU/@version'',
				    ''c04bee57-c5d4-443d-e040-7b0a6f146a3d'' AS ''KLINIK_KODU/@codeSystemGuid'',
				    ISNULL(ACILKLINIKADET.KLINIKKODU,'''') AS ''KLINIK_KODU/@code'',
				    ISNULL(TKLINIK.KLINIKADI,'''') AS ''KLINIK_KODU/@value'',
				    ''1'' AS ''KLINIK_DURUMU/@version'',
				    ''6007b4c1-767d-4ed7-b9fd-425a71356e8c'' AS ''KLINIK_DURUMU/@codeSystemGuid'',
				    ISNULL(CONVERT(VARCHAR(20),ACILKLINIKADET.KLINIKAKTIF),'''') AS ''KLINIK_DURUMU/@code'',
				    (
					   SELECT 
						  CASE 
						  WHEN ACILKLINIKADET.KLINIKAKTIF = 1
						  THEN ''AÇIK''
						  WHEN ACILKLINIKADET.KLINIKAKTIF = 2
						  THEN ''KAPALI''
						  ELSE ''''
						  END 
				    )AS ''KLINIK_DURUMU/@value'',
				    (
					   SELECT CASE 
						  WHEN ACILKLINIKADET.KLINIKKAPALINEDENIID IS NOT NULL 
						  THEN
							 ''1''  
						  END
				    ) AS ''KLINIK_KAPALI_OLMA_NEDENI/@version'',
				    (
					   SELECT CASE 
						  WHEN ACILKLINIKADET.KLINIKKAPALINEDENIID IS NOT NULL 
						  THEN
							 ''698206a8-9533-46d4-9cfa-a3ace88cb57a''  
						  END
				    ) AS ''KLINIK_KAPALI_OLMA_NEDENI/@codeSystemGuid'',
				    (
					   SELECT CASE 
						  WHEN ACILKLINIKADET.KLINIKKAPALINEDENIID IS NOT NULL 
						  THEN
							 ISNULL(CONVERT(VARCHAR(20),ACILKLINIKADET.KLINIKKAPALINEDENIID),'''')  
						  END
				    ) AS ''KLINIK_KAPALI_OLMA_NEDENI/@code'',
				    (
					   SELECT CASE 
						  WHEN ACILKLINIKADET.KLINIKKAPALINEDENIID IS NOT NULL 
						  THEN '''' 
						  END
				    ) AS ''KLINIK_KAPALI_OLMA_NEDENI/@value'',
				    ''1'' AS ''YATAK_TURU/@version'',
				    ''51c26737-62f1-4072-8ab8-41caa7bd11da'' AS ''YATAK_TURU/@codeSystemGuid'',
				    ISNULL(CONVERT(VARCHAR(20),ACILKLINIKADET.YATAKTURUID),'''') AS ''YATAK_TURU/@code'',
				    (
					   SELECT CASE
						  WHEN ACILKLINIKADET.YATAKTURUID = 1
								    THEN ''STANDART YATAK''
						  WHEN ACILKLINIKADET.YATAKTURUID = 2
								    THEN ''DETOX YATAK''
						  WHEN ACILKLINIKADET.YATAKTURUID = 3
								    THEN ''YOĞUN BAKIM YATAĞI''
						  WHEN ACILKLINIKADET.YATAKTURUID = 4
								    THEN ''KUVÖZ''
						  ELSE ''''
						  END
				    ) AS  ''YATAK_TURU/@value'',
				    ISNULL(CONVERT(VARCHAR(20),ACILKLINIKADET.TOPLAMYATAK),'''')AS ''TOPLAM_YATAK/@value'',
				    ISNULL(CONVERT(VARCHAR(20),ACILKLINIKADET.BOSYATAK),'''') AS ''BOS_YATAK/@value'',
				    ISNULL(CONVERT(VARCHAR(20),ACILKLINIKADET.REZERVEYATAK),'''') AS ''REZERVE_YATAK/@value'',
				    ISNULL(CONVERT(VARCHAR(20),ACILKLINIKADET.BOSVENTIL),'''') AS ''TOPLAM_VENTILATOR/@value'',
				    ISNULL(CONVERT(VARCHAR(20),ACILKLINIKADET.BOSVENTIL),'''') AS ''BOS_VENTILATOR/@value'',
				    ISNULL(CONVERT(VARCHAR(20),ACILKLINIKADET.ARIZALIVENTIL),'''') AS ''ARIZALI_VENTILATOR/@value''					 
				FROM ACILKLINIKADET
				LEFT JOIN TKLINIK  ON TKLINIK.KLINIKKODU = ACILKLINIKADET.KLINIKKODU
				WHERE ACILKLINIKADET.SUBEID = SUBELER.SUBEID
				AND  CAST(ACILKLINIKADET.TARIH AS DATE) =  CAST(SYSDATETIME() AS DATE)
				FOR XML PATH(''YatakDurumBilgisi''), TYPE 
			)
		  FOR XML PATH(''YatakBilgisi''),ROOT(''recordData''), TYPE
	   )  
    FROM SUBELER	   
    WHERE CAST(SUBELER.SUBEID AS VARCHAR)= @SUBEID
    FOR XML PATH (''''), ROOT(''SYSMessage'')
/*END*/--SILMEYIN ONEMLI
END', N'DECLARE @SERVISENTEGRASYONID INT
DECLARE @XML1 XML
DECLARE @XML2 VARCHAR(MAX)
DECLARE @XML3 XML
DECLARE @SNOTakipNo VARCHAR(20)
DECLARE @SONUCKODU VARCHAR(20)
DECLARE @SONUCMESAJI VARCHAR(1000)
SET @SERVISENTEGRASYONID = ''#SERVISENTEGRASYONID#''
SET @SNOTakipNo = ''''
SET @XML1 = ''''
SET @XML2 = ''''
SET @XML3 = ''''
SET @XML1 = (SELECT CEVAPXML FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID)
SET @XML2 = (SELECT @XML1.value (''declare namespace s =  "http://schemas.xmlsoap.org/soap/envelope/"; (/s:Envelope/s:Body/*)[1]'',''varchar(4000)'') AS id)
   --GET SNOTAKIPNO 
    SET @XML3 = (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SNOTakipNo = (SELECT T.C.value(''@value'', ''varchar(100)'') AS SNOTakipNo
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/SYSTakipNo)'') AS T(C))
	--GET SONUCKODU FOR HATA IF ANY 
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCKODU = (SELECT T.C.value(''@value'', ''varchar(100)'') AS SONUCKODU
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucKodu)'') AS T(C))
	--GET SONUCMESAJI
	SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
    SET @SONUCMESAJI = (SELECT T.C.value(''@value'', ''varchar(1000)'') AS SONUCMESAJI
    FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucMesaji)'') AS T(C))
	IF	@SONUCKODU = ''S0000''  
	BEGIN
			UPDATE SERVISENTEGRASYON SET DURUM=1,DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1,CEVAPZAMANI=GETDATE() WHERE ID=@SERVISENTEGRASYONID
	END
	ELSE
		BEGIN
		
			UPDATE SERVISENTEGRASYON SET DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1 WHERE ID=@SERVISENTEGRASYONID

			INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, SERVISENTEGRASYONID, SONUCKODU, HATA, TARIH) SELECT SERVISGONDERIMFONKSIYONADI, SERVISENTEGRASYON.SUBEID, KAYITID, ID, @SONUCKODU, @SONUCMESAJI, GETDATE() FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID AND 0=(SELECT COUNT(*) FROM SERVISENTEGRASYONHATALARI WHERE SERVISENTEGRASYONID = @SERVISENTEGRASYONID)

		END', N'', N'6hour', 10)
GO
INSERT [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI], [SERVISTIPI], [KAYITTABLOADI], [KAYITALANADI], [GONDERILECEKLERISECSORGU], [ISTEKSQL], [CEVAPSQL], [NOTLAR], [GONDERIMPERYODU], [ONCELIK]) VALUES (N'YATIS_BILGISI_KAYIT', 1, N'HYATIS', N'HYATISID', N'SELECT HYATIS.HYATISID AS TABLOID,
       ISNULL(HDOSYA.SUBEID, 1) AS SUBEID
FROM HYATIS WITH(NOLOCK)
     JOIN HESAPISL WITH(NOLOCK) ON HESAPISL.HESAPISLID = HYATIS.HESAPISLID
     JOIN HDOSYA WITH(NOLOCK) ON HDOSYA.HDOSYAID = HESAPISL.HDOSYAID
WHERE HYATIS.SNOMUAYENEGONDERILDI = 0
    AND HESAPISL.KYTARIH > DATEADD(DAY, -1*(SELECT CONVERT(INT,GONDERIMPERYODU) FROM SERVISENTEGRASYONTANIM WHERE GONDERIMFONKSIYONADI=''HEADER''), GETDATE())
    AND HDOSYA.HDIPTAL = 0
    AND HESAPISL.IPTAL = 0 
    AND HESAPISL.ONAYLI = 1 
    AND ISNULL(HESAPISL.TEKLIF, 0) = 0
    AND HESAPISL.SNKAYDET = 1
    AND ISNULL(HYATIS.SNOTAKIPNO,'''')<>''''
    AND NOT EXISTS
    (
	   SELECT *
	   FROM SERVISENTEGRASYON
	   WHERE SERVISGONDERIMFONKSIYONADI = ''YATIS_BILGISI_KAYIT''
	   AND KAYITID = HYATIS.HYATISID
    )', N'DECLARE @SUBEID VARCHAR(10) =  ''#SUBEID#''
DECLARE @YATISID VARCHAR(20) = ''#TABLOID#'' 
DECLARE @HATA NVARCHAR(2000) = ''''

IF (SELECT COUNT(*) FROM SUBELER WHERE SUBEID = @SUBEID) = 0 
BEGIN
	SET @HATA = @HATA + ''İşlemin şube kaydı bulunamadı! ''
END

IF NOT EXISTS(SELECT HDOSYAICDID FROM HDOSYAICD 
				JOIN TICD ON TICD.ICDKOD = HDOSYAICD.ICDKOD
				JOIN VWYATIS ON VWYATIS.HMUAYENEID = HDOSYAICD.HMUAYENEID
				WHERE HDOSYAICD.HMUAYENEID =  VWYATIS.HMUAYENEID
				AND VWYATIS.HYATISID = @YATISID)
BEGIN
    SET @HATA = @HATA + ''Yatış kaydı için tanı girişi yapılmamış! USS sistemine kayıt yapılamaz. ''
END
	
IF @HATA<>''''
BEGIN
    IF NOT EXISTS(SELECT ID FROM SERVISENTEGRASYONHATALARI WHERE SERVISGONDERIMFONKSIYONADI=''YATIS_BILGISI_KAYIT'' AND KAYITID=@YATISID AND SUBEID=@SUBEID AND HATA=@HATA AND TARIH>DATEADD(DAY,-2,GETDATE()))
    INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI,SUBEID,KAYITID,HATA,TARIH) VALUES (''YATIS_BILGISI_KAYIT'',@SUBEID,@YATISID,@HATA,GETDATE())
END
ELSE
BEGIN
/*START*/--SILMEYIN ONEMLI
SELECT 
	   NEWID() AS ''messageGuid/@value'',
       ''1'' AS ''messageType/@version'',
       ''0a9ba485-e7e0-4abb-9c86-0a14fd364bb8'' AS ''messageType/@codeSystemGuid'',
       ''103'' AS ''messageType/@code'',
       ''Muayene Bilgisi Kayıt'' 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'',
				ISNULL((SELECT VALUESTR FROM CONFIG WHERE SECTIONSTR = ''Saglik-Net'' AND PROGNAME = ''MEDISOFT'' AND KEYNAME = CONVERT(VARCHAR, @SUBEID)+'' numaralı şubenin kurum numarası''), '''') AS ''healthcareProvider/@code'',			    
				SUBELER.SUBEADI AS ''healthcareProvider/@value'' FOR XML PATH(''author''), TYPE
	   ),
	   
	   ''C740D0288ED4C45FE0407C0A04162BDD'' AS ''firmaKodu/@value'',
	   
	   (/*p1*/
		  SELECT 
				(SELECT ISNULL(VWYATIS.SNOTAKIPNO, '''') AS ''SYSTakipNo/@value'' FOR XML PATH(''HASTA_TAKIP_BILGISI''), TYPE ),
				(/*p2*/
					 SELECT /*s1*/
							CASE
							WHEN EXISTS
									   (
										  SELECT *
										  FROM VWRECETE
										  WHERE VWRECETE.HMUAYENEID = VWYATIS.HMUAYENEID											  
									   )
							THEN
									   (/*p3*/
										  SELECT /*s2*/
												(/*p4*/
												    SELECT /*s3*/
														 ISNULL(LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),VWRECETE.HRECTARIH,120),'' '',''''),''-'',''''),'':'',''''),12), '''') AS ''RECETE_TARIHI/@value'',
														 ISNULL(CONVERT(VARCHAR(20), VWRECETE.HRECETEID), '''') AS ''RECETE_NUMARASI/@value'',
														 ''1'' AS ''RECETE_TURU/@version'',
														 ''c2fbe9bb-f6b3-4cb5-8670-47890ed7ed4b'' AS ''RECETE_TURU/@codeSystemGuid'',
														 ISNULL(CONVERT(VARCHAR(20), VWRECETE.RECETETURID), '''') AS ''RECETE_TURU/@code'',
														 ISNULL(VWRECETE.RECETETURUADI, '''') AS ''RECETE_TURU/@value'',
														 ISNULL(VWRECETE.DRTCKIMLIKNO, '''') AS ''HEKIM_KIMLIK_NUMARASI/@value'',
														  (/*p5*/
															    SELECT /*s4*/
																	  ISNULL((SELECT CASE WHEN ILACBARKOD IS NULL THEN TILAC.BARKOD ELSE ILACBARKOD END), '''') AS ''ILAC_BARKODU/@value'',
																	  ISNULL(HRECETEISL.ILACADI, '''') AS ''ILAC_ADI/@value'',
																	  ISNULL(CONVERT(VARCHAR(20), HRECETEISL.MIKTAR), '''') AS ''KUTU_ADETI/@value'',
																	  ''1'' AS ''ILAC_KULLANIM_SEKLI/@version'',
																	  ''32d57611-4928-46da-afac-624aaaa388d8'' AS ''ILAC_KULLANIM_SEKLI/@codeSystemGuid'',
																	  ISNULL(CONVERT(VARCHAR(20), HRECETEISL.ILACKULSEKLIID), '''') AS ''ILAC_KULLANIM_SEKLI/@code'',
																	  ISNULL(ILACKULSEKLIADI, '''') AS ''ILAC_KULLANIM_SEKLI/@value'',
																	  CONVERT(VARCHAR, 1) AS ''ILAC_KULLANIM_SAYISI/@value'',
																	  ISNULL(CONVERT(VARCHAR(20), KULLANIMADET), '''') AS ''ILAC_KULLANIM_DOZU/@value'',
																	  ISNULL(CONVERT(VARCHAR(20), KULPERIYODU), '''') AS ''ILAC_KULLANIM_PERIYODU/@value'',
																	  ''1'' AS ''ILAC_KULLANIM_PERIYODU_BIRIMI/@version'',
																	  ''64408499-b82a-4e64-805e-e821aa0c64c9'' AS ''ILAC_KULLANIM_PERIYODU_BIRIMI/@codeSystemGuid'',
																	  ISNULL(CONVERT(VARCHAR(20), KULPERIYODBIRIMI), '''') AS ''ILAC_KULLANIM_PERIYODU_BIRIMI/@code'',
																	  ISNULL((SELECT CASE KULPERIYODBIRIMI WHEN 1 THEN ''Dakika'' WHEN 2 THEN ''Saat'' WHEN 3 THEN ''Gün'' WHEN 4 THEN ''Hafta''						                 WHEN 5 THEN ''Ay'' ELSE '''' END), '''') AS ''ILAC_KULLANIM_PERIYODU_BIRIMI/@value'',
																	  '''' AS ''ILAC_ACIKLAMA/@value''
																FROM HRECETEISL
																	LEFT JOIN TILAC ON TILAC.ILACID = HRECETEISL.ILACID AND TILAC.AKTIF = 1
																	LEFT OUTER JOIN TILACKULSEKLI ON TILACKULSEKLI.ILACKULSEKLIID = HRECETEISL.ILACKULSEKLIID
																WHERE VWRECETE.HRECETEID = HRECETEISL.HRECETEID FOR XML PATH(''ILAC_BILGISI''), TYPE
																/*s4 end*/
														  )/*p5 end*/
												    FROM VWRECETE
												    WHERE VWRECETE.HMUAYENEID = VWYATIS.HMUAYENEID FOR XML PATH(''RECETE_BILGISI''), TYPE
												    /*s3 end*/
								
												)/*p4 end*/ FOR XML PATH(''HASTA_RECETE_BILGILERI''), TYPE
										  /*s2 end*/
									  )/*p3 end*/
							END /*case end*/
					   /*s1 end*/
				)/*p2 end*/,
				
				(/*p2*/
					  SELECT/*s1*/
								(/*p3*/
								    SELECT 
										  CASE
										  WHEN
												(
												    SELECT HMSIKAYETI
												    FROM HMUAYENE
													    LEFT JOIN HYATIS ON HYATIS.HMUAYENEID = HMUAYENE.HMUAYENEID
												    WHERE HYATIS.HYATISID = @YATISID
												) IS NOT NULL
										  THEN
												(
												    SELECT 
														  ''Yakınması'' AS ''EPIKRIZ_BILGISI_BASLIK/@value'',
														  ISNULL((SELECT HMSIKAYETI FROM HMUAYENE LEFT JOIN HYATIS ON HYATIS.HMUAYENEID = HMUAYENE.HMUAYENEID WHERE						   HYATIS.HYATISID = @YATISID ), '''') 
																 AS ''EPIKRIZ_BILGISI_ACIKLAMA/@value'' FOR XML PATH (''EPIKRIZ_BILGISI''), TYPE
												)
										  END								    
								)/*p3 end*/,
								(/*p3*/
								    SELECT 
										  CASE
										  WHEN
												(
												    SELECT HMHKIKAYESI
												    FROM HMUAYENE
													    LEFT JOIN HYATIS ON HYATIS.HMUAYENEID = HMUAYENE.HMUAYENEID
												    WHERE HYATIS.HYATISID = @YATISID
												) IS NOT NULL
										  THEN
												(
												    SELECT 
														  ''Hikayesi'' AS ''EPIKRIZ_BILGISI_BASLIK/@value'',
														  ISNULL((SELECT HMHKIKAYESI FROM HMUAYENE LEFT JOIN HYATIS ON HYATIS.HMUAYENEID = HMUAYENE.HMUAYENEID
																WHERE HYATIS.HYATISID = @YATISID ), '''') 
																AS ''EPIKRIZ_BILGISI_ACIKLAMA/@value'' FOR XML PATH(''EPIKRIZ_BILGISI''), TYPE
												)
										  END
								)/*p3 end*/,
								(/*p3*/
								    SELECT 
										  CASE
										  WHEN
												(
												    SELECT HMMUAYENE
												    FROM HMUAYENE
													    LEFT JOIN HYATIS ON HYATIS.HMUAYENEID = HMUAYENE.HMUAYENEID
												    WHERE HYATIS.HYATISID = @YATISID
												) IS NOT NULL
										  THEN
												(
												    SELECT 
														  ''Fiziki Bakı'' AS ''EPIKRIZ_BILGISI_BASLIK/@value'',
														  ISNULL((SELECT HMMUAYENE FROM HMUAYENE LEFT JOIN HYATIS ON HYATIS.HMUAYENEID = HMUAYENE.HMUAYENEID WHERE						    HYATIS.HYATISID = @YATISID), '''') 
																  AS ''EPIKRIZ_BILGISI_ACIKLAMA/@value'' FOR XML PATH(''EPIKRIZ_BILGISI''), TYPE
												)
										  END
								)/*p3 end*/,
								(/*p3*/
								    SELECT 
										  CASE
										  WHEN 
											 ISNULL(
												    (
													   SELECT HMONERI
													   FROM HMUAYENE
														   LEFT JOIN HYATIS ON HYATIS.HMUAYENEID = HMUAYENE.HMUAYENEID
													   WHERE HYATIS.HYATISID = @YATISID
												    ), '''') IS NOT NULL
										  THEN
												    (
													   SELECT ''Öneri'' AS ''EPIKRIZ_BILGISI_BASLIK/@value'',
															ISNULL(
												    (
													   SELECT HMONERI
													   FROM HMUAYENE
														   LEFT JOIN HYATIS ON HYATIS.HMUAYENEID = HMUAYENE.HMUAYENEID
													   WHERE HYATIS.HYATISID = @YATISID
												    ), '''') AS ''EPIKRIZ_BILGISI_ACIKLAMA/@value'' FOR XML PATH(''EPIKRIZ_BILGISI''), TYPE
												    )
										 END
								)/*p3 end*/,
								(/*p3*/
								    SELECT 
										  CASE
										  WHEN
												(
												    SELECT HMSONUC
												    FROM HMUAYENE
													    LEFT JOIN HYATIS ON HYATIS.HMUAYENEID = HMUAYENE.HMUAYENEID
												    WHERE HYATIS.HYATISID = @YATISID
												) IS NOT NULL
										  THEN
												(
												    SELECT ''Sonuç'' AS ''EPIKRIZ_BILGISI_BASLIK/@value'',
														 ISNULL(
												(
												    SELECT HMSONUC
												    FROM HMUAYENE
													    LEFT JOIN HYATIS ON HYATIS.HMUAYENEID = HMUAYENE.HMUAYENEID
												    WHERE HYATIS.HYATISID = @YATISID
												), '''') AS ''EPIKRIZ_BILGISI_ACIKLAMA/@value'' FOR XML PATH(''EPIKRIZ_BILGISI''), TYPE
												)
										 END
								)/*p3 end*/,
								(/*p3*/
								    SELECT 
										  CASE
										  WHEN 
												EXISTS
												    (
													   SELECT HDOSYAICD.ICDKOD,
															ICDADI
													   FROM HDOSYAICD
														   INNER JOIN TICD ON TICD.ICDKOD = HDOSYAICD.ICDKOD
													   WHERE HDOSYAICD.HMUAYENEID = VWYATIS.HMUAYENEID
														    AND VWYATIS.HYATISID = @YATISID
												    )
											THEN
												    (
													   SELECT ''1'' AS ''ICD10/@version'',
															''c3eaabad-8c4c-56ee-e043-14031b0a5530'' AS ''ICD10/@codeSystemGuid'',
															ISNULL(CONVERT(VARCHAR(20), HDOSYAICD.ICDKOD), '''') AS ''ICD10/@code'',
															ISNULL(TICD.ICDADI, '''') AS ''ICD10/@value''
													   FROM HDOSYAICD
														   INNER JOIN TICD ON TICD.ICDKOD = HDOSYAICD.ICDKOD
													   WHERE HDOSYAICD.HMUAYENEID = VWYATIS.HMUAYENEID
														    AND VWYATIS.HYATISID = @YATISID FOR XML PATH(''TANI_BILGISI''), TYPE
												    )
											END
								)/*p3 end*/ FOR XML PATH(''MUAYENE_BILGILERI''), TYPE
				    )/*p2 end*/ FOR XML PATH(''recordData''), TYPE
	   )/*p1 end*/
FROM VWYATIS(NOLOCK)
	   JOIN SUBELER(NOLOCK) ON SUBELER.SUBEID = VWYATIS.SUBEID
WHERE VWYATIS.HYATISID = @YATISID
	   AND CONVERT(VARCHAR, SUBELER.SUBEID) = @SUBEID FOR XML PATH(''''), ROOT(''SYSMessage'')
/*END*/--SILMEYIN ONEMLI
END', N'DECLARE @XML1 XML
DECLARE @XML2 VARCHAR(MAX)
DECLARE @XML3 XML
DECLARE @SNOTakipNo VARCHAR(20)
DECLARE @SONUCKODU VARCHAR(20)
DECLARE @SERVISENTEGRASYONID INT = ''#SERVISENTEGRASYONID#''
DECLARE @SONUCMESAJI VARCHAR(1000)
SET @SNOTakipNo = ''''
SET @XML1 = ''''
SET @XML2 = ''''
SET @XML3 = ''''
SET @XML1 = (SELECT CEVAPXML FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID)
SET @XML2 = (SELECT @XML1.value (''declare namespace s =  "http://schemas.xmlsoap.org/soap/envelope/"; (/s:Envelope/s:Body/*)[1]'',''varchar(4000)'') AS id)
--GET SNOTAKIPNO 
SET @XML3 = (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
SET @SNOTakipNo = (SELECT T.C.value(''@value'', ''varchar(100)'') AS SNOTakipNo
FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/SYSTakipNo)'') AS T(C))
	
--GET SONUCKODU FOR HATA IF ANY 
SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
SET @SONUCKODU = (SELECT T.C.value(''@value'', ''varchar(100)'') AS SNOTakipNo
FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucKodu)'') AS T(C))
--GET SONUCMESAJI
SET @XML3 =  (SELECT CAST(REPLACE(CAST(@XML2 AS NVARCHAR(MAX)), ''encoding="utf-8"'', '''') AS XML) AS DataXml)
SET @SONUCMESAJI = (SELECT T.C.value(''@value'', ''varchar(1000)'') AS SONUCMESAJI
FROM @XML3.nodes(''(/SYSMessage/recordData/KayitCevabi/sonucMesaji)'') AS T(C))
IF @SONUCKODU = ''E2020''
BEGIN		
	UPDATE HYATIS SET HYATIS.SNOMUAYENEGONDERILDI = 0 FROM HYATIS JOIN SERVISENTEGRASYON SE ON SE.KAYITID = HYATIS.HYATISID WHERE SE.ID = @SERVISENTEGRASYONID
	UPDATE SERVISENTEGRASYON SET DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1 WHERE ID=@SERVISENTEGRASYONID
	INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, SERVISENTEGRASYONID, SONUCKODU, HATA, TARIH) SELECT SERVISGONDERIMFONKSIYONADI, SERVISENTEGRASYON.SUBEID, KAYITID, ID, @SONUCKODU, @SONUCMESAJI, GETDATE() FROM SERVISENTEGRASYON WHERE ID = @SERVISENTEGRASYONID AND 0=(SELECT COUNT(*) FROM SERVISENTEGRASYONHATALARI WHERE SERVISENTEGRASYONID = @SERVISENTEGRASYONID)
END
ELSE
BEGIN
	IF  @SONUCKODU = ''S0000'' AND  @SNOTakipNo IS NOT NULL 
		/*AND  @SNOTakipNo <> (SELECT HYATIS.SNOTAKIPNO FROM HYATIS  JOIN SERVISENTEGRASYON SE ON SE.KAYITID  = HYATIS.HYATISID  WHERE SE.ID = @SERVISENTEGRASYONID) 
	    OR  (SELECT HYATIS.SNOTAKIPNO FROM HYATIS  JOIN SERVISENTEGRASYON SE ON SE.KAYITID  = HYATIS.HYATISID   WHERE SE.ID = @SERVISENTEGRASYONID) IS NULL */
	BEGIN
			
			UPDATE SERVISENTEGRASYON SET DURUM=1,DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1,CEVAPZAMANI=GETDATE() WHERE ID=@SERVISENTEGRASYONID
			UPDATE HYATIS SET HYATIS.SNOMUAYENEGONDERILDI = 1 FROM HYATIS JOIN SERVISENTEGRASYON SE ON SE.KAYITID = HYATIS.HYATISID WHERE SE.ID = @SERVISENTEGRASYONID
	END
	ELSE
	BEGIN
	UPDATE SERVISENTEGRASYON SET DENEMESAYISI=ISNULL(DENEMESAYISI,0)+1 WHERE ID=@SERVISENTEGRASYONID

	INSERT INTO SERVISENTEGRASYONHATALARI (SERVISGONDERIMFONKSIYONADI, SUBEID, KAYITID, SERVISENTEGRASYONID, SONUCKODU, HATA, TARIH) SELECT SERVISGONDERIMFONKSIYONADI, SERVISENTEGRASYON.SUBEID, KAYITID, ID, @SONUCKODU, CONVERT(VARCHAR,VWYATIS.HMUAYENEID)+''  muayene numaralı ''+ VWYATIS.HADI+ '' ''+ VWYATIS.HSOYADI+ '' isimli hasta. Doktor:''+VWYATIS.LISTDRADI +'' Bölüm:''+VWYATIS.LBOLUM +''  Tarih:''+CONVERT(VARCHAR,VWYATIS.ITARIH)+'' Uss Kayıt cevabı:''+@SONUCMESAJI, GETDATE() FROM SERVISENTEGRASYON JOIN VWYATIS ON VWYATIS.HYATISID=SERVISENTEGRASYON.KAYITID WHERE ID = @SERVISENTEGRASYONID AND 0=(SELECT COUNT(*) FROM SERVISENTEGRASYONHATALARI WHERE SERVISENTEGRASYONID = @SERVISENTEGRASYONID)
	END
END', N'', N'1day', 7)
GO
IF NOT EXISTS (SELECT *  FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS WHERE CONSTRAINT_NAME = 'FK_SERVISENTEGRASYON_SERVISENTEGRASYONTANIM')
BEGIN
    ALTER TABLE [dbo].[SERVISENTEGRASYON]  WITH CHECK ADD  CONSTRAINT [FK_SERVISENTEGRASYON_SERVISENTEGRASYONTANIM] FOREIGN KEY([SERVISGONDERIMFONKSIYONADI])
    REFERENCES [dbo].[SERVISENTEGRASYONTANIM] ([GONDERIMFONKSIYONADI])
END
GO