adicion de gráficas descriptivas de visitas.

se concluyó la gráfica que muestra las estadísticas generales de cada
visita

se añadió la gráfica que muestra los detalles (valores) de cada
paciente para cada visita/medida.
parent 70b0e058
......@@ -16,6 +16,15 @@ Comidas_E3_e = 9
#Comidas_totales_e = Comidas_E1_e + Comidas_E2_e + Comidas_E3_e
Comidas_totales_e = 42
Glucometro_e = 14
esperados = {
"antrop-mets": 3,
"quimica-S": 13,
"comp-corp": 6,
"physiological": 10,
"tolerancia": 3
}
Total_pacientes = len(data_o.index)
data = data_o
Total_incluidos = len(data)
......@@ -202,6 +211,60 @@ app.layout = html.Div(
),
html.Div(
children=[
html.H1("Detalle pacientes por visita", className="header-title2"),
html.Div(children=[
html.Div(
children=[
html.Div(
children=[
html.Div(children="Etapa", className="menu-title"),
dcc.Dropdown(
id="visitaPruebas",
options=[
{"label":1, "value":1},
{"label":2, "value":2},
{"label":3, "value":3},
{"label":4, "value":4}
],
value=1,
clearable=False,
searchable=False,
className="dropdown",
),
], 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"},
),
],
),
dcc.Graph(id="detalle_pruebas"),
],
className="wrapper"
),
html.Div(
children=[
html.H1("Comidas Analizables", className="header-title2"),
html.P("..en construcción..", style={"color":"red", "font-style":"italic"}),
html.Div(
......@@ -238,6 +301,7 @@ app.layout = html.Div(
Output("multi-chart", "figure"),
Output("detalle_figura", "figure"),
Output("multi-visitas", "figure"),
Output("detalle_pruebas", "figure"),
Output("mesurables", "figure"),
Input("etapaSel", "value"),
Input("min_comidas", "value"),
......@@ -245,11 +309,14 @@ app.layout = html.Div(
Input("min_reloj", "value"),
Input("medidaDet", "value"),
Input("etapaDet", "value"),
Input("visitaSel", "value"),
Input("visitaSel", "value"),
Input("visitaPruebas", "value"),
Input("pruebasVisita", "value"),
Input("mesurableEt", "value"),
)
def update_charts(etapaSel,min_comidas, min_glucosa, min_reloj, medidaDet, etapaDet, visitaSel, mesurableEt):
def update_charts(etapaSel,min_comidas, min_glucosa, min_reloj, medidaDet, etapaDet, visitaSel, visitaPruebas, pruebasVisita, mesurableEt):
contados ={}
total_data = len(data.index)
gauges = {
'shape': "bullet",
......@@ -389,18 +456,17 @@ def update_charts(etapaSel,min_comidas, min_glucosa, min_reloj, medidaDet, eta
}
],
"layout": {
"title": {"text": title + etapalab + str(etapaDet)}
"title": {"text": title + " " + etapalab + str(etapaDet)}
}
}
multiV = go.Figure()
antropo = len(data.loc[data["antrop-mets" + str(visitaSel)] > 0])
qsan = len(data.loc[data["quimica-S" + str(visitaSel)] > 0])
composicion = len(data.loc[data["comp-corp" + str(visitaSel)] > 0])
for medicion in esperados.keys():
contados[medicion] = len(data.loc[data[medicion + str(visitaSel)] == esperados[medicion]])
multiV.add_trace(go.Indicator(
value = 100 * antropo / Total_incluidos,
value = 100 * contados["antrop-mets"] / Total_incluidos,
domain = {'x': [0.25, 1], 'y': [0.90, 1]},
title = {'text': "Antropometría"},
mode = modes,
......@@ -409,7 +475,7 @@ def update_charts(etapaSel,min_comidas, min_glucosa, min_reloj, medidaDet, eta
))
multiV.add_trace(go.Indicator(
value = 100 * qsan / Total_incluidos,
value = 100 * contados["quimica-S"] / Total_incluidos,
domain = {'x': [0.25, 1], 'y': [0.80, 0.9]},
title = {'text': "QS"},
mode = modes,
......@@ -418,7 +484,7 @@ def update_charts(etapaSel,min_comidas, min_glucosa, min_reloj, medidaDet, eta
))
multiV.add_trace(go.Indicator(
value = 100 * len(comidas_data.index) / Total_incluidos,
value = 100 * contados["physiological"] / Total_incluidos,
domain = {'x': [0.25, 1], 'y': [0.7, 0.8]},
title = {'text': "Fisiológicos"},
mode = modes,
......@@ -427,7 +493,7 @@ def update_charts(etapaSel,min_comidas, min_glucosa, min_reloj, medidaDet, eta
))
multiV.add_trace(go.Indicator(
value = 100 * composicion / Total_incluidos,
value = 100 * contados["comp-corp"] / Total_incluidos,
domain = {'x': [0.25, 1], 'y': [0.6, 0.7]},
title = {'text': "C.Corporal"},
mode = modes,
......@@ -436,7 +502,7 @@ def update_charts(etapaSel,min_comidas, min_glucosa, min_reloj, medidaDet, eta
))
multiV.add_trace(go.Indicator(
value = 100 * len(comidas_data.index) / Total_incluidos,
value = 100 * contados["tolerancia"] / Total_incluidos,
domain = {'x': [0.25, 1], 'y': [0.5, 0.6]},
title = {'text': "Curvas de Tolerancia"},
mode = modes,
......@@ -444,6 +510,20 @@ def update_charts(etapaSel,min_comidas, min_glucosa, min_reloj, medidaDet, eta
gauge = gauges,
))
visitaCad = pruebasVisita + str(visitaPruebas)
detalle_pruebas = {
"data": [
{
"x": data["paciente"],
"y": data[visitaCad],
"type": "bar",
}
],
"layout": {
"title": {"text": pruebasVisita + " " + str(visitaPruebas)}
}
}
por_pasos = 1
por_rcard = 1
......@@ -471,7 +551,7 @@ def update_charts(etapaSel,min_comidas, min_glucosa, min_reloj, medidaDet, eta
}
}
return multi, detalle_figura, multiV, mesurables
return multi, detalle_figura, multiV, detalle_pruebas, mesurables
if __name__ == "__main__":
......
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