def add_key_value_lables()

in tpipelinegeofinder/textractgeofinder/sample_patient_intake_form_parser.py [0:0]


def add_key_value_lables(t_document: t2.TDocument) -> t2.TDocument:
    t_doc = t2.TDocumentSchema().dump(t_document)
    doc_height = 1000
    doc_width = 1000
    geofinder_doc = TGeoFinder(t_doc, doc_height=doc_height, doc_width=doc_width)
    # patient information
    patient_information = geofinder_doc.find_phrase_on_page("patient information")[0]
    emergency_contact_1 = geofinder_doc.find_phrase_on_page("emergency contact 1:", min_textdistance=0.99)[0]
    top_left = t2.TPoint(y=patient_information.ymax, x=0)
    lower_right = t2.TPoint(y=emergency_contact_1.ymin, x=doc_width)
    form_fields = geofinder_doc.get_form_fields_in_area(
        area_selection=AreaSelection(top_left=top_left, lower_right=lower_right, page_number=1))
    set_hierarchy_kv(list_kv=form_fields, t_document=t_document, prefix='PATIENT', page_block=t_document.pages[0])

    #Emergency contact 1
    emergency_contact_2 = geofinder_doc.find_phrase_on_page("emergency contact 2:", min_textdistance=0.99)[0]
    logger.debug(f"emergency_contact_2: {emergency_contact_2}")
    top_left = t2.TPoint(y=emergency_contact_1.ymax, x=0)
    lower_right = t2.TPoint(y=emergency_contact_2.ymin, x=doc_width)
    form_fields = geofinder_doc.get_form_fields_in_area(
        area_selection=AreaSelection(top_left=top_left, lower_right=lower_right, page_number=1))
    set_hierarchy_kv(list_kv=form_fields,
                     t_document=t_document,
                     prefix='EMERGENCY_CONTACT_1',
                     page_block=t_document.pages[0])
    #Emergency contact 2
    fever_question = geofinder_doc.find_phrase_on_page("did you feel fever or feverish lately")[0]
    top_left = t2.TPoint(y=emergency_contact_2.ymax, x=0)
    lower_right = t2.TPoint(y=fever_question.ymin, x=doc_width)
    form_fields = geofinder_doc.get_form_fields_in_area(
        area_selection=AreaSelection(top_left=top_left, lower_right=lower_right, page_number=1))
    set_hierarchy_kv(list_kv=form_fields,
                     t_document=t_document,
                     prefix='EMERGENCY_CONTACT_2',
                     page_block=t_document.pages[0])

    # fever question
    top_left = t2.TPoint(y=fever_question.ymin - 50, x=0)
    lower_right = t2.TPoint(y=fever_question.ymax + 50, x=doc_width)
    sel_values: list[SelectionElement] = geofinder_doc.get_selection_values_in_area(area_selection=AreaSelection(
        top_left=top_left, lower_right=lower_right, page_number=1),
                                                                                    exclude_ids=[])
    add_sel_elements(t_document=t_document,
                     selection_values=sel_values,
                     key_base_name="FEVER",
                     page_block=t_document.pages[0])

    # shortness breath
    shortness_question = geofinder_doc.find_phrase_on_page("Are you having shortness of breath")[0]

    top_left = t2.TPoint(y=shortness_question.ymin - 50, x=0)
    lower_right = t2.TPoint(y=shortness_question.ymax + 50, x=doc_width)
    sel_values: list[SelectionElement] = geofinder_doc.get_selection_values_in_area(area_selection=AreaSelection(
        top_left=top_left, lower_right=lower_right, page_number=1),
                                                                                    exclude_ids=[])
    add_sel_elements(t_document=t_document,
                     selection_values=sel_values,
                     key_base_name="SHORTNESS",
                     page_block=t_document.pages[0])

    # cough breath
    question = geofinder_doc.find_phrase_on_page("Do you have a cough")[0]

    top_left = t2.TPoint(y=question.ymin - 50, x=0)
    lower_right = t2.TPoint(y=question.ymax + 50, x=doc_width)
    sel_values: list[SelectionElement] = geofinder_doc.get_selection_values_in_area(area_selection=AreaSelection(
        top_left=top_left, lower_right=lower_right, page_number=1),
                                                                                    exclude_ids=[])
    add_sel_elements(t_document=t_document,
                     selection_values=sel_values,
                     key_base_name="COUGH",
                     page_block=t_document.pages[0])
    # loss of taste
    question = geofinder_doc.find_phrase_on_page("Did you experience loss of taste or smell")[0]
    top_left = t2.TPoint(y=question.ymin - 50, x=0)
    lower_right = t2.TPoint(y=question.ymax + 50, x=doc_width)
    sel_values: list[SelectionElement] = geofinder_doc.get_selection_values_in_area(area_selection=AreaSelection(
        top_left=top_left, lower_right=lower_right, page_number=1),
                                                                                    exclude_ids=[])
    add_sel_elements(t_document=t_document,
                     selection_values=sel_values,
                     key_base_name="LOSS_OF_TASTE",
                     page_block=t_document.pages[0])
    # COVID Contact
    question = geofinder_doc.find_phrase_on_page("Where you in contact with any confirmed")[0]
    top_left = t2.TPoint(y=question.ymin - 50, x=0)
    lower_right = t2.TPoint(y=question.ymax + 50, x=doc_width)
    sel_values: list[SelectionElement] = geofinder_doc.get_selection_values_in_area(area_selection=AreaSelection(
        top_left=top_left, lower_right=lower_right, page_number=1),
                                                                                    exclude_ids=[])
    add_sel_elements(t_document=t_document,
                     selection_values=sel_values,
                     key_base_name="COVID_CONTACT",
                     page_block=t_document.pages[0])
    # travel
    question = geofinder_doc.find_phrase_on_page("Did you travel in the past 14 days")[0]
    top_left = t2.TPoint(y=question.ymin - 50, x=0)
    lower_right = t2.TPoint(y=question.ymax + 50, x=doc_width)
    sel_values: list[SelectionElement] = geofinder_doc.get_selection_values_in_area(area_selection=AreaSelection(
        top_left=top_left, lower_right=lower_right, page_number=1),
                                                                                    exclude_ids=[])
    add_sel_elements(t_document=t_document,
                     selection_values=sel_values,
                     key_base_name="TRAVEL",
                     page_block=t_document.pages[0])
    return t_document