/*==============================================================================
FICHA: Indicador N°10 - 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
	, id_tipo_doc
	, num_doc
	, edad_reg
	, id_tipitem tipo_dx
	, cod_item  
	, valor_lab
into #his_minsa
from BD_BACKUP_OGEI.dbo.MEF_TramaHisMinsa_202211_20221220 (nolock)
where sw=1															--Validacion de tipo y numero de documento
and cod_item in (
				'88141'								--PAP
				,'88141.01'							--IVAA
				,'87621'							--VPH
				)
and id_tipedad_reg='A' and ( convert(int,edad_reg) between 25 and 64 )  --Mujeres 25 a 64 años.
and id_genero='F'														--Genero Femenino


--***************************************************
--					SINTAXIS
--***************************************************
declare @mes_eval int,
		@año int 

set @mes_eval=11 --<=========== Mes de evaluación
set @año=2022 --<============= Año de evaluación 

--%%%%%%%%%%%%%%%%
-- DENOOMINADOR
--%%%%%%%%%%%%%%%%
--1. Mujeres de 25 a 64 años identicadas con documento de identidad afiliadas al SIS.
select convert(int,ID_EESS) renaes,
	  @año  año,
	  Total_Mujeres_25_64 den
into #dpcan_den
from BD_HISINDICADORES.dbo.TBL_DL1153_2023_09_SIS_DPCAN -- > (Considerar el nuevo SIS para el 2023 !)

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

--1.Mujeres de 25 a 64 años con los siguientes examenes.

	--1.1 Resultado Entregado de PAP.
	select distinct renaes, id_tipo_doc, num_doc, num_pap=1
	into #num_pap
	from #his_minsa
	where year(fecha_atencion)=@año
	and month(fecha_atencion)<=@mes_eval
	and (edad_reg between 25 and 64)
	and cod_item='88141'
	and valor_lab in ('N','A')
	and tipo_dx='D'

	--1.2 Resultado Entregado de IVAA			
	select distinct renaes, id_tipo_doc, num_doc, num_ivaa=1
	into #num_ivaa
	from #his_minsa
	where year(fecha_atencion)=@año
	and month(fecha_atencion)<=@mes_eval
	and (edad_reg between 30 and 49)
	and cod_item='88141.01'
	and valor_lab in ('N','A')
	and tipo_dx='D'

	--1.2 Resultado Entregado de VPH			
	select distinct renaes, id_tipo_doc, num_doc, num_vph=1
	into #num_vph
	from #his_minsa
	where year(fecha_atencion)=@año
	and month(fecha_atencion)<=@mes_eval
	and (edad_reg between 30 and 49)
	and cod_item='87621'
	and valor_lab in ('N','A')
	and tipo_dx='D'

	-- Union bases separadas (identificador unico por persona y renaes)
	select distinct renaes, id_tipo_doc, num_doc
	into #base_num
	from (
			select distinct renaes, id_tipo_doc, num_doc from #num_ivaa
			union all
			select distinct renaes, id_tipo_doc, num_doc from #num_pap
			union all
			select distinct renaes, id_tipo_doc, num_doc from #num_vph
	) as t

	--Numeradores Final.
	select renaes, count(*) num, sum(num_ivaa) num_ivaa, sum(num_pap) num_pap, sum(num_vph) num_vph
	into #dpcan_num
	from(
			select a.*
			, isnull(b.num_ivaa,0) num_ivaa
			, isnull(c.num_pap,0) num_pap
			, isnull(d.num_vph,0) num_vph
			from #base_num a
			left join #num_ivaa b on a.renaes=b.renaes and a.id_tipo_doc=b.id_tipo_doc and a.num_doc=b.num_doc
			left join #num_pap c on a.renaes=c.renaes and a.id_tipo_doc=c.id_tipo_doc and a.num_doc=c.num_doc
			left join #num_vph d on a.renaes=d.renaes and a.id_tipo_doc=d.id_tipo_doc and a.num_doc=d.num_doc
	) as t group by renaes

--%%%%%%%%%%%%%%%%
--	INDICADOR
--%%%%%%%%%%%%%%%%
select a.*
, isnull(b.num,0)  num
, isnull(b.num_ivaa,0) num_ivaa
, isnull(b.num_pap,0) num_pap
, isnull(b.num_vph,0) num_vph
into #tabla_reporte
from #dpcan_den a 
left join #dpcan_num b on a.renaes=b.renaes

drop table #base_num
drop table #dpcan_den
drop table #dpcan_num
drop table #num_ivaa
drop table #num_pap
drop table #num_vph

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

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
, B.desc_red Red
, b.desc_mred MicroRed
, b.cat_estab
, b.desc_estab eess_nombre
, converT(int,b.camas,0) camas
, a.*
into BD_HISINDICADORES.dbo.DL1153_2023_CG10_MujeresTamizajeCuelloUterino
from #tabla_reporte a
inner join BD_BACKUP_OGEI.dbo.Renaes_20221220 b on convert(int,a.renaes)=convert(int,b.COD_ESTAB)

select * from BD_HISINDICADORES.dbo.DL1153_2023_CG10_MujeresTamizajeCuelloUterino


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