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           1993283                 Juan                  Gomez   54    M
## 2           3976417                Maria                  Lopez   34    F
## 3           9272181                 Luis               Martinez   50    F
## 4           9874214                  Ana              Rodriguez   68    F
## 5           8897114               Carlos                  Perez   37    M
## 6           6510874                Sofia              Fernandez   31    F
## 7           5479583                Pedro                Sanchez   77    F
## 8           7854010                Laura               Gonzalez   78    F
## 9           3168852                 Raul                Ramirez   52    M
## 10          6147062                Elena                   Diaz   53    F
## 11          8561136                Diego                 Torres   25    M
## 12          7808518               Isabel                   Ruiz   74    F
## 13          6913940               Javier                 Ortega   21    F
## 14          7355802               Carmen                 Vargas   66    M
## 15          2246008             Fernando                 Castro   24    M
## 16          4819147                Marta                Jimenez   39    M
## 17          5265345              Gabriel                 Molina   33    M
## 18          4137454               Silvia              Hernandez   79    F
## 19          5693659               Hector                   Rios   69    M
## 20          1655619             Patricia                 Garcia   43    M
##       Domicilio        Ciudad       Departamento Numero_de_telefono
## 1     Calle 123        Bogota       Cundinamarca            3817971
## 2   Avenida 456      Medellin          Antioquia            3254712
## 3   Carrera 789          Cali    Valle del Cauca            3676607
## 4    Calle 1011  Barranquilla          Atlantico            3540118
## 5  Avenida 1213     Cartagena            Bolivar            3378669
## 6  Carrera 1415   Bucaramanga          Santander            3659393
## 7    Calle 1617       Pereira          Risaralda            3675388
## 8  Avenida 1819        Cucuta Norte de Santander            3527205
## 9  Carrera 2021 Villavicencio               Meta            3655982
## 10   Calle 2223   Santa Marta          Magdalena            3119337
## 11 Avenida 2425        Ibague             Tolima            3905200
## 12 Carrera 2627         Pasto             Narino            3039263
## 13   Calle 2829     Manizales             Caldas            3176816
## 14 Avenida 3031         Neiva              Huila            3354462
## 15 Carrera 3233    Valledupar              Cesar            3610336
## 16   Calle 3435       Armenia            Quindio            3330072
## 17 Avenida 3637       Popayan              Cauca            3320693
## 18 Carrera 3839     Sincelejo              Sucre            3821518
## 19   Calle 4041      Monteria            Cordoba            3715550
## 20 Avenida 4243         Tunja             Boyaca            3770249
##    Numero_de_historial_clinico Fumante      Procedencia Fecha_Ingreso Num_Piso
## 1                         1049       N       Emergencia    2023-01-01        6
## 2                         1945       N         Referido    2023-02-15        1
## 3                         1405       N       Emergencia    2023-03-10        5
## 4                         1177       N Consulta Externa    2023-04-20        2
## 5                         1907       S       Emergencia    2023-05-05        7
## 6                         1256       S         Referido    2023-06-08        4
## 7                         1504       N       Emergencia    2023-07-12        1
## 8                         1113       S         Referido    2023-08-24       10
## 9                         1666       S       Emergencia    2023-09-30        7
## 10                        1227       N Consulta Externa    2023-10-15        7
## 11                        1250       S       Emergencia    2023-11-05        7
## 12                        1812       S Consulta Externa    2023-12-20        3
## 13                        1622       S         Referido    2024-01-02        6
## 14                        1953       N       Emergencia    2024-02-18        2
## 15                        1613       S Consulta Externa    2024-03-11        4
## 16                        1466       S       Emergencia    2024-04-22        7
## 17                        1940       S         Referido    2024-05-08        7
## 18                        1050       S       Emergencia    2024-06-10        4
## 19                        1412       N         Referido    2024-07-22        1
## 20                        1823       S       Emergencia    2024-08-30        5
##    Num_Cama             Causa_Ingreso
## 1        36                    Fiebre
## 2        38         Fractura de brazo
## 3        38           Dolor abdominal
## 4        15                  Neumonía
## 5        49      Infarto de miocardio
## 6        37                     Gripe
## 7         2           Dolor de cabeza
## 8        44        Cirugía programada
## 9        39              Dolor lumbar
## 10       10           Gastroenteritis
## 11       11 Accidente automovilístico
## 12       35    Infección respiratoria
## 13       26          Dolor de espalda
## 14       32  Intoxicación alimentaria
## 15       26       Problemas de visión
## 16       15               Apendicitis
## 17       31         Dolor de garganta
## 18       17       Problemas cardíacos
## 19       42   Problemas respiratorios
## 20       48                     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          1993283                 Juan                  Gomez   54    M
## 2          3976417                Maria                  Lopez   34    F
## 3          9272181                 Luis               Martinez   50    F
##     Domicilio   Ciudad    Departamento Numero_de_telefono
## 1   Calle 123   Bogota    Cundinamarca            3817971
## 2 Avenida 456 Medellin       Antioquia            3254712
## 3 Carrera 789     Cali Valle del Cauca            3676607
##   Numero_de_historial_clinico Fumante Procedencia Fecha_Ingreso Num_Piso
## 1                        1049       N  Emergencia    2023-01-01        6
## 2                        1945       N    Referido    2023-02-15        1
## 3                        1405       N  Emergencia    2023-03-10        5
##   Num_Cama     Causa_Ingreso
## 1       36            Fiebre
## 2       38 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          1993283                 Juan                  Gomez   54    M
## 5          8897114               Carlos                  Perez   37    M
## 9          3168852                 Raul                Ramirez   52    M
##      Domicilio        Ciudad Departamento Numero_de_telefono
## 1    Calle 123        Bogota Cundinamarca            3817971
## 5 Avenida 1213     Cartagena      Bolivar            3378669
## 9 Carrera 2021 Villavicencio         Meta            3655982
##   Numero_de_historial_clinico Fumante Procedencia Fecha_Ingreso Num_Piso
## 1                        1049       N  Emergencia    2023-01-01        6
## 5                        1907       S  Emergencia    2023-05-05        7
## 9                        1666       S  Emergencia    2023-09-30        7
##   Num_Cama        Causa_Ingreso
## 1       36               Fiebre
## 5       49 Infarto de miocardio
## 9       39         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