Ravisión de la HC de ingreso

 # -*- 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