enviando cadastro cidadão individual

This commit is contained in:
Reginaldo
2023-04-27 23:34:27 -03:00
parent 15419365dc
commit 0ba2af9e2c
16 changed files with 925 additions and 404 deletions

View File

@@ -206,7 +206,7 @@ class ConstVariable{
List<DropDownDataModel> listGenderIdent = [
DropDownDataModel(cod: 1, title: 'NÃO DESEJA INFORMAR'),
DropDownDataModel(cod: 2, title: 'HOMEM TRANSEXUA'),
DropDownDataModel(cod: 2, title: 'HOMEM TRANSEXUAL'),
DropDownDataModel(cod: 3, title: 'MULHER TRANSEXUAL'),
DropDownDataModel(cod: 4, title: 'TRAVESTI'),
DropDownDataModel(cod: 5, title: 'OUTRO'),

View File

@@ -227,7 +227,7 @@ class _SincDataScreenState extends State<SincDataScreen> {
'avaliacao_elegibilidade': tableAVALIACOES_ELEGIBILIDADE,
};
await ApiDataPost().sincronizacao(urlAPI, mode, nameCityApi,map).then((response)async{
if(response['status']!=1){
if(response=='error'){
setState(() {
error = true;
message = 'error';

View File

@@ -53,7 +53,7 @@ class _EditProceduresScreenState extends State<EditProceduresScreen> {
double height = MediaQuery.of(context).size.height;
return WillPopScope(
onWillPop: ()=> OnBackButton().onBackButton(context),
onWillPop: ()async => await OnBackButton().onBackButton(context),
child: Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Procedimentos Consolidados'),
body: Container(

View File

@@ -142,6 +142,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
String codSus = '';
bool edit = false;
bool editing = false;
bool mandatory = false;
int idCidadao = 0;
escolherprazoInicio(BuildContext context,String type) async {
@@ -353,9 +354,13 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
print('erro');
setState(() {
showCheckError = true;
mandatory = true;
});
}else{
print('passou');
setState(() {
mandatory = false;
});
if(widget.listData.length==0){
codSus = MainControllers().gerarCDUsuarioSus();
}else{
@@ -585,8 +590,10 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
codIBGEController.text = listCity[0]['CODIGO_IBGE'];
selectVillage = widget.listData[0]['NO_BAIRRO_LOGR'];
idTipo = widget.listData[0]['ID_LOGR_TIPO'];
streetDB.add(widget.listData[0]['NOME_LOGR']);
selectStreet = widget.listData[0]['NOME_LOGR'];
if(widget.listData[0]['NOME_LOGR']!=null){
streetDB.add(widget.listData[0]['NOME_LOGR']);
selectStreet = widget.listData[0]['NOME_LOGR'];
}
List listTypeStreet = await DBQuerys().buscaTipoLogradouroPorId(idTipo);
selectTypeStreet = listTypeStreet[0]['NO_LOGR_TIPO'];
cepController.text = widget.listData[0]['CEP_LOGR'].toString()=='null'?'': widget.listData[0]['CEP_LOGR'].toString();
@@ -676,7 +683,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
double width = MediaQuery.of(context).size.width;
return WillPopScope(
onWillPop: ()=> OnBackButton().onBackButton(context),
onWillPop: () async => await OnBackButton().onBackButton(context),
child: Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Cadastro Cidadão'),
body: Container(
@@ -756,12 +763,13 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
InputWithSubtitle(
controller: nameController,
subtitle: 'Nome',
errorInput: nameController.text.isNotEmpty?'':'Campo Obrigatório',
errorInput: 'Campo Obrigatório',
labelInput: 'Nome',
widthInput: width*0.7,
widthSubtitle: width*0.7,
hintInput: 'Escreva aqui',
enabled: !edit,
mandatory: mandatory,
onChanged: (v)=>setState((){}),
),
InputWithSubtitle(
@@ -790,7 +798,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
});
},
),
selectGender==null?ErrorDefault():Container(),
selectGender==null && mandatory?ErrorDefault():Container(),
Container(
width: width*0.75,
child: Row(
@@ -803,7 +811,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
margin: EdgeInsets.symmetric(horizontal: 15,vertical: 5),
padding: EdgeInsets.symmetric(horizontal: 8,vertical: 10),
decoration: BoxDecoration(
border: Border.all(color: ColorPalette.black54),
border: Border.all(color: ColorPalette.white),
borderRadius: BorderRadius.all(
Radius.circular(5.0)
),
@@ -819,7 +827,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
],
),
),
date == 'Data de Nascimento'?ErrorDefault():Container(),
date == 'Data de Nascimento'&& mandatory?ErrorDefault():Container(),
DropdownWithSubtitle(
list: listMaritalStatus,
subtitle: 'Estado Civil',
@@ -881,7 +889,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
});
},
),
selectNaturality==null?ErrorDefault():Container(),
selectNaturality==null&& mandatory?ErrorDefault():Container(),
GestureDetector(
onTap: cityBirthController.text == 'MUNICIPIO IGNORADO - SP' || edit?null:(){
searchCityController.text = '';
@@ -894,7 +902,6 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
scrollable: true,
content: StatefulBuilder(
builder: (context, setState) {
return Column(
children: [
InputSearchText(
@@ -988,7 +995,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
});
},
),
selectBreed==null?ErrorDefault():Container(),
selectBreed==null&& mandatory?ErrorDefault():Container(),
DropdownWithSubtitle(
list: listScooling,
subtitle: 'Escolaridade',
@@ -1029,7 +1036,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
});
},
),
selectDeficiency==null?ErrorDefault():Container(),
selectDeficiency==null&& mandatory?ErrorDefault():Container(),
InputWithSubtitle(
controller: nameMotherController,
subtitle: 'Nome da Mãe',
@@ -1038,6 +1045,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
widthInput: width*0.7,
widthSubtitle: width*0.2,
hintInput: 'Escreva aqui',
mandatory: mandatory,
enabled: !enableMother && !edit,
onChanged: (v)=>setState((){}),
),
@@ -1062,6 +1070,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
widthInput: width*0.7,
widthSubtitle: width*0.2,
hintInput: 'Escreva aqui',
mandatory: mandatory,
enabled: !enableFather && !edit,
onChanged: (v)=>setState((){}),
),
@@ -1179,7 +1188,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
'OUTRO MUNICIPIO',
]
),
selectClassification==null?ErrorDefault():Container(),
selectClassification==null&& mandatory?ErrorDefault():Container(),
InputWithSubtitle(
controller: numberFamilyController,
subtitle: 'Número da Família',
@@ -1254,7 +1263,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
'OUTRO',
]
),
selectCountry==null?ErrorDefault():Container(),
selectCountry==null&& mandatory?ErrorDefault():Container(),
GestureDetector(
onTap: selectClassification!='OUTRO MUNICIPIO'|| cityController.text == 'MUNICIPIO IGNORADO - SP'?null: (){
searchCityController.text = '';
@@ -1371,7 +1380,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
},
list: villageDB
),
selectClassification!='OUTRO MUNICIPIO' && selectVillage == null?ErrorDefault():Container(),
selectClassification!='OUTRO MUNICIPIO' && selectVillage == null&& mandatory?ErrorDefault():Container(),
DropdownWithSubtitle(
subtitle: 'Tipo de Logradouro',
select: selectTypeStreet,
@@ -1391,7 +1400,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
},
list: typeStreetDB
),
selectTypeStreet!='OUTRO MUNICIPIO' && selectTypeStreet == null && selectCountry == null?ErrorDefault():Container(),
selectTypeStreet!='OUTRO MUNICIPIO' && selectTypeStreet == null && selectCountry == null&& mandatory?ErrorDefault():Container(),
DropdownWithSubtitle(
subtitle: 'Nome do Logradouro',
select: selectStreet,
@@ -1415,6 +1424,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
widthInput: width*0.7,
widthSubtitle: width*0.2,
hintInput: 'Escreva aqui',
mandatory: mandatory,
enabled: selectClassification!='OUTRO MUNICIPIO' && !edit?true:false,
onChanged: (v)=>setState((){}),
),
@@ -1431,6 +1441,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
widthSubtitle: width*0.2,
widthError: 0.4,
hintInput: 'Escreva aqui',
mandatory: mandatory,
enabled: selectClassification!='OUTRO MUNICIPIO' && !checkBoxNumber && !edit?true:false,
onChanged: (v)=>setState((){}),
),
@@ -1595,6 +1606,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
widthSubtitle: width*0.7,
hintInput: 'Escreva aqui',
enabled: !edit,
mandatory: mandatory,
onChanged: (v)=>setState((){}),
),
InputWithSubtitle(
@@ -1606,6 +1618,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
widthSubtitle: width*0.7,
hintInput: 'Escreva aqui',
enabled: !edit,
mandatory: mandatory,
onChanged: (v)=>setState((){}),
),
InputWithSubtitle(
@@ -1799,7 +1812,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
margin: EdgeInsets.symmetric(horizontal: 15,vertical: 5),
padding: EdgeInsets.symmetric(horizontal: 8,vertical: 10),
decoration: BoxDecoration(
border: Border.all(color: ColorPalette.black54),
border: Border.all(color: ColorPalette.white),
borderRadius: BorderRadius.all(
Radius.circular(5.0)
),
@@ -1900,7 +1913,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
margin: EdgeInsets.symmetric(horizontal: 15,vertical: 5),
padding: EdgeInsets.symmetric(horizontal: 8,vertical: 10),
decoration: BoxDecoration(
border: Border.all(color: ColorPalette.black54),
border: Border.all(color: ColorPalette.white),
borderRadius: BorderRadius.all(
Radius.circular(5.0)
),
@@ -2029,18 +2042,18 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
fillColor: ColorPalette.appBar,
labelText: 'Renda Mensal',
border: OutlineInputBorder(
borderSide: BorderSide(width: 1,color: ColorPalette.black54)
borderSide: BorderSide(width: 1,color: ColorPalette.white)
),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(width: 1, color: ColorPalette.black54),
borderSide: BorderSide(width: 1, color: ColorPalette.white),
borderRadius: BorderRadius.circular(3),
),
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(width: 1, color: ColorPalette.black54),
borderSide: BorderSide(width: 1, color: ColorPalette.white),
borderRadius: BorderRadius.circular(3),
),
disabledBorder: OutlineInputBorder(
borderSide: BorderSide(width: 1, color: ColorPalette.black54),
borderSide: BorderSide(width: 1, color: ColorPalette.white),
borderRadius: BorderRadius.circular(3),
),
hintText: 'Escreva aqui',
@@ -2071,7 +2084,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
margin: EdgeInsets.symmetric(horizontal: 15,vertical: 5),
padding: EdgeInsets.symmetric(horizontal: 8,vertical: 10),
decoration: BoxDecoration(
border: Border.all(color: ColorPalette.black54),
border: Border.all(color: ColorPalette.white),
borderRadius: BorderRadius.all(
Radius.circular(5.0)
),

View File

@@ -168,7 +168,7 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
double width = MediaQuery.of(context).size.width;
return WillPopScope(
onWillPop: ()=> OnBackButton().onBackButton(context),
onWillPop: ()async => await OnBackButton().onBackButton(context),
child: Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Cadastro Domiciliar'),
body: Container(

File diff suppressed because it is too large Load Diff

View File

@@ -67,7 +67,7 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
double width = MediaQuery.of(context).size.width;
return WillPopScope(
onWillPop: ()=> OnBackButton().onBackButton(context),
onWillPop: ()async=> await OnBackButton().onBackButton(context),
child: Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Atendimento Domiciliar'),
body: Container(

View File

@@ -98,7 +98,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
double width = MediaQuery.of(context).size.width;
return WillPopScope(
onWillPop: ()=> OnBackButton().onBackButton(context),
onWillPop: ()async=> await OnBackButton().onBackButton(context),
child: Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Atendimento Individual'),
body: Container(

View File

@@ -141,7 +141,7 @@ class _SyncInitScreenState extends State<SyncInitScreen> {
}else{
setState(()=> messageSteps = "Etapa 10 de 10 - Gravando os Cadastros Individuais no Aplicativo");
}
await DbSqliteSync().insertCadastrosIndividuais(value).then((value)async{
await DbSqliteSync().insertCadastrosIndividuais(value,'sync','').then((value)async{
await DbSqliteSync().saveSync(codCity,codState,urlAPI,mode,nameCityApi,nameCityFront,codCityIbge,user,idUnidade,nomeUnidade,area,microarea).then((value)async{
Navigator.pushNamed(context, '/home');
});

View File

@@ -13,8 +13,8 @@ class ApiDataPost{
Uri.parse(url),
body: jsonEncode(map),
);
// print(response.body);
// print(response.statusCode);
print(response.body);
print(response.statusCode);
if(response.statusCode == 200) {
await DBQuerys().updateCidadao();
return json.decode(response.body);

View File

@@ -19,6 +19,30 @@ class DBQuerys{
// List list = await db.rawQuery("SELECT * FROM CIDADAOS WHERE CPF = $teste");
return list;
}
buscaDadosProfissional(String idUnidade, String idUsuario)async{
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";
List list = await db.rawQuery(query);
// print(await db.rawQuery('SELECT NO_BAIRRO FROM BAIRROS'));
// print(list);
return list;
}
Future buscaProfissionalCadInd(String ID_PROFISSIONAL)async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT * FROM PROFISSIONAIS WHERE ID_PROFISSIONAL = $ID_PROFISSIONAL";
List list = await db.rawQuery(query);
// print(await db.rawQuery('SELECT NO_BAIRRO FROM BAIRROS'));
print(list);
return list[0];
}
buscaNomeUnidade(String ID_UNIDADE)async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT * FROM UNIDADES WHERE ID_UNIDADE = $ID_UNIDADE";
List list = await db.rawQuery(query);
// print(await db.rawQuery('SELECT NO_BAIRRO FROM BAIRROS'));
print(list);
return list[0]['NOME_UNIDADE'];
}
buscaBairro(nomeBairro)async{
Database db = await DbSqliteLoad().intialDB();
List list = await db.rawQuery("SELECT * FROM BAIRROS WHERE NO_BAIRRO = '$nomeBairro'");
@@ -118,6 +142,13 @@ class DBQuerys{
// print(list);
return list;
}
Future buscaCBOProfissional(ID_PROFISSIONAL)async{
Database db = await DbSqliteLoad().intialDB();
var query = 'SELECT * FROM PROFISSIONAIS_CBOS WHERE CODIGO_CBO = "$ID_PROFISSIONAL"';
List list = await db.rawQuery(query);
print(list);
return list;
}
Future deleteCidadao()async{
Database db = await DbSqliteLoad().intialDB();
var query = "DELETE FROM CIDADAOS WHERE CD_USUARIO_SUS = '872488F88D1B2DB54D55BC8BBA2FAD1B'";

View File

@@ -28,7 +28,7 @@ class DbSqliteLoad{
db.execute('CREATE TABLE IF NOT EXISTS AVAL_ELEG_CONCL_INE (ID_AVALIACAO_ELEGIBILIDADE INTEGER, AVALIACAO INTEGER);');
db.execute('CREATE TABLE IF NOT EXISTS AVAL_ELEG_COND_AVAL (ID_AVALIACAO_ELEGIBILIDADE INTEGER, AVALIACAO INTEGER);');
db.execute('CREATE TABLE IF NOT EXISTS BAIRROS (ID_BAIRRO INTEGER PRIMARY KEY AUTOINCREMENT, NO_BAIRRO TEXT);');
db.execute('CREATE TABLE IF NOT EXISTS CADASTROS_INDIVIDUAIS (ID_CAD_INDIVIDUAL INTEGER PRIMARY KEY AUTOINCREMENT, STATUS_CADASTRO INTEGER, ID_CIDADAO INTEGER, CD_USUARIO_SUS TEXT, ID_AREA_CIDADAO INTEGER, ID_MICROAREA_CIDADAO INTEGER, FORA_AREA INTEGER, RESPONSAVEL_FAMILIAR INTEGER, ID_RESPONSAVEL_FAMILIAR TEXT, NOME_RESPONSAVEL_FAMILIAR TEXT, PARENTESCO INTEGER, ESCOLARIDADE INTEGER, FREQ_ESCOLA_CRECHE INTEGER, SITUACAO_MERCADO INTEGER, CUIDADOR_TRADICIONAL INTEGER, GRUPO_COMUNITARIO INTEGER, PLANO_PRIVADO INTEGER, COMUNIDADE_TRADICIONAL INTEGER, COM_TRADI_QUAL TEXT, ORIENT_SEXUAL INTEGER, TEM_DEFICIENCIA INTEGER, DEF_AUDITIVA INTEGER, DEF_INTELECTUAL INTEGER, DEF_VISUAL INTEGER, DEF_FISICA INTEGER, DEF_OUTRAS INTEGER, SAIDA_CADASTRO INTEGER, DATA_SAIDA_CADASTRO TEXT, CADASTRO_RECUSADO INTEGER, GESTANTE INTEGER, MATERNIDADE_REFERENCIA TEXT, PESO TEXT, FUMANTE INTEGER, USA_ALCOOL INTEGER, USA_DROGAS INTEGER, HIPERTENSAO INTEGER, DIABETES INTEGER, AVC_DERRAME INTEGER, INFARTO INTEGER, HANSENIASE INTEGER, TUBERCULOSE INTEGER, CANCER INTEGER, INTERNACAO INTEGER, MOTIVO TEXT, DOENCA_CARDIACA INTEGER, PROBLEMA_RINS INTEGER, DOENCA_PULMAO INTEGER, SAUDE_MENTAL INTEGER, ACAMADO INTEGER, DOMICILIADO INTEGER, PLANTAS_MED INTEGER, PLANTAS_MED_QUAIS TEXT, PIC INTEGER, OUTRAS_CONDICOES TEXT, TEMPO_SITUACAO_RUA INTEGER, ACOMP_INTITUICAO INTEGER, ACOMP_INTITUICAO_QUAL TEXT, BENEFICIO INTEGER, REF_FAMILIAR INTEGER, VISITA_FAMILIAR INTEGER, PARENTESCO_VISITA TEXT, ALIMENTACAO_DIARIA INTEGER, REST_POPULAR INTEGER, DOACAO_REST INTEGER, DOACAO_RELIGIOSO INTEGER, DOACAO_POPULAR INTEGER, OUTROS_ALIM INTEGER, ACESSO_HIGIENE INTEGER, BANHO INTEGER, SANITARIO INTEGER, HIGIENE_BUCAL INTEGER, OUTROS_HIGIENE INTEGER, FICHA_ALTERACAO INTEGER, ID_RESP_CADASTRO INTEGER, CNES_RESP_CADASTRO TEXT, CBO_RESP_CADASTRO TEXT, INE_RESP_CADASTRO TEXT, DT_CADASTRO TEXT, ID_EQUIPE INTEGER, ORIGEM TEXT, SINCRONIZADO TEXT, DT_ENTRADA_BRASIL TEXT, DT_NATURALIZACAO TEXT, PORTARIA_NATURALIZACAO TEXT, CRIANCAS_ADULTO INTEGER, CRIANCAS_OUTRAS_CRIANCAS INTEGER, CRIANCAS_ADOLESCENTE INTEGER, CRIANCAS_SOZINHA INTEGER, CRIANCAS_CRECHE INTEGER, CRIANCAS_OUTRO INTEGER, IDENTIDADE_GENERO INTEGER);');
db.execute('CREATE TABLE IF NOT EXISTS 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);');
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);');

View File

@@ -296,7 +296,7 @@ class DbSqliteSync{
}
return db;
}
Future insertCadastrosIndividuais(var value)async{
Future insertCadastrosIndividuais(var value,String type,String CD_USUARIO_SUS)async{
Database db = await DbSqliteLoad().intialDB();
// CADASTROS_INDIVIDUAIS (ID_CAD_INDIVIDUAL,STATUS_CADASTRO,ID_CIDADAO,CD_USUARIO_SUS,ID_AREA_CIDADAO,ID_MICROAREA_CIDADAO,FORA_AREA,RESPONSAVEL_FAMILIAR,
// ID_RESPONSAVEL_FAMILIAR,NOME_RESPONSAVEL_FAMILIAR,PARENTESCO,ESCOLARIDADE,FREQ_ESCOLA_CRECHE,SITUACAO_MERCADO,CUIDADOR_TRADICIONAL,GRUPO_COMUNITARIO,PLANO_PRIVADO,
@@ -321,102 +321,109 @@ class DbSqliteSync{
// "cboProfissional":"515105", "ine":"0001485628","dtCadastro":"2022-04-05","cdEquipe":5,"dtEntradaBrasil":null,"dtNaturalizado":null,"portariaNaturalizacao":"",
// "criancasAdulto":2,"criancasOutrasCriancas":2,"criancasAdolescente":2,"criancasSozinha":2,"criancasCresce":2,"criancasOutro":2,"identidadeGenero":null,"statusCadastro":null}
for(int i=0;value.length > i;i++){
Map<String, dynamic> row = {
'ID_CAD_INDIVIDUAL' : value[i]['idCadIndividual'],
'STATUS_CADASTRO' : value[i]['statusCadastro'],
'ID_CIDADAO' : value[i]['idCidadao'],
'CD_USUARIO_SUS' : value[i]['cdUsuarioSUS'],
'ID_AREA_CIDADAO' : value[i]['idAreaCidadao'],
'ID_MICROAREA_CIDADAO' : value[i]['idMicroAreaCidadao'],
'FORA_AREA' : value[i]['foraArea'],
'RESPONSAVEL_FAMILIAR' : value[i]['flResponsavelFamiliar'],
'ID_RESPONSAVEL_FAMILIAR' : value[i]['cdResponsavelFamiliar'],
'NOME_RESPONSAVEL_FAMILIAR' : value[i]['nomeResponsavelFamiliar'],
'PARENTESCO' : value[i]['parentesco'],
'ESCOLARIDADE' : value[i]['curso'],
'FREQ_ESCOLA_CRECHE' : value[i]['frequentaEscola'],
'SITUACAO_MERCADO' : value[i]['situacaoMercado'],
'CUIDADOR_TRADICIONAL' : value[i]['cuidadorTrad'],
'GRUPO_COMUNITARIO' : value[i]['grupoComunitario'],
'PLANO_PRIVADO' : value[i]['plSaudePrivado'],
'COMUNIDADE_TRADICIONAL' : value[i]['comunidadeTradicional'],
'COM_TRADI_QUAL' : value[i]['comunidadeTradicionalEspec'],
'ORIENT_SEXUAL' : value[i]['orientacaoSexual'],
'TEM_DEFICIENCIA' : value[i]['temDeficiencia'],
'DEF_AUDITIVA' : value[i]['defAuditiva'],
'DEF_INTELECTUAL' : value[i]['defIntelectual'],
'DEF_VISUAL' : value[i]['defVisual'],
'DEF_FISICA' : value[i]['defFisica'],
'DEF_OUTRAS' : value[i]['defOutros'],
'SAIDA_CADASTRO' : value[i]['saidaMotivo'],
'DATA_SAIDA_CADASTRO' : value[i]['saidaData'],
'CADASTRO_RECUSADO' : value[i]['recusado'],
'GESTANTE' : value[i]['gestante'],
'MATERNIDADE_REFERENCIA' : value[i]['maternidadeReferencia'],
'PESO' : value[i]['peso'],
'FUMANTE' : value[i]['fumante'],
'USA_ALCOOL' : value[i]['usaAlcool'],
'USA_DROGAS' : value[i]['outrasDrogas'],
'HIPERTENSAO' : value[i]['hipertensao'],
'DIABETES' : value[i]['diabetes'],
'AVC_DERRAME' : value[i]['avcDerrame'],
'INFARTO' : value[i]['infarto'],
'HANSENIASE' : value[i]['hanseniase'],
'TUBERCULOSE' : value[i]['tuberculose'],
'CANCER' : value[i]['cancer'],
'INTERNACAO' : value[i]['internacao12Meses'],
'MOTIVO' : value[i]['motivo'],
'DOENCA_CARDIACA' : value[i]['doencaCardiaca'],
'PROBLEMA_RINS' : value[i]['problemasRins'],
'DOENCA_PULMAO' : value[i]['doencaRespiratoriaPulmao'],
'SAUDE_MENTAL' : value[i]['tratamInternacaoPsiquiatrica'],
'ACAMADO' : value[i]['acamado'],
'DOMICILIADO' : value[i]['domiciliado'],
'PLANTAS_MED' : value[i]['plantasMedicinais'],
'PLANTAS_MED_QUAIS' : value[i]['plantasQuais'],
'PIC' : value[i]['praticasIntegrativasComplem'],
'OUTRAS_CONDICOES' : value[i]['outrasCondSaude'],
'TEMPO_SITUACAO_RUA' : value[i]['tempoSituacaoRua'],
'ACOMP_INTITUICAO' : value[i]['acompanhadoInstituicao'],
'ACOMP_INTITUICAO_QUAL' : value[i]['instituicaoQual'],
'BENEFICIO' : value[i]['recebeBeneficio'],
'REF_FAMILIAR' : value[i]['referenciaFamiliar'],
'PARENTESCO_VISITA' : value[i]['visitaFamiliarParentesco'],
'ALIMENTACAO_DIARIA' : value[i]['alimentacaoDiaria'],
'REST_POPULAR' : value[i]['alimentecaoRestaurantePop'],
'DOACAO_REST' : value[i]['alimentacaoDoacaoRestaurante'],
'DOACAO_RELIGIOSO' : value[i]['alimentacaoDoacaoGrupoRel'],
'DOACAO_POPULAR' : value[i]['alimentacaoDoacaoPop'],
'OUTROS_ALIM' : value[i]['alimentacaoOutros'],
'ACESSO_HIGIENE' : value[i]['higienePessoal'],
'BANHO' : value[i]['higieneBanho'],
'SANITARIO' : value[i]['higieneSanitario'],
'HIGIENE_BUCAL' : value[i]['higieneBucal'],
'OUTROS_HIGIENE' : value[i]['higieneOutros'],
'FICHA_ALTERACAO' : value[i]['fichaAlteracao'],
'ID_RESP_CADASTRO' : value[i]['idProfissionalResponsavel'],
'CNES_RESP_CADASTRO' : value[i]['cnesUnidade'],
'CBO_RESP_CADASTRO' : value[i]['cboProfissional'],
'INE_RESP_CADASTRO' : value[i]['ine'],
'DT_CADASTRO' : value[i]['dtCadastro'],
'ID_EQUIPE' : value[i]['cdEquipe'],
'ORIGEM' : '',
'SINCRONIZADO' : '',
'DT_ENTRADA_BRASIL' : value[i]['dtEntradaBrasil'],
'DT_NATURALIZACAO' : value[i]['dtNaturalizado'],
'PORTARIA_NATURALIZACAO' : value[i]['portariaNaturalizacao'],
'CRIANCAS_ADULTO' : value[i]['criancasAdulto'],
'CRIANCAS_OUTRAS_CRIANCAS' : value[i]['criancasOutrasCriancas'],
'CRIANCAS_ADOLESCENTE' : value[i]['criancasAdolescente'],
'CRIANCAS_SOZINHA' : value[i]['criancasSozinha'],
'CRIANCAS_CRECHE' : value[i]['criancasCresce'],
'CRIANCAS_OUTRO' : value[i]['criancasOutro'],
'IDENTIDADE_GENERO' : value[i]['identidadeGenero'],
};
int id = await db.insert('CADASTROS_INDIVIDUAIS', row);
// print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
// print(await db.query('CADASTROS_INDIVIDUAIS'));
if(type=='sync'){
for(int i=0;value.length > i;i++){
Map<String, dynamic> row = {
'ID_CAD_INDIVIDUAL' : value[i]['idCadIndividual'],
'STATUS_CADASTRO' : value[i]['statusCadastro'],
'ID_CIDADAO' : value[i]['idCidadao'],
'CD_USUARIO_SUS' : value[i]['cdUsuarioSUS'],
'ID_AREA_CIDADAO' : value[i]['idAreaCidadao'],
'ID_MICROAREA_CIDADAO' : value[i]['idMicroAreaCidadao'],
'FORA_AREA' : value[i]['foraArea'],
'RESPONSAVEL_FAMILIAR' : value[i]['flResponsavelFamiliar'],
'ID_RESPONSAVEL_FAMILIAR' : value[i]['cdResponsavelFamiliar'],
'NOME_RESPONSAVEL_FAMILIAR' : value[i]['nomeResponsavelFamiliar'],
'PARENTESCO' : value[i]['parentesco'],
'ESCOLARIDADE' : value[i]['curso'],
'FREQ_ESCOLA_CRECHE' : value[i]['frequentaEscola'],
'SITUACAO_MERCADO' : value[i]['situacaoMercado'],
'CUIDADOR_TRADICIONAL' : value[i]['cuidadorTrad'],
'GRUPO_COMUNITARIO' : value[i]['grupoComunitario'],
'PLANO_PRIVADO' : value[i]['plSaudePrivado'],
'COMUNIDADE_TRADICIONAL' : value[i]['comunidadeTradicional'],
'COM_TRADI_QUAL' : value[i]['comunidadeTradicionalEspec'],
'ORIENT_SEXUAL' : value[i]['orientacaoSexual'],
'TEM_DEFICIENCIA' : value[i]['temDeficiencia'],
'DEF_AUDITIVA' : value[i]['defAuditiva'],
'DEF_INTELECTUAL' : value[i]['defIntelectual'],
'DEF_VISUAL' : value[i]['defVisual'],
'DEF_FISICA' : value[i]['defFisica'],
'DEF_OUTRAS' : value[i]['defOutros'],
'SAIDA_CADASTRO' : value[i]['saidaMotivo'],
'DATA_SAIDA_CADASTRO' : value[i]['saidaData'],
'CADASTRO_RECUSADO' : value[i]['recusado'],
'GESTANTE' : value[i]['gestante'],
'MATERNIDADE_REFERENCIA' : value[i]['maternidadeReferencia'],
'PESO' : value[i]['peso'],
'FUMANTE' : value[i]['fumante'],
'USA_ALCOOL' : value[i]['usaAlcool'],
'USA_DROGAS' : value[i]['outrasDrogas'],
'HIPERTENSAO' : value[i]['hipertensao'],
'DIABETES' : value[i]['diabetes'],
'AVC_DERRAME' : value[i]['avcDerrame'],
'INFARTO' : value[i]['infarto'],
'HANSENIASE' : value[i]['hanseniase'],
'TUBERCULOSE' : value[i]['tuberculose'],
'CANCER' : value[i]['cancer'],
'INTERNACAO' : value[i]['internacao12Meses'],
'MOTIVO' : value[i]['motivo'],
'DOENCA_CARDIACA' : value[i]['doencaCardiaca'],
'PROBLEMA_RINS' : value[i]['problemasRins'],
'DOENCA_PULMAO' : value[i]['doencaRespiratoriaPulmao'],
'SAUDE_MENTAL' : value[i]['tratamInternacaoPsiquiatrica'],
'ACAMADO' : value[i]['acamado'],
'DOMICILIADO' : value[i]['domiciliado'],
'PLANTAS_MED' : value[i]['plantasMedicinais'],
'PLANTAS_MED_QUAIS' : value[i]['plantasQuais'],
'PIC' : value[i]['praticasIntegrativasComplem'],
'OUTRAS_CONDICOES' : value[i]['outrasCondSaude'],
'TEMPO_SITUACAO_RUA' : value[i]['tempoSituacaoRua'],
'ACOMP_INTITUICAO' : value[i]['acompanhadoInstituicao'],
'ACOMP_INTITUICAO_QUAL' : value[i]['instituicaoQual'],
'BENEFICIO' : value[i]['recebeBeneficio'],
'REF_FAMILIAR' : value[i]['referenciaFamiliar'],
'PARENTESCO_VISITA' : value[i]['visitaFamiliarParentesco'],
'ALIMENTACAO_DIARIA' : value[i]['alimentacaoDiaria'],
'REST_POPULAR' : value[i]['alimentecaoRestaurantePop'],
'DOACAO_REST' : value[i]['alimentacaoDoacaoRestaurante'],
'DOACAO_RELIGIOSO' : value[i]['alimentacaoDoacaoGrupoRel'],
'DOACAO_POPULAR' : value[i]['alimentacaoDoacaoPop'],
'OUTROS_ALIM' : value[i]['alimentacaoOutros'],
'ACESSO_HIGIENE' : value[i]['higienePessoal'],
'BANHO' : value[i]['higieneBanho'],
'SANITARIO' : value[i]['higieneSanitario'],
'HIGIENE_BUCAL' : value[i]['higieneBucal'],
'OUTROS_HIGIENE' : value[i]['higieneOutros'],
'FICHA_ALTERACAO' : value[i]['fichaAlteracao'],
'ID_RESP_CADASTRO' : value[i]['idProfissionalResponsavel'],
'CNES_RESP_CADASTRO' : value[i]['cnesUnidade'],
'CBO_RESP_CADASTRO' : value[i]['cboProfissional'],
'INE_RESP_CADASTRO' : value[i]['ine'],
'DT_CADASTRO' : value[i]['dtCadastro'],
'ID_EQUIPE' : value[i]['cdEquipe'],
'ORIGEM' : '',
'SINCRONIZADO' : '',
'DT_ENTRADA_BRASIL' : value[i]['dtEntradaBrasil'],
'DT_NATURALIZACAO' : value[i]['dtNaturalizado'],
'PORTARIA_NATURALIZACAO' : value[i]['portariaNaturalizacao'],
'CRIANCAS_ADULTO' : value[i]['criancasAdulto'],
'CRIANCAS_OUTRAS_CRIANCAS' : value[i]['criancasOutrasCriancas'],
'CRIANCAS_ADOLESCENTE' : value[i]['criancasAdolescente'],
'CRIANCAS_SOZINHA' : value[i]['criancasSozinha'],
'CRIANCAS_CRECHE' : value[i]['criancasCresce'],
'CRIANCAS_OUTRO' : value[i]['criancasOutro'],
'IDENTIDADE_GENERO' : value[i]['identidadeGenero'],
};
int id = await db.insert('CADASTROS_INDIVIDUAIS', row);
// print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
// print(await db.query('CADASTROS_INDIVIDUAIS'));
}
}else if(type=='new'){
int id = await db.insert('CADASTROS_INDIVIDUAIS', value);
// print('novo id $id');
}else if(type=='update'){
await db.update('CADASTROS_INDIVIDUAIS', value,where: "CD_USUARIO_SUS = '$CD_USUARIO_SUS'");
}
return db;
}

View File

@@ -28,13 +28,13 @@ class DropDownButtonDefault extends StatelessWidget {
return Column(
children: [
Container(
width: width,
width: width*0.95,
margin: ConstVariable().marginHightInput,
color: ColorPalette.white,
child: DropdownButtonHideUnderline(
child: DropdownButton(
hint: Padding(
padding: const EdgeInsets.symmetric(horizontal: 8.0),
padding: const EdgeInsets.symmetric(horizontal: 0.0),
child: TextDefault(text: title,fontSize: ConstVariable().fontSizeInput,textAlign: TextAlign.end,color: Colors.black,),
),
value: select,
@@ -43,7 +43,7 @@ class DropDownButtonDefault extends StatelessWidget {
child: Container(
width: widthContainer,
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 10.0),
padding: EdgeInsets.symmetric(horizontal: 0.0),
child: TextDefault(
text: value,
maxLines: 2,

View File

@@ -11,6 +11,8 @@ class DropdownWithSubtitle extends StatelessWidget {
double widthContainerDropdown;
List<String> list;
var onChanged;
var onTapDelete;
bool showDelete;
Color colorBorder;
DropdownWithSubtitle({
@@ -22,7 +24,9 @@ class DropdownWithSubtitle extends StatelessWidget {
required this.hintDropdown,
required this.onChanged,
required this.list,
this.colorBorder = ColorPalette.black54,
this.colorBorder = ColorPalette.white,
this.onTapDelete = null,
this.showDelete = false
});
@override
@@ -50,14 +54,23 @@ class DropdownWithSubtitle extends StatelessWidget {
),
margin: EdgeInsets.symmetric(horizontal: 5),
padding: EdgeInsets.symmetric(horizontal: 2),
child: DropDownButtonDefault(
title: hintDropdown,
fontSize: 14,
width: widthDropdown,
widthContainer: widthContainerDropdown,
select: select,
list: list,
onChanged: onChanged,
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
DropDownButtonDefault(
title: hintDropdown,
fontSize: 14,
width: widthDropdown,
widthContainer: widthContainerDropdown,
select: select,
list: list,
onChanged: onChanged,
),
select!=null &&showDelete?GestureDetector(
onTap: onTapDelete,
child: Icon(Icons.delete,color: ColorPalette.appBar,)
):Container(width: 23,)
],
),
),
],

View File

@@ -33,7 +33,7 @@ class InputWithSubtitle extends StatelessWidget {
this.mandatory = true,
this.textInputType = TextInputType.text,
this.maxLines = 1,
this.colorBorder = ColorPalette.black54,
this.colorBorder = ColorPalette.white,
required this.onChanged,
this.widthError = 0.7
});