/*==============================================================================
FICHA: Indicador N°07 - DL 1153 2023
ELABORACION: OGTI/ OGEI - MINSA - JL
==============================================================================*/
use BD_HISINDICADORES
go

--***************************************************
--				BASES DE DATOS.
--***************************************************
--HIS MINSA 
select id_cita
	, convert(date,periodo) fecha_atencion
	, convert(int,renaes) renaes
	, num_doc
	, id_tipitem tipo_dx
	, cod_item  
	, valor_lab
into #his_minsa
from BD_BACKUP_OGEI.dbo.MEF_TramaHisMinsa_202301_20230221 with (nolock)
where cod_item in (
					'90585'														--Vacuna BCG
					,'90744'													--Vacuna HVB
				)
and id_tipo_doc in (1,6) and sw=1

--CNV
select distinct nu_cnv num_doc
				,convert(date,FE_NACIDO) fecha_nac
				,convert(int,CO_LOCAL) renaes
into #base_cnv
from BD_BACKUP_OGEI.dbo.MEF_TramaCNV_202301_20230221 with (nolock)
where sw_cnv=1 
and convert(int,PESO_NACIDO)>=2000												--Excluir menos de 2000 gr.


--***************************************************
--					SINTAXIS
--***************************************************
create table #tabla_reporte
( 
renaes int,
num_doc nvarchar(12),
fecha_nac date,
año 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=1 --<=========== Mes de evaluación
set @año=2023 --<============= Año de evaluación 

while @mes_inicio<=@mes_eval
begin

--%%%%%%%%%%%%%%%%
--  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(dateadd(dd,1,fecha_nac))=@mes_inicio
   and year(dateadd(dd,1,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_corte) año, month(a.fecha_corte) 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

--===================
-- REPORTE
--===================
drop table BD_HISINDICADORES.dbo.DL1153_2023_CG07_RnVacuna

select 
B.diris Diris, CASE 
	WHEN B.DESC_DPTO='LIMA' AND B.DESC_PROV='LIMA' THEN 'LIMA METROPOLITANA'
	WHEN B.DESC_DPTO='LIMA' AND B.DESC_PROV<>'LIMA' THEN 'LIMA PROVINCIAS'
	ELSE B.DESC_DPTO END Departamento
, B.desc_prov Provincia
, B.desc_dist Distrito
, case when b.DIRIS like '%diris%' then b.diris else B.DESC_RED end Red
, b.desc_mred MicroRed
, b.cat_estab
, b.desc_estab eess_nombre
, a.*
into BD_HISINDICADORES.dbo.DL1153_2023_CG07_RnVacuna
from #tabla_reporte a
inner join BD_BACKUP_OGEI.dbo.Renaes_20230221 b on convert(int,a.renaes)=convert(int,b.COD_ESTAB)
where b.CAT_ESTAB in ('II-1','II-2','II-E','III-1','III-2','III-E') and converT(int,b.ambito)=1

		--- NO CONSIDERAR ESTABLECIMIENTOS SIN RED.
		delete from BD_HISINDICADORES.DBO.DL1153_2023_CG07_RnVacuna where CAT_ESTAB in ('I-1','I-2','I-3','I-4') and Red like '%no pertenece%'

		--- NO CONSIDERAR ESTABLECIMIENTOS DE SALUD MENTAL.
		delete from BD_HISINDICADORES.DBO.DL1153_2023_CG07_RnVacuna where eess_nombre like '%salud%mental%'

select Diris, Departamento, Provincia, Distrito, Red, MicroRed, Cat_estab, eess_nombre, mes, año 
, sum(den) den, sum(num) num, sum(vacuna_BCG) Vacuna_BCG, sum(vacuna_HVB) Vacuna_HVB
from BD_HISINDICADORES.dbo.DL1153_2023_CG07_RnVacuna
group by Diris, Departamento, Provincia, Distrito, Red, MicroRed, Cat_estab, eess_nombre, mes, año 


drop table #base_cnv
drop table #his_minsa
drop table #tabla_reporte
-- =D