# Carga de bibliotecas
library(openxlsx)
# 2.1 Crear un dataframe con los campos solicitados para las historias clínicas (20)
Numero_Cedula = c("123456789", "987654321", "111111111", "222222222", "333333333",
"444444444", "555555555", "666666666", "777777777", "888888888",
"999999999", "121212121", "232323232", "343434343", "454545454",
"565656565", "676767676", "787878787", "898989898", "909090909")
Nombres = c("Juan", "Mario", "Ana", "Luis", "Sofia", "Carlos", "Andrea", "Pablo", "Laura", "Diego",
"Isabella", "Antonio", "Valentina", "Javier", "Valeria", "Miguel", "Camilo", "Isaac", "Andres", "Santiago")
Apellidos = c("Perez", "Lopez", "Gomez", "Rodriguez", "Martinez", "Fernandez", "Torres", "Ramirez", "Gonzalez", "Chavez",
"Lopez", "Fernandez", "Rodriguez", "Perez", "Gomez", "Fernandez", "Rodriguez", "Lopez", "Fernandez", "Gomez")
Edad = c(35, 28, 42, 55, 40, 32, 47, 60, 29, 48, 37, 45, 33, 52, 26, 39, 31, 54, 27, 43)
Sexo = c("Masculino", "Masculino", "Femenino", "Masculino", "Femenino", "Masculino", "Femenino", "Masculino", "Femenino", "Masculino",
"Femenino", "Masculino", "Femenino", "Masculino", "Femenino", "Masculino", "Masculino", "Masculino", "Masculino", "Masculino")
Domicilio = c("Calle 123", "Avenida 456", "Av. Principal", "Calzada 789", "Carrera 456", "Plaza 101", "Av. Central", "Calle 789", "Carrera 789", "Plaza 202",
"Av. Norte", "Calle 202", "Calzada 101", "Av. Sur", "Plaza 303", "Calle 303", "Calzada 202", "Av. Este", "Plaza 404", "Calle 404")
Ciudad = c("Cali", "Bogota", "Cali", "Barranquilla", "Santa Marta", "Cali", "Bogotá", "Medellín", "Barranquilla", "Santa Marta",
"Cali", "Bogotá", "Medellín", "Barranquilla", "Santa Marta", "Cali", "Cali", "Medellín", "Barranquilla", "Cali")
Departamento = c("Valle del Cauca", "Cundinamarca", "Valle del Cauca", "Atlántico", "Magdalena", "Valle del Cauca", "Cundinamarca", "Antioquia", "Atlántico", "Magdalena",
"Valle del Cauca", "Cundinamarca", "Antioquia", "Atlántico", "Magdalena", "Valle del Cauca", "Valle del Cauca", "Antioquia", "Atlántico", "Valle del Cauca")
Numero_Telefono = c("123-456-7890", "987-654-3210", "111-111-1111", "222-222-2222", "333-333-3333", "444-444-4444", "555-555-5555", "666-666-6666", "777-777-7777", "888-888-8888",
"999-999-9999", "121-212-1212", "232-323-2323", "343-434-3434", "454-545-4545", "565-656-5656", "676-767-7676", "787-878-7878", "898-989-9898", "909-090-9090")
Numero_Historial_Clinico = c(001, 020, 002, 003, 004, 005, 006, 007, 008, 009,
010, 011, 012, 013, 014, 015, 016, 017, 018, 019)
Fumante = c("No", "Si", "Si", "No", "Si", "No", "Si", "Si", "Si", "No",
"Si", "No", "Si", "No", "Si", "No", "Si", "Si", "Si", "No")
Procedencia = c("Cali", "Bogotá", "Medellín", "Cali", "Santa Marta", "Cali", "Cali", "Medellín", "Barranquilla", "Santa Marta",
"Cali", "Bogotá", "Medellín", "Barranquilla", "Santa Marta", "Cali", "Bogotá", "Cali", "Cali", "Santa Marta")
Fecha_Ingreso = as.Date(c("2023-01-01", "2023-01-02", "2023-01-03", "2023-01-04", "2023-01-05",
"2023-01-06", "2023-01-07", "2023-01-08", "2023-01-09", "2023-01-10",
"2023-01-11", "2023-01-12", "2023-01-13", "2023-01-14", "2023-01-15",
"2023-01-16", "2023-01-17", "2023-01-18", "2023-01-19", "2023-01-20"))
Numero_Piso = c(1, 2, 3, 4, 5, 1, 2, 3, 4, 5,
1, 2, 3, 4, 5, 1, 2, 3, 4, 5)
Numero_Cama = c(101, 202, 303, 404, 505, 101, 202, 303, 404, 505,
101, 202, 303, 404, 505, 101, 202, 303, 404, 505)
Causa_Ingreso = c(
"Cirugía", "Cita médica", "Cita médica", "Consulta",
"Terapia", "Cita médica", "Consulta", "Terapia",
"Cirugía", "Cita médica", "Consulta", "Consulta",
"Cirugía", "Cita médica", "Cita médica", "Terapia",
"Terapia", "Cita médica", "Consulta", "Consulta"
)
historias_clinicas_df = data.frame(Numero_Cedula, Nombres, Apellidos, Edad, Sexo, Domicilio, Ciudad, Departamento, Numero_Telefono, Numero_Historial_Clinico, Fumante, Procedencia, Fecha_Ingreso, Numero_Piso, Numero_Cama, Causa_Ingreso)
# 2.2 - Análisis y visualización de datos
# a - Gráfico de barras para contar pacientes por sexo
barplot(table(historias_clinicas_df$Sexo), main = "Pacientes mujeres y Hombres",
names.arg = c("Femenino", "Masculino"), ylab = "No. personas",
xlab = "Sexo", col = c("green", "blue"), las = 1)

# b - Gráfico de barras para contar fumadores por edad
barplot(table(historias_clinicas_df$Fumante, historias_clinicas_df$Edad),
main = "Fumadores y edad", ylab = "No. personas", xlab = "Edad", las = 1,
col = c("yellow2", "brown"))
legend(x = "topright", legend = c("No", "Si"), fill = c("yellow2", "brown"), title = "Fumante")

# c - Gráfico de barras para pacientes por piso divididos por sexo
barplot(table(historias_clinicas_df$Sexo, historias_clinicas_df$Numero_Piso),
main = "Pacientes por piso divididos por sexo", ylab = "No. personas",
xlab = "Piso", las = 1, col = c("red", "green"))
legend(x = "topright", legend = c("Mujer", "Hombre"), fill = c("red", "green"), title = "Sexo")

# d - Gráfico de barras para contar pacientes por causa de ingreso y edad
barplot(table(historias_clinicas_df$Causa_Ingreso, historias_clinicas_df$Edad),
col = c("violet", "gray", "black", "blue4"),
main = "Edad y causa de ingreso", ylab = "No. personas", xlab = "Edad", las = 1)
legend(x = "topright", legend = c("Consulta", "Terapia", "Cita médica", "Cirugía"),
fill = c("violet", "gray", "black", "blue4"), title = "Causa de ingreso")

# e - Gráfico de barras para el promedio de edad de hombres y mujeres
barplot(c(mean(historias_clinicas_df$Edad[historias_clinicas_df$Sexo == "Masculino"]),
mean(historias_clinicas_df$Edad[historias_clinicas_df$Sexo == "Femenino"])),
main = "Promedio de edad Mujeres y Hombres",
names.arg = c("Hombre", "Mujer"), col = c("yellow", "hotpink4"),
ylab = "Edad promedio", xlab = "Sexo", las = 1, ylim = c(0, 90))

# f - Gráfico de barras para datos independientes de 3 pacientes
barplot(c(historias_clinicas_df$Edad[historias_clinicas_df$Nombres == "Mario"],
historias_clinicas_df$Numero_Piso[historias_clinicas_df$Nombres == "Ana"],
historias_clinicas_df$Numero_Cama[historias_clinicas_df$Nombres == "Juan"]),
main = "Datos independientes de 3 pacientes",
names.arg = c("Edad_Mario", "Piso_Ana", "Cama_Juan"),
col = c("blue", "brown", "red"), ylab = "Datos", xlab = "Pacientes", las = 1, ylim = c(0, 150))

# g - Gráfico de barras para la identidad de 3 pacientes
barplot(c(historias_clinicas_df$Numero_Historial_Clinico[historias_clinicas_df$Nombres == "Isaac"],
historias_clinicas_df$Numero_Historial_Clinico[historias_clinicas_df$Nombres == "Laura"],
historias_clinicas_df$Numero_Historial_Clinico[historias_clinicas_df$Nombres == "Antonio"]),
main = "Identidad de 3 pacientes",
names.arg = c("Isaac", "Laura", "Antonio"),
col = c("darkblue", "red", "gray"), ylab = "No. Historia clínica", xlab = "Nombre", las = 1, ylim = c(0, 20))

# h - Gráfico de barras para la lista de causas de ingreso
barplot(table(historias_clinicas_df$Causa_Ingreso), main = "Lista de causas de ingreso",
ylab = "No. personas", xlab = "Causa de ingreso", col = rainbow(4), las = 1)

# 2.3 - Guardar los datos en un archivo Excel
write.xlsx(historias_clinicas_df, "historias_clinicas.xlsx", rowNames = FALSE)