Dosis densas AC x4 - seguido por paclitaxel semanal x12.

 # -*- coding: utf-8 -*-

print("AC dosis densas x4, seguido por Paclitaxel semanal x12 semanas.")
def unidades(x):
if x == 0:
unidad = "cero"
if x == 1:
unidad = "un"
if x == 2:
unidad = "dos"
if x == 3:
unidad = "tres"
if x == 4:
unidad = "cuatro"
if x == 5:
unidad = "cinco"
if x == 6:
unidad = "seis"
if x == 7:
unidad = "siete"
if x == 8:
unidad = "ocho"
if x == 9:
unidad = "nueve"
return unidad

def teens(x):
if x == 0:
teenname = "diez"
if x == 1:
teenname = "once"
if x == 2:
teenname = "doce"
if x == 3:
teenname = "trece"
if x == 4:
teenname = "catorce"
if x == 5:
teenname = "quince"
return teenname


def tens(x):
if x == 1:
tensname = "diez"
if x == 2:
tensname = "veinte"
if x == 3:
tensname = "treinta"
if x == 4:
tensname = "cuarenta"
if x == 5:
tensname = "cincuenta"
if x == 6:
tensname = "sesenta"
if x == 7:
tensname = "setenta"
if x == 8:
tensname = "ochenta"
if x == 9:
tensname = "noventa"
return tensname

def tercia(num):
numero=str(num)
if len(numero) == 1:
numero='00'+numero
if len(numero) == 2:
numero='0'+numero
a=int(numero[0])
b=int(numero[1])
c=int(numero[2])
# print a, b, c
if a == 0:
if b == 0:
resultado=unidades(c)
return resultado
elif b == 1:
if c >= 0 and c <= 5:
resultado = teens(c)
return resultado
elif c >= 6 and c <= 9:
resultado = tens(b)+' y '+unidades(c)
return resultado
elif b == 2:
if c == 0:
resultado = 'veinte'
return resultado
elif c > 0 and c <= 9:
resultado ='veinti '+unidades(c)
return resultado
elif b >=3 and b <= 9:
if c == 0:
resultado = tens(b)
return resultado
if c >= 1 and c <= 9:
resultado = tens(b)+' y '+unidades(c)
return resultado
if a == 1:
if b == 0:
if c == 0:
resultado = 'cien'
return resultado
elif c > 0 and c <= 9:
resultado ='ciento '+unidades(c)
return resultado
elif b == 1:
if c >= 0 and c <= 5:
resultado = 'ciento '+teens(c)
return resultado
elif c >= 6 and c <= 9:
resultado = 'ciento '+tens(b)+' y '+unidades(c)
return resultado
elif b == 2:
if c == 0:
resultado = 'ciento veinte'
return resultado
elif c > 0 and c <= 9:
resultado ='ciento veinti '+unidades(c)
return resultado
elif b >= 3 and b <= 9:
if c == 0:
resultado = 'ciento '+tens(b)
return resultado
elif c > 0 and c <= 9:
resultado = 'ciento '+tens(b)+ ' y '+unidades(c
)
return resultado

elif a >= 2 and a <= 9:
if a == 5:
prefix='quinientos '
elif a == 7:
prefix='setecientos '
elif a == 9:
prefix='novecientos '
else:
prefix=unidades(a)+' cientos '
if b == 0:
if c == 0:
resultado = prefix
return resultado
elif c > 0 and c <= 9:
resultado = prefix+unidades(c)
return resultado
elif b == 1:
if c >= 0 and c <= 5:
resultado = prefix+teens(c)
return resultado
elif c >= 6 and c <= 9:
resultado = prefix+tens(b)+' y '+unidades(c)
return resultado
elif b == 2:
if c == 0:
resultado = prefix+' veinte'
return resultado
elif c > 0 and c <= 9:
resultado = prefix+' veinti '+unidades(c)
return resultado
elif b >= 3 and b <= 9:
if c == 0:
resultado = prefix+tens(b)
return resultado
elif c > 0 and c <= 9:
resultado = prefix+tens(b)+' y '+unidades(c)
return resultado
def main(num):
result=''
numero=str(num)
if len(numero) == 1:
numero='00000000'+numero
if len(numero) == 2:
numero='0000000'+numero
if len(numero) == 3:
numero='000000'+numero
if len(numero) == 4:
numero='00000'+numero
if len(numero) == 5:
numero='0000'+numero
if len(numero) == 6:
numero='000'+numero
if len(numero) == 7:
numero='00'+numero
if len(numero) == 8:
numero='0'+numero
posicion=1
for i in [0,3,6]:
var=numero[i]+numero[i+1]+numero[i+2]
if int(var) != 0:
res=tercia(var)
if i == 0:
result=res+" millones "
elif i == 3:
result=result+res+" mil "
elif i == 6:
result=result+res
return result

# Superficie corporal (BSA)
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

def f_dosis_BSA(Dosis, BSA, Porcentaje):
# Calculo de la dosis por m2 de superficie corporal,
# e intensidad relativa en porcentaje
f_dosis_BSA = Dosis * BSA * (Porcentaje/100)
return f_dosis_BSA

def f_dosis_Kg(Dosis, Peso, Porcentaje):
# Calculo de la dosis por m2 de superficie corporal,
# e intensidad relativa en porcentaje
f_dosis_Kg = Dosis * Peso * (Porcentaje/100)
return f_dosis_Kg

def f_numero_ampollas (Presentacion, DosisTotal, NumeroDeAplicacionesCiclo):
# NTAA = numerototaldeampollasrequerida
NTAA = float (DosisTotal/Presentacion)
if int(NTAA) != NTAA:
NTAA = int(NTAA)+1
NTAA = NTAA * NumeroDeAplicacionesCiclo
return NTAA

def f_protocolo_droga_BSA (Droga1, DiaAdministracion1, ViaAdministracion1, Posologia1, Unidades1, Dosis1, PorcentajeDosis1, NumeroDeAplicacionesCiclo1, Presentacion1, Comentario1):
DosisTotal1 = f_dosis_BSA(Dosis1, SuperficieCorporal , PorcentajeDosis1)
NumeroDeAmpollasCiclo1 = f_numero_ampollas (Presentacion1, DosisTotal1, NumeroDeAplicacionesCiclo1)
StrDroga1 = Droga1 + " " + Posologia1 + " " + str(Presentacion1)+ " " + Unidades1 + " "
StrDroga1 = StrDroga1 + "# " + str(int(NumeroDeAmpollasCiclo1)) + " (" + main(str(int(NumeroDeAmpollasCiclo1))) + ") " + Posologia1 + ": " + str(int(DosisTotal1)) + " " + str(Unidades1) + " " + " "
StrDroga1 = StrDroga1 + ViaAdministracion1
print(StrDroga1)
print(Comentario1)

def f_protocolo_droga_ABSOLUTO (Droga1, DiaAdministracion1, ViaAdministracion1, Posologia1, Unidades1, Dosis1, PorcentajeDosis1, NumeroDeAplicacionesCiclo1, Presentacion1, Comentario1):
DosisTotal1 = Dosis1
NumeroDeAmpollasCiclo1 = f_numero_ampollas (Presentacion1, DosisTotal1, NumeroDeAplicacionesCiclo1)
if int(NumeroDeAmpollasCiclo1) ==0:
NumeroDeAmpollasCiclo1 = 1
StrDroga1 = Droga1 + " " + Posologia1 + " " + str(Presentacion1)+ " " + Unidades1 + " "
StrDroga1 = StrDroga1 + "# " + str(int(NumeroDeAmpollasCiclo1)) + " (" + main(str(int(NumeroDeAmpollasCiclo1))) + ") " + Posologia1 + ": " + str(DosisTotal1) + " " + str(Unidades1) + " " + " "
StrDroga1 = StrDroga1 + ViaAdministracion1
print(StrDroga1)
print(Comentario1)

def f_protocolo_droga_Kg (Droga1, DiaAdministracion1, ViaAdministracion1, Posologia1, Unidades1, Dosis1, PorcentajeDosis1, NumeroDeAplicacionesCiclo1, Presentacion1, Comentario1):
DosisTotal1 = f_dosis_Kg(Dosis1, Peso , PorcentajeDosis1)
NumeroDeAmpollasCiclo1 = f_numero_ampollas (Presentacion1, DosisTotal1, NumeroDeAplicacionesCiclo1)
StrDroga1 = Droga1 + " " + Posologia1 + " " + str(Presentacion1)+ " " + Unidades1 + " "
StrDroga1 = StrDroga1 + "# " + str(int(NumeroDeAmpollasCiclo1)) + " (" + main(str(int(NumeroDeAmpollasCiclo1))) + ") " + Posologia1 + ": " + str(int(DosisTotal1)) + " " + str(Unidades1) + " " + " "
StrDroga1 = StrDroga1 + ViaAdministracion1
print(StrDroga1)
print(Comentario1)

tTalla = input("Estatura en centimetros?>>")
Talla = float(tTalla)
tPeso = input("Peso en kilogramos?>>")
Peso = float(tPeso)

SuperficieCorporal = f_BSA(Talla, Peso)
print()
print("Lista de chequeo para inicio de quimioterapia AC (doxorrubicina más ciclofosfamida) adyuvante (o neoadyuvante). Se dicuten: la intención del tratamiento: sí - curativa; plan de tratamiento (número de ciclos, frecuencia): sí - doxorrubicina más ciclofosfamida por la vena cada 14 días x4; qué exámenes se requieren antes de cada ciclo de tratamiento: sí - hemograma antes de cada ciclo de quimioterapia (cada 14 días); cómo se valorará la respuesta al tratamiento: sí - pueden realizarse ecografía o resonancia magnética al ciclo 4, en caso de duda sobre respuesta; efectos secundarios principales: sí - caída de cabello, náuseas y vómito, debilidad, disminución de las defensas; efectos secundarios graves: sí - disminución de la defensa (con fiebre); secuelas potenciales de tratamiento: sí - daño al corazón y leucemia secundarias; precauciones especiales durante el tratamiento: sí - si hay fiebre hay que realizar examen de sangre inmediato para establecer si las defensas están bajas (en urgencias). \n Los efectos adversos relacionados con el tratamiento son: La doxorrubicina puede causar caída del cabello, náuseas, vómito, debilidad, fatiga, alteraciones menstruales, infertilidad transitoria, infertilidad definitiva, disminución de las defensas, infecciones, úlceras o llagas en la boca, disminución del apetito. Efectos raros pero graves son el riesgo al corazón y leucemias secundarias. El daño al corazón ocurre en aproximadamente 1% de los pacientes tratados, y las leucemia ocurren aproximadamente en 1 en 2000 de los pacientes tratados. Puede haber lesión de tejido blando cuando la droga se sale del vaso sanguíneo. La quimioterapia interfiere con la cicatrización, y se puede asociar a riesgo de sangrado, trombosis o coágulos. La quimioterapia puede causar infertilidad transitoria o permanente. Además, se debe evitar el embarazo durante la quimioterapia pues puede causar malformaciones en el feto. \n La ciclofosfamida puede causar caída del cabello, náuseas, vomito, debilidad, fatiga, disminución de las defensas. Existe un riesgo muy bajo de toxicidad al corazon y de leucemias secundarias. La quimioterapia interfiere con la cicatrización, y se puede asociar a riesgo de sangrado, trombosis o coágulos. La quimioterapia puede causar infertilidad transitoria o permanente. Además, se debe evitar el embarazo durante la quimioterapia pues puede causar malformaciones en el feto. \n La mortalidad estimada por el tratamiento se estima en 1 por cada 100 pacientes tratados. \n La explicación de los efectos adversos asociados a la quimioterapia, y algunas estrategias de cómo mitigarlos es complementada por enfermería oncológica, con la enfermera oncóloga Mónica Ríos. Favor consultar por urgencias en caso de fiebre mayor de 38.5 grados o mayor de 38 grados por más de una hora; También consultar por urgencias si: convulsiones; vómito o diarrea con sangre; más de 10 episodios de vomito en menos de 24 horas; más de 10 episodios de diarrea en 24 horas; pérdida del conocimiento; caída de la presion con caída (por debajo de 90/60); letargo (no se despierta a pesar de que lo estimulen) o cambios en el comportamiento, visión doble; pérdida de la fuerza de alguna extremidad que le impida o dificulte moverla; edema o hinchazón en una pierna o brazo que sea muy notoria; dificultad para respirar; tos con sangre de reciente aparición; desaturación (saturación de oxigeno menor de 90%) en paciente sin historia de problemas cardiopulmonares; hinchazón y distensión abdominal que le impidan comer o respirar; dolor abdominal con vómito de materia fecal, dolor abdominal con paro de gases y fecales; dolor abdominal tan severo que impida que le toquen el abdomen; claramente amarillo (ictericia) de reciente aparicion. \n Se discuten las estrategias de contacto, y manejo de situaciones extraordinarias. \n En caso de consulta de urgencias, favor ir a las urgencias de la designada de común acuerdo con su médico tratante, con su historia clinica, los exámenes, y la lista de medicamentos que toma. Debe llevar tambien identificación y los documentos necesarios para que verifiquen que se puede atender por su seguro. \n En caso de consulta de urgencias, favor ir a las urgencias que le indique su asegurador. No olvide llevar su historia clínica, los exámenes, y la lista de medicamentos que toma. Debe llevar tambien identificación y los documentos necesarios para que verifiquen que se puede atender por su seguro. Las decisiones de manejo que se instauren en cualquier institución son responsabilidad de dicha institución. Si los médicos tratantes de esa institucion desean contactarme, pueden hacerlo.")
print()
print()
print("Protocolo: AC dosis densas")
print("Doxorrubicina 60 mg/m2, d1")
print("Ciclofosfamida 600 mg/m2, d1")
print("Se repite cada 2 semanas.")
print("Peso: " + tPeso + "kg.")
print("Talla: " + tTalla + "cms.")
print("Superficie corporal (m2): ")
print(f_BSA(Talla, Peso))
print()
print()

print("Ondansetron ampollas 8 miligramos #2 (dos): administrar 16 miligramos intravenosos dia 1.")
print("Dexametasona ampollas 4 miligramos #5 (cinco): administrar 20 miligramos intravenosos dia 1.")
print("Fosaprepitant ampollas 150 miligramos #1 (uno): administrar 150 miligramos intravenosos dia 1.")

f_protocolo_droga_BSA("Doxorrubicina", "por 1 dosis / ciclo", "Intravenoso", "ampollas" , "miligramos", 60, 100, 1, 10, "Administrar intravenoso, dia 1.")
print()
f_protocolo_droga_BSA("Ciclofosfamida", "por 1 dosis / ciclo", "Intravenoso", "ampollas" , "miligramos", 600, 100, 1, 1000, "Administrar intravenoso, dia 1.")
print()
print("Pegfilgastrim ampollas 6 miligramos #1 (uno): administrar 6 miligramos subcutaneos, dia 2.")
print()
print()
print("Ondansetron tabletas 8 miligramos #60 (sesenta): tomar 8 miligramos via oral, cada 12 horas (para nauseas y vomito).")
print("Olanzapina tabletas 10 miligramos #5 (cinco): tomar 10 miligramos via oral, cada día por 5 dias, a partir del dia de la quimioterapia (para nauseas y vomito).")
print("Espirinolactona tabletas 25 miligramos #60 (sesenta): tomar 25 miligramos via oral, cada 12 horas (para evitar cardiotoxicidad).")

print("Fase 2: paclitaxel")
print("Lista de chequeo para inicio de quimioterapia Paclitaxel neoadyuvante o adyuvante. Se dicuten: la intención del tratamiento: sí - curativa; plan de tratamiento (número de ciclos, frecuencia): sí - paclitaxel por la vena cada senana x12; qué exámenes se requieren antes de cada ciclo de tratamiento: sí - hemograma antes de cada ciclo de quimioterapia (cada 21 días); cómo se valorará la respuesta al tratamiento: sí - sólo aplica en casos de quimioterapia neoadyuvante; efectos secundarios principales: sí - caída del cabello, disminución de las defensas, debilidad o fatiga, neuropatía periférica; efectos secundarios graves: sí - disminución de las defensas con fiebre; secuelas potenciales de tratamiento: sí - hormigueo en manos y pies (neuropatía periférica); precauciones especiales durante el tratamiento: sí - si hay fiebre hay que realizar examen de sangre inmediato para establecer si las defensas están bajas (en urgencias). \n Los efectos adversos relacionados con el tratamiento son: el paclitaxel puede causar: caída del cabello, debilidad, fatiga, dolores en músculos, dolores en las articulaciones (usualemente al día 3 después de la aplicación), retención de líquido con edema (hinchazón), cambios en las uñas, disminución de las defensas, neuropatía periférica (hormigueos en manos y pies), reacciones en la piel. Durante la infusión puede haber reacciones como dificultad para respirar, baja de presión, mareo, de fácil manejo si se informa el malestar en forma inmediata para interrumpir temporalmente la administración de la droga. Como secuela puede quedar el hormigueo y dolor en manos y pies, que no se resuelve en 5 de cada 100 pacientes tratados. La quimioterapia interfiere con la cicatrización, y se puede asociar a riesgo de sangrado, trombosis o coágulos. La quimioterapia puede causar infertilidad transitoria o permanente. Además, se debe evitar el embarazo durante la quimioterapia pues puede causar malformaciones en el feto. \n La mortalidad estimada por el tratamiento se estima en 1 por cada 100 pacientes tratados. \n La explicación de los efectos adversos asociados a la quimioterapia, y algunas estrategias de cómo mitigarlos es complementada por enfermería oncológica, con la enfermera oncóloga Mónica Ríos. Favor consultar por urgencias en caso de fiebre mayor de 38.5 grados o mayor de 38 grados por más de una hora; También consultar por urgencias si: convulsiones; vómito o diarrea con sangre; más de 10 episodios de vomito en menos de 24 horas; más de 10 episodios de diarrea en 24 horas; pérdida del conocimiento; caída de la presion con caída (por debajo de 90/60); letargo (no se despierta a pesar de que lo estimulen) o cambios en el comportamiento, visión doble; pérdida de la fuerza de alguna extremidad que le impida o dificulte moverla; edema o hinchazón en una pierna o brazo que sea muy notoria; dificultad para respirar; tos con sangre de reciente aparición; desaturación (saturación de oxigeno menor de 90%) en paciente sin historia de problemas cardiopulmonares; hinchazón y distensión abdominal que le impidan comer o respirar; dolor abdominal con vómito de materia fecal, dolor abdominal con paro de gases y fecales; dolor abdominal tan severo que impida que le toquen el abdomen; claramente amarillo (ictericia) de reciente aparicion. \n Se discuten las estrategias de contacto, y manejo de situaciones extraordinarias. \n En caso de consulta de urgencias, favor ir a las urgencias de la designada de común acuerdo con su médico tratante, con su historia clinica, los exámenes, y la lista de medicamentos que toma. Debe llevar tambien identificación y los documentos necesarios para que verifiquen que se puede atender por su seguro. \n En caso de consulta de urgencias, favor ir a las urgencias que le indique su asegurador. No olvide llevar su historia clínica, los exámenes, y la lista de medicamentos que toma. Debe llevar tambien identificación y los documentos necesarios para que verifiquen que se puede atender por su seguro. Las decisiones de manejo que se instauren en cualquier institución son responsabilidad de dicha institución. Si los médicos tratantes de esa institucion desean contactarme, pueden hacerlo.")
print()
print("Paclitaxel 80 mg/m2 días 1, 8 y 15. Ciclo de 21 días.")
DosisPaclitaxel = 80
DosisPaclitaxel = float(DosisPaclitaxel)
print("Superficie corporal: " + str(round(SuperficieCorporal,2)) + " metros cuadrados.")
print
print("Protocolo: Paclitaxel dosis 80 mg/m2 d1, 8 y 15. Cada 21 días.")
print
print
print("Ondansetrón ampollas 8 miligramos #4 (cuatro): administrar 16 miligramos intravenosos día 1; y 8 miligramos intravenosos, días 8, y 15.")
print("Dexametasona ampollas 4 miligramos #15 (quince): administrar 20 miligramos intravenosos día 1, 8 y 15.")
print("Hidroxicina ampollas 100 miligramos #3 (tres): administrar 50 miligramos intravenosos día 1, 8 y 15.")
print("Famotidina tabletas 10 miligramos #6 (seis): administrar 20 miligramos vía oral, día 1, 8 y 15.")
f_protocolo_droga_BSA("Paclitaxel", "por 3 dosis / ciclo", "Intravenoso", "ampollas" , "miligramos", round(DosisPaclitaxel,2), 100, 3, 30, "Administrar intravenoso en infusión de 60 minutos, día 1, 8 y 15.")
print("Se repite ciclo cada 21 días.")
print("Ondansetrón tabletas 8 miligramos No. 60 Sesenta: tomar 1 tableta vía oral cada 12 horas, por 30 días.")

Comentarios