adicionado API e DB no import_sigtap_screen.dart

This commit is contained in:
Reginaldo
2023-04-17 12:31:48 -03:00
parent a9b813f29a
commit ac5b55c195
8 changed files with 273 additions and 13 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

View File

@@ -1,7 +1,10 @@
import 'package:flutter/material.dart';
import 'package:rkm/screens/home_screen.dart';
import 'package:rkm/service/db/db_sqlite_Sigtap.dart';
import '../../config/color_palette.dart';
import '../../config/const_variable.dart';
import '../../service/shared_preferences/shared_preferences_service.dart';
import '../../service/api/api_data_import_sigtap.dart';
import '../../service/db/db_sqlite_load.dart';
import '../../widgets/button_default.dart';
import '../../widgets/text_default.dart';
class ImportSigtapScreen extends StatefulWidget {
@@ -14,18 +17,62 @@ class ImportSigtapScreen extends StatefulWidget {
class _ImportSigtapScreenState extends State<ImportSigtapScreen> {
String mode ='';
String urlAPI ='';
String nameCityApi ='';
String stage = 'Conectando ...';
bool finish = false;
@override
void initState() {
super.initState();
dataSQLite();
recupDB();
}
dataSQLite()async{
final PrefService _preferences = PrefService();
_preferences.readCacheModel('user', 'password', 'city', 'mode').then((list){
recupDB()async{
await DbSqliteLoad().intialDB().then((db)async{
List list = await db.query('ARGS');
urlAPI = list[0]['URLAPI'];
mode = list[0]['MODE'];
nameCityApi = list[0]['NAME_CITY_API'];
}).then((value){
setState(() {});
importSigtap();
});
}
importSigtap()async{
await DbSqliteSigtap().deleteSigtap().then((value)async{
setState(() {
mode = list[3];
stage = "Etapa 1 de 4 - Importando informações do CONECTASUS";
});
await ApiDataImportSigtap().loadSIGTAP(urlAPI, mode, nameCityApi).then((valueAPI)async{
setState(() {
stage = "Etapa 2 de 4 - Gravando os Procedimentos no Aplicativo";
});
// print(value['procedimentos']);
await DbSqliteSigtap().saveProceduresSigtapDB(valueAPI['procedimentos']).then((value)async{
await DbSqliteSigtap().saveProceduresRegisterSigtapDB(valueAPI['procedimentosRegistros']).then((value)async{
setState(() {
stage = "Etapa 3 de 4 - Gravando os CIDs no Aplicativo";
});
await DbSqliteSigtap().saveSigtapCID(valueAPI['CID']).then((value)async{
await DbSqliteSigtap().saveProceduresSigtapCID(valueAPI['procedimentosCID']).then((value)async{
setState(() {
stage = "Etapa 4 de 4 - Gravando os CIDs no Aplicativo";
});
await DbSqliteSigtap().saveCBOSigtap(valueAPI['CBO']).then((value)async{
await DbSqliteSigtap().saveProceduresCBOSigtap(valueAPI['procedimentosCBO']).then((value)async{
await DbSqliteSigtap().saveSyncSigtap(valueAPI['competencia']).then((value)async{
setState(() {
finish = true;
});
});
});
});
});
});
});
});
});
});
}
@@ -40,10 +87,29 @@ class _ImportSigtapScreenState extends State<ImportSigtapScreen> {
color: ColorPalette.appBar,
width: double.infinity,
padding: EdgeInsets.all(15),
child: TextDefault(
text: 'Etapa 1 de 4 - Teste',
child: finish
?Row(
children: [
Spacer(),
ButtonDefault(
onPressed: (){
Navigator.pushReplacement(
context,
MaterialPageRoute(builder: (context) => HomeScreen()),
);
},
title: 'Continuar',
width: width*0.3,
height: height*0.05,
textColor: ColorPalette.white,
background: ColorPalette.appBar,
borderColor: ColorPalette.appBar,
),
],
):TextDefault(
text: stage,
color: ColorPalette.white,
fontSize: 20,
fontSize: 15,
fontWeigth: FontWeight.bold,
),
),
@@ -58,7 +124,12 @@ class _ImportSigtapScreenState extends State<ImportSigtapScreen> {
),
width: double.infinity,
height: double.infinity,
child: Column(
child: finish?ListView(
children: [
Image.asset('assets/images/logo.PNG',width: width*0.25,height: height*0.1,),
Image.asset('assets/images/sigtap-done.png',width: width*0.9,height: height*0.2,),
],
):Column(
children: [
Image.asset('assets/images/logo.PNG',width: width*0.5,),
mode == 'homologacao'?Image.asset('assets/images/homologacao.png',width: width*0.4):Container(),

View File

@@ -0,0 +1,45 @@
{
"competencia":"202303",
"procedimentos":[
{
"codProcedimento":"0101010010",
"nome":"ATIVIDADE EDUCATIVA \/ ORIENTA\u00c7\u00c3O EM GRUPO NA ATEN\u00c7\u00c3O PRIM\u00c1RIA",
"codGrupo":"01",
"qtdeMax":9999,
"idadeMin":833,
"idadeMax":833,
"sexo":"N"
}
],
"procedimentosRegistros":[
{
"codProcedimento":"0101010010",
"codRegistro":"01"
}
],
"CID":[
{
"codCID":"A000",
"descCID":"A00.0 Colera dev Vibrio cholerae 01 biot cholerae",
"restSexo":"5"
}
],
"procedimentosCID":[
{
"codProcedimento":"0201010046",
"codCID":"C211"
}
],
"CBO":[
{
"codCBO":"223208",
"descCBO":"Cirurgi\u00e3o dentista - cl\u00ednico geral"
}
],
"procedimentosCBO":[
{
"codProcedimento":"0101010010",
"codCBO":"223208"
}
]
}

View File

@@ -181,6 +181,7 @@ class _LoadInitScreenState extends State<LoadInitScreen> {
:Padding(
padding: const EdgeInsets.all(10.0),
child: TextDefault(
fontSize: 15,
text: messageSteps,
color: ColorPalette.white,
maxLines: 2,

View File

@@ -27,8 +27,8 @@ class _LoginLoadScreenState extends State<LoginLoadScreen> {
String? selectCity;
bool validatorDropDown= false;
int contLogo = 0;
String mode = 'homologacao';
String urlAPI = UrlApiConst.ApiUrlHomologacao;
String mode = 'desenvolvimento';
String urlAPI = UrlApiConst.ApiUrlDesenvolvimento;
bool loading = false;
String nameCityApi = '';
String nameCityFront = '';

View File

@@ -202,6 +202,7 @@ class _SyncInitScreenState extends State<SyncInitScreen> {
:Padding(
padding: const EdgeInsets.all(10.0),
child: TextDefault(
fontSize: 15,
text: messageSteps,
color: ColorPalette.white,
maxLines: 2,

View File

@@ -0,0 +1,13 @@
import 'dart:convert';
import 'package:http/http.dart' as http;
class ApiDataImportSigtap{
Future loadSIGTAP(urlAPI,mode,nameCityApi)async{
//http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/ADMIN/sigtap
final url = '${urlAPI}${mode}/${nameCityApi}/ADMIN/sigtap';
final response = await http.get(Uri.parse(url));
final map = json.decode(response.body);
// print(map);
return map;
}
}

View File

@@ -0,0 +1,129 @@
import 'package:rkm/service/db/db_sqlite_load.dart';
import 'package:sqflite/sqflite.dart';
class DbSqliteSigtap{
Future deleteSigtap()async{
var querys = [
"DELETE FROM PROCEDIMENTOS_SIGTAP;",
"DELETE FROM PROCEDIMENTOS_SIGTAP_REGISTRO;",
"DELETE FROM CIDS;",
"DELETE FROM PROCEDIMENTOS_SIGTAP_CID;",
"DELETE FROM CBOS;",
"DELETE FROM PROCEDIMENTOS_SIGTAP_CBO;"
];
Database db = await DbSqliteLoad().intialDB();
for(int i=0;querys.length>i;i++){
db.execute(querys[i]);
}
}
Future saveProceduresSigtapDB(var value)async{
Database db = await DbSqliteLoad().intialDB();
// {"codProcedimento":"0701020580","nome":"MANUTEN\u00c7\u00c3O DE OPM ORTOP\u00c9DICA","codGrupo":"07","qtdeMax":2,"idadeMin":833,"idadeMax":833,"sexo":"N"}
for(int i=0;value.length > i;i++){
Map<String, dynamic> row = {
'COD_PROC_SIGTAP' : value[i]['codProcedimento'],
'DESC_PROC_SIGTAP' : value[i]['nome'],
'GRUPO_PROC_SIGTAP' : value[i]['codGrupo'],
'QTDE_MAXIMA' : value[i]['qtdeMax'],
'IDADE_MIN' : value[i]['idadeMin'],
'IDADE_MAX' : value[i]['idadeMax'],
'SEXO' : value[i]['sexo'],
};
int id = await db.insert('PROCEDIMENTOS_SIGTAP', row);
}
// print('id increment $id');
// print(await db.query('PROCEDIMENTOS_SIGTAP'));
return db;
}
Future saveProceduresRegisterSigtapDB(var value)async{
Database db = await DbSqliteLoad().intialDB();
// {"codProcedimento":"0701020580","nome":"MANUTEN\u00c7\u00c3O DE OPM ORTOP\u00c9DICA","codGrupo":"07","qtdeMax":2,"idadeMin":833,"idadeMax":833,"sexo":"N"}
for(int i=0;value.length > i;i++){
Map<String, dynamic> row = {
'COD_PROC_SIGTAP' : value[i]['codProcedimento'],
'CODIGO_REGISTRO' : value[i]['codRegistro'],
};
int id = await db.insert('PROCEDIMENTOS_SIGTAP_REGISTRO', row);
// print('id increment $id');
}
// print(await db.query('PROCEDIMENTOS_SIGTAP_REGISTRO'));
return db;
}
Future saveSigtapCID(var value)async{
Database db = await DbSqliteLoad().intialDB();
// "INSERT OR REPLACE INTO CIDS (CODIGO_CID, DESCRICAO_CID, RESTRICAO_SEXO) VALUES (?,?,?)"
// {"codCID":"A000","descCID":"A00.0 Colera dev Vibrio cholerae 01 biot cholerae","restSexo":"5"},
for(int i=0;value.length > i;i++){
Map<String, dynamic> row = {
'CODIGO_CID' : value[i]['codCID'],
'DESCRICAO_CID' : value[i]['descCID'],
'RESTRICAO_SEXO' : value[i]['restSexo'],
};
int id = await db.insert('CIDS', row);
// print('id increment $id CIDS');
}
// print(await db.query('CIDS'));
return db;
}
Future saveProceduresSigtapCID(var value)async{
Database db = await DbSqliteLoad().intialDB();
// "INSERT OR REPLACE INTO PROCEDIMENTOS_SIGTAP_CID (COD_PROC_SIGTAP, CODIGO_CID) VALUES (?,?)"
// {"codProcedimento":"0201010046","codCID":"C211"}
for(int i=0;value.length > i;i++){
Map<String, dynamic> row = {
'COD_PROC_SIGTAP' : value[i]['codProcedimento'],
'CODIGO_CID' : value[i]['codCID'],
};
int id = await db.insert('PROCEDIMENTOS_SIGTAP_CID', row);
// print('id increment $id PROCEDIMENTOS_SIGTAP_CID');
}
// print(await db.query('PROCEDIMENTOS_SIGTAP_CID'));
return db;
}
Future saveCBOSigtap(var value)async{
Database db = await DbSqliteLoad().intialDB();
// "INSERT OR REPLACE INTO CBOS (CODIGO_CBO, DESCRICAO_CBO) VALUES (?,?)"
// "codCBO":"223208","descCBO":"Cirurgi\u00e3o dentista - cl\u00ednico geral"
for(int i=0;value.length > i;i++){
Map<String, dynamic> row = {
'CODIGO_CBO' : value[i]['codCBO'],
'DESCRICAO_CBO' : value[i]['descCBO'],
};
int id = await db.insert('CBOS', row);
// print('id increment $id CBOS');
}
// print(await db.query('CBOS'));
return db;
}
Future saveProceduresCBOSigtap(var value)async{
Database db = await DbSqliteLoad().intialDB();
// "INSERT OR REPLACE INTO PROCEDIMENTOS_SIGTAP_CBO (COD_PROC_SIGTAP, CODIGO_CBO) VALUES (?,?)";
// "codProcedimento":"0101010010","codCBO":"223208"
for(int i=0;value.length > i;i++){
Map<String, dynamic> row = {
'COD_PROC_SIGTAP' : value[i]['codProcedimento'],
'CODIGO_CBO' : value[i]['codCBO'],
};
int id = await db.insert('PROCEDIMENTOS_SIGTAP_CBO', row);
// print('id increment $id PROCEDIMENTOS_SIGTAP_CBO');
}
// print(await db.query('PROCEDIMENTOS_SIGTAP_CBO'));
return db;
}
Future saveSyncSigtap(competencia)async{
Database db = await DbSqliteLoad().intialDB();
//refatorar cidade_load e nome_cidade
// 'parameters = [{"carga_inicial": 1, "cidade_load": cidade, "nome_cidade": vm.nomeCidade[cidade], "cidade_id": cidadeID, "estado": estado, "ibge": ibge, "ambiente": ambiente, "competencia": competencia.replace(/\D/g, '')}]';
// "INSERT OR REPLACE INTO CONTROLE_INTERNO (rowid, CARGA_INICIAL, CIDADE_LOAD, NOME_CIDADE, ID_MUNICIPIO, UF_ESTADO, CODIGO_IBGE, AMBIENTE, COMPETENCIA) VALUES (1,?,?,?,?,?,?,?,?)";
Map<String, dynamic> row = {
'COMPETENCIA' : competencia,
};
await db.update('CONTROLE_INTERNO', row,where: "CARGA_INICIAL = 1");
print(await db.query('CONTROLE_INTERNO'));
return db;
}
}