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-08-30 17:05:15 -03:00
parent 763d101162
commit 74b5acdb45
2 changed files with 183 additions and 21 deletions

View File

@@ -55,6 +55,7 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
bool ACAO_MECANICA = false;
bool IMOVEL_FOCO = false;
bool TRATAMENTO_FOCAL = false;
bool sexoCidadaoFeminino = false;
bool carregando = true;
@@ -115,6 +116,8 @@ 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'];
});
@@ -191,9 +194,7 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
listProf = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario);
INE_PROFISSIONAL = listProf[0]['INE'];
ID_EQUIPE = listProf[0]['ID_EQUIPE'];
if(widget.dados==null){
carregando = false;
}
carregando = false;
setState(() {});
if(widget.dados!=null){
@@ -234,7 +235,9 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
ok*/
//salvar
if(date.isEmpty || dateDB.isEmpty || TIPO_IMOVEL_COD==0 || DESFECHO_COD ==0 || TURNO_COD == 0 || CBO_PROFISSIONAL == null
if(date.isEmpty || dateDB.isEmpty || TIPO_IMOVEL_COD==0 || DESFECHO_COD ==0 || TURNO_COD == 0 || CBO_PROFISSIONAL == null ||
( ALTURA.text.isEmpty?false:double.parse(ALTURA.text.replaceAll(',', '.'))<=0.2 && double.parse(ALTURA.text.replaceAll(',', '.')) >= 2.5 && ALTURA.text.isEmpty) ||
( PESO.text.isEmpty?false:double.parse(PESO.text.replaceAll(',', '.'))<=0.5 && double.parse(PESO.text.replaceAll(',', '.')) >= 500 && PESO.text.isEmpty)
){
print('erro principal');
setState(() {
@@ -273,8 +276,8 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
'TIPO_IMOVEL' : TIPO_IMOVEL_COD,
'VISITA_ACOMPANHADA' : VISITA_ACOMPANHADA?1:2,
'DESFECHO' : DESFECHO_COD,
'PESO' : PESO.text,
'ALTURA' : ALTURA.text,
'PESO' : PESO.text.toString().replaceAll(',', '.'),
'ALTURA' : ALTURA.text.toString().replaceAll(',', '.'),
'ID_PROFISSIONAL' : idUsuario,
'CBO_PROFISSIONAL' : CBO_DB,
'INE_PROFISSIONAL' : INE_PROFISSIONAL,
@@ -570,6 +573,79 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
setState(() {});
}
alerta_cadastramento_atualizacao() {
double width = MediaQuery.of(context).size.width;
return showDialog(
context: context,
builder: (context){
return AlertDialog(
title: TextDefault(
text: 'Aviso',
color: ColorPalette.black54,
textAlign: TextAlign.center,
fontWeigth: FontWeight.bold,
),
content: TextDefault(
text: 'Quando o motivo da visita for uma das opções:\n'
'- Cadastramento/Atualização\n'
'- Busca Ativa\n'
'- Acompanhamento\n'
'- Egresso de Internação\n'
'O motivo "Visita periódica" não pode ser selecionado.',
color: ColorPalette.black54,
maxLines: 7,
),
actions: [
ButtonDefault(
onPressed: ()=>Navigator.pop(context),
title: 'OK',
width: width*0.15,
textColor: ColorPalette.white,
borderColor: ColorPalette.appBar,
background: ColorPalette.appBar,
)
],
);
}
);
}
alerta_visita_periodica() {
double width = MediaQuery.of(context).size.width;
return showDialog(
context: context,
builder: (context){
return AlertDialog(
title: TextDefault(
text: 'Aviso',
color: ColorPalette.black54,
textAlign: TextAlign.center,
fontWeigth: FontWeight.bold,
),
content: TextDefault(
text: 'O motivo da visita já foi selecionada como Visita periódica. Para selecionar um outro motivo, desmarque esta opção.',
color: ColorPalette.black54,
maxLines: 7,
),
actions: [
ButtonDefault(
onPressed: ()=>Navigator.pop(context),
title: 'OK',
width: width*0.15,
textColor: ColorPalette.white,
borderColor: ColorPalette.appBar,
background: ColorPalette.appBar,
)
],
);
}
);
}
@override
void initState() {
super.initState();
@@ -732,14 +808,34 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
}
return CheckBoxSubtitle(
ontap:DESFECHO != 'VISITA REALIZADA'?null: (){
setState((){
if(tipoVisitaModel[0].check == true && tipoVisitaModel[1].check == false && index == 1){
alerta_cadastramento_atualizacao();
}else if(tipoVisitaModel[0].check == false && tipoVisitaModel[1].check == true && index == 0){
alerta_visita_periodica();
}else if(CONSULTA || EXAME || VACINA || CONDICIONALIDADES ||
tipoAcompanhamentoModel.any((element) => element.check) ||outrosModel[0].check ){
alerta_cadastramento_atualizacao();
}else{
tipoVisitaModel[index].check?tipoVisitaModel[index].check=false:tipoVisitaModel[index].check=true;
});
}
setState((){});
},
subtitle: tipoVisitaModel[index].subtitle,
checkbox:tipoVisitaModel[index].check,
width: width*0.6,
onChanged:DESFECHO != 'VISITA REALIZADA'?null: (value)=>setState(()=>tipoVisitaModel[index].check=value),
onChanged:DESFECHO != 'VISITA REALIZADA'?null: (value){
if(tipoVisitaModel[0].check == true && tipoVisitaModel[1].check == false && index == 1){
alerta_cadastramento_atualizacao();
}else if(tipoVisitaModel[0].check == false && tipoVisitaModel[1].check == true && index == 0){
alerta_visita_periodica();
}else if(CONSULTA || EXAME || VACINA || CONDICIONALIDADES ||
tipoAcompanhamentoModel.any((element) => element.check) || outrosModel[0].check){
alerta_cadastramento_atualizacao();
}else{
tipoVisitaModel[index].check=value;
}
setState(() {});
},
);
}
),
@@ -751,10 +847,34 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
checkbox2: VACINA,
subtitle1: 'CONSULTA',
subtitle2: 'VACINA',
onChanged1: DESFECHO != 'VISITA REALIZADA'?null:(value)=>setState(()=>CONSULTA=value),
onChanged2: DESFECHO != 'VISITA REALIZADA'?null: (value)=>setState(()=>VACINA=value),
ontap1: DESFECHO != 'VISITA REALIZADA'?null: ()=>setState(()=>CONSULTA?CONSULTA=false:CONSULTA=true),
ontap2: DESFECHO != 'VISITA REALIZADA'?null: ()=>setState(()=>VACINA?VACINA=false:VACINA=true),
onChanged1: DESFECHO != 'VISITA REALIZADA'?null:(value){
if(tipoVisitaModel[1].check == true){
alerta_visita_periodica();
}else{
setState(()=>CONSULTA=value);
}
},
onChanged2: DESFECHO != 'VISITA REALIZADA'?null: (value){
if(tipoVisitaModel[1].check == true){
alerta_visita_periodica();
}else{
setState(()=>VACINA=value);
}
},
ontap1: DESFECHO != 'VISITA REALIZADA'?null: (){
if(tipoVisitaModel[1].check == true){
alerta_visita_periodica();
}else{
setState(()=>CONSULTA?CONSULTA=false:CONSULTA=true);
}
},
ontap2: DESFECHO != 'VISITA REALIZADA'?null: (){
if(tipoVisitaModel[1].check == true){
alerta_visita_periodica();
}else{
setState(()=>VACINA?VACINA=false:VACINA=true);
}
},
),
CheckBoxTwoSubtitle(
width: width*0.7,
@@ -762,10 +882,34 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
checkbox2: CONDICIONALIDADES,
subtitle1: 'EXAME',
subtitle2: 'CONDICIONALIDADES',
onChanged1: DESFECHO != 'VISITA REALIZADA'?null:(value)=>setState(()=>EXAME=value),
onChanged2: DESFECHO != 'VISITA REALIZADA'?null:(value)=>setState(()=>CONDICIONALIDADES=value),
ontap1: DESFECHO != 'VISITA REALIZADA'?null: ()=>setState(()=>EXAME?EXAME=false:EXAME=true),
ontap2: DESFECHO != 'VISITA REALIZADA'?null: ()=>setState(()=>CONDICIONALIDADES?CONDICIONALIDADES=false:CONDICIONALIDADES=true),
onChanged1: DESFECHO != 'VISITA REALIZADA'?null:(value){
if(tipoVisitaModel[1].check == true){
alerta_visita_periodica();
}else{
setState(()=>EXAME=value);
}
},
onChanged2: DESFECHO != 'VISITA REALIZADA'?null:(value){
if(tipoVisitaModel[1].check == true){
alerta_visita_periodica();
}else{
setState(()=>CONDICIONALIDADES=value);
}
},
ontap1: DESFECHO != 'VISITA REALIZADA'?null: (){
if(tipoVisitaModel[1].check == true){
alerta_visita_periodica();
}else{
setState(()=>EXAME?EXAME=false:EXAME=true);
}
},
ontap2: DESFECHO != 'VISITA REALIZADA'?null: (){
if(tipoVisitaModel[1].check == true){
alerta_visita_periodica();
}else{
setState(()=>CONDICIONALIDADES?CONDICIONALIDADES=false:CONDICIONALIDADES=true);
}
},
),
TitleContainers(title: 'Controle Ambiental',width: width*0.7,textAling: TextAlign.start,fontSize: 15),
CheckBoxTwoSubtitle(
@@ -810,7 +954,15 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
subtitle: tipoAcompanhamentoModel[index].subtitle,
checkbox:tipoAcompanhamentoModel[index].check,
width: width*0.6,
onChanged:DESFECHO != 'VISITA REALIZADA'?null: (value)=>setState(()=>tipoAcompanhamentoModel[index].check=value),
onChanged:DESFECHO != 'VISITA REALIZADA' || ((tipoAcompanhamentoModel[index].subtitle=='GESTANTE' && !sexoCidadaoFeminino)
|| (tipoAcompanhamentoModel[index].subtitle=='PUÉRPERA' && !sexoCidadaoFeminino)) ?null
: (value){
if(tipoVisitaModel[1].check == true){
alerta_visita_periodica();
}else{
setState(()=>tipoAcompanhamentoModel[index].check=value);
}
},
);
}
),
@@ -835,7 +987,13 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
subtitle: outrosModel[index].subtitle,
checkbox:outrosModel[index].check,
width: width*0.6,
onChanged: (value)=>setState(()=>outrosModel[index].check=value),
onChanged: (value){
if(tipoVisitaModel[1].check == true && index==0){
alerta_visita_periodica();
}else{
setState(()=>outrosModel[index].check=value);
}
},
);
}
),
@@ -864,17 +1022,19 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
InputWithSubtitle(
controller: PESO,
subtitle: 'Peso (em Kg - 000,000)',
// errorInput: PESO.text.isEmpty || PESO.text.length<2?'':double.parse(PESO.text.replaceAll(',', '.'))<0.5 && double.parse(PESO.text.replaceAll(',', '.'))>500?'O peso do paciente deve estar entre 0,5 e 500 kg':'',
errorInput: '',
labelInput: 'Peso (em Kg - 000,000)',
widthInput: width*0.7,
widthSubtitle: width*0.7,
hintInput: 'Escreva aqui',
mandatory: false,
mandatory: true,
enabled: true,
maxLength: 7,
textInputType: TextInputType.number,
onChanged: (v)=>setState((){}),
),
PESO.text.isEmpty || PESO.text.length<2?Container():double.parse(PESO.text.replaceAll(',', '.'))>=0.5 && double.parse(PESO.text.replaceAll(',', '.'))<=500?Container():ErrorDefault(error: 'O peso do paciente deve estar entre 0,5 e 500 kg',),
InputWithSubtitle(
controller: ALTURA,
subtitle: 'Altura (em metros - 0,00)',
@@ -889,6 +1049,7 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
textInputType: TextInputType.number,
onChanged: (v)=>setState((){}),
),
ALTURA.text.isEmpty || ALTURA.text.length<1?Container():double.parse(ALTURA.text.replaceAll(',', '.'))>=0.2 && double.parse(ALTURA.text.replaceAll(',', '.'))<=2.5?Container():ErrorDefault(error: 'A altura do paciente deve estar entre 0,20 e 2,5 metros.',),
],
)
],

View File

@@ -9,9 +9,10 @@ description: RKM AB 2.0.
#versão 1.0.13+14 SETSTATE SALVAR DADOS CIDADAO E EDITAR E EXCLUIR ATENDICMENTO E VISITA. 27/08/2024
#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
publish_to: 'none'
version: 1.0.14+15
version: 1.0.15+16
environment:
sdk: '>=3.2.3 <4.0.0'