drguilhermeapolinario commited on
Commit
8c9e5c3
·
verified ·
1 Parent(s): dbc2e40

Update views/pdf_chat.py

Browse files
Files changed (1) hide show
  1. views/pdf_chat.py +135 -194
views/pdf_chat.py CHANGED
@@ -44,7 +44,7 @@ if nested_menu == "Incidências radiológicas":
44
  ##### ✅ **Vamos melhorar a visualização das incidências médicas!**
45
  """)
46
 
47
- # Função para exibir regiões e incidências
48
  def exibir_incidencias(regiao, incidencias):
49
  st.markdown(f"## {regiao}")
50
  for incidencia in incidencias:
@@ -825,98 +825,64 @@ elif nested_menu == "Escala de Risco de Coelho e Savassi":
825
  st.write('')
826
 
827
  elif nested_menu == "Escore de Risco Global (ERG)":
828
- import streamlit as st
829
- import pandas as pd
830
  import numpy as np
831
-
832
- # # CSS personalizado
833
- # st.markdown("""
834
- # <style>
835
- # .stRadio > label {
836
- # font-weight: bold;
837
- # color: #4A4A4A;
838
- # }
839
- # .stButton > button {
840
- # width: 100%;
841
- # }
842
- # .risk-result {
843
- # font-size: 24px;
844
- # font-weight: bold;
845
- # padding: 10px;
846
- # border-radius: 5px;
847
- # margin-top: 20px;
848
- # text-align: center;
849
- # }
850
- # .risk-baixo {
851
- # background-color: #2ecc71;
852
- # color: white;
853
- # }
854
- # .risk-intermediario {
855
- # background-color: #f39c12;
856
- # color: white;
857
- # }
858
- # .risk-alto {
859
- # background-color: #e74c3c;
860
- # color: white;
861
- # }
862
- # .risk-muito-alto {
863
- # background-color: #c0392b;
864
- # color: white;
865
- # }
866
- # </style>
867
- # """,
868
- # unsafe_allow_html=True)
869
-
870
 
 
871
  # Título
872
- st.header("Escore de Risco Global (ERG)")
873
- st.markdown("Recomendado pela Sociedade Brasileira de Cardiologia")
874
-
 
 
 
 
875
  # CSS melhorado
876
  st.markdown("""
877
- <style>
878
- .st-key-risco button {
879
- width: 30%;
880
- }
881
-
882
- .st-key-veridade input {
883
- display: grid;
884
- width: 100px;
885
- border: 1px solid #ccc;
886
- }
887
-
888
- .risk-result {
889
- padding: 20px;
890
- border-radius: 10px;
891
- margin: 20px 0;
892
- font-size: 1.1em;
893
- }
894
-
895
- .risk-baixo {
896
- background-color: #d4edda;
897
- color: #155724;
898
- border: 1px solid #c3e6cb;
899
- }
900
-
901
- .risk-intermediario {
902
- background-color: #fff3cd;
903
- color: #856404;
904
- border: 1px solid #ffeeba;
905
- }
906
-
907
- .risk-alto {
908
- background-color: #fff3cd;
909
- color: #856404;
910
- border: 1px solid #ffeeba;
911
- }
912
-
913
- .risk-muito-alto {
914
- background-color: #f8d7da;
915
- color: #721c24;
916
- border: 1px solid #f5c6cb;
917
- }
918
- </style>
919
- """, unsafe_allow_html=True)
920
 
921
  def get_recomendacao_estatina(risco, pontos, idade, diabetes):
922
  """
@@ -975,9 +941,8 @@ elif nested_menu == "Escore de Risco Global (ERG)":
975
  """
976
 
977
 
978
-
979
  # Criando colunas para organizar o layout
980
- col1, col2, col3, col4, col5 = st.columns([1,0.5,1,0.5,2.5])
981
 
982
  with col1:
983
  st.subheader("Dados Pessoais")
@@ -1010,7 +975,6 @@ elif nested_menu == "Escore de Risco Global (ERG)":
1010
 
1011
  with col5:
1012
  st.subheader("Calcular resultado")
1013
-
1014
  def calcular_erg(sexo, idade, tabagismo, diabetes, colesterol_total, hdl, pas):
1015
  pontos = 0
1016
 
@@ -1123,8 +1087,6 @@ elif nested_menu == "Escore de Risco Global (ERG)":
1123
  else:
1124
  pontos = calcular_erg(sexo, idade, tabagismo, diabetes, colesterol_total,
1125
  hdl, pas)
1126
-
1127
- # Interpretação do risco (mesma para ambos os sexos)
1128
  if pontos < 5:
1129
  risco = "Baixo"
1130
  classe_css = "risk-baixo"
@@ -1144,85 +1106,85 @@ elif nested_menu == "Escore de Risco Global (ERG)":
1144
 
1145
 
1146
 
1147
- # Exibição do resultado
1148
- st.markdown(f"""
1149
- <div class='risk-result {classe_css}'>
1150
- <strong>Risco Cardiovascular:</strong> {risco}<br>
1151
- <strong>Pontuação:</strong> {pontos}<br>
1152
- <strong>Probabilidade de evento cardiovascular em 10 anos:</strong> {probabilidade}
1153
- </div>
1154
- """, unsafe_allow_html=True)
1155
-
1156
- # Após exibir o resultado do risco, adicionar:
1157
- st.markdown("---")
1158
- st.subheader("💊 Recomendação de Estatinas")
1159
-
1160
- if idade > 75:
1161
- st.warning("""
1162
- **Atenção:** Para pacientes acima de 75 anos, a terapia com estatinas deve ser individualizada,
1163
- considerando benefícios e riscos potenciais. Recomenda-se geralmente estatinas de intensidade moderada.
1164
- """)
1165
-
1166
- recomendacao = get_recomendacao_estatina(risco, pontos, idade, diabetes)
1167
- st.markdown(recomendacao)
1168
-
1169
- st.info("""
1170
- **Observações importantes:**
1171
- 1. Esta é uma recomendação baseada em diretrizes, mas a decisão final deve ser individualizada pelo médico.
1172
- 2. Monitorar níveis de transaminases antes de iniciar as estatinas.
1173
- 3. Reavaliar níveis lipídicos 1-3 meses após início da terapia.
1174
- 4. Em caso de intolerância, considerar alternativas como ácido bempedoico ou inibidores de PCSK9.
1175
- 5. Estatinas são contraindicadas na gestação.
1176
  """)
1177
 
1178
- # Se diabetes presente, adicionar informação específica
1179
- if diabetes:
1180
- st.markdown("""
1181
- **Nota sobre Diabetes:**
1182
- - Para pacientes com diabetes entre 40-75 anos, é recomendada pelo menos estatina de intensidade moderada.
1183
- - Se houver múltiplos fatores de risco, considerar estatina de alta intensidade com meta de redução ≥50% do LDL-C.
1184
- """)
1185
-
1186
- # Informações adicionais
1187
- st.info("""
1188
- **Interpretação das Faixas de Risco:**
1189
- - **Baixo:** < 5% de chance de evento cardiovascular em 10 anos
1190
- - **Intermediário:** 5-10% de chance de evento cardiovascular em 10 anos
1191
- - **Alto:** 10-20% de chance de evento cardiovascular em 10 anos
1192
- - **Muito Alto:** > 20% de chance de evento cardiovascular em 10 anos
 
 
 
1193
  """)
1194
-
1195
- @st.fragment
1196
- def tab_final(idade, sexo, colesterol_total, hdl, pas, diabetes, tabagismo):
1197
- # Tabela de detalhes
1198
- st.subheader("Detalhes da Avaliação")
1199
- detalhes = [{
1200
- "Fator de Risco": "Idade",
1201
- "Valor": f"{idade} anos"
1202
- }, {
1203
- "Fator de Risco": "Sexo",
1204
- "Valor": sexo
1205
- }, {
1206
- "Fator de Risco": "Colesterol Total",
1207
- "Valor": f"{colesterol_total} mg/dL"
1208
- }, {
1209
- "Fator de Risco": "HDL Colesterol",
1210
- "Valor": f"{hdl} mg/dL"
1211
- }, {
1212
- "Fator de Risco": "Pressão Arterial Sistólica",
1213
- "Valor": f"{pas} mmHg"
1214
- }, {
1215
- "Fator de Risco": "Diabetes",
1216
- "Valor": "Sim" if diabetes else "Não"
1217
- }, {
1218
- "Fator de Risco": "Tabagismo",
1219
- "Valor": "Sim" if tabagismo else "Não"
1220
- }]
1221
- df_detalhes = pd.DataFrame(detalhes)
1222
- df_paciente = st.dataframe(df_detalhes, hide_index=True)
1223
- return df_paciente
1224
-
1225
- tab_final(idade, sexo, colesterol_total, hdl, pas, diabetes, tabagismo)
 
 
 
 
 
 
 
 
 
1226
 
1227
 
1228
  @st.fragment
@@ -1277,9 +1239,9 @@ elif nested_menu == "Escore de Risco Global (ERG)":
1277
  # Estatinas
1278
  <div style="text-align: justify">
1279
 
1280
- - Diretrizes: 2024 das diretrizes: American College of Cardiology (ACC), a American Heart Association (AHA) e a American Diabetes Association (ADA).
1281
 
1282
- - Evidências robustas de ensaios clínicos randomizados e meta-análises: Eficácia das estatinas na redução de eventos cardiovasculares ateroscleróticos (ASCVD).
1283
 
1284
  ## Início da Terapia com Estatinas
1285
 
@@ -1356,34 +1318,12 @@ elif nested_menu == "Escore de Risco Global (ERG)":
1356
  Grundy SM, Stone NJ, Bailey AL, et al.
1357
  Journal of the American College of Cardiology. 2019;73(24):e285-e350. doi:10.1016/j.jacc.2018.11.003.
1358
  </sup>
1359
- <br><br>
1360
- <sup>
1361
- 5. 2013 ACC/­AHA Guideline Recommends Fixed-Dose Strategies Instead of Targeted Goals to Lower Blood Cholesterol.
1362
- Smith SC, Grundy SM.
1363
- Journal of the American College of Cardiology. 2014;64(6):601-12. doi:10.1016/j.jacc.2014.06.1159.
1364
- </sup>
1365
- <br><br>
1366
-
1367
- <sup>
1368
- 6. 2018 AHA/­ACC/­AACVPR/­AAPA/­ABC/­ACPM/­ADA/­AGS/­APhA/­ASPC/­NLA/­PCNA Guideline on the Management of Blood Cholesterol: A Report of the American College of Cardiology/­American Heart Association Task Force on Clinical Practice Guidelines.
1369
- Grundy SM, Stone NJ, Bailey AL, et al.
1370
- Circulation. 2019;139(25):e1082-e1143. doi:10.1161/CIR.0000000000000625.
1371
- </sup>
1372
- <br><br>
1373
-
1374
-
1375
- <sup>
1376
- 7. High-Intensity Statins Benefit High-Risk Patients: Why and How to Do Better.
1377
- Grundy SM, Stone NJ, Blumenthal RS, et al.
1378
- Mayo Clinic Proceedings. 2021;96(10):2660-2670. doi:10.1016/j.mayocp.2021.02.032.
1379
- </sup>
1380
-
1381
  </div>
1382
 
1383
  """, unsafe_allow_html=True
1384
  )
1385
 
1386
- cft1, cft2, cft3 = st.columns(3)
1387
 
1388
  with cft1:
1389
  estat()
@@ -1394,3 +1334,4 @@ elif nested_menu == "Escore de Risco Global (ERG)":
1394
  with cft3:
1395
  st.write('')
1396
 
 
 
44
  ##### ✅ **Vamos melhorar a visualização das incidências médicas!**
45
  """)
46
 
47
+ @st.fragment
48
  def exibir_incidencias(regiao, incidencias):
49
  st.markdown(f"## {regiao}")
50
  for incidencia in incidencias:
 
825
  st.write('')
826
 
827
  elif nested_menu == "Escore de Risco Global (ERG)":
 
 
828
  import numpy as np
829
+ import pandas as pd
830
+ import streamlit as st
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
831
 
832
+ cxc1, cxc2, cxc3 = st.columns([2, 1.5, 1.5])
833
  # Título
834
+ with cxc1:
835
+ st.header("Escore de Risco Global (ERG)")
836
+ st.markdown("Recomendado pela Sociedade Brasileira de Cardiologia ❤️")
837
+ with cxc2:
838
+ st.image("icon/cardio.svg", width=100)
839
+
840
+
841
  # CSS melhorado
842
  st.markdown("""
843
+ <style>
844
+ .st-key-risco button {
845
+ width: 30%;
846
+ }
847
+
848
+ .st-key-veridade input {
849
+ display: grid;
850
+ width: 100px;
851
+ border: 1px solid #ccc;
852
+ }
853
+
854
+ .risk-result {
855
+ padding: 20px;
856
+ border-radius: 10px;
857
+ margin: 20px 0;
858
+ font-size: 1.1em;
859
+ }
860
+
861
+ .risk-baixo {
862
+ background-color: #d4edda;
863
+ color: #155724;
864
+ border: 1px solid #c3e6cb;
865
+ }
866
+
867
+ .risk-intermediario {
868
+ background-color: #fff3cd;
869
+ color: #856404;
870
+ border: 1px solid #ffeeba;
871
+ }
872
+
873
+ .risk-alto {
874
+ background-color: #fff3cd;
875
+ color: #856404;
876
+ border: 1px solid #ffeeba;
877
+ }
878
+
879
+ .risk-muito-alto {
880
+ background-color: #f8d7da;
881
+ color: #721c24;
882
+ border: 1px solid #f5c6cb;
883
+ }
884
+ </style>
885
+ """, unsafe_allow_html=True)
886
 
887
  def get_recomendacao_estatina(risco, pontos, idade, diabetes):
888
  """
 
941
  """
942
 
943
 
 
944
  # Criando colunas para organizar o layout
945
+ col1, col2, col3, col4, col5 = st.columns([1,0.5,1,0.2,2.5])
946
 
947
  with col1:
948
  st.subheader("Dados Pessoais")
 
975
 
976
  with col5:
977
  st.subheader("Calcular resultado")
 
978
  def calcular_erg(sexo, idade, tabagismo, diabetes, colesterol_total, hdl, pas):
979
  pontos = 0
980
 
 
1087
  else:
1088
  pontos = calcular_erg(sexo, idade, tabagismo, diabetes, colesterol_total,
1089
  hdl, pas)
 
 
1090
  if pontos < 5:
1091
  risco = "Baixo"
1092
  classe_css = "risk-baixo"
 
1106
 
1107
 
1108
 
1109
+ # Exibição do resultado
1110
+ st.markdown(f"""
1111
+ <div class='risk-result {classe_css}'>
1112
+ <strong>Risco Cardiovascular:</strong> {risco}<br>
1113
+ <strong>Pontuação:</strong> {pontos}<br>
1114
+ <strong>Probabilidade de evento cardiovascular em 10 anos:</strong> {probabilidade}
1115
+ </div>
1116
+ """, unsafe_allow_html=True)
1117
+
1118
+ # Após exibir o resultado do risco, adicionar:
1119
+ st.markdown("---")
1120
+ st.subheader("💊 Recomendação de Estatinas")
1121
+
1122
+ if idade > 75:
1123
+ st.warning("""
1124
+ **Atenção:** Para pacientes acima de 75 anos, a terapia com estatinas deve ser individualizada,
1125
+ considerando benefícios e riscos potenciais. Recomenda-se geralmente estatinas de intensidade moderada.
 
 
 
 
 
 
 
 
 
 
 
 
1126
  """)
1127
 
1128
+ recomendacao = get_recomendacao_estatina(risco, pontos, idade, diabetes)
1129
+ st.markdown(recomendacao)
1130
+
1131
+ st.info("""
1132
+ **Observações importantes:**
1133
+ 1. Recomendações baseadas em diretrizes, mas a decisão final deve ser individualizada pelo médico.
1134
+ 2. Monitorar níveis de transaminases antes de iniciar as estatinas.
1135
+ 3. Reavaliar níveis lipídicos 1-3 meses após início da terapia.
1136
+ 4. Em caso de intolerância, considerar alternativas como ácido bempedoico ou inibidores de PCSK9.
1137
+ 5. Estatinas são contraindicadas na gestação.
1138
+ """)
1139
+
1140
+ # Se diabetes presente, adicionar informação específica
1141
+ if diabetes:
1142
+ st.markdown("""
1143
+ **Nota sobre Diabetes:**
1144
+ - Para pacientes com diabetes entre 40-75 anos, é recomendada pelo menos estatina de intensidade moderada.
1145
+ - Se houver múltiplos fatores de risco, considerar estatina de alta intensidade com meta de redução ≥50% do LDL-C.
1146
  """)
1147
+
1148
+ # Informações adicionais
1149
+ st.info("""
1150
+ **Interpretação das Faixas de Risco:**
1151
+ - **Baixo:** < 5% de chance de evento cardiovascular em 10 anos
1152
+ - **Intermediário:** 5-10% de chance de evento cardiovascular em 10 anos
1153
+ - **Alto:** 10-20% de chance de evento cardiovascular em 10 anos
1154
+ - **Muito Alto:** > 20% de chance de evento cardiovascular em 10 anos
1155
+ """)
1156
+
1157
+ @st.fragment
1158
+ def tab_final(idade, sexo, colesterol_total, hdl, pas, diabetes, tabagismo):
1159
+ # Tabela de detalhes
1160
+ st.subheader("Detalhes da Avaliação")
1161
+ detalhes = [{
1162
+ "Fator de Risco": "Idade",
1163
+ "Valor": f"{idade} anos"
1164
+ }, {
1165
+ "Fator de Risco": "Sexo",
1166
+ "Valor": sexo
1167
+ }, {
1168
+ "Fator de Risco": "Colesterol Total",
1169
+ "Valor": f"{colesterol_total} mg/dL"
1170
+ }, {
1171
+ "Fator de Risco": "HDL Colesterol",
1172
+ "Valor": f"{hdl} mg/dL"
1173
+ }, {
1174
+ "Fator de Risco": "Pressão Arterial Sistólica",
1175
+ "Valor": f"{pas} mmHg"
1176
+ }, {
1177
+ "Fator de Risco": "Diabetes",
1178
+ "Valor": "Sim" if diabetes else "Não"
1179
+ }, {
1180
+ "Fator de Risco": "Tabagismo",
1181
+ "Valor": "Sim" if tabagismo else "Não"
1182
+ }]
1183
+ df_detalhes = pd.DataFrame(detalhes)
1184
+ df_paciente = st.dataframe(df_detalhes, hide_index=True)
1185
+ return df_paciente
1186
+
1187
+ tab_final(idade, sexo, colesterol_total, hdl, pas, diabetes, tabagismo)
1188
 
1189
 
1190
  @st.fragment
 
1239
  # Estatinas
1240
  <div style="text-align: justify">
1241
 
1242
+ - Diretrizes 2024: American College of Cardiology (ACC), American Heart Association (AHA) e American Diabetes Association (ADA).
1243
 
1244
+ - Evidências de ensaios clínicos randomizados e meta-análises: Eficácia das estatinas na redução de eventos cardiovasculares ateroscleróticos (ASCVD).
1245
 
1246
  ## Início da Terapia com Estatinas
1247
 
 
1318
  Grundy SM, Stone NJ, Bailey AL, et al.
1319
  Journal of the American College of Cardiology. 2019;73(24):e285-e350. doi:10.1016/j.jacc.2018.11.003.
1320
  </sup>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1321
  </div>
1322
 
1323
  """, unsafe_allow_html=True
1324
  )
1325
 
1326
+ cft1, cft2, cft3 = st.columns([1, 2, 1])
1327
 
1328
  with cft1:
1329
  estat()
 
1334
  with cft3:
1335
  st.write('')
1336
 
1337
+