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           3658007                 Juan                  Gomez   51    F
## 2           8642386                Maria                  Lopez   53    M
## 3           7783024                 Luis               Martinez   62    M
## 4           4335249                  Ana              Rodriguez   33    F
## 5           9699027               Carlos                  Perez   37    M
## 6           8684676                Sofia              Fernandez   68    M
## 7           5025188                Pedro                Sanchez   72    F
## 8           7129667                Laura               Gonzalez   73    M
## 9           3867598                 Raul                Ramirez   38    M
## 10          1433966                Elena                   Diaz   50    M
## 11          4000081                Diego                 Torres   54    M
## 12          9364932               Isabel                   Ruiz   76    M
## 13          4985333               Javier                 Ortega   79    M
## 14          4846134               Carmen                 Vargas   19    M
## 15          5881938             Fernando                 Castro   49    F
## 16          9371396                Marta                Jimenez   78    M
## 17          7519414              Gabriel                 Molina   75    M
## 18          1561778               Silvia              Hernandez   30    F
## 19          6350233               Hector                   Rios   61    F
## 20          5654786             Patricia                 Garcia   52    F
##       Domicilio        Ciudad       Departamento Numero_de_telefono
## 1     Calle 123        Bogota       Cundinamarca            3594879
## 2   Avenida 456      Medellin          Antioquia            3370881
## 3   Carrera 789          Cali    Valle del Cauca            3507073
## 4    Calle 1011  Barranquilla          Atlantico            3435106
## 5  Avenida 1213     Cartagena            Bolivar            3622363
## 6  Carrera 1415   Bucaramanga          Santander            3615144
## 7    Calle 1617       Pereira          Risaralda            3629204
## 8  Avenida 1819        Cucuta Norte de Santander            3298537
## 9  Carrera 2021 Villavicencio               Meta            3912849
## 10   Calle 2223   Santa Marta          Magdalena            3552591
## 11 Avenida 2425        Ibague             Tolima            3156130
## 12 Carrera 2627         Pasto             Narino            3766454
## 13   Calle 2829     Manizales             Caldas            3070498
## 14 Avenida 3031         Neiva              Huila            3008530
## 15 Carrera 3233    Valledupar              Cesar            3564229
## 16   Calle 3435       Armenia            Quindio            3256924
## 17 Avenida 3637       Popayan              Cauca            3970462
## 18 Carrera 3839     Sincelejo              Sucre            3344728
## 19   Calle 4041      Monteria            Cordoba            3153041
## 20 Avenida 4243         Tunja             Boyaca            3426623
##    Numero_de_historial_clinico Fumante      Procedencia Fecha_Ingreso Num_Piso
## 1                         1582       N       Emergencia    2023-01-01        4
## 2                         1715       S         Referido    2023-02-15        9
## 3                         1339       N       Emergencia    2023-03-10        5
## 4                         1373       S Consulta Externa    2023-04-20        1
## 5                         1515       S       Emergencia    2023-05-05        7
## 6                         1239       N         Referido    2023-06-08        3
## 7                         1632       N       Emergencia    2023-07-12        3
## 8                         1867       S         Referido    2023-08-24        3
## 9                         1703       S       Emergencia    2023-09-30        9
## 10                        1832       S Consulta Externa    2023-10-15        8
## 11                        1602       N       Emergencia    2023-11-05        5
## 12                        1522       N Consulta Externa    2023-12-20        5
## 13                        1739       N         Referido    2024-01-02        6
## 14                        1706       N       Emergencia    2024-02-18        1
## 15                        1607       S Consulta Externa    2024-03-11        2
## 16                        1534       N       Emergencia    2024-04-22        7
## 17                        1826       S         Referido    2024-05-08        1
## 18                        1319       S       Emergencia    2024-06-10        9
## 19                        1990       S         Referido    2024-07-22        7
## 20                        1898       N       Emergencia    2024-08-30        6
##    Num_Cama             Causa_Ingreso
## 1        39                    Fiebre
## 2        31         Fractura de brazo
## 3         6           Dolor abdominal
## 4        12                  Neumonía
## 5         2      Infarto de miocardio
## 6        40                     Gripe
## 7        14           Dolor de cabeza
## 8        45        Cirugía programada
## 9         4              Dolor lumbar
## 10        4           Gastroenteritis
## 11       45 Accidente automovilístico
## 12       14    Infección respiratoria
## 13       16          Dolor de espalda
## 14       10  Intoxicación alimentaria
## 15       34       Problemas de visión
## 16       22               Apendicitis
## 17       39         Dolor de garganta
## 18       41       Problemas cardíacos
## 19       47   Problemas respiratorios
## 20       47                     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          3658007                 Juan                  Gomez   51    F
## 2          8642386                Maria                  Lopez   53    M
## 3          7783024                 Luis               Martinez   62    M
##     Domicilio   Ciudad    Departamento Numero_de_telefono
## 1   Calle 123   Bogota    Cundinamarca            3594879
## 2 Avenida 456 Medellin       Antioquia            3370881
## 3 Carrera 789     Cali Valle del Cauca            3507073
##   Numero_de_historial_clinico Fumante Procedencia Fecha_Ingreso Num_Piso
## 1                        1582       N  Emergencia    2023-01-01        4
## 2                        1715       S    Referido    2023-02-15        9
## 3                        1339       N  Emergencia    2023-03-10        5
##   Num_Cama     Causa_Ingreso
## 1       39            Fiebre
## 2       31 Fractura de brazo
## 3        6   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          3658007                 Juan                  Gomez   51    F
## 5          9699027               Carlos                  Perez   37    M
## 9          3867598                 Raul                Ramirez   38    M
##      Domicilio        Ciudad Departamento Numero_de_telefono
## 1    Calle 123        Bogota Cundinamarca            3594879
## 5 Avenida 1213     Cartagena      Bolivar            3622363
## 9 Carrera 2021 Villavicencio         Meta            3912849
##   Numero_de_historial_clinico Fumante Procedencia Fecha_Ingreso Num_Piso
## 1                        1582       N  Emergencia    2023-01-01        4
## 5                        1515       S  Emergencia    2023-05-05        7
## 9                        1703       S  Emergencia    2023-09-30        9
##   Num_Cama        Causa_Ingreso
## 1       39               Fiebre
## 5        2 Infarto de miocardio
## 9        4         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

Taller3 <- "historias_clinicas.xlsx"


write_xlsx(historias_clinicas, Taller3)


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