versão 1.0.15+16 AJUSTE DAS RESTRIÇÕES DE VISITAS PERIODICAS, ENVIO DE PESO E ALTURA E DO LOADING. 30/08/2024

This commit is contained in:
Reginaldo
2024-09-02 14:09:13 -03:00
parent 74b5acdb45
commit 7dca9d9b4e
8 changed files with 97 additions and 141 deletions

View File

@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:rkm/models/city_load_model.dart';
import 'package:rkm/models/drop_down_data_model.dart';
import '../models/check_model.dart';
import '../models/check_proced_sia_model.dart';
import '../models/pais_modelo.dart';
import 'color_palette.dart';
@@ -72,36 +73,36 @@ class ConstVariable{
'VISITA PERIÓDICA'
];
List outrosModel = [
'EGRESSO DE INTERNAÇÃO',
'CONVITE ATIVIDADES COLETIVAS/CAMPANHAS DE SAÚDE',
'ORIENTAÇÃO/PREVENÇÃO',
'OUTROS',
List<CheckModel> outrosModel = [
CheckModel(cod: 25, subtitle: 'EGRESSO DE INTERNAÇÃO'),
CheckModel(cod: 27, subtitle: 'CONVITE ATIVIDADES COLETIVAS/CAMPANHAS DE SAÚDE'),
CheckModel(cod: 31, subtitle: 'ORIENTAÇÃO/PREVENÇÃO'),
CheckModel(cod: 28, subtitle: 'OUTROS'),
];
List tipoAcompanhamentoModel = [
'GESTANTE',
'PUÉRPERA',
'RECÉM-NASCIDO',
'CRIANÇA',
'PESSOA COM DESNUTRIÇÃO',
'PESSOA EM REABILITAÇÃO OU COM DEFICIÊNCIA',
'PESSOA COM HIPERTENSÃO',
'PESSOA COM DIABETES',
'PESSOA COM ASMA',
'PESSOA COM DPOC/ENFISEMA',
'PESSOA COM CÂNCER',
'PESSOA COM OUTRAS DOENÇAS CRÔNICAS',
'PESSOA COM HANSENÍASE',
'PESSOA COM TUBERCULOSE',
'SINTOMÁTICOS RESPIRATÓRIOS',
'TABAGISTA',
'DOMICILIADOS/ACAMADOS',
'CONDIÇÕES DE VULNERABILIDADE SOCIAL',
'CONDIÇÃO DO BOLSA FAMÍLIA',
'SAÚDE MENTAL',
'USUÁRIO DE ÁLCOOL',
'USUÁRIO DE OUTRAS DROGAS',
List <CheckModel>tipoAcompanhamentoModel = [
CheckModel(cod: 5, subtitle: 'GESTANTE'),
CheckModel(cod: 6, subtitle: 'PUÉRPERA'),
CheckModel(cod: 7, subtitle: 'RECÉM-NASCIDO'),
CheckModel(cod: 8, subtitle: 'CRIANÇA'),
CheckModel(cod: 9, subtitle: 'PESSOA COM DESNUTRIÇÃO'),
CheckModel(cod: 10, subtitle: 'PESSOA EM REABILITAÇÃO OU COM DEFICIÊNCIA'),
CheckModel(cod: 11, subtitle: 'PESSOA COM HIPERTENSÃO'),
CheckModel(cod: 12, subtitle: 'PESSOA COM DIABETES'),
CheckModel(cod: 13, subtitle: 'PESSOA COM ASMA'),
CheckModel(cod: 14, subtitle: 'PESSOA COM DPOC/ENFISEMA'),
CheckModel(cod: 15, subtitle: 'PESSOA COM CÂNCER'),
CheckModel(cod: 16, subtitle: 'PESSOA COM OUTRAS DOENÇAS CRÔNICAS'),
CheckModel(cod: 17, subtitle: 'PESSOA COM HANSENÍASE'),
CheckModel(cod: 18, subtitle: 'PESSOA COM TUBERCULOSE'),
CheckModel(cod: 32, subtitle: 'SINTOMÁTICOS RESPIRATÓRIOS'),
CheckModel(cod: 33, subtitle: 'TABAGISTA'),
CheckModel(cod: 19, subtitle: 'DOMICILIADOS/ACAMADOS'),
CheckModel(cod: 20, subtitle: 'CONDIÇÕES DE VULNERABILIDADE SOCIAL'),
CheckModel(cod: 21, subtitle: 'CONDIÇÃO DO BOLSA FAMÍLIA'),
CheckModel(cod: 22, subtitle: 'SAÚDE MENTAL'),
CheckModel(cod: 23, subtitle: 'USUÁRIO DE ÁLCOOL'),
CheckModel(cod: 24, subtitle: 'USUÁRIO DE OUTRAS DROGAS'),
];
List serviceHomeCheckConditionlist = [
@@ -285,17 +286,17 @@ class ConstVariable{
List<DropDownDataModel> listTypeHome = [
DropDownDataModel(cod: 1,title: 'DOMICÍLIO'),
DropDownDataModel(cod: 2,title: 'COMÉRCIO'),
DropDownDataModel(cod: 3,title: 'TERRENO BALDIO'),
DropDownDataModel(cod: 4,title: 'PONTO ESTRATÉGICO'),
DropDownDataModel(cod: 5,title: 'ESCOLA'),
DropDownDataModel(cod: 6,title: 'CRECHE'),
// DropDownDataModel(cod: 2,title: 'COMÉRCIO'),
// DropDownDataModel(cod: 3,title: 'TERRENO BALDIO'),
// DropDownDataModel(cod: 4,title: 'PONTO ESTRATÉGICO'),
// DropDownDataModel(cod: 5,title: 'ESCOLA'),
// DropDownDataModel(cod: 6,title: 'CRECHE'),
DropDownDataModel(cod: 7,title: 'ABRIGO'),
DropDownDataModel(cod: 8,title: 'INSTITUIÇÃO DE LONGA PERMANÊNCIA PARA IDOSOS'),
DropDownDataModel(cod: 9,title: 'UNIDADE PRISIONAL'),
DropDownDataModel(cod: 10,title: 'UNIDADE DE MEDIDA SOCIOEDUCATIVA'),
DropDownDataModel(cod: 11,title: 'DELEGACIA'),
DropDownDataModel(cod: 12,title: 'ESTABELECIMENTO RELIGIOSO'),
// DropDownDataModel(cod: 12,title: 'ESTABELECIMENTO RELIGIOSO'),
DropDownDataModel(cod: 99,title: 'OUTROS'),
];

View File

@@ -1,10 +1,12 @@
class CheckModel{
int cod;
String subtitle;
bool check;
CheckModel({
required this.cod,
required this.subtitle,
required this.check
this.check = false
});
}

View File

@@ -31,14 +31,15 @@ class _AttendanceListScreenState extends State<AttendanceListScreen> {
Database db = await DbSqliteLoad().intialDB();
// visitHome = await db.query('VISITAS_DOMICILIARES');
visitaDomiciliarLista =await db.rawQuery('''
SELECT VD.*, C.*
SELECT VD.*, C.*, VD.SINCRONIZADO
FROM VISITAS_DOMICILIARES VD
INNER JOIN CIDADAOS C ON VD.ID_CIDADAO = C.ID_CIDADAO
WHERE VD.SINCRONIZADO = "N"
''');
cadastroCidadaoLista = await db.query('CIDADAOS WHERE SINCRONIZADO = "N"');
cadastrosIndividuais = await db.query('CADASTROS_INDIVIDUAIS WHERE SINCRONIZADO = "N"');
atendimentoDomiciliarLista =await db.rawQuery('''
SELECT AD.*, C.*
SELECT AD.*, C.*, AD.SINCRONIZADO
FROM ATENDIMENTOS_DOMICILIARES AD
INNER JOIN CIDADAOS C ON AD.ID_CIDADAO = C.ID_CIDADAO
''');

View File

@@ -346,6 +346,7 @@ class _AtendimentoDomiciliarTelaState extends State<AtendimentoDomiciliarTela> {
bool checkValue = condicoes.any((cond) =>cond['COND_AVAL_ATEND_DOM'] == index + 1);
serviceHomeModel.add(
CheckModel(
cod: 0,
subtitle: ConstVariable().serviceHomeCheckConditionlist[index],
check: checkValue,
),
@@ -676,8 +677,9 @@ class _AtendimentoDomiciliarTelaState extends State<AtendimentoDomiciliarTela> {
if(widget.dados==null){
serviceHomeModel.add(
CheckModel(
subtitle: ConstVariable().serviceHomeCheckConditionlist[index],
check: false
cod: 0,
subtitle: ConstVariable().serviceHomeCheckConditionlist[index],
check: false
)
);
}

View File

@@ -485,8 +485,9 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
itemBuilder: (context,index){
serviceConditionModel.add(
CheckModel(
subtitle: ConstVariable().serviceIndividualCheckBoxList[index],
check: false
cod: 0,
subtitle: ConstVariable().serviceIndividualCheckBoxList[index],
check: false
)
);
return CheckBoxSubtitle(
@@ -515,8 +516,9 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
itemBuilder: (context,index){
communicableDiseasesModel.add(
CheckModel(
subtitle: ConstVariable().communicableDiseasesList[index],
check: false
cod: 0,
subtitle: ConstVariable().communicableDiseasesList[index],
check: false
)
);
return CheckBoxSubtitle(
@@ -539,8 +541,9 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
itemBuilder: (context,index){
trackingModel.add(
CheckModel(
subtitle: ConstVariable().trackingModelList[index],
check: false
cod: 0,
subtitle: ConstVariable().trackingModelList[index],
check: false
)
);
return CheckBoxSubtitle(
@@ -731,8 +734,9 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
itemBuilder: (context,index){
nasfPoloModelList.add(
CheckModel(
subtitle: ConstVariable().nasfPoloModelList[index],
check: false
cod: 0,
subtitle: ConstVariable().nasfPoloModelList[index],
check: false
)
);
return CheckBoxSubtitle(
@@ -755,8 +759,9 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
itemBuilder: (context,index){
conductList.add(
CheckModel(
subtitle: ConstVariable().conductModelList[index],
check: false
cod: 0,
subtitle: ConstVariable().conductModelList[index],
check: false
)
);
return CheckBoxSubtitle(
@@ -779,8 +784,9 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
itemBuilder: (context,index){
forwardingList.add(
CheckModel(
subtitle: ConstVariable().forwardingModelList[index],
check: false
cod: 0,
subtitle: ConstVariable().forwardingModelList[index],
check: false
)
);
return CheckBoxSubtitle(

View File

@@ -116,7 +116,6 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
getUsers()async{
await DBQuerys().buscaCidadao(widget.name).then((list){
print(list[0]);
sexoCidadaoFeminino = list[0]['SEXO']=='M'?false:true;
ID_CIDADAO = list[0]['ID_CIDADAO'];
CD_USUARIO_SUS = list[0]['CD_USUARIO_SUS'];
@@ -277,7 +276,7 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
'VISITA_ACOMPANHADA' : VISITA_ACOMPANHADA?1:2,
'DESFECHO' : DESFECHO_COD,
'PESO' : PESO.text.toString().replaceAll(',', '.'),
'ALTURA' : ALTURA.text.toString().replaceAll(',', '.'),
'ALTURA' : ALTURA.text.toString().replaceAll(',','').replaceAll('.',''),
'ID_PROFISSIONAL' : idUsuario,
'CBO_PROFISSIONAL' : CBO_DB,
'INE_PROFISSIONAL' : INE_PROFISSIONAL,
@@ -321,7 +320,7 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
/*busca ativa == 2
VACINA 8*/
if(VACINA){
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,2,8);
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,2,4);
}
/*busca ativa == 2
CONDICIONALIDADES 30*/
@@ -354,21 +353,7 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
if(tipoAcompanhamentoModel[i].check){
print('pegou a $i');
print(tipoAcompanhamentoModel[i].subtitle);
if(i<=13){
print('CODIGO ${i+5}');
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,3,i+5);
}else if(i==14){
/*respiratorios == 32*/
print('CODIGO ${i}');
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,3,32);
}else if(i==15){
print('CODIGO ${i}');
/*tabagista == 33*/
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,3,33);
}else if(i>=16){
print('CODIGO ${i+3}');
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,3,i+3);
}
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,3,tipoAcompanhamentoModel[i].cod);
}
}
/*outros == 4*/
@@ -376,16 +361,7 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
if(outrosModel[i].check){
print('outros a $i');
print(outrosModel[i].subtitle);
/*orientacao prevencao == 31*/
if(i==3){
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,4,31);
}else if(i==4){
print('CODIGO outros ${i+24}');
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,4,i+24);
}else{
print('CODIGO outros ${i+25}');
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,4,i+25);
}
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,4,outrosModel[i].cod);
}
}
for(int i=0;listProc.length>i;i++){
@@ -442,6 +418,7 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
if(index == 0){
tipoVisitaModel.add(
CheckModel(
cod: 0,
subtitle: ConstVariable().tipoVisitaModel[index],
check: tipoVisitaCadastramento
)
@@ -451,6 +428,7 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
if(index == 1){
tipoVisitaModel.add(
CheckModel(
cod: 29,
subtitle: ConstVariable().tipoVisitaModel[index],
check: tipoVisitaPediodica
)
@@ -475,70 +453,28 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
TRATAMENTO_FOCAL = listaVisita.any((cond) =>cond['ID_VISITA_DOM_TIPO'] == 5 && cond['ID_VISITA_COMPLEMENTO'] == 37);
}
for (int i = 0; i < ConstVariable().tipoAcompanhamentoModel.length; i++) {
if(i<=13){
tipoAcompanhamentoModel.add(
CheckModel(
subtitle: ConstVariable().tipoAcompanhamentoModel[i],
check: listaVisita.any((cond) =>cond['ID_VISITA_DOM_TIPO'] == 3 && cond['ID_VISITA_COMPLEMENTO'] == i+5)
)
);
// await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,3,i+5);
}else if(i==14){
/*respiratorios == 32*/
tipoAcompanhamentoModel.add(
CheckModel(
subtitle: ConstVariable().tipoAcompanhamentoModel[i],
check: listaVisita.any((cond) =>cond['ID_VISITA_DOM_TIPO'] == 3 && cond['ID_VISITA_COMPLEMENTO'] == 32)
)
);
}else if(i==15){
/*tabagista == 33*/
tipoAcompanhamentoModel.add(
CheckModel(
subtitle: ConstVariable().tipoAcompanhamentoModel[i],
check: listaVisita.any((cond) =>cond['ID_VISITA_DOM_TIPO'] == 3 && cond['ID_VISITA_COMPLEMENTO'] == 33)
)
);
}else if(i>=16){
tipoAcompanhamentoModel.add(
CheckModel(
subtitle: ConstVariable().tipoAcompanhamentoModel[i],
check: listaVisita.any((cond) =>cond['ID_VISITA_DOM_TIPO'] == 3 && cond['ID_VISITA_COMPLEMENTO'] == i+3)
)
);
}
tipoAcompanhamentoModel.add(
CheckModel(
cod: ConstVariable().tipoAcompanhamentoModel[i].cod,
subtitle: ConstVariable().tipoAcompanhamentoModel[i].subtitle,
check: listaVisita.any((cond) =>cond['ID_VISITA_COMPLEMENTO'] == ConstVariable().tipoAcompanhamentoModel[i].cod)
)
);
}
for(int i=0; ConstVariable().outrosModel.length>i;i++){
/*orientacao prevencao == 31*/
if(i==3){
// await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,4,31);
outrosModel.add(
CheckModel(
subtitle: ConstVariable().outrosModel[i],
check: listaVisita.any((cond) =>cond['ID_VISITA_DOM_TIPO'] == 4 && cond['ID_VISITA_COMPLEMENTO'] == 31)
)
);
}else if(i==4){
// await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,4,i+24);
outrosModel.add(
CheckModel(
subtitle: ConstVariable().outrosModel[i],
check: listaVisita.any((cond) =>cond['ID_VISITA_DOM_TIPO'] == 4 && cond['ID_VISITA_COMPLEMENTO'] == i+24)
)
);
}else{
// await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,4,i+25);
outrosModel.add(
CheckModel(
subtitle: ConstVariable().outrosModel[i],
check: listaVisita.any((cond) =>cond['ID_VISITA_DOM_TIPO'] == 4 && cond['ID_VISITA_COMPLEMENTO'] == i+25)
)
);
}
outrosModel.add(
CheckModel(
cod: ConstVariable().outrosModel[i].cod,
subtitle: ConstVariable().outrosModel[i].subtitle,
check: listaVisita.any((cond) =>cond['ID_VISITA_COMPLEMENTO'] == ConstVariable().outrosModel[i].cod)
)
);
}
PESO.text = map['PESO'];
ALTURA.text = map['ALTURA'];
ALTURA.text = map['ALTURA'].toString().isEmpty?'':'${int.parse(map['ALTURA'])/100}'.replaceAll('.', ',');
CBO_DB = map['CBO_PROFISSIONAL'];
print('CBO_DB');
print(CBO_DB);
for(int i = 0;listCBO.length > i; i++){
String splited = listCBO[i].split(' - ').last;
if(splited == CBO_DB){
@@ -801,6 +737,7 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
if(widget.dados==null){
tipoVisitaModel.add(
CheckModel(
cod: 1,
subtitle: ConstVariable().tipoVisitaModel[index],
check: false
)
@@ -945,7 +882,8 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
if(widget.dados == null){
tipoAcompanhamentoModel.add(
CheckModel(
subtitle: ConstVariable().tipoAcompanhamentoModel[index],
cod: ConstVariable().tipoAcompanhamentoModel[index].cod,
subtitle: ConstVariable().tipoAcompanhamentoModel[index].subtitle,
check: false
)
);
@@ -978,7 +916,8 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
if(widget.dados==null){
outrosModel.add(
CheckModel(
subtitle: ConstVariable().outrosModel[index],
cod: ConstVariable().outrosModel[index].cod,
subtitle: ConstVariable().outrosModel[index].subtitle,
check: false
)
);
@@ -1105,7 +1044,9 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
setState(() {
CBO_PROFISSIONAL = value!;
List list = CBO_PROFISSIONAL.toString().split(' - ');
CBO_DB = list[1];
CBO_DB = list.last;
print('CBO_DB 1');
print(CBO_DB);
});
},
colorBorder: ColorPalette.white,

View File

@@ -15,6 +15,8 @@ class ApiDataPost{
body: jsonEncode(map),
);
print(response.body);
if(response.body == '{"status":1}') {
await DBQuerys().updateCidadao();
await DBQuerys().updateCadastroIndividuais();

View File

@@ -10,6 +10,7 @@ description: RKM AB 2.0.
#versão 1.0.13+14 EDITAR E EXCLUIR VISITA DOMICILIAR E ALTERADA PARA ZERO SEM FORA DE AREA E UM PARA FORA DE AREA. 28/08/2024
#versão 1.0.14+15 AJUSTADA A ALTURA DA LISTA DOS PROCEDIMENTOS E DO ACOMPANHAMENTO, E A MENSAGEM DE AVISO DE NÃO SALVAR QUANDO ESTIVER EM EDIÇÃO. 29/08/2024
#versão 1.0.15+16 AJUSTE DAS RESTRIÇÕES DE VISITAS PERIODICAS, ENVIO DE PESO E ALTURA E DO LOADING. 30/08/2024
#versão 1.0.15+16 AJUSTE DOS CODIGOS, ENVIO DE PESO E ALTURA E SINCRONIZADO QUE NAO EXIBIA. 02/09/2024
publish_to: 'none'
version: 1.0.15+16