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

CREATE PROCEDURE [dbo].[SPUSS_252_KONSULTASYON_KAYIT]

       @HDOSYAID INT=0,

       @HMUAYENEID INT = 0,

       @TUMUNUTEKRAR BIT = 0

AS

BEGIN

       --SPUSS_252_KONSULTASYON_KAYIT 3446355

       DECLARE @HATA NVARCHAR(2000) = ''

       DECLARE @MESAJ NVARCHAR(2000) = ''

       DECLARE @SAYIHATA BIT = 0

       DECLARE @XMLBASLIK NVARCHAR(2000) = ''

       DECLARE @SUBEID INT = 1

       DECLARE @ADET INT;

       DECLARE @goNDERIMTABLOSU TABLE

              (

                     goNDERILECEKXML XML,

                     HATA NVARCHAR(2000),

                     MESAJ NVARCHAR(2000),     

                     XMLBASLIK NVARCHAR(3500),

                     TABLOID INT,

                     MINID INT,

                     MAXID INT

              )

 

       IF OBJECT_ID('tempdb..#TMPKONSULTASYON') IS NOT NULL

              DROP TABLE #TMPKONSULTASYON

       IF OBJECT_ID('tempdb..#TMPTANI') IS NOT NULL

              DROP TABLE #TMPTANI

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

              DROP TABLE #TMPDOSYA

 

      

       SELECT DISTINCT

                     TICD.ICDKOD AS TICD_ICDKOD,

                     TICD.ICDADI AS TICD_ICDADI,

                     HDOSYAICD.ICDTURUID AS TICD_ICDTURUID

       INTO #TMPTANI

       FROM HDOSYAICD

              INNER JOIN TICD ON TICD.ICDKOD = HDOSYAICD.ICDKOD

       WHERE HDOSYAICD.HDOSYAID = @HDOSYAID

             


 

       SELECT DISTINCT  HMUAYENE.HMUAYENEID AS KONSULTASYON_HMUAYENEID,

                     HESAPISL.HESAPISLID AS HESAPISL_HESAPISLID,

                     CONVERT(VARCHAR,TDRKIMLIKISTEYEN.DRTCKIMLIKNO) AS KONSULTASYON_TALEBINI_YAPAN_HEKIM_KIMLIK_NUMARASI,

                     CONVERT(VARCHAR,TDRKIMLIKUYGULAYAN.DRTCKIMLIKNO) AS KONSULTASYON_TALEBINE_CEVAP_VEREN_HEKIM_KIMLIK_NUMARASI,

                     (SELECT COUNT(*) FROM #TMPTANI) AS ICD_SAYI,                 

                     HESAPISL.ITARIH AS KONSULTASYON_BASLANGIC_ZAMANI,

                     DATEADD(MINUTE,15,HESAPISL.ITARIH) AS KONSULTASYON_BITIS_ZAMANI,                 

                     HESAPISL.ACIKLAMA AS KONSULTASYON_NOTU_ACIKLAMA

       INTO #TMPKONSULTASYON

       FROM HDOSYA WITH(NOLOCK)

       INNER JOIN HMUAYENE WITH(NOLOCK) ON HMUAYENE.HDOSYAID = HDOSYA.HDOSYAID

       LEFT JOIN HMUAYENEISL WITH(NOLOCK) ON HMUAYENEISL.HMUAYENEID = HMUAYENE.HMUAYENEID

     LEFT JOIN HESAPISL WITH(NOLOCK) ON HESAPISL.HESAPISLID = HMUAYENEISL.HESAPISLID

       LEFT JOIN TDRKIMLIK TDRKIMLIKISTEYEN ON TDRKIMLIKISTEYEN.DRID = HESAPISL.ISTDRID

        LEFT JOIN TDRKIMLIK TDRKIMLIKUYGULAYAN ON TDRKIMLIKUYGULAYAN.DRID = HESAPISL.UYGDRID   

       WHERE  HESAPISL.IPTAL=0

              AND HESAPISL.ONAYLI=1

              AND HESAPISL.TEKLIF=0            

              AND HDOSYA.HDIPTAL=0

              AND HMUAYENEISL.MUAYENETIPIID=6

              AND HDOSYA.HDOSYAID =  @HDOSYAID

              AND (

                           @HMUAYENEID=0

                           OR

                           HMUAYENE.HMUAYENEID =@HMUAYENEID

                     )

              AND (@TUMUNUTEKRAR=1 OR (  @TUMUNUTEKRAR=0 AND (HMUAYENEISL.SNKONgoNDERILDI = 0 OR HMUAYENEISL.SNKONgoNDERILDI IS NULL)))

      

             

       SELECT DISTINCT                   HDOSYA.SUBEID AS HDOSYA_SUBEID,

                     SUBELER.SUBEADI AS SUBELER_SUBEADI,                   

                     HDOSYA.SNOTAKIPNO AS HDOSYA_SNOTAKIPNO,               

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

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

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

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


       INTO #TMPDOSYA

       FROM HDOSYA WITH(NOLOCK)

       INNER JOIN SUBELER WITH(NOLOCK) ON SUBELER.SUBEID = HDOSYA.SUBEID

       WHERE

              HDOSYA.HDOSYAID =  @HDOSYAID

             


             

       IF (SELECT COUNT(*) FROM #TMPKONSULTASYON) = 0

       BEGIN

              SET @SAYIHATA = 1

              SET @MESAJ = @MESAJ + CONVERT(VARCHAR,@HDOSYAID)+' Dosyasına ait ussye göndeilecek konsultasyon kaydı bulunamadı! '        

       END

 

 

       IF (SELECT COUNT(*) FROM #TMPTANI)=0

       BEGIN

              SET @HATA = @HATA + 'Muayene kaydı için tanı girişi yapılmamış! USS sistemine kayıt yapılamaz. '

       END

 

       IF (SELECT COUNT(*) FROM #TMPDOSYA WHERE HDOSYA_SUBEID IS NULL) > 0

              SET @HATA = @HATA + 'İşlemin şube kaydı bulunamadı! '

 

       IF (SELECT COUNT(*) FROM #TMPDOSYA WHERE ISNULL(HDOSYA_SNOTAKIPNO,'')='') > 0

              SET @HATA = @HATA + 'Sağlık Net hasta takip numarası alınmadan USS sistemine muayene yapılamaz. '

 

       IF @HATA='' and @SAYIHATA=0

       BEGIN        

              SELECT @SUBEID = HDOSYA_SUBEID FROM #TMPDOSYA

              DECLARE @TBLXMLBASLIK TABLE (XMLBASLIK NVARCHAR(2000), HATA NVARCHAR(2000),MESAJ NVARCHAR(2000))

              INSERT INTO @TBLXMLBASLIK (XMLBASLIK, HATA, MESAJ) EXEC SPUSS_000_XML_BASLIK @SUBEID             

              SELECT @HATA=HATA, @MESAJ=MESAJ, @XMLBASLIK=XMLBASLIK FROM @TBLXMLBASLIK         

       END

      

 

       IF @HATA = '' AND @SAYIHATA=0

       BEGIN

 

 

                                  BEGIN TRY

                                         INSERT INTO @goNDERIMTABLOSU (goNDERILECEKXML,HATA,MESAJ,XMLBASLIK,TABLOID,MINID,MAXID)

                                         SELECT                                         

                                                (

 

                                                       SELECT

                                                              NEWID() AS 'messageGuid/@value',

                                                              '1' AS 'messageType/@version',

                                                              '0a9ba485-e7e0-4abb-9c86-0a14fd364bb8' AS 'messageType/@codeSystemGuid',

                                                              '252' AS 'messageType/@code',

                                                              'Konsültasyon 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',

                                                                           SAGLIKNETKURUMKODU AS 'healthcareProvider/@code',                 

                                                                           SUBELER_SUBEADI AS 'healthcareProvider/@value' FOR XML PATH('author'), TYPE

                                                              ),

         

                                                              --'C740D0288ED4C45FE0407C0A04162BDD' AS 'firmaKodu/@value',
															  SNOKTSFIRMAKODU AS 'firmaKodu/@value',

         

                                                              (/*p1*/

                                                                          

                                                                     SELECT--RECORT DATA

                                                                           (--HASTA TAKIP BILGISI

                                                                                  SELECT

                                                                                         ISNULL(HDOSYA_SNOTAKIPNO,'') AS 'SYSTakipNo/@value'

                                                                                  FOR XML PATH('HASTA_TAKIP_BILGISI'), TYPE

                                                                           ),                                       

                                                                           (--HASTA KONSULTASYON BILGILERI  /*p2*/

                                                                                         SELECT/*s1*/                                                             

                                                                                                      

                                                                                                       (/*p3*/

                                                                                                              SELECT /*s2*/

                                                                                                              (/*p4*/

                                                                                                              SELECT

                                                                                                                  ( /*p5*/

                                                                                                                     SELECT

      

                                                                                                                           ISNULL(HESAPISL_HESAPISLID,'') AS 'ISLEM_REFERANS_NUMARASI/@value',

                                                                                                                            ISNULL(LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),KONSULTASYON_BASLANGIC_ZAMANI,120),' ',''),'-',''),':',''),12),'') AS 'KONSULTASYON_BASLAMA_ZAMANI/@value',

                                                                                                                            ISNULL(LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),KONSULTASYON_BITIS_ZAMANI,120),' ',''),'-',''),':',''),12),'') AS 'KONSULTASYON_BITIS_ZAMANI/@value',

                                                                                                                           ISNULL(KONSULTASYON_TALEBINI_YAPAN_HEKIM_KIMLIK_NUMARASI,'') AS 'KONSULTASYON_TALEBINI_YAPAN_HEKIM_KIMLIK_NUMARASI/@value',

                                                                                                                           ISNULL(KONSULTASYON_TALEBINE_CEVAP_VEREN_HEKIM_KIMLIK_NUMARASI,'') AS 'KONSULTASYON_TALEBINE_CEVAP_VEREN_HEKIM_KIMLIK_NUMARASI/@value',

                                                                                                                          

                                                                                                                           (/*p5*/SELECT

 

                                                                                                                                  CASE

                                                                                                                                  WHEN ICD_SAYI>0

                                                                                                                                  THEN

                                                                                                                                                (

                                                                                                                                                       SELECT '1' AS 'TANI_TURU/@version',

                                                                                                                                                                     '55894edb-1a8c-4f7f-a447-0119e61c14f1' AS 'TANI_TURU/@codeSystemGuid',

                                                                                                                                                                     ISNULL(CONVERT(VARCHAR(20), TICD_ICDTURUID), '') AS 'TANI_TURU/@code',

                                                                                                                                                                     CASE TICD_ICDTURUID

                                                                                                                                                                     WHEN 1 THEN 'ANA TANI'

                                                                                                                                                                     WHEN 2 THEN 'EK TANI'

                                                                                                                                                                     WHEN 3 THEN 'ÖN TANI'

                                                                                                                                                                     ELSE ''

                                                                                                                                                                     END AS 'TANI_TURU/@value',

 

                                                                                                                                                                     '1' AS 'ICD10/@version',

                                                                                                                                                                     'c3eaabad-8c4c-56ee-e043-14031b0a5530' AS 'ICD10/@codeSystemGuid',

                                                                                                                                                                     ISNULL(CONVERT(VARCHAR(20), TICD_ICDKOD), '') AS 'ICD10/@code',

                                                                                                                                                                     ISNULL(TICD_ICDADI, '') AS 'ICD10/@value'

                                                                                                                                                       FROM #TMPTANI

                                                                                                                                                       FOR XML PATH('TANI_BILGISI'), TYPE

                                                                                                                                                )

                                                                                                                                  END)/*p5 end*/,

 

                                                                                                                           (SELECT

                                                                                                                           ISNULL(KONSULTASYON_NOTU_ACIKLAMA,'') AS 'KONSULTASYON_NOTU_BASLIK/@value',

                                                                                                                           ISNULL(KONSULTASYON_NOTU_ACIKLAMA,'') AS 'KONSULTASYON_NOTU_ACIKLAMA/@value'

                                                                                                                           FOR XML PATH('KONSULTASYON_NOTU_BILGISI'), TYPE)

                                                                                                              FROM #TMPKONSULTASYON                                                                                                            

                                                                                                              FOR XML PATH('KONSULTASYON_BILGISI'), TYPE            

                                                                                                                          

                                                                                                                          

                                                                                                                           )/*p5 end*/

                                                                                                               )/*p4 end*/

                                                                                                       )/*p3 end*/ FOR XML PATH('HASTA_KONSULTASYON_BILGILERI'), TYPE

                                                                                     /*s1 end*/)  /*p2 end*/ FOR XML PATH('recordData'), TYPE

                                                              )/*p1 end*/

                                                FROM #TMPDOSYA

                                                                          

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

 

                                                ) AS goNDERILECEKXML,

                                                @HATA AS HATA,

                                                @MESAJ AS MESAJ,

                                                @XMLBASLIK AS XMLBASLIK,

                                                @HMUAYENEID AS TABLOID,

                                                0 AS MINID,

                                                0 AS MAXID

 

                                  END TRY

                                  BEGIN CATCH

                                         SET @HATA = ERROR_MESSAGE()

                                         IF @HATA = ''

                                                SET @HATA = 'Bilinmeyen bir hata oluştu'

 
                    

                                         INSERT INTO @goNDERIMTABLOSU (goNDERILECEKXML,HATA,MESAJ,XMLBASLIK,TABLOID,MINID,MAXID)                

                                         SELECT '' AS goNDERILECEKXML,

                                                       @HATA AS HATA,

                                                       @MESAJ AS MESAJ,

                                                       '' AS XMLBASLIK,

                                                       @HMUAYENEID AS TABLOID,

                                                       0 AS MINID,

                                                       0 AS MAXID

                    

 

                                  END CATCH

 

                           END

                           ELSE

                           BEGIN
             

                                  INSERT INTO @goNDERIMTABLOSU (goNDERILECEKXML,HATA,MESAJ,XMLBASLIK,TABLOID,MINID,MAXID)

                                  SELECT '' AS goNDERILECEKXML,

                                                @HATA AS HATA,

                                                @MESAJ AS MESAJ,

                                                '' AS XMLBASLIK,

                                                @HMUAYENEID AS TABLOID,

                                                0 AS MINID,

                                                0 AS MAXID

                    

                                  SET @HATA = ''            

                           END

 

 

      

       IF OBJECT_ID('tempdb..#TMPKONSULTASYON') IS NOT NULL

              DROP TABLE #TMPKONSULTASYON

       IF OBJECT_ID('tempdb..#TMPTANI') IS NOT NULL

              DROP TABLE #TMPTANI

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

              DROP TABLE #TMPDOSYA

 

       SELECT * FROM @goNDERIMTABLOSU

      

 

 

END
