reelabooración de las gráficas de detalle de visitas

ahora hay una gráfica que muestra la cobertura de las variables que se
registran en las visitas.
parent 9a1d3edb
...@@ -2,12 +2,16 @@ import pandas as pd ...@@ -2,12 +2,16 @@ import pandas as pd
from dash import Dash, Input, Output, dcc, html from dash import Dash, Input, Output, dcc, html
import plotly.graph_objects as go import plotly.graph_objects as go
import plotly.express as px import plotly.express as px
import requests
import numpy as np
url = 'https://nutricion.c3.unam.mx/nd/'
data_o = ( data_o = (
pd.read_csv("inventario.csv") pd.read_csv("inventario.csv")
) )
data_o["paciente"] = data_o["paciente"].astype("str") + "_p"
data_o["Secuenciaciones"] = 0
Visitas_e = 4 Visitas_e = 4
Etapas_e = 3 Etapas_e = 3
Comidas_E1_e = 42 Comidas_E1_e = 42
...@@ -258,26 +262,6 @@ app.layout = html.Div( ...@@ -258,26 +262,6 @@ app.layout = html.Div(
), ),
], className="wrapper" ], className="wrapper"
), ),
html.Div(
children=[
html.Div(children="Medida", className="menu-title"),
dcc.Dropdown(
id="pruebasVisita",
options=[
{"label":"Antropometría", "value":"antrop-mets"},
{"label":"Qumíca Sanguinea", "value":"quimica-S"},
{"label":"C.Corporal", "value":"comp-corp"},
{"label":"Fisiológicos", "value":"physiological"},
{"label":"C. Tolerancia", "value":"tolerancia"},
],
value='antrop-mets',
clearable=False,
searchable=False,
className="dropdown",
),
], className="wrapper",
),
], style={"display":"flex", "flexDirection": "row"}, ], style={"display":"flex", "flexDirection": "row"},
), ),
...@@ -301,7 +285,6 @@ app.layout = html.Div( ...@@ -301,7 +285,6 @@ app.layout = html.Div(
{"label":"1", "value":1}, {"label":"1", "value":1},
{"label":"2", "value":2}, {"label":"2", "value":2},
{"label":"3", "value":3}, {"label":"3", "value":3},
{"label":"No-Clas.", "value":4},
{"label":"Total", "value":5}, {"label":"Total", "value":5},
], ],
value=1, value=1,
...@@ -335,11 +318,10 @@ app.layout = html.Div( ...@@ -335,11 +318,10 @@ app.layout = html.Div(
Input("etapaDet", "value"), Input("etapaDet", "value"),
Input("visitaSel", "value"), Input("visitaSel", "value"),
Input("visitaPruebas", "value"), Input("visitaPruebas", "value"),
Input("pruebasVisita", "value"),
Input("mesurableEt", "value"), Input("mesurableEt", "value"),
) )
def update_charts(etapaSel,min_comidas, min_glucosa, medidaDet, etapaDet, visitaSel, visitaPruebas, pruebasVisita, mesurableEt): def update_charts(etapaSel,min_comidas, min_glucosa, medidaDet, etapaDet, visitaSel, visitaPruebas, mesurableEt):
contados ={} contados ={}
total_data = len(data.index) total_data = len(data.index)
gauges = { gauges = {
...@@ -527,18 +509,24 @@ def update_charts(etapaSel,min_comidas, min_glucosa, medidaDet, etapaDet, visita ...@@ -527,18 +509,24 @@ def update_charts(etapaSel,min_comidas, min_glucosa, medidaDet, etapaDet, visita
gauge = gauges, gauge = gauges,
)) ))
visitaCad = pruebasVisita + str(visitaPruebas) url_visitas = url + "/visits/" + str(visitaPruebas) + "/patients-data/"
t1 = requests.get(url_visitas).json()["patient_data"]
df = pd.json_normalize(t1)
df.drop(["tolerance_curve_measure","id","name","finished_periods","include_in_analysis","patient_visit_id", "visit_date","sample"], inplace=True, axis=1)
l1 = [ { cf["controlled_food"]: cf["increment_auc"] for cf in tolerance["tolerance_curve_measure"] } for tolerance in t1 ]
df.rename(columns= lambda x: x.split(".")[1] if "." in x else x, inplace=True)
df1 = pd.concat([df, pd.DataFrame(l1)], axis=1)
# df1 = df
cuentas = 100 * df1.replace("",np.nan).count() / len(df1)
detalle_pruebas = { detalle_pruebas = {
"data": [ "data": [
{ {
"x": data["paciente"], "x": cuentas.index,
"y": data[visitaCad], "y": cuentas,
"type": "bar", "type": "bar",
} }
], ],
"layout": {
"title": {"text": pruebasVisita + " " + str(visitaPruebas)}
}
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment