/*==============================================================================
FICHA: Indicador N°07: Porcentaje de niñas/niños recién nacidos de parto institucional vacunados con BCG y
Anti hepatitis B antes del alta
-- DL 1153 2023
ELABORACION: OGTI/ OGEI - MINSA - JL
==============================================================================*/
use DB_UEIS
go

--***************************************************
--				BASES DE DATOS.
--***************************************************
--HIS MINSA 

select id_cita
	, convert(date,FECHA_ATENCION) fecha_atencion
	, convert(int,Codigo_Unico) renaes
	,Numero_Documento num_doc
	,  TIPO_DIAGNOSTICO tipo_dx
	, CODIGO_ITEM cod_item  
	, valor_lab
into #his_minsa
from his_nominal with (nolock)
where CODIGO_ITEM in (
					'90585'														--Vacuna BCG
					,'90744'													--Vacuna HVB
				)
and Id_Tipo_Documento in (1,6)  -- and sw=1

--CNV
select distinct NUMCNV num_doc
				,convert(date,PERIODO) fecha_nac
				,convert(int,COD_EE_ATEN) renaes
into #base_cnv
from cnv with (nolock)
where --sw_cnv=1 
convert(int,PESO)>=2000												--Excluir menos de 2000 gr.

--***************************************************
--					SINTAXIS
--***************************************************
create table #tabla_reporte
( 
renaes int,
num_doc nvarchar(12),
fecha_nac date,
anio int,
mes int,
den int,
num int,
vacuna_BCG int,
fecha_BCG date,
vacuna_HVB int,
fecha_HVB date
)

declare @mes_inicio int,
		@mes_eval int,
		@año int 

set @mes_inicio=1 --<========= Mes inicio
set @mes_eval=7 --<=========== Mes de evaluación
set @año=2023 --<============= Año de evaluación 

while @mes_inicio<=@mes_eval
begin

DELETE FROM TB_F07 WHERE ANIO = @año AND MES = @mes_inicio

--%%%%%%%%%%%%%%%%
--  DENOMINADOR
--%%%%%%%%%%%%%%%%

--1.Niños /niñas nacidas en Hospital o Instituto, registrados en el CNV en Línea en el periodo de evaluación
select distinct num_doc
				,fecha_nac
				,dateadd(dd,1,fecha_nac) fecha_corte
				,renaes
into #cnv_den
from #base_cnv
where month(fecha_nac)=@mes_inicio
   and year(fecha_nac)=@año


--%%%%%%%%%%%%%%%%
-- NUMERADOR
--%%%%%%%%%%%%%%%%

--1. Niños del denominador que recibieron vacunas HVB y BCG

		--1.1 Recibio vacunas HVB en menos de 24 horas. 
		select a.num_doc, a.fecha_nac, a.renaes
		, max(b.fecha_atencion) fecha_HVB, vacuna_HVB=1
		into #cnv_numHVB
		from #cnv_den a
		inner join #his_minsa b on a.num_doc=b.num_doc and convert(int,a.renaes)=convert(int,b.renaes) 
		where b.cod_item='90744'	
		and (b.fecha_atencion between a.fecha_nac and a.fecha_corte)
		group by a.num_doc, a.fecha_nac, a.renaes

		--1.2 Recibio vacunas BCG en menos de 24 horas. 
		select a.num_doc, a.fecha_nac, a.renaes
		, max(b.fecha_atencion) fecha_BCG, vacuna_BCG=1
		into #cnv_numBCG
		from #cnv_den a
		inner join #his_minsa b on a.num_doc=b.num_doc and convert(int,a.renaes)=convert(int,b.renaes) 
		where b.cod_item='90585'	
		and (b.fecha_atencion between a.fecha_nac and a.fecha_corte)
		group by a.num_doc, a.fecha_nac, a.renaes


--%%%%%%%%%%%%%%%%
--	INDICADOR
--%%%%%%%%%%%%%%%%
insert into #tabla_reporte
select a.renaes, a.num_doc, a.fecha_nac
, year(a.fecha_nac) año, month(a.fecha_nac) mes
, den=1
, iif(b.vacuna_BCG=1 and c.vacuna_HVB=1,1,0) num
, isnull(b.vacuna_BCG,0) vacuna_BCG, b.fecha_BCG							--Vacuna BCG
, isnull(c.vacuna_HVB,0) vacuna_HVB, c.fecha_HVB							--Vacuna HVB
from #cnv_den a
left join #cnv_numBCG b on a.num_doc=b.num_doc and a.fecha_nac=b.fecha_nac and a.renaes=b.renaes
left join #cnv_numHVB c on a.num_doc=c.num_doc and a.fecha_nac=c.fecha_nac and a.renaes=c.renaes


drop table #cnv_den
drop table #cnv_numBCG
drop table #cnv_numHVB

set @mes_inicio=@mes_inicio+1
end


--select * from #tabla_reporte

INSERT INTO TB_F07
SELECT u.desc_prov,u.desc_dist,e.Disa,e.Codigo_Red,e.Red,e.Codigo_MicroRed,e.MicroRed,e.Nombre_Establecimiento,e.Categoria,t.*
-- INTO TB_F07 
FROM #tabla_reporte t 
LEFT join ESTABLECIMIENTOS e on convert(int, t.renaes)=e.Codigo_Unico
inner join maestro_ubigeo u on e.Ubigueo_Establecimiento=u.UBIGEO
where ( u.desc_prov IN('MOYOBAMBA') or (u.ubigeo IN('220502') and convert(int,t.renaes) in('6348','7297','10516'))) --and t.id=1
--and ((t.seguro LIKE concat('%','0','%') or t.seguro LIKE concat('%','1','%') OR t.seguro LIKE concat('%','6','%') OR t.seguro IS NULL OR t.seguro='' )) 
ORDER BY t.anio,t.mes asc


 delete from TB_F07
 where  (convert(int,renaes) IN('6291','6282','6292','6293','6295','6296') and Red='RIOJA' ) --ubigeo='220101')