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           5889878                 Juan                  Gomez   80    M
## 2           6031237                Maria                  Lopez   47    M
## 3           7443854                 Luis               Martinez   76    M
## 4           7669191                  Ana              Rodriguez   65    F
## 5           6565678               Carlos                  Perez   28    M
## 6           7645676                Sofia              Fernandez   53    M
## 7           4848348                Pedro                Sanchez   71    F
## 8           4194381                Laura               Gonzalez   18    M
## 9           7864132                 Raul                Ramirez   54    M
## 10          2505404                Elena                   Diaz   42    M
## 11          7487283                Diego                 Torres   62    F
## 12          1861447               Isabel                   Ruiz   51    F
## 13          6397253               Javier                 Ortega   44    M
## 14          8709975               Carmen                 Vargas   56    M
## 15          5957192             Fernando                 Castro   21    M
## 16          1950313                Marta                Jimenez   79    M
## 17          4398419              Gabriel                 Molina   69    F
## 18          8038825               Silvia              Hernandez   60    F
## 19          7454767               Hector                   Rios   22    M
## 20          1805643             Patricia                 Garcia   29    M
##       Domicilio        Ciudad       Departamento Numero_de_telefono
## 1     Calle 123        Bogota       Cundinamarca            3723943
## 2   Avenida 456      Medellin          Antioquia            3180438
## 3   Carrera 789          Cali    Valle del Cauca            3097310
## 4    Calle 1011  Barranquilla          Atlantico            3252395
## 5  Avenida 1213     Cartagena            Bolivar            3041260
## 6  Carrera 1415   Bucaramanga          Santander            3538138
## 7    Calle 1617       Pereira          Risaralda            3249765
## 8  Avenida 1819        Cucuta Norte de Santander            3289900
## 9  Carrera 2021 Villavicencio               Meta            3250142
## 10   Calle 2223   Santa Marta          Magdalena            3475059
## 11 Avenida 2425        Ibague             Tolima            3275871
## 12 Carrera 2627         Pasto             Narino            3650011
## 13   Calle 2829     Manizales             Caldas            3279099
## 14 Avenida 3031         Neiva              Huila            3751659
## 15 Carrera 3233    Valledupar              Cesar            3819390
## 16   Calle 3435       Armenia            Quindio            3789712
## 17 Avenida 3637       Popayan              Cauca            3330210
## 18 Carrera 3839     Sincelejo              Sucre            3877009
## 19   Calle 4041      Monteria            Cordoba            3646769
## 20 Avenida 4243         Tunja             Boyaca            3777818
##    Numero_de_historial_clinico Fumante      Procedencia Fecha_Ingreso Num_Piso
## 1                         1107       S       Emergencia    2023-01-01        6
## 2                         1786       S         Referido    2023-02-15        8
## 3                         1859       S       Emergencia    2023-03-10       10
## 4                         1056       N Consulta Externa    2023-04-20        2
## 5                         1097       S       Emergencia    2023-05-05        3
## 6                         1284       S         Referido    2023-06-08        8
## 7                         1202       N       Emergencia    2023-07-12        3
## 8                         1275       S         Referido    2023-08-24        4
## 9                         1840       N       Emergencia    2023-09-30        6
## 10                        1888       N Consulta Externa    2023-10-15        2
## 11                        1444       N       Emergencia    2023-11-05       10
## 12                        1347       N Consulta Externa    2023-12-20        1
## 13                        1099       S         Referido    2024-01-02        5
## 14                        1028       N       Emergencia    2024-02-18        9
## 15                        1540       N Consulta Externa    2024-03-11        7
## 16                        1538       S       Emergencia    2024-04-22        4
## 17                        1777       S         Referido    2024-05-08        8
## 18                        1432       S       Emergencia    2024-06-10        2
## 19                        1261       S         Referido    2024-07-22        3
## 20                        1195       N       Emergencia    2024-08-30        9
##    Num_Cama             Causa_Ingreso
## 1        47                    Fiebre
## 2        27         Fractura de brazo
## 3        10           Dolor abdominal
## 4        25                  Neumonía
## 5        47      Infarto de miocardio
## 6        18                     Gripe
## 7        30           Dolor de cabeza
## 8        44        Cirugía programada
## 9         9              Dolor lumbar
## 10        1           Gastroenteritis
## 11       34 Accidente automovilístico
## 12       18    Infección respiratoria
## 13       49          Dolor de espalda
## 14       14  Intoxicación alimentaria
## 15       36       Problemas de visión
## 16       11               Apendicitis
## 17       14         Dolor de garganta
## 18       26       Problemas cardíacos
## 19        7   Problemas respiratorios
## 20       26                     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          5889878                 Juan                  Gomez   80    M
## 2          6031237                Maria                  Lopez   47    M
## 3          7443854                 Luis               Martinez   76    M
##     Domicilio   Ciudad    Departamento Numero_de_telefono
## 1   Calle 123   Bogota    Cundinamarca            3723943
## 2 Avenida 456 Medellin       Antioquia            3180438
## 3 Carrera 789     Cali Valle del Cauca            3097310
##   Numero_de_historial_clinico Fumante Procedencia Fecha_Ingreso Num_Piso
## 1                        1107       S  Emergencia    2023-01-01        6
## 2                        1786       S    Referido    2023-02-15        8
## 3                        1859       S  Emergencia    2023-03-10       10
##   Num_Cama     Causa_Ingreso
## 1       47            Fiebre
## 2       27 Fractura de brazo
## 3       10   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          5889878                 Juan                  Gomez   80    M
## 5          6565678               Carlos                  Perez   28    M
## 9          7864132                 Raul                Ramirez   54    M
##      Domicilio        Ciudad Departamento Numero_de_telefono
## 1    Calle 123        Bogota Cundinamarca            3723943
## 5 Avenida 1213     Cartagena      Bolivar            3041260
## 9 Carrera 2021 Villavicencio         Meta            3250142
##   Numero_de_historial_clinico Fumante Procedencia Fecha_Ingreso Num_Piso
## 1                        1107       S  Emergencia    2023-01-01        6
## 5                        1097       S  Emergencia    2023-05-05        3
## 9                        1840       N  Emergencia    2023-09-30        6
##   Num_Cama        Causa_Ingreso
## 1       47               Fiebre
## 5       47 Infarto de miocardio
## 9        9         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