import streamlit as st import pandas as pd import numpy as np from math import ceil from collections import Counter from string import punctuation #nlp = en_core_web_lg.load() st.set_page_config(layout='wide') st.title('Clinical Note Summarization') st.sidebar.markdown('Using transformer model') ## Loading in dataset #df = pd.read_csv('mtsamples_small.csv',index_col=0) df = pd.read_csv('shpi_w_rouge21Nov.csv') df['HADM_ID'] = df['HADM_ID'].astype(str).apply(lambda x: x.replace('.0','')) #Renaming column df.rename(columns={'SUBJECT_ID':'Patient_ID', 'HADM_ID':'Admission_ID', 'hpi_input_text':'Original_Text', 'hpi_reference_summary':'Reference_text'}, inplace = True) #data.rename(columns={'gdp':'log(gdp)'}, inplace=True) #Filter selection st.sidebar.header("Search for Patient:") patientid = df['Patient_ID'] patient = st.sidebar.selectbox('Select Patient ID:', patientid) admissionid = df['Admission_ID'].loc[df['Patient_ID'] == patient] HospitalAdmission = st.sidebar.selectbox('', admissionid) # List of Model available model = st.sidebar.selectbox('Select Model', ('BertSummarizer','BertGPT2','t5seq2eq','t5','gensim','pysummarizer')) col3,col4 = st.columns(2) patientid = col3.write(f"Patient ID: {patient} ") admissionid =col4.write(f"Admission ID: {HospitalAdmission} ") #text = st.text_area('Input Clinical Note here') # Query out relevant Clinical notes original_text = df.query( "Patient_ID == @patient & Admission_ID == @HospitalAdmission" ) original_text2 = original_text['Original_Text'].values runtext =st.text_area('Input Clinical Note here:', str(original_text2), height=300) reference_text = original_text['Reference_text'].values def run_model(input_text): if model == "BertSummarizer": output = original_text['BertSummarizer'].values st.write('Summary') st.success(output[0]) elif model == "BertGPT2": output = original_text['BertGPT2'].values st.write('Summary') st.success(output[0]) elif model == "t5seq2eq": output = original_text['t5seq2eq'].values st.write('Summary') st.success(output) elif model == "t5": output = original_text['t5'].values st.write('Summary') st.success(output) elif model == "gensim": output = original_text['gensim'].values st.write('Summary') st.success(output) elif model == "pysummarizer": output = original_text['pysummarizer'].values st.write('Summary') st.success(output) if st.button('Submit'): run_model(runtext) sentences=runtext.split('.') def visualize(title, sentence_list, best_sentences): text = '' #display(HTML(f'

Summary - {title}

')) for sentence in sentence_list: if sentence in best_sentences: #text += ' ' + str(sentence).replace(sentence, f"{sentence}") text += ' ' + str(sentence).replace(sentence, f"{sentence}") else: text += ' ' + sentence display(HTML(f""" {text} """)) output = '' best_sentences = [] for sentence in output: #print(sentence) best_sentences.append(str(sentence)) return text t = "
Hello there my name yo is Fanilo Name
" st.write("
Hello there my name yo is Fanilo Name
") st.text_area('Reference text', str(reference_text))