File size: 1,463 Bytes
c953483
11ddcf8
 
914d63a
4fdc44f
11ddcf8
c2b12db
c953483
11ddcf8
 
c953483
11ddcf8
 
c953483
 
11ddcf8
 
 
c953483
11ddcf8
 
 
c953483
11ddcf8
 
c953483
11ddcf8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import streamlit as st
from PyPDF2 import PdfReader
from transformers import pipeline
from PIL import Image

# Load Hugging Face model
model = pipeline("text-generation", model="Ketak-ZoomRx/Drug_Prompt_Ollama_67k",torch_dtype="auto", trust_remote_code=True, use_fast=True, device_map={"": "cuda:0"},)

def extract_text_from_pdf(pdf_file):
    reader = PdfReader(pdf_file)
    text = ""
    for page in reader.pages:
        text += page.extract_text()
    return text

def get_lab_report_interpretation(text):
    result = model(text)
    return result[0]['label']

def process_image(image_file):
    img = Image.open(image_file)
    return img

# Streamlit UI
st.title("Medical Lab Report Analyzer")

# Upload image and PDF
uploaded_pdf = st.file_uploader("Upload your PDF Medical Lab Report", type="pdf")
uploaded_image = st.file_uploader("Upload Image of Medical Report", type="jpg png jpeg")

if uploaded_pdf is not None:
    st.subheader("Extracted Text from PDF:")
    pdf_text = extract_text_from_pdf(uploaded_pdf)
    st.write(pdf_text)
    
    st.subheader("Lab Report Interpretation:")
    interpretation = get_lab_report_interpretation(pdf_text)
    st.write(interpretation)

elif uploaded_image is not None:
    st.image(process_image(uploaded_image), caption="Uploaded Image", use_column_width=True)
    st.warning("For text extraction from image, please upload a PDF.")
    
else:
    st.info("Please upload a medical PDF or image for analysis.")