library(writexl)
#2.1 Construya una base de datos de veinte (20) historias clínicas con los siguientes campos:
#2.1.1. Identidad de Pacientes: (Número de Cédula, Nombres del paciente, Apellidos del paciente, Edad, Sexo, Domicilio, Ciudad, Departamento, Número de teléfono, Número de historial clínico, Fumante(S/N))
#2.1.2. Proceso de Ingreso a la entidad: (Procedencia, Fecha de ingreso, Número de piso, Número de cama, Causa de Ingreso)
# Crear una base de datos de historias clínicas
historias_clinicas <- data.frame(
  Numero_de_Cedula = integer(20),
  Nombres_del_paciente = character(20),
  Apellidos_del_paciente = character(20),
  Edad = integer(20),
  Sexo = character(20),
  Domicilio = character(20),
  Ciudad = character(20),
  Departamento = character(20),
  Numero_de_telefono = character(20),
  Numero_de_historial_clinico = integer(20),
  Fumante = character(20)
)

# Llenar la base de datos con datos ficticios
historias_clinicas$Numero_de_Cedula <- sample(1000000:9999999, 20)
historias_clinicas$Nombres_del_paciente <- c("Juan", "Maria", "Luis", "Ana", "Carlos", "Sofia", "Pedro", "Laura", "Raul", "Elena", "Diego", "Isabel", "Javier", "Carmen", "Fernando", "Marta", "Gabriel", "Silvia", "Hector", "Patricia")
historias_clinicas$Apellidos_del_paciente <- c("Gomez", "Lopez", "Martinez", "Rodriguez", "Perez", "Fernandez", "Sanchez", "Gonzalez", "Ramirez", "Diaz", "Torres", "Ruiz", "Ortega", "Vargas", "Castro", "Jimenez", "Molina", "Hernandez", "Rios", "Garcia")
historias_clinicas$Edad <- sample(18:80, 20)
historias_clinicas$Sexo <- sample(c("M", "F"), 20, replace = TRUE)
historias_clinicas$Domicilio <- c("Calle 123", "Avenida 456", "Carrera 789", "Calle 1011", "Avenida 1213", "Carrera 1415", "Calle 1617", "Avenida 1819", "Carrera 2021", "Calle 2223", "Avenida 2425", "Carrera 2627", "Calle 2829", "Avenida 3031", "Carrera 3233", "Calle 3435", "Avenida 3637", "Carrera 3839", "Calle 4041", "Avenida 4243")
historias_clinicas$Ciudad <- c("Bogota", "Medellin", "Cali", "Barranquilla", "Cartagena", "Bucaramanga", "Pereira", "Cucuta", "Villavicencio", "Santa Marta", "Ibague", "Pasto", "Manizales", "Neiva", "Valledupar", "Armenia", "Popayan", "Sincelejo", "Monteria", "Tunja")
historias_clinicas$Departamento <- c("Cundinamarca", "Antioquia", "Valle del Cauca", "Atlantico", "Bolivar", "Santander", "Risaralda", "Norte de Santander", "Meta", "Magdalena", "Tolima", "Narino", "Caldas", "Huila", "Cesar", "Quindio", "Cauca", "Sucre", "Cordoba", "Boyaca")
historias_clinicas$Numero_de_telefono <- sample(3000000:3999999, 20)
historias_clinicas$Numero_de_historial_clinico <- sample(1000:1999, 20)
historias_clinicas$Fumante <- sample(c("S", "N"), 20, replace = TRUE)
Numero_de_historial_clinico = c(1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020)
fecha_ingreso <- as.Date(c("2023-01-01", "2023-02-15", "2023-03-10", "2023-04-20", "2023-05-05", "2023-06-08", "2023-07-12", "2023-08-24", "2023-09-30", "2023-10-15", "2023-11-05", "2023-12-20", "2024-01-02", "2024-02-18", "2024-03-11", "2024-04-22", "2024-05-08", "2024-06-10", "2024-07-22", "2024-08-30"))
num_piso <- sample(1:10, 20, replace = TRUE)
num_cama <- sample(1:50, 20, replace = TRUE)
causa_ingreso = c("Fiebre", "Fractura de brazo", "Dolor abdominal", "Neumonía", "Infarto de miocardio", "Gripe", "Dolor de cabeza", "Cirugía programada", "Dolor lumbar", "Gastroenteritis", "Accidente automovilístico", "Infección respiratoria", "Dolor de espalda", "Intoxicación alimentaria", "Problemas de visión", "Apendicitis", "Dolor de garganta", "Problemas cardíacos", "Problemas respiratorios", "Gripe")
procedencia = c("Emergencia", "Referido", "Emergencia", "Consulta Externa", "Emergencia", "Referido", "Emergencia", "Referido", "Emergencia", "Consulta Externa", "Emergencia", "Consulta Externa", "Referido", "Emergencia", "Consulta Externa", "Emergencia", "Referido", "Emergencia", "Referido", "Emergencia")
historias_clinicas$Procedencia <- procedencia
historias_clinicas$Fecha_Ingreso <- fecha_ingreso
historias_clinicas$Num_Piso <- num_piso
historias_clinicas$Num_Cama <- num_cama
historias_clinicas$Causa_Ingreso <- causa_ingreso
# Mostrar la base de datos
print(historias_clinicas)
##    Numero_de_Cedula Nombres_del_paciente Apellidos_del_paciente Edad Sexo
## 1           9987485                 Juan                  Gomez   43    F
## 2           5051355                Maria                  Lopez   19    M
## 3           8039469                 Luis               Martinez   34    M
## 4           5523250                  Ana              Rodriguez   79    M
## 5           1051053               Carlos                  Perez   23    F
## 6           3532232                Sofia              Fernandez   61    F
## 7           4281311                Pedro                Sanchez   60    M
## 8           5246210                Laura               Gonzalez   71    F
## 9           1176800                 Raul                Ramirez   38    M
## 10          6431159                Elena                   Diaz   27    M
## 11          1446171                Diego                 Torres   47    F
## 12          4627956               Isabel                   Ruiz   24    F
## 13          5585664               Javier                 Ortega   66    M
## 14          5654548               Carmen                 Vargas   50    F
## 15          8041378             Fernando                 Castro   46    F
## 16          4296751                Marta                Jimenez   78    M
## 17          3173781              Gabriel                 Molina   31    F
## 18          1995189               Silvia              Hernandez   42    F
## 19          1162111               Hector                   Rios   48    M
## 20          4225269             Patricia                 Garcia   77    M
##       Domicilio        Ciudad       Departamento Numero_de_telefono
## 1     Calle 123        Bogota       Cundinamarca            3314763
## 2   Avenida 456      Medellin          Antioquia            3452437
## 3   Carrera 789          Cali    Valle del Cauca            3797621
## 4    Calle 1011  Barranquilla          Atlantico            3831523
## 5  Avenida 1213     Cartagena            Bolivar            3078246
## 6  Carrera 1415   Bucaramanga          Santander            3941412
## 7    Calle 1617       Pereira          Risaralda            3393938
## 8  Avenida 1819        Cucuta Norte de Santander            3974933
## 9  Carrera 2021 Villavicencio               Meta            3907651
## 10   Calle 2223   Santa Marta          Magdalena            3934339
## 11 Avenida 2425        Ibague             Tolima            3478524
## 12 Carrera 2627         Pasto             Narino            3928530
## 13   Calle 2829     Manizales             Caldas            3333674
## 14 Avenida 3031         Neiva              Huila            3478745
## 15 Carrera 3233    Valledupar              Cesar            3431271
## 16   Calle 3435       Armenia            Quindio            3202412
## 17 Avenida 3637       Popayan              Cauca            3075509
## 18 Carrera 3839     Sincelejo              Sucre            3909379
## 19   Calle 4041      Monteria            Cordoba            3203310
## 20 Avenida 4243         Tunja             Boyaca            3595189
##    Numero_de_historial_clinico Fumante      Procedencia Fecha_Ingreso Num_Piso
## 1                         1635       S       Emergencia    2023-01-01        9
## 2                         1396       S         Referido    2023-02-15        7
## 3                         1312       N       Emergencia    2023-03-10        5
## 4                         1648       N Consulta Externa    2023-04-20        6
## 5                         1086       S       Emergencia    2023-05-05        8
## 6                         1313       S         Referido    2023-06-08       10
## 7                         1376       N       Emergencia    2023-07-12        4
## 8                         1548       N         Referido    2023-08-24        2
## 9                         1453       S       Emergencia    2023-09-30        4
## 10                        1204       N Consulta Externa    2023-10-15        4
## 11                        1703       S       Emergencia    2023-11-05        5
## 12                        1839       S Consulta Externa    2023-12-20        2
## 13                        1044       S         Referido    2024-01-02        8
## 14                        1721       S       Emergencia    2024-02-18        4
## 15                        1694       N Consulta Externa    2024-03-11        7
## 16                        1099       N       Emergencia    2024-04-22        2
## 17                        1084       N         Referido    2024-05-08       10
## 18                        1525       N       Emergencia    2024-06-10        3
## 19                        1307       S         Referido    2024-07-22        2
## 20                        1813       S       Emergencia    2024-08-30        8
##    Num_Cama             Causa_Ingreso
## 1        28                    Fiebre
## 2         2         Fractura de brazo
## 3        38           Dolor abdominal
## 4        15                  Neumonía
## 5        12      Infarto de miocardio
## 6        35                     Gripe
## 7        42           Dolor de cabeza
## 8        44        Cirugía programada
## 9        42              Dolor lumbar
## 10       33           Gastroenteritis
## 11       27 Accidente automovilístico
## 12       15    Infección respiratoria
## 13       32          Dolor de espalda
## 14       15  Intoxicación alimentaria
## 15       48       Problemas de visión
## 16       18               Apendicitis
## 17        2         Dolor de garganta
## 18       10       Problemas cardíacos
## 19       15   Problemas respiratorios
## 20       35                     Gripe
#2.2. Por medio de informe gráfico clasifique por:
#a) Pacientes mujeres y Hombres
barplot(table(historias_clinicas$Sexo), 
        main = "Distribución de Pacientes por Género",
        xlab = "Género",
        ylab = "Cantidad de Pacientes",
        col = c("royalblue3", "orchid3"))

#b) edad y si es fumante o no
par(mfrow = c(1, 2))
hist(historias_clinicas$Edad[ historias_clinicas$Fumante == "N" ], 
     main = "Edad de No Fumantes",
     xlab = "Edad",
     ylab = "Cantidad de Pacientes",
     col = "darkslategray2")
hist(historias_clinicas$Edad[ historias_clinicas$Fumante == "S" ], 
     main = "Edad de Fumantes",
     xlab = "Edad",
     ylab = "Cantidad de Pacientes",
     col = "lightsalmon")

#c) Pacientes por piso divididos por sexo
barplot(table(historias_clinicas$Num_Piso, historias_clinicas$Sexo), 
        main = "Distribución de Pacientes por Piso y Género",
        xlab = "Piso",
        ylab = "Cantidad de Pacientes",
        col = c("lightblue4", "magenta4"),
        legend = c("M", "F"))

# Encontrar el rango mínimo y máximo de edades en los datos
min_edad <- min(historias_clinicas$Edad)
max_edad <- max(historias_clinicas$Edad)

# Establecer el número de intervalos deseado (ajusta según sea necesario)
num_intervalos <- 10

# Calcular la amplitud del intervalo
amplitud <- ceiling((max_edad - min_edad) / num_intervalos)

# Crear un rango de intervalos basado en la amplitud
intervalos <- seq(min_edad, max_edad + amplitud, by = amplitud)

#d) Edad y causa de ingreso
par(mfrow = c(1, 1))
hist(historias_clinicas$Edad, 
     breaks = intervalos,
     main = "Distribución de Edad de Pacientes por Causa de Ingreso",
     xlab = "Edad",
     ylab = "Cantidad de Pacientes",
     col = "tomato3")

# Agregar una leyenda
legend("topright", unique(historias_clinicas$Causa_Ingreso), fill = "tomato3")

#e) Promedio de edad (M,H)
promedio_edad <- tapply(historias_clinicas$Edad, historias_clinicas$Sexo, mean)
barplot(promedio_edad, main = "Promedio de Edad por Género",
        xlab = "Género", ylab = "Promedio de Edad",
        col = c("turquoise3", "violetred3"), names.arg = c("M", "F"))

#f) Datos independientes de 3 pacientes
tres_pacientes <- head(historias_clinicas, 3)
print(tres_pacientes)
##   Numero_de_Cedula Nombres_del_paciente Apellidos_del_paciente Edad Sexo
## 1          9987485                 Juan                  Gomez   43    F
## 2          5051355                Maria                  Lopez   19    M
## 3          8039469                 Luis               Martinez   34    M
##     Domicilio   Ciudad    Departamento Numero_de_telefono
## 1   Calle 123   Bogota    Cundinamarca            3314763
## 2 Avenida 456 Medellin       Antioquia            3452437
## 3 Carrera 789     Cali Valle del Cauca            3797621
##   Numero_de_historial_clinico Fumante Procedencia Fecha_Ingreso Num_Piso
## 1                        1635       S  Emergencia    2023-01-01        9
## 2                        1396       S    Referido    2023-02-15        7
## 3                        1312       N  Emergencia    2023-03-10        5
##   Num_Cama     Causa_Ingreso
## 1       28            Fiebre
## 2        2 Fractura de brazo
## 3       38   Dolor abdominal
#g) Datos de 3 pacientes por identidad
pacientes_por_identidad <- historias_clinicas[c(1, 5, 9), ]
print(pacientes_por_identidad)
##   Numero_de_Cedula Nombres_del_paciente Apellidos_del_paciente Edad Sexo
## 1          9987485                 Juan                  Gomez   43    F
## 5          1051053               Carlos                  Perez   23    F
## 9          1176800                 Raul                Ramirez   38    M
##      Domicilio        Ciudad Departamento Numero_de_telefono
## 1    Calle 123        Bogota Cundinamarca            3314763
## 5 Avenida 1213     Cartagena      Bolivar            3078246
## 9 Carrera 2021 Villavicencio         Meta            3907651
##   Numero_de_historial_clinico Fumante Procedencia Fecha_Ingreso Num_Piso
## 1                        1635       S  Emergencia    2023-01-01        9
## 5                        1086       S  Emergencia    2023-05-05        8
## 9                        1453       S  Emergencia    2023-09-30        4
##   Num_Cama        Causa_Ingreso
## 1       28               Fiebre
## 5       12 Infarto de miocardio
## 9       42         Dolor lumbar
#h) Lista de causas de ingreso
causas_ingreso <- unique(historias_clinicas$Causa_Ingreso)
print(causas_ingreso)
##  [1] "Fiebre"                    "Fractura de brazo"        
##  [3] "Dolor abdominal"           "Neumonía"                 
##  [5] "Infarto de miocardio"      "Gripe"                    
##  [7] "Dolor de cabeza"           "Cirugía programada"       
##  [9] "Dolor lumbar"              "Gastroenteritis"          
## [11] "Accidente automovilístico" "Infección respiratoria"   
## [13] "Dolor de espalda"          "Intoxicación alimentaria" 
## [15] "Problemas de visión"       "Apendicitis"              
## [17] "Dolor de garganta"         "Problemas cardíacos"      
## [19] "Problemas respiratorios"
#2.3. Exportar base de datos a Excel

Taller2 <- "historias_clinicas.xlsx"


write_xlsx(historias_clinicas, Taller2)


cat("Los datos se han exportado a", Taller2, "\n")
## Los datos se han exportado a historias_clinicas.xlsx