import streamlit as st
from PIL import Image
import requests
import google.generativeai as genai
#from googletrans import Translator, LANGUAGES
from deep_translator import GoogleTranslator
#def translate_to_persian(text):
# Instantiate the Translator object
#translator = Translator()
# Translate the text
#translation = translator.translate(text, src='en', dest='fa')
#return translation.text
st.markdown("""
""", unsafe_allow_html=True)
st.markdown('
Pezhma آزمایشگاه
', unsafe_allow_html=True)
#st.title('Medicmate.ir')
text_input = st.text_input('شرح حال بیمار را وارد کنید', placeholder='بیمار پسر 16 ساله که با شکایت زردی، اسهال و بیحالی مراجعه کرده است')
text_input2 = st.text_input('اگر نام آزمایش را میدانید، وارد نمایید', placeholder='Liver function test (or LFT)')
#سی تی اسکن شکم-لگن با کنتراست خوراکی و وریدی'
genai.configure(api_key="AIzaSyBd36RWeqDpLur3E7TTlX3wnyIh_rdhsU8")
uploader_key = 'file_uploader'
# Function to clear the uploaded file
#def clear_file():
#if st.session_state != None:
# del st.session_state[uploader_key] # This clears the file uploader widget
# Check if the delete button is pressed
# File uploader with the key
uploaded_file = st.file_uploader("Just Image", type=["jpg", "jpeg", "png"], key=uploader_key)
mod = genai.GenerativeModel('gemini-pro-vision')
txt = text_input + text_input2
hox = """
As a helpful AI assistant, I will interpret your blood test results as Dr. Pejman. First, I will check the provided photo to ensure it's a test photo. If it's not a test photo, I will respond with: "I am Dr. Pejman. Please send your test photo."
I can interpret various blood tests, such as liver function (LFT), lipids, hormonal, iron panel, complete blood count (CBC), urinalysis (U/A), sperm analysis, and more. When interpreting the test results, I will use the same symbol for each parameter. For example, I will use Hb for hemoglobin and Plt for platelets.
When providing interpretations, I will follow this format:
* If a value is high, I will say, "The [parameter] level is high." For example, if Hb is high, I will say, "The Hb level is high."
* If a value is low, I will say, "The [parameter] level is low." For example, if Plt is low, I will say, "The Plt level is low."
* If a value is normal, I will not provide any comments or interpretations for that parameter.
Please send me your blood test photo, and I will interpret it accordingly.
"""
l=[]
g=[]
# Display the image if available
if uploaded_file is not None:
image = Image.open(uploaded_file)
st.image(image, caption='Uploaded Image.', use_column_width=True)
trans = GoogleTranslator(source='fa', target='en')
# Translate the text to English
g.append(txt)#text_input)
trans_text = trans.translate(g[0])
res = mod.generate_content(["" + g[0], image], stream=True)
res.resolve()
l.append(res.text)
if st.button('تفسیر آزمایش'):
#st.write(res.text)
translator = GoogleTranslator(source='en', target='fa')
# Translate the text to Persian
translated_text = translator.translate(l[0])
url = 'https://pezhma.ir/save_data.php'
data = {'text_input': translated_text}
response = requests.post(url, data=data)
if response.status_code == 200:
index = response.text # Retrieve the index from the response
st.success(f'تفسیر آزمایش خود را با وارد کردن کد در باکس پایین بدست آورید: {index}')
else:
st.error('Error saving data')
# Display the translated text
#st.markdown(f"{translated_text}
", unsafe_allow_html=True)
#if st.button('Delete'):
# clear_file()
#uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"])
#res.resolve()
# Display the uploaded image
#if uploaded_file is not None:
# image = Image.open(uploaded_file)
# res = mod.generate_content(["" + text_input, image], stream=True)
# res.resolve()
# l.append(res.text)
#st.image(image, caption='Uploaded Image', use_column_width=True)
# Button to print "Hey you"