criado o banco de dados db_sqlite.dart, criado as conexões com as api_data.dart e criada e tela load_init_screen.dart
This commit is contained in:
BIN
assets/images/load_image.png
Normal file
BIN
assets/images/load_image.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 188 KiB |
15
lib/models/args_load_init_model.dart
Normal file
15
lib/models/args_load_init_model.dart
Normal file
@@ -0,0 +1,15 @@
|
||||
class ArgsLoadInitModel{
|
||||
String mode;
|
||||
String city;
|
||||
String user;
|
||||
String password;
|
||||
String urlAPI;
|
||||
|
||||
ArgsLoadInitModel({
|
||||
required this.mode,
|
||||
required this.city,
|
||||
required this.user,
|
||||
required this.password,
|
||||
required this.urlAPI,
|
||||
});
|
||||
}
|
||||
178
lib/screens/load_init_screen.dart
Normal file
178
lib/screens/load_init_screen.dart
Normal file
@@ -0,0 +1,178 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:rkm/utils/color_palette.dart';
|
||||
import 'package:rkm/widgets/alert_dialog_default.dart';
|
||||
import 'package:rkm/widgets/text_default.dart';
|
||||
import '../models/args_load_init_model.dart';
|
||||
import '../service/api/api_data.dart';
|
||||
import '../service/db/db_sqlite.dart';
|
||||
|
||||
class LoadInitScreen extends StatefulWidget {
|
||||
ArgsLoadInitModel args;
|
||||
|
||||
LoadInitScreen({
|
||||
required this.args,
|
||||
});
|
||||
|
||||
@override
|
||||
State<LoadInitScreen> createState() => _LoadInitScreenState();
|
||||
}
|
||||
|
||||
class _LoadInitScreenState extends State<LoadInitScreen> {
|
||||
|
||||
String messageSteps = 'Aguarde ...';
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
initLoading();
|
||||
}
|
||||
|
||||
initLoading()async{
|
||||
await DbSqlite().deleteDB().then((_)async{
|
||||
await ApiData().loadPerm(widget.args).then((response)async{
|
||||
if(response['status'] == 0){
|
||||
AlertDialogDefault().alert(context, 'Error', 'Permissão negada', 'Voltar');
|
||||
} else if(response['status'] == 1 && response['load_perm'] == "S") {
|
||||
await ApiData().loadUnidades(widget.args).then((value)async{
|
||||
if(value.length !=0){
|
||||
setState(() {
|
||||
messageSteps = "Etapa 1 de 7 - Gravando as Unidades no Aplicativo";
|
||||
});
|
||||
await DbSqlite().saveUnidadesDB(value).then((value)async{
|
||||
await ApiData().loadProcedimentos(widget.args).then((value)async{
|
||||
setState(() {
|
||||
messageSteps = "Etapa 2 de 7 - Gravando os Procedimentos no Aplicativo";
|
||||
});
|
||||
await DbSqlite().saveProceduresDB(value).then((value)async{
|
||||
print('finalizou save Procedures');
|
||||
await ApiData().loadProcedimentosRegistros(widget.args).then((value)async{
|
||||
await DbSqlite().saveProceduresRegisterDB(value).then((value)async{
|
||||
print('finalizou saveProceduresRegisterDB');
|
||||
await ApiData().loadCID(widget.args).then((value)async{
|
||||
print('loadCID');
|
||||
setState(() {
|
||||
messageSteps = "Etapa 3 de 7 - Gravando os CIDs no Aplicativo";
|
||||
});
|
||||
await DbSqlite().saveCID(value).then((value)async{
|
||||
print('finalizou saveCID');
|
||||
await ApiData().loadProcedimentosCID(widget.args).then((value)async{
|
||||
print('loadProcedimentosCID');
|
||||
await DbSqlite().saveProceduresCID(value).then((value)async{
|
||||
print('finalizou saveProceduresCID');
|
||||
await ApiData().loadCBO(widget.args).then((value)async{
|
||||
print('loadCBO');
|
||||
setState(() {
|
||||
messageSteps = "Etapa 4 de 7 - Gravando os CBOs no Aplicativo";
|
||||
});
|
||||
await DbSqlite().saveCBO(value).then((value)async{
|
||||
print('finalizou saveCBO');
|
||||
await ApiData().loadProcedimentosCBO(widget.args).then((value)async{
|
||||
print('loadProcedimentosCBO');
|
||||
await DbSqlite().saveProceduresCBO(value).then((value)async{
|
||||
print('finalizou saveProceduresCBO');
|
||||
await ApiData().loadCIAP(widget.args).then((value)async{
|
||||
print('loadCIAP');
|
||||
setState(() {
|
||||
messageSteps = "Etapa 5 de 7 - Gravando os CIAPs no Aplicativo";
|
||||
});
|
||||
await DbSqlite().saveCIAP(value).then((value)async{
|
||||
print('finalizou saveCIAP');
|
||||
await ApiData().loadMunicipios(widget.args).then((value)async{
|
||||
print('loadMunicipios');
|
||||
setState(() {
|
||||
messageSteps = "Etapa 6 de 7 - Gravando os Municípios no Aplicativo";
|
||||
});
|
||||
await DbSqlite().saveCity(value).then((value)async{
|
||||
print('finalizou saveCity');
|
||||
await ApiData().loadEquipes(widget.args).then((value)async{
|
||||
print('loadEquipes');
|
||||
setState(() {
|
||||
messageSteps = "Etapa 7 de 7 - Gravando as Equipes no Aplicativo";
|
||||
});
|
||||
await DbSqlite().saveTeam(value).then((value)async{
|
||||
print('finalizou saveTeam');
|
||||
Navigator.pushReplacementNamed(context, '/home');
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
}else{
|
||||
AlertDialogDefault().alert(context, 'Error', 'Unidades não carregada, tente novamente!', 'Voltar');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
||||
double width = MediaQuery.of(context).size.width;
|
||||
double height = MediaQuery.of(context).size.height;
|
||||
|
||||
return Scaffold(
|
||||
bottomSheet: Container(
|
||||
width: width,
|
||||
height: height*0.05,
|
||||
color: ColorPalette.appBar,
|
||||
padding: EdgeInsets.all(10),
|
||||
child: TextDefault(
|
||||
text: messageSteps,
|
||||
color: ColorPalette.white,
|
||||
maxLines: 2,
|
||||
),
|
||||
),
|
||||
body: Container(
|
||||
padding: EdgeInsets.all(50),
|
||||
width: width,
|
||||
height: height,
|
||||
decoration: BoxDecoration(
|
||||
color: ColorPalette.grayBackground,
|
||||
image: DecorationImage(
|
||||
fit: BoxFit.fitHeight,
|
||||
image: AssetImage('assets/images/load_image.png'
|
||||
),
|
||||
)
|
||||
),
|
||||
child: ListView(
|
||||
children: [
|
||||
Image.asset('assets/images/logo.PNG',width: width*0.2,height: height*0.1,),
|
||||
SizedBox(height: height*0.1),
|
||||
Image.asset('assets/images/loading.gif',width: width*0.2,height: height*0.1,),
|
||||
SizedBox(height: height*0.1),
|
||||
TextDefault(
|
||||
text: 'Aguarde enquanto a Carga Inicial é realizada.\n',
|
||||
textAlign: TextAlign.center,
|
||||
maxLines: 2,
|
||||
color: Colors.black,
|
||||
fontWeigth: FontWeight.bold,
|
||||
),
|
||||
TextDefault(
|
||||
text: 'Esse processo pode levar vários minutos dependendo da sua conexão!',
|
||||
color: Colors.black,
|
||||
fontWeigth: FontWeight.bold,
|
||||
textAlign: TextAlign.center,
|
||||
maxLines: 3,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,16 +1,17 @@
|
||||
import 'dart:convert';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:rkm/service/url_api_const.dart';
|
||||
import 'package:rkm/models/args_load_init_model.dart';
|
||||
import 'package:rkm/service/api/url_api_const.dart';
|
||||
import 'package:rkm/utils/color_palette.dart';
|
||||
import 'package:rkm/utils/const_variable.dart';
|
||||
import 'package:rkm/widgets/button_default.dart';
|
||||
import 'package:rkm/widgets/dropdown_button_city.dart';
|
||||
import 'package:rkm/widgets/input_text.dart';
|
||||
import 'package:rkm/widgets/text_default.dart';
|
||||
|
||||
import '../service/api_get_pass.dart';
|
||||
import '../service/encrypt_password.dart';
|
||||
import '../service/api/api_data.dart';
|
||||
import '../service/api/encrypt_password.dart';
|
||||
import 'load_init_screen.dart';
|
||||
class LoginScreen extends StatefulWidget {
|
||||
const LoginScreen({Key? key}) : super(key: key);
|
||||
|
||||
@@ -27,19 +28,25 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||
String? selectCity;
|
||||
bool validatorDropDown= false;
|
||||
int contLogo = 0;
|
||||
String mode = 'online';
|
||||
String url = UrlApiConst.ApiUrlOnline;
|
||||
String mode = 'desenvolvimento';
|
||||
String urlAPI = UrlApiConst.ApiUrlDesenvolvimento;
|
||||
bool loading = false;
|
||||
|
||||
checkLogin()async{
|
||||
if(inputUser.text.isNotEmpty && inputPassword.text.isNotEmpty && inputUser.text.length>3 && inputPassword.text.length>3){
|
||||
if(selectCity!=null){
|
||||
setState(() {
|
||||
error = '';
|
||||
loading = true;
|
||||
});
|
||||
await ApiGetPass().apiConect(selectCity,mode,inputUser.text,url).then((response){
|
||||
print(response);
|
||||
print(inputUser.text);
|
||||
print(inputPassword.text);
|
||||
ArgsLoadInitModel args = ArgsLoadInitModel(
|
||||
mode: mode,
|
||||
city: selectCity!,
|
||||
user: inputUser.text,
|
||||
password: inputPassword.text,
|
||||
urlAPI: urlAPI
|
||||
);
|
||||
await ApiData().apiConect(args).then((response) async {
|
||||
if(inputUser.text == inputPassword.text || response['bloqueio']==1){
|
||||
setState(() {
|
||||
error = 'Usuário bloqueado/senha incorreta';
|
||||
@@ -51,8 +58,18 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||
}else if(response['status']==1) {
|
||||
setState((){
|
||||
error = '';
|
||||
print(EncryptPassword().encrypt(inputPassword.text,response['userPass']));
|
||||
});
|
||||
//verificar se a criptografia identificou se a senha está correta
|
||||
if(EncryptPassword().encrypt(inputPassword.text,response['userPass']) == response['userPass']){
|
||||
print(EncryptPassword().encrypt(inputPassword.text,response['userPass']));
|
||||
setState(() {
|
||||
loading = false;
|
||||
});
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(builder: (context) => LoadInitScreen(args: args)),
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
}else{
|
||||
@@ -106,19 +123,19 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: [
|
||||
GestureDetector(
|
||||
onTap: ()=>setState((){
|
||||
onTap: loading?null:()=>setState((){
|
||||
contLogo++;
|
||||
if(contLogo>=5 && contLogo<=10){
|
||||
mode = 'homologacao';
|
||||
url = UrlApiConst.ApiUrlHomologacao;
|
||||
mode = UrlApiConst.ModeHomologacao;
|
||||
urlAPI = UrlApiConst.ApiUrlHomologacao;
|
||||
}
|
||||
if(contLogo>10){
|
||||
mode = 'desenvolvimento';
|
||||
url = UrlApiConst.ApiUrlDesenvolvimento;
|
||||
mode = UrlApiConst.ModeDesenvolvimento;
|
||||
urlAPI = UrlApiConst.ApiUrlDesenvolvimento;
|
||||
if(contLogo==15){
|
||||
contLogo=0;
|
||||
mode = 'online';
|
||||
url = UrlApiConst.ApiUrlOnline;
|
||||
mode = UrlApiConst.ModeOnline;
|
||||
urlAPI = UrlApiConst.ApiUrlOnline;
|
||||
}
|
||||
}
|
||||
}),
|
||||
@@ -127,7 +144,15 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||
mode == 'homologacao'?Image.asset('assets/images/homologacao.png',width: width*0.4):Container(),
|
||||
mode == 'desenvolvimento'?Image.asset('assets/images/desenvolvimento.png',width: width*0.4):Container(),
|
||||
SizedBox(height: 10),
|
||||
Form(
|
||||
loading?Center(
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
CircularProgressIndicator(),
|
||||
TextDefault(text: 'Carregando dados...',color: ColorPalette.black54,)
|
||||
],
|
||||
),
|
||||
):Form(
|
||||
autovalidateMode: AutovalidateMode.onUserInteraction,
|
||||
child: Container(
|
||||
width: width*0.6,
|
||||
@@ -168,7 +193,7 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||
),
|
||||
),
|
||||
),
|
||||
ButtonDefault(
|
||||
loading?Container():ButtonDefault(
|
||||
onPressed: ()=>checkLogin(),
|
||||
title: 'Carga Inicial',
|
||||
width: width*0.6,
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:rkm/utils/const_variable.dart';
|
||||
|
||||
import '../service/db/db_sqlite.dart';
|
||||
|
||||
class SplashScreen extends StatefulWidget {
|
||||
const SplashScreen({Key? key}) : super(key: key);
|
||||
|
||||
@@ -13,6 +16,7 @@ class _SplashScreenState extends State<SplashScreen> {
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
DbSqlite().intialDB();
|
||||
timer();
|
||||
}
|
||||
|
||||
|
||||
114
lib/service/api/api_data.dart
Normal file
114
lib/service/api/api_data.dart
Normal file
@@ -0,0 +1,114 @@
|
||||
import 'dart:convert';
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:rkm/utils/const_variable.dart';
|
||||
import '../../models/args_load_init_model.dart';
|
||||
|
||||
class ApiData{
|
||||
Future apiConect(ArgsLoadInitModel args)async{
|
||||
String cityReplace = ConstVariable().replaceText(args.city);
|
||||
final url = '${args.urlAPI}${args.mode}/$cityReplace/pass/${args.user}';
|
||||
final response = await http.get(Uri.parse(url));
|
||||
final map = json.decode(response.body);
|
||||
return map;
|
||||
}
|
||||
Future loadPerm(ArgsLoadInitModel args)async{
|
||||
//http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/load/perm/admin
|
||||
String cityReplace = ConstVariable().replaceText(args.city);
|
||||
final url = '${args.urlAPI}${args.mode}/$cityReplace/load/perm/${args.user}';
|
||||
// final url = 'http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/load/perm/admin';
|
||||
final response = await http.get(Uri.parse(url));
|
||||
final map = json.decode(response.body);
|
||||
// print(map);
|
||||
return map;
|
||||
}
|
||||
Future loadUnidades(ArgsLoadInitModel args)async{
|
||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/unidades
|
||||
String cityReplace = ConstVariable().replaceText(args.city);
|
||||
final url = '${args.urlAPI}${args.mode}/$cityReplace/${args.user}/load/unidades';
|
||||
final response = await http.get(Uri.parse(url));
|
||||
final map = json.decode(response.body);
|
||||
// print(map);
|
||||
return map;
|
||||
}
|
||||
Future loadProcedimentos(ArgsLoadInitModel args)async{
|
||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/procedimentos
|
||||
String cityReplace = ConstVariable().replaceText(args.city);
|
||||
final url = '${args.urlAPI}${args.mode}/$cityReplace/${args.user}/load/procedimentos';
|
||||
final response = await http.get(Uri.parse(url));
|
||||
final map = json.decode(response.body);
|
||||
// print(map);
|
||||
return map;
|
||||
}
|
||||
Future loadProcedimentosRegistros(ArgsLoadInitModel args)async{
|
||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/procedimentosRegistros
|
||||
String cityReplace = ConstVariable().replaceText(args.city);
|
||||
final url = '${args.urlAPI}${args.mode}/$cityReplace/${args.user}/load/procedimentosRegistros';
|
||||
final response = await http.get(Uri.parse(url));
|
||||
final map = json.decode(response.body);
|
||||
// print(map);
|
||||
return map;
|
||||
}
|
||||
Future loadCID(ArgsLoadInitModel args)async{
|
||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/cid
|
||||
String cityReplace = ConstVariable().replaceText(args.city);
|
||||
final url = '${args.urlAPI}${args.mode}/$cityReplace/${args.user}/load/cid';
|
||||
final response = await http.get(Uri.parse(url));
|
||||
final map = json.decode(response.body);
|
||||
// print(map);
|
||||
return map;
|
||||
}
|
||||
Future loadProcedimentosCID(ArgsLoadInitModel args)async{
|
||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/procedimentosCID
|
||||
String cityReplace = ConstVariable().replaceText(args.city);
|
||||
final url = '${args.urlAPI}${args.mode}/$cityReplace/${args.user}/load/procedimentosCID';
|
||||
final response = await http.get(Uri.parse(url));
|
||||
final map = json.decode(response.body);
|
||||
// print(map);
|
||||
return map;
|
||||
}
|
||||
Future loadCBO(ArgsLoadInitModel args)async{
|
||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/cbo
|
||||
String cityReplace = ConstVariable().replaceText(args.city);
|
||||
final url = '${args.urlAPI}${args.mode}/$cityReplace/${args.user}/load/cbo';
|
||||
final response = await http.get(Uri.parse(url));
|
||||
final map = json.decode(response.body);
|
||||
// print(map);
|
||||
return map;
|
||||
}
|
||||
Future loadProcedimentosCBO(ArgsLoadInitModel args)async{
|
||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/procedimentosCBO
|
||||
String cityReplace = ConstVariable().replaceText(args.city);
|
||||
final url = '${args.urlAPI}${args.mode}/$cityReplace/${args.user}/load/procedimentosCBO';
|
||||
final response = await http.get(Uri.parse(url));
|
||||
final map = json.decode(response.body);
|
||||
// print(map);
|
||||
return map;
|
||||
}
|
||||
Future loadCIAP(ArgsLoadInitModel args)async{
|
||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/ciap
|
||||
String cityReplace = ConstVariable().replaceText(args.city);
|
||||
final url = '${args.urlAPI}${args.mode}/$cityReplace/${args.user}/load/ciap';
|
||||
final response = await http.get(Uri.parse(url));
|
||||
final map = json.decode(response.body);
|
||||
print(map);
|
||||
return map;
|
||||
}
|
||||
Future loadMunicipios(ArgsLoadInitModel args)async{
|
||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/municipios
|
||||
String cityReplace = ConstVariable().replaceText(args.city);
|
||||
final url = '${args.urlAPI}${args.mode}/$cityReplace/${args.user}/load/municipios';
|
||||
final response = await http.get(Uri.parse(url));
|
||||
final map = json.decode(response.body);
|
||||
print(map);
|
||||
return map;
|
||||
}
|
||||
Future loadEquipes(ArgsLoadInitModel args)async{
|
||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/equipes
|
||||
String cityReplace = ConstVariable().replaceText(args.city);
|
||||
final url = '${args.urlAPI}${args.mode}/$cityReplace/${args.user}/load/equipes';
|
||||
final response = await http.get(Uri.parse(url));
|
||||
final map = json.decode(response.body);
|
||||
print(map);
|
||||
return map;
|
||||
}
|
||||
}
|
||||
@@ -9,34 +9,33 @@ class EncryptPassword{
|
||||
// Retira o tipo (1, 2 ou 3) da senha do Usuário
|
||||
int tipo = int.parse(senhaUsuario.substring(0, 1));
|
||||
// Define a possição inicial da quebra da senha
|
||||
int posI = 0;
|
||||
int posF = 0;
|
||||
int posMax = 0;
|
||||
int posicaoInicialMin = 0;
|
||||
int posicaoInicialMax= 0;
|
||||
int posicaoFinalMin = 0;
|
||||
int posicaoFinalMax = 0;
|
||||
// Pra cada tipo (1, 2 ou 3) define a posição inicial da quebra da senha
|
||||
if(tipo == 1){
|
||||
posI = 0;
|
||||
posF = 16;
|
||||
posMax = 16;
|
||||
posicaoInicialMin = 0;
|
||||
posicaoInicialMax = 16;
|
||||
posicaoFinalMin = 16;
|
||||
posicaoFinalMax = 32;
|
||||
} else if(tipo == 2){
|
||||
posI = 16;
|
||||
posF = 0;
|
||||
posMax = 16;
|
||||
posicaoInicialMin = 16;
|
||||
posicaoInicialMax = 32;
|
||||
posicaoFinalMin = 0;
|
||||
posicaoFinalMax = 16;
|
||||
} else if(tipo == 3){
|
||||
posI = 0;
|
||||
posF = 31;
|
||||
posMax = 1;
|
||||
posicaoInicialMin = 0;
|
||||
posicaoInicialMax = 1;
|
||||
posicaoFinalMin = 31;
|
||||
posicaoFinalMax = 32;
|
||||
}
|
||||
|
||||
print('posI $posI posF $posF PosMax $posMax');
|
||||
print('inicio ${senhaMD5.substring(0, 16)}');
|
||||
print('meio ${senhaMD5.substring(16, 32)}');
|
||||
print('fim ${senhaMD5.substring(posF, posMax)}');
|
||||
print('senha: ${senhaMD5.substring(posI, posMax) + senha + senhaMD5.substring(posF, posMax)}');
|
||||
print('${grHashString(GRCryptoType.sha1, senhaMD5.substring(posI, posMax) + senha + senhaMD5.substring(posF, posMax))}');
|
||||
|
||||
String inicio = senhaMD5.substring(posicaoInicialMin, posicaoInicialMax);
|
||||
String fim = senhaMD5.substring(posicaoFinalMin, posicaoFinalMax);
|
||||
|
||||
// Faz a criptografia e concatena ela com sha1 e md5
|
||||
String senhaCriptogradafa = tipo.toString() + '\$'+ grHashString(GRCryptoType.sha1, senhaMD5.substring(posI, posMax) + senha + senhaMD5.substring(posF, posMax));
|
||||
String senhaCriptogradafa = tipo.toString() + '\$'+ grHashString(GRCryptoType.sha1, inicio + senha + fim);
|
||||
// Retorna a senha criptografada
|
||||
return senhaCriptogradafa;
|
||||
}
|
||||
@@ -2,4 +2,7 @@ class UrlApiConst{
|
||||
static const String ApiUrlOnline = 'https://saude.rkmsistemas.com.br/api/atb/';
|
||||
static const String ApiUrlHomologacao = 'https://app0.rkmsistemas.com.br/api/atb/';
|
||||
static const String ApiUrlDesenvolvimento = 'http://192.168.0.42:8010/api/atb/';
|
||||
static const String ModeDesenvolvimento = 'desenvolvimento';
|
||||
static const String ModeHomologacao = 'homologacao';
|
||||
static const String ModeOnline = 'online';
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
import 'dart:convert';
|
||||
import 'package:http/http.dart' as http;
|
||||
|
||||
class ApiGetPass{
|
||||
Future apiConect(String? selectCity,String mode,String inputUser,String urlApi)async{
|
||||
String city = '';
|
||||
city = selectCity!.toLowerCase()
|
||||
.replaceAll('ú', 'u')
|
||||
.replaceAll('ç', 'c')
|
||||
.replaceAll('ó', 'o')
|
||||
.replaceAll('ô', 'o')
|
||||
.replaceAll('í', 'i')
|
||||
.replaceAll('ã','a');
|
||||
|
||||
final url = '$urlApi$mode/$city/pass/$inputUser';
|
||||
final response = await http.get(Uri.parse(url));
|
||||
final map = json.decode(response.body);
|
||||
return map;
|
||||
}
|
||||
}
|
||||
278
lib/service/db/db_sqlite.dart
Normal file
278
lib/service/db/db_sqlite.dart
Normal file
@@ -0,0 +1,278 @@
|
||||
import 'package:sqflite/sqflite.dart';
|
||||
import 'package:path/path.dart';
|
||||
|
||||
class DbSqlite{
|
||||
|
||||
intialDB()async{
|
||||
final path = await getDatabasesPath();
|
||||
final local = join(path,'rkmab.db');
|
||||
|
||||
var db = await openDatabase(
|
||||
local,
|
||||
version: 1,
|
||||
onCreate: (db,newVersion){
|
||||
db.execute('CREATE TABLE IF NOT EXISTS ATENDIMENTOS_DOMICILIARES (ID_ATENDIMENTO_DOMICILIAR INTEGER PRIMARY KEY AUTOINCREMENT, ID_CIDADAO INTEGER, CD_USUARIO_SUS TEXT, ID_PROFISSIONAL INTEGER, CBO_PROFISSIONAL TEXT, INE_PROFISSIONAL TEXT, CNES_UNIDADE TEXT, ID_UNIDADE INTEGER, ID_EQUIPE INTEGER, DATA TEXT, LOCAL_ATENDIMENTO INTEGER, TIPO_ATENDIMENTO INTEGER, MODALIDADE INTEGER, TURNO INTEGER, CIAP INTEGER, CID TEXT, CONDUTA INTEGER, SINCRONIZADO TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS ATENDS_DOM_COMPL (ID_ATENDIMENTO_DOMICILIAR INTEGER, COND_AVAL_ATEND_DOM INTEGER);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS ATENDS_DOM_PROC (ID_ATENDIMENTO_DOMICILIAR INTEGER, PROC_ATEND_DOM INTEGER);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS ATENDS_DOM_SIGTAP (ID_ATENDIMENTO_DOMICILIAR INTEGER, COD_PROC_SIGTAP TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS ATENDS_INDIV_COMPL (ID_ATEND_INDIVIDUAL INTEGER, ID_ATEND_INDIV_TIPO INTEGER, ID_ATEND_COMPLEMENTO TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS ATENDS_INDIV_EXAMES (ID_ATEND_INDIVIDUAL INTEGER, COD_PROC_SIGTAP TEXT, AVALIADO INTEGER, SOLICITADO INTEGER);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS ATENDS_INDIV_PROC (ID_ATEND_INDIVIDUAL INTEGER, COD_PROC_SIGTAP TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS ATENDS_INDIV_PROF (ID_ATEND_INDIVIDUAL INTEGER, ID_PROFISSIONAL INTEGER, CODIGO_CBO TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS ATENDS_INDIVIDUAIS (ID_ATEND_INDIVIDUAL INTEGER PRIMARY KEY AUTOINCREMENT, ID_CIDADAO INTEGER, CD_USUARIO_SUS TEXT, DT_ATENDIMENTO TEXT, TURNO INTEGER, LOCAL_ATENDIMENTO INTEGER, TIPO_ATENDIMENTO INTEGER, PESO TEXT, ALTURA TEXT, PERIM_CEFALICO TEXT, VACINA_DIA INTEGER, ALEITAMENTO_MATERNO INTEGER, ID_PROFISSIONAL INTEGER, CBO_PROFISSIONAL TEXT, INE_PROFISSIONAL TEXT, CNES_UNIDADE TEXT, ID_UNIDADE INTEGER, ID_EQUIPE INTEGER, DUM TEXT, GRAVIDEZ_PLANEJADA INTEGER, IDADE_GESTACIONAL INTEGER, GESTAS_PREVIAS INTEGER, PARTOS INTEGER, MODALIDADE INTEGER, CIAP2_1 INTEGER, CIAP2_2 INTEGER, CID10_1 TEXT, CID10_2 TEXT, RACIONALIDADE_SAUDE INTEGER, FICOU_OBSERVACAO INTEGER, ESCUTA_INICICIAL INTEGER, COMPLEMENTO TEXT, SINCRONIZADO TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS ATENDS_ODONTOLOGICOS (ID_ATENDIMENTO_ODONTOLOGICO INTEGER PRIMARY KEY AUTOINCREMENT, ID_CIDADAO INTEGER, CD_USUARIO_SUS TEXT, DATA TEXT, ID_PROFISSIONAL INTEGER, CBO_PROFISSIONAL TEXT, INE_PROFISSIONAL TEXT, CNES_UNIDADE TEXT, ID_UNIDADE INTEGER, ID_EQUIPE INTEGER, TURNO INTEGER, NECESSIDADES_ESPECIAIS INTEGER, GESTANTE INTEGER, LOCAL_ATENDIMENTO INTEGER, TIPO_ATENDIMENTO INTEGER, TIPO_CONSULTA INTEGER, SINCRONIZADO TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS ATENDS_ODONTO_PROF (ID_ATENDIMENTO_ODONTOLOGICO INTEGER, ID_PROFISSIONAL INTEGER, CODIGO_CBO TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS ATENDS_ODONTO_PROC (ID_ATENDIMENTO_ODONTOLOGICO INTEGER, COD_PROC_SIGTAP TEXT, QTDE INTEGER);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS ATENDS_ODONTO_SIGTAP (ID_ATENDIMENTO_ODONTOLOGICO INTEGER, COD_PROC_SIGTAP TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS ATENDS_ODONTO_COMPL (ID_ATENDIMENTO_ODONTOLOGICO INTEGER, ID_ATEND_ODONTO_TIPO INTEGER, ID_ATEND_COMPLEMENTO TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS AVALIACOES_ELEGIBILIDADE (ID_AVALIACAO_ELEGIBILIDADE INTEGER PRIMARY KEY AUTOINCREMENT, ID_CIDADAO INTEGER, CD_USUARIO_SUS TEXT, DATA_ATENDIMENTO TEXT, TURNO INTEGER, ID_PROFISSIONAL INTEGER, CBO_PROFISSIONAL TEXT, INE_PROFISSIONAL TEXT, CNES_UNIDADE TEXT, ID_UNIDADE INTEGER, ID_EQUIPE INTEGER, PROCEDENCIA INTEGER, CID_PRINCIPAL TEXT, CID_SECUNDARIO TEXT, CID_TERCIARIO TEXT, CONCLUSAO INTEGER, CONC_ELEGIVEL INTEGER, CUIDADOR INTEGER, CNS_CUIDADOR TEXT, SINCRONIZADO TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS AVAL_ELEG_CONCL_INE (ID_AVALIACAO_ELEGIBILIDADE INTEGER, AVALIACAO INTEGER);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS AVAL_ELEG_COND_AVAL (ID_AVALIACAO_ELEGIBILIDADE INTEGER, AVALIACAO INTEGER);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS BAIRROS (ID_BAIRRO INTEGER PRIMARY KEY AUTOINCREMENT, NO_BAIRRO TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS CADASTROS_INDIVIDUAIS (ID_CAD_INDIVIDUAL INTEGER PRIMARY KEY AUTOINCREMENT, STATUS_CADASTRO INTEGER, ID_CIDADAO INTEGER, CD_USUARIO_SUS TEXT, ID_AREA_CIDADAO INTEGER, ID_MICROAREA_CIDADAO INTEGER, FORA_AREA INTEGER, RESPONSAVEL_FAMILIAR INTEGER, ID_RESPONSAVEL_FAMILIAR TEXT, NOME_RESPONSAVEL_FAMILIAR TEXT, PARENTESCO INTEGER, ESCOLARIDADE INTEGER, FREQ_ESCOLA_CRECHE INTEGER, SITUACAO_MERCADO INTEGER, CUIDADOR_TRADICIONAL INTEGER, GRUPO_COMUNITARIO INTEGER, PLANO_PRIVADO INTEGER, COMUNIDADE_TRADICIONAL INTEGER, COM_TRADI_QUAL TEXT, ORIENT_SEXUAL INTEGER, TEM_DEFICIENCIA INTEGER, DEF_AUDITIVA INTEGER, DEF_INTELECTUAL INTEGER, DEF_VISUAL INTEGER, DEF_FISICA INTEGER, DEF_OUTRAS INTEGER, SAIDA_CADASTRO INTEGER, DATA_SAIDA_CADASTRO TEXT, CADASTRO_RECUSADO INTEGER, GESTANTE INTEGER, MATERNIDADE_REFERENCIA TEXT, PESO TEXT, FUMANTE INTEGER, USA_ALCOOL INTEGER, USA_DROGAS INTEGER, HIPERTENSAO INTEGER, DIABETES INTEGER, AVC_DERRAME INTEGER, INFARTO INTEGER, HANSENIASE INTEGER, TUBERCULOSE INTEGER, CANCER INTEGER, INTERNACAO INTEGER, MOTIVO TEXT, DOENCA_CARDIACA INTEGER, PROBLEMA_RINS INTEGER, DOENCA_PULMAO INTEGER, SAUDE_MENTAL INTEGER, ACAMADO INTEGER, DOMICILIADO INTEGER, PLANTAS_MED INTEGER, PLANTAS_MED_QUAIS TEXT, PIC INTEGER, OUTRAS_CONDICOES TEXT, TEMPO_SITUACAO_RUA INTEGER, ACOMP_INTITUICAO INTEGER, ACOMP_INTITUICAO_QUAL TEXT, BENEFICIO INTEGER, REF_FAMILIAR INTEGER, VISITA_FAMILIAR INTEGER, PARENTESCO_VISITA TEXT, ALIMENTACAO_DIARIA INTEGER, REST_POPULAR INTEGER, DOACAO_REST INTEGER, DOACAO_RELIGIOSO INTEGER, DOACAO_POPULAR INTEGER, OUTROS_ALIM INTEGER, ACESSO_HIGIENE INTEGER, BANHO INTEGER, SANITARIO INTEGER, HIGIENE_BUCAL INTEGER, OUTROS_HIGIENE INTEGER, FICHA_ALTERACAO INTEGER, ID_RESP_CADASTRO INTEGER, CNES_RESP_CADASTRO TEXT, CBO_RESP_CADASTRO TEXT, INE_RESP_CADASTRO TEXT, DT_CADASTRO TEXT, ID_EQUIPE INTEGER, ORIGEM TEXT, SINCRONIZADO TEXT, DT_ENTRADA_BRASIL TEXT, DT_NATURALIZACAO TEXT, PORTARIA_NATURALIZACAO TEXT, CRIANCAS_ADULTO INTEGER, CRIANCAS_OUTRAS_CRIANCAS INTEGER, CRIANCAS_ADOLESCENTE INTEGER, CRIANCAS_SOZINHA INTEGER, CRIANCAS_CRECHE INTEGER, CRIANCAS_OUTRO INTEGER, IDENTIDADE_GENERO INTEGER);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS CBOS (CODIGO_CBO TEXT, DESCRICAO_CBO TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS CIAPS (CODIGO_CIAP TEXT, DESC_CIAP TEXT, TIPO_CIAP TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS CIDADAOS (ID_CIDADAO INTEGER PRIMARY KEY AUTOINCREMENT, CD_USUARIO_SUS TEXT, NOME_CIDADAO TEXT, NOME_SOCIAL TEXT, SEXO TEXT, DT_NASCIMENTO TEXT, ID_ESTADO_CIVIL INTEGER, NOME_CONJUGE TEXT, NACIONALIDADE INTEGER, ID_MUNICIPIO_NASC INTEGER, NO_MUNICIPIO_NASC TEXT, ESTADO_UF_NASC TEXT, ID_ETNIA INTEGER, ID_ESCOLARIDADE INTEGER, ID_DEFICIENCIA INTEGER, NOME_MAE TEXT, DESCONHECE_MAE INTEGER, NOME_PAI TEXT, DESCONHECE_PAI INTEGER, ID_UNIDADE INTEGER, NUM_PRONTUARIO TEXT, NUM_PRONTUARIO_PROV TEXT, CLASSIFICACAO INTEGER, CLASSIFICACAO_SUB INTEGER, NUM_FAMILIA INTEGER, ID_PAIS_RESID INTEGER, ID_MUNICIPIO_RESID INTEGER, NO_MUNICIPIO_RESID TEXT, ESTADO_UF_RESID TEXT, CODIGO_IBGE_RESID INTEGER, NO_BAIRRO_LOGR TEXT, ID_LOGR_TIPO INTEGER, NOME_LOGR TEXT, CEP_LOGR INTEGER, NUMERO_LOGR INTEGER, LOTEAMENTO_LOGR INTEGER, COMPL_LOGR TEXT, PONTO_REFERENCIA TEXT, ZONA_LOGR INTEGER, DDD_TELEFONE INTEGER, NUM_TELEFONE INTEGER, DDD_CELULAR INTEGER, NUM_CELULAR INTEGER, DDD_RECADO INTEGER, NUM_RECADO INTEGER, EMAIL TEXT, OBSERVACOES TEXT, CPF INTEGER, CNS TEXT, TITULO_ELEITOR INTEGER, RG_NUMERO INTEGER, RG_COMPLEMENTO TEXT, RG_UF TEXT, RG_ORGAO TEXT, RG_DATA_EMISSAO TEXT, TIPO_CERTIDAO INTEGER, NUM_CERTIDAO TEXT, CARTORIO_CERTIDAO TEXT, LIVRO_CERTIDAO TEXT, FOLHA_CERTIDAO TEXT, TERMO_CERTIDAO TEXT, DT_EMISSAO_CERTIDAO TEXT, NUM_CTPS TEXT, NUM_SERIE_CTPS TEXT, ESTADO_UF_CTPS TEXT, NUM_PIS_PASEP TEXT, FL_RETIROU_CARTAO INTEGER, NUM_NIS TEXT, NUM_PROT_CROSS TEXT, RENDA_MENSAL REAL, PROFISSAO TEXT, DT_OBITO TEXT, DECLARACAO_OBITO TEXT, BLOQUEIO INTEGER, ORIGEM INTEGER, DT_HORA_CADASTRO TEXT, ID_USUARIO_CADASTRO INTEGER, ID_DOMICILIO INTEGER, ATENDIMENTOS INTEGER, SINCRONIZADO TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS CIDADAO_DOMICILIO (ID_DOMICILIO INTEGER PRIMARY KEY AUTOINCREMENT, TIPO_IMOVEL INTEGER, ID_AREA_DOMICILIO INTEGER, ID_MICROAREA_DOMICILIO INTEGER, FORA_AREA INTEGER, SITUACAO_MORADIA INTEGER, TIPO_LOCALIDADE INTEGER, TIPO_DOMICILIO INTEGER, NUM_MORADORES INTEGER, NUM_COMODOS INTEGER, SITUACAO_RURAL INTEGER, TIPO_ACESSO INTEGER, MAT_PREDOMINANTE INTEGER, DISPONIBILIDADE_ENERGIA INTEGER, TIPO_ABASTECIMENTO INTEGER, TRATAMENTO_AGUA INTEGER, DESTINO_LIXO INTEGER, ESCOAMENTO INTEGER, FL_ANIMAIS INTEGER, ANIMAIS_GATO INTEGER, ANIMAIS_CACHORRO INTEGER, ANIMAIS_PASSARO INTEGER, ANIMAIS_OUTROS INTEGER, QTDE_ANIMAIS INTEGER, CBO_RESP_CADASTRO TEXT, ID_RESP_CADASTRO INTEGER, CNES_RESP_CADASTRO TEXT, INE_RESP_CADASTRO TEXT, DT_CADASTRO TEXT, ID_EQUIPE INTEGER, ORIGEM TEXT, SINCRONIZADO TEXT, NOME_INSTITUICAO_PERMANENCIA TEXT, PROFISSIONAIS_VINCULADOS_INST INTEGER, RESPONSAVEL_TECNICO_INST TEXT, CNS_RESP_TECNICO_INST TEXT, CARGO_RESP_TECNICO_INST TEXT, TEL_RESP_TECNICO_INST TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS CIDS (CODIGO_CID TEXT, DESCRICAO_CID TEXT, RESTRICAO_SEXO INTEGER);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS CONTROLE_INTERNO (CARGA_INICIAL INTEGER, SYNC_UNIDADE INTEGER, CIDADE_LOAD TEXT, NOME_CIDADE TEXT, ID_MUNICIPIO INTEGER, UF_ESTADO TEXT, UNIDADE_SYNC TEXT, CODIGO_IBGE INTEGER, NOME_UNIDADE TEXT, AMBIENTE TEXT, ULTIMA_SINCRONIZACAO TEXT, COMPETENCIA TEXT, ID_AREA INTEGER, AREA INTEGER, ID_MICROAREA INTEGER, MICROAREA INTEGER);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS DOMICILIOS_CIDADAOS (ID_DOMICILIO INTEGER, CD_USUARIO_SUS TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS EQUIPES (ID_EQUIPE INTEGER PRIMARY KEY AUTOINCREMENT, ID_UNIDADE INTEGER, INE TEXT, ID_ATB_AREA INTEGER, AREA INTEGER, ID_ATB_MICROAREA INTEGER, MICROAREA INTEGER);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS FICHAS_COMPLEMENTARES (ID_FICHA_COMPLEMENTAR INTEGER PRIMARY KEY AUTOINCREMENT, ID_CIDADAO INTEGER, CD_USUARIO_SUS TEXT, ID_PROFISSIONAL INTEGER, CBO_PROFISSIONAL TEXT, INE_PROFISSIONAL TEXT, CNES_UNIDADE TEXT, ID_UNIDADE INTEGER, ID_EQUIPE INTEGER, DATA_ATENDIMENTO TEXT, TURNO INTEGER, DATA_OLHINHO TEXT, RESULTADO_OLHINHO INTEGER, DATA_FUNDO_OLHO TEXT, RESULTADO_FUNDO_OLHO INTEGER, DATA_ORELHINHA TEXT, RESULTADO_ORELHINHA INTEGER, DATA_TRANSFONTANELA TEXT, RESULTADO_TRANSFONTANELA INTEGER, DATA_TOMOGRAFIA TEXT, RESULTADO_TOMOGRAFIA INTEGER, DATA_RESSONANCIA TEXT, RESULTADO_RESSONANCIA INTEGER, SINCRONIZADO TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS LOGRADOUROS_ENDERECOS (ID_LOGR_ENDERECO INTEGER, ID_LOGR_TIPO INTEGER, DESC_LOGR_ENDERECO TEXT, ID_BAIRRO INTEGER);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS LOGRADOUROS_LOTEAMENTOS (ID_LOGR_LOTEAMENTO INTEGER PRIMARY KEY AUTOINCREMENT, DESC_LOGR_LOTEAMENTO TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS LOGRADOUROS_TIPOS (ID_LOGR_TIPO INTEGER PRIMARY KEY AUTOINCREMENT, NO_LOGR_TIPO TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS MARCADORES_CONSUMO (ID_MARCADOR_CONSUMO INTEGER PRIMARY KEY AUTOINCREMENT, ID_CIDADAO INTEGER, CD_USUARIO_SUS TEXT, ID_PROFISSIONAL INTEGER, CBO_PROFISSIONAL TEXT, INE_PROFISSIONAL TEXT, CNES_UNIDADE TEXT, ID_UNIDADE INTEGER, ID_EQUIPE INTEGER, DATA_ATENDIMENTO TEXT, LOCAL_ATENDIMENTO INTEGER, GRUPO_PERGUNTAS INTEGER, SINCRONIZADO TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS MARCADORES_CON_QUEST (ID_MARCADOR_CONSUMO INTEGER, PERGUNTA INTEGER, RESPOSTA INTEGER, GRUPO INTEGER);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS MUNICIPIOS (ID_MUNICIPIO INTEGER PRIMARY KEY AUTOINCREMENT, NO_MUNICIPIO TEXT, CODIGO_IBGE TEXT, UF_ESTADO TEXT, ID_PAIS INTEGER);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS PROCEDIMENTOS_FICHAS (ID_PROCEDIMENTOS_FICHA INTEGER PRIMARY KEY AUTOINCREMENT, AFERICAO_PA INTEGER, CURATIVO_SIMPLES INTEGER, GLICEMIA_CAPILAR INTEGER, MEDICAO_PESO INTEGER, COLETA_EXAME INTEGER, AFERICAO_TEMPERATURA INTEGER, MEDICAO_ALTURA INTEGER, ID_PROFISSIONAL INTEGER, CBO_PROFISSIONAL TEXT, INE_PROFISSIONAL TEXT, CNES_UNIDADE TEXT, ID_UNIDADE INTEGER, ID_EQUIPE INTEGER, DATA TEXT, SINCRONIZADO TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS PROCEDIMENTOS_INDIV (ID_PROCEDIMENTOS_INDIV INTEGER PRIMARY KEY AUTOINCREMENT, ID_CIDADAO INTEGER, CD_USUARIO_SUS TEXT, DATA_ATENDIMENTO TEXT, TURNO INTEGER, LOCAL_ATENDIMENTO INTEGER, ESCUTA_INICIAL INTEGER, ID_PROFISSIONAL INTEGER, CBO_PROFISSIONAL TEXT, INE_PROFISSIONAL TEXT, CNES_UNIDADE TEXT, ID_UNIDADE INTEGER, ID_EQUIPE INTEGER, SINCRONIZADO TEXT, MEDICAO_PESO FLOAT, MEDICAO_ALTURA FLOAT, AFERICAO_PA INTEGER, GLICEMIA_CAPILAR INTEGER, AFERICAO_TEMPERATURA FLOAT,COLETA_EXAME CHAR);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS PROCEDIMENTOS_INDIV_FICHA (ID_PROCEDIMENTOS_INDIV_FICHA INTEGER PRIMARY KEY AUTOINCREMENT, ID_PROCEDIMENTOS_INDIV INTEGER, COD_PROCEDIMENTO_FICHA TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS PROCEDIMENTOS_INDIV_SIGTAP (ID_PROCEDIMENTOS_INDIV INTEGER, COD_PROC_SIGTAP TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS PROCEDIMENTOS_INICIAIS (ATENDIMENTO INTEGER, COD_PROC_SIGTAP TEXT, CODIGO_CBO TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS PROCEDIMENTOS_SIGTAP (COD_PROC_SIGTAP TEXT, DESC_PROC_SIGTAP TEXT, GRUPO_PROC_SIGTAP TEXT, QTDE_MAXIMA INTEGER, IDADE_MIN INTEGER, IDADE_MAX INTEGER, SEXO INTEGER);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS PROCEDIMENTOS_SIGTAP_CBO (COD_PROC_SIGTAP TEXT, CODIGO_CBO TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS PROCEDIMENTOS_SIGTAP_CID (COD_PROC_SIGTAP TEXT, CODIGO_CID TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS PROCEDIMENTOS_SIGTAP_REGISTRO (COD_PROC_SIGTAP TEXT, CODIGO_REGISTRO INTEGER);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS PROFISSIONAIS (ID_PROFISSIONAL INTEGER PRIMARY KEY AUTOINCREMENT, NOME_PROFISSIONAL TEXT, CNS_PROFISSIONAL TEXT, USERNAME TEXT, SENHA TEXT, BLOQUEIO_ACESSO INTEGER);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS PROFISSIONAIS_CBOS (ID_PROFISSIONAL INTEGER, CODIGO_CBO TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS PROFISSIONAIS_EQUIPE (ID_EQUIPE INTEGER, ID_PROFISSIONAL INTEGER, ATIVO INTEGER);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS UNIDADES (ID_UNIDADE INTEGER PRIMARY KEY AUTOINCREMENT, NOME_UNIDADE TEXT, CNES_UNIDADE TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS VISITAS_DOMICILIARES (ID_VISITA_DOMICILIAR INTEGER PRIMARY KEY AUTOINCREMENT, ID_CIDADAO INTEGER, CD_USUARIO_SUS TEXT, DT_ATENDIMENTO TEXT, TURNO INTEGER, TIPO_IMOVEL INTEGER, VISITA_ACOMPANHADA INTEGER, DESFECHO INTEGER, PESO TEXT, ALTURA TEXT, ID_PROFISSIONAL INTEGER, CBO_PROFISSIONAL TEXT, INE_PROFISSIONAL TEXT, CNES_UNIDADE TEXT, ID_UNIDADE INTEGER, ID_EQUIPE INTEGER, COMPLEMENTO TEXT, SINCRONIZADO TEXT);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS VISITAS_DOMICILIARES_COMPL (ID_VISITA_DOMICILIAR INTEGER, ID_VISITA_DOM_TIPO INTEGER, ID_VISITA_COMPLEMENTO INTEGER);');
|
||||
db.execute('CREATE TABLE IF NOT EXISTS VISITAS_DOMICILIARES_PROC (ID_VISITA_DOMICILIAR INTEGER, COD_PROC_SIGTAP TEXT);');
|
||||
}
|
||||
);
|
||||
return db;
|
||||
}
|
||||
Future deleteDB()async{
|
||||
var querys = [
|
||||
'UPDATE CONTROLE_INTERNO SET SYNC_UNIDADE = NULL, UNIDADE_SYNC = NULL, NOME_UNIDADE = NULL WHERE rowid = 1;',
|
||||
'DELETE FROM ATENDS_DOM_COMPL',
|
||||
'DELETE FROM ATENDS_DOM_PROC',
|
||||
'DELETE FROM ATENDS_DOM_SIGTAP',
|
||||
'DELETE FROM ATENDIMENTOS_DOMICILIARES',
|
||||
'DELETE FROM ATENDS_INDIV_PROC',
|
||||
'DELETE FROM ATENDS_INDIV_PROF',
|
||||
'DELETE FROM ATENDS_INDIVIDUAIS',
|
||||
'DELETE FROM BAIRROS',
|
||||
'DELETE FROM CADASTROS_INDIVIDUAIS',
|
||||
'DELETE FROM CBOS',
|
||||
'DELETE FROM CIAPS',
|
||||
'DELETE FROM CIDADAOS',
|
||||
'DELETE FROM CIDADAO_DOMICILIO',
|
||||
'DELETE FROM CIDS',
|
||||
'DELETE FROM CONTROLE_INTERNO',
|
||||
'DELETE FROM DOMICILIOS_CIDADAOS',
|
||||
'DELETE FROM EQUIPES',
|
||||
'DELETE FROM FICHAS_COMPLEMENTARES',
|
||||
'DELETE FROM LOGRADOUROS_ENDERECOS',
|
||||
'DELETE FROM LOGRADOUROS_LOTEAMENTOS',
|
||||
'DELETE FROM LOGRADOUROS_TIPOS',
|
||||
'DELETE FROM MUNICIPIOS',
|
||||
'DELETE FROM PROCEDIMENTOS_FICHAS',
|
||||
'DELETE FROM PROCEDIMENTOS_INDIV',
|
||||
'DELETE FROM PROCEDIMENTOS_INDIV_FICHA',
|
||||
'DELETE FROM PROCEDIMENTOS_INDIV_SIGTAP',
|
||||
'DELETE FROM PROCEDIMENTOS_SIGTAP',
|
||||
'DELETE FROM PROCEDIMENTOS_SIGTAP_CBO',
|
||||
'DELETE FROM PROCEDIMENTOS_SIGTAP_CID',
|
||||
'DELETE FROM PROCEDIMENTOS_SIGTAP_REGISTRO',
|
||||
'DELETE FROM PROFISSIONAIS',
|
||||
'DELETE FROM PROFISSIONAIS_CBOS',
|
||||
'DELETE FROM PROFISSIONAIS_EQUIPE',
|
||||
'DELETE FROM UNIDADES',
|
||||
'DELETE FROM VISITAS_DOMICILIARES',
|
||||
'DELETE FROM VISITAS_DOMICILIARES_COMPL',
|
||||
'DELETE FROM VISITAS_DOMICILIARES_PROC',
|
||||
];
|
||||
Database db = await intialDB();
|
||||
for(int i=0;querys.length>i;i++){
|
||||
db.execute(querys[i]);
|
||||
}
|
||||
}
|
||||
Future saveUnidadesDB(var value)async{
|
||||
Database db = await intialDB();
|
||||
for(int i=0;value.length > i;i++){
|
||||
Map<String, dynamic> row = {
|
||||
'NOME_UNIDADE' : value[i]['nomeFantasia'],
|
||||
'CNES_UNIDADE' : value[i]['nrCNES']
|
||||
};
|
||||
int id = await db.insert('UNIDADES', row);
|
||||
// print('id increment $id');
|
||||
// print(await db.query('UNIDADES'));
|
||||
}
|
||||
return db;
|
||||
}
|
||||
Future saveProceduresDB(var value)async{
|
||||
Database db = await intialDB();
|
||||
|
||||
// var query = "INSERT OR REPLACE INTO PROCEDIMENTOS_SIGTAP (COD_PROC_SIGTAP, DESC_PROC_SIGTAP, GRUPO_PROC_SIGTAP, QTDE_MAXIMA, IDADE_MIN, IDADE_MAX, SEXO) VALUES (?,?,?,?,?,?,?)";
|
||||
// {"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 saveProceduresRegisterDB(var value)async{
|
||||
Database db = await intialDB();
|
||||
// "INSERT OR REPLACE INTO PROCEDIMENTOS_SIGTAP_REGISTRO (COD_PROC_SIGTAP, CODIGO_REGISTRO) VALUES (?,?)";
|
||||
// {"codProcedimento":"0101010010","codRegistro":"01"}
|
||||
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 PROCEDIMENTOS_SIGTAP_REGISTRO');
|
||||
// print(await db.query('PROCEDIMENTOS_SIGTAP_REGISTRO'));
|
||||
}
|
||||
return db;
|
||||
}
|
||||
Future saveCID(var value)async{
|
||||
Database db = await 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 PROCEDIMENTOS_SIGTAP_REGISTRO');
|
||||
}
|
||||
// print(await db.query('CIDS'));
|
||||
return db;
|
||||
}
|
||||
Future saveProceduresCID(var value)async{
|
||||
Database db = await 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_REGISTRO');
|
||||
}
|
||||
// print(await db.query('PROCEDIMENTOS_SIGTAP_CID'));
|
||||
return db;
|
||||
}
|
||||
Future saveCBO(var value)async{
|
||||
Database db = await 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 PROCEDIMENTOS_SIGTAP_REGISTRO');
|
||||
}
|
||||
// print(await db.query('CBOS'));
|
||||
return db;
|
||||
}
|
||||
Future saveProceduresCBO(var value)async{
|
||||
Database db = await 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_REGISTRO');
|
||||
}
|
||||
// print(await db.query('PROCEDIMENTOS_SIGTAP_CBO'));
|
||||
return db;
|
||||
}
|
||||
Future saveCIAP(var value)async{
|
||||
Database db = await intialDB();
|
||||
// "INSERT OR REPLACE INTO CIAPS (CODIGO_CIAP, DESC_CIAP, TIPO_CIAP) VALUES (?,?,?)";
|
||||
// "codCIAP":"30","descCIAP":"EXAME M\u00c9DICO\/AVALIA\u00c7\u00c3ODE SA\u00daDE - COMPLETO","tipoCIAP":"PROC"
|
||||
for(int i=0;value.length > i;i++){
|
||||
Map<String, dynamic> row = {
|
||||
'CODIGO_CIAP' : value[i]['codCIAP'],
|
||||
'DESC_CIAP' : value[i]['descCIAP'],
|
||||
'TIPO_CIAP' : value[i]['tipoCIAP'],
|
||||
};
|
||||
int id = await db.insert('CIAPS', row);
|
||||
// print('id increment $id CIAPS');
|
||||
}
|
||||
print(await db.query('CIAPS'));
|
||||
return db;
|
||||
}
|
||||
Future saveCity(var value)async{
|
||||
Database db = await intialDB();
|
||||
// "INSERT OR REPLACE INTO MUNICIPIOS (ID_MUNICIPIO, CODIGO_IBGE, NO_MUNICIPIO, UF_ESTADO, ID_PAIS) VALUES (?,?,?,?,?)"
|
||||
// "idMunicipio":1,"codIBGE":"000000","nomeMunicipio":"MUNICIPIO IGNORADO","UF":"--","idPais":33
|
||||
for(int i=0;value.length > i;i++){
|
||||
Map<String, dynamic> row = {
|
||||
'ID_MUNICIPIO' : value[i]['idMunicipio'],
|
||||
'CODIGO_IBGE' : value[i]['codIBGE'],
|
||||
'NO_MUNICIPIO' : value[i]['nomeMunicipio'],
|
||||
'UF_ESTADO' : value[i]['UF'],
|
||||
'ID_PAIS' : value[i]['idPais'],
|
||||
};
|
||||
int id = await db.insert('MUNICIPIOS', row);
|
||||
// print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
|
||||
}
|
||||
print(await db.query('MUNICIPIOS'));
|
||||
return db;
|
||||
}
|
||||
Future saveTeam(var value)async{
|
||||
Database db = await intialDB();
|
||||
// INSERT OR REPLACE INTO EQUIPES (ID_EQUIPE, ID_UNIDADE, INE, ID_ATB_AREA, AREA, ID_ATB_MICROAREA, MICROAREA) VALUES (?,?,?,?,?,?,?)";
|
||||
// {"idEquipe":1,"idUnidade":3,"INE":"0001485628","idAtbArea":1,"area":1,"idAtbMicroarea":null,"microarea":null}
|
||||
for(int i=0;value.length > i;i++){
|
||||
Map<String, dynamic> row = {
|
||||
'ID_EQUIPE' : value[i]['idEquipe'],
|
||||
'ID_UNIDADE' : value[i]['idUnidade'],
|
||||
'INE' : value[i]['INE'],
|
||||
'ID_ATB_AREA' : value[i]['idAtbArea'],
|
||||
'AREA' : value[i]['area'],
|
||||
'ID_ATB_MICROAREA': value[i]['idAtbMicroarea'],
|
||||
'MICROAREA' : value[i]['microarea'],
|
||||
};
|
||||
int id = await db.insert('EQUIPES', row);
|
||||
// print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
|
||||
}
|
||||
print(await db.query('EQUIPES'));
|
||||
return db;
|
||||
}
|
||||
}
|
||||
@@ -7,7 +7,8 @@ class ColorPalette{
|
||||
static const Color secundary = Color(0xffcff1fc);
|
||||
static const Color border = Color(0xff78baf8);
|
||||
static const Color gray = Color(0xffababab);
|
||||
static const Color titleContainer = Color(0xffd6d6d6);
|
||||
static const Color grayBackground = Color(0xffd1d1e3);
|
||||
static const Color titleContainer = Color(0xffdedede);
|
||||
static const Color buttonDisable = Color(0xfffafcbfb);
|
||||
static const Color black54 = Colors.black54;
|
||||
static const Color blackButton = Color(0xff434343);
|
||||
|
||||
@@ -261,4 +261,15 @@ class ConstVariable{
|
||||
],
|
||||
)
|
||||
);
|
||||
|
||||
replaceText(String text){
|
||||
String replace= text.toLowerCase()
|
||||
.replaceAll('ú', 'u')
|
||||
.replaceAll('ç', 'c')
|
||||
.replaceAll('ó', 'o')
|
||||
.replaceAll('ô', 'o')
|
||||
.replaceAll('í', 'i')
|
||||
.replaceAll('ã','a');
|
||||
return replace;
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'package:rkm/screens/about_screen.dart';
|
||||
import 'package:rkm/screens/attendance_list_screen.dart';
|
||||
import 'package:rkm/screens/home_screen.dart';
|
||||
import 'package:rkm/screens/load_init_screen.dart';
|
||||
import 'package:rkm/screens/login_screen.dart';
|
||||
import 'package:rkm/screens/select_service/eligibility_assessment_screen.dart';
|
||||
import 'package:rkm/screens/splash_screen.dart';
|
||||
|
||||
@@ -6,7 +6,9 @@ import FlutterMacOS
|
||||
import Foundation
|
||||
|
||||
import package_info_plus
|
||||
import sqflite
|
||||
|
||||
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
||||
FLTPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FLTPackageInfoPlusPlugin"))
|
||||
SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin"))
|
||||
}
|
||||
|
||||
23
pubspec.lock
23
pubspec.lock
@@ -231,6 +231,20 @@ packages:
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.9.0"
|
||||
sqflite:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: sqflite
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.2.6"
|
||||
sqflite_common:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: sqflite_common
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.4.3"
|
||||
stack_trace:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -252,6 +266,13 @@ packages:
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.1.1"
|
||||
synchronized:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: synchronized
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.0.1"
|
||||
term_glyph:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -289,4 +310,4 @@ packages:
|
||||
version: "4.1.1"
|
||||
sdks:
|
||||
dart: ">=2.18.6 <3.0.0"
|
||||
flutter: ">=2.11.0"
|
||||
flutter: ">=3.3.0"
|
||||
|
||||
@@ -17,6 +17,7 @@ dependencies:
|
||||
line_icons: ^2.0.1
|
||||
http:
|
||||
gainer_crypto: ^0.0.6
|
||||
sqflite: ^2.0.0+3
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
|
||||
Reference in New Issue
Block a user