ajustes do post e campos para o envio para a api

This commit is contained in:
Reginaldo
2024-08-22 16:13:00 -03:00
parent da45452c89
commit 5b2919d292
24 changed files with 281 additions and 279 deletions

View File

@@ -44,7 +44,7 @@ android {
applicationId = "com.ab.rkm.rkm"
// You can update the following values to match your application needs.
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
minSdk = flutter.minSdkVersion
minSdk = 24
targetSdk = flutter.targetSdkVersion
versionCode = flutterVersionCode.toInteger()
versionName = flutterVersionName
@@ -61,6 +61,16 @@ android {
buildTypes {
release {
minifyEnabled true
shrinkResources false
lintOptions {
disable 'InvalidPackage'
disable "Instantiatable"
checkReleaseBuilds false
abortOnError false
}
signingConfig signingConfigs.debug
signingConfig signingConfigs.release
}
}
@@ -69,3 +79,6 @@ android {
flutter {
source = "../.."
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}

View File

@@ -1,16 +1,41 @@
allprojects {
buildscript {
ext.kotlin_version = '1.6.10'
repositories {
google()
maven {
url 'https://maven.google.com/'
name 'Google'
}
maven {
url 'https://mvnrepository.com/artifact/com.android.tools.lint/lint-gradle-api'
}
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.1.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
rootProject.buildDir = "../build"
allprojects {
repositories {
maven {
url 'https://maven.google.com/'
name 'Google'
}
jcenter()
maven {
url 'https://mvnrepository.com/artifact/com.android.tools.lint/lint-gradle-api'
}
}
}
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(":app")
project.evaluationDependsOn(':app')
}
tasks.register("clean", Delete) {

View File

@@ -1,3 +1,4 @@
org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError
#org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError
org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true

View File

@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip

View File

@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:rkm/models/city_load_model.dart';
import 'package:rkm/models/drop_down_data_model.dart';
import '../models/check_proced_sia_model.dart';
import '../models/pais_modelo.dart';
import 'color_palette.dart';
@@ -130,29 +131,52 @@ class ConstVariable{
'USO DE TRAQUEOSTOMIA',
];
List serviceHomeCheckProclist = [
'ACOMP.DE PACIENTE EM REABILITAÇÃO EM COMUNICAÇÃO ALTERNATIVA',
'ENEMA',
'ANTIBIOTICOTERAPIA PARENTERAL',
'OXIGENOTERAPIA',
'ATEND./ ACOMP. PACIENTE EM REABILITAÇÃO DO DESENVOLVIMENTO NEUROPSICOMOTOR',
'RETIRADA DE PONTOS DE CIRURGIAS BÁSICAS',
'ATEND. FISIOTERAPÊUTICO PACIENTE C/ TRANST. RESP S/ COMPLICAÇÕES SISTÊMICAS',
'SONDAGEM GÁSTRICA',
'ATEND. MÉDICO COM FINALIDADE DE ATESTAR ÓBITO',
'TERAPIA DE REIDRATAÇÃO ORAL',
'ATEND./ACOMP.EM REABILITAÇÃO NAS MÚLTIPLAS DEFICIÊNCIAS',
'TERAPIA DE REIDRATAÇÃO PARENTERAL',
'ADAPTAÇÃO AO USO DE ÓRTESE / PRÓTESE',
'REABILITAÇÃO DOMICILIAR',
'CATETERISMO VESICAL DE ALÍVIO',
'TERAPIA FONOAUDIOLÓGICA INDIVIDUAL',
'CATETERISMO VESICAL DE DEMORA',
'TRATAMENTO DE TRAUMATISMOS DE LOCALIZAÇÃO ESPECIFICADA/NÃO ESPECIFICADA',
'COLETA DE MATERIAL PARA EXAME LABORATORIAL',
'TRATAMENTO EM REABILITAÇÃO',
'CUIDADOS COM ESTOMAS',
'CUIDADOS COM TRAQUEOSTOMIA'
// List serviceHomeCheckProclist = [
// 'ACOMP.DE PACIENTE EM REABILITAÇÃO EM COMUNICAÇÃO ALTERNATIVA',
// 'ADAPTAÇÃO AO USO DE ÓRTESE / PRÓTESE',
// 'ANTIBIOTICOTERAPIA PARENTERAL',
// 'ATEND. FISIOTERAPÊUTICO PACIENTE C/ TRANST. RESP S/ COMPLICAÇÕES SISTÊMICAS',
// 'ATEND. MÉDICO COM FINALIDADE DE ATESTAR ÓBITO',
// 'ATEND./ ACOMP. PACIENTE EM REABILITAÇÃO DO DESENVOLVIMENTO NEUROPSICOMOTOR',
// 'ATEND./ACOMP.EM REABILITAÇÃO NAS MÚLTIPLAS DEFICIÊNCIAS',
// 'CATETERISMO VESICAL DE ALÍVIO',
// 'CATETERISMO VESICAL DE DEMORA',
// 'COLETA DE MATERIAL PARA EXAME LABORATORIAL',
// 'CUIDADOS COM ESTOMAS',
// 'CUIDADOS COM TRAQUEOSTOMIA',
// 'ENEMA',
// 'OXIGENOTERAPIA',
// 'REABILITAÇÃO DOMICILIAR',
// 'RETIRADA DE PONTOS DE CIRURGIAS BÁSICAS',
// 'SONDAGEM GÁSTRICA',
// 'TERAPIA DE REIDRATAÇÃO ORAL',
// 'TERAPIA DE REIDRATAÇÃO PARENTERAL',
// 'TERAPIA FONOAUDIOLÓGICA INDIVIDUAL',
// 'TRATAMENTO DE TRAUMATISMOS DE LOCALIZAÇÃO ESPECIFICADA/NÃO ESPECIFICADA',
// 'TRATAMENTO EM REABILITAÇÃO',
// ];
List<CheckProcedSiaModel> serviceHomeCheckProclist = [
CheckProcedSiaModel(COD_SIA: 1, DESCRICAO_PROCEDIMENTO:'ACOMP.DE PACIENTE EM REABILITAÇÃO EM COMUNICAÇÃO ALTERNATIVA'),
CheckProcedSiaModel(COD_SIA: 3, DESCRICAO_PROCEDIMENTO: 'ANTIBIOTICOTERAPIA PARENTERAL'),
CheckProcedSiaModel(COD_SIA: 7, DESCRICAO_PROCEDIMENTO:'ATEND. FISIOTERAPÊUTICO PACIENTE C/ TRANST. RESP S/ COMPLICAÇÕES SISTÊMICAS'),
CheckProcedSiaModel(COD_SIA: 9, DESCRICAO_PROCEDIMENTO:'ATEND. MÉDICO COM FINALIDADE DE ATESTAR ÓBITO'),
CheckProcedSiaModel(COD_SIA: 5, DESCRICAO_PROCEDIMENTO:'ATEND./ ACOMP. PACIENTE EM REABILITAÇÃO DO DESENVOLVIMENTO NEUROPSICOMOTOR'),
CheckProcedSiaModel(COD_SIA: 11, DESCRICAO_PROCEDIMENTO:'ATEND./ACOMP.EM REABILITAÇÃO NAS MÚLTIPLAS DEFICIÊNCIAS'),
CheckProcedSiaModel(COD_SIA: 13, DESCRICAO_PROCEDIMENTO:'CATETERISMO VESICAL DE ALÍVIO'),
CheckProcedSiaModel(COD_SIA: 15, DESCRICAO_PROCEDIMENTO:'CATETERISMO VESICAL DE DEMORA'),
CheckProcedSiaModel(COD_SIA: 17, DESCRICAO_PROCEDIMENTO:'COLETA DE MATERIAL PARA EXAME LABORATORIAL'),
CheckProcedSiaModel(COD_SIA: 19, DESCRICAO_PROCEDIMENTO:'CUIDADOS COM ESTOMAS'),
CheckProcedSiaModel(COD_SIA: 20, DESCRICAO_PROCEDIMENTO:'CUIDADOS COM TRAQUEOSTOMIA'),
CheckProcedSiaModel(COD_SIA: 2, DESCRICAO_PROCEDIMENTO: 'ENEMA'),
CheckProcedSiaModel(COD_SIA: 4, DESCRICAO_PROCEDIMENTO:'OXIGENOTERAPIA'),
CheckProcedSiaModel(COD_SIA: 6, DESCRICAO_PROCEDIMENTO:'RETIRADA DE PONTOS DE CIRURGIAS BÁSICAS'),
CheckProcedSiaModel(COD_SIA: 8, DESCRICAO_PROCEDIMENTO:'SONDAGEM GÁSTRICA'),
CheckProcedSiaModel(COD_SIA: 10, DESCRICAO_PROCEDIMENTO:'TERAPIA DE REIDRATAÇÃO ORAL'),
CheckProcedSiaModel(COD_SIA: 12, DESCRICAO_PROCEDIMENTO:'TERAPIA DE REIDRATAÇÃO PARENTERAL'),
CheckProcedSiaModel(COD_SIA: 14, DESCRICAO_PROCEDIMENTO:'TERAPIA FONOAUDIOLÓGICA INDIVIDUAL'),
CheckProcedSiaModel(COD_SIA: 16, DESCRICAO_PROCEDIMENTO:'TRATAMENTO DE TRAUMATISMOS DE LOCALIZAÇÃO ESPECIFICADA/NÃO ESPECIFICADA'),
CheckProcedSiaModel(COD_SIA: 18, DESCRICAO_PROCEDIMENTO:'TRATAMENTO EM REABILITAÇÃO'),
];
List<DropDownDataModel> listServicePlace = [

View File

@@ -0,0 +1,11 @@
class CheckProcedSiaModel{
int COD_SIA;
String DESCRICAO_PROCEDIMENTO;
bool check;
CheckProcedSiaModel({
required this.COD_SIA,
required this.DESCRICAO_PROCEDIMENTO,
this.check = false,
});
}

View File

@@ -23,10 +23,10 @@ class _AttendanceListScreenState extends State<AttendanceListScreen> {
getData()async{
Database db = await DbSqliteLoad().intialDB();
visitHome = await db.query('VISITAS_DOMICILIARES_PROC');
visitHome = await db.query('VISITAS_DOMICILIARES');
citizenUpdate = await db.query('CIDADAOS WHERE SINCRONIZADO = "N"');
serviceHome =await db.query('ATENDS_DOM_PROC');
print(await db.query('ATENDS_DOM_PROC'));
serviceHome =await db.query('ATENDIMENTOS_DOMICILIARES');
print(await db.query('ATENDIMENTOS_DOMICILIARES'));
// print(await db.query('VISITAS_DOMICILIARES_PROC'));
// print(await db.query('CIDADAOS WHERE SINCRONIZADO = "N"'));
print(citizenUpdate.length);

View File

@@ -65,14 +65,25 @@ class _SyncDataScreenState extends State<SyncDataScreen> {
});
await DBQuerys().cadCidadaos().then((response)async{
tableCIDADAOS = response;
// print(list);
// tableCIDADAOS[0].forEach((key, value) {
// print('$key: $value');
// });
await DBQuerys().cadDomiciliares().then((response)async{
tableCIDADAO_DOMICILIO = response;
// tableCIDADAO_DOMICILIO[0].forEach((key, value) {
// print('$key: $value');
// });
// print('tableCIDADAO_DOMICILIO');
// print(tableCIDADAO_DOMICILIO);
await DBQuerys().domCidadaos().then((response)async{
tableDOMICILIOS_CIDADAOS = response;
// print('tableDOMICILIOS_CIDADAOS');
// print(tableDOMICILIOS_CIDADAOS);
await DBQuerys().logrDomicilios().then((response)async{
tableINNERJOINCIDADAO_DOMICILIO = response;
// print('tableINNERJOINCIDADAO_DOMICILIO');
// print(tableINNERJOINCIDADAO_DOMICILIO);
await DBQuerys().cadIndividuais().then((response)async{
tableCADASTROS_INDIVIDUAIS = response;
@@ -242,6 +253,9 @@ class _SyncDataScreenState extends State<SyncDataScreen> {
// print(map['cad_individuais'][0]['ID_AREA_CIDADAO']);
// print(map['cad_individuais'][0]['ID_MICROAREA_CIDADAO']);
print('tableATENDS_DOM_PROC');
print(tableATENDS_DOM_PROC);
await ApiDataPost().sincronizacao(urlAPI, mode, nameCityApi,map).then((response)async{
if(response=='error'){
setState(() {

View File

@@ -424,7 +424,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
'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_ETNIA_INDIGENA' : selectEtniaIndigena==null?0:selectEtniaIndigena!.cod.toString().trim(),
'ID_ESCOLARIDADE' : selectScoolingCod,
'ID_DEFICIENCIA' : selectDeficiencyCod,
'NOME_MAE' : nameMotherController.text,

View File

@@ -72,6 +72,7 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
List<String> listSanitary = [];
List<String> listCBO = [];
List<String> listINEPROF = [];
List listaINE = [];
int idUsuario = 0;
String idUnidade = '';
@@ -228,10 +229,13 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
TIPO_IMOVEL = ConstVariable().listTypeHome[i].title;
}
}
List list = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario);
ID_AREA_DOMICILIO = list[0]['AREA'];
ID_MICROAREA_DOMICILIO = list[0]['MICROAREA'];
INE_DB = list[0]['INE'];
listaINE = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario);
print('lista');
print(listaINE);
ID_AREA_DOMICILIO = listaINE[0]['AREA'];
ID_MICROAREA_DOMICILIO = listaINE[0]['MICROAREA'];
ID_EQUIPE = listaINE[0]['ID_EQUIPE'];
INE_DB = listaINE[0]['INE'];
INE = 'INE: $INE_DB / Área: $ID_AREA_DOMICILIO - Microárea : $ID_MICROAREA_DOMICILIO';
listINE.add(INE!);
FORA_AREA = dataHome.length==0?false:dataHome[0]['FORA_AREA']==1?true:false;
@@ -378,6 +382,20 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
'SINCRONIZADO' : 'N',
};
RegExp regex = RegExp(r'INE:\s*(\d+)');
String? ineNumber = regex.firstMatch(INE!)?.group(1);
int ID_UNIDADE = 0;
for (int i = 0; listaINE.length > i; i++) {
if (listaINE[i]['INE'] == ineNumber) {
ID_EQUIPE = listaINE[i]['ID_EQUIPE'];
INE_DB = listaINE[i]['INE'];
ID_UNIDADE = listaINE[i]['ID_UNIDADE'];
print(listaINE[i]);
}
}
var CNES_UNIDADE = await DBQuerys().cnesUnidade(ID_UNIDADE);
Map<String, dynamic> rowHome = {
'TIPO_IMOVEL' : TIPO_IMOVEL_COD,
'ID_AREA_DOMICILIO' : ID_AREA_DOMICILIO,
@@ -387,7 +405,7 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
'TIPO_LOCALIDADE' : TIPO_LOCALIDADE_COD,
'TIPO_DOMICILIO' : TIPO_DOMICILIO_COD,
'NUM_MORADORES' : int.parse(NUM_MORADORES.text),
'NUM_COMODOS' : int.parse(NUM_COMODOS.text),
'NUM_COMODOS' : NUM_COMODOS.text.isEmpty?0:int.parse(NUM_COMODOS.text),
'SITUACAO_RURAL' : SITUACAO_RURAL_COD,
'TIPO_ACESSO' : TIPO_ACESSO_COD,
'MAT_PREDOMINANTE' : MAT_PREDOMINANTE_COD,
@@ -404,8 +422,8 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
'QTDE_ANIMAIS' : QTDE_ANIMAIS.text.isEmpty?0:int.parse(QTDE_ANIMAIS.text),
'CBO_RESP_CADASTRO' : CBO_RESP_CADASTRO,
'ID_RESP_CADASTRO' : ID_RESP_CADASTRO,
'CNES_RESP_CADASTRO' : CNES_RESP_CADASTRO.text,
'INE_RESP_CADASTRO' : INE,
'CNES_RESP_CADASTRO' : CNES_UNIDADE,
'INE_RESP_CADASTRO' : INE_DB,
'DT_CADASTRO' : date_cad,
'ID_EQUIPE' : ID_EQUIPE,
'ORIGEM' : 'A',
@@ -416,6 +434,7 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
'CARGO_RESP_TECNICO_INST' : CARGO_RESP_TECNICO_INST,
'TEL_RESP_TECNICO_INST' : TEL_RESP_TECNICO_INST,
};
await DbSqliteSync().insertCadastrosDomiciliares(rowHome,TIPO_SALVAR,ID_DOMICILIO,ID_CIDADAO,CD_USUARIO_SUS).then((value)async{
await DbSqliteSync().insertCidadaos(rowCitizen,editing?'update':'new',widget.listData[0]['CD_USUARIO_SUS']).then((value){
AlertDialogDefault().alert(
@@ -548,7 +567,23 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
select: INE,
widthDropdown: width*0.7,
widthContainerDropdown: width*0.6,
onChanged: !editing?null: (value)=>setState(()=>INE = value!),
onChanged: !editing?null: (value){
print(value);
setState(()=>INE = value!);
RegExp regex = RegExp(r'INE:\s*(\d+)');
String? ineNumber = regex.firstMatch(value)?.group(1);
for (int i = 0; listaINE.length > i; i++) {
if (listaINE[i]['INE'] == ineNumber) {
ID_EQUIPE = listaINE[i]['ID_EQUIPE'];
INE_DB = listaINE[i]['INE'];
// SITUACAO_MORADIA_COD = ConstVariable().listSituationHome[i].cod;
print('ID_EQUIPE $ID_EQUIPE');
print('INE_DB $INE_DB');
}
}
},
),
SwitchWithSubtitle(
width: width*0.7,
@@ -571,9 +606,12 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
widthContainerDropdown: width*0.6,
onChanged:!editing?null: (value){
setState(()=>SITUACAO_MORADIA = value!);
print('modou para $SITUACAO_MORADIA_COD');
print('modou para $SITUACAO_MORADIA');
for (int i = 0; ConstVariable().listSituationHome.length > i; i++) {
if (ConstVariable().listSituationHome[i].title == TIPO_IMOVEL) {
if (ConstVariable().listSituationHome[i].title == SITUACAO_MORADIA) {
SITUACAO_MORADIA_COD = ConstVariable().listSituationHome[i].cod;
print('modou para dentro do for $SITUACAO_MORADIA_COD');
}
}
},

View File

@@ -9,6 +9,7 @@ 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/check_proced_sia_model.dart';
import '../../models/drop_down_data_string_model.dart';
import '../../service/api/api_data_import_sigtap.dart';
import '../../service/db/db_querys.dart';
@@ -63,6 +64,7 @@ class _AtendimentoDomiciliarTelaState extends State<AtendimentoDomiciliarTela> {
String CID_COD='';
String? CBO_PROFISSIONAL;
String? CBO_PROFISSIONAL_DB;
String? CIAP;
String? CID;
String? CBO_RESP_CADASTRO;
@@ -74,7 +76,7 @@ class _AtendimentoDomiciliarTelaState extends State<AtendimentoDomiciliarTela> {
String? CONDUTA;
List<CheckModel> serviceHomeModel = [];
List<CheckModel> serviceProcModel = [];
List<CheckProcedSiaModel> serviceProcModel = [];
List <String>listCBO = [];
List <String>listServicePlace = [];
List <String>typeService = [];
@@ -87,6 +89,7 @@ class _AtendimentoDomiciliarTelaState extends State<AtendimentoDomiciliarTela> {
List<String> ATENDS_DOM_PROC = [];
List<String> listConduct = [];
List listProc = [];
List CBOS_PROFISSIONAL=[];
bool CNS_VALIDO = false;
bool mandatory = false;
@@ -243,7 +246,7 @@ class _AtendimentoDomiciliarTelaState extends State<AtendimentoDomiciliarTela> {
// adicionar depois e usar um usuário real
// CBO_RESP_CADASTRO
//ok
if(date.isEmpty || dateDB.isEmpty || LOCAL_ATENDIMENTO_COD==0 || TIPO_ATENDIMENTO_COD ==0 || MODALIDADE_COD == 0 || TURNO_COD == 0 || CBO_PROFISSIONAL == null
if(date.isEmpty || dateDB.isEmpty || LOCAL_ATENDIMENTO_COD==0 || TIPO_ATENDIMENTO_COD ==0 || MODALIDADE_COD == 0 || TURNO_COD == 0 || CBO_PROFISSIONAL == null || CONDUTA == null
){
print('erro');
setState(() {
@@ -265,7 +268,7 @@ class _AtendimentoDomiciliarTelaState extends State<AtendimentoDomiciliarTela> {
'ID_CIDADAO' : ID_CIDADAO,
'CD_USUARIO_SUS' : CD_USUARIO_SUS,
'ID_PROFISSIONAL' : idUsuario,
'CBO_PROFISSIONAL' : CBO_PROFISSIONAL,
'CBO_PROFISSIONAL' : CBO_PROFISSIONAL_DB,
'INE_PROFISSIONAL' : INE_PROFISSIONAL,
'CNES_UNIDADE' : CNES_UNIDADE.text,
'ID_UNIDADE' : int.parse(idUnidade),
@@ -288,7 +291,7 @@ class _AtendimentoDomiciliarTelaState extends State<AtendimentoDomiciliarTela> {
}
for(int i = 0;serviceProcModel.length>i;i++){
if(serviceProcModel[i].check){
DbSqliteSync().insertProcedimentosDomiciliares(value,i+1);
DbSqliteSync().insertProcedimentosDomiciliares(value,serviceProcModel[i].COD_SIA);
}
}
AlertDialogDefault().alert(
@@ -375,7 +378,7 @@ class _AtendimentoDomiciliarTelaState extends State<AtendimentoDomiciliarTela> {
onChanged: (v)=>setState((){}),
),
DropdownWithSubtitle(
list: PROCEDIMENTOS_SIGTAP,
list: listCBO,
widthSubtitle: width*0.7,
subtitle: 'CBO',
hintDropdown: 'CBO',
@@ -385,6 +388,9 @@ class _AtendimentoDomiciliarTelaState extends State<AtendimentoDomiciliarTela> {
onChanged: (value){
setState(() {
CBO_PROFISSIONAL = value!;
List list = CBO_PROFISSIONAL.toString().split(' - ');
CBO_PROFISSIONAL_DB = list.last;
print(CBO_PROFISSIONAL_DB);
});
},
colorBorder: ColorPalette.white,
@@ -651,20 +657,25 @@ class _AtendimentoDomiciliarTelaState extends State<AtendimentoDomiciliarTela> {
itemCount: ConstVariable().serviceHomeCheckProclist.length,
itemBuilder: (context,index){
List aux = ConstVariable().serviceHomeCheckProclist;
aux.sort();
serviceProcModel.add(
CheckModel(
subtitle: aux[index],
check: false
CheckProcedSiaModel(
COD_SIA: ConstVariable().serviceHomeCheckProclist[index].COD_SIA,
DESCRICAO_PROCEDIMENTO: ConstVariable().serviceHomeCheckProclist[index].DESCRICAO_PROCEDIMENTO,
)
);
// print(serviceProcModel[index].subtitle);
return CheckBoxSubtitle(
subtitle: serviceProcModel[index].subtitle,
subtitle: serviceProcModel[index].DESCRICAO_PROCEDIMENTO,
checkbox:serviceProcModel[index].check,
width: width*0.6,
onChanged: (value)=>setState(()=>serviceProcModel[index].check=value),
onChanged: (value)=>setState((){
serviceProcModel[index].check=value;
print(serviceProcModel[index].COD_SIA);
print(serviceProcModel[index].DESCRICAO_PROCEDIMENTO);
print(serviceProcModel[index].check);
}),
);
}
),
@@ -699,7 +710,7 @@ class _AtendimentoDomiciliarTelaState extends State<AtendimentoDomiciliarTela> {
IconButton(
icon: Icon(Icons.add_circle,color: ColorPalette.blackButton),
onPressed: (){
AlertDialogDefault().otherProc(context, 'Outros Procedimentos', 'Adicionar Procedimento', CBO_PROFISSIONAL, CBO_PROFISSIONAL, 'add',listCBO,listProc);
AlertDialogDefault().otherProc(context, 'Outros Procedimentos', 'Adicionar Procedimento', CBO_PROFISSIONAL, CBO_PROFISSIONAL, 'add',PROCEDIMENTOS_SIGTAP,listProc);
},
)
],
@@ -726,37 +737,42 @@ class _AtendimentoDomiciliarTelaState extends State<AtendimentoDomiciliarTela> {
),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 5.0),
child: Container(
width: width*0.7,
child: Row(
children: [
TextDefault(text: 'Conduta / Desfecho',fontSize: 15),
Spacer(),
DropdownWithSubtitle(
colorBorder: ColorPalette.white,
list: listConduct,
subtitle: 'SELECIONE',
select: CONDUTA,
widthDropdown: width*0.39,
widthContainerDropdown: width*0.3,
widthSubtitle: width*0.3,
hintDropdown: 'SELECIONE',
onChanged: (value){
CONDUTA = value;
for(int i = 0;ConstVariable().listConduct.length >i;i++){
if(ConstVariable().listConduct[i].title == CONDUTA){
CONDUTA_COD = ConstVariable().listConduct[i].cod;
}
}
setState(() {});
},
)
],
),
child: Column(
children: [
Container(
width: width*0.7,
child: Row(
children: [
TextDefault(text: 'Conduta / Desfecho',fontSize: 15),
Spacer(),
DropdownWithSubtitle(
colorBorder: ColorPalette.white,
list: listConduct,
subtitle: 'SELECIONE',
select: CONDUTA,
widthDropdown: width*0.39,
widthContainerDropdown: width*0.3,
widthSubtitle: width*0.3,
hintDropdown: 'SELECIONE',
onChanged: (value){
CONDUTA = value;
for(int i = 0;ConstVariable().listConduct.length >i;i++){
if(ConstVariable().listConduct[i].title == CONDUTA){
CONDUTA_COD = ConstVariable().listConduct[i].cod;
}
}
setState(() {});
},
)
],
),
),
CONDUTA_COD ==0 && mandatory?ErrorDefault():Container(),
],
)
)
),
]
)
),
]
)
),

View File

@@ -67,6 +67,7 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
int ID_PROFISSIONAL=0;
int ID_CIDADAO=0;
int ID_EQUIPE=0;
String CBO_DB ='0';
String INE_PROFISSIONAL='';
String CD_USUARIO_SUS='';
@@ -84,6 +85,7 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
List<CheckModel> tipoAcompanhamentoModel = [];
List<CheckModel> outrosModel = [];
List listProc = [];
List listProf = [];
escolherprazoInicio(BuildContext context) async {
var pickDate = await showDatePicker(
@@ -187,7 +189,7 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
// PROCEDIMENTOS_SIGTAP.add('${listSIGTAP[i]['COD_PROC_SIGTAP']} - ${listSIGTAP[i]['DESC_PROC_SIGTAP']}');
// }
// }
List listProf = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario);
listProf = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario);
INE_PROFISSIONAL = listProf[0]['INE'];
ID_EQUIPE = listProf[0]['ID_EQUIPE'];
setState(() {});
@@ -226,14 +228,6 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
ok*/
//salvar
print('date $date');
print('dateDB $dateDB');
print('TIPO_IMOVEL_COD $TIPO_IMOVEL_COD');
print('DESFECHO_COD $DESFECHO_COD');
print('TURNO_COD $TURNO_COD');
print('CBO_PROFISSIONAL $CBO_PROFISSIONAL');
print('listProc $listProc');
if(date.isEmpty || dateDB.isEmpty || TIPO_IMOVEL_COD==0 || DESFECHO_COD ==0 || TURNO_COD == 0 || CBO_PROFISSIONAL == null
){
print('erro principal');
@@ -246,86 +240,25 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
mandatory = false;
showCheckError = false;
/*TIPO VISITA*/
if(tipoVisitaModel[0].check || tipoVisitaModel[1].check){
/*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;
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;
}
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',
'É obrigatória a seleção de pelo menos uma opção dentre os campos Tipo da Visita, Busca ativa, Controle Ambiental, Acompanhamento e Outros.',
'OK'
);
}
if(check1 && check2){
print('save');
saveHomeVisit();
}
}else{
print('AQUI');
print('erro 2');
AlertDialogDefault().alert(
context,
'Aviso',
'É obrigatória a seleção de pelo menos uma opção dentre os campos Tipo da Visita, Busca ativa, Controle Ambiental, Acompanhamento e Outros.',
'OK'
);
}
}else{
print('nesse');
print('erro 3');
AlertDialogDefault().alert(
context,
'Aviso',
'É obrigatória a seleção de pelo menos uma opção dentre os campos Tipo da Visita, Busca ativa, Controle Ambiental, Acompanhamento e Outros.',
'OK'
);
}
}else{
AlertDialogDefault().alert(
context,
'Aviso',
'É obrigatória a seleção de pelo menos uma opção dentre os campos Tipo da Visita, Busca ativa, Controle Ambiental, Acompanhamento e Outros.',
'OK'
);
}
print('save');
saveHomeVisit();
});
}
}
saveHomeVisit()async{
int ID_UNIDADE = 0;
for (int i = 0; listProf.length > i; i++) {
if (listProf[i]['INE'] == INE_PROFISSIONAL) {
ID_EQUIPE = listProf[i]['ID_EQUIPE'];
// INE_DB = listProf[i]['INE'];
ID_UNIDADE = listProf[i]['ID_UNIDADE'];
// print('lista');
// print(listProf[i]);
}
}
var CNES_UNIDADE = await DBQuerys().cnesUnidade(ID_UNIDADE);
Map<String, dynamic> row = {
'ID_CIDADAO' : ID_CIDADAO,
'CD_USUARIO_SUS' : CD_USUARIO_SUS,
@@ -337,9 +270,9 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
'PESO' : PESO.text,
'ALTURA' : ALTURA.text,
'ID_PROFISSIONAL' : idUsuario,
'CBO_PROFISSIONAL' : CBO_PROFISSIONAL,
'CBO_PROFISSIONAL' : CBO_DB,
'INE_PROFISSIONAL' : INE_PROFISSIONAL,
'CNES_UNIDADE' : CNES_UNIDADE.text,
'CNES_UNIDADE' : CNES_UNIDADE,
'ID_UNIDADE' : int.parse(idUnidade),
'ID_EQUIPE' : ID_EQUIPE,
'COMPLEMENTO' : COMPLEMENTO.text,
@@ -813,6 +746,8 @@ class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
onChanged: (value){
setState(() {
CBO_PROFISSIONAL = value!;
List list = CBO_PROFISSIONAL.toString().split(' - ');
CBO_DB = list[1];
});
},
colorBorder: ColorPalette.white,

View File

@@ -14,9 +14,8 @@ class ApiDataPost{
Uri.parse(url),
body: jsonEncode(map),
);
print(response.body);
print(response.statusCode);
if(response.statusCode == 200) {
if(response.body == '{"status":1}') {
await DBQuerys().updateCidadao();
await DBQuerys().updateCadastroIndividuais();
await DBQuerys().updateCadastroDomiciliar();

View File

@@ -83,6 +83,19 @@ class DBQuerys{
return list[0]['CNES_UNIDADE'];
}
}
buscarCodProced(String PROCEDIMENTO)async{
print('PROCEDIMENTO');
print(PROCEDIMENTO);
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT * FROM PROCEDIMENTOS_SIGTAP WHERE DESC_PROC_SIGTAP = '$PROCEDIMENTO'";
List list = await db.rawQuery(query);
// print(list);
if(list.isEmpty){
return '';
}else{
return list[0]['COD_PROC_SIGTAP'].toString();
}
}
buscaBairro(nomeBairro)async{
Database db = await DbSqliteLoad().intialDB();
List list = await db.rawQuery("SELECT * FROM BAIRROS WHERE NO_BAIRRO = '$nomeBairro'");

View File

@@ -1,3 +1,4 @@
import 'package:rkm/service/db/db_querys.dart';
import 'package:rkm/service/db/db_sqlite_load.dart';
import 'package:sqflite/sqflite.dart';
@@ -541,15 +542,18 @@ class DbSqliteSync{
print(await db.query('VISITAS_DOMICILIARES_COMPL'));
return db;
}
Future insertProcedimentosDomiciliares(int ID_ATENDIMENTO_DOMICILIAR,int PROC_ATEND_DOM)async{
Future insertProcedimentosDomiciliares(int ID_ATENDIMENTO_DOMICILIAR,int PROCEDIMENTO_SELECIONADO)async{
Database db = await DbSqliteLoad().intialDB();
// ATENDS_DOM_COMPL (ID_ATENDIMENTO_DOMICILIAR INTEGER, COND_AVAL_ATEND_DOM INTEGER)
// String procedimento = await DBQuerys().buscarCodProced(PROCEDIMENTO_SELECIONADO);
Map<String,dynamic> row = {
'ID_ATENDIMENTO_DOMICILIAR' :ID_ATENDIMENTO_DOMICILIAR,
'PROC_ATEND_DOM' :PROC_ATEND_DOM,
'PROC_ATEND_DOM' :PROCEDIMENTO_SELECIONADO,
};
int id = await db.insert('ATENDS_DOM_PROC', row);
print(await db.query('ATENDS_DOM_PROC'));
// print(await db.query('ATENDS_DOM_PROC'));
return db;
}
Future insertVISITAS_DOMICILIARES_PROC(int ID_VISITA_DOMICILIAR,String COD_PROC_SIGTAP)async{

View File

@@ -409,10 +409,10 @@ packages:
dependency: transitive
description:
name: pointer_interceptor_web
sha256: "9386e064097fd16419e935c23f08f35b58e6aaec155dd39bd6a003b88f9c14b4"
sha256: "7a7087782110f8c1827170660b09f8aa893e0e9a61431dbbe2ac3fc482e8c044"
url: "https://pub.dev"
source: hosted
version: "0.10.1+2"
version: "0.10.2+1"
pointycastle:
dependency: transitive
description:
@@ -587,13 +587,13 @@ packages:
source: hosted
version: "14.2.1"
web:
dependency: transitive
dependency: "direct main"
description:
name: web
sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152
sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27"
url: "https://pub.dev"
source: hosted
version: "0.3.0"
version: "0.5.1"
win32:
dependency: transitive
description:
@@ -612,4 +612,4 @@ packages:
version: "1.0.0"
sdks:
dart: ">=3.3.0 <4.0.0"
flutter: ">=3.18.0-18.0.pre.54"
flutter: ">=3.19.0"

View File

@@ -3,9 +3,10 @@ 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
#versão 1.0.10+1 AJUSTES PARA A SINCRONIZAÇÃO DIA 22/08/2024
publish_to: 'none'
version: 1.0.9+8
version: 1.0.10+1
environment:
sdk: '>=3.2.3 <4.0.0'
@@ -26,6 +27,7 @@ dependencies:
brasil_fields: ^1.15.0
# lista com pesquisa
flutter_typeahead: ^5.2.0
web: ^0.5.1
flutter_localizations:
sdk: flutter

Binary file not shown.

Before

Width:  |  Height:  |  Size: 917 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -1,58 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<!--
If you are serving your web app in a path other than the root, change the
href value below to reflect the base path you are serving from.
The path provided below has to start and end with a slash "/" in order for
it to work correctly.
For more details:
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
This is a placeholder for base href that will be replaced by the value of
the `--base-href` argument provided to `flutter build`.
-->
<base href="$FLUTTER_BASE_HREF">
<meta charset="UTF-8">
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
<meta name="description" content="RKM AB 2.0.">
<!-- iOS meta tags & icons -->
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="apple-mobile-web-app-title" content="rkm">
<link rel="apple-touch-icon" href="icons/Icon-192.png">
<!-- Favicon -->
<link rel="icon" type="image/png" href="favicon.png"/>
<title>rkm</title>
<link rel="manifest" href="manifest.json">
<script>
// The value below is injected by flutter build, do not touch.
var serviceWorkerVersion = null;
</script>
<!-- This script adds the flutter initialization JS code -->
<script src="flutter.js" defer></script>
</head>
<body>
<script>
window.addEventListener('load', function(ev) {
// Download main.dart.js
_flutter.loader.loadEntrypoint({
serviceWorker: {
serviceWorkerVersion: serviceWorkerVersion,
}
}).then(function(engineInitializer) {
return engineInitializer.initializeEngine();
}).then(function(appRunner) {
return appRunner.runApp();
});
});
</script>
</body>
</html>

View File

@@ -1,35 +0,0 @@
{
"name": "rkm",
"short_name": "rkm",
"start_url": ".",
"display": "standalone",
"background_color": "#0175C2",
"theme_color": "#0175C2",
"description": "RKM AB 2.0.",
"orientation": "portrait-primary",
"prefer_related_applications": false,
"icons": [
{
"src": "icons/Icon-192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "icons/Icon-512.png",
"sizes": "512x512",
"type": "image/png"
},
{
"src": "icons/Icon-maskable-192.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "maskable"
},
{
"src": "icons/Icon-maskable-512.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "maskable"
}
]
}