Spaces:
Runtime error
Runtime error
import streamlit as st | |
import pandas as pd | |
from fhirclient import client | |
from fhir.resources import (patient as fhirpatient, | |
observation as fhirobservation) | |
#import settings | |
#pip install fhir.resources fhirclient | |
#from fhirclient.models import (client as fhirclient, | |
# bundle as fhirbundle, | |
# patient as fhirpatient) | |
settings = { | |
'app_id': 'my_app', | |
'api_base': 'https://hapi.fhir.org/baseR4', | |
'redirect_uri': 'http://localhost:8000/callback', | |
'scope': 'launch/patient openid fhirUser', | |
'client_secret': 'my_app_secret' | |
} | |
def bmi_calculator(height, weight): | |
bmi = weight / ((height/100)**2) | |
return bmi | |
def get_patient_data(client): | |
patient = fhirpatient.Patient.read('self', client.server) | |
# Get the patient's weight and height observations | |
weight_obs = client.server.request(fhirobservation.Observation | |
.where({'subject': f'Patient/{patient.id}', | |
'code': '29463-7'})) | |
height_obs = client.server.request(fhirobservation.Observation | |
.where({'subject': f'Patient/{patient.id}', | |
'code': '8302-2'})) | |
# Get the latest weight and height values | |
weight = float(weight_obs.entry[-1].resource.valueQuantity.value) | |
height = float(height_obs.entry[-1].resource.valueQuantity.value) | |
return height, weight | |
# smart = client.FHIRClient(settings=settings.settings) | |
st.title("BMI Calculator") | |
#if smart.ready: | |
if (True==True): | |
st.write("SMART on FHIR connection successful!") | |
st.write("Loading patient data...") | |
#height, weight = get_patient_data(smart) | |
#st.write("Patient height:", height, "cm") | |
#st.write("Patient weight:", weight, "kg") | |
#st.write("Calculating BMI...") | |
#bmi = bmi_calculator(height, weight) | |
#st.write("Your BMI is:", round(bmi, 2)) | |
#if bmi < 18.5: | |
# st.write("You are underweight.") | |
#elif bmi >= 18.5 and bmi < 25: | |
# st.write("You have a healthy weight.") | |
#elif bmi >= 25 and bmi < 30: | |
# st.write("You are overweight.") | |
#else: | |
# st.write("You are obese.") | |
else: | |
st.write("SMART on FHIR connection failed. Please check your app settings.") | |
st.markdown(""" | |
There are several public SMART on FHIR test servers available that allow for public access: | |
## HAPI FHIR Public Test Server: | |
This is a free, public test server that allows users to test their FHIR apps. | |
The server is available at the following | |
URL: | |
https://hapi.fhir.org/baseR4 | |
""") |