diff --git a/src/services/estimation_service_v2.py b/src/services/estimation_service_v2.py index cc60523..f3801cb 100644 --- a/src/services/estimation_service_v2.py +++ b/src/services/estimation_service_v2.py @@ -96,6 +96,194 @@ HEIGHT_WEIGHT_TABLE = { (7, 4): (187, 386), } +UNINSURABLE_MEDICATIONS = [ + "abacavir", + "abarelix", + "abciximab", + "acamprosate", + "adalimumab", + "al-721", + "albuterol/ipratropium", + "alemtuzumab", + "alteplase", + "altretarnine", + "amantadine", + "ambrisentan", + "amiodarone", + "anakinra", + "anastrozole", + "apomorphine", + "aripripazole", + "asparaginase", + "atazanavir", + "auranofin", + "aurothiogiucose", + "aurothiomalate", + "azathioprine", + "bog", + "becaplermin", + "benztropine", + "bevacizumab", + "bicalutamide", + "biperiden hydrochloride", + "bleomycin", + "bromocriptine", + "busulfan", + "capecitabine", + "carbidopa", + "carbidopa/levodopa", + "carboplatin", + "chlorambucil", + "chlorotrianisene", + "chlorpromazine", + "cilostazol", + "cinacalcet", + "cisplatin", + "cladribine", + "clozapine", + "cyclophosphamide", + "cycloserine", + "cyclosporine", + "dalteparin", + "dantrolene", + "darunavir", + "delavirdine", + "didanosine", + "dipyridamole", + "dipyridamolekspirin", + "disuifram", + "donepezil", + "doxorubicin", + "dronabinol", + "efavirenz", + "emtricita bine", + "emtricitabine", + "emtricitabine/tenofovir", + "enfuvirtide", + "enoxaparin", + "entacapone", + "entacapone/levodopa/carbidopa", + "epoetin alfa", + "eptifibatide", + "ergoloid mesylates", + "estramustine", + "etanercept", + "ethinyl estradiol", + "ethopropazine", + "etoposide", + "exemestane", + "filgrastim", + "fecainide", + "fluorourcil", + "fluphenazine", + "flutamide", + "fondaparinux", + "fosamprenavir", + "foscarnet sodium", + "fulvestrant", + "galantamine", + "glatiramer", + "gold sodium thiomalate", + "goserelin", + "haloperidol", + "heparin", + "hydroxyurea", + "imatinib", + "indinavir", + "infliximab", + "insulin > 50 units per day", + "interferon", + "interferon alfa-2a", + "interferon beta 1a", + "interferon beta lb", + "ipratropiurn", + "isoniazid", + "lamivudine", + "lamivudine/zidovudine/abacavir", + "letrozole", + "leucovorin", + "leuprolide", + "levamisole hydrochloride", + "levodopa", + "lomustine", + "lopinavir", + "loxapine", + "maraviroc", + "medroxyprogesterone acetate", + "megestrol", + "melphalan", + "memantine", + "methadone", + "methotrexate", + "mitomycin", + "mitoxantrone", + "morphine", + "mycophenolate", + "naltrexone", + "natalizumab", + "nebulizer device", + "nelfinavir", + "neostigmine", + "nesiritide", + "nevirapine", + "nilutamide", + "nitroglycerine", + "nitroglycerine transdermal", + "olanzapine", + "ondansetron", + "oxygen", + "paliperidone", + "penicillamine", + "pergolide mesylate", + "perphenazine", + "pimozide", + "pramipexole", + "procainamide", + "prochlorperazine", + "procyclidine", + "pyridostigmine", + "quetiapine", + "quinidine", + "rasagiline", + "riluzole", + "risperidone", + "ritonavir", + "rituximab", + "rivastig mine", + "ropinirole", + "rotigotine", + "saquinavir", + "selegiline", + "sotalol", + "stavudine", + "streptozocin", + "tacrine", + "tacrolimus", + "tamoxifen", + "tenofovir", + "testolactone", + "thioridazine", + "thiotepa", + "thiothixene", + "ticlopidine", + "tiotropium", + "tipranavir", + "tirofiban", + "tolcapone", + "toremifene", + "trastuzumab", + "treprosinil", + "trifluoperazine", + "trihexyphenidyl", + "triptorelin", + "valganiciclovir", + "vincristine", + "warfarin", + "zalcitabine", + "zidovudine", + "ziprasidone", + "zoledronic acid" +] class EstimationService: def __init__(self): @@ -134,6 +322,9 @@ class EstimationService: return False, "" def check_dtq(self, phq: PHQ) -> tuple[bool, str]: + for medication in phq.medications: + if medication.name.lower() in UNINSURABLE_MEDICATIONS: + return True, f"Uninsurable medication: {medication.name}" uninsurable_conditions_response = fetch_conditions() uninsurable_conditions = [condition["key"] for condition in uninsurable_conditions_response]