import requests import json import tabula import re import streamlit as st def get_substance(x): 'Returns the substance of the drug.' l = x.split('\r') s = re.search(r'\w+', l[-1]).group() return s.lower() # Get the pdf with prescriptions from the user. st.title('Medicinkollen đŸ•”ïž') st.markdown(''' đŸ§‘â€âš•ïž *LĂ€kare ska ha koll pĂ„ dina recept sĂ„ att inga mediciner "krockar" men ibland finns inte den tiden i sjukvĂ„rden.* 💊 *Det finns rapporter om att exempelvis Ă€ldre mĂ€nniskor ibland har en lĂ„ng lista med lĂ€kemedel dĂ€r inte alla kombinationer Ă€r bra.* đŸ§‘â€đŸ’» *Genom att logga in pĂ„ [1177.se](https://1177.se) och gĂ„ till lĂ€kemedelstjĂ€nster kan du ladda hem en PDF dĂ€r det syns vilka lĂ€kemedel du har.* 🔎 *Den PDF\:en kan du sedan ladda upp hĂ€r för att fĂ„ information frĂ„n [Janusmed](https://janusmed.se) - som drivs av bl.a. Region Stockholm – med eventuella varningar.* 😌 *Ingen information sparas i den hĂ€r tjĂ€nsten.* ''') pdf = st.file_uploader(label='Ladda upp din lĂ€kemedelslista', type='pdf') if pdf: # Extract table from prescription pdf. area = [111, 20, 528, 822] df = tabula.read_pdf(pdf, pages='all', area=area, lattice=True)[0] df.columns = ['UthĂ€mtat datum', 'UthĂ€mtat lĂ€kemedel', 'AnvĂ€ndning', 'Förskrivet av', 'UthĂ€mtad mĂ€ngd', 'LĂ€kemedelsgrupp'] df.dropna(axis=0, inplace=True) df['substance'] = df['UthĂ€mtat lĂ€kemedel'].apply(lambda x: get_substance(x)) # Make list of precripted substances. substances = df.substance.tolist() substances_id_list = [] for substance in substances: # Get data for the substance. data = requests.get(f'https://janusmed.se/api/search/input/{substance}').json() data = data[0] # Only first is interesting(?) when searching on substances. # Add the substance ID to the list of substances. substance_id = data['nslId'] #TODO Kan finnas flera!? substances_id_list.append(substance_id) # Create URL for janusmed.se substances_id_url_list = '&nslIds='.join(substances_id_list) url = 'https://janusmed.se/interaktioner?nplIds=' + substances_id_url_list # Show text with URL to janusmed. st.markdown(f''' :grey[*Följ [den hĂ€r lĂ€nken]({url}) för att se om dina lĂ€kemedel gĂ„r bra ihop eller om det kan finnas nĂ„got du skulle kunna prata med din lĂ€kare om. Nedan kan du se en förhandsvisning.*] ''') # View janusmed.se in an iframe. st.components.v1.iframe(url, height=600, scrolling=True)