#Modelación de operaciones de la clínica familiar #178 del IMSS en Zapopan, Jalisco #El objetivo es proponer más recursos dadas las largas filas de pacientes en la clínica #¿Se necesitan más enfermeras? ¿Se requiere otro consultorio?
#install.packages("simmer",dependencies=T) #Autores de esta función:BartSmeets e Iñaki Ucar
library(simmer)
library(simmer.plot)
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.0.5
##
## Attaching package: 'simmer.plot'
## The following objects are masked from 'package:simmer':
##
## get_mon_arrivals, get_mon_attributes, get_mon_resources
proceso<-simmer("Clinica familiar IMSS 178")
proceso
## simmer environment: Clinica familiar IMSS 178 | now: 0 | next:
## { Monitor: in memory }
paciente<-trajectory("patients'path")%>%
seize("enfermera",1)%>%
timeout(function()rnorm(1,15))%>%
release("enfermera",1)%>%
seize("doctor",1)%>%
timeout(function()rnorm(1,20))%>%
release("doctor",1)%>%
seize("farmacia",1)%>%
timeout(function()rnorm(1,5))%>%
release("farmacia",1)
proceso %>%
add_resource("enfermera",2)%>%
add_resource("doctor",3)%>%
add_resource("farmacia",2)%>%
add_generator("paciente",paciente, function() rnorm(1,5,0.5))
## simmer environment: Clinica familiar IMSS 178 | now: 0 | next: 0
## { Monitor: in memory }
## { Resource: enfermera | monitored: TRUE | server status: 0(2) | queue status: 0(Inf) }
## { Resource: doctor | monitored: TRUE | server status: 0(3) | queue status: 0(Inf) }
## { Resource: farmacia | monitored: TRUE | server status: 0(2) | queue status: 0(Inf) }
## { Source: paciente | monitored: 1 | n_generated: 0 }
proceso %>% run(until = 660) #Tiempo de servicio en el IMSS 178 de 8AM a 7PM
## simmer environment: Clinica familiar IMSS 178 | now: 660 | next: 661.432558327041
## { Monitor: in memory }
## { Resource: enfermera | monitored: TRUE | server status: 2(2) | queue status: 43(Inf) }
## { Resource: doctor | monitored: TRUE | server status: 3(3) | queue status: 0(Inf) }
## { Resource: farmacia | monitored: TRUE | server status: 1(2) | queue status: 0(Inf) }
## { Source: paciente | monitored: 1 | n_generated: 132 }
#La llegada total de pacientes es de 100
#Si no corre la simulación, tenemos que verificar que este habilitada la función simmer en Packages.
plot(proceso,what="resources",metric="usage",c("enfermera","doctor","farmacia"),items=c("server","queue"))
## Warning: 'plot.simmer' is deprecated.
## Use 'plot(get_mon_resources(x))' instead.
## See help("Deprecated")
plot(proceso,what="arrivals",metric="waiting_time")
## Warning: 'plot.simmer' is deprecated.
## Use 'plot(get_mon_arrivals(x))' instead.
## See help("Deprecated")
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
#CONCLUSIÓN: #Con el análisis realizado se concluye que se requiere una enfermera más y un doctor adicional.