From 58fcb66022ff8c1f31f1fa01c3998fd16f0412e1 Mon Sep 17 00:00:00 2001 From: Reginaldo Date: Mon, 18 Mar 2024 22:16:02 -0300 Subject: [PATCH] =?UTF-8?q?corre=C3=A7=C3=A3o=20visita=5Fdomiciliar=5Ftela?= =?UTF-8?q?.dart,=20register=5Fcitizen=5Fscreen.dart=20e=20register=5Findi?= =?UTF-8?q?vidual=5Fscreen.dart?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/config/const_variable.dart | 5 +- lib/main.dart | 9 +- lib/models/drop_down_data_string_model.dart | 12 + lib/screens/edit_procedures_screen.dart | 87 ++- lib/screens/home_screen.dart | 4 +- lib/screens/load_init_screen.dart | 561 +++++++++--------- .../register_citizen_screen.dart | 88 ++- .../register_individual_screen.dart | 11 +- ....dart => atendimento_domiciliar_tela.dart} | 150 ++--- ...creen.dart => visita_domiciliar_tela.dart} | 231 +++++--- lib/service/api/api_data_load.dart | 10 + lib/service/api/api_data_sync.dart | 1 + lib/service/db/db_querys.dart | 33 +- lib/service/db/db_sqlite_load.dart | 18 +- lib/service/db/db_sqlite_sync.dart | 1 + lib/widgets/alert_dialog_default.dart | 78 ++- lib/widgets/dropdown_etnia_indigena.dart | 87 +++ lib/widgets/dropdown_with_subtitle.dart | 1 - pubspec.yaml | 3 +- 19 files changed, 903 insertions(+), 487 deletions(-) rename lib/screens/select_service/{service_home_screen.dart => atendimento_domiciliar_tela.dart} (91%) rename lib/screens/select_service/{home_visit_screen.dart => visita_domiciliar_tela.dart} (84%) create mode 100644 lib/widgets/dropdown_etnia_indigena.dart diff --git a/lib/config/const_variable.dart b/lib/config/const_variable.dart index a5c1f02..9c115de 100644 --- a/lib/config/const_variable.dart +++ b/lib/config/const_variable.dart @@ -11,7 +11,7 @@ class ConstVariable{ IconThemeData iconThemeDataDefault = IconThemeData(color: Colors.white); double fontSizeInput = 15; double fontSizeTitleAppBar = 20; - List RGUF = ['AC','AL','AP','AM','BA','CE','DF','ES','GO','MA','MT','MS','MG','PA','PB','PR','PE','PI','RJ','RN','RS','RO','RR','SC','SP','SE','TO',]; + List RGUF = ['AC','AL','AP','AM','BA','CE','DF','ES','GO','MA','MT','MS','MG','PA','PB','PR','PE','PI','RJ','RN','RS','RO','RR','SC','SP','SE','TO','--']; List itensProceduresStart = [ 'ATEND. INDIVIDUAL', 'VISTA DOMICILIAR' @@ -86,6 +86,7 @@ class ConstVariable{ 'PESSOA COM DESNUTRIÇÃO', 'PESSOA EM REABILITAÇÃO OU COM DEFICIÊNCIA', 'PESSOA COM HIPERTENSÃO', + 'PESSOA COM DIABETES', 'PESSOA COM ASMA', 'PESSOA COM DPOC/ENFISEMA', 'PESSOA COM CÂNCER', @@ -124,7 +125,7 @@ class ConstVariable{ 'USO DE COLOSTOMIA', 'USO DE GASTROSTOMIA', 'USO DE SONDA NASOENTERAL - SNE', - 'USO DE SONDA NASOGRÁSTRICA - SNG', + 'USO DE SONDA NASOGÁSTRICA - SNG', 'USO DE SONDA VESICAL DE DEMORA - SVD', 'USO DE TRAQUEOSTOMIA', ]; diff --git a/lib/main.dart b/lib/main.dart index c2eb417..07ea30c 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,9 +1,13 @@ import 'dart:io'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:rkm/config/color_palette.dart'; import 'package:rkm/config/routes.dart'; + +//Cadastro e edição do Cadastro do Cidadão, Cadastro Individual, Cadastro Domiciliar e Visita Domiciliar + class PostHttpOverrides extends HttpOverrides{ @override HttpClient createHttpClient( context){ @@ -13,10 +17,11 @@ class PostHttpOverrides extends HttpOverrides{ } void main() { + WidgetsFlutterBinding.ensureInitialized(); + SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); HttpOverrides.global = new PostHttpOverrides(); runApp(const MyApp()); } -//Cadastro e edição do Cadastro do Cidadão, Cadastro Individual, Cadastro Domiciliar e Visita Domiciliar class MyApp extends StatelessWidget { const MyApp({super.key}); @@ -31,7 +36,7 @@ class MyApp extends StatelessWidget { GlobalWidgetsLocalizations.delegate, ], supportedLocales: [ - const Locale('pt', 'BR'), // Adicione os locales que você precisa + const Locale('pt', 'BR'), ], theme: ThemeData( primaryColor: ColorPalette.primary, diff --git a/lib/models/drop_down_data_string_model.dart b/lib/models/drop_down_data_string_model.dart index 7654539..e6f8040 100644 --- a/lib/models/drop_down_data_string_model.dart +++ b/lib/models/drop_down_data_string_model.dart @@ -6,5 +6,17 @@ class DropDownDataStringModel{ required this.cod, required this.title }); + + @override + bool operator ==(Object other) => + identical(this, other) || + other is DropDownDataStringModel && + runtimeType == other.runtimeType && + cod == other.cod && + title == other.title; + + @override + int get hashCode => cod.hashCode ^ title.hashCode; + } diff --git a/lib/screens/edit_procedures_screen.dart b/lib/screens/edit_procedures_screen.dart index 47cbdf7..37b0d18 100644 --- a/lib/screens/edit_procedures_screen.dart +++ b/lib/screens/edit_procedures_screen.dart @@ -2,13 +2,15 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:rkm/config/const_variable.dart'; import 'package:rkm/widgets/appbar_default.dart'; -import 'package:rkm/widgets/input_text.dart'; import 'package:rkm/widgets/onbackbutton.dart'; import 'package:rkm/widgets/text_default.dart'; +import 'package:sqflite/sqflite.dart'; import '../config/color_palette.dart'; +import '../service/db/db_querys.dart'; +import '../service/db/db_sqlite_load.dart'; +import '../service/shared_preferences/shared_preferences_service.dart'; import '../widgets/button_default.dart'; import '../widgets/dropdown_button_default.dart'; -import '../widgets/subtitle_containers.dart'; import '../widgets/title_containers.dart'; class EditProceduresScreen extends StatefulWidget { @@ -24,9 +26,15 @@ class _EditProceduresScreenState extends State { var controllerProfessional = TextEditingController(); var controllerUnit = TextEditingController(); + var NOME_PROFISSIONAL = TextEditingController(); + var NOME_UNIDADE = TextEditingController(); + List listCBO = []; + List listINEPROF = []; String? selectCBO; - String? selectTeam; + String? INE_RESP_CADASTRO; String? date; + int idUsuario = 0; + String idUnidade = ''; escolherprazoInicio(BuildContext context) async { var pickDate = await showDatePicker( @@ -47,7 +55,66 @@ class _EditProceduresScreenState extends State { String formattedDate = DateFormat('dd/MM/yyyy').format(data); return formattedDate; } - + + + getUser()async{ + final PrefService _prefService = PrefService(); + _prefService.readCacheIDUser().then((value){ + if(value != null){ + idUsuario = int.parse(value); + } + }).then((value)async{ + await DBQuerys().buscaProfissionalCadInd(idUsuario).then((list){ + // ID_PROFISSIONAL = list['ID_PROFISSIONAL']; + NOME_PROFISSIONAL.text = list['NOME_PROFISSIONAL']; + // String CNS_PROFISSIONAL = list['CNS_PROFISSIONAL']; + // if(CNS_PROFISSIONAL == 999999999999999 || CNS_PROFISSIONAL == '999999999999999'){ + // CNS_VALIDO = true; + // } + loadCBO(); + }); + }); + _prefService.readCacheUnidade().then((value){ + if(value!=null){ + idUnidade = value[0]; + NOME_UNIDADE.text = value[1]; + } + }); + + } + + loadCBO()async{ + Database dbcbo = await DbSqliteLoad().intialDB(); + var query = 'SELECT * FROM PROFISSIONAIS_CBOS WHERE ID_PROFISSIONAL = $idUsuario'; + List listcbo = await dbcbo.rawQuery(query); + + if(listcbo.length!=0){ + for(int i = 0; listcbo.length>i;i++){ + await DBQuerys().buscaCBOSProfissional(listcbo[i]['CODIGO_CBO']).then((cbo)async{ + if(cbo.length!=0){ + listCBO.add(cbo[0]['DESCRICAO_CBO']+' - '+listcbo[i]['CODIGO_CBO'].toString()); + } + }); + } + } + loadEquipe(); + } + + loadEquipe()async{ + List list = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario); + for(int i=0; list.length > i;i++){ + INE_RESP_CADASTRO = 'INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']}'; + listINEPROF.add('INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']}'); + } + setState(() {}); + } + + @override + void initState() { + super.initState(); + getUser(); + } + @override Widget build(BuildContext context) { @@ -137,7 +204,7 @@ class _EditProceduresScreenState extends State { padding: EdgeInsets.all(5), width: width*0.5, color: ColorPalette.titleContainer, - child: TextDefault(text: 'ADMINISTRADOR',color: ColorPalette.black54,fontSize: 15,), + child: TextDefault(text: NOME_PROFISSIONAL.text,color: ColorPalette.black54,fontSize: 15,), ) ], ), @@ -159,7 +226,7 @@ class _EditProceduresScreenState extends State { width: width*0.5, color: ColorPalette.titleContainer, child: TextDefault( - text: 'USF PINHAL - EMILIA STEPHANI SIMIONATO', + text: NOME_UNIDADE.text, color: ColorPalette.black54, fontSize: 15, ), @@ -188,7 +255,7 @@ class _EditProceduresScreenState extends State { width: width*0.4, widthContainer: width*0.3, select: selectCBO, - list: ConstVariable().itensCBO, + list: listCBO, onChanged: (value){ setState(() { selectCBO = value!; @@ -218,11 +285,11 @@ class _EditProceduresScreenState extends State { fontSize: 15, width: width*0.5, widthContainer: width*0.4, - select: selectTeam, - list: [], + select: INE_RESP_CADASTRO, + list: listINEPROF, onChanged: (value){ setState(() { - selectTeam = value!; + INE_RESP_CADASTRO = value!; }); }, ), diff --git a/lib/screens/home_screen.dart b/lib/screens/home_screen.dart index 9389f0a..d924887 100644 --- a/lib/screens/home_screen.dart +++ b/lib/screens/home_screen.dart @@ -30,7 +30,7 @@ class _HomeScreenState extends State { loadCitizen()async{ await DbSqliteLoad().intialDB().then((db)async { dataCitizen = await db.query('CIDADAOS ORDER BY NOME_CIDADAO'); - print(dataCitizen.length); + // print(dataCitizen.length); // print(await db.rawQuery("SELECT * FROM CIDADAOS")); }); searchCitizen(); @@ -150,7 +150,7 @@ class _HomeScreenState extends State { numberMedicalRecord: '${showResults[index]['NUM_PRONTUARIO']}'==''?'-----':'${showResults[index]['NUM_PRONTUARIO']}', onTap: ()async { await DBQuerys().buscaCidadao(showResults[index]['NOME_CIDADAO']).then((list){ - print(showResults[index]['CD_USUARIO_SUS']); + // print(showResults[index]['CD_USUARIO_SUS']); Navigator.push( context, MaterialPageRoute(builder:(context) => RegisterCitizenScreen(listData: list,username: widget.username,)), diff --git a/lib/screens/load_init_screen.dart b/lib/screens/load_init_screen.dart index aa9bc77..ef91da5 100644 --- a/lib/screens/load_init_screen.dart +++ b/lib/screens/load_init_screen.dart @@ -53,288 +53,307 @@ class _LoadInitScreenState extends State { if(response['status'] == 0){ AlertDialogDefault().alert(context, 'Erro', 'Permissão negada', 'Voltar'); } else if(response['status'] == 1 && response['load_perm'] == "S") { - - await ApiDataLoad().loadUnidades(urlAPI,mode,nameCityApi,username).then((value)async{ + await ApiDataLoad().loadEtniasIndigenas(urlAPI, mode, nameCityApi, username).then((value)async{ List list = value; List> rows = []; - if(list.length !=0){ + if(list.length !=0) { setState(() { - messageSteps = "Etapa 1 de 11 - Gravando as Unidades no Aplicativo"; + messageSteps = "Etapa 1 de 12 - Gravando as Etnias Indigenas no Aplicativo"; }); for (int i = 0; i < list.length; i++) { Map row = { - 'ID_UNIDADE': list[i]['idUnidade'], - 'NOME_UNIDADE': list[i]['nomeFantasia'], - 'CNES_UNIDADE': list[i]['nrCNES'] + 'ID_ETNIA_INDIGENA': list[i]['idEtniaIndigena'].toString().trim(), + 'DESC_ETNIA_INDIGENA': list[i]['descEtniaIndigena'].toString().trim(), }; rows.add(row); - countProg = 0.1; + countProg = 0.05; setState(() {}); } - await DbSqliteLoad().saveUnidadesDB(rows).then((value)async{ - await ApiDataLoad().loadProcedimentos(urlAPI,mode,nameCityApi,username).then((value)async{ - List list = value; - List> rows = []; - if(list.length !=0){ - setState(() { - messageSteps = "Etapa 2 de 11 - Gravando os Procedimentos no Aplicativo"; - }); - for (int i = 0; i < list.length; i++) { - Map row = { - 'COD_PROC_SIGTAP' : list[i]['codProcedimento'], - 'DESC_PROC_SIGTAP' : list[i]['nome'], - 'GRUPO_PROC_SIGTAP' : list[i]['codGrupo'], - 'QTDE_MAXIMA' : list[i]['qtdeMax'], - 'IDADE_MIN' : list[i]['idadeMin'], - 'IDADE_MAX' : list[i]['idadeMax'], - 'SEXO' : list[i]['sexo'], - }; - rows.add(row); - countProg = 0.2; - setState(() {}); - } - await DbSqliteLoad().saveProceduresDB(rows).then((value)async{ - print('finalizou save Procedures'); - await ApiDataLoad().loadProcedimentosRegistros(urlAPI,mode,nameCityApi,username).then((value)async{ - List list = value; - List> rows = []; - if(list.length !=0){ - setState(() { - messageSteps = "Etapa 3 de 11 - Gravando os Procedimentos Registros no Aplicativo"; - }); - print('finalizou saveProceduresRegisterDB'); - for (int i = 0; i < list.length; i++) { - Map row = { - 'COD_PROC_SIGTAP' : list[i]['codProcedimento'], - 'CODIGO_REGISTRO' : list[i]['codRegistro'], - }; - rows.add(row); - countProg = 0.3; - setState(() {}); - } - await DbSqliteLoad().saveProceduresRegisterDB(rows).then((value)async{ - await ApiDataLoad().loadCID(urlAPI,mode,nameCityApi,username).then((value)async{ - print('loadCID'); - List list = value; - List> rows = []; - if(list.length !=0){ - setState(() { - messageSteps = "Etapa 4 de 11 - Gravando os CIDs no Aplicativo"; - }); - for (int i = 0; i < list.length; i++) { - Map row = { - 'CODIGO_CID' : list[i]['codCID'], - 'DESCRICAO_CID' : list[i]['descCID'], - 'RESTRICAO_SEXO' : list[i]['restSexo'], - }; - rows.add(row); - countProg = 0.4; - setState(() {}); - } - await DbSqliteLoad().saveCID(rows).then((value)async{ - print('finalizou saveCID'); - await ApiDataLoad().loadProcedimentosCID(urlAPI,mode,nameCityApi,username).then((value)async{ - print('loadProcedimentosCID'); - List list = value; - List> rows = []; - if(list.length !=0){ - setState(() { - messageSteps = "Etapa 5 de 11 - Gravando os Procedimentos CIDs no Aplicativo"; - }); - for (int i = 0; i < list.length; i++) { - Map row = { - 'COD_PROC_SIGTAP' : list[i]['codProcedimento'], - 'CODIGO_CID' : list[i]['codCID'], - }; - rows.add(row); - countProg = 0.5; - setState(() {}); - } - await DbSqliteLoad().saveProceduresCID(rows).then((value)async{ - print('finalizou saveProceduresCID'); - await ApiDataLoad().loadCBO(urlAPI,mode,nameCityApi,username).then((value)async{ - print('loadCBO'); - List list = value; - List> rows = []; - if(list.length !=0){ - setState(() { - messageSteps = "Etapa 6 de 11 - Gravando os CBOs no Aplicativo"; - }); - for (int i = 0; i < list.length; i++) { - Map row = { - 'CODIGO_CBO' : list[i]['codCBO'], - 'DESCRICAO_CBO' : list[i]['descCBO'], - }; - rows.add(row); - countProg = 0.6; - setState(() {}); - } - await DbSqliteLoad().saveCBO(rows).then((value)async{ - print('finalizou saveCBO'); - await ApiDataLoad().loadProcedimentosCBO(urlAPI,mode,nameCityApi,username).then((value)async{ - print('loadProcedimentosCBO'); - List list = value; - List> rows = []; - if(list.length !=0){ - setState(() { - messageSteps = "Etapa 7 de 11 - Gravando os Procedimentos CBO no Aplicativo"; - }); - for (int i = 0; i < list.length; i++) { - Map row = { - 'COD_PROC_SIGTAP' : value[i]['codProcedimento'], - 'CODIGO_CBO' : value[i]['codCBO'], - }; - rows.add(row); - countProg = 0.7; - setState(() {}); - } - await DbSqliteLoad().saveProceduresCBO(rows).then((value)async{ - print('finalizou saveProceduresCBO'); - await ApiDataLoad().loadCIAP(urlAPI,mode,nameCityApi,username).then((value)async{ - print('loadCIAP'); - List list = value; - List> rows = []; - if(list.length != 0){ - setState(() { - messageSteps = "Etapa 8 de 11 - Gravando os CIAPs no Aplicativo"; - }); - for(int i=0;list.length > i;i++){ - Map row = { - 'CODIGO_CIAP' : list[i]['codCIAP'], - 'DESC_CIAP' : list[i]['descCIAP'], - 'TIPO_CIAP' : list[i]['tipoCIAP'], - }; - rows.add(row); - countProg = 0.8; - setState(() {}); - } - await DbSqliteLoad().saveCIAP(rows).then((value)async{ - print('finalizou saveCIAP'); - await ApiDataLoad().loadMunicipios(urlAPI,mode,nameCityApi,username).then((value)async{ - print('loadMunicipios'); - List list = value; - List> rows = []; - if(list.length!=0){ - setState(() { - messageSteps = "Etapa 9 de 11 - Gravando os Municípios no Aplicativo"; - }); - for(int i=0;list.length > i;i++){ - Map row = { - 'ID_MUNICIPIO' : list[i]['idMunicipio'], - 'CODIGO_IBGE' : list[i]['codIBGE'], - 'NO_MUNICIPIO' : list[i]['nomeMunicipio'], - 'UF_ESTADO' : list[i]['UF'], - 'ID_PAIS' : list[i]['idPais'], - }; - rows.add(row); - countProg = 0.9; - setState(() {}); - } - await DbSqliteLoad().saveCity(rows).then((value)async{ - await ApiDataLoad().loadEquipes(urlAPI,mode,nameCityApi,username).then((value)async{ - print('loadEquipes'); - List list = value; - List> rows = []; - if(list.length!=0){ - setState(() { - messageSteps = "Etapa 10 de 11 - Gravando as Equipes no Aplicativo"; - }); - for(int i=0;list.length > i;i++){ - Map row = { - 'ID_EQUIPE' : list[i]['idEquipe'], - 'ID_UNIDADE' : list[i]['idUnidade'], - 'INE' : list[i]['INE'], - 'ID_ATB_AREA' : list[i]['idAtbArea'], - 'AREA' : list[i]['area'], - 'ID_ATB_MICROAREA': list[i]['idAtbMicroarea'], - 'MICROAREA' : list[i]['microarea'], - }; - rows.add(row); - countProg = 0.92; - setState(() {}); - } - await DbSqliteLoad().saveTeam(rows).then((value)async{ - countProg = 0.95; - setState(() {}); - print('finalizou saveTeam'); - await ApiDataLoad().loadEquipeComponentes(urlAPI,mode,nameCityApi,username).then((value)async{ - print('loadEquipeComponentes'); - List list = value; - List> rows = []; - if(list.length!=0) { - setState(() { - messageSteps ="Etapa 11 de 11 - Gravando os Profissionais das Equipes no Aplicativo"; - }); - for(int i=0;list.length > i;i++){ - Map row = { - 'ID_EQUIPE' : list[i]['idEquipe'], - 'ID_PROFISSIONAL' : list[i]['idProfissional'], - 'ATIVO' : list[i]['ativo'], - }; - rows.add(row); - countProg = 0.97; - setState(() {}); - } - await DbSqliteLoad().saveTeamComponents(rows).then((value)async{ - print('finalizou saveTeamComponents'); - setState(() { - countProg = 1; - finish = true; - }); - }); - }else{ - AlertDialogDefault().alert(context, 'Error', 'Profissionais Equipes não carregadas, tente novamente!', 'Voltar'); - } - }); - }); - }else{ - AlertDialogDefault().alert(context, 'Error', 'Equipes não carregadas, tente novamente!', 'Voltar'); - } - }); - }); - }else{ - AlertDialogDefault().alert(context, 'Error', 'Municípios não carregados, tente novamente!', 'Voltar'); - } - }); - }); - }else{ - AlertDialogDefault().alert(context, 'Error', 'CIAPs não carregados, tente novamente!', 'Voltar'); - } - }); - }); - }else{ - AlertDialogDefault().alert(context, 'Error', 'Procedimentos CBOs não carregados, tente novamente!', 'Voltar'); - } - }); - }); - }else{ - AlertDialogDefault().alert(context, 'Error', 'CBOs não carregados, tente novamente!', 'Voltar'); - } - }); - }); - }else{ - AlertDialogDefault().alert(context, 'Error', 'Procedimentos CIDs não carregados, tente novamente!', 'Voltar'); - } - }); - }); - }else{ - AlertDialogDefault().alert(context, 'Error', 'CIDs não carregados, tente novamente!', 'Voltar'); - } - }); - }); - }else{ - AlertDialogDefault().alert(context, 'Error', 'Procedimentos Registros não carregados, tente novamente!', 'Voltar'); - } - }); - }); - }else{ - AlertDialogDefault().alert(context, 'Error', 'Procedimentos não carregados, tente novamente!', 'Voltar'); - } - }); - }); - }else{ - AlertDialogDefault().alert(context, 'Error', 'Unidades não carregadas, tente novamente!', 'Voltar'); } + await DbSqliteLoad().saveEtniasIndigenasDB(rows).then((value)async{ + await ApiDataLoad().loadUnidades(urlAPI,mode,nameCityApi,username).then((value)async{ + List list = value; + List> rows = []; + if(list.length !=0){ + setState(() { + messageSteps = "Etapa 2 de 12 - Gravando as Unidades no Aplicativo"; + }); + for (int i = 0; i < list.length; i++) { + Map row = { + 'ID_UNIDADE': list[i]['idUnidade'], + 'NOME_UNIDADE': list[i]['nomeFantasia'], + 'CNES_UNIDADE': list[i]['nrCNES'] + }; + rows.add(row); + // countProg = 0.1; + // setState(() {}); + } + await DbSqliteLoad().saveUnidadesDB(rows).then((value)async{ + await ApiDataLoad().loadProcedimentos(urlAPI,mode,nameCityApi,username).then((value)async{ + List list = value; + List> rows = []; + if(list.length !=0){ + setState(() { + messageSteps = "Etapa 3 de 12 - Gravando os Procedimentos no Aplicativo"; + }); + for (int i = 0; i < list.length; i++) { + Map row = { + 'COD_PROC_SIGTAP' : list[i]['codProcedimento'], + 'DESC_PROC_SIGTAP' : list[i]['nome'], + 'GRUPO_PROC_SIGTAP' : list[i]['codGrupo'], + 'QTDE_MAXIMA' : list[i]['qtdeMax'], + 'IDADE_MIN' : list[i]['idadeMin'], + 'IDADE_MAX' : list[i]['idadeMax'], + 'SEXO' : list[i]['sexo'], + }; + rows.add(row); + countProg = 0.2; + setState(() {}); + } + await DbSqliteLoad().saveProceduresDB(rows).then((value)async{ + print('finalizou save Procedures'); + await ApiDataLoad().loadProcedimentosRegistros(urlAPI,mode,nameCityApi,username).then((value)async{ + List list = value; + List> rows = []; + if(list.length !=0){ + setState(() { + messageSteps = "Etapa 4 de 12 - Gravando os Procedimentos Registros no Aplicativo"; + }); + print('finalizou saveProceduresRegisterDB'); + for (int i = 0; i < list.length; i++) { + Map row = { + 'COD_PROC_SIGTAP' : list[i]['codProcedimento'], + 'CODIGO_REGISTRO' : list[i]['codRegistro'], + }; + rows.add(row); + countProg = 0.3; + setState(() {}); + } + await DbSqliteLoad().saveProceduresRegisterDB(rows).then((value)async{ + await ApiDataLoad().loadCID(urlAPI,mode,nameCityApi,username).then((value)async{ + print('loadCID'); + List list = value; + List> rows = []; + if(list.length !=0){ + setState(() { + messageSteps = "Etapa 5 de 12 - Gravando os CIDs no Aplicativo"; + }); + for (int i = 0; i < list.length; i++) { + Map row = { + 'CODIGO_CID' : list[i]['codCID'], + 'DESCRICAO_CID' : list[i]['descCID'], + 'RESTRICAO_SEXO' : list[i]['restSexo'], + }; + rows.add(row); + countProg = 0.4; + setState(() {}); + } + await DbSqliteLoad().saveCID(rows).then((value)async{ + print('finalizou saveCID'); + await ApiDataLoad().loadProcedimentosCID(urlAPI,mode,nameCityApi,username).then((value)async{ + print('loadProcedimentosCID'); + List list = value; + List> rows = []; + if(list.length !=0){ + setState(() { + messageSteps = "Etapa 6 de 12 - Gravando os Procedimentos CIDs no Aplicativo"; + }); + for (int i = 0; i < list.length; i++) { + Map row = { + 'COD_PROC_SIGTAP' : list[i]['codProcedimento'], + 'CODIGO_CID' : list[i]['codCID'], + }; + rows.add(row); + countProg = 0.5; + setState(() {}); + } + await DbSqliteLoad().saveProceduresCID(rows).then((value)async{ + print('finalizou saveProceduresCID'); + await ApiDataLoad().loadCBO(urlAPI,mode,nameCityApi,username).then((value)async{ + print('loadCBO'); + List list = value; + List> rows = []; + if(list.length !=0){ + setState(() { + messageSteps = "Etapa 8 de 12 - Gravando os CBOs no Aplicativo"; + }); + for (int i = 0; i < list.length; i++) { + Map row = { + 'CODIGO_CBO' : list[i]['codCBO'], + 'DESCRICAO_CBO' : list[i]['descCBO'], + }; + rows.add(row); + countProg = 0.6; + setState(() {}); + } + await DbSqliteLoad().saveCBO(rows).then((value)async{ + print('finalizou saveCBO'); + await ApiDataLoad().loadProcedimentosCBO(urlAPI,mode,nameCityApi,username).then((value)async{ + print('loadProcedimentosCBO'); + List list = value; + List> rows = []; + if(list.length !=0){ + setState(() { + messageSteps = "Etapa 8 de 12 - Gravando os Procedimentos CBO no Aplicativo"; + }); + for (int i = 0; i < list.length; i++) { + Map row = { + 'COD_PROC_SIGTAP' : value[i]['codProcedimento'], + 'CODIGO_CBO' : value[i]['codCBO'], + }; + rows.add(row); + countProg = 0.7; + setState(() {}); + } + await DbSqliteLoad().saveProceduresCBO(rows).then((value)async{ + print('finalizou saveProceduresCBO'); + await ApiDataLoad().loadCIAP(urlAPI,mode,nameCityApi,username).then((value)async{ + print('loadCIAP'); + List list = value; + List> rows = []; + if(list.length != 0){ + setState(() { + messageSteps = "Etapa 9 de 12 - Gravando os CIAPs no Aplicativo"; + }); + for(int i=0;list.length > i;i++){ + Map row = { + 'CODIGO_CIAP' : list[i]['codCIAP'], + 'DESC_CIAP' : list[i]['descCIAP'], + 'TIPO_CIAP' : list[i]['tipoCIAP'], + }; + rows.add(row); + countProg = 0.8; + setState(() {}); + } + await DbSqliteLoad().saveCIAP(rows).then((value)async{ + print('finalizou saveCIAP'); + await ApiDataLoad().loadMunicipios(urlAPI,mode,nameCityApi,username).then((value)async{ + print('loadMunicipios'); + List list = value; + List> rows = []; + if(list.length!=0){ + setState(() { + messageSteps = "Etapa 10 de 12 - Gravando os Municípios no Aplicativo"; + }); + for(int i=0;list.length > i;i++){ + Map row = { + 'ID_MUNICIPIO' : list[i]['idMunicipio'], + 'CODIGO_IBGE' : list[i]['codIBGE'], + 'NO_MUNICIPIO' : list[i]['nomeMunicipio'], + 'UF_ESTADO' : list[i]['UF'], + 'ID_PAIS' : list[i]['idPais'], + }; + rows.add(row); + countProg = 0.9; + setState(() {}); + } + await DbSqliteLoad().saveCity(rows).then((value)async{ + await ApiDataLoad().loadEquipes(urlAPI,mode,nameCityApi,username).then((value)async{ + print('loadEquipes'); + List list = value; + List> rows = []; + if(list.length!=0){ + setState(() { + messageSteps = "Etapa 11 de 12 - Gravando as Equipes no Aplicativo"; + }); + for(int i=0;list.length > i;i++){ + Map row = { + 'ID_EQUIPE' : list[i]['idEquipe'], + 'ID_UNIDADE' : list[i]['idUnidade'], + 'INE' : list[i]['INE'], + 'ID_ATB_AREA' : list[i]['idAtbArea'], + 'AREA' : list[i]['area'], + 'ID_ATB_MICROAREA': list[i]['idAtbMicroarea'], + 'MICROAREA' : list[i]['microarea'], + }; + rows.add(row); + countProg = 0.92; + setState(() {}); + } + await DbSqliteLoad().saveTeam(rows).then((value)async{ + countProg = 0.95; + setState(() {}); + print('finalizou saveTeam'); + await ApiDataLoad().loadEquipeComponentes(urlAPI,mode,nameCityApi,username).then((value)async{ + print('loadEquipeComponentes'); + List list = value; + List> rows = []; + if(list.length!=0) { + setState(() { + messageSteps ="Etapa 12 de 12 - Gravando os Profissionais das Equipes no Aplicativo"; + }); + for(int i=0;list.length > i;i++){ + Map row = { + 'ID_EQUIPE' : list[i]['idEquipe'], + 'ID_PROFISSIONAL' : list[i]['idProfissional'], + 'ATIVO' : list[i]['ativo'], + }; + rows.add(row); + countProg = 0.97; + setState(() {}); + } + await DbSqliteLoad().saveTeamComponents(rows).then((value)async{ + print('finalizou saveTeamComponents'); + setState(() { + countProg = 1; + finish = true; + }); + }); + }else{ + AlertDialogDefault().alert(context, 'Error', 'Profissionais Equipes não carregadas, tente novamente!', 'Voltar'); + } + }); + }); + }else{ + AlertDialogDefault().alert(context, 'Error', 'Equipes não carregadas, tente novamente!', 'Voltar'); + } + }); + }); + }else{ + AlertDialogDefault().alert(context, 'Error', 'Municípios não carregados, tente novamente!', 'Voltar'); + } + }); + }); + }else{ + AlertDialogDefault().alert(context, 'Error', 'CIAPs não carregados, tente novamente!', 'Voltar'); + } + }); + }); + }else{ + AlertDialogDefault().alert(context, 'Error', 'Procedimentos CBOs não carregados, tente novamente!', 'Voltar'); + } + }); + }); + }else{ + AlertDialogDefault().alert(context, 'Error', 'CBOs não carregados, tente novamente!', 'Voltar'); + } + }); + }); + }else{ + AlertDialogDefault().alert(context, 'Error', 'Procedimentos CIDs não carregados, tente novamente!', 'Voltar'); + } + }); + }); + }else{ + AlertDialogDefault().alert(context, 'Error', 'CIDs não carregados, tente novamente!', 'Voltar'); + } + }); + }); + }else{ + AlertDialogDefault().alert(context, 'Error', 'Procedimentos Registros não carregados, tente novamente!', 'Voltar'); + } + }); + }); + }else{ + AlertDialogDefault().alert(context, 'Error', 'Procedimentos não carregados, tente novamente!', 'Voltar'); + } + }); + }); + }else{ + AlertDialogDefault().alert(context, 'Error', 'Unidades não carregadas, tente novamente!', 'Voltar'); + } + }); + }); }); } }); diff --git a/lib/screens/registers_citizen/register_citizen_screen.dart b/lib/screens/registers_citizen/register_citizen_screen.dart index 0b6b1df..223770e 100644 --- a/lib/screens/registers_citizen/register_citizen_screen.dart +++ b/lib/screens/registers_citizen/register_citizen_screen.dart @@ -4,6 +4,7 @@ import 'package:flutter/services.dart'; import 'package:intl/intl.dart'; import 'package:rkm/config/color_palette.dart'; import 'package:rkm/config/const_variable.dart'; +import 'package:rkm/models/drop_down_data_string_model.dart'; import 'package:rkm/models/pais_modelo.dart'; import 'package:rkm/widgets/alert_dialog_default.dart'; import 'package:rkm/widgets/button_default.dart'; @@ -16,6 +17,7 @@ import '../../service/db/db_sqlite_load.dart'; import '../../service/db/db_sqlite_sync.dart'; import '../../service/shared_preferences/shared_preferences_service.dart'; import '../../widgets/appbar_default.dart'; +import '../../widgets/dropdown_etnia_indigena.dart'; import '../../widgets/dropdown_with_subtitle.dart'; import '../../widgets/error_default.dart'; import '../../widgets/input_search_text.dart'; @@ -108,6 +110,7 @@ class _RegisterCitizenScreenState extends State { String? selectMaritalStatus; int? selectMaritalStatusCod; String? selectBreed; + DropDownDataStringModel? selectEtniaIndigena; int? selectBreedCod; String? selectScooling; int? selectScoolingCod; @@ -146,6 +149,7 @@ class _RegisterCitizenScreenState extends State { List listScooling = []; List listBreed = []; List listMaritalStatus = []; + List listEtniasIndigenas = []; String idUnidade = ''; String codSus = ''; bool edit = false; @@ -190,6 +194,28 @@ class _RegisterCitizenScreenState extends State { return formattedDate; } + getEtniasIndigenas()async{ + Database db = await DbSqliteLoad().intialDB(); + var query = "SELECT * FROM ETNIAS_INDIGENAS"; + List list = await db.rawQuery(query); + for(int i = 0; list.length > i ; i++ ){ + listEtniasIndigenas.add(DropDownDataStringModel(cod: list[i]['ID_ETNIA_INDIGENA'], title: list[i]['DESC_ETNIA_INDIGENA'])); + } + print('antes'); + print(listEtniasIndigenas.length); + List listaSemDuplicatas = listEtniasIndigenas.toSet().toList(); + + listEtniasIndigenas = listaSemDuplicatas; + print('depois'); + print(listEtniasIndigenas.length); + + if(widget.listData.length!=0){ + getData(); + edit = true; + showTab = true; + } + } + getUnit()async{ Database db = await DbSqliteLoad().intialDB(); var queryControl = "SELECT * FROM CONTROLE_INTERNO"; @@ -207,13 +233,11 @@ class _RegisterCitizenScreenState extends State { Database db = await DbSqliteLoad().intialDB(); var queryCity = "SELECT * FROM ARGS"; List listCity = await db.rawQuery(queryCity); - // print(listCity); setState(() { cityController.text = '${listCity[0]['NAME_CITY_FRONT']} - ${listCity[0]['COD_STATE']}'.toUpperCase(); codIBGEController.text = listCity[0]['COD_IBGE'].toString(); }); String city = MainControllers().replaceDefaul(listCity[0]['NAME_CITY_FRONT']); - // print(city); resultListResid = await DBQuerys().buscaMunicipioporNome(city); } @@ -229,7 +253,6 @@ class _RegisterCitizenScreenState extends State { villageDB.add(widget.listData[0]['NO_BAIRRO_LOGR']); } } - // print(villageDB); setState(() {}); } @@ -240,16 +263,12 @@ class _RegisterCitizenScreenState extends State { for(int i=0; list.length > i;i++){ typeStreetDB.add('${list[i]['NO_LOGR_TIPO']}'); } - // print('oque'); - // print(typeStreetDB); setState(() {}); } loadStreetDB()async{ streetDB=[]; Database db = await DbSqliteLoad().intialDB(); - // var query = "SELECT * FROM EQUIPES JOIN PROFISSIONAIS_EQUIPE ON PROFISSIONAIS_EQUIPE.ID_EQUIPE = EQUIPES.ID_EQUIPE WHERE ID_UNIDADE = $idUnidade AND ID_PROFISSIONAL = $idUsuario"; - // {ID_LOGR_ENDERECO: 14, ID_LOGR_TIPO: 27, DESC_LOGR_ENDERECO: NICOLAU MAROTTI, ID_BAIRRO: 135}, var query = "SELECT * FROM LOGRADOUROS_ENDERECOS WHERE ID_BAIRRO = $idBairro AND ID_LOGR_TIPO = $idTipo ORDER BY DESC_LOGR_ENDERECO"; List list = await db.rawQuery(query); @@ -360,6 +379,7 @@ class _RegisterCitizenScreenState extends State { selectClassification==null || selectCountry==null || date == 'Data de Nascimento'|| + date == 'Data de Nascimento'|| cityBirthController.text.isEmpty || mobileDDDController.text.isEmpty || mobileController.text.isEmpty || @@ -390,8 +410,6 @@ class _RegisterCitizenScreenState extends State { } //sdsafdsf saveCitizen()async{ - print('NISController.text'); - print(NISController.text); Map row = { 'ID_CIDADAO' : idCidadao, 'CD_USUARIO_SUS' : codSus, @@ -406,6 +424,7 @@ class _RegisterCitizenScreenState extends State { 'NO_MUNICIPIO_NASC' : resultListNasc[0]['NO_MUNICIPIO'], 'ESTADO_UF_NASC' : resultListNasc[0]['UF_ESTADO'], 'ID_ETNIA' : selectBreedCod, + 'ID_ETNIA_INDIGENA' : selectEtniaIndigena!.cod.toString().trim(), 'ID_ESCOLARIDADE' : selectScoolingCod, 'ID_DEFICIENCIA' : selectDeficiencyCod, 'NOME_MAE' : nameMotherController.text, @@ -521,8 +540,6 @@ class _RegisterCitizenScreenState extends State { } getData()async{ - // print('passou'); - // print(widget.listData[0]['ID_USUARIO_CADASTRO']); idCidadao = widget.listData[0]['ID_CIDADAO']; codSus = widget.listData[0]['CD_USUARIO_SUS']; nameController.text = widget.listData[0]['NOME_CIDADAO']; @@ -538,6 +555,9 @@ class _RegisterCitizenScreenState extends State { } } spouseController.text = widget.listData[0]['NOME_CONJUGE']; + if(spouseController.text.isNotEmpty){ + enableSpouse = true; + } selectNaturalityCod = widget.listData[0]['NACIONALIDADE']; if(selectNaturalityCod==1){ selectNaturality = 'BRASILEIRO'; @@ -558,6 +578,18 @@ class _RegisterCitizenScreenState extends State { selectBreed = ConstVariable().listBreed[i].title; } } + if(widget.listData[0]['ID_ETNIA_INDIGENA']!=null &&widget.listData[0]['ID_ETNIA_INDIGENA']!=''){ + print('${widget.listData[0]['ID_ETNIA_INDIGENA']}'); + for(int i = 0; listEtniasIndigenas.length >i;i++){ + if(listEtniasIndigenas[i].cod == widget.listData[0]['ID_ETNIA_INDIGENA'].toString().trim()){ + + selectEtniaIndigena = DropDownDataStringModel(cod: listEtniasIndigenas[i].cod.toString().trim(), title: listEtniasIndigenas[i].title.toString().trim()); + print('load'); + print(selectEtniaIndigena!.cod); + print(selectEtniaIndigena!.title); + } + } + } for(int i = 0;ConstVariable().listScooling.length >i;i++){ if(ConstVariable().listScooling[i].cod == widget.listData[0]['ID_ESCOLARIDADE']){ selectScoolingCod = ConstVariable().listScooling[i].cod; @@ -599,8 +631,8 @@ class _RegisterCitizenScreenState extends State { for(int i = 0; ConstVariable().paises.length > i;i++){ if(ConstVariable().paises[i].ID_PAIS_RESID == widget.listData[0]['ID_PAIS_RESID']){ selectCountry = ConstVariable().paises[i]; - print(selectCountry!.ID_PAIS_RESID); - print(selectCountry!.PAIS); + // print(selectCountry!.ID_PAIS_RESID); + // print(selectCountry!.PAIS); } } } @@ -651,6 +683,7 @@ class _RegisterCitizenScreenState extends State { RGOrganController.text = widget.listData[0]['RG_ORGAO']==null?'':widget.listData[0]['RG_ORGAO']; RGDateController.text = widget.listData[0]['RG_DATA_EMISSAO']==null?'':widget.listData[0]['RG_DATA_EMISSAO']; RGDateDB = RGDateController.text; + if(widget.listData[0]['TIPO_CERTIDAO'] is int){ selectTypeCertificateCod = widget.listData[0]['TIPO_CERTIDAO']; }else{ @@ -660,9 +693,10 @@ class _RegisterCitizenScreenState extends State { for(int i = 0;ConstVariable().itensCertificate.length >i;i++){ if(ConstVariable().itensCertificate[i].cod == selectTypeCertificateCod){ selectTypeCertificate = ConstVariable().itensCertificate[i].title; + break; } - break; } + numberCertificateController.text = widget.listData[0]['NUM_CERTIDAO']??''; nameCertificateController.text = widget.listData[0]['CARTORIO_CERTIDAO']??''; bookCertificateController.text = widget.listData[0]['LIVRO_CERTIDAO']??''; @@ -689,17 +723,13 @@ class _RegisterCitizenScreenState extends State { super.initState(); searchCityBirthController.addListener(_searchCityBirth); searchCityController.addListener(_searchCity); + getEtniasIndigenas(); getCity(); getUnit(); loadVillgeDB(); loadTypeStreetDB(); loadSubdivisionsDB(); loadLists(); - if(widget.listData.length!=0){ - getData(); - edit = true; - showTab = true; - } } @override @@ -882,6 +912,7 @@ class _RegisterCitizenScreenState extends State { }); }, ), + InputWithSubtitle( controller: spouseController, subtitle: 'Cônjuge', @@ -1067,6 +1098,7 @@ class _RegisterCitizenScreenState extends State { for(int i = 0;ConstVariable().listBreed.length >i;i++){ if(ConstVariable().listBreed[i].title == selectBreed){ selectBreedCod = ConstVariable().listBreed[i].cod; + selectEtniaIndigena = null; print(selectBreedCod); } } @@ -1074,6 +1106,20 @@ class _RegisterCitizenScreenState extends State { }, ), selectBreed==null&& mandatory?ErrorDefault():Container(), + DropDownEtniaIndigena( + title: 'Etnia Indígena', + width: width*0.69, + list: listEtniasIndigenas, + select: selectEtniaIndigena, + onChanged:!edit&&selectBreedCod!=5?null: (value){ + setState(() { + selectEtniaIndigena = value!; + print(selectEtniaIndigena!.cod); + print(selectEtniaIndigena!.title); + }); + }, + ), + selectBreedCod==5 &&selectEtniaIndigena==null && mandatory?ErrorDefault():Container(), DropdownWithSubtitle( list: listScooling, subtitle: 'Escolaridade', @@ -1127,7 +1173,7 @@ class _RegisterCitizenScreenState extends State { enabled: !enableMother && !edit, onChanged: (v)=>setState((){}), ), - !enableMother&& mandatory?ErrorDefault():Container(), + !enableMother && nameMotherController.text.isEmpty && mandatory?ErrorDefault():Container(), SwitchWithSubtitle( width: width*0.65, title: 'Desconhece Mãe', @@ -1153,7 +1199,7 @@ class _RegisterCitizenScreenState extends State { enabled: !enableFather && !edit, onChanged: (v)=>setState((){}), ), - !enableFather&& mandatory?ErrorDefault():Container(), + !enableFather&& nameFatherController.text.isEmpty && mandatory?ErrorDefault():Container(), SwitchWithSubtitle( width: width*0.65, title: 'Desconhece Pai', diff --git a/lib/screens/registers_citizen/register_individual_screen.dart b/lib/screens/registers_citizen/register_individual_screen.dart index e9fdc1a..a0fbfb6 100644 --- a/lib/screens/registers_citizen/register_individual_screen.dart +++ b/lib/screens/registers_citizen/register_individual_screen.dart @@ -226,11 +226,13 @@ class _RegisterIndividualScreenState extends State { loadCadIndividual()async{ ID_CIDADAO = widget.listData[0]['ID_CIDADAO']; - print(widget.listData[0]['ID_CAD_INDIVIDUAL']); + // print(widget.listData[0]['ID_CAD_INDIVIDUAL']); + print('ID_CIDADAO'); print(ID_CIDADAO); await DBQuerys().buscaCadInvidual(ID_CIDADAO).then((dataCitizen)async{ - if(dataCitizen.length != 0) { + + if(dataCitizen.isNotEmpty) { ID_PROFISSIONAL = dataCitizen[0]['ID_RESP_CADASTRO']; TIPO_SALVAR = 'update'; showTab = true; @@ -422,12 +424,13 @@ class _RegisterIndividualScreenState extends State { OUTROS_HIGIENE = dataCitizen[0]['OUTROS_HIGIENE'] == 1 ? true : false; CBO_RESP_CADASTRO = dataCitizen[0]['CBO_RESP_CADASTRO'].toString(); date_cad = dataCitizen[0]['DT_CADASTRO']??''; - // print('data $date_cad'); List splitted = date_cad.toString().split('-'); DT_CADASTRO.text = splitted.length<2?'':'${splitted[2]}/${splitted[1]}/${splitted[0]}'; + CNES_RESP_CADASTRO.text = dataCitizen[0]['CNES_RESP_CADASTRO']??''; setState(() {}); + }else{ + showTab = true; } - CNES_RESP_CADASTRO.text = dataCitizen[0]['CNES_RESP_CADASTRO']=='null'?'':dataCitizen[0]['CNES_RESP_CADASTRO']; if(listINE.length == 0){ List list = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario); for(int i=0; list.length > i;i++){ diff --git a/lib/screens/select_service/service_home_screen.dart b/lib/screens/select_service/atendimento_domiciliar_tela.dart similarity index 91% rename from lib/screens/select_service/service_home_screen.dart rename to lib/screens/select_service/atendimento_domiciliar_tela.dart index 8a81660..acb205c 100644 --- a/lib/screens/select_service/service_home_screen.dart +++ b/lib/screens/select_service/atendimento_domiciliar_tela.dart @@ -7,6 +7,7 @@ import 'package:rkm/models/drop_down_data_model.dart'; import 'package:rkm/service/db/db_sqlite_Sigtap.dart'; import 'package:rkm/widgets/alert_dialog_default.dart'; import 'package:rkm/widgets/appbar_default.dart'; +import 'package:sqflite/sqflite.dart'; import '../../config/const_variable.dart'; import '../../models/drop_down_data_string_model.dart'; import '../../service/api/api_data_import_sigtap.dart'; @@ -24,16 +25,16 @@ import '../../widgets/text_default.dart'; import '../../widgets/title_containers.dart'; import '../home_screen.dart'; -class ServiceHomeScreen extends StatefulWidget { +class AtendimentoDomiciliarTela extends StatefulWidget { String name; String username; - ServiceHomeScreen({required this.name,required this.username}); + AtendimentoDomiciliarTela({required this.name,required this.username}); @override - State createState() => _ServiceHomeScreenState(); + State createState() => _AtendimentoDomiciliarTelaState(); } -class _ServiceHomeScreenState extends State { +class _AtendimentoDomiciliarTelaState extends State { var NOME_PROFISSIONAL = TextEditingController(); var CNES_UNIDADE = TextEditingController(); @@ -56,7 +57,7 @@ class _ServiceHomeScreenState extends State { int TIPO_ATENDIMENTO_COD=0; int MODALIDADE_COD=0; int TURNO_COD=0; - int CIAP_COD=0; + String CIAP_COD=''; int CONDUTA_COD=0; int ID_EQUIPE=0; String CID_COD=''; @@ -80,7 +81,7 @@ class _ServiceHomeScreenState extends State { List typeModelService = []; List typeTurnService = []; List listINEPROF = []; - List listCIAP = []; + List listCIAP = []; List listCID = []; List PROCEDIMENTOS_SIGTAP = []; List ATENDS_DOM_PROC = []; @@ -137,6 +138,8 @@ class _ServiceHomeScreenState extends State { // print('idUsuario get'); // print(idUsuario); loadData(); + getPro(); + // getProcedimentos(); } }); _prefService.readCacheUnidade().then((value){ @@ -146,16 +149,28 @@ class _ServiceHomeScreenState extends State { } }); await DBQuerys().buscaCIAP().then((list){ - listCIAP.add(DropDownDataModel(cod: int.parse(list['CODIGO_CIAP']), title: list['DESC_CIAP'])); + for(int i = 0 ; list.length > i ; i++){ + listCIAP.add(DropDownDataStringModel(cod: list[i]['CODIGO_CIAP'], title: list[i]['DESC_CIAP'])); + } }); await DBQuerys().buscaCID().then((list){ - listCID.add(DropDownDataStringModel(cod: list['CODIGO_CID'], title: list['DESCRICAO_CID'])); + for(int i = 0 ; list.length > i ; i++){ + listCID.add(DropDownDataStringModel(cod: list[i]['CODIGO_CID'], title: list[i]['DESCRICAO_CID'])); + } }); } loadData()async{ // print('idUsuario'); // print(idUsuario); + await DBQuerys().buscaAtendDomProc().then((value){ + + for(int i = 0 ; value.length > i ; i++){ + PROCEDIMENTOS_SIGTAP.add('${value[i]['COD_PROC_SIGTAP']} - ${value[i]['DESC_PROC_SIGTAP']}'); + } + }); + + await DBQuerys().buscaProfissionalCadInd(idUsuario).then((list){ ID_PROFISSIONAL = list['ID_PROFISSIONAL']; NOME_PROFISSIONAL.text = list['NOME_PROFISSIONAL']; @@ -163,64 +178,7 @@ class _ServiceHomeScreenState extends State { if(CNS_PROFISSIONAL == 999999999999999 || CNS_PROFISSIONAL == '999999999999999'){ CNS_VALIDO = true; } - setState(() {}); }); - await DBQuerys().buscaCBOProfissional(idUsuario).then((list)async{ - if(list.length!=0){ - for(int i = 0; list.length>i;i++){ - listCBO.add(list[i]['CODIGO_CBO'].toString()); - } - } - if(listCBO.isNotEmpty){ - 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)async{ - - //sigtap - for(int i = 0; listCBO.length>i;i++){ - print(listCBO[i]); - await DBQuerys().buscaCBOSProfissional(listCBO[i]).then((sigtap)async{ - print('indice $i'); - print(sigtap); - if(listCBO[i]==sigtap[0]['CODIGO_CBO']){ - PROCEDIMENTOS_SIGTAP.add(sigtap[0]['CODIGO_CBO']+' - ' + sigtap[0]['DESCRICAO_CBO']); - List aux = PROCEDIMENTOS_SIGTAP.toSet().toList(); - PROCEDIMENTOS_SIGTAP = aux; - } - }); - } - print(PROCEDIMENTOS_SIGTAP); - setState(() {}); - // await ApiDataImportSigtap().loadSIGTAP(urlAPI, mode, nameCityApi).then((value)async{ - // List procedimentos = value['procedimentos']; - // print(procedimentos.length); - // print(procedimentos); - // if(procedimentos.isNotEmpty){ - // await DbSqliteSigtap().saveProceduresSigtapDB(procedimentos).then((db)async{ - // List list = await db.query('PROCEDIMENTOS_SIGTAP'); - // for(int i = 0; list.length>i;i++){ - // if(list[i]['COD_PROC_SIGTAP']!=null && list[i]['DESC_PROC_SIGTAP']!=null){ - // PROCEDIMENTOS_SIGTAP.add(list[i]['COD_PROC_SIGTAP']+' - ' + list[i]['DESC_PROC_SIGTAP']); - // List aux = PROCEDIMENTOS_SIGTAP.toSet().toList(); - // PROCEDIMENTOS_SIGTAP = aux; - // } - // } - // setState(() { - // loadSIGTAP = false; - // }); - // }); - // } - // }); - }); - } - CBO_RESP_CADASTRO = list.length == 0?null:list[0]['CODIGO_CBO'].toString(); - setState(() {}); - }); - // print('IdUsuario: ${idUsuario}'); - // print('IdUnidade: '+idUnidade); List list = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario); for(int i=0; list.length > i;i++){ INE_RESP_CADASTRO = 'INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']}'; @@ -229,6 +187,58 @@ class _ServiceHomeScreenState extends State { setState(() {}); } + getPro()async{ + Database dbcbo = await DbSqliteLoad().intialDB(); + var query = 'SELECT * FROM PROFISSIONAIS_CBOS WHERE ID_PROFISSIONAL = $idUsuario'; + List listcbo = await dbcbo.rawQuery(query); + + if(listcbo.length!=0){ + for(int i = 0; listcbo.length>i;i++){ + await DBQuerys().buscaCBOSProfissional(listcbo[i]['CODIGO_CBO']).then((cbo)async{ + if(cbo.length!=0){ + listCBO.add(cbo[0]['DESCRICAO_CBO']+' - '+listcbo[i]['CODIGO_CBO'].toString()); + } + }); + } + } + } + + getProcedimentos()async{ + List CBOS = []; + await DBQuerys().buscaCBOProfissional(idUsuario).then((cbosProfissional){ + if(cbosProfissional.length!=0){ + for(int i = 0; cbosProfissional.length>i;i++){ + CBOS.add(cbosProfissional[i]['CODIGO_CBO'].toString()); + } + } + CBO_RESP_CADASTRO = cbosProfissional.length == 0?null:cbosProfissional[0]['CODIGO_CBO'].toString(); + + }).then((value)async{ + + print('CBOS.length'); + print(CBOS.length); + print(CBOS); + + for(int i = 0; CBOS.length>i;i++){ + await DBQuerys().buscaPROCEDIMENTOS_SIGTAP_CBO(CBOS[i]).then((dadosCBOS)async{ + print('dadosCBOS.length'); + print(dadosCBOS.length); + print(dadosCBOS[0]); + for(int i = 0; dadosCBOS.length>i;i++){ + await DBQuerys().buscaPROCEDIMENTOS_SIGTAP(dadosCBOS[i]['COD_PROC_SIGTAP']).then((dadosSIGTAP){ + PROCEDIMENTOS_SIGTAP.add('${dadosSIGTAP[i]['COD_PROC_SIGTAP']} - ${dadosSIGTAP[i]['DESC_PROC_SIGTAP']}'); + // print('dadosSIGTAP'); + // print(dadosSIGTAP[0]); + }); + } + }); + } + print('PROCEDIMENTOS_SIGTAP'); + print(PROCEDIMENTOS_SIGTAP.length); + print(PROCEDIMENTOS_SIGTAP); + }); + } + checkSave()async{ // adicionar depois e usar um usuário real // CBO_RESP_CADASTRO @@ -605,7 +615,7 @@ class _ServiceHomeScreenState extends State { padding: EdgeInsets.symmetric(vertical: 10), width: width*0.7, child: TextDefault( - text: CID!=null?'CID $CIAP':'CID', + text: CID!=null?'CID $CID':'CID', color:Colors.black, fontSize: 15, ) @@ -640,9 +650,13 @@ class _ServiceHomeScreenState extends State { physics: const NeverScrollableScrollPhysics(), itemCount: ConstVariable().serviceHomeCheckProclist.length, itemBuilder: (context,index){ + + List aux = ConstVariable().serviceHomeCheckProclist; + aux.sort(); + serviceProcModel.add( CheckModel( - subtitle: ConstVariable().serviceHomeCheckProclist[index], + subtitle: aux[index], check: false ) ); @@ -685,7 +699,7 @@ class _ServiceHomeScreenState extends State { IconButton( icon: Icon(Icons.add_circle,color: ColorPalette.blackButton), onPressed: (){ - AlertDialogDefault().otherProc(context, 'Outros Procedimentos', 'Adicionar Procedimento', CBO_PROFISSIONAL, CBO_PROFISSIONAL, 'add',PROCEDIMENTOS_SIGTAP,listProc); + AlertDialogDefault().otherProc(context, 'Outros Procedimentos', 'Adicionar Procedimento', CBO_PROFISSIONAL, CBO_PROFISSIONAL, 'add',listCBO,listProc); }, ) ], diff --git a/lib/screens/select_service/home_visit_screen.dart b/lib/screens/select_service/visita_domiciliar_tela.dart similarity index 84% rename from lib/screens/select_service/home_visit_screen.dart rename to lib/screens/select_service/visita_domiciliar_tela.dart index 045b898..09e5216 100644 --- a/lib/screens/select_service/home_visit_screen.dart +++ b/lib/screens/select_service/visita_domiciliar_tela.dart @@ -24,16 +24,16 @@ import '../../widgets/switch_with_subtitle.dart'; import '../../widgets/text_default.dart'; import '../../widgets/title_containers.dart'; -class HomeVisitScreen extends StatefulWidget { +class VisitaDomiciliarTela extends StatefulWidget { String name; String username; - HomeVisitScreen({required this.name, required this.username}); + VisitaDomiciliarTela({required this.name, required this.username}); @override - State createState() => _HomeVisitScreenState(); + State createState() => _VisitaDomiciliarTelaState(); } -class _HomeVisitScreenState extends State { +class _VisitaDomiciliarTelaState extends State { var PESO = TextEditingController(); var ALTURA = TextEditingController(); @@ -126,8 +126,39 @@ class _HomeVisitScreenState extends State { } }); Database dbcbo = await DbSqliteLoad().intialDB(); - var query = 'SELECT * FROM PROFISSIONAIS_CBOS WHERE ID_PROFISSIONAL = $idUsuario'; - List listcbo = await dbcbo.rawQuery(query); + var querycbo = 'SELECT * FROM PROFISSIONAIS_CBOS WHERE ID_PROFISSIONAL = $idUsuario'; + List listcbo = await dbcbo.rawQuery(querycbo); + List todosSigtap = []; + // print('listcbo'); + // print(listcbo.length); + // print(listcbo); + + for(int i = 0; listcbo.length > i ; i++){ + var querySigtap = 'SELECT * FROM PROCEDIMENTOS_SIGTAP_CBO WHERE CODIGO_CBO = ${listcbo[i]['CODIGO_CBO']}'; + List listSigtap = await dbcbo.rawQuery(querySigtap); + + todosSigtap.addAll(listSigtap); + // print('listSigtap'); + // print(listSigtap.length); + // print('todosSigtap'); + // print(todosSigtap.length); + } + + List aux = todosSigtap.toSet().toList(); + todosSigtap = aux; + + for(int i = 0; todosSigtap.length > i ; i++){ + var querySigtapDesc = 'SELECT * FROM PROCEDIMENTOS_SIGTAP WHERE COD_PROC_SIGTAP = \'${todosSigtap[i]['COD_PROC_SIGTAP']}\''; + List listSigtapDesc = await dbcbo.rawQuery(querySigtapDesc); + if(listSigtapDesc.isNotEmpty){ + PROCEDIMENTOS_SIGTAP.add('${listSigtapDesc[0]['COD_PROC_SIGTAP']} - ${listSigtapDesc[0]['DESC_PROC_SIGTAP']}'); + } + } + + print('PROCEDIMENTOS_SIGTAP'); + print(PROCEDIMENTOS_SIGTAP.length); + print(PROCEDIMENTOS_SIGTAP[0]); + if(listcbo.length!=0){ for(int i = 0; listcbo.length>i;i++){ @@ -139,23 +170,23 @@ class _HomeVisitScreenState extends State { } } - var querycbo = 'SELECT * FROM CBOS WHERE CODIGO_CBO = 223208'; - // var query = 'SELECT * FROM PROFISSIONAIS_CBOS'; + /*var querycbo = 'SELECT * FROM CBOS WHERE CODIGO_CBO = 223208'; + var query = 'SELECT * FROM PROFISSIONAIS_CBOS'; List listcbocompleta = await dbcbo.rawQuery(querycbo); - print(listcbocompleta); + print(listcbocompleta);*/ List list = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario); for(int i=0; list.length > i;i++){ INE_RESP_CADASTRO = 'INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']}'; listINEPROF.add('INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']}'); } - var db = await DbSqliteLoad().intialDB(); - 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){ - PROCEDIMENTOS_SIGTAP.add('${listSIGTAP[i]['COD_PROC_SIGTAP']} - ${listSIGTAP[i]['DESC_PROC_SIGTAP']}'); - } - } + // var db = await DbSqliteLoad().intialDB(); + // 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){ + // 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']; @@ -176,8 +207,8 @@ class _HomeVisitScreenState extends State { } loadData()async{ - print('idUsuario'); - print(idUsuario); + // print('idUsuario'); + // print(idUsuario); await DBQuerys().buscaProfissionalCadInd(idUsuario).then((list){ ID_PROFISSIONAL = list['ID_PROFISSIONAL']; NOME_PROFISSIONAL.text = list['NOME_PROFISSIONAL']; @@ -190,44 +221,56 @@ class _HomeVisitScreenState extends State { } checkSave()async{ - // adicionar depois e usar um usuário real - // CBO_RESP_CADASTRO - //ok - if(date.isEmpty || dateDB.isEmpty || TIPO_IMOVEL_COD==0 || DESFECHO_COD ==0 || TURNO_COD == 0 || CBO_PROFISSIONAL == null + /* adicionar depois e usar um usuário real + CBO_RESP_CADASTRO + ok*/ + //salvar + if(date.isEmpty || dateDB.isEmpty || TIPO_IMOVEL_COD==0 || DESFECHO_COD ==0 || TURNO_COD == 0 || CBO_PROFISSIONAL == null || CBO_PROFISSIONAL == null || listProc.isEmpty ){ - print('erro'); + print('erro principal'); setState(() { showCheckError = true; mandatory = true; }); }else{ - print('passou'); setState(() { mandatory = false; showCheckError = false; - //TIPO VISITA + /*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){ + /*BUSCA ATIVA*/ + print('tipoVisitaModel[1].check'); + print(tipoVisitaModel[1].check); + if(CONSULTA || VACINA || EXAME || CONDICIONALIDADES || tipoVisitaModel[1].check){ + /*CONTROLE AMBIENTAL*/ + if(ACAO_EDUCATIVA || ACAO_MECANICA || IMOVEL_FOCO || TRATAMENTO_FOCAL || tipoVisitaModel[1].check){ 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; + if(!tipoVisitaModel[1].check){ + for(int i=0; tipoAcompanhamentoModel.length>i;i++){ + if(tipoAcompanhamentoModel[i].check){ + print('pegou a $i'); + check1 = true; + break; + } } + }else{ + check1 = true; } - for(int i=0; outrosModel.length>i;i++){ - if(outrosModel[i].check){ - print('outros $i'); - check2 = true; - break; + if(!tipoVisitaModel[1].check){ + for(int i=0; outrosModel.length>i;i++){ + if(outrosModel[i].check){ + print('outros $i'); + check2 = true; + break; + } } + }else{ + check2 = true; } + if(!check1 || !check2){ + print('erro 1'); AlertDialogDefault().alert( context, 'Aviso', @@ -242,6 +285,8 @@ class _HomeVisitScreenState extends State { }else{ print('AQUI'); + + print('erro 2'); AlertDialogDefault().alert( context, 'Aviso', @@ -251,6 +296,8 @@ class _HomeVisitScreenState extends State { } }else{ print('nesse'); + + print('erro 3'); AlertDialogDefault().alert( context, 'Aviso', @@ -290,62 +337,62 @@ class _HomeVisitScreenState extends State { 'SINCRONIZADO' : 'N', }; await DbSqliteSync().insertVisitaDomiciliar(row).then((value)async{ - print('value'); - print(value); - //tipo visita == 1 + // print('value'); + // print(value); + /*tipo visita == 1*/ for(int i = 0;tipoVisitaModel.length>i;i++){ if(tipoVisitaModel[i].check){ - //cadastramento = 1 + /*cadastramento = 1*/ if(i==0){ await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,1,1); }else if(i == 1){ - //periodica = 29 + /*periodica = 29*/ await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,1,29); } } } - //busca ativa == 2 - //CONSULTA 2 + /*busca ativa == 2 + CONSULTA 2*/ if(CONSULTA){ await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,2,2); } - //busca ativa == 2 - //EXAME 3 + /*busca ativa == 2 + EXAME 3*/ if(EXAME){ await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,2,3); } - //busca ativa == 2 - //VACINA 8 + /*busca ativa == 2 + VACINA 8*/ if(VACINA){ await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,2,8); } - //busca ativa == 2 - //CONDICIONALIDADES 30 + /*busca ativa == 2 + CONDICIONALIDADES 30*/ if(CONDICIONALIDADES){ await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,2,30); } - //controle ambiental == 5 - // ACAO_EDUCATIVA == 34 + /*controle ambiental == 5 + ACAO_EDUCATIVA == 34*/ if(ACAO_EDUCATIVA){ await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,5,34); } - //controle ambiental == 5 - // IMOVEL_FOCO == 35 + /*controle ambiental == 5 + IMOVEL_FOCO == 35*/ if(IMOVEL_FOCO){ await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,5,35); } - //controle ambiental == 5 - // ACAO_MECANICA == 36 + /*controle ambiental == 5 + ACAO_MECANICA == 36*/ if(ACAO_MECANICA){ await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,5,36); } - //controle ambiental == 5 - // TRATAMENTO_FOCAL == 37 + /*controle ambiental == 5 + TRATAMENTO_FOCAL == 37*/ if(TRATAMENTO_FOCAL){ await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,5,37); } - //ACOMPANHAMENTO == 3 + /*ACOMPANHAMENTO == 3*/ for(int i=0; tipoAcompanhamentoModel.length>i;i++){ if(tipoAcompanhamentoModel[i].check){ print('pegou a $i'); @@ -354,12 +401,12 @@ class _HomeVisitScreenState extends State { print('CODIGO ${i+5}'); await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,3,i+5); }else if(i==14){ - //respiratorios == 32 + /*respiratorios == 32*/ print('CODIGO ${i}'); await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,3,32); }else if(i==15){ print('CODIGO ${i}'); - //tabagista == 33 + /*tabagista == 33*/ await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,3,33); }else if(i>=16){ print('CODIGO ${i+3}'); @@ -367,12 +414,12 @@ class _HomeVisitScreenState extends State { } } } - //outros == 4 + /*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 + /*orientacao prevencao == 31*/ if(i==3){ await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,4,31); }else if(i==4){ @@ -388,13 +435,16 @@ class _HomeVisitScreenState extends State { List splitted = listProc[i].toString().split(' '); await DbSqliteSync().insertVISITAS_DOMICILIARES_PROC(value,splitted[0]); } - AlertDialogDefault().alert( + AlertDialogDefault().sucess( context, 'Aviso', 'Visita Domiciliar realizada com sucesso!', - 'OK' + 'OK', + (){ + Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context)=>HomeScreen(username: widget.username)), (route) => false); + } ); - Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context)=>HomeScreen(username: widget.username)), (route) => false); + // Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context)=>HomeScreen(username: widget.username)), (route) => false); }); } @@ -546,7 +596,11 @@ class _HomeVisitScreenState extends State { ) ); return CheckBoxSubtitle( - ontap:DESFECHO != 'VISITA REALIZADA'?null: ()=>setState(()=>tipoVisitaModel[index].check?tipoVisitaModel[index].check=false:tipoVisitaModel[index].check=true), + ontap:DESFECHO != 'VISITA REALIZADA'?null: (){ + setState((){ + tipoVisitaModel[index].check?tipoVisitaModel[index].check=false:tipoVisitaModel[index].check=true; + }); + }, subtitle: tipoVisitaModel[index].subtitle, checkbox:tipoVisitaModel[index].check, width: width*0.6, @@ -604,7 +658,7 @@ class _HomeVisitScreenState extends State { TitleContainers(title: 'Acompanhamento',width: width*0.7,textAling: TextAlign.start,fontSize: 15), Container( width: width*0.7, - height: heigth*0.85, + height: heigth*0.9, child: ListView.builder( physics: const NeverScrollableScrollPhysics(), itemCount: ConstVariable().tipoAcompanhamentoModel.length, @@ -829,21 +883,42 @@ class _HomeVisitScreenState extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ GestureDetector( - onTap: ()=>AlertDialogDefault().otherProc(context, 'Outros Procedimentos', 'Adicionar Procedimento', CBO_PROFISSIONAL, CBO_PROFISSIONAL, 'add',PROCEDIMENTOS_SIGTAP,listProc), + onTap: ()=>setState(() { + AlertDialogDefault().otherProc(context, 'Outros Procedimentos', 'Adicionar Procedimento', CBO_PROFISSIONAL, CBO_PROFISSIONAL, 'add',PROCEDIMENTOS_SIGTAP,listProc); + }), child: Container( padding: const EdgeInsets.symmetric(horizontal: 10.0), child: Container( height: 200, width: width*0.7, - child: Row( + child: Column( + mainAxisAlignment:MainAxisAlignment.center , children: [ - TextDefault(text: 'Procedimento',color: Colors.black,), - Spacer(), - IconButton( - icon: Icon(Icons.add_circle,color: ColorPalette.blackButton), - onPressed: (){ + Row( + children: [ + TextDefault(text: 'Procedimento',color: Colors.black,), + Spacer(), + IconButton( + icon: Icon(Icons.add_circle,color: ColorPalette.blackButton), + onPressed: ()=>setState(() { + AlertDialogDefault().otherProc(context, 'Outros Procedimentos', 'Adicionar Procedimento', CBO_PROFISSIONAL, CBO_PROFISSIONAL, 'add',PROCEDIMENTOS_SIGTAP,listProc); + }), + ) + ], + ), + GestureDetector( + onTap: ()=>setState(() { AlertDialogDefault().otherProc(context, 'Outros Procedimentos', 'Adicionar Procedimento', CBO_PROFISSIONAL, CBO_PROFISSIONAL, 'add',PROCEDIMENTOS_SIGTAP,listProc); - }, + }), + child: Container( + height: listProc.isEmpty?0:150, + child: ListView.builder( + itemCount: listProc.length, + itemBuilder: (context,i){ + return Text(listProc[i]); + }, + ), + ), ) ], ), diff --git a/lib/service/api/api_data_load.dart b/lib/service/api/api_data_load.dart index b4928d2..83ee019 100644 --- a/lib/service/api/api_data_load.dart +++ b/lib/service/api/api_data_load.dart @@ -25,6 +25,16 @@ class ApiDataLoad{ final map = json.decode(response.body); return map; } + Future loadEtniasIndigenas(urlAPI,mode,nameCityApi,user)async{ + //https://app0.rkmsistemas.com.br/api/atb/homologacao/cabreuva/admin/load/unidades + // http://192.168.0.42:8061/api/atb/desenvolvimento/portoferreira/admin/load/etnias_indigenas + final url = '${urlAPI}${mode}/${nameCityApi}/${user}/load/etnias_indigenas'; + // print(url); + final response = await http.get(Uri.parse(url)); + final map = json.decode(response.body); + // print(map); + return map; + } Future loadUnidades(urlAPI,mode,nameCityApi,user)async{ //https://app0.rkmsistemas.com.br/api/atb/homologacao/cabreuva/admin/load/unidades // http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/unidades diff --git a/lib/service/api/api_data_sync.dart b/lib/service/api/api_data_sync.dart index 21c692a..034c9d1 100644 --- a/lib/service/api/api_data_sync.dart +++ b/lib/service/api/api_data_sync.dart @@ -56,6 +56,7 @@ class ApiDataSync{ } Future syncCidadaos(urlAPI,mode,nameCityApi,user,idUnidade,area,microarea,foraArea)async{ // http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/3/cidadaos/1/1/true + // http://192.168.0.42:8061/api/atb/desenvolvimento/portoferreira/admin/sync/47/cidadaos/1/1/true final url = '${urlAPI}${mode}/${nameCityApi}/${user}/sync/${idUnidade}/cidadaos/$area/$microarea/$foraArea'; print(url); final response = await http.get(Uri.parse(url)); diff --git a/lib/service/db/db_querys.dart b/lib/service/db/db_querys.dart index f21660c..7a0962d 100644 --- a/lib/service/db/db_querys.dart +++ b/lib/service/db/db_querys.dart @@ -1,3 +1,4 @@ +import 'package:flutter/cupertino.dart'; import 'package:rkm/service/db/db_sqlite_load.dart'; import 'package:sqflite/sqflite.dart'; @@ -24,21 +25,20 @@ class DBQuerys{ var query = "SELECT * FROM CIAPS"; List list = await db.rawQuery(query); // print(list); - return list[0]; + return list; } Future buscaCID()async{ Database db = await DbSqliteLoad().intialDB(); var query = "SELECT * FROM CIDS"; List list = await db.rawQuery(query); // print(list); - return list[0]; + return list; } Future buscaAtendDomProc()async{ Database db = await DbSqliteLoad().intialDB(); - var query = "SELECT * FROM ATENDS_DOM_SIGTAP"; + var query = "SELECT * FROM PROCEDIMENTOS_SIGTAP"; List list = await db.rawQuery(query); - // print(list); - return list[0]; + return list; } buscaDadosProfissional(String idUnidade, int idUsuario)async{ Database db = await DbSqliteLoad().intialDB(); @@ -113,6 +113,22 @@ class DBQuerys{ // print(list); return list; } + Future buscaPROCEDIMENTOS_SIGTAP_CBO(String CBO)async{ + Database db = await DbSqliteLoad().intialDB(); + var query = "SELECT * FROM PROCEDIMENTOS_SIGTAP_CBO WHERE CODIGO_CBO = $CBO"; + List list = await db.rawQuery(query); + // print(list); + return list; + } + + Future buscaPROCEDIMENTOS_SIGTAP(String SIGTAP)async{ + Database db = await DbSqliteLoad().intialDB(); + var query = "SELECT * FROM PROCEDIMENTOS_SIGTAP WHERE COD_PROC_SIGTAP = '$SIGTAP'"; + List list = await db.rawQuery(query); + // print(list); + return list; + } + buscaCBOS()async{ Database db = await DbSqliteLoad().intialDB(); var query = "SELECT * FROM CBOS ORDER BY DESCRICAO_CBO"; @@ -154,6 +170,13 @@ class DBQuerys{ // print(list); return list; } + buscaEtniaIndigina(String COD_ETNIA)async{ + Database db = await DbSqliteLoad().intialDB(); + var query = 'SELECT * FROM ETNIAS_INDIGENAS WHERE ID_ETNIA_INDIGENA = "$COD_ETNIA"'; + List list = await db.rawQuery(query); + // print(list); + return list; + } buscaLoteamentoPorDesc(String DESC_LOGR_LOTEAMENTO)async{ Database db = await DbSqliteLoad().intialDB(); var query = 'SELECT * FROM LOGRADOUROS_LOTEAMENTOS WHERE DESC_LOGR_LOTEAMENTO = "$DESC_LOGR_LOTEAMENTO"'; diff --git a/lib/service/db/db_sqlite_load.dart b/lib/service/db/db_sqlite_load.dart index cb2ad4c..19fc874 100644 --- a/lib/service/db/db_sqlite_load.dart +++ b/lib/service/db/db_sqlite_load.dart @@ -33,7 +33,7 @@ class DbSqliteLoad{ 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 INTEGER, 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, FIBROMIALGIA INTEGER, TRANSTORNO_ESPECTRO_AUTISTA 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, RENDA_TOTAL_FAMILIAR REAL , POSSUI_VEICULO TEXT , MODELO_VEICULO TEXT , ANO_VEICULO INTEGER , POSSUI_FINANCIAMENTO TEXT , VALOR_PARCELA_FINANCIAMENTO REAL , POSSUI_EMPRESTIMO TEXT , VALOR_PARCELA_EMPRESTIMO REAL);'); + 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_ETNIA_INDIGENA TEXT, 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, RENDA_TOTAL_FAMILIAR REAL , POSSUI_VEICULO TEXT , MODELO_VEICULO TEXT , ANO_VEICULO INTEGER , POSSUI_FINANCIAMENTO TEXT , VALOR_PARCELA_FINANCIAMENTO REAL , POSSUI_EMPRESTIMO TEXT , VALOR_PARCELA_EMPRESTIMO REAL);'); 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, AREA INTEGER, MICROAREA INTEGER);'); @@ -58,6 +58,7 @@ class DbSqliteLoad{ 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, ID_UNIDADE 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 ETNIAS_INDIGENAS (ID_ETNIA_INDIGENA TEXT, DESC_ETNIA_INDIGENA TEXT);'); 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);'); @@ -103,6 +104,7 @@ class DbSqliteLoad{ 'DELETE FROM PROFISSIONAIS;', 'DELETE FROM PROFISSIONAIS_CBOS;', 'DELETE FROM PROFISSIONAIS_EQUIPE;', + 'DELETE FROM ETNIAS_INDIGENAS;', 'DELETE FROM UNIDADES;', 'DELETE FROM VISITAS_DOMICILIARES;', 'DELETE FROM VISITAS_DOMICILIARES_COMPL;', @@ -143,6 +145,20 @@ class DbSqliteLoad{ return db; } + Future saveEtniasIndigenasDB(List rows)async{ + Database db = await intialDB(); + Batch batch = db.batch(); + rows.forEach((row) { + batch.insert('ETNIAS_INDIGENAS', row); + }); + List result = await batch.commit(); + print('Linhas inseridas: ${result.length}'); + + List> ETNIAS_INDIGENAS = await db.query('ETNIAS_INDIGENAS'); + print('Total de Etnias Indigenas no banco de dados: ${ETNIAS_INDIGENAS.length}'); + return db; + } + Future saveUnidadesDB(List rows)async{ Database db = await intialDB(); Batch batch = db.batch(); diff --git a/lib/service/db/db_sqlite_sync.dart b/lib/service/db/db_sqlite_sync.dart index c185d78..577b140 100644 --- a/lib/service/db/db_sqlite_sync.dart +++ b/lib/service/db/db_sqlite_sync.dart @@ -193,6 +193,7 @@ class DbSqliteSync{ 'NO_MUNICIPIO_NASC' : value[i]['noMunicipioNasc'], 'ESTADO_UF_NASC' : value[i]['cdEstado'], 'ID_ETNIA' : value[i]['cdEtnia'], + 'ID_ETNIA_INDIGENA' : value[i]['cdEtniaIndigena'], 'ID_ESCOLARIDADE' : value[i]['cdUsuarioEscolaridade'], 'ID_DEFICIENCIA' : value[i]['nrDeficiencia'], 'NOME_MAE' : value[i]['noMae'], diff --git a/lib/widgets/alert_dialog_default.dart b/lib/widgets/alert_dialog_default.dart index b48d5ff..f77853b 100644 --- a/lib/widgets/alert_dialog_default.dart +++ b/lib/widgets/alert_dialog_default.dart @@ -6,14 +6,14 @@ import 'package:rkm/screens/select_service/consumption_markers_screen.dart'; import 'package:rkm/screens/select_service/eligibility_assessment_screen.dart'; import 'package:rkm/screens/select_service/procedures_screen.dart'; import 'package:rkm/screens/select_service/service_dental_screen.dart'; -import 'package:rkm/screens/select_service/service_home_screen.dart'; +import 'package:rkm/screens/select_service/atendimento_domiciliar_tela.dart'; import 'package:rkm/screens/select_service/service_individual_screen.dart'; import 'package:rkm/widgets/button_default.dart'; import 'package:rkm/widgets/dropdown_button_com_pesquisa.dart'; import 'package:rkm/widgets/switch_with_subtitle.dart'; import 'package:rkm/widgets/text_default.dart'; import 'package:rkm/widgets/title_containers.dart'; -import '../screens/select_service/home_visit_screen.dart'; +import '../screens/select_service/visita_domiciliar_tela.dart'; import 'dropdown_button_default.dart'; import 'input_search_text.dart'; class AlertDialogDefault { @@ -85,6 +85,41 @@ class AlertDialogDefault { ); } + sucess(BuildContext context,String title,String subtitle,String textButtom, var onPressed) { + + double width = MediaQuery.of(context).size.width; + double height = MediaQuery.of(context).size.height; + + return showDialog( + context: context, + builder: (context){ + return AlertDialog( + title: TextDefault( + text: title, + color: ColorPalette.black54, + textAlign: TextAlign.center, + fontWeigth: FontWeight.bold, + ), + content: TextDefault( + text: subtitle, + color: ColorPalette.black54, + maxLines: 4, + ), + actions: [ + ButtonDefault( + onPressed: onPressed, + title: textButtom, + width: width*0.85, + textColor: ColorPalette.white, + borderColor: ColorPalette.appBar, + background: ColorPalette.appBar, + ) + ], + ); + } + ); + } + alertSelect(BuildContext context,String name,String username, var dataPatient) { //Cadastro e edição do Cadastro do Cidadão, Cadastro Individual, Cadastro Domiciliar e Visita Domiciliar List list = [ @@ -95,7 +130,7 @@ class AlertDialogDefault { // 'Ficha Complementar', // 'Marcadores de Consumo', // 'Procedimentos', - 'Visita domiciliar', + 'Visita Domiciliar', ]; double width = MediaQuery.of(context).size.width; @@ -126,12 +161,12 @@ class AlertDialogDefault { if(index==0){ Navigator.push( context, - MaterialPageRoute(builder:(context) => ServiceHomeScreen(name: name,username: username,)), + MaterialPageRoute(builder:(context) => AtendimentoDomiciliarTela(name: name,username: username,)), ); }else if(index == 1){ Navigator.push( context, - MaterialPageRoute(builder:(context) => HomeVisitScreen(name: name,username: username,)), + MaterialPageRoute(builder:(context) => VisitaDomiciliarTela(name: name,username: username,)), ); // Navigator.push( // context, @@ -165,7 +200,7 @@ class AlertDialogDefault { }else if (index==7){ Navigator.push( context, - MaterialPageRoute(builder:(context) => HomeVisitScreen(name: name,username: username,)), + MaterialPageRoute(builder:(context) => VisitaDomiciliarTela(name: name,username: username,)), ); } }, @@ -458,7 +493,7 @@ class AlertDialogDefault { String? selectProfessionals, String? selectCBO, String add, - List list, + List listProcProfissional, List listProc, ) { @@ -498,22 +533,22 @@ class AlertDialogDefault { }), select: selectProfessionals, title: '', - list: list, + list: listProcProfissional, width: width*0.8, widthContainer: width*0.75, ), - ButtonDefault( - onPressed:(){ - listProc.add(selectProfessionals); - setState((){}); - }, - title: 'Adicionar', - width: width*0.8, - textColor: ColorPalette.white, - borderColor:ColorPalette.appBar, - background: ColorPalette.appBar, - disableColor: ColorPalette.buttonDisable, - ) + // ButtonDefault( + // onPressed:(){ + // listProc.add(selectProfessionals); + // setState((){}); + // }, + // title: 'Adicionar', + // width: width*0.8, + // textColor: ColorPalette.white, + // borderColor:ColorPalette.appBar, + // background: ColorPalette.appBar, + // disableColor: ColorPalette.buttonDisable, + // ) ], ), ), @@ -522,7 +557,7 @@ class AlertDialogDefault { mainAxisSize: MainAxisSize.min, children: [ TitleContainers(title: 'Procedimentos'), - list.length!=0 + listProcProfissional.length!=0 ?Container( width: width*0.8, height: listProc.length*70, @@ -548,6 +583,7 @@ class AlertDialogDefault { onPressed: () => setState(() { listProc.removeAt(index); + setState((){}); }), ) ], diff --git a/lib/widgets/dropdown_etnia_indigena.dart b/lib/widgets/dropdown_etnia_indigena.dart new file mode 100644 index 0000000..a2635c9 --- /dev/null +++ b/lib/widgets/dropdown_etnia_indigena.dart @@ -0,0 +1,87 @@ +import 'package:flutter/material.dart'; +import 'package:rkm/widgets/text_default.dart'; +import '../config/color_palette.dart'; +import '../config/const_variable.dart'; +import '../models/drop_down_data_string_model.dart'; + +class DropDownEtniaIndigena extends StatelessWidget { + var onChanged; + DropDownDataStringModel? select; + String title; + double fontSize; + List list; + double width; + double widthContainer; + + DropDownEtniaIndigena({ + required this.onChanged, + required this.select, + required this.title, + required this.list, + required this.width, + this.fontSize = 15, + this.widthContainer = 300 +}); + + @override + Widget build(BuildContext context) { + + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + width: width, + margin: EdgeInsets.symmetric(horizontal: 5), + padding: EdgeInsets.symmetric(horizontal: 2), + child: TextDefault( + textAlign: TextAlign.start, + text: title, + color: ColorPalette.black54, + fontSize: 12, + ), + ), + Container( + width: width*0.95, + alignment: Alignment.centerLeft, + margin: EdgeInsets.symmetric(horizontal: 10), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(5), + border: Border.all(color: Colors.white) + ), + padding: EdgeInsets.symmetric(horizontal: 5), + child: DropdownButtonHideUnderline( + child: DropdownButton( + dropdownColor: Colors.white, + hint: Padding( + padding: const EdgeInsets.symmetric(horizontal: 0.0), + child: TextDefault(text: '-SELECIONE-',fontSize: ConstVariable().fontSizeInput,textAlign: TextAlign.end,color: Colors.black,), + ), + value: select, + items: list.map((value) => DropdownMenuItem( + value: value, + child: Container( + alignment: Alignment.centerLeft, + color: Colors.white, + height: 50, + width: width*0.88, + child: Padding( + padding: EdgeInsets.symmetric(horizontal: 0.0), + child: TextDefault( + text: value.title, + maxLines: 2, + fontSize: fontSize, + color: Colors.black, + ), + ), + ), + ) + ).toList(), + onChanged:onChanged + ), + ), + ), + ], + ); + } +} diff --git a/lib/widgets/dropdown_with_subtitle.dart b/lib/widgets/dropdown_with_subtitle.dart index 1a0c1fc..48b0f3c 100644 --- a/lib/widgets/dropdown_with_subtitle.dart +++ b/lib/widgets/dropdown_with_subtitle.dart @@ -46,7 +46,6 @@ class DropdownWithSubtitle extends StatelessWidget { fontSize: 12, ), ), - Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(5), diff --git a/pubspec.yaml b/pubspec.yaml index 5963220..6fc739e 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -2,9 +2,10 @@ name: rkm description: RKM AB 2.0. #Cadastro e edição do Cadastro do Cidadão, Cadastro Individual, Cadastro Domiciliar e Visita Domiciliar #versão 1.0.6+5 finalizada dia 19/02/2024 +#versão 1.0.6+5 finalizada dia 18/03/2024 publish_to: 'none' -version: 1.0.6+5 +version: 1.0.7+6 environment: sdk: '>=3.2.3 <4.0.0'