ABC 02 - Gemcitabina + Cisplatino en vía biliar



# -*- coding: utf-8 -*-
print "Criterios de inclusion para Cisplatino + Gemcitabina en cancer de vias biliares"
print
print "18 years of age or older and had received a histopathological or cytologic diagnosis of nonresectable, recurrent, or metastatic biliary tract carcinoma (intrahepatic or extrahepatic cholangiocarcinoma, gallbladder cancer, or ampullary carcinoma); an Eastern Cooperative Oncology Group (ECOG) performance status of 0, 1, or 2 (on a scale ranging from 0 to 5, with lower scores indicating a higher level of functioning); and an estimated life expectancy of more than 3 months. Other eligibility criteria were adequate hematologic and biochemical function, in particular a total bilirubin level of 1.5 times the upper limit of the normal range or less, liver-enzyme levels that were five times the upper limit of the normal range or less, renal function with levels of serum urea and serum creatinine that were less than 1.5 times the upper limit of the normal range, and a calculated glomerular filtration rate of 45 ml per minute or higher"
print
print

# -*- coding: utf-8 -*-
# num2pal version 1.0
#
# Números a palabras en Español.
# Autor:    Felipe Barousse    fbarouse@piensa.com
#
# De mis primeros programas en Python. Pero aun funciona
#
# El algoritmo es muy simple:
# solo recibe un número entero y lo parte en grupos de tres, de ahi
# decide si son unidades, decenas, miles, etc.
#
# Ejemplo:    num2pal.main('45635')
# Regresará la cadena: 'Cuarenta y seis mil seis cientos treinta y cinco'
#
# Externamente habrá que agregar al resultado las unidades (Pesos, Dólares,
#   Litros, Kilos, etc. etc.)  si es que las hay.
#
# Si quieres que tambien traduzca a palabras, por ejemplo los centavos
# -o la parte fraccional- de una cantidad, solo llama a esta rutina
# dos veces, una para la parte entera y otra para la parte fraccional
#
# Previamente debiste haber separado lo que estan ANTES y DESPUES del
# punto decimal para tal efecto
#
# Copyright 2000-2001       Felipe Barousse Boué
#                           Bufete Consultor de Mexico - Piensa Technologies
#                           Ap. Cap. Polanco # 336
#                           Mexico D.F., 11550,  Mexico
#                           http://www.piensa.com/
#                           info@piensa.com
# LICENCIA DE USO:
# Este programa puede ser usado libremente bajo el esquema de la
# licencia LGPL
#
# En otras palabras, solo deberás darme el credito correspondiente en tu
# documentación por el uso de esta rutina, aun cuando la modifiques,
# deberas mencionar que fué basado tu trabajo en ésta idea.
#
# NO HAY GARANTIA ALGUNA SOBRE ESTA RUTINA NI POR EL RESULTADO DEL USO
# QUE SE LE DE
#
# Este programa es usado en sistemas hecho en Python para aplicaciones
# de negocios,
# para imprimir facturas y recibos oficiales que requiren las cantidades en
# letra.
#
# Gracias!                       Felipe Barousse
#
# Creacion inicial:             5 de Febrero de 2000
# Ultima modificación:          26 Febrero 2001
#
#
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()
print("Protocolo: Cisplatino más gemcitabina")
print("Cisplatino 25 mg/m2, d1, d8")
print("Gemcitabiina 1000 mg/m2, d1, d8")
print("Se repite cada 21 días.")
print("Peso: " + str(Peso) + "kg.")
print("Talla: " + str(Talla) + "cms.")
print("Superficie corporal (m2): ")
print(f_BSA(Talla, Peso))
print()
print()

print("Ondansetron ampollas 8 miligramos #4 (cuatro): administrar 16 miligramos intravenosos dia 1 y día 8.")
print("Dexametasona ampollas 4 miligramos #10 (diez): administrar 20 miligramos intravenosos dia 1 y día 8.")
print("Fosaprepitant ampollas 150 miligramos #2 (dos): administrar 150 miligramos intravenosos dia 1 y día 8")

f_protocolo_droga_BSA("Cisplatino", "por 2 dosis / ciclo", "Intravenoso", "ampollas" , "miligramos", 25, 100, 2, 50, "Administrar intravenoso, infusión de 1 hora, dia 1 y día 8.")
print()
f_protocolo_droga_BSA("Gemcitabina", "por 2 dosis / ciclo", "Intravenoso", "ampollas" , "miligramos", 1000, 100, 2, 1000, "Administrar intravenoso, dia 1 y día 8.")
print()
print("Ondansetron tabletas 8 miligramos #60 (sesenta): tomar 8 miligramos via oral, cada 12 horas (para nauseas y vomito).")

Comentarios