
use DB_UEIS

declare @mes_eval int, 
		@mes_final int, 
		@year int 

declare @mes_anterior int,
		@anio_anterior int

set @year=2023
set @mes_eval=7
set @mes_final=8

while @mes_eval <= @mes_final
begin

DELETE FROM TB_VI_01_01 WHERE ANIO = @year AND MES = @mes_eval
DELETE FROM TB_VI_01_02 WHERE ANIO = @year AND MES = @mes_eval
DELETE FROM TB_VI_01_03 WHERE ANIO = @year AND MES = @mes_eval

IF (@mes_eval = 1 )
BEGIN

	SET @mes_anterior = 12
	SET @anio_anterior = @year - 1
end
ELSE
begin
	SET @mes_anterior = @mes_eval - 1
	SET @anio_anterior = @year
end




SELECT ANIO,MES,FECHA_ATENCION,ID_ESTABLECIMIENTO,Codigo_Unico,Numero_Documento,Fecha_Nacimiento,'1' DEN1 
into #primercontrol 
FROM his_nominal 
WHERE CODIGO_ITEM IN('Z3591','Z3592','Z3593','Z3491','Z3492','Z3493') AND 
TIPO_DIAGNOSTICO='D' AND VALOR_LAB='1' AND ANIO=@year AND MES=@mes_eval

-- SELECT * FROM #primercontrol 

SELECT DISTINCT P.Numero_Documento,H.FECHA_ATENCION,'1' NUM1 
into #tamisajenum1
FROM  #primercontrol AS p 
INNER JOIN his_nominal AS h ON p.Numero_Documento=h.Numero_Documento and p.FECHA_ATENCION=h.FECHA_ATENCION AND P.ID_ESTABLECIMIENTO=H.ID_ESTABLECIMIENTO
WHERE (h.CODIGO_ITEM='96150.01'  OR (h.CODIGO_ITEM='96150' and h.VALOR_LAB='VIF')) AND TIPO_DIAGNOSTICO='D'
ORDER BY  P.Numero_Documento ASC

--select * from #tamisajenum1

--delete from #tamisajenum1 where Numero_Documento='40978181'

INSERT INTO TB_VI_01_01 
SELECT e.Provincia,e.Ubigueo_Establecimiento ubigeo,e.Distrito,e.Disa,e.Codigo_Red,e.Red,e.Codigo_MicroRed,e.MicroRed,e.Nombre_Establecimiento,m.FED2020 Distritos_FED,d.ANIO,d.MES,d.Numero_Documento DNI,d.Fecha_Nacimiento FECHA_NAC,CONVERT(INT,d.Codigo_Unico) RENAES,ISNULL(NUM1,0) AS NUM,d.DEN1 DEN
--INTO TB_VI_01_01
FROM #primercontrol  as d 
left join #tamisajenum1 as n on d.Numero_Documento=n.Numero_Documento
INNER JOIN establecimientos e on CONVERT(INT,d.Codigo_Unico)=e.Codigo_Unico
inner join maestro_ubigeo m on e.Ubigueo_Establecimiento=m.UBIGEO


-- VIOLENCIA V2

SELECT distinct h1.ANIO,h1.MES,h1.FECHA_ATENCION,h1.ID_ESTABLECIMIENTO,h1.Codigo_Unico,h1.Numero_Documento,h1.Fecha_Nacimiento
into #controles 
FROM his_nominal h1
WHERE (h1.CODIGO_ITEM IN('Z3591','Z3592','Z3593','Z3491','Z3492','Z3493') AND h1.TIPO_DIAGNOSTICO='D' AND Id_Correlativo_Lab='1') AND h1.ANIO=@year AND h1.MES=@mes_eval
order by h1.Numero_Documento



SELECT DISTINCT P.Numero_Documento,H.FECHA_ATENCION,h.ID_ESTABLECIMIENTO,'1' DEN2 
into #tamisajeden2
FROM  #controles AS p 
INNER JOIN his_nominal AS h ON p.Numero_Documento=h.Numero_Documento and p.FECHA_ATENCION=h.FECHA_ATENCION AND P.ID_ESTABLECIMIENTO=H.ID_ESTABLECIMIENTO
WHERE (h.CODIGO_ITEM='96150.01'  OR (h.CODIGO_ITEM='96150' and h.VALOR_LAB='VIF')) AND TIPO_DIAGNOSTICO='D'
ORDER BY  P.Numero_Documento ASC



SELECT DISTINCT c.Numero_Documento,'1' NUM2 
INTO #positivos
FROM #tamisajeden2 c 
INNER JOIN his_nominal as t on c.Numero_Documento=t.Numero_Documento and c.FECHA_ATENCION=t.FECHA_ATENCION and c.ID_ESTABLECIMIENTO=t.ID_ESTABLECIMIENTO
WHERE t.CODIGO_ITEM IN('R456')AND t.TIPO_DIAGNOSTICO='D'


INSERT INTO TB_VI_01_02
SELECT e.Provincia,e.Ubigueo_Establecimiento ubigeo,e.Distrito,e.Disa,e.Codigo_Red,e.Red,e.Codigo_MicroRed,e.MicroRed,e.Nombre_Establecimiento,m.FED2020 Distritos_FED, cl.ANIO,cl.MES,cl.Numero_Documento,cl.Fecha_Nacimiento,CONVERT(INT,cl.Codigo_Unico) RENAES,ISNULL(c.NUM2,0) NUM,t.DEN2 DEN 
--INTO TB_VI_01_02
from   #tamisajeden2 t 
INNER JOIN #controles cl on t.Numero_Documento=cl.Numero_Documento and t.FECHA_ATENCION=cl.FECHA_ATENCION
left JOIN #positivos c on t.Numero_Documento=c.Numero_Documento 
INNER JOIN establecimientos e on CONVERT(INT,cl.Codigo_Unico)=e.Codigo_Unico
inner join maestro_ubigeo m on e.Ubigueo_Establecimiento=m.UBIGEO



-- V03

SELECT distinct h1.ANIO,h1.MES,h1.FECHA_ATENCION,h1.ID_ESTABLECIMIENTO,h1.Codigo_Unico,h1.Numero_Documento,h1.Fecha_Nacimiento,'1' DEN3
into #denv03 
FROM his_nominal h1
INNER JOIN his_nominal h2 on h1.ID_PACIENTE=h2.ID_PACIENTE AND h1.FECHA_ATENCION=h2.FECHA_ATENCION and h1.ID_ESTABLECIMIENTO=h2.ID_ESTABLECIMIENTO
INNER JOIN his_nominal h3 on h1.ID_PACIENTE=h3.ID_PACIENTE AND h1.FECHA_ATENCION=h3.FECHA_ATENCION and h1.ID_ESTABLECIMIENTO=h3.ID_ESTABLECIMIENTO
WHERE (h1.CODIGO_ITEM IN('Z3591','Z3592','Z3593','Z3491','Z3492','Z3493') AND h1.TIPO_DIAGNOSTICO='D' AND h1.Id_Correlativo_Lab='1' AND h1.ANIO=@anio_anterior AND h1.MES=@mes_anterior) AND
(h2.CODIGO_ITEM='96150.01'  OR (h2.CODIGO_ITEM='96150' and h2.VALOR_LAB='VIF')) AND
(h3.CODIGO_ITEM IN('R456')AND h3.TIPO_DIAGNOSTICO='D')



 DROP TABLE if EXISTS #dxviolencia;
 SELECT  DISTINCT h.Numero_Documento,h2.FECHA_ATENCION as fecha_dx,'1' C1
 INTO #dxviolencia
	FROM #denv03 as h
	INNER JOIN his_nominal as h2 ON h.Numero_Documento=h2.Numero_Documento
	WHERE (h2.CODIGO_ITEM IN('T741','T742','T743','T748','T749','Y070','Y078') OR (h2.CODIGO_ITEM BETWEEN 'X85' AND 'Y09')) AND h2.TIPO_DIAGNOSTICO='D' AND 
	h2.FECHA_ATENCION BETWEEN h.FECHA_ATENCION  AND DATEADD(DAY,15,h.FECHA_ATENCION) 



    SELECT DISTINCT h.Numero_Documento, MIN(h2.FECHA_ATENCION) as fecha_tto,'1' C2
	INTO #ttoviolencia
		FROM #dxviolencia as h
		INNER JOIN his_nominal as h2 ON h.Numero_Documento=h2.Numero_Documento
		WHERE h2.CODIGO_ITEM IN('99215','99207','99366','99207.04','90834','90860','90806','C2111.01','96100.01','90847','C0011')  AND 
		h2.FECHA_ATENCION BETWEEN h.fecha_dx  AND DATEADD(DAY,7,h.fecha_dx)
		GROUP BY H.Numero_Documento

		--cl.ANIO,cl.MES,cl.Numero_Documento,cl.Fecha_Nacimiento,CONVERT(INT,cl.Codigo_Unico) RENAES

INSERT INTO TB_VI_01_03 
SELECT e.Provincia,e.Ubigueo_Establecimiento ubigeo,e.Distrito,e.Disa,e.Codigo_Red,e.Red,e.Codigo_MicroRed,e.MicroRed,e.Nombre_Establecimiento,m.FED2020 Distritos_FED,@year ANIO,@mes_eval MES,d.Numero_Documento,d.Fecha_Nacimiento,CONVERT(INT,d.Codigo_Unico) RENAES,d.DEN3 DEN,isnull(dx.c1,0) C1,isnull(tto.c2,0) C2,
case when dx.c1>0 and tto.c2>0 THEN 1 ELSE 0  END NUM
--into TB_VI_01_03 
FROM #denv03 d 
left JOIN #dxviolencia dx on d.Numero_Documento=dx.Numero_Documento
left JOIN #ttoviolencia tto on dx.Numero_Documento=tto.Numero_Documento
left JOIN establecimientos e on CONVERT(INT,d.Codigo_Unico)=e.Codigo_Unico
inner join maestro_ubigeo m on e.Ubigueo_Establecimiento=m.UBIGEO




set @mes_eval = @mes_eval + 1

end




					

					
