sincronização dos dados da Visita domiciliar ao banco de dados

This commit is contained in:
Reginaldo
2023-05-10 11:46:45 -03:00
parent a480eb96c1
commit b0843e8376
5 changed files with 226 additions and 5 deletions

View File

@@ -104,9 +104,11 @@ class _SincDataScreenState extends State<SincDataScreen> {
// 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;

View File

@@ -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<HomeVisitScreen> {
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<HomeVisitScreen> {
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<HomeVisitScreen> {
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<String, dynamic> row = {
'ID_CIDADAO' : ID_CIDADAO,
'CD_USUARIO_SUS' : CD_USUARIO_SUS,
@@ -206,6 +270,112 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
'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

View File

@@ -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';

View File

@@ -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<String, dynamic> 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);
}
}

View File

@@ -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<String,dynamic> 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<String,dynamic> 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