| import streamlit as st |
| import pandas as pd |
| import os |
| from glob import glob |
|
|
| |
| def get_document_ids(): |
| |
| document_ids = [file.split('_')[0] for file in os.listdir('abc') if file.endswith('.png')] |
| return list(set(document_ids)) |
|
|
| |
| def load_image(image_path, document_id, page_number): |
| im_path = f"{image_path}{document_id}-{page_number-1}.png" |
| if os.path.exists(im_path): |
| return im_path |
| else: |
| return None |
|
|
| |
| def load_dataframe(auto_csv_path, document_id, page_number, cols): |
| csv_path = glob(f'{auto_csv_path}*{document_id}*auto.csv') |
| print(csv_path) |
| if len(csv_path)>0: |
| auto_df = pd.read_csv(csv_path[0]) |
| auto_df_page = auto_df[auto_df['Page#']==page_number][cols] |
| return auto_df_page |
| else: |
| return None |
| |
| def path_setting(inbound_df_path): |
| auto_csv_path = 'PhaseData/Batch1/NLP_batch/' |
| image_path = 'PhaseData/Data/output/images/' |
| inbound_df = pd.read_csv(inbound_df_path) |
| pif_list = list(inbound_df.pif_key.values) |
| return pif_list, image_path, auto_csv_path |
|
|
| def main(): |
| inbound_df_path = 'inbound_issues_tempus_2_q2.csv' |
| display_cols = ['Biomarker Name Source', 'Biomarker Test Type', 'NLP Result','NLP Value', 'NLP Variant', |
| 'Biomarker Test Result Value Numeric 1', 'Biomarker Test Result Value Unit 1', |
| 'Biomarker Test Result Value Numeric 2', 'Biomarker Test Result Value Unit 2', |
| 'Biomarker Test Threshold Value Numeric 1', 'Biomarker Test Threshold Value Unit1', |
| 'Biomarker Test Threshold Value Numeric 2', 'Biomarker Test Threshold Value Unit2'] |
| pif_list, image_path, auto_csv_path = path_setting(inbound_df_path) |
| |
| st.set_page_config(layout="wide") |
|
|
| |
| col1_width = st.sidebar.slider("Width of First Column", 0.1, 10.0, 1.0, 0.1) |
| col2_width = st.sidebar.slider("Width of Second Column", 0.1, 10.0, 6.5, 0.1) |
| col3_width = st.sidebar.slider("Width of Third Column", 0.1, 10.0, 5.0, 0.1) |
|
|
| |
| col1, col2, col3 = st.columns([col1_width, col2_width, col3_width]) |
|
|
| |
| with col1: |
| st.write("### Document Selection") |
| document_id = st.selectbox("Select Document ID", options=pif_list) |
| pages = [int(i.split('-')[-1].split('.')[0]) for i in glob(f"{image_path}{document_id}*.png")] |
| page_number = st.number_input("Page Number", min_value=1, max_value=len(pages), step=1, value=1) |
|
|
| |
| with col2: |
| st.write("### Display Image") |
| im_path = load_image(image_path, document_id, page_number) |
| if im_path: |
| st.image(im_path) |
| else: |
| st.write("Image not found") |
|
|
| |
| with col3: |
| st.write("### Display DataFrame") |
| df = load_dataframe(auto_csv_path, document_id, page_number, display_cols) |
| if df is not None: |
| columns_to_display = st.multiselect("Select Columns to Display", df.columns) |
| if len(columns_to_display) > 0: |
| st.write(df[columns_to_display]) |
| else: |
| st.write("No columns selected") |
| else: |
| st.write("DataFrame not found") |
|
|
| if __name__ == "__main__": |
| main() |