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



 --***************************************************
--					SINTAXIS
--***************************************************

create table #tabla_reporte
(
anio int
, mes int
, renaes int
, den int
, num int
, tele_consultan int
,tele_consultor int
) 



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

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



--***************************************************
--				BASES DE DATOS.
--***************************************************
--HIS MINSA 
select id_cita
	, Numero_Documento num_doc
	, convert(date,FECHA_ATENCION) fecha_atencion
	, convert(int,Codigo_Unico) renaes
	, ID_CONDICION_ESTABLECIMIENTO id_tipcond_estab
	, TIPO_DIAGNOSTICO tipo_dx
	, CODIGO_ITEM cod_item  
	, valor_lab
into #his_minsa
from his_nominal with (nolock)
where  Id_Tipo_Documento in (1) AND ANIO= @año  -- id_tipo_doc=1 -- and sw=1

 while @mes_inicio<=@mes_eval
  begin

 DELETE FROM TB_F18 WHERE ANIO = @año 
--%%%%%%%%%%%%%%%%
--  DENOMINADOR
--%%%%%%%%%%%%%%%%

--1. N° de Atentidos (Personas Nuevas o Reingresantes) en Establecimientos de Salud.

select distinct year(fecha_atencion) año
				, MONTH(fecha_atencion) mes
				, renaes
				, num_doc 
into #his_minsa_den
from #his_minsa (nolock)
where id_tipcond_estab in ('N','R')
and year(fecha_atencion)=@año
 and month(fecha_atencion)<=@mes_eval

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

--1. N° de atendidos con interconsultas realizads (consultor / consultante) registrados en el HIS MINSA.

	--1. Teleinterconsulta - Consultante.
	drop table if exists #his_minsa_consultante
	select distinct a.renaes
					, a.num_doc
					, teleinterconsulta_consultante=1
	into #his_minsa_consultante
	from #his_minsa a
	inner join #his_minsa_den b on a.num_doc=b.num_doc and a.renaes=b.renaes
	where cod_item in ('99499.11','99499.12') and try_convert(int,valor_lab)=1 -- Teleinterconsulta - Consultante.
	and year(fecha_atencion)=@año
	and month(fecha_atencion)<=@mes_eval

	--2. Teleinterconsulta - Consultor.
	drop table if exists #his_minsa_consultor
	select distinct	a.renaes
					, a.num_doc
					, teleinterconsulta_consultor=1
	into #his_minsa_consultor
	from #his_minsa a
	inner join #his_minsa_den b on a.num_doc=b.num_doc and a.renaes=b.renaes
	where cod_item in ('99499.11','99499.12') and try_convert(int,valor_lab)=2 -- Teleinterconsulta - Consultor.
	and year(fecha_atencion)=@año
	and month(fecha_atencion)<=@mes_eval

	--3. Teleinterconsulta.
	drop table if exists #his_minsa_teleinterconsulta
	select distinct a.renaes
					, a.num_doc
					, teleinterconsulta=1
	into #his_minsa_teleinterconsulta
	from #his_minsa a
	inner join #his_minsa_den b on a.num_doc=b.num_doc and a.renaes=b.renaes
	where cod_item in ('99499.11','99499.12') and try_convert(int,valor_lab) in (1,2)  -- Teleinterconsulta
	and year(fecha_atencion)= @año
	and month(fecha_atencion)<=@mes_eval




--%%%%%%%%%%%%%%%%
--	INDICADOR
--%%%%%%%%%%%%%%%%
insert into #tabla_reporte
select año,mes , renaes
	   , sum(den) den
	   , sum(teleinterconsulta) num
	   , sum(teleinterconsulta_consultante) teleinterconsulta_consultante
	   , sum(teleinterconsulta_consultor) teleinterconsulta_consultor
-- into #tabla_reporte
from(
		select a.año
				, a.mes
				, a.renaes
			   , a.num_doc
			   , den=1
			   , isnull(d.teleinterconsulta,0)				teleinterconsulta
			   , isnull(b.teleinterconsulta_consultante,0)  teleinterconsulta_consultante
			   , isnull(c.teleinterconsulta_consultor,0)    teleinterconsulta_consultor
		from #his_minsa_den a
		left join #his_minsa_consultante b on a.renaes=b.renaes and a.num_doc=b.num_doc
		left join #his_minsa_consultor c on a.renaes=c.renaes and a.num_doc=c.num_doc
		left join #his_minsa_teleinterconsulta d on a.renaes=d.renaes and a.num_doc=d.num_doc
) as t
group by año,mes, renaes


set @mes_inicio = @mes_inicio + 1


end

 INSERT INTO TB_F18
SELECT e.Provincia,e.Distrito,e.Disa,e.Codigo_Red,e.Red,e.Codigo_MicroRed,e.MicroRed,e.Nombre_Establecimiento,e.Categoria,t.*
--INTO TB_F18 
FROM #tabla_reporte t 
LEFT join ESTABLECIMIENTOS e on convert(int, t.renaes)=e.Codigo_Unico
--inner join maestro_ubigeo u on t.ubigeo=u.UBIGEO
where (e.Provincia IN('MOYOBAMBA') or (e.Ubigueo_Establecimiento IN('220502') and convert(int,t.renaes) in('6348','7297','10516')))
ORDER BY t.anio,t.mes asc




--===================
-- REPORTE
--===================





SELECT distinct  t.* FROM TB_F18 t ORDER BY t.ANIO,t.MES ASC


