import streamlit as st from pytezos import pytezos import pandas as pd pytezos = pytezos.using(shell = 'https://rpc.tzkt.io/ghostnet', key='edsk3MrRkoidY2SjEgufvi44orvyjxgZoy4LhaJNTNcddWykW6SssL') contract = pytezos.contract('KT1KvCVKiZhkPG8s9CCoxW3r135phk2HhZUV') def welcome(): return "Welcome To Decentralised Medical Records" def addUser(): name = st.text_input("Enter Full Name of the Patient") email = st.text_input("Enter Email of the Patient") number = st.number_input("Enter the Contact Number", step=1, min_value=1) age = st.number_input("Enter Age", step=1, min_value=18) gender = st.radio("Enter Gender", ('Male', 'Female')) #Hid = st.text_input("Enter your Unique aadhar Id") #hospital=st.text_input("Enter the Hospital details") if st.button("Register Patient"): a = pytezos.using(shell = 'https://rpc.tzkt.io/ghostnet', key='edsk3MrRkoidY2SjEgufvi44orvyjxgZoy4LhaJNTNcddWykW6SssL') contract = a.contract('KT1KvCVKiZhkPG8s9CCoxW3r135phk2HhZUV') contract.addUser(email = email, name = name, age = age, gender = gender, number = number).with_amount(0).as_transaction().fill().sign().inject() def ViewPatientRecord(): Hid = st.text_input("Enter Unique aadhar Id of Patient") if st.button("View Records"): usds = pytezos.using(shell = 'https://rpc.tzkt.io/ghostnet').contract('KT1KvCVKiZhkPG8s9CCoxW3r135phk2HhZUV') #print (usds.storage())#debug #print(list(usds.storage().keys())[0]) #if email is in storage... print record if Hid in list(usds.storage().keys()): st.text(usds.storage()) #print(usds.storage()) #st.text(list(usds.storage().keys())[0]) #st.text(list(usds.storage().values())) else: st.text('Not Found') #st.text(usds.storage[email]['Record']()) ####################WIDGETS START ################################## def filters_widgets(df, columns=None, allow_single_value_widgets=False): # Parse the df and get filter widgets based for provided columns if not columns: #if columns not provided, use all columns to create widgets columns=df.columns.tolist() if allow_single_value_widgets: threshold=0 else: threshold=1 widget_dict = {} filter_widgets = st.container() filter_widgets.warning( "After selecting filters press the 'Apply Filters' button at the bottom.") if not allow_single_value_widgets: filter_widgets.markdown("Only showing columns that contain more than 1 unique value.") with filter_widgets.form(key="data_filters"): not_showing = [] for y in df[columns]: if str(y) in st.session_state: #update value from session state if exists selected_opts = st.session_state[str(y)] else: #if doesnt exist use all values as defaults selected_opts = df[y].unique().tolist() if len(df[y].unique().tolist()) > threshold: #checks if above threshold widget_dict[y] = st.multiselect( label=str(y), options=df[y].unique().tolist(), default=selected_opts, key=str(y), ) else:#if doesnt pass threshold not_showing.append(y) if not_showing:#if the list is not empty, show this warning st.warning( f"Not showing filters for {' '.join(not_showing)} since they only contain one unique value." ) submit_button = st.form_submit_button("Apply Filters") #reset button to return all unselected values back reset_button = filter_widgets.button( "Reset All Filters", key="reset_buttons", on_click=reset_filter_widgets_to_default, args=(df, columns), ) filter_widgets.warning( "Dont forget to apply filters by pressing 'Apply Filters' at the bottom." ) def reset_filter_widgets_to_default(df, columns): for y in df[columns]: if str(y) in st.session_state: del st.session_state[y] ####################WIDGETS END################################## def main(): st.set_page_config(page_title="Decentralised Health Vaccine Records") st.title("Blockchain Based Medical Records") st.markdown( """
This project greatly decreases any chances of misuse or the manipulation of the medical Records
""", unsafe_allow_html=True, ) st.markdown( """