/*==============================================================================
FICHA: Indicador N°06 - DL 1153 2024 (Ejecución para los indicadores de Gestión del 2024
ELABORACION: OGTI/ OGEI - MINSA
==============================================================================*/
use BD_HISINDICADORES
go

--***************************************************
--				BASES DE DATOS.
--***************************************************
--HIS MINSA 
select
	id_cita			,
	fecha_atencion	= convert(date,periodo)	,
	aniomes			= convert(int,aniomes)	,
	num_doc			,
	tipo_dx			= id_tipitem			,
	cod_item		,
	valor_lab
into #his_minsa
from BD_BACKUP_OGEI.dbo.MEF_TramaHisMinsa_202308_20230925 with (nolock)
where cod_item in (
					'85018','85018.01'														--Dosaje de Hemoglobina.
					,'86780','86592','86593','86318.01','86780.01'							--Tamizaje de sifilis.
					,'86703','86703.02','87389','86318.01','86703.01'						--Tamizaje de VIH.
					,'81007','81002','81000.02'												--Tamizaje de bacteriuria asintomática
					,'80055.01'																--Perfil obstétrico
					,'Z3491','Z3492','Z3493','Z3591','Z3592','Z3593','Z359','Z349'			--APN
					,'59401.04','99199.26','0990'											--Suplementacion
					,'59401.06','U1692'														--Plan de parto
					,'C0011'																--Visita familiar
				)		and
		id_tipo_doc = 1 and
				 sw = 1

insert into #his_minsa
select
	id_cita			,
	fecha_atencion	= convert(date,periodo)	,
	aniomes			= convert(int,aniomes)	,
	num_doc			,
	tipo_dx			= id_tipitem			,
	cod_item		,
	valor_lab
from BD_HISINDICADORES.dbo.TramaHisMinsa_2022_20230302 with (nolock)
where cod_item in (
					'85018','85018.01'														--Dosaje de Hemoglobina.
					,'86780','86592','86593','86318.01','86780.01'							--Tamizaje de sifilis.
					,'86703','86703.02','87389','86318.01','86703.01'						--Tamizaje de VIH.
					,'81007','81002','81000.02'												--Tamizaje de bacteriuria asintomática
					,'80055.01'																--Perfil obstétrico
					,'Z3491','Z3492','Z3493','Z3591','Z3592','Z3593','Z359','Z349'			--APN
					,'59401.04','99199.26','0990'											--Suplementacion
					,'59401.06','U1692'														--Plan de parto
					,'C0011'																--Visita familiar
				)		and
		id_tipo_doc = 1 and
				 sw = 1

-- Renaes (SUSALUD)
select
	renaes = cod_estab
into #renaes
from BD_BACKUP_OGEI.dbo.Renaes_20230920
where ambito = 1							--Establecimientos del minsa

--CNV (CERTIFICADO NACIDO VIDO)
select
	ndoc			= nu_doc_madre										,
	fecha_parto		= convert(date,fe_nacido)							,
	ubigeoreniec	= dpto_dom_madre + prov_dom_madre + dist_dom_madre	,
	semana_nac		= max(convert(int,dur_emb_parto))
into #base_cnv
from BD_BACKUP_OGEI.dbo.MEF_TramaCNV_202308_20230920 with(nolock)
where	convert(int,tip_doc_madre) = 1 AND
							sw_dni = 1 AND
		try_convert(int,cont_dom_madre) = 92 AND try_convert(int,pais_dom_madre) = 33 AND			--> Solo partos de gestantes 
		convert(int,dur_emb_parto) >= 37 AND dur_emb_parto IS NOT NULL AND							--> Partos con edad gestacional mayor a 37 semanas.
		convert(int,tip_lugar_nacido) = 1 AND														--> Partos realizados en establecimientos de salud.
		convert(int,co_local) in (select distinct convert(int,renaes) from #renaes)					--> Establecimientos del MINSA
group by nu_doc_madre, convert(date,fe_nacido), dpto_dom_madre+prov_dom_madre+dist_dom_madre


INSERT INTO #base_cnv
select
	ndoc			= nu_doc_madre										,
	fecha_parto		= convert(date,fe_nacido)							,
	ubigeoreniec	= dpto_dom_madre + prov_dom_madre + dist_dom_madre	,
	semana_nac		= max(convert(int,dur_emb_parto))
from BD_HISINDICADORES.dbo.CNV_2022_20230302 with(nolock)
where convert(int,tip_doc_madre) = 1 and
						  sw_dni = 1
and try_convert(int,cont_dom_madre)=92 and try_convert(int,pais_dom_madre)=33										--> Solo partos de gestantes 
and convert(int,dur_emb_parto)>=37 and dur_emb_parto is not null													--> Partos con edad gestacional mayor a 37 semanas.
and convert(int,tip_lugar_nacido)=1																					--> Partos realizados en establecimientos de salud.
and convert(int,co_local) in (select distinct convert(int,renaes) from #renaes)										--> Establecimientos del MINSA
group by nu_doc_madre, convert(date,fe_nacido), dpto_dom_madre+prov_dom_madre+dist_dom_madre



	--- eliminar duplicados
	select
		ndoc,
		minfecha_parto = min(fecha_parto)
	into #elimina_duplicado
	from #base_cnv
	where ndoc+'-'+convert(varchar(6), month(fecha_parto),112)+ubigeoreniec
								in
								(
									select
										ndoc+'-'+convert(varchar(6),month(fecha_parto),112)+ubigeoreniec
									from #base_cnv
									group by ndoc+'-'+convert(varchar(6), month(fecha_parto),112)+ubigeoreniec
									having count(*) >1
								)
	group by ndoc

	delete from #base_cnv
	where convert(varchar,ndoc)+'-'+convert(varchar(8),fecha_parto,112)
	in			(
				select convert(varchar,ndoc)+'-'+convert(varchar(8),minfecha_parto,112) 
				from #elimina_duplicado
				)

--- Semanas de Gestacion 
select
	t1.año	 ,
	t1.semana,
	min_mes = min(t1.mes), 
	min_dia = (select
					min(dia)
				from BD_HISINDICADORES.dbo.DIMFECHA_MIDIS
				where	semana  = t1.Semana and
						año		= t1.Año	and 
						Mes		= min(t1.mes)),
						MIN(convert(date,FECHA)) AS FECHA
into #DimFechaMin 
from DIMFECHA_MIDIS t1
group by t1.año, t1.semana


--***************************************************
--					SINTAXIS
--***************************************************
create table #tabla_reporte
( 
ndoc nvarchar(8), 
fecha_parto date, 
ubigeoreniec int, 
semana_nac int, 
inicio_gestacion date, 
fecha_trimestre1 date, 
fecha_trimestre2 date,
num_exa int, 
num_perfilobst int, 
fecha_perfilobst date, 
num_dosajehb int, 
fecha_dosajehb date, 
num_exa_sifilis int, 
fecha_exa_sifilis date,
num_exa_vih int, 
fecha_exa_vih date, 
num_bacteriuria int, 
fecha_bacteriuria date, 
num_apn int, 
fecha_apn01_1trim date, 
fecha_apn01_2trim date,
fecha_apn02_2trim date, 
fecha_apn01_3trim date, 
fecha_apn02_3trim date, 
fecha_apn03_3trim date, 
num_suple int, 
fecha_suple01 date, 
fecha_suple02 date, 
fecha_suple03 date, 
fecha_suple04 date, 
fecha_suple05 date, 
num_plan int, 
num_plan01 int, 
fecha_plan01 date,
num_plan02 int, 
fecha_plan02 date, 
num_plan03 int, 
fecha_plan03 date, 
mes int, 
año int, 
den int, 
num int
)

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

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

while @mes_inicio<=@mes_eval
begin

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

--1.Número de partos institucionales de mujeres cuya edad gestacional es mayor o igual a 37 semanas
select distinct ndoc
				,fecha_parto
				,converT(int,ubigeoreniec) ubigeoreniec
				,semana_nac
into #cnv_den
from #base_cnv
where month(fecha_parto)=@mes_inicio
   and year(fecha_parto)=@año


select a.*
, dateadd(day,-1,dfMin1.fecha) AS Fecha_trimestre1 
, dateadd(day,-1,dfMin2.fecha) AS Fecha_trimestre2 
into #cnv_den_final
from(
		select a.*, dfMin.fecha  inicio_gestacion 
		from #cnv_den a
		join DIMFECHA_MIDIS df on DATEADD(dd,-(a.semana_nac*7),a.fecha_parto)=df.Fecha
		JOIN #DimFechaMin dfMin on df.Año = dfMin.Año and df.Semana = dfMin.Semana		
) a
JOIN DIMFECHA_MIDIS df1 on DATEADD(DAY,(14*7),a.inicio_gestacion)=  CONVERT(DATE,df1.Fecha)
JOIN #DimFechaMin dfMin1 on df1.Año = dfMin1.Año and df1.Semana = dfMin1.Semana	
JOIN DIMFECHA_MIDIS df2 on DATEADD(DAY,(28*7),a.inicio_gestacion)=  CONVERT(DATE,df2.Fecha)
JOIN #DimFechaMin dfMin2 on df2.Año = dfMin2.Año and df2.Semana = dfMin2.Semana	


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

--1. Haber realizado en el primer trimestre del embarazo al menos una vez, los siguientes exámenes auxiliares:

	--1.1.1 Dosaje de Hemoglobina
	select ndoc, fecha_parto, ubigeoreniec, semana_nac, max(b.fecha_atencion) fecha_dosajehb, dosajehb=1
	into #gest_dosajehb
	from #cnv_den_final a
	inner join #his_minsa b on a.ndoc=b.num_doc
	where b.cod_item in ('85018','85018.01') and b.tipo_dx='D'
	and ( b.fecha_atencion between a.inicio_gestacion and dateadd(dd,-1,a.Fecha_trimestre1) )
	and b.id_cita in ( select distinct id_cita from #his_minsa where cod_item in ('Z3491','Z3492','Z3493','Z3591','Z3592','Z3593','Z359','Z349') )
	group by ndoc, fecha_parto, ubigeoreniec, semana_nac

	--1.1.2 Tamizaje de sífilis (Prueba rápida y/o RPR)
	select ndoc, fecha_parto, ubigeoreniec, semana_nac, max(b.fecha_atencion) fecha_sifilis, sifilis=1
	into #gest_sifilis
	from #cnv_den_final a
	inner join #his_minsa b on a.ndoc=b.num_doc
	where b.cod_item in ('86780','86592','86593','86318.01','86780.01') and b.tipo_dx='D'
	and ( b.fecha_atencion between a.inicio_gestacion and dateadd(dd,-1,a.Fecha_trimestre1) )
	and b.id_cita in ( select distinct id_cita from #his_minsa where cod_item in ('Z3491','Z3492','Z3493','Z3591','Z3592','Z3593','Z359','Z349') )
	group by ndoc, fecha_parto, ubigeoreniec, semana_nac

	--1.1.3 Tamizaje de VIH con prueba rápida
 	select ndoc, fecha_parto, ubigeoreniec, semana_nac, max(b.fecha_atencion) fecha_tvih, tvih=1
	into #gest_tvih
	from #cnv_den_final a
	inner join #his_minsa b on a.ndoc=b.num_doc
	where b.cod_item in ('86703','86703.02','87389','86318.01','86703.01') and b.tipo_dx='D'
	and ( b.fecha_atencion between a.inicio_gestacion and dateadd(dd,-1,a.Fecha_trimestre1) )
	and b.id_cita in ( select distinct id_cita from #his_minsa where cod_item in ('Z3491','Z3492','Z3493','Z3591','Z3592','Z3593','Z359','Z349') )
	group by ndoc, fecha_parto, ubigeoreniec, semana_nac
	         
	--1.1.4 Tamizaje de bacteriuria asintomática
 	select ndoc, fecha_parto, ubigeoreniec, semana_nac, max(b.fecha_atencion) fecha_bacteriuria, bacteriuria=1
	into #gest_bacteriuria
	from #cnv_den_final a
	inner join #his_minsa b on a.ndoc=b.num_doc
	where b.cod_item in ('81007','81002','81000.02') and b.tipo_dx='D'
	and ( b.fecha_atencion between a.inicio_gestacion and dateadd(dd,-1,a.Fecha_trimestre1) )
	and b.id_cita in ( select distinct id_cita from #his_minsa where cod_item in ('Z3491','Z3492','Z3493','Z3591','Z3592','Z3593','Z359','Z349') )
	group by ndoc, fecha_parto, ubigeoreniec, semana_nac

	--1.2 Perfil obstétrico CPMS: 80055.01 con tipo de diagnóstico "D".
 	select ndoc, fecha_parto, ubigeoreniec, semana_nac, max(b.fecha_atencion) fecha_perfilobst, perfilobst=1
	into #gest_perfilobst
	from #cnv_den_final a
	inner join #his_minsa b on a.ndoc=b.num_doc
	where b.cod_item='80055.01' and b.tipo_dx='D'
	and ( b.fecha_atencion between a.inicio_gestacion and dateadd(dd,-1,a.Fecha_trimestre1) )
	and b.id_cita in ( select distinct id_cita from #his_minsa where cod_item in ('Z3491','Z3492','Z3493','Z3591','Z3592','Z3593','Z359','Z349') )
	group by ndoc, fecha_parto, ubigeoreniec, semana_nac	
	

--2.Al menos 06 atenciones prenatales presenciales, en el transcurso del embarazo CPMS (presenciales)       

	--2.1  Buscar 01 apn en el ITrim
	select a.ndoc, a.fecha_parto, a.ubigeoreniec, a.semana_nac, min(b.fecha_atencion) fecha_apn01_1trim, apn01_1trim=1
	into #num_01_1trim
	from #cnv_den_final a
	inner join #his_minsa b on a.ndoc=b.num_doc
	where b.cod_item in ('Z3491','Z3492','Z3493','Z3591','Z3592','Z3593') 
	and ( b.fecha_atencion between a.inicio_gestacion and dateadd(dd,-1,a.Fecha_trimestre1) )
	group by a.ndoc, a.fecha_parto, a.ubigeoreniec, a.semana_nac

	--2.2  Buscar 02 apn en el IITrim
	select a.ndoc, a.fecha_parto, a.ubigeoreniec, a.semana_nac, a.Fecha_trimestre1, a.Fecha_trimestre2, min(b.fecha_atencion) fecha_apn01_2trim, apn01_2trim=1
	into #num_01_2trim
	from #cnv_den_final a
	inner join #his_minsa b on a.ndoc=b.num_doc
	where b.cod_item in ('Z3491','Z3492','Z3493','Z3591','Z3592','Z3593') 
	and ( b.fecha_atencion between a.Fecha_trimestre1 and dateadd(dd,-1,a.Fecha_trimestre2) )
	group by a.ndoc, a.fecha_parto, a.ubigeoreniec, a.semana_nac, a.Fecha_trimestre1, a.Fecha_trimestre2

	select a.ndoc, a.fecha_parto, a.ubigeoreniec, a.semana_nac, min(b.fecha_atencion) fecha_apn02_2trim, apn02_2trim=1
	into #num_02_2trim
	from #num_01_2trim a
	inner join #his_minsa b on a.ndoc=b.num_doc
	where b.cod_item in ('Z3491','Z3492','Z3493','Z3591','Z3592','Z3593') 
	and ( b.fecha_atencion between a.Fecha_trimestre1 and dateadd(dd,-1,a.Fecha_trimestre2) )
	and b.fecha_atencion>a.fecha_apn01_2trim
	group by a.ndoc, a.fecha_parto, a.ubigeoreniec, a.semana_nac

	--2.3  Buscar 03 apn en el IIITrim
	select a.ndoc, a.fecha_parto, a.ubigeoreniec, a.semana_nac, a.Fecha_trimestre2, min(b.fecha_atencion) fecha_apn01_3trim, apn01_3trim=1
	into #num_01_3trim
	from #cnv_den_final a
	inner join #his_minsa b on a.ndoc=b.num_doc
	where b.cod_item in ('Z3491','Z3492','Z3493','Z3591','Z3592','Z3593') 
	and ( b.fecha_atencion between a.Fecha_trimestre2 and A.fecha_parto )
	group by a.ndoc, a.fecha_parto, a.ubigeoreniec, a.semana_nac, a.Fecha_trimestre2

	select a.ndoc, a.fecha_parto, a.ubigeoreniec, a.semana_nac, a.Fecha_trimestre2, min(b.fecha_atencion) fecha_apn02_3trim, apn02_3trim=1
	into #num_02_3trim
	from #num_01_3trim a
	inner join #his_minsa b on a.ndoc=b.num_doc
	where b.cod_item in ('Z3491','Z3492','Z3493','Z3591','Z3592','Z3593') 
	and ( b.fecha_atencion between a.Fecha_trimestre2 and A.fecha_parto )
	and b.fecha_atencion>a.fecha_apn01_3trim
	group by a.ndoc, a.fecha_parto, a.ubigeoreniec, a.semana_nac, a.Fecha_trimestre2

	select a.ndoc, a.fecha_parto, a.ubigeoreniec, a.semana_nac, min(b.fecha_atencion) fecha_apn03_3trim, apn03_3trim=1
	into #num_03_3trim
	from #num_02_3trim a
	inner join #his_minsa b on a.ndoc=b.num_doc
	where b.cod_item in ('Z3491','Z3492','Z3493','Z3591','Z3592','Z3593') 
	and ( b.fecha_atencion between a.Fecha_trimestre2 and A.fecha_parto )
	and b.fecha_atencion>a.fecha_apn02_3trim
	group by a.ndoc, a.fecha_parto, a.ubigeoreniec, a.semana_nac

--3. Al menos 05 entregas de suplemento compuesto por sulfato ferroso + ácido fólico, en el transcurso del embarazo CPMS.

	--3.1 Entrega 01 suplemento 
	select a.ndoc, a.fecha_parto, a.inicio_gestacion, a.ubigeoreniec, a.semana_nac, min(b.fecha_atencion) fecha_suple01, num_suple01=1
	into #num_suple01
	from #cnv_den_final a
	inner join #his_minsa b on a.ndoc=b.num_doc
	where b.cod_item in ('59401.04','99199.26')
	and b.id_cita in (select distinct id_cita from #his_minsa where cod_item in ('Z3491','Z3492','Z3493','Z3591','Z3592','Z3593','Z359','Z349') )
	and ( b.fecha_atencion between a.inicio_gestacion and a.fecha_parto )
	group by a.ndoc, a.fecha_parto, a.inicio_gestacion, a.ubigeoreniec, a.semana_nac

	--3.2 Entrega 02 suplemento 
	select a.ndoc, a.fecha_parto, a.inicio_gestacion, a.ubigeoreniec, a.semana_nac, min(b.fecha_atencion) fecha_suple02, num_suple02=1
	into #num_suple02
	from #num_suple01 a
	inner join #his_minsa b on a.ndoc=b.num_doc
	where b.cod_item in ('59401.04','99199.26')
	and b.id_cita in (select distinct id_cita from #his_minsa where cod_item in ('Z3491','Z3492','Z3493','Z3591','Z3592','Z3593','Z359','Z349') )
	and ( b.fecha_atencion between a.inicio_gestacion and a.fecha_parto )
	and b.fecha_atencion>a.fecha_suple01
	group by a.ndoc, a.fecha_parto, a.inicio_gestacion, a.ubigeoreniec, a.semana_nac

	--3.3 Entrega 03 suplemento 
	select a.ndoc, a.fecha_parto, a.inicio_gestacion, a.ubigeoreniec, a.semana_nac, min(b.fecha_atencion) fecha_suple03, num_suple03=1
	into #num_suple03
	from #num_suple02 a
	inner join #his_minsa b on a.ndoc=b.num_doc
	where b.cod_item in ('59401.04','99199.26')
	and b.id_cita in (select distinct id_cita from #his_minsa where cod_item in ('Z3491','Z3492','Z3493','Z3591','Z3592','Z3593','Z359','Z349') )
	and ( b.fecha_atencion between a.inicio_gestacion and a.fecha_parto )
	and b.fecha_atencion>a.fecha_suple02
	group by a.ndoc, a.fecha_parto, a.inicio_gestacion, a.ubigeoreniec, a.semana_nac

	--3.4 Entrega 04 suplemento 
	select a.ndoc, a.fecha_parto, a.inicio_gestacion, a.ubigeoreniec, a.semana_nac, min(b.fecha_atencion) fecha_suple04, num_suple04=1
	into #num_suple04
	from #num_suple03 a
	inner join #his_minsa b on a.ndoc=b.num_doc
	where b.cod_item in ('59401.04','99199.26')
	and b.id_cita in (select distinct id_cita from #his_minsa where cod_item in ('Z3491','Z3492','Z3493','Z3591','Z3592','Z3593','Z359','Z349') )
	and ( b.fecha_atencion between a.inicio_gestacion and a.fecha_parto )
	and b.fecha_atencion>a.fecha_suple03
	group by a.ndoc, a.fecha_parto, a.inicio_gestacion, a.ubigeoreniec, a.semana_nac

	--3.5 Entrega 05 suplemento 
	select a.ndoc, a.fecha_parto, a.inicio_gestacion, a.ubigeoreniec, a.semana_nac, min(b.fecha_atencion) fecha_suple05, num_suple05=1
	into #num_suple05
	from #num_suple04 a
	inner join #his_minsa b on a.ndoc=b.num_doc
	where b.cod_item in ('59401.04','99199.26')
	and b.id_cita in (select distinct id_cita from #his_minsa where cod_item in ('Z3491','Z3492','Z3493','Z3591','Z3592','Z3593','Z359','Z349') )
	and ( b.fecha_atencion between a.inicio_gestacion and a.fecha_parto )
	and b.fecha_atencion>a.fecha_suple04
	group by a.ndoc, a.fecha_parto, a.inicio_gestacion, a.ubigeoreniec, a.semana_nac

--4. Gestante con 03 entrevistas de Plan de Parto durante el embarazo

	--4.1 Plan de atencion de parto (primera entrevista)
	select a.ndoc, a.fecha_parto, a.ubigeoreniec, a.semana_nac, min(b.fecha_atencion) fecha_plan01, num_plan01=1 
	into #num_plan01
	from #cnv_den_final a
	inner join #his_minsa b on a.ndoc=b.num_doc
	where b.cod_item in ('59401.06','U1692') and try_convert(int,b.valor_lab)=1
	and b.id_cita in (select distinct id_cita from #his_minsa where cod_item in ('Z3491','Z3591') )
	and ( b.fecha_atencion between a.inicio_gestacion and a.fecha_parto )
	group by a.ndoc, a.fecha_parto, a.ubigeoreniec, a.semana_nac

	--4.2 Plan de atencion de parto (segunda entrevista)
	select a.ndoc, a.fecha_parto, a.ubigeoreniec, a.semana_nac, min(b.fecha_atencion) fecha_plan02, num_plan02=1 
	into #num_plan02
	from #cnv_den_final a
	inner join #his_minsa b on a.ndoc=b.num_doc
	where b.cod_item in ('59401.06','U1692') and try_convert(int,b.valor_lab)=2
	and b.id_cita in (select distinct id_cita from #his_minsa where cod_item='C0011')
	and ( b.fecha_atencion between a.inicio_gestacion and a.fecha_parto )
	group by a.ndoc, a.fecha_parto, a.ubigeoreniec, a.semana_nac

	--4.3 Plan de atencion de parto (Tercera entrevista)
	select a.ndoc, a.fecha_parto, a.ubigeoreniec, a.semana_nac, min(b.fecha_atencion) fecha_plan03, num_plan03=1 
	into #num_plan03
	from #cnv_den_final a
	inner join #his_minsa b on a.ndoc=b.num_doc
	where b.cod_item in ('59401.06','U1692') and try_convert(int,b.valor_lab)=3
	and b.id_cita in (select distinct id_cita from #his_minsa where cod_item='C0011')
	and ( b.fecha_atencion between a.inicio_gestacion and a.fecha_parto )
	group by a.ndoc, a.fecha_parto, a.ubigeoreniec, a.semana_nac

--%%%%%%%%%%%%%%%%
--	INDICADOR
--%%%%%%%%%%%%%%%%
select a.*
, iif( (b.dosajehb=1 and c.sifilis=1 and d.tvih=1 and e.bacteriuria=1) or f.perfilobst=1,1,0) num_exa				--Exmanes Auxiliares.	
, isnull(f.perfilobst,0) perfilobst, f.fecha_perfilobst																--Perfil Obstetrico.
, isnull(b.dosajehb,0) dosajehb, b.fecha_dosajehb																	--Dosaje HB.
, isnull(c.sifilis,0) sifilis, c.fecha_sifilis																		--Tamizaje Sifilis.
, isnull(d.tvih,0) vih, d.fecha_tvih																				--Tamizaje VIH.
, isnull(e.bacteriuria,0) batectiruia, e.fecha_bacteriuria															--Bacteriuria									
, iif(isnull(g.apn01_1trim,0)+isnull(h.apn01_2trim,0)+isnull(i.apn02_2trim,0)											
	+isnull(j.apn01_3trim,0)+isnull(k.apn02_3trim,0)+isnull(l.apn03_3trim,0)>=6,1,0) num_apn						--APN
, g.fecha_apn01_1trim, h.fecha_apn01_2trim, i.fecha_apn02_2trim														--Fechas APN I e II TRIM
, j.fecha_apn01_3trim, k.fecha_apn02_3trim, l.fecha_apn03_3trim														--Fechas APN III Trim
, iif(isnull(m.num_suple01,0)+isnull(n.num_suple02,0)+isnull(o.num_suple03,0)									
						 +isnull(p.num_suple04,0)+isnull(q.num_suple05,0)>=5,1,0) num_suple							--Suplementacion
, m.fecha_suple01, n.fecha_suple02, o.fecha_suple03, p.fecha_suple04, q.fecha_suple05								--Fechas de suplementacion
, iif(r.num_plan01=1 and s.num_plan02=1 and t.num_plan03=1,1,0) num_plan											--Plan de Parto
, isnull(r.num_plan01,0) num_plan01, r.fecha_plan01																	--Fecha de plan parto (01 entrevista)
, isnull(s.num_plan02,0) num_plan02, s.fecha_plan02																	--Fecha de plan parto (02 entrevista)
, isnull(t.num_plan03,0) num_plan03, t.fecha_plan03																	--Fecha de plan parto (03 entrevista)
into #padron_indicador
from #cnv_den_final a
left join #gest_dosajehb b		on a.ndoc=b.ndoc and a.fecha_parto=b.fecha_parto and a.semana_nac=b.semana_nac and a.ubigeoreniec=b.ubigeoreniec
left join #gest_sifilis c		on a.ndoc=c.ndoc and a.fecha_parto=c.fecha_parto and a.semana_nac=c.semana_nac and a.ubigeoreniec=c.ubigeoreniec
left join #gest_tvih d			on a.ndoc=d.ndoc and a.fecha_parto=d.fecha_parto and a.semana_nac=d.semana_nac and a.ubigeoreniec=d.ubigeoreniec
left join #gest_bacteriuria e	on a.ndoc=e.ndoc and a.fecha_parto=e.fecha_parto and a.semana_nac=e.semana_nac and a.ubigeoreniec=e.ubigeoreniec
left join #gest_perfilobst f	on a.ndoc=f.ndoc and a.fecha_parto=f.fecha_parto and a.semana_nac=f.semana_nac and a.ubigeoreniec=f.ubigeoreniec
left join #num_01_1trim g		on a.ndoc=g.ndoc and a.fecha_parto=g.fecha_parto and a.semana_nac=g.semana_nac and a.ubigeoreniec=g.ubigeoreniec
left join #num_01_2trim h		on a.ndoc=h.ndoc and a.fecha_parto=h.fecha_parto and a.semana_nac=h.semana_nac and a.ubigeoreniec=h.ubigeoreniec
left join #num_02_2trim i		on a.ndoc=i.ndoc and a.fecha_parto=i.fecha_parto and a.semana_nac=i.semana_nac and a.ubigeoreniec=i.ubigeoreniec
left join #num_01_3trim j		on a.ndoc=j.ndoc and a.fecha_parto=j.fecha_parto and a.semana_nac=j.semana_nac and a.ubigeoreniec=j.ubigeoreniec
left join #num_02_3trim k		on a.ndoc=k.ndoc and a.fecha_parto=k.fecha_parto and a.semana_nac=k.semana_nac and a.ubigeoreniec=k.ubigeoreniec
left join #num_03_3trim l		on a.ndoc=l.ndoc and a.fecha_parto=l.fecha_parto and a.semana_nac=l.semana_nac and a.ubigeoreniec=l.ubigeoreniec
left join #num_suple01 m		on a.ndoc=m.ndoc and a.fecha_parto=m.fecha_parto and a.semana_nac=m.semana_nac and a.ubigeoreniec=m.ubigeoreniec
left join #num_suple02 n		on a.ndoc=n.ndoc and a.fecha_parto=n.fecha_parto and a.semana_nac=n.semana_nac and a.ubigeoreniec=n.ubigeoreniec
left join #num_suple03 o		on a.ndoc=o.ndoc and a.fecha_parto=o.fecha_parto and a.semana_nac=o.semana_nac and a.ubigeoreniec=o.ubigeoreniec
left join #num_suple04 p		on a.ndoc=p.ndoc and a.fecha_parto=p.fecha_parto and a.semana_nac=p.semana_nac and a.ubigeoreniec=p.ubigeoreniec
left join #num_suple05 q		on a.ndoc=q.ndoc and a.fecha_parto=q.fecha_parto and a.semana_nac=q.semana_nac and a.ubigeoreniec=q.ubigeoreniec
left join #num_plan01 r			on a.ndoc=r.ndoc and a.fecha_parto=r.fecha_parto and a.semana_nac=r.semana_nac and a.ubigeoreniec=r.ubigeoreniec
left join #num_plan02 s			on a.ndoc=s.ndoc and a.fecha_parto=s.fecha_parto and a.semana_nac=s.semana_nac and a.ubigeoreniec=s.ubigeoreniec
left join #num_plan03 t			on a.ndoc=t.ndoc and a.fecha_parto=t.fecha_parto and a.semana_nac=t.semana_nac and a.ubigeoreniec=t.ubigeoreniec

insert into #tabla_reporte
select
	p.*,
	mes = month(fecha_parto),
	año = year(fecha_parto),
	den = 1,							--Denominador.
	num = iif(num_apn	= 1 and			--Numerador.
			  num_exa	= 1 and
			  num_plan	= 1 and
			  num_suple = 1	 ,	1,0)				
from #padron_indicador p

drop table #cnv_den
drop table #cnv_den_final
drop table #gest_bacteriuria
drop table #gest_dosajehb
drop table #gest_perfilobst
drop table #gest_sifilis
drop table #gest_tvih
drop table #num_01_1trim
drop table #num_01_2trim
drop table #num_01_3trim
drop table #num_02_2trim
drop table #num_02_3trim
drop table #num_03_3trim
drop table #num_plan01
drop table #num_plan02
drop table #num_plan03
drop table #num_suple01
drop table #num_suple02
drop table #num_suple03
drop table #num_suple04
drop table #num_suple05
drop table #padron_indicador

print(@mes_inicio)
print(@año)

set @mes_inicio=@mes_inicio+1
end

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

select
	Diris		 = B.diris	,
	Departamento =	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,
	Provincia	 = B.desc_prov,
	Distrito	 = B.desc_dist,
	B.Red		 ,
	b.Ubigeo	 ,
	a.*
into #Corrida_2024_CG06_PqteGestante
from #tabla_reporte a
inner join BD_HISINDICADORES.dbo.Maestro_UBIGEO_20200407 b on CONVERT(int,a.ubigeoreniec) = CONVERT(int,b.UBIGEORENIEC) 

select
	Diris		,
	Departamento,
	Provincia	,
	Distrito	,
	Red			,
	ubigeo		,
	mes			,
	año			,
	denominador = sum(den)		,
	numerador	= sum(num)		,
	num_exa		= sum(num_exa)	,
	num_apn		= sum(num_apn)	,
	num_suple	= sum(num_suple),
	num_plan	= sum(num_plan)
from #Corrida_2024_CG06_PqteGestante
group by	Diris		,
			Departamento,
			Provincia	,
			Distrito	,
			Red			,
			ubigeo		,
			mes			,
			año 

select * from #Corrida_2024_CG06_PqteGestante

drop table #tabla_reporte
drop table #base_cnv
drop table #DimFechaMin
drop table #elimina_duplicado
drop table #his_minsa
drop table #renaes
-- =D