versão 1.0.13+14 edicao da visita_domiciliar_tela.dart
This commit is contained in:
@@ -27,7 +27,8 @@ import '../../widgets/title_containers.dart';
|
||||
class VisitaDomiciliarTela extends StatefulWidget {
|
||||
String name;
|
||||
String username;
|
||||
VisitaDomiciliarTela({required this.name, required this.username});
|
||||
var dados;
|
||||
VisitaDomiciliarTela({required this.name, required this.username, required this.dados});
|
||||
|
||||
@override
|
||||
State<VisitaDomiciliarTela> createState() => _VisitaDomiciliarTelaState();
|
||||
@@ -55,6 +56,8 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
|
||||
bool IMOVEL_FOCO = false;
|
||||
bool TRATAMENTO_FOCAL = false;
|
||||
|
||||
bool carregando = true;
|
||||
|
||||
String? TURNO;
|
||||
String? TIPO_IMOVEL;
|
||||
String? DESFECHO;
|
||||
@@ -67,6 +70,7 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
|
||||
int ID_PROFISSIONAL=0;
|
||||
int ID_CIDADAO=0;
|
||||
int ID_EQUIPE=0;
|
||||
int ID_VISITA_DOMICILIAR=0;
|
||||
String CBO_DB ='0';
|
||||
|
||||
String INE_PROFISSIONAL='';
|
||||
@@ -157,11 +161,6 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
|
||||
}
|
||||
}
|
||||
|
||||
print('PROCEDIMENTOS_SIGTAP');
|
||||
print(PROCEDIMENTOS_SIGTAP.length);
|
||||
print(PROCEDIMENTOS_SIGTAP[0]);
|
||||
|
||||
|
||||
if(listcbo.length!=0){
|
||||
for(int i = 0; listcbo.length>i;i++){
|
||||
await DBQuerys().buscaCBOSProfissional(listcbo[i]['CODIGO_CBO']).then((cbo)async{
|
||||
@@ -192,7 +191,14 @@ 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;
|
||||
}
|
||||
setState(() {});
|
||||
|
||||
if(widget.dados!=null){
|
||||
editarVisita();
|
||||
}
|
||||
}
|
||||
|
||||
loadLists()async {
|
||||
@@ -278,10 +284,16 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
|
||||
'COMPLEMENTO' : COMPLEMENTO.text,
|
||||
'SINCRONIZADO' : 'N',
|
||||
};
|
||||
await DbSqliteSync().insertVisitaDomiciliar(row).then((value)async{
|
||||
await DbSqliteSync().insertVisitaDomiciliar(row,ID_VISITA_DOMICILIAR, widget.dados==null).then((value)async{
|
||||
// print('value');
|
||||
// print(value);
|
||||
/*tipo visita == 1*/
|
||||
Database db = await DbSqliteLoad().intialDB();
|
||||
await db.delete(
|
||||
'VISITAS_DOMICILIARES_COMPL', // Substitua pelo nome da sua tabela
|
||||
where: 'ID_VISITA_DOMICILIAR = ?',
|
||||
whereArgs: [ID_VISITA_DOMICILIAR],
|
||||
);
|
||||
for(int i = 0;tipoVisitaModel.length>i;i++){
|
||||
if(tipoVisitaModel[i].check){
|
||||
/*cadastramento = 1*/
|
||||
@@ -386,10 +398,178 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
|
||||
Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context)=>HomeScreen(username: widget.username)), (route) => false);
|
||||
}
|
||||
);
|
||||
// Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context)=>HomeScreen(username: widget.username)), (route) => false);
|
||||
});
|
||||
}
|
||||
|
||||
editarVisita()async{
|
||||
Map map = widget.dados;
|
||||
map.forEach((chave, valor){
|
||||
print('$chave : $valor');
|
||||
});
|
||||
ID_VISITA_DOMICILIAR = map['ID_VISITA_DOMICILIAR'];
|
||||
dateDB = map['DT_ATENDIMENTO'];
|
||||
List splited = dateDB.split('-');
|
||||
date = '${splited[2]}/${splited[1]}/${splited[0]}';
|
||||
TURNO_COD = map['TURNO'];
|
||||
for(int i = 0;ConstVariable().typeTurnService.length >i;i++){
|
||||
if(ConstVariable().typeTurnService[i].cod == TURNO_COD){
|
||||
TURNO = ConstVariable().typeTurnService[i].title;
|
||||
}
|
||||
}
|
||||
TIPO_IMOVEL_COD = map['TIPO_IMOVEL'];
|
||||
for(int i = 0;ConstVariable().listTypeHome.length >i;i++){
|
||||
if(ConstVariable().listTypeHome[i].cod == TIPO_IMOVEL_COD){
|
||||
TIPO_IMOVEL = ConstVariable().listTypeHome[i].title;
|
||||
}
|
||||
}
|
||||
VISITA_ACOMPANHADA = map['VISITA_ACOMPANHADA']==1?true:false;
|
||||
DESFECHO_COD = map['DESFECHO'];
|
||||
for(int i = 0;ConstVariable().listDesfecho.length >i;i++){
|
||||
if(ConstVariable().listDesfecho[i].cod == DESFECHO_COD){
|
||||
DESFECHO = ConstVariable().listDesfecho[i].title;
|
||||
}
|
||||
}
|
||||
Database db = await DbSqliteLoad().intialDB();
|
||||
List listaVisita = await db.query('VISITAS_DOMICILIARES_COMPL WHERE ID_VISITA_DOMICILIAR = $ID_VISITA_DOMICILIAR');
|
||||
for (int index = 0; index < ConstVariable().tipoVisitaModel.length; index++) {
|
||||
bool tipoVisitaCadastramento = listaVisita.any((cond) =>cond['ID_VISITA_DOM_TIPO'] == 1 && cond['ID_VISITA_COMPLEMENTO'] == 1);
|
||||
bool tipoVisitaPediodica = listaVisita.any((cond) =>cond['ID_VISITA_DOM_TIPO'] == 1 && cond['ID_VISITA_COMPLEMENTO'] == 29);
|
||||
|
||||
//TIPO DE VISITA CADASTRAMENTO/ATUALIZAÇÃO
|
||||
if(index == 0){
|
||||
tipoVisitaModel.add(
|
||||
CheckModel(
|
||||
subtitle: ConstVariable().tipoVisitaModel[index],
|
||||
check: tipoVisitaCadastramento
|
||||
)
|
||||
);
|
||||
}
|
||||
//TIPO DE VISITA PERIÓDICA
|
||||
if(index == 1){
|
||||
tipoVisitaModel.add(
|
||||
CheckModel(
|
||||
subtitle: ConstVariable().tipoVisitaModel[index],
|
||||
check: tipoVisitaPediodica
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
//BUSCA ATIVA CONSULTA
|
||||
CONSULTA = listaVisita.any((cond) =>cond['ID_VISITA_DOM_TIPO'] == 2 && cond['ID_VISITA_COMPLEMENTO'] == 2);
|
||||
//BUSCA ATIVA EXAME
|
||||
EXAME = listaVisita.any((cond) =>cond['ID_VISITA_DOM_TIPO'] == 2 && cond['ID_VISITA_COMPLEMENTO'] == 3);
|
||||
//BUSCA ATIVA VACINA
|
||||
VACINA = listaVisita.any((cond) =>cond['ID_VISITA_DOM_TIPO'] == 2 && cond['ID_VISITA_COMPLEMENTO'] == 8);
|
||||
//BUSCA ATIVA CONDICIONALIDADES
|
||||
CONDICIONALIDADES = listaVisita.any((cond) =>cond['ID_VISITA_DOM_TIPO'] == 2 && cond['ID_VISITA_COMPLEMENTO'] == 30);
|
||||
//BUSCA ATIVA ACAO_EDUCATIVA
|
||||
ACAO_EDUCATIVA = listaVisita.any((cond) =>cond['ID_VISITA_DOM_TIPO'] == 5 && cond['ID_VISITA_COMPLEMENTO'] == 34);
|
||||
//BUSCA ATIVA IMOVEL_FOCO
|
||||
IMOVEL_FOCO = listaVisita.any((cond) =>cond['ID_VISITA_DOM_TIPO'] == 5 && cond['ID_VISITA_COMPLEMENTO'] == 35);
|
||||
//BUSCA ATIVA ACAO_MECANICA
|
||||
ACAO_MECANICA = listaVisita.any((cond) =>cond['ID_VISITA_DOM_TIPO'] == 5 && cond['ID_VISITA_COMPLEMENTO'] == 36);
|
||||
//BUSCA ATIVA TRATAMENTO_FOCAL
|
||||
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)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
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)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
PESO.text = map['PESO'];
|
||||
ALTURA.text = map['ALTURA'];
|
||||
CBO_DB = map['CBO_PROFISSIONAL'];
|
||||
for(int i = 0;listCBO.length > i; i++){
|
||||
String splited = listCBO[i].split(' - ').last;
|
||||
if(splited == CBO_DB){
|
||||
CBO_PROFISSIONAL = listCBO[i];
|
||||
}
|
||||
}
|
||||
List listINE = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario);
|
||||
int AREA_DESCRICAO = 0;
|
||||
int MICROAREA_DESCRICAO = 0;
|
||||
for(int i = 0;listINE.length >i;i++){
|
||||
if(listINE[i]['ID_EQUIPE']==ID_EQUIPE){
|
||||
INE_PROFISSIONAL = listINE[i]['INE']??'';
|
||||
AREA_DESCRICAO = listINE[i]['AREA'];
|
||||
MICROAREA_DESCRICAO = listINE[i]['MICROAREA'];
|
||||
}
|
||||
}
|
||||
for(int i = 0;listINEPROF.length >i;i++){
|
||||
RegExp ineRegExp = RegExp(r"INE:\s(\d+)");
|
||||
RegExp areaRegExp = RegExp(r"Área:\s(\d+)");
|
||||
RegExp microareaRegExp = RegExp(r"Microárea\s:\s(\d+)");
|
||||
|
||||
String ine = ineRegExp.firstMatch(listINEPROF[i])?.group(1) ?? '';
|
||||
String area = areaRegExp.firstMatch(listINEPROF[i])?.group(1) ?? '';
|
||||
String microarea = microareaRegExp.firstMatch(listINEPROF[i])?.group(1) ?? '';
|
||||
|
||||
if(INE_PROFISSIONAL==ine && AREA_DESCRICAO.toString() == area && MICROAREA_DESCRICAO.toString() == microarea){
|
||||
INE_RESP_CADASTRO = listINEPROF[i];
|
||||
}
|
||||
}
|
||||
COMPLEMENTO.text = map['COMPLEMENTO'];
|
||||
carregando = false;
|
||||
setState(() {});
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
@@ -409,7 +589,18 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
|
||||
height: double.infinity,
|
||||
width: double.infinity,
|
||||
decoration: ConstVariable().backgroundGradient,
|
||||
child: ListView(
|
||||
child: carregando?Center(child: Card(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
CircularProgressIndicator(),
|
||||
TextDefault(text: 'Carregando dados ...',color: ColorPalette.black54,)
|
||||
],
|
||||
),
|
||||
)
|
||||
)):ListView(
|
||||
children: [
|
||||
Card(
|
||||
margin: EdgeInsets.all(10),
|
||||
@@ -527,16 +718,18 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
|
||||
Container(
|
||||
width: width*0.7,
|
||||
height: heigth*0.1,
|
||||
child: ListView.builder(
|
||||
child: tipoVisitaModel.isEmpty && widget.dados!=null?Container():ListView.builder(
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemCount: ConstVariable().tipoVisitaModel.length,
|
||||
itemBuilder: (context,index){
|
||||
tipoVisitaModel.add(
|
||||
CheckModel(
|
||||
subtitle: ConstVariable().tipoVisitaModel[index],
|
||||
check: false
|
||||
)
|
||||
);
|
||||
if(widget.dados==null){
|
||||
tipoVisitaModel.add(
|
||||
CheckModel(
|
||||
subtitle: ConstVariable().tipoVisitaModel[index],
|
||||
check: false
|
||||
)
|
||||
);
|
||||
}
|
||||
return CheckBoxSubtitle(
|
||||
ontap:DESFECHO != 'VISITA REALIZADA'?null: (){
|
||||
setState((){
|
||||
@@ -601,16 +794,18 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
|
||||
Container(
|
||||
width: width*0.7,
|
||||
height: heigth*0.9,
|
||||
child: ListView.builder(
|
||||
child: widget.dados!=null && tipoAcompanhamentoModel.isEmpty?Container():ListView.builder(
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemCount: ConstVariable().tipoAcompanhamentoModel.length,
|
||||
itemBuilder: (context,index){
|
||||
tipoAcompanhamentoModel.add(
|
||||
CheckModel(
|
||||
subtitle: ConstVariable().tipoAcompanhamentoModel[index],
|
||||
check: false
|
||||
)
|
||||
);
|
||||
if(widget.dados == null){
|
||||
tipoAcompanhamentoModel.add(
|
||||
CheckModel(
|
||||
subtitle: ConstVariable().tipoAcompanhamentoModel[index],
|
||||
check: false
|
||||
)
|
||||
);
|
||||
}
|
||||
return CheckBoxSubtitle(
|
||||
subtitle: tipoAcompanhamentoModel[index].subtitle,
|
||||
checkbox:tipoAcompanhamentoModel[index].check,
|
||||
@@ -624,16 +819,18 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
|
||||
Container(
|
||||
width: width*0.7,
|
||||
height: heigth*0.22,
|
||||
child: ListView.builder(
|
||||
child: outrosModel.isEmpty && widget.dados!=null?Container():ListView.builder(
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemCount: ConstVariable().outrosModel.length,
|
||||
itemBuilder: (context,index){
|
||||
outrosModel.add(
|
||||
CheckModel(
|
||||
subtitle: ConstVariable().outrosModel[index],
|
||||
check: false
|
||||
)
|
||||
);
|
||||
if(widget.dados==null){
|
||||
outrosModel.add(
|
||||
CheckModel(
|
||||
subtitle: ConstVariable().outrosModel[index],
|
||||
check: false
|
||||
)
|
||||
);
|
||||
}
|
||||
return CheckBoxSubtitle(
|
||||
subtitle: outrosModel[index].subtitle,
|
||||
checkbox:outrosModel[index].check,
|
||||
|
||||
Reference in New Issue
Block a user