File size: 11,898 Bytes
f0de933
 
 
 
 
 
 
 
 
 
 
 
 
49f4355
 
 
f0de933
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49f4355
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
afdc359
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49f4355
afdc359
 
 
49f4355
afdc359
 
49f4355
 
 
f0de933
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6ee0977
f0de933
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
# How can I add row to an iterable dataset
#πŸ€—Datasets
#This is the first time xbilek25 has posted β€” let’s welcome them to our community!


#xbilek25

#2
#9h
#I need any working option to add row to a dataset, where streaming=True. While working with normal dataset I define new item and use code like this:
#tmp_dataset = tmp_dataset.add_item(new_item), but i can’t figure out how to do this while my dataset is streaming=True.
#Can anyone help me to find solution, please?

import streamlit as st

st.set_page_config(page_icon="πŸ“", page_title="πŸ“AI-EIO-EditorπŸ“Š", layout="wide")

if st.checkbox('Show Anatomy Table'):
    st.markdown("""
    ## Anatomy Head to Toe Table with Body Organs Costly Conditions, Spending, CPT Codes and Frequency
    
    | Table Num | Body Part        | Organ/Part           | Description                   | πŸ“ˆ Costly Condition          | πŸ’° Spending (billions) | CPT Range Start | CPT Range Finish | Frequency      |
    |-----------|------------------|----------------------|-------------------------------|------------------------------|------------------------|-----------------|------------------|----------------|
    | 1         | 🧠 Head          | 🧠 Brain             | Controls mental processes     | 😨 Anxiety & Depression      | 210                    | 90791           | 90899            | 1 in 5         |
    | 2         | πŸ‘€ Eyes          | πŸ‘οΈ Optic Nerve      | Vision                        | πŸ‘“ Cataracts                 | 10.7                   | 92002           | 92499            | 1 in 6 (over 40 years) |
    | 3         | πŸ‘‚ Ears          | 🐚 Cochlea           | Hearing                       | πŸ“’ Hearing Loss              | 7.1                    | 92502           | 92700            | 1 in 8 (over 12 years) |
    | 4         | πŸ‘ƒ Nose          | πŸ‘ƒ Olfactory Bulb    | Smell                         | 🀧 Allergies                 | 25                     | 31231           | 31294            | 1 in 3         |
    | 5         | πŸ‘„ Mouth         | πŸ‘… Tongue            | Taste                         | 🦷 Dental Issues             | 130                    | 00100           | 00192            | 1 in 2         |
    | 6         | 🫁 Neck          | πŸ¦‹ Thyroid           | Metabolism                    | 🦠 Hypothyroidism            | 3.1                    | 60210           | 60271            | 1 in 20        |
    | 7         | πŸ’ͺ Upper Body    | ❀️ Heart             | Circulation                   | πŸ’” Heart Disease             | 230                    | 92920           | 93799            | 1 in 4 (over 65 years) |
    | 8         | πŸ’ͺ Upper Body    | 🫁 Lungs             | Respiration                   | 😷 Chronic Obstructive Pulmonary Disease | 70   | 94002           | 94799            | 1 in 20 (over 45 years) |
    | 9         | πŸ’ͺ Upper Body    | 🍷 Liver             | Detoxification                | 🍺 Liver Disease             | 40                     | 47000           | 47999            | 1 in 10        |
    | 10        | πŸ’ͺ Upper Body    | 🍹 Kidneys           | Filtration                    | 🌊 Chronic Kidney Disease    | 110                    | 50010           | 50999            | 1 in 7         |
    | 11        | πŸ’ͺ Upper Body    | πŸ’‰ Pancreas          | Insulin secretion             | 🍬 Diabetes                  | 327                    | 48100           | 48999            | 1 in 10        |
    | 12        | πŸ’ͺ Upper Body    | 🍽️ Stomach          | Digestion                     | πŸ”₯ Gastroesophageal Reflux Disease | 17          | 43200           | 43289            | 1 in 5         |
    | 13        | πŸ’ͺ Upper Body    | πŸ›‘οΈ Spleen            | Immune functions              | 🩸 Anemia                    | 5.6                    | 38100           | 38199            | 1 in 6         |
    | 14        | πŸ’ͺ Upper Body    | πŸ«€ Blood Vessels     | Circulation of blood          | πŸš‘ Hypertension              | 55                     | 40110           | 40599            | 1 in 3         |
    | 15        | 🦡 Lower Body    | 🍝 Colon             | Absorption of water, minerals | 🌟 Colorectal Cancer         | 14                     | 45378           | 45378            | 1 in 23        |
    | 16        | 🦡 Lower Body    | 🚽 Bladder           | Urine excretion               | πŸ’§ Urinary Incontinence      | 8                      | 51700           | 51798            | 1 in 4 (over 65 years) |
    | 17        | 🦡 Lower Body    | πŸ’ž Reproductive Organs | Sex hormone secretion        | πŸŽ—οΈ Endometriosis            | 22                     | 56405           | 58999            | 1 in 10 (women) |
    | 18        | 🦢 Feet          | 🎯 Nerve endings      | Balance and movement          | πŸ€• Peripheral Neuropathy     | 19                     | 95900           | 96004            | 1 in 30        |
    | 19        | 🦢 Feet          | 🌑️ Skin              | Temperature regulation        | 🌞 Skin Cancer               | 8.1                    | 96910           | 96999            | 1 in 5         |
    | 20        | 🦢 Feet          | πŸ’ͺ Muscles           | Movement and strength         | πŸ‹οΈβ€β™‚οΈ Musculoskeletal Disorders | 176              | 97110           | 97799            | 1 in 2         |
    
    """)


import streamlit as st
import pandas as pd
import traceback
import sys

from st_aggrid import AgGrid
from st_aggrid.grid_options_builder import GridOptionsBuilder
from st_aggrid.shared import JsCode
from st_aggrid import GridUpdateMode, DataReturnMode

def parse(file, condition, data=[], ind_append=False):
    for line in file:
        st.write(line)
        data.append(line)
    return data

def read_csv_any_file(file):
    dropBlanks=True
    logResult=True
    logResultStartSymbol = "["
    
    
    if file is not None:
        data = []
        df = pd.DataFrame()
        for line in file:
            if line == b' \r\n':
                if dropBlanks == False:
                    st.write(line.decode('UTF-8'))
            else:   
                if logResult: 
                    st.write(line.decode('UTF-8'))
                    data.append(line.decode('UTF-8'))
        
        df = pd.DataFrame(data, columns=['InputLines'])
    return df

# Style
def _max_width_():
    max_width_str = f"max-width: 1800px;"
    st.markdown(
        f"""
    <style>
    .reportview-container .main .block-container{{
        {max_width_str}
    }}
    </style>    
    """,
        unsafe_allow_html=True,
    )
    
# Title Bar with Images and Icons
col1, col2, col3 = st.columns([1,6,1])
with col1:
    st.image("https://cdnb.artstation.com/p/assets/images/images/054/910/875/large/aaron-wacker-cyberpunk-computer-brain-design.jpg?1665656558",width=64,)
with col2:
    st.title("πŸ“Double Line AI EditorπŸ“Š")
with col3:
    st.image("https://cdna.artstation.com/p/assets/images/images/054/910/878/large/aaron-wacker-cyberpunk-computer-devices-iot.jpg?1665656564",width=64,)
    
# Upload
c29, c30, c31 = st.columns([1, 6, 1])
with c30:
    uploaded_file = st.file_uploader("", key="1", help="To activate 'wide mode', go to the menu > Settings > turn on 'wide mode'",)
    if uploaded_file is not None:
        file_container = st.expander("Check your uploaded .csv")
        #try:
        shows = read_csv_any_file(uploaded_file)
        #shows = pd.read_csv(uploaded_file)
        #except:
        #    print(sys.exc_info()[2])
            
        uploaded_file.seek(0)
        file_container.write(shows)
    else:
        st.info(f"""⬆️Upload a πŸ“.CSV file.  Examples: [Chatbot](https://huggingface.co/datasets/awacke1/Carddata.csv)  [Mindfulness](https://huggingface.co/datasets/awacke1/MindfulStory.csv)  [Wikipedia](https://huggingface.co/datasets/awacke1/WikipediaSearch)""")
        st.stop()

# DisplayGrid
#gb = GridOptionsBuilder.from_dataframe(shows)

#z = [[" ".join(i.split()[:2]),str(i.split()[2])] for i in shows]
#df = pd.DataFrame(z,columns=['Str','Str2'])

gb = GridOptionsBuilder.from_dataframe(shows)

gb.configure_default_column(enablePivot=True, enableValue=True, enableRowGroup=True)
gb.configure_selection(selection_mode="multiple", use_checkbox=True)
gb.configure_side_bar()
gridOptions = gb.build()
st.success(f"""πŸ’‘ Tip! Hold shift key when selecting rows to select multiple rows at once.""")
response = AgGrid(
    shows,
    gridOptions=gridOptions,
    enable_enterprise_modules=True,
    update_mode=GridUpdateMode.MODEL_CHANGED,
    data_return_mode=DataReturnMode.FILTERED_AND_SORTED,
    fit_columns_on_grid_load=False,
)

# Filters
df = pd.DataFrame(response["selected_rows"])
st.subheader("Filtered data will appear below πŸ“Š ")
st.text("")
st.table(df)
st.text("")

import base64
import pandas as pd

# Example DataFrame
data = {'Column1': [1, 2], 'Column2': [3, 4]}
df = pd.DataFrame(data)

# Function to convert DataFrame to CSV and then encode to base64
def to_base64_csv(df):
    csv = df.to_csv(index=False)
    b64 = base64.b64encode(csv.encode()).decode()
    return f"data:text/csv;base64,{b64}"

# Function to convert DataFrame to TXT and then encode to base64
def to_base64_txt(df):
    txt = df.to_csv(index=False, sep='\t')
    b64 = base64.b64encode(txt.encode()).decode()
    return f"data:text/plain;base64,{b64}"

# Generate base64 encoded links
csv_link = to_base64_csv(df)
txt_link = to_base64_txt(df)

# Markdown format for hyperlinks in bold font with emojis
markdown_csv_link = f"**[πŸ“₯ Download Dataset as CSV]({csv_link})**"
markdown_txt_link = f"**[πŸ“₯ Download Dataset as TXT]({txt_link})**"

# Display as markdown (hypothetical, depends on how you render markdown in your application)
print(markdown_csv_link)
print(markdown_txt_link)

st.markdown(markdown_csv_link, unsafe_allow_html=True)
st.markdown(markdown_txt_link, unsafe_allow_html=True)
#-----------------------------------------------------------------------
    
import streamlit as st
import pandas as pd

# Load dataset
def load_data():
    return pd.read_csv('anatomy_dataset.csv')

# Save dataset
def save_data(df):
    df.to_csv('anatomy_dataset.csv', index=False)

# CRUD Operations
def add_data(df):
    # Add a row to the dataframe (Example)
    # You can modify this function to take input from the user
    new_row = {'Table Num': 21, 'Body Part': 'New Part', 'Organ/Part': 'New Organ', 'Description': 'New Description',
               'Costly Condition': 'New Condition', 'Spending (billions)': 0, 'CPT Range Start': 0, 'CPT Range Finish': 0,
               'Frequency': 'New Frequency'}
    df = df.append(new_row, ignore_index=True)
    return df

def update_data(df):
    # Update a row in the dataframe (Example)
    # Implement the update logic based on your requirements
    if not df.empty:
        df.at[0, 'Description'] = 'Updated Description'
    return df

def delete_data(df):
    # Delete a row from the dataframe (Example)
    # Implement the delete logic based on your requirements
    if not df.empty:
        df = df.drop(df.index[0])
    return df

# Streamlit UI
st.title("Anatomy Head to Toe CRUD Operations")

# Display the table if checkbox is checked
if st.checkbox('Show Anatomy Table as Dataframe'):
    df = load_data()
    st.markdown("## Anatomy Head to Toe Table with Body Organs Costly Conditions, Spending, CPT Codes and Frequency")
    st.dataframe(df)

# CRUD operation buttons
col1, col2, col3, col4 = st.columns(4)
if col1.button('βž• Add'):
    df = load_data()
    df = add_data(df)
    save_data(df)

if col2.button('πŸ”„ Update'):
    df = load_data()
    df = update_data(df)
    save_data(df)

if col3.button('❌ Delete'):
    df = load_data()
    df = delete_data(df)
    save_data(df)

if col4.button('πŸ’Ύ Save'):
    df = load_data()
    save_data(df)
    st.success("Data saved to CSV!")