GASTOS DE ATENCION POR MEDICAMENTOS DE ALTO COSTO, PRIMER MES DE 2023 EN EL IMSS HGR 220

Los costos en salud por medicamentos de alto costo pueden variar significativamente dependiendo del medicamento específico, el país, el sistema de salud y otros factores. Estos medicamentos suelen ser aquellos destinados al tratamiento de enfermedades graves, crónicas o raras, y a menudo implican un alto costo debido a la investigación, el desarrollo y la producción involucrados.

Es importante tener en cuenta que los costos de estos medicamentos pueden ser muy elevados y pueden generar desafíos en términos de acceso y sostenibilidad para los sistemas de salud y los pacientes. Algunos países han implementado estrategias para abordar los costos de los medicamentos de alto costo, como negociaciones de precios, programas de reembolso, fondos especiales y acuerdos de acceso temprano.

Además, existen organizaciones internacionales y nacionales que trabajan en la evaluación de la efectividad y el valor de los medicamentos, así como en la promoción de precios y políticas justas. Estas organizaciones desempeñan un papel importante en la búsqueda de un equilibrio entre la innovación farmacéutica y la accesibilidad a los medicamentos necesarios.

Utilizando este tipo de herramienta de análisis de datos (R) podremos evaluar mes con mes los gastos por servicio de atención hospitalaria, predecir tendencias y diseñar estrategias para prevenir el desvío de los gastos no justificados por servicio o área hospitalaria, una vez aplicada la estrategia, podremos con este mismo sistema de análisis de datos, comparar las variaciones anuales y corroborar que las estrategias para contener los gastos por medicamentos de alto costo, funcionaron con respecto a los gastos generados meses e incluso años previos.

##

Para mas detalles de los medicamentos en el IMSS ver el siguiente enlace: # https://imss.gob.mx/prensa/archivo/201608/138.

##Portal de compras del IMSS ## http://compras.imss.gob.mx/?P=imsscompro.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:


#GASTOS DE ATENCION POR MEDICAMENTOS DE ALTO COSTO, PRIMER MES DE 2023 EN EL IMSS HGR 220##

## llamar el archivo ##


# Load required packages:
library(readxl)
library(ggplot2)

#---- GETTING THE DATA FROM A LOCAL DATABASE ----

# Cargaremos un archivo de la base de datos del comite de farmacia de enero de 2023 #
# Claves de medicamentos y costos INFORME_COLECTIVAS _ENERO  _2023.xlsx (Archivo base de datos comite de farmacia IMSS HGR 220)
COLECTIVAS_ENERO_2023<- read_excel("INFORME_COLECTIVAS _ENERO  _2023.xlsx", range = "A1:U9968",
                         col_types = c("text","numeric", "text", "numeric", "text", "text", "numeric","numeric","numeric","numeric","numeric","text","numeric","numeric","numeric","numeric","numeric","text","text","numeric","text"))


##Aquí hacemos un analisis del dataset de enero de costos por medicamentos del mes de enero de 2023##


#---- EXPLORING AND TIDYING THE DATA ----

# Analyse the structure with class and str command, fix the data types if needed:
class(COLECTIVAS_ENERO_2023)
str(COLECTIVAS_ENERO_2023)
names(COLECTIVAS_ENERO_2023) <- c("NO.DOCUMENTO", "SERVICIO", "FECHA", "USUARIO", "ESPECIALIDAD", "AREA", "GPO","GEN","ESP","DIF","VAR","DESCRIPCION","SOLICITADA","SURTIDA","NEGADA","PRE_UNIT","IMPORTE","TIPO MEDICAMENTO","ESTATUS CLAVE","MEDICAMENTO ALTO COSTO","COSTO MEDICAMENTO")
COLECTIVAS_ENERO_2023$SERVICIO <- as.integer(COLECTIVAS_ENERO_2023$SERVICIO)
COLECTIVAS_ENERO_2023$ESPECIALLIDAD <- as.factor(COLECTIVAS_ENERO_2023$ESPECIALIDAD)


View(COLECTIVAS_ENERO_2023)

## vamos a escudriñar el archivo ##

attach(COLECTIVAS_ENERO_2023)
names(COLECTIVAS_ENERO_2023)
COLECTIVAS_ENERO_2023$`AREA`
ESPECIALIDAD[1:200]

str(COLECTIVAS_ENERO_2023)

ncol(COLECTIVAS_ENERO_2023)
nrow(COLECTIVAS_ENERO_2023)
colnames(COLECTIVAS_ENERO_2023)
head(COLECTIVAS_ENERO_2023)
tail(COLECTIVAS_ENERO_2023)
dim(COLECTIVAS_ENERO_2023)
levels(COLECTIVAS_ENERO_2023$SURTIDA)
length(COLECTIVAS_ENERO_2023)
table(COLECTIVAS_ENERO_2023)

### Crear un nuevo dataset con las nuevas columnas procesadas ####

COLECTIVAS_NEW_2023 <- data.frame(USUARIO = COLECTIVAS_ENERO_2023$USUARIO,
                         AREA = COLECTIVAS_ENERO_2023$AREA,
                         DESCRIPCION = COLECTIVAS_ENERO_2023$DESCRIPCION,
                         SOLICITADA = COLECTIVAS_ENERO_2023$SOLICITADA,
                         SURTIDA = COLECTIVAS_ENERO_2023$SURTIDA,
                         PRE_UNIT=COLECTIVAS_ENERO_2023$PRE_UNIT,
                         IMPORTE = COLECTIVAS_ENERO_2023$IMPORTE,
                         `COSTO MEDICAMENTO`=COLECTIVAS_ENERO_2023$`COSTO MEDICAMENTO`)
#### Sí se pudo!!!! ####

##Vista del nuevo dataset COLECTIVAS_NEW_2023##
View(COLECTIVAS_NEW_2023)

# Verificar el nuevo conjunto de datos
head(COLECTIVAS_NEW_2023)

#### Estadística descriptiva ####

## Número de medicamentos por AREA ##
table(COLECTIVAS_NEW_2023$AREA)


##extraer solo medicamentos de alto costo haciendo un subset en la columna de COSTO.MEDICAMENTO ##

ALTOCOSTO <- subset(COLECTIVAS_NEW_2023, COSTO.MEDICAMENTO == "ALTO COSTO")

ALTOCOSTO
nrow(ALTOCOSTO)
View(ALTOCOSTO)


### Resumen estadístico simple de dataframe ALTOCOSTO, media, mediana, etc ###
mean(ALTOCOSTO$IMPORTE)
median(ALTOCOSTO$IMPORTE)
range(ALTOCOSTO$IMPORTE)
sd(ALTOCOSTO$IMPORTE)

##Resumen estadístico de COLECTIVAS_NEW_2023##
mean(COLECTIVAS_NEW_2023$IMPORTE)
median(COLECTIVAS_NEW_2023$IMPORTE)
range(COLECTIVAS_NEW_2023$IMPORTE)
sd(COLECTIVAS_NEW_2023$IMPORTE)

### Hasta aquí logramos reducir el dataframe a solo 8 columnas de nuestro interes ###

### método resumido para obtener datos estadísticos ###
summary(ALTOCOSTO$IMPORTE)

### Guardar los nombres de las AREAS de ALTOCOSTO ###
AREAS <-ALTOCOSTO$AREA
DESCRIPCION <-ALTOCOSTO$DESCRIPCION


AREAS <-COLECTIVAS_NEW_2023$AREA

### la primer AREA y las primeras 300 del ranking ####
AREAS [1]
AREAS [1:300]


### la primer DESCRIPCION y las primeras 100 del ranking ####
DESCRIPCION[1]
DESCRIPCION[1:100]

## las primeras 100 AREAS y la solicitud de medicamentos ORDINARIOS o de ALTO COSTO son ##

ALTOCOSTO[1:100, c("DESCRIPCION","COSTO.MEDICAMENTO")]
ALTOCOSTO[1:100, c("DESCRIPCION","IMPORTE")]

COLECTIVAS_NEW_2023[1:100, c("AREA","COSTO.MEDICAMENTO")]
ALTOCOSTO[1:100, c("AREA","COSTO.MEDICAMENTO")]


### Ordenar ###
## ordenar por AREA, manteniendo solo, DESCRIPCION, SURTIDA, IMPORTE y COSTO.MEDICAMENTO ##

orderByAREA <-ALTOCOSTO[order(ALTOCOSTO$AREA), c("AREA","DESCRIPCION","SURTIDA","IMPORTE","COSTO.MEDICAMENTO")]


# Seleccionar las primeras 300 filas del conjunto de datos orderByAREA

first300byAREA <- orderByAREA[1:300, ]

#Seleccionar unas 1000 filas por la cantidad grande de medicamentos #
first1000byAREA <- orderByAREA[1:1000, ]

# Asignar la columna como factor
first1000byAREA$AREA <- factor(first1000byAREA$AREA,
                             levels = unique(first1000byAREA$AREA))

# Eliminar duplicados en la columna AREA
# Identificar y eliminar duplicados en la columna AREA
duplicados <- duplicated(first1000byAREA$AREA)
first1000byAREA$AREA <- first1000byAREA$AREA[!duplicados]



### graficarlo con ggplot 2,con histograma vertical en color azul, primeras 300 áreas por medicamentos de alto costo###
ggplot(first300byAREA, aes(x=AREA, y=IMPORTE))+
  geom_bar(stat="identity",width=.5,fill="darkblue")+
  labs(title = "Primeras 300 AREAS por IMPORTE MEDICAMENTO DE ALTO COSTO")+
  labs(subtitle = "Chart by David Ferreira Benítez, MCAA")
coord_flip()

# Como el dataframe es muy grande, necesitamos incluir mas datos y graficarlos en formato horizontal para ser mas legible #
### otra grafica con datos mas amplios con costos por serviciosen formato horizontal, color naranja ###
ggplot(first1000byAREA, aes(x=AREA, y=IMPORTE))+
  geom_bar(stat="identity",width=.5,fill="orange")+
  labs(title = "Primeras 1000 AREAS por AREA E IMPORTE MEDICAMENTO DE ALTO COSTO")+
  labs(subtitle = "Chart by David Ferreira Benítez, MCAA")+
  coord_flip()

## seleccionar AREAS con IMPORTE de más de 25000 PESOS##
IMPORTE<-ALTOCOSTO[ALTOCOSTO$IMPORTE>25000, c("AREA","IMPORTE")]
orderIMPORTE <-IMPORTE[order(-IMPORTE$IMPORTE), ]
head(orderIMPORTE,500)
View(IMPORTE)

warnings(IMPORTE)

### Aquí se termina el análisis de gastos en medicamentos de alto costo, por especialidad o areas hospitalarias en el primer mes del año 2023 en el HGR 220 del IMSS en Toluca Estado de Mexico ###

## GRACIAS ##