/*==============================================================================
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
ELABORACION: DIRESA SAN MARTÍN - JCAR
==============================================================================*/
use DataHIS
go

--***************************************************
--				BASES DE DATOS.
--***************************************************
--HIS MINSA 
select id_cita
	, convert(date,FECHA_ATENCION) fecha_atencion
	, convert(int,e.Codigo_Unico) renaes
	, p.NUMERO_DOCUMENTO num_doc
	, TIPO_DIAGNOSTICO tipo_dx
	, CODIGO_ITEM cod_item  
	, valor_lab
into #his_minsa
from HIS_Nominal h 
left join ESTABLECIMIENTOS e on h.ID_ESTABLECIMIENTO=e.Id_Establecimiento
left join PACIENTE p on h.ID_PACIENTE=p.ID_PACIENTE
-- 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 nu_cnv num_doc
				,convert(date,FE_NACIDO) fecha_nac
				,convert(int,CO_LOCAL) renaes
into #base_cnv
from CNV 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=2 --<=========== 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

drop table TRAMAHIS_DL_CG07_2023

select 
B.Disa Diris, CASE 
	WHEN B.Departamento='LIMA' AND B.Provincia='LIMA' THEN 'LIMA METROPOLITANA'
	WHEN B.Departamento='LIMA' AND B.Provincia<>'LIMA' THEN 'LIMA PROVINCIAS'
	ELSE B.Departamento END Departamento
, B.Provincia Provincia
, B.Distrito Distrito
, case when b.Disa like '%diris%' then b.Disa else B.Red end Red
, b.MicroRed MicroRed
, b.Categoria_Establecimiento cat_estab
, b.Nombre_Establecimiento eess_nombre
, a.*
into TRAMAHIS_DL_CG07_2023
from #tabla_reporte a
inner join ESTABLECIMIENTOS b on convert(int,a.renaes)=convert(int,b.Codigo_Unico)
where b.Categoria_Establecimiento in ('II-1','II-2','II-E','III-1','III-2','III-E') and converT(int,b.Codigo_Sector)=7

		--- NO CONSIDERAR ESTABLECIMIENTOS SIN RED.
		delete from TRAMAHIS_DL_CG07_2023 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 TRAMAHIS_DL_CG07_2023 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 TRAMAHIS_DL_CG07_2023
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


--select año, mes, Provincia, Distrito, Red, MicroRed,renaes, eess_nombre, num_doc, fecha_nac, den, num, fecha_BCG, fecha_HVB  from TRAMAHIS_DL_CG07_2023