From b0843e8376aa5281dcc2a1bfc723938869ce7035 Mon Sep 17 00:00:00 2001 From: Reginaldo Date: Wed, 10 May 2023 11:46:45 -0300 Subject: [PATCH] =?UTF-8?q?sincroniza=C3=A7=C3=A3o=20dos=20dados=20da=20Vi?= =?UTF-8?q?sita=20domiciliar=20ao=20banco=20de=20dados?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../configurations/sinc_data_screen.dart | 2 + .../select_service/home_visit_screen.dart | 178 +++++++++++++++++- lib/service/api/api_data_post.dart | 3 + lib/service/db/db_querys.dart | 17 ++ lib/service/db/db_sqlite_sync.dart | 31 ++- 5 files changed, 226 insertions(+), 5 deletions(-) diff --git a/lib/screens/configurations/sinc_data_screen.dart b/lib/screens/configurations/sinc_data_screen.dart index 347b508..3b9b0cb 100644 --- a/lib/screens/configurations/sinc_data_screen.dart +++ b/lib/screens/configurations/sinc_data_screen.dart @@ -104,9 +104,11 @@ class _SincDataScreenState extends State { // print(tablePROCEDIMENTOS_INDIV_SIGTAP); await DBQuerys().visitasDomiciliares().then((response)async{ tableVISITAS_DOMICILIARES = response; + // print('tableVISITAS_DOMICILIARES'); // print(tableVISITAS_DOMICILIARES); await DBQuerys().visitasDomiciliaresCompl().then((response)async{ tableVISITAS_DOMICILIARES_COMPL = response; + // print('tableVISITAS_DOMICILIARES_COMPL'); // print(tableVISITAS_DOMICILIARES_COMPL); await DBQuerys().visitasDomiciliaresProc().then((response)async{ tableVISITAS_DOMICILIARES_PROC = response; diff --git a/lib/screens/select_service/home_visit_screen.dart b/lib/screens/select_service/home_visit_screen.dart index 0bc1b66..0140b68 100644 --- a/lib/screens/select_service/home_visit_screen.dart +++ b/lib/screens/select_service/home_visit_screen.dart @@ -6,6 +6,7 @@ import '../../config/const_variable.dart'; import '../../models/check_model.dart'; import '../../service/db/db_querys.dart'; import '../../service/db/db_sqlite_load.dart'; +import '../../service/db/db_sqlite_sync.dart'; import '../../service/shared_preferences/shared_preferences_service.dart'; import '../../widgets/alert_dialog_default.dart'; import '../../widgets/appbar_default.dart'; @@ -61,7 +62,9 @@ class _HomeVisitScreenState extends State { int DESFECHO_COD = 0; int ID_PROFISSIONAL=0; int ID_CIDADAO=0; + int ID_EQUIPE=0; + String INE_PROFISSIONAL=''; String CD_USUARIO_SUS=''; String idUnidade = ''; String idUsuario = ''; @@ -133,11 +136,12 @@ class _HomeVisitScreenState extends State { List listSIGTAP = await db.query('PROCEDIMENTOS_SIGTAP'); for(int i = 0; listSIGTAP.length>i;i++){ if(listSIGTAP[i]['COD_PROC_SIGTAP']!=null && listSIGTAP[i]['DESC_PROC_SIGTAP']!=null){ - print(listSIGTAP[i]['COD_PROC_SIGTAP']); - print(listSIGTAP[i]['DESC_PROC_SIGTAP']); PROCEDIMENTOS_SIGTAP.add('${listSIGTAP[i]['COD_PROC_SIGTAP']} - ${listSIGTAP[i]['DESC_PROC_SIGTAP']}'); } } + List listProf = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario); + INE_PROFISSIONAL = listProf[0]['INE']; + ID_EQUIPE = listProf[0]['ID_EQUIPE']; setState(() {}); } @@ -182,11 +186,71 @@ class _HomeVisitScreenState extends State { setState(() { mandatory = false; showCheckError = false; - saveHomeVisit(); + //TIPO VISITA + if(tipoVisitaModel[0].check || tipoVisitaModel[1].check){ + //BUSCA ATIVA + if(CONSULTA || VACINA || EXAME || CONDICIONALIDADES){ + //CONTROLE AMBIENTAL + if(ACAO_EDUCATIVA || ACAO_MECANICA || IMOVEL_FOCO || TRATAMENTO_FOCAL){ + bool check1 = false; + bool check2 = false; + for(int i=0; tipoAcompanhamentoModel.length>i;i++){ + if(tipoAcompanhamentoModel[i].check){ + print('pegou a $i'); + check1 = true; + break; + } + } + for(int i=0; outrosModel.length>i;i++){ + if(outrosModel[i].check){ + print('outros $i'); + check2 = true; + break; + } + } + if(!check1 || !check2){ + AlertDialogDefault().alert( + context, + 'Aviso', + 'É obrigatória a seleção de pelo menos uma opção dentre os campos Tipo da Visita, Busca ativa, Controle Ambiental, Acompanhamento e Outros.', + 'OK' + ); + } + if(check1 && check2){ + print('save'); + saveHomeVisit(); + } + + }else{ + print('AQUI'); + AlertDialogDefault().alert( + context, + 'Aviso', + 'É obrigatória a seleção de pelo menos uma opção dentre os campos Tipo da Visita, Busca ativa, Controle Ambiental, Acompanhamento e Outros.', + 'OK' + ); + } + }else{ + print('nesse'); + AlertDialogDefault().alert( + context, + 'Aviso', + 'É obrigatória a seleção de pelo menos uma opção dentre os campos Tipo da Visita, Busca ativa, Controle Ambiental, Acompanhamento e Outros.', + 'OK' + ); + } + }else{ + AlertDialogDefault().alert( + context, + 'Aviso', + 'É obrigatória a seleção de pelo menos uma opção dentre os campos Tipo da Visita, Busca ativa, Controle Ambiental, Acompanhamento e Outros.', + 'OK' + ); + } }); } } - saveHomeVisit(){ + saveHomeVisit()async{ Map row = { 'ID_CIDADAO' : ID_CIDADAO, 'CD_USUARIO_SUS' : CD_USUARIO_SUS, @@ -206,6 +270,112 @@ class _HomeVisitScreenState extends State { 'COMPLEMENTO' : COMPLEMENTO.text, 'SINCRONIZADO' : 'N', }; + await DbSqliteSync().insertVisitaDomiciliar(row).then((value)async{ + print('value'); + print(value); + //tipo visita == 1 + for(int i = 0;tipoVisitaModel.length>i;i++){ + if(tipoVisitaModel[i].check){ + //cadastramento = 1 + if(i==0){ + await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,1,1); + }else if(i == 1){ + //periodica = 29 + await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,1,29); + } + } + } + //busca ativa == 2 + //CONSULTA 2 + if(CONSULTA){ + await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,2,2); + } + //busca ativa == 2 + //EXAME 3 + if(EXAME){ + await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,2,3); + } + //busca ativa == 2 + //VACINA 8 + if(VACINA){ + await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,2,8); + } + //busca ativa == 2 + //CONDICIONALIDADES 30 + if(CONDICIONALIDADES){ + await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,2,30); + } + //controle ambiental == 5 + // ACAO_EDUCATIVA == 34 + if(ACAO_EDUCATIVA){ + await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,5,34); + } + //controle ambiental == 5 + // IMOVEL_FOCO == 35 + if(IMOVEL_FOCO){ + await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,5,35); + } + //controle ambiental == 5 + // ACAO_MECANICA == 36 + if(ACAO_MECANICA){ + await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,5,36); + } + //controle ambiental == 5 + // TRATAMENTO_FOCAL == 37 + if(TRATAMENTO_FOCAL){ + await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,5,37); + } + + //ACOMPANHAMENTO == 3 + for(int i=0; tipoAcompanhamentoModel.length>i;i++){ + 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); + } + } + } + //outros == 4 + for(int i=0; outrosModel.length>i;i++){ + 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); + } + } + } + for(int i=0;listProc.length>i;i++){ + List splitted = listProc[i].toString().split(' '); + await DbSqliteSync().insertVISITAS_DOMICILIARES_PROC(value,splitted[0]); + } + AlertDialogDefault().alert( + context, + 'Aviso', + 'Visita Domiciliar realizada com sucesso!', + 'OK' + ); + }); } @override diff --git a/lib/service/api/api_data_post.dart b/lib/service/api/api_data_post.dart index 702631b..4b03ff0 100644 --- a/lib/service/api/api_data_post.dart +++ b/lib/service/api/api_data_post.dart @@ -22,6 +22,9 @@ class ApiDataPost{ await DBQuerys().updateATENDIMENTOS_DOMICILIARES(); await DBQuerys().deleteATENDS_DOM_COMPL(); await DBQuerys().deleteATENDS_DOM_PROC(); + await DBQuerys().updateVISITAS_DOMICILIARES(); + await DBQuerys().deleteVISITAS_DOMICILIARES_COMPL(); + await DBQuerys().deleteVISITAS_DOMICILIARES_PROC(); return json.decode(response.body); }else{ return 'error'; diff --git a/lib/service/db/db_querys.dart b/lib/service/db/db_querys.dart index 7bee10a..848240a 100644 --- a/lib/service/db/db_querys.dart +++ b/lib/service/db/db_querys.dart @@ -515,4 +515,21 @@ class DBQuerys{ String query = 'DELETE FROM ATENDS_DOM_PROC WHERE ID_ATENDIMENTO_DOMICILIAR <> 0;'; await db.execute(query); } + Future updateVISITAS_DOMICILIARES()async{ + Map row = { + 'SINCRONIZADO': 'S', + }; + Database db = await DbSqliteLoad().intialDB(); + await db.update('VISITAS_DOMICILIARES', row,where: "SINCRONIZADO = 'N'"); + } + Future deleteVISITAS_DOMICILIARES_COMPL()async{ + Database db = await DbSqliteLoad().intialDB(); + String query = 'DELETE FROM VISITAS_DOMICILIARES_COMPL WHERE ID_VISITA_DOMICILIAR <> 0;'; + await db.execute(query); + } + Future deleteVISITAS_DOMICILIARES_PROC()async{ + Database db = await DbSqliteLoad().intialDB(); + String query = 'DELETE FROM VISITAS_DOMICILIARES_PROC WHERE ID_VISITA_DOMICILIAR <> 0;'; + await db.execute(query); + } } \ No newline at end of file diff --git a/lib/service/db/db_sqlite_sync.dart b/lib/service/db/db_sqlite_sync.dart index 48a99e1..4f0b103 100644 --- a/lib/service/db/db_sqlite_sync.dart +++ b/lib/service/db/db_sqlite_sync.dart @@ -459,7 +459,7 @@ class DbSqliteSync{ Future insertAtendimentoDomiciliar(var value)async{ Database db = await DbSqliteLoad().intialDB(); int id = await db.insert('ATENDIMENTOS_DOMICILIARES', value); - print(await db.query('ATENDIMENTOS_DOMICILIARES')); + // print(await db.query('ATENDIMENTOS_DOMICILIARES')); return id; } Future insertCondicoesAvaliadas(int ID_ATENDIMENTO_DOMICILIAR,int COND_AVAL_ATEND_DOM)async{ @@ -473,6 +473,24 @@ class DbSqliteSync{ // print(await db.query('ATENDS_DOM_COMPL')); return db; } + Future insertVisitaDomiciliar(var value)async{ + Database db = await DbSqliteLoad().intialDB(); + int id = await db.insert('VISITAS_DOMICILIARES', value); + print(await db.query('VISITAS_DOMICILIARES')); + return id; + } + Future insertVisitaDomiciliarCOMPL(int ID_VISITA_DOMICILIAR,int ID_VISITA_DOM_TIPO, int ID_VISITA_COMPLEMENTO)async{ + Database db = await DbSqliteLoad().intialDB(); + // ATENDS_DOM_COMPL (ID_ATENDIMENTO_DOMICILIAR INTEGER, COND_AVAL_ATEND_DOM INTEGER) + Map row = { + 'ID_VISITA_DOMICILIAR' :ID_VISITA_DOMICILIAR, + 'ID_VISITA_DOM_TIPO' :ID_VISITA_DOM_TIPO, + 'ID_VISITA_COMPLEMENTO' :ID_VISITA_COMPLEMENTO, + }; + int id = await db.insert('VISITAS_DOMICILIARES_COMPL', row); + print(await db.query('VISITAS_DOMICILIARES_COMPL')); + return db; + } Future insertProcedimentosDomiciliares(int ID_ATENDIMENTO_DOMICILIAR,int PROC_ATEND_DOM)async{ Database db = await DbSqliteLoad().intialDB(); // ATENDS_DOM_COMPL (ID_ATENDIMENTO_DOMICILIAR INTEGER, COND_AVAL_ATEND_DOM INTEGER) @@ -484,6 +502,17 @@ class DbSqliteSync{ print(await db.query('ATENDS_DOM_PROC')); return db; } + Future insertVISITAS_DOMICILIARES_PROC(int ID_VISITA_DOMICILIAR,String COD_PROC_SIGTAP)async{ + Database db = await DbSqliteLoad().intialDB(); + // ATENDS_DOM_COMPL (ID_ATENDIMENTO_DOMICILIAR INTEGER, COND_AVAL_ATEND_DOM INTEGER) + Map row = { + 'ID_VISITA_DOMICILIAR' :ID_VISITA_DOMICILIAR, + 'COD_PROC_SIGTAP' :COD_PROC_SIGTAP, + }; + int id = await db.insert('VISITAS_DOMICILIARES_PROC', row); + print(await db.query('VISITAS_DOMICILIARES_PROC')); + return db; + } Future saveSync(codCity,codState,urlAPI,mode,nameCityApi,nameCityFront,codCityIbge,user,idUnidade,nomeUnidade,area,microarea)async{ Database db = await DbSqliteLoad().intialDB(); //refatorar cidade_load e nome_cidade