def cancer_table(conn, cursor, file_number):
    table_cancer = "previous_cancer_history"
    type_of_cancer_list = []
    year_diagnosis_list = []
    treat_all = []
    type_all = []
    duration_all = []
    data_return = []
    add_cancer = True
    while add_cancer:
        type_of_cancer = input("Type of Cancer: ")
        type_of_cancer_list.append(type_of_cancer)
        year_diagnosis = input("Year of diagnosis: ")
        year_diagnosis_list.append(year_diagnosis)
        col = ("File_number, Type_Cancer, Year_diagnosis")
        data = file_number, type_of_cancer, year_diagnosis
        sql.insert(conn, cursor, table_cancer, col, data)
        print("Please enter the type of treatment used: ")
        treat_list = []
        type_list = []
        duration_list = []
        treated, type, duration = ("NA", ) * 3
        for treatment in PatientInfo.previous_cancer_treatment:
            treat = ask_y_n(treatment)
            if treat:
                treat_list.append(treatment)
                type_treat = input("Type of " + treatment)
                type_list.append(type_treat)
                duration_treat = input("Duration of " + treatment)
                duration_list.append(duration_treat)
                data = treatment, type_treat, duration_treat
                columns = [
                    treatment, ("type_" + treatment), ("duration_" + treatment)
                ]
                treated = "; ".join(treat_list)
                type = "; ".join(type_list)
                duration = "; ".join(duration_list)
                sql.update_multiple(conn, cursor, table_cancer, columns,
                                    file_number, data)
            elif not treat:
                index_no = "No " + treatment
                type_treat, duration_treat = ("NA", ) * 2
                data = index_no, type_treat, duration_treat
                columns = [
                    treatment, ("type_" + treatment), ("duration_" + treatment)
                ]
                sql.update_multiple(conn, cursor, table_cancer, columns,
                                    file_number, data)
        treat_all.append(treated)
        type_all.append(type)
        duration_all.append(duration)
        add_cancer = ask_y_n("Additional cancer history")
    all_data = [
        type_of_cancer_list, year_diagnosis_list, treat_all, type_all,
        duration_all
    ]
    for index in all_data:
        data_joint = "|".join(index)
        data_return.append(data_joint)
    return tuple(data_return)
Esempio n. 2
0
def cancer_table(conn, cursor, file_number):
    table_cancer = "Previous_Cancer_History"
    type_of_cancer_list = []
    year_diagnosis_list = []
    treat_all = []
    type_all = []
    duration_all = []
    data_return = []
    add_cancer = True
    while add_cancer:
        type_of_cancer = input("Type of Cancer: ")
        type_of_cancer_list.append(type_of_cancer)
        year_diagnosis = input("Year of diagnosis: ")
        year_diagnosis_list.append(year_diagnosis)
        col = ("File_number, Type_Cancer, Year_diagnosis")
        data = file_number, type_of_cancer, year_diagnosis
        insert(conn, cursor, table_cancer, col, data)
        print("Please enter the type of treatment used: ")
        treatment = [
            "Surgery", "Radiation", "Chemotherapy", "Hormone", "Alternative",
            "HomeRemedy"
        ]
        treat_list = []
        type_list = []
        duration_list = []
        treated, type, duration = ("NA", ) * 3
        for index in treatment:
            treat = ask_y_n(index)
            if treat:
                treat_list.append(index)
                type_treat = input("Type of " + index)
                type_list.append(type_treat)
                duration_treat = input("Duration of " + index)
                duration_list.append(duration_treat)
                data = index, type_treat, duration_treat
                columns = [index, ("Type_" + index), ("Duration_" + index)]
                treated = "; ".join(treat_list)
                type = "; ".join(type_list)
                duration = "; ".join(duration_list)
                update_multiple(conn, cursor, table_cancer, columns,
                                file_number, data)
            elif not treat:
                index_no = "No " + index
                type_treat, duration_treat = ("NA", ) * 2
                data = index_no, type_treat, duration_treat
                columns = [index, ("Type_" + index), ("Duration_" + index)]
                update_multiple(conn, cursor, table_cancer, columns,
                                file_number, data)
        treat_all.append(treated)
        type_all.append(type)
        duration_all.append(duration)
        add_cancer = ask_y_n("Additional cancer history")
    all_data = [
        type_of_cancer_list, year_diagnosis_list, treat_all, type_all,
        duration_all
    ]
    for index in all_data:
        data_joint = "|".join(index)
        data_return.append(data_joint)
    return tuple(data_return)
Esempio n. 3
0
def family_cancer_table(conn, cursor, file_number):
    add_family = True
    type_cancer_list, relation_degree_list, type_relation_list, age_detect_list = [], [], [], []
    all_data = []
    while add_family:
        type_of_cancer = input("Type of Cancer: ")
        type_cancer_list.append(type_of_cancer)
        relation_to_patient = ask_option(
            "Relation to patient",
            ["Immediate Family", "Maternal Family", "Paternal Family"])
        relation_degree_list.append(relation_to_patient)
        type_relation = input("Specific Relationship:")
        type_relation_list.append(type_relation)
        age_at_detection_yrs = input('Age at detection (yrs) :')
        age_detect_list.append(age_at_detection_yrs)
        family_history = file_number, type_of_cancer, relation_to_patient, type_relation, age_at_detection_yrs
        family_history_list = "; ".join([
            type_of_cancer, relation_to_patient, type_relation,
            age_at_detection_yrs
        ])
        all_data.append(family_history_list)
        columns = 'File_number, Type_Cancer, Relation_to_Patient, Type_Relation, Age_at_detection_yrs'
        table = "Family_Cancer_History"
        insert(conn, cursor, table, columns, family_history)
        add_family = ask_y_n("Add more family cancer history? ")
    all_data_flat = "|".join(all_data)
    return (all_data_flat)
Esempio n. 4
0
def physical_activity_table(conn, cursor, file_number):
    table_act = "Physical_Activity"
    columns = ", ".join(pccm_names.names_info("phys_act_table"))
    add_act = True
    type_phys_list, freq_phys_list = [], []
    while add_act:
        type_phys_act = input("Type of physical activity: ")
        type_phys_list.append(type_phys_act)
        freq_phys_act = input("Frequency of physical activity: ")
        freq_phys_list.append(freq_phys_act)
        data = file_number, type_phys_act, freq_phys_act
        insert(conn, cursor, table_act, columns, data)
        add_act = ask_y_n("Add further activities?")
    type_phys = '; '.join(type_phys_list)
    freq_phys = '; '.join(freq_phys_list)
    return (type_phys, freq_phys)
Esempio n. 5
0
def med_history_table(conn, cursor, file_number):
    add_history = True
    diagnosis_date_list, treatment_list, condition_list = [], [], []
    while add_history:
        condition = input("Condition : ")
        condition_list.append(condition)
        diagnosis_date = input("Date of diagnosis: ")
        diagnosis_date_list.append(diagnosis_date)
        treatment = input("Treatment: ")
        treatment_list.append(treatment)
        history = file_number, condition, diagnosis_date, treatment
        table_med = "General_Medical_History"
        columns = "File_number, Condition, Diagnosis_date, Treatment"
        insert(conn, cursor, table_med, columns, history)
        add_history = ask_y_n('Add more history')
    condition_hist = '; '.join(condition_list)
    treatment_hist = '; '.join(treatment_list)
    diagnosis_date_hist = "; ".join(diagnosis_date_list)
    return (condition_hist, diagnosis_date_hist, treatment_hist)
def feed_duration(conn, cursor, file_number, children_number):
    table = "breast_feeding"
    child_list, feeding_duration_list, feeding_details_list = [], [], []
    child_number = int(children_number)
    for index in range(0, child_number):
        kid = str(index + 1)
        kid_add = "Child " + kid
        child_list.append(kid_add)
        feeding_duration = input("Breast feeding duration for " + kid_add +
                                 " (months) ?")
        feeding_duration_list.append(feeding_duration)
        feeding_details = ask_option("Breast feeding for child " + kid,
                                     PatientInfo.breast_feeding)
        feeding_details_list.append(feeding_details)
        columns = 'file_number, child_number, feeding_duration, breast_usage_feeding'
        data = file_number, kid, feeding_duration, feeding_details
        sql.insert(conn, cursor, table, columns, data)
    data_list = [child_list, feeding_duration_list, feeding_details_list]
    data_return = join_lists(data_list, "; ")
    return (data_return)
Esempio n. 7
0
def nut_supp_table(conn, cursor, file_number):
    type_nut_list, quant_nut_list, duration_nut_list = [], [], []
    add_supp = True
    table_nut = "Nutritional_Supplements"
    columns = ", ".join(pccm_names.names_info("nut_sup"))
    while add_supp:
        nut_supplements_type = input("Type of nutritional supplements taken: ")
        type_nut_list.append(nut_supplements_type)
        nut_supplements_quant = input(
            "Quantity of nutritional supplements taken per day: ")
        quant_nut_list.append(nut_supplements_quant)
        nut_supplements_duration = input(
            "Duration of nutritional supplements use: ")
        duration_nut_list.append(nut_supplements_duration)
        new_data = file_number, nut_supplements_type, nut_supplements_quant, nut_supplements_duration
        insert(conn, cursor, table_nut, columns, new_data)
        add_supp = ask_y_n('Add more nutritional supplements?')
    type_nut = '; '.join(type_nut_list)
    quant_nut = '; '.join(quant_nut_list)
    duration_nut = "; ".join(duration_nut_list)
    return (type_nut, quant_nut, duration_nut)
Esempio n. 8
0
def feed_duration(conn, cursor, file_number, children_number):
    table = "Breast_Feeding"
    child_list, feeding_duration_list, feeding_details_list = [], [], []
    child_number = int(children_number)
    for index in range(0, child_number):
        kid = str(index + 1)
        kid_add = "Child " + kid
        child_list.append(kid_add)
        feeding_duration = input("Breast feeding duration for " + kid_add +
                                 " (months) ?")
        feeding_duration_list.append(feeding_duration)
        category = "Breast feeding for child " + kid
        options = ["Right Breast", "Left Breast", "Both Breasts", "Other"]
        feeding_details = ask_option(category, options)
        feeding_details_list.append(feeding_details)
        columns = 'File_number, Child_number, Feeding_duration, Breast_usage_feeding'
        data = file_number, kid, feeding_duration, feeding_details
        insert(conn, cursor, table, columns, data)
    data_list = [child_list, feeding_duration_list, feeding_details_list]
    data_return = join_lists(data_list, "; ")
    return (data_return)
Esempio n. 9
0
#read from excel with same col names and distribution as in table

file_to_read = "D:/Documents/IISER/Prashanti_docs/Breast_Cancer_FFPE_blocks_database_Biopsy_dk08062018.xlsx"
data = pd.read_excel(file_to_read, header=1, dtype='object', usecols='A:AB')
update_by = "dk from ruhi/shaheen data"
last_update = datetime.now().strftime("%Y-%b-%d %H:%M")
module_names = ["biopsy_report_info", "tumour_biopsy_data", "lymphnode_biopsy"]
col_list = ["File_number"]
for index in module_names:
    col_list = col_list + pccm_names.names_biopsy(index)
columns = ", ".join(col_list)
for index in range(0, len(data)):
    data_list = list(data.loc[index])
    data_list.append(update_by)
    data_list.append(last_update)
    sql.insert(conn_all, cursor_all, table, columns, data_list)

#for surgery_report
table = "Surgery_Block_Report_Data"
if sql.table_check(cursor_all, table) == 0:
    cursor_all.execute('CREATE TABLE {tn}({nf})'.format(tn=table,
                                                        nf=file_number))
    module_names = [
        "surgery_block_information_1", "surgery_block_information_2",
        "surgery_block_information_3", "path_stage"
    ]
    for index in module_names:
        col_name = pccm_names.names_surgery(index)
        sql.add_columns(cursor_all, table, col_name)

#add data
Esempio n. 10
0
def multiple_mass(table, conn, cursor, file_number):
    import helper_function.ask_y_n_statement as ask
    import sql.add_update_sql as add_update_sql
    import helper_function.pccm_names as pccm_names

    mass_number = int(input("Number of masses detected: "))
    if table == "SonnoMammography_Multiple_Mass":
        sonno_quad, sonno_location, sonno_clock, sonno_shape,  sonno_depth, sonno_distance, sonno_pect,sonno_orientation,\
        sonno_margin, sonno_echo, sonno_posterior = [list([]) for _ in range(11)]
    if table == "Mammography_Multiple_Mass":
        location, quad, pect, depth, distance, shape, margin, density = [
            list([]) for _ in range(8)
        ]
    if table == "MRI_Multiple_Mass":
        location, quad, shape, margin, internal = [list([]) for _ in range(5)]
    for index in range(0, mass_number):
        check = False
        while not check:
            mass_id = index + 1
            if table == "Mammography_Multiple_Mass":
                mass_location = ask_y_n_statement.ask_option(
                    "Location of mass " + str(mass_id),
                    ["Right Breast", "Left Breast"])
                location_quad = lesion_location(mass_location)
                mass_depth = ask_y_n_statement.ask_option(
                    "Depth of " + str(mass_id),
                    ["Anterior", "Middle", "Posterior", "Other"])
                mass_dist = ask_y_n_statement.ask_option(
                    "Distance from nipple", ["<0.5 cm", ">0.5 cm", "Other"])
                pect_check = ask_y_n_statement.ask_y_n(
                    "Is distance from Pectoralis Major described for " +
                    str(mass_id))
                if pect_check:
                    mass_pect = input("Distance from Pectoralis Major (cm): ")
                else:
                    mass_pect = "Distance from Pectoralis Major not described"
                depth.append(mass_depth)
                location.append(mass_location)
                distance.append(mass_dist)
                quad.append(location_quad)
                pect.append(mass_pect)
                mammo_mass_shape = ask_y_n_statement.ask_option(
                    "Shape of mass", ["Oval", "Round", "Irregular", "Other"])
                shape.append(mammo_mass_shape)
                mammo_mass_margin = ask_y_n_statement.ask_option(
                    "Margins of mass", [
                        "Circumscribed", "Obscured", "Microlobulated",
                        "Indistinct", "Spiculated", "Other"
                    ])
                margin.append(mammo_mass_margin)
                mammo_mass_density = ask_y_n_statement.ask_option(
                    "Density of mass", [
                        "High density", "Equal density", "Low density",
                        "Fat-containing", "Other"
                    ])
                density.append(mammo_mass_density)
                mass_id = "Mass " + str(index + 1)
                data_list = [
                    file_number, mass_id, mass_location, location_quad,
                    mass_depth, mass_dist, mass_pect, mammo_mass_shape,
                    mammo_mass_margin, mammo_mass_density
                ]
            elif table == "MRI_Multiple_Mass":
                mass_location = ask_y_n_statement.ask_option(
                    "Location of mass " + str(mass_id),
                    ["Right Breast", "Left Breast"])
                location.append(mass_location)
                location_quad = lesion_location(mass_location)
                quad.append(location_quad)
                mri_mass_shape = ask_y_n_statement.ask_option(
                    "Shape of mass", ["Oval", "Round", "Irregular", "Other"])
                shape.append(mri_mass_shape)
                mri_mass_margin = ask_y_n_statement.ask_option(
                    "Margins of mass",
                    ["Circumscribed", "Not circumscribed", "Other"])
                if mri_mass_margin == "Not circumscribed":
                    mri_mass_notc = ask_y_n_statement.ask_option(
                        "Not circumscribed margins of mass",
                        ["Irregular", "Spiculated"])
                    mri_mass_margin = mri_mass_margin + ": " + mri_mass_notc

                margin.append(mri_mass_margin)
                mri_mass_internal = ask_y_n_statement.ask_option(
                    "Internal enhancement characteristics", [
                        "Homogeneous", "Heterogeneous", "Rim enhancement",
                        "Dark internal septations"
                    ])
                internal.append(mri_mass_internal)
                mass_id = "Mass " + str(index + 1)
                data_list = [
                    file_number, mass_id, mass_location, location_quad,
                    mri_mass_shape, mri_mass_margin, mri_mass_internal
                ]
            elif table == "SonnoMammography_Multiple_Mass":
                mass_location = ask_y_n_statement.ask_option(
                    "Location of mass " + str(mass_id),
                    ["Right Breast", "Left Breast"])
                sonno_location.append(mass_location)
                location_quad = lesion_location(mass_location)
                sonno_quad.append(location_quad)
                location_clock = input("What is the clock position of mass " +
                                       str(mass_id) + "?")
                location_clock = location_clock + " o'clock"
                sonno_clock.append(location_clock)
                mass_shape = ask_y_n_statement.ask_option(
                    "Shape of mass " + str(mass_id),
                    ["Oval", "Round", "Irregular", "Other"])
                mass_depth = input("Depth of mass " + str(mass_id) + "(cm): ")
                mass_dist = ask_y_n_statement.ask_option(
                    "Distance from nipple", ["<0.5 cm", ">0.5 cm", "Other"])
                pect_check = ask_y_n_statement.ask_y_n(
                    "Is distance from Pectoralis Major described for mass " +
                    str(mass_id))
                if pect_check:
                    mass_pect = input("Distance from Pectoralis Major (cm): ")
                else:
                    mass_pect = "NA"
                sonno_depth.append(mass_depth)
                sonno_distance.append(mass_dist)
                sonno_pect.append(mass_pect)
                sonno_shape.append(mass_shape)
                mass_orientation = ask_y_n_statement.ask_option(
                    "Orientation of mass " + str(mass_id),
                    ["Parallel", "Not parallel"])
                sonno_orientation.append(mass_orientation)
                mass_margin = ask_y_n_statement.ask_option(
                    "Margin of mass " + str(mass_id),
                    ["Circumscribed", "Not circumscribed"])
                if mass_margin == "Not circumscribed":
                    mass_margin = ask_y_n_statement.ask_option(
                        "Is Not circumscribed margin", [
                            "Indistinct", "Angular", "Microlobulated",
                            "Spiculated"
                        ])
                sonno_margin.append(mass_margin)
                mass_echo = ask_y_n_statement.ask_option(
                    "Echo pattern of mass " + str(mass_id), [
                        "Anechoic", "Hyperechoic", "Complex cystic "
                        "and solid", "Hypoechoic", "Isoechoic",
                        "Heterogeneous", "Other"
                    ])
                sonno_echo.append(mass_echo)
                mass_posterior = ask_y_n_statement.ask_option(
                    "Posterior Acoustic features", [
                        "No posterior features", "Enhancement", "Shadowing",
                        "Combined pattern", "Other"
                    ])
                sonno_posterior.append(mass_posterior)
                mass_id = "Mass " + str(index + 1)
                data_list = [
                    file_number, mass_id, mass_location, location_quad,
                    location_clock, mass_depth, mass_location, mass_dist,
                    mass_shape, mass_orientation, mass_margin, mass_echo,
                    mass_posterior
                ]
            col_list = pccm_names.names_radio(table)
            check = add_update_sql.review_input(file_number, col_list,
                                                data_list)
        columns = ", ".join(col_list)
        add_update_sql.insert(conn, cursor, table, columns, tuple(data_list))
    if table == "SonnoMammography_Multiple_Mass":
        all_data = [[str(mass_number)], sonno_quad, sonno_location,
                    sonno_clock, sonno_depth, sonno_distance, sonno_pect,
                    sonno_shape, sonno_orientation, sonno_margin, sonno_echo,
                    sonno_posterior]
    elif table == "Mammography_Multiple_Mass":
        all_data = [[str(mass_number)], location, quad, depth, distance, pect,
                    shape, margin, density]
    elif table == "MRI_Multiple_Mass":
        all_data = [[str(mass_number)], location, quad, shape, margin,
                    internal]
    else:
        all_data = []
    data_return = ask_y_n_statement.join_lists(all_data, "; ")
    return tuple(data_return)
Esempio n. 11
0
 def write_file(self, new_data):
     for i in range(0, new_data.shape[0]):
         data_add = list(new_data.loc[i, :]) + [self.file_name]
         sql.insert(self.conn, self.cursor, self.table, self.columns,
                    data_add)
Esempio n. 12
0
#read from excel with same col names and distribution as in table

file_to_read = "D:/Documents/IISER/Prashanti_docs/Breast_Cancer_FFPE_blocks_database_Biopsy_dk08062018.xlsx"
data = pd.read_excel(file_to_read, header=1, dtype='object', usecols='A:AB')
update_by = "dk from ruhi/shaheen data"
module_names = ["biopsy_report_info", "tumour_biopsy_data", "lymphnode_biopsy"]
col_list = ["File_number"]
for index in module_names:
    col_list = col_list + pccm_names.names_biopsy(index)
columns = ", ".join(col_list)
for index in range(0, len(data)):
    data_list = list(data.loc[index])
    data_list.append(update_by)
    data_list.append(sql.last_update())
    sql.insert(conn_all, cursor_all, table, columns, data_list)

#for surgery_report
table = "Surgery_Block_Report_Data"
if sql.table_check(cursor_all, table) == 0:
    cursor_all.execute('CREATE TABLE {tn}({nf})'.format(tn=table,
                                                        nf=file_number))
    module_names = [
        "surgery_block_information_1", "surgery_block_information_2",
        "surgery_block_information_3", "path_stage"
    ]
    for index in module_names:
        col_name = pccm_names.names_surgery(index)
        sql.add_columns(cursor_all, table, col_name)

#add data