IF  EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FNMDL_KANGAZIKONTROL]') AND xtype in (N'FN', N'IF', N'TF'))
DROP FUNCTION [dbo].[FNMDL_KANGAZIKONTROL]
GO
CREATE FUNCTION [dbo].[FNMDL_KANGAZIKONTROL](@HDOSYAID INTEGER,@MDLTEDAVITURU NVARCHAR(1))
RETURNS TABLE AS
RETURN
SELECT CASE WHEN MAX(VARMI)=0 THEN 0 
            WHEN MAX(VARMI)=1 THEN 1
			WHEN MAX(VARMI)=2 THEN 2 END KONTROL,'KanGazıKontrolü' KontrolAdi,
			'Hesap dosyasında aynı gün 3 ve daha fazla Kan Gazı işlemi olması durumu' Aciklama FROM
(
	SELECT '2' VARMI,dbo.TARIHAL(ITARIH) TARIH,ITEMKODU2,ITEMADI,HDOSYAID,MDLTEDAVITURU,COUNT(*) ADET  FROM VWHESAPISL H 
	WHERE IPTAL=0 AND H.HDOSYAID=@HDOSYAID AND
	EXISTS(select ITEMID from TITEM T WHERE ITEMKODU2='901920' AND T.ITEMID=H.ITEMID)
	GROUP BY DBO.TARIHAL(ITARIH),ITEMKODU2,ITEMADI,HDOSYAID,MDLTEDAVITURU
	HAVING COUNT(*)<3
	UNION ALL
	SELECT'1' VARMI, DBO.TARIHAL(ITARIH),ITEMKODU2,ITEMADI,HDOSYAID,MDLTEDAVITURU,COUNT(*) ADET FROM VWHESAPISL H 
	WHERE IPTAL=0 AND H.HDOSYAID=@HDOSYAID AND
	EXISTS(select ITEMID from TITEM T WHERE ITEMKODU2='901920' AND T.ITEMID=H.ITEMID)
	GROUP BY DBO.TARIHAL(ITARIH),ITEMKODU2,ITEMADI,HDOSYAID,MDLTEDAVITURU
	HAVING COUNT(*)>=3
) AS T GROUP BY HDOSYAID


