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

--***************************************************
--				BASES DE DATOS.
--***************************************************
--Base Estadistica de la FICHA 500.2 (RENOXI)
select renaes
	   , fecha
	   , Total_camas_disponible
	   , Total_camas_ocupadas
	   , Total_camas_disponible+Total_camas_ocupadas total_camas
into #ficha5002_camas
from (
		select converT(int,CODIGO) renaes 
		,    FECHACORTE fecha		
		,    isnull(znc_HOSP_ADUL_CAM_DISPONIBLE,0) + 
			 isnull(znc_HOSP_NEONATAL_CAM_DISPONIBLE,0) + 
			 isnull(znc_HOSP_PEDIA_CAM_DISPONIBLE,0) 
			 Total_camas_disponible 
		 ,   isnull(znc_HOSP_ADUL_CAM_OCUPADO,0) + 
			 isnull(znc_HOSP_NEONATAL_CAM_OCUPADO,0) + 
			 isnull(znc_HOSP_PEDIA_CAM_OCUPADO,0) 
			 Total_camas_ocupadas
		, row_number() over (partition by codigo, fechacorte order by fecharegistro desc) id
		from BD_TRAMA_HISMINSA.dbo.tb_camas_f500_base
) as t 
where id=1 and try_convert(int,renaes) is not null
order by renaes, fecha asc


--***************************************************
--					SINTAXIS
--***************************************************
create table #tabla_reporte
(
	renaes int,
	año int,
	mes int,
	fecha date,
	den int,
	num int
)

declare @mes_inicio int,
		@mes_eval int,
		@año int, 
		@fecha_inicio date,
		@fecha_final date

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

set @fecha_inicio=try_convert(date,try_convert(varchar(4),@año)+'-'+right('00'+try_convert(varchar(2),@mes_inicio),2)+'-'+right('00'+try_convert(varchar(2),1),2))
set @fecha_final=eomonth(try_convert(date,try_convert(varchar(4),@año)+'-'+right('00'+try_convert(varchar(2),@mes_eval),2)+'-'+right('00'+try_convert(varchar(2),1),2)))

while @fecha_inicio<=@fecha_final
begin 

		--%%%%%%%%%%%%%%%%
		--  DENOMINADOR
		--%%%%%%%%%%%%%%%%
		-- Número de días-cama-disponible se obtiene de la sumatoria de todas las camas existentes para hospitalización por cada día del mes
		select renaes
			  , @fecha_inicio fecha
			  , total_camas den
		into #ficha5002_den
		from #ficha5002_camas
		where fecha= @fecha_inicio


		--%%%%%%%%%%%%%%%%
		--  NUMERADOR
		--%%%%%%%%%%%%%%%%
		-- Número total de pacientes-día del mes se obtiene de la sumatoria de todos los pacientes-día censados día a día durante el mes
		select renaes
			  , @fecha_inicio fecha
			  , Total_camas_ocupadas num
		into #ficha5002_num
		from #ficha5002_camas
		where fecha= @fecha_inicio


	--%%%%%%%%%%%%%%%%
	--	INDICADOR
	--%%%%%%%%%%%%%%%%
	insert into #tabla_reporte
	select a.renaes
		, year(a.fecha) año
		, month(a.fecha) mes
		, a.fecha
		, a.den
		, isnull(b.num,0) num
	from #ficha5002_den a
	left join #ficha5002_num b on a.renaes=b.renaes and a.fecha=b.fecha


drop table #ficha5002_den
drop table #ficha5002_num

set @fecha_inicio=dateadd(dd,1,@fecha_inicio)
end 

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

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
, a.*
into  BD_HISINDICADORES.dbo.DL1153_2023_CG22_OcupacionCama
from #tabla_reporte a
inner join BD_BACKUP_OGEI.dbo.Renaes_20221220 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 and den>0

select * 
from BD_HISINDICADORES.dbo.DL1153_2023_CG22_OcupacionCama
order by renaes, fecha asc



drop table #ficha5002_camas
drop table #tabla_reporte
-- =D
