# -*- coding: utf-8 -*-
#import pyperclip
from datetime import date
nombre = input("Nombre: >>")
sexoingles = "male"
sexo = input("1. Masculino\n2. Femenino\n>>")
if sexo == "1":
sexoescrito = "Masculino"
if sexo == "2":
sexoescrito = "Femenino"
if sexo == "1":
sexoingles = "male"
if sexo == "2":
sexoingles = "female"
edad = int(input("Edad: >>"))
ocupacion = input("Ocupación: >>")
ecivil = input("Estado civil: >>")
seguro = input("Seguro: >>")
acompanante = input("Acompañante: >>")
motivoconsulta = input("Motivo de consulta: >>")
remite = input("Remite: >>")
peso = input("Peso: >>")
talla = input("Talla: >>")
creatinina = input("Creatinina: >>")
antecM = input("Antecedentes médicos: >>")
antecQ = input("Antecedentes quirúrgicos: >>")
antecT = input("Antecedentes tóxicos: >>")
antecA = input("Antecedentes alérgicos: >>")
Tamizaje = input("Tamizaje: >>")
antecF = input("Antecedentes familiares oncológicos: >>")
antecFNO = input("Antecedentes familiares no oncológicos: >>")
medicamentos = input("Medicamentos: >>")
subjetivo = input("Subjetivo: >>")
desempeno = input("Desempeño: >>")
eva = input("Escala visual análoga de dolor: >>")
objetivo = input("Objetivo: >>")
examenfisico = input("Examen físico: >>")
opinion = input("Opinion: >>")
recomendaciones = input("Recomendaciones: >>")
ordenar = input("Ordenar: >>")
print("")
print("")
today = date.today()
def f_BSA(Ta, Pe):
# Calculo de la superficie corporal utilizando
# de estatura en cms, y kg de peso
BSA = (0.007184 * ((Ta)**0.725)) * (Pe ** (0.425))
return BSA
SuperficieCorporal = f_BSA(float(talla), float(peso))
def calcular_imc(peso_kg, altura_cm):
"""
Calcula el IMC basado en el peso en kilogramos y la altura en centímetros.
:param peso_kg: Peso en kilogramos
:param altura_cm: Altura en centímetros
:return: Valor del IMC
"""
try:
# Convertir la altura de cm a metros
altura_m = altura_cm / 100
# Verificar que los valores sean válidos
if peso_kg <= 0 or altura_m <= 0:
raise ValueError("El peso y la altura deben ser mayores que cero.")
# Calcular el IMC
imc = peso_kg / (altura_m ** 2)
return round(imc, 2)
except Exception as e:
return f"Error: {e}"
# Uso del programa
pesob = float(peso)
alturab = float(talla)
imc = calcular_imc(pesob, alturab)
#Calcular depuración de creatinina CKD-EPI
def calculate_egfr(Scr, age, sex):
"""
Calculate the estimated glomerular filtration rate (eGFR) using the given formula.
Parameters:
Scr (float): Standardized serum creatinine in mg/dL
age (int): Age of the individual in years
sex (str): "male" or "female"
Returns:
float: Estimated GFR value
"""
# Define constants based on sex
if sex.lower() == "female":
kappa = 0.7
alpha = -0.241
sex_factor = 1.012
elif sex.lower() == "male":
kappa = 0.9
alpha = -0.302
sex_factor = 1.0
else:
raise ValueError("Invalid sex. Please specify 'male' or 'female'.")
# Calculate the min and max values
min_value = min(Scr / kappa, 1.0)
max_value = max(Scr / kappa, 1.0)
# Calculate eGFR
egfr = 142 * (min_value ** alpha) * (max_value ** -1.200) * (0.9938 ** age) * sex_factor
return egfr
#Comentario automatizado de tamización cuando está fuera de ventana por edad
if Tamizaje == "" and sexoingles == "female" and (edad < 21 or edad > 70):
Tamizaje = "No se indica ningún tipo de tamización contra el cáncer."
if Tamizaje == "" and sexoingles == "male" and (edad < 50 or edad > 70):
Tamizaje = "No se indica ningún tipo de tamización contra el cáncer."
#Si no eva, eva es "0"
if eva == "":
eva = "0"
#ClipBoard Generator
#cb = (nombre + "\n" + "Fecha: ", today.strftime("%d/%m/%Y") + "\n" + "Historia clínica inicial" + "\n" + "Consulta presencial." + "\n" + "Ocupación: " + ocupacion + "\n" + "Estado civil, número de hijos: " + ecivil + "\n" + "Asegurador: " + seguro + "\n" + "Acompañante: " + acompanante + "\n" + "Remite: " + remite + "\n" + "Motivos consulta: " + motivoconsulta + "\n" + "Motivo consulta: " + motivoconsulta + "\n" + "Antecedentes médicos: " + antecM + "\n" + "Antecedentes quirúrgicos: " + antecQ + "\n" + "Antecedentes tóxicos: " + antecT + "\n" + "Antecedentes alérgicos: " + antecA + "\n" + "Antecedentes familiares oncológicos: " + antecF + "\n" + "Antecedentes familiares no oncológicos: " + antecFNO + "\n" + "Medicamentos: " + medicamentos + "\n" + "Subjetivo: " + subjetivo + "\n" + "Desempeño: " + desempeno + "\n" + "Escala visual análoga (0-10): " + eva + "\n" + "Objetivo: " + objetivo + "\n" + "Peso (kg): " + peso + "\n" + "\n" + "Talla (cm): " + talla + "\n" + "Examen físico: 120/80, 80 por minuto. Cardiopulmonar: bien." + "\n" + "Creatinina: " + creatinina + "\n" + "Opinión: " + opinion + "\n" + "Recomendaciones: Se discute en extenso. Se genera mapa conceptual, que se le entrega. Se aclaran dudas a satisfacción. Paciente manifiesta entender y aceptar las recomendaciones.\n" + recomendaciones + "\n" + "\n" + "Ordenar: " + ordenar + "\n")
#pyperclip.copy(cb)
#print(str(cb))
print(nombre)
print("Fecha: #" + today.strftime("%d/%m/%Y") +"#")
print("Historia clínica inicial")
print("Consulta presencial. ")
print("Edad (años) en primera cita: " + str(edad))
print("Sexo:" + sexoescrito)
print("Ocupación: " + ocupacion)
print("Estado civil, número de hijos: " + ecivil)
print("Asegurador: " + seguro)
print("Acompañante: " + acompanante)
print("Remite: " + remite)
print("Motivo consulta: " + motivoconsulta)
print("Antecedentes médicos: " + antecM)
print("Antecedentes quirúrgicos: " + antecQ)
print("Antecedentes tóxicos: " + antecT)
print("Antecedentes alérgicos: " + antecA)
print("Tamizaje: " + Tamizaje)
print("Antecedentes familiares oncológicos: " + antecF)
print("Antecedentes familiares no oncológicos: " + antecFNO)
if medicamentos == "":
print("Sin cambios en la medicación usual.")
if medicamentos != "":
print("Medicamentos: " + medicamentos)
if subjetivo == "":
print("Subjetivo: se siente bien, sin síntomas.")
if subjetivo != "":
print("Subjetivo: " + subjetivo)
if desempeno == "":
print("Desempeño 0.")
if desempeno != "":
print("Desempeño: " + desempeno)
print("Escala visual análoga (0-10): " + eva)
if objetivo == "":
print("Objetivo:\n")
if objetivo != "":
print("Objetivo: " + objetivo + "\n")
print("Peso (kilogramos o kg): " + peso)
print("Talla (centímetros o cm): " + talla)
print("Superficie corporal: " + str(round(SuperficieCorporal,2)) + " metros cuadrados")
print("Índice de masa corporal: " + str(imc) + " kg / metros cuadrados")
if examenfisico == "":
print("Examen físico: 120/80, 80 por minuto. Cardiopulmonar: bien.")
print("Creatinina (miligramos por decilitro o mg/dL): " + creatinina)
depCreat = calculate_egfr(float(creatinina), edad, sexoingles)
print("Depuración estimada de creatinina (CKD-EPI): " + str(round(depCreat,1)) + " mL/min/1.73 m²")
if examenfisico != "":
print("Examen físico: " + examenfisico + "\n")
if opinion == "":
print("Opinión: \n")
if opinion != "":
print("Opinión: " + opinion + "\n")
if recomendaciones == "":
print("Recomendaciones: Se discute en extenso. Se genera mapa conceptual, que se le entrega. Se aclaran dudas a satisfacción. Paciente manifiesta entender y aceptar las recomendaciones.\n")
if recomendaciones != "":
print("Recomendaciones: " + recomendaciones + "\n")
if ordenar == "":
print("Ordenar: \n")
if ordenar != "":
print("Ordenar: " + ordenar + "\n")
Comentarios
Publicar un comentario