ajustes de inputs com apenas numeros, mascaras, textos

This commit is contained in:
Reginaldo
2024-02-09 16:14:44 -03:00
parent a94bff8ebd
commit 8cf5569840
10 changed files with 176 additions and 79 deletions

View File

@@ -15,7 +15,7 @@ class ConstVariable{
'PE','PI','PO','PR','QH','RJ','RM','RN','RO','RR','RN','RO','RR','RS','SC','SE','SF','SJ','SP','TA','TO', 'PE','PI','PO','PR','QH','RJ','RM','RN','RO','RR','RN','RO','RR','RS','SC','SE','SF','SJ','SP','TA','TO',
'VC','XX','ZU','-','--','']; 'VC','XX','ZU','-','--',''];
List<String> itensProceduresStart = [ List<String> itensProceduresStart = [
'ATENDIMENTO INDIVIDUAL', 'ATEND. INDIVIDUAL',
'VISTA DOMICILIAR' 'VISTA DOMICILIAR'
]; ];
List<String> listNationality =[ List<String> listNationality =[
@@ -106,33 +106,33 @@ class ConstVariable{
List serviceHomeCheckConditionlist = [ List serviceHomeCheckConditionlist = [
'ACAMADO', 'ACAMADO',
'DOMICILIADO', 'ACOMP.NUTRICIONAL',
'ÚLCERAS / FERIDAS (GRAU III OU IV)', 'ACOMP.PÓS-OPERATÓRIO',
'ACOMPANHAMENTO NUTRICIONAL', 'ACOMP.PRÉ-OPERATÓRIO',
'USO DE SONDA NASO-GRÁSTRICA - SNG',
'USO DE SONDA NASO-ENTERAL - SNE',
'USO DE GASTRONOMIA',
'USO DE COLOSTOMIA',
'USO DE CISTOSTOMIA',
'USO DE SONDA VESICAL DE DEMORA - SVD',
'ACOMPANHAMENTO PRÉ-OPERATÓRIO',
'ACOMPANHAMENTO PÓS-OPERATÓRIO',
'ADAPTAÇÃO AO USO DE ÓRTESE / PRÓTESE', 'ADAPTAÇÃO AO USO DE ÓRTESE / PRÓTESE',
'REABILITAÇÃO DOMICILIAR', 'CUIDADOS PALIATIVOS NÃO ONCOLÓGICO',
'CUIDADOS PALIATIVOS ONCOLÓGICO', 'CUIDADOS PALIATIVOS ONCOLÓGICO',
'CUIDADOS PALIATIVOS NÃO-ONCOLÓGICO',
'OXIGENOTERAPIA DOMICILIAR',
'USO DE TRAQUEOSTOMIA',
'USO DE ASPIRADOR DE VIAS AÉRIAS PARA HIGIENE BUCAL',
'SUPORTE VENTILATÓRIO NÃO INVASICO - CPAP',
'SUPORTE VENTILATÓRIO NÃO INVASICO - BIPAP',
'DIÁLISE PERITONIAL', 'DIÁLISE PERITONIAL',
'PARACENTESE', 'DOMICILIADO',
'MEDICAÇÃO PARENTERAL', 'MEDICAÇÃO PARENTERAL',
'OXIGENOTERAPIA DOMICILIAR',
'PARACENTESE',
'REABILITAÇÃO DOMICILIAR',
'SUPORTE VENTILATÓRIO NÃO INVASIVO - BIPAP',
'SUPORTE VENTILATÓRIO NÃO INVASIVO - CPAP',
'ÚLCERAS / FERIDAS (GRAU III OU IV)',
'USO DE ASPIRADOR DE VIAS AÉRIAS PARA HIGIÊNE BRÔNQUICA',
'USO DE CISTOSTOMIA',
'USO DE COLOSTOMIA',
'USO DE GASTROSTOMIA',
'USO DE SONDA NASOENTERAL - SNE',
'USO DE SONDA NASOGRÁSTRICA - SNG',
'USO DE SONDA VESICAL DE DEMORA - SVD',
'USO DE TRAQUEOSTOMIA',
]; ];
List serviceHomeCheckProclist = [ List serviceHomeCheckProclist = [
'ACOMPANHAMENTO DE PACIENTE EM REABILITAÇÃO', 'ACOMP.DE PACIENTE EM REABILITAÇÃO EM COMUNICAÇÃO ALTERNATIVA',
'ENEMA', 'ENEMA',
'ANTIBIOTICOTERAPIA PARENTERAL', 'ANTIBIOTICOTERAPIA PARENTERAL',
'OXIGENOTERAPIA', 'OXIGENOTERAPIA',
@@ -140,16 +140,16 @@ class ConstVariable{
'RETIRADA DE PONTOS DE CIRURGIAS BÁSICAS', 'RETIRADA DE PONTOS DE CIRURGIAS BÁSICAS',
'ATEND. FISIOTERAPÊUTICO PACIENTE C/ TRANST. RESP S/ COMPLICAÇÕES SISTÊMICAS', 'ATEND. FISIOTERAPÊUTICO PACIENTE C/ TRANST. RESP S/ COMPLICAÇÕES SISTÊMICAS',
'SONDAGEM GÁSTRICA', 'SONDAGEM GÁSTRICA',
'ATENDIMENTO MÉDICO COM FINALIDADE DE ATESTAR ÓBITO', 'ATEND. MÉDICO COM FINALIDADE DE ATESTAR ÓBITO',
'TERAPIA DE REIDRATAÇÃO ORAL', 'TERAPIA DE REIDRATAÇÃO ORAL',
'ATENDIMENTO/ACOMPANHAMENTO EM REABILITAÇÃO NAS MÚLTIPLS DEFICIÊNCIAS', 'ATEND./ACOMP.EM REABILITAÇÃO NAS MÚLTIPLAS DEFICIÊNCIAS',
'TERAPIA DE REIDRATAÇÃO PARENTAL', 'TERAPIA DE REIDRATAÇÃO PARENTERAL',
'ADAPTAÇÃO AO USO DE ÓRTESE / PRÓTESE', 'ADAPTAÇÃO AO USO DE ÓRTESE / PRÓTESE',
'REABILITAÇÃO DOMICILIAR', 'REABILITAÇÃO DOMICILIAR',
'CATETERISMO VESICAL DE ALÍVIO', 'CATETERISMO VESICAL DE ALÍVIO',
'TERAPIA FONOAUDIOLÓGICA INDIVIDUAL', 'TERAPIA FONOAUDIOLÓGICA INDIVIDUAL',
'CATETERISMO VESICAL DE DEMORA', 'CATETERISMO VESICAL DE DEMORA',
'TRATAMENTO DE TRAUMATISMOS DE LOCALIZAÇÃO ESPECIF/NÃO ESPECIFICADA', 'TRATAMENTO DE TRAUMATISMOS DE LOCALIZAÇÃO ESPECIFICADA/NÃO ESPECIFICADA',
'COLETA DE MATERIAL PARA EXAME LABORATORIAL', 'COLETA DE MATERIAL PARA EXAME LABORATORIAL',
'TRATAMENTO EM REABILITAÇÃO', 'TRATAMENTO EM REABILITAÇÃO',
'CUIDADOS COM ESTOMAS', 'CUIDADOS COM ESTOMAS',
@@ -168,12 +168,12 @@ class ConstVariable{
DropDownDataModel(cod: 9,title: 'UNIDADE PRISIONAL OU CONGÊNERES'), DropDownDataModel(cod: 9,title: 'UNIDADE PRISIONAL OU CONGÊNERES'),
DropDownDataModel(cod: 10,title: 'UNIDADE SOCIOEDUCATIVA'), DropDownDataModel(cod: 10,title: 'UNIDADE SOCIOEDUCATIVA'),
DropDownDataModel(cod: 11,title: 'HOSPITAL'), DropDownDataModel(cod: 11,title: 'HOSPITAL'),
DropDownDataModel(cod: 12,title: 'UNIDADE DE PRONTO ATENDIMENTO'), DropDownDataModel(cod: 12,title: 'UNIDADE DE PRONTO ATEND.'),
DropDownDataModel(cod: 13,title: 'CACON/UNACON'), DropDownDataModel(cod: 13,title: 'CACON/UNACON'),
]; ];
List<DropDownDataModel> typeService = [ List<DropDownDataModel> typeService = [
DropDownDataModel(cod: 7,title: 'ATENDIMENTO PROGRAMADO'), DropDownDataModel(cod: 7,title: 'ATEND. PROGRAMADO'),
DropDownDataModel(cod: 8,title: 'ATENDIMENTO NÃO PROGRAMADO'), DropDownDataModel(cod: 8,title: 'ATEND. NÃO PROGRAMADO'),
DropDownDataModel(cod: 9,title: 'VISITA DOMICILIAR PÓS ÓBITO'), DropDownDataModel(cod: 9,title: 'VISITA DOMICILIAR PÓS ÓBITO'),
]; ];
List<DropDownDataModel> typeModelService = [ List<DropDownDataModel> typeModelService = [
@@ -191,7 +191,7 @@ class ConstVariable{
'CONSULTA AGENDADA', 'CONSULTA AGENDADA',
'DEMANDA ESPONTÂNEA - ESCUTA INICIAL/ORIENTAÇÃO', 'DEMANDA ESPONTÂNEA - ESCUTA INICIAL/ORIENTAÇÃO',
'DEMANDA ESPONTÂNEA - CONSULTA NO DIA', 'DEMANDA ESPONTÂNEA - CONSULTA NO DIA',
'DEMANDA ESPONTÂNEA - ATENDIMENTO DE EMERGÊNCIA', 'DEMANDA ESPONTÂNEA - ATEND. DE EMERGÊNCIA',
]; ];
List<DropDownDataModel> listBreed = [ List<DropDownDataModel> listBreed = [
DropDownDataModel(cod: 4, title: 'AMARELA'), DropDownDataModel(cod: 4, title: 'AMARELA'),
@@ -465,7 +465,7 @@ class ConstVariable{
DropDownDataModel(cod: 4, title: 'AFONICA'), DropDownDataModel(cod: 4, title: 'AFONICA'),
DropDownDataModel(cod: 5, title: 'AUDITIVA'), DropDownDataModel(cod: 5, title: 'AUDITIVA'),
DropDownDataModel(cod:10, title: 'FISICA'), DropDownDataModel(cod:10, title: 'FISICA'),
DropDownDataModel(cod: 2, title: 'IGNORADO'), // DropDownDataModel(cod: 2, title: 'IGNORADO'),
DropDownDataModel(cod: 6, title: 'INTELECTUAL'), DropDownDataModel(cod: 6, title: 'INTELECTUAL'),
DropDownDataModel(cod: 7, title: 'MOTORA'), DropDownDataModel(cod: 7, title: 'MOTORA'),
DropDownDataModel(cod: 8, title: 'MULTIPLA'), DropDownDataModel(cod: 8, title: 'MULTIPLA'),

View File

@@ -76,7 +76,7 @@ class _SyncDataScreenState extends State<SyncDataScreen> {
// print(tableINNERJOINCIDADAO_DOMICILIO); // print(tableINNERJOINCIDADAO_DOMICILIO);
await DBQuerys().cadIndividuais().then((response)async{ await DBQuerys().cadIndividuais().then((response)async{
tableCADASTROS_INDIVIDUAIS = response; tableCADASTROS_INDIVIDUAIS = response;
// print(tableCADASTROS_INDIVIDUAIS); print(tableCADASTROS_INDIVIDUAIS);
await DBQuerys().atendsIndivCompl().then((response)async{ await DBQuerys().atendsIndivCompl().then((response)async{
tableATENDS_INDIV_COMPL = response; tableATENDS_INDIV_COMPL = response;
// print(tableATENDS_INDIV_COMPL); // print(tableATENDS_INDIV_COMPL);
@@ -253,6 +253,9 @@ class _SyncDataScreenState extends State<SyncDataScreen> {
mode = list[0]['MODE']; mode = list[0]['MODE'];
nameCityApi = list[0]['NAME_CITY_API']; nameCityApi = list[0]['NAME_CITY_API'];
}); });
print(urlAPI);
print(mode);
print(nameCityApi);
setState(() {}); setState(() {});
} }
@@ -418,7 +421,7 @@ class _SyncDataScreenState extends State<SyncDataScreen> {
textColor: ColorPalette.white, textColor: ColorPalette.white,
background: ColorPalette.appBar, background: ColorPalette.appBar,
borderColor: ColorPalette.appBar, borderColor: ColorPalette.appBar,
onPressed: ()=>Navigator.pushNamedAndRemoveUntil(context, '/home', (Route<dynamic> route) => false), onPressed: ()=>Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context)=>HomeScreen(username: widget.username,)), (Route<dynamic> route) => false),
), ),
):Container(), ):Container(),
done?Padding( done?Padding(

View File

@@ -150,6 +150,7 @@ class _HomeScreenState extends State<HomeScreen> {
numberMedicalRecord: '${showResults[index]['NUM_PRONTUARIO']}'==''?'-----':'${showResults[index]['NUM_PRONTUARIO']}', numberMedicalRecord: '${showResults[index]['NUM_PRONTUARIO']}'==''?'-----':'${showResults[index]['NUM_PRONTUARIO']}',
onTap: ()async { onTap: ()async {
await DBQuerys().buscaCidadao(showResults[index]['NOME_CIDADAO']).then((list){ await DBQuerys().buscaCidadao(showResults[index]['NOME_CIDADAO']).then((list){
print(showResults[index]['CD_USUARIO_SUS']);
Navigator.push( Navigator.push(
context, context,
MaterialPageRoute(builder:(context) => RegisterCitizenScreen(listData: list,username: widget.username,)), MaterialPageRoute(builder:(context) => RegisterCitizenScreen(listData: list,username: widget.username,)),

View File

@@ -418,7 +418,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
'ID_LOGR_TIPO' : idTipo, 'ID_LOGR_TIPO' : idTipo,
'NOME_LOGR' : selectStreet, 'NOME_LOGR' : selectStreet,
'CEP_LOGR' : cepController.text.isNotEmpty?int.parse(cepController.text):0, 'CEP_LOGR' : cepController.text.isNotEmpty?int.parse(cepController.text):0,
'NUMERO_LOGR' : numberController.text.isNotEmpty?int.parse(numberController.text):0, 'NUMERO_LOGR' : numberController.text.isNotEmpty && numberController.text!='N/A'?int.parse(numberController.text):0,
'LOTEAMENTO_LOGR' : selectSubdivision, 'LOTEAMENTO_LOGR' : selectSubdivision,
'COMPL_LOGR' : complementController.text, 'COMPL_LOGR' : complementController.text,
'PONTO_REFERENCIA' : referencePointController.text, 'PONTO_REFERENCIA' : referencePointController.text,
@@ -627,7 +627,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
observationController.text = widget.listData[0]['OBSERVACOES']; observationController.text = widget.listData[0]['OBSERVACOES'];
CPFController.text = widget.listData[0]['CPF'].toString(); CPFController.text = widget.listData[0]['CPF'].toString();
CNSController.text = widget.listData[0]['CNS']; CNSController.text = widget.listData[0]['CNS'];
voterController.text = widget.listData[0]['TITULO_ELEITOR'].toString()??''; voterController.text = widget.listData[0]['TITULO_ELEITOR']==null?'':widget.listData[0]['TITULO_ELEITOR'].toString()??'';
RGController.text = widget.listData[0]['RG_NUMERO'].toString()=='null'?'':widget.listData[0]['RG_NUMERO'].toString(); RGController.text = widget.listData[0]['RG_NUMERO'].toString()=='null'?'':widget.listData[0]['RG_NUMERO'].toString();
RGComplementController.text = widget.listData[0]['RG_COMPLEMENTO'].toString(); RGComplementController.text = widget.listData[0]['RG_COMPLEMENTO'].toString();
selectRGUF = widget.listData[0]['RG_UF']??''; selectRGUF = widget.listData[0]['RG_UF']??'';
@@ -1464,7 +1464,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
setState(() { setState(() {
checkBoxNumber = value!; checkBoxNumber = value!;
if(checkBoxNumber){ if(checkBoxNumber){
numberController.text = '0'; numberController.text = 'N/A';
}else{ }else{
numberController.clear(); numberController.clear();
} }
@@ -1569,9 +1569,12 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
labelInput: 'Telefone - DDD', labelInput: 'Telefone - DDD',
widthInput: width*0.7, widthInput: width*0.7,
widthSubtitle: width*0.7, widthSubtitle: width*0.7,
maxLength: 3,
hintInput: 'Escreva aqui', hintInput: 'Escreva aqui',
enabled: !edit, enabled: !edit,
mandatory: false, mandatory: false,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
onChanged: (v)=>setState((){}), onChanged: (v)=>setState((){}),
), ),
InputWithSubtitle( InputWithSubtitle(
@@ -1579,11 +1582,14 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
subtitle: 'Telefone (Só Números)', subtitle: 'Telefone (Só Números)',
errorInput: 'Campo Obrigatório', errorInput: 'Campo Obrigatório',
labelInput: 'Telefone(Só Números)', labelInput: 'Telefone(Só Números)',
maxLength: 8,
widthInput: width*0.7, widthInput: width*0.7,
widthSubtitle: width*0.7, widthSubtitle: width*0.7,
hintInput: 'Escreva aqui', hintInput: 'Escreva aqui',
enabled: !edit, enabled: !edit,
mandatory: false, mandatory: false,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
onChanged: (v)=>setState((){}), onChanged: (v)=>setState((){}),
), ),
InputWithSubtitle( InputWithSubtitle(
@@ -1594,8 +1600,11 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
widthInput: width*0.7, widthInput: width*0.7,
widthSubtitle: width*0.7, widthSubtitle: width*0.7,
hintInput: 'Escreva aqui', hintInput: 'Escreva aqui',
maxLength: 3,
enabled: !edit, enabled: !edit,
mandatory: false, mandatory: false,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
onChanged: (v)=>setState((){}), onChanged: (v)=>setState((){}),
), ),
InputWithSubtitle( InputWithSubtitle(
@@ -1603,11 +1612,14 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
subtitle: 'Celular (Só Números)', subtitle: 'Celular (Só Números)',
errorInput: 'Campo Obrigatório', errorInput: 'Campo Obrigatório',
labelInput: 'Celular (Só Números)', labelInput: 'Celular (Só Números)',
maxLength: 9,
widthInput: width*0.7, widthInput: width*0.7,
widthSubtitle: width*0.7, widthSubtitle: width*0.7,
hintInput: 'Escreva aqui', hintInput: 'Escreva aqui',
enabled: !edit, enabled: !edit,
mandatory: false, mandatory: false,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
onChanged: (v)=>setState((){}), onChanged: (v)=>setState((){}),
), ),
InputWithSubtitle( InputWithSubtitle(
@@ -1615,11 +1627,14 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
subtitle: 'Recado - DDD', subtitle: 'Recado - DDD',
errorInput: 'Campo Obrigatório', errorInput: 'Campo Obrigatório',
labelInput: 'Recado - DDD', labelInput: 'Recado - DDD',
maxLength: 3,
widthInput: width*0.7, widthInput: width*0.7,
widthSubtitle: width*0.7, widthSubtitle: width*0.7,
hintInput: 'Escreva aqui', hintInput: 'Escreva aqui',
enabled: !edit, enabled: !edit,
mandatory: mandatory, mandatory: mandatory,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
onChanged: (v)=>setState((){}), onChanged: (v)=>setState((){}),
), ),
InputWithSubtitle( InputWithSubtitle(
@@ -1627,11 +1642,14 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
subtitle: 'Recado (Só Números)', subtitle: 'Recado (Só Números)',
errorInput: 'Campo Obrigatório', errorInput: 'Campo Obrigatório',
labelInput: 'Recado (Só Números)', labelInput: 'Recado (Só Números)',
maxLength: 9,
widthInput: width*0.7, widthInput: width*0.7,
widthSubtitle: width*0.7, widthSubtitle: width*0.7,
hintInput: 'Escreva aqui', hintInput: 'Escreva aqui',
enabled: !edit, enabled: !edit,
mandatory: mandatory, mandatory: mandatory,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
onChanged: (v)=>setState((){}), onChanged: (v)=>setState((){}),
), ),
InputWithSubtitle( InputWithSubtitle(
@@ -1644,6 +1662,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
hintInput: 'Escreva aqui', hintInput: 'Escreva aqui',
mandatory: false, mandatory: false,
enabled: !edit, enabled: !edit,
textInputType: TextInputType.emailAddress,
onChanged: (v)=>setState((){}), onChanged: (v)=>setState((){}),
), ),
], ],
@@ -1719,7 +1738,13 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
widthSubtitle: width*0.7, widthSubtitle: width*0.7,
hintInput: 'Escreva aqui', hintInput: 'Escreva aqui',
mandatory: false, mandatory: false,
maxLength: 14,
enabled: !edit, enabled: !edit,
textInputType: TextInputType.number,
inputFormatters: [
FilteringTextInputFormatter.digitsOnly,
CpfInputFormatter()
],
onChanged: (v)async{ onChanged: (v)async{
if(CPFController.text.isNotEmpty){ if(CPFController.text.isNotEmpty){
checkCPF = await MainControllers().validaCPF(v,editing); checkCPF = await MainControllers().validaCPF(v,editing);
@@ -1740,8 +1765,11 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
widthInput: width*0.7, widthInput: width*0.7,
widthSubtitle: width*0.7, widthSubtitle: width*0.7,
hintInput: 'Escreva aqui', hintInput: 'Escreva aqui',
maxLength: 15,
mandatory: false, mandatory: false,
enabled: !edit, enabled: !edit,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
onChanged: (v)async{ onChanged: (v)async{
//783107557570002 //783107557570002
if(CNSController.text.isNotEmpty){ if(CNSController.text.isNotEmpty){
@@ -1772,11 +1800,14 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
subtitle: 'RG', subtitle: 'RG',
errorInput: 'Campo Obrigatório', errorInput: 'Campo Obrigatório',
labelInput: 'RG', labelInput: 'RG',
maxLength: 8,
widthInput: width*0.7, widthInput: width*0.7,
widthSubtitle: width*0.7, widthSubtitle: width*0.7,
hintInput: 'Escreva aqui', hintInput: 'Escreva aqui',
mandatory: false, mandatory: false,
enabled: !edit, enabled: !edit,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly],
onChanged: (v)=>setState((){}), onChanged: (v)=>setState((){}),
), ),
InputWithSubtitle( InputWithSubtitle(
@@ -1786,9 +1817,12 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
labelInput: 'RG - Complemento', labelInput: 'RG - Complemento',
widthInput: width*0.7, widthInput: width*0.7,
widthSubtitle: width*0.7, widthSubtitle: width*0.7,
maxLength: 1,
hintInput: 'Escreva aqui', hintInput: 'Escreva aqui',
mandatory: false, mandatory: false,
enabled: !edit, enabled: !edit,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly],
onChanged: (v)=>setState((){}), onChanged: (v)=>setState((){}),
), ),
DropdownWithSubtitle( DropdownWithSubtitle(
@@ -1981,6 +2015,8 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
hintInput: 'Escreva aqui', hintInput: 'Escreva aqui',
mandatory: false, mandatory: false,
enabled: !edit, enabled: !edit,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
onChanged: (v)=>setState((){}), onChanged: (v)=>setState((){}),
), ),
DropdownWithSubtitle( DropdownWithSubtitle(

View File

@@ -99,6 +99,9 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
bool HIGIENE_BUCAL = false; bool HIGIENE_BUCAL = false;
bool OUTROS_HIGIENE = false; bool OUTROS_HIGIENE = false;
bool CNS_VALIDO = false; bool CNS_VALIDO = false;
bool FIBROMIALGIA = false;
bool TRANSTORNO_ESPECTRO_AUTISTA = false;
bool edit = false; bool edit = false;
bool editing = false; bool editing = false;
bool mandatory = false; bool mandatory = false;
@@ -221,23 +224,21 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
loadCadIndividual()async{ loadCadIndividual()async{
ID_CIDADAO = widget.listData[0]['ID_CIDADAO']; ID_CIDADAO = widget.listData[0]['ID_CIDADAO'];
print(widget.listData[0]['ID_USUARIO_CADASTRO']); print(widget.listData[0]['ID_CAD_INDIVIDUAL']);
print(ID_CIDADAO);
Database db = await DbSqliteLoad().intialDB();
await DBQuerys().buscaCadInvidual(ID_CIDADAO).then((dataCitizen)async{ await DBQuerys().buscaCadInvidual(ID_CIDADAO).then((dataCitizen)async{
// print(CD_USUARIO_SUS);
if(dataCitizen.length != 0) { if(dataCitizen.length != 0) {
ID_PROFISSIONAL = dataCitizen[0]['ID_RESP_CADASTRO']; ID_PROFISSIONAL = dataCitizen[0]['ID_RESP_CADASTRO'];
print(dataCitizen[0]['ID_RESP_CADASTRO']);
// print(dataCitizen[0]['FIBROMIALGIA']);
// print(dataCitizen[0]['TRANSTORNO_ESPECTRO_AUTISTA']);
TIPO_SALVAR = 'update'; TIPO_SALVAR = 'update';
showTab = true; showTab = true;
FORA_AREA = dataCitizen[0]['FORA_AREA'] == 1 ? true : false; FORA_AREA = dataCitizen[0]['FORA_AREA'] == 1 ? true : false;
ID_EQUIPE = dataCitizen[0]['ID_EQUIPE']??0; ID_EQUIPE = dataCitizen[0]['ID_EQUIPE']??0;
STATUS_CADASTRO = dataCitizen[0]['STATUS_CADASTRO'] == null? false : dataCitizen[0]['STATUS_CADASTRO'] == 1 ? true : false; STATUS_CADASTRO = dataCitizen[0]['STATUS_CADASTRO'] == null? false : dataCitizen[0]['STATUS_CADASTRO'] == 1 ? true : false;
RESPONSAVEL_FAMILIAR = dataCitizen[0]['RESPONSAVEL_FAMILIAR'] == 1 ? true : false; RESPONSAVEL_FAMILIAR = dataCitizen[0]['RESPONSAVEL_FAMILIAR'] == 1 ? true : false;
FIBROMIALGIA = dataCitizen[0]['FIBROMIALGIA']==1?true:false;
TRANSTORNO_ESPECTRO_AUTISTA = dataCitizen[0]['TRANSTORNO_ESPECTRO_AUTISTA']==1?true:false;
if(dataCitizen[0]['INE']!=null){ if(dataCitizen[0]['INE']!=null){
INE = 'INE: ${dataCitizen[0]['INE']} / Área : ${dataCitizen[0]['ID_AREA_CIDADAO']} - Microárea : ${dataCitizen[0]['ID_MICROAREA_CIDADAO']}'; INE = 'INE: ${dataCitizen[0]['INE']} / Área : ${dataCitizen[0]['ID_AREA_CIDADAO']} - Microárea : ${dataCitizen[0]['ID_MICROAREA_CIDADAO']}';
INE_RESP_CADASTRO = 'INE: ${dataCitizen[0]['INE']} / Área: ${dataCitizen[0]['AREA']} - Microárea : ${dataCitizen[0]['MICROAREA']}'; INE_RESP_CADASTRO = 'INE: ${dataCitizen[0]['INE']} / Área: ${dataCitizen[0]['AREA']} - Microárea : ${dataCitizen[0]['MICROAREA']}';
@@ -438,7 +439,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
}); });
if(ID_PROFISSIONAL!=0){ if(ID_PROFISSIONAL!=0){
await DBQuerys().buscaProfissionalCadInd(ID_PROFISSIONAL).then((value)async{ await DBQuerys().buscaProfissionalCadInd(ID_PROFISSIONAL).then((value)async{
print(value); // print(value);
USUARIO_RESP_CADASTRO.text = value['NOME_PROFISSIONAL']; USUARIO_RESP_CADASTRO.text = value['NOME_PROFISSIONAL'];
//aguardando unidade //aguardando unidade
CNES_RESP_CADASTRO.text = await DBQuerys().buscaNomeUnidade(value['ID_UNIDADE']); CNES_RESP_CADASTRO.text = await DBQuerys().buscaNomeUnidade(value['ID_UNIDADE']);
@@ -515,6 +516,8 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
'TUBERCULOSE' : TUBERCULOSE?1:2, 'TUBERCULOSE' : TUBERCULOSE?1:2,
'CANCER' : CANCER?1:2, 'CANCER' : CANCER?1:2,
'INTERNACAO' : INTERNACAO?1:2, 'INTERNACAO' : INTERNACAO?1:2,
'FIBROMIALGIA' : FIBROMIALGIA?1:2,
'TRANSTORNO_ESPECTRO_AUTISTA': TRANSTORNO_ESPECTRO_AUTISTA?1:2,
'MOTIVO' : MOTIVO.text, 'MOTIVO' : MOTIVO.text,
'DOENCA_CARDIACA' : DOENCA_CARDIACA_COD, 'DOENCA_CARDIACA' : DOENCA_CARDIACA_COD,
'PROBLEMA_RINS' : PROBLEMA_RINS_COD, 'PROBLEMA_RINS' : PROBLEMA_RINS_COD,
@@ -1177,6 +1180,18 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
value: CANCER, value: CANCER,
onChanged: !editing?null: (value)=>setState(()=>CANCER = value), onChanged: !editing?null: (value)=>setState(()=>CANCER = value),
), ),
SwitchWithSubtitle(
width: width*0.7,
title: 'Fibromialgia',
value: FIBROMIALGIA ,
onChanged: !editing?null: (value)=>setState(()=>FIBROMIALGIA = value),
),
SwitchWithSubtitle(
width: width*0.7,
title: 'Transtorno Espectro Autista',
value: TRANSTORNO_ESPECTRO_AUTISTA,
onChanged: !editing?null: (value)=>setState(()=>TRANSTORNO_ESPECTRO_AUTISTA = value),
),
SwitchWithSubtitle( SwitchWithSubtitle(
width: width*0.7, width: width*0.7,
title: 'Internação nos Últimos 12 Meses', title: 'Internação nos Últimos 12 Meses',

View File

@@ -1,4 +1,5 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
import 'package:line_icons/line_icons.dart'; import 'package:line_icons/line_icons.dart';
import 'package:rkm/screens/home_screen.dart'; import 'package:rkm/screens/home_screen.dart';
@@ -533,10 +534,11 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
) )
); );
return CheckBoxSubtitle( return CheckBoxSubtitle(
ontap:DESFECHO != 'VISITA REALIZADA'?null: ()=>setState(()=>tipoVisitaModel[index].check?tipoVisitaModel[index].check=false:tipoVisitaModel[index].check=true),
subtitle: tipoVisitaModel[index].subtitle, subtitle: tipoVisitaModel[index].subtitle,
checkbox:tipoVisitaModel[index].check, checkbox:tipoVisitaModel[index].check,
width: width*0.6, width: width*0.6,
onChanged: (value)=>setState(()=>tipoVisitaModel[index].check=value), onChanged:DESFECHO != 'VISITA REALIZADA'?null: (value)=>setState(()=>tipoVisitaModel[index].check=value),
); );
} }
), ),
@@ -548,8 +550,10 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
checkbox2: VACINA, checkbox2: VACINA,
subtitle1: 'CONSULTA', subtitle1: 'CONSULTA',
subtitle2: 'VACINA', subtitle2: 'VACINA',
onChanged1: (value)=>setState(()=>CONSULTA=value), onChanged1: DESFECHO != 'VISITA REALIZADA'?null:(value)=>setState(()=>CONSULTA=value),
onChanged2: (value)=>setState(()=>VACINA=value), onChanged2: DESFECHO != 'VISITA REALIZADA'?null: (value)=>setState(()=>VACINA=value),
ontap1: DESFECHO != 'VISITA REALIZADA'?null: ()=>setState(()=>CONSULTA?CONSULTA=false:CONSULTA=true),
ontap2: DESFECHO != 'VISITA REALIZADA'?null: ()=>setState(()=>VACINA?VACINA=false:VACINA=true),
), ),
CheckBoxTwoSubtitle( CheckBoxTwoSubtitle(
width: width*0.7, width: width*0.7,
@@ -557,8 +561,10 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
checkbox2: CONDICIONALIDADES, checkbox2: CONDICIONALIDADES,
subtitle1: 'EXAME', subtitle1: 'EXAME',
subtitle2: 'CONDICIONALIDADES', subtitle2: 'CONDICIONALIDADES',
onChanged1: (value)=>setState(()=>EXAME=value), onChanged1: DESFECHO != 'VISITA REALIZADA'?null:(value)=>setState(()=>EXAME=value),
onChanged2: (value)=>setState(()=>CONDICIONALIDADES=value), onChanged2: DESFECHO != 'VISITA REALIZADA'?null:(value)=>setState(()=>CONDICIONALIDADES=value),
ontap1: DESFECHO != 'VISITA REALIZADA'?null: ()=>setState(()=>EXAME?EXAME=false:EXAME=true),
ontap2: DESFECHO != 'VISITA REALIZADA'?null: ()=>setState(()=>CONDICIONALIDADES?CONDICIONALIDADES=false:CONDICIONALIDADES=true),
), ),
TitleContainers(title: 'Controle Ambiental',width: width*0.7,textAling: TextAlign.start,fontSize: 15), TitleContainers(title: 'Controle Ambiental',width: width*0.7,textAling: TextAlign.start,fontSize: 15),
CheckBoxTwoSubtitle( CheckBoxTwoSubtitle(
@@ -567,8 +573,10 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
checkbox2: ACAO_MECANICA, checkbox2: ACAO_MECANICA,
subtitle1: 'AÇÃO EDUCATIVA', subtitle1: 'AÇÃO EDUCATIVA',
subtitle2: 'AÇÃO MECÂNICA', subtitle2: 'AÇÃO MECÂNICA',
onChanged1: (value)=>setState(()=>ACAO_EDUCATIVA=value), onChanged1: DESFECHO != 'VISITA REALIZADA'?null:(value)=>setState(()=>ACAO_EDUCATIVA=value),
onChanged2: (value)=>setState(()=>ACAO_MECANICA=value), onChanged2: DESFECHO != 'VISITA REALIZADA'?null:(value)=>setState(()=>ACAO_MECANICA=value),
ontap1: DESFECHO != 'VISITA REALIZADA'?null: ()=>setState(()=>ACAO_EDUCATIVA?ACAO_EDUCATIVA=false:ACAO_EDUCATIVA=true),
ontap2: DESFECHO != 'VISITA REALIZADA'?null: ()=>setState(()=>ACAO_MECANICA?ACAO_MECANICA=false:ACAO_MECANICA=true),
), ),
CheckBoxTwoSubtitle( CheckBoxTwoSubtitle(
width: width*0.7, width: width*0.7,
@@ -576,8 +584,10 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
checkbox2: TRATAMENTO_FOCAL, checkbox2: TRATAMENTO_FOCAL,
subtitle1: 'IMÓVEL COM FOCO', subtitle1: 'IMÓVEL COM FOCO',
subtitle2: 'TRATAMENTO FOCAL', subtitle2: 'TRATAMENTO FOCAL',
onChanged1: (value)=>setState(()=>IMOVEL_FOCO=value), onChanged1: DESFECHO != 'VISITA REALIZADA'?null:(value)=>setState(()=>IMOVEL_FOCO=value),
onChanged2: (value)=>setState(()=>TRATAMENTO_FOCAL=value), onChanged2: DESFECHO != 'VISITA REALIZADA'?null:(value)=>setState(()=>TRATAMENTO_FOCAL=value),
ontap1: DESFECHO != 'VISITA REALIZADA'?null: ()=>setState(()=>IMOVEL_FOCO?IMOVEL_FOCO=false:IMOVEL_FOCO=true),
ontap2: DESFECHO != 'VISITA REALIZADA'?null: ()=>setState(()=>TRATAMENTO_FOCAL?TRATAMENTO_FOCAL=false:TRATAMENTO_FOCAL=true),
), ),
TitleContainers(title: 'Acompanhamento',width: width*0.7,textAling: TextAlign.start,fontSize: 15), TitleContainers(title: 'Acompanhamento',width: width*0.7,textAling: TextAlign.start,fontSize: 15),
Container( Container(
@@ -597,7 +607,7 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
subtitle: tipoAcompanhamentoModel[index].subtitle, subtitle: tipoAcompanhamentoModel[index].subtitle,
checkbox:tipoAcompanhamentoModel[index].check, checkbox:tipoAcompanhamentoModel[index].check,
width: width*0.6, width: width*0.6,
onChanged: (value)=>setState(()=>tipoAcompanhamentoModel[index].check=value), onChanged:DESFECHO != 'VISITA REALIZADA'?null: (value)=>setState(()=>tipoAcompanhamentoModel[index].check=value),
); );
} }
), ),
@@ -656,6 +666,9 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
hintInput: 'Escreva aqui', hintInput: 'Escreva aqui',
mandatory: false, mandatory: false,
enabled: true, enabled: true,
maxLength: 7,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
onChanged: (v)=>setState((){}), onChanged: (v)=>setState((){}),
), ),
InputWithSubtitle( InputWithSubtitle(
@@ -668,6 +681,9 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
hintInput: 'Escreva aqui', hintInput: 'Escreva aqui',
mandatory: false, mandatory: false,
enabled: true, enabled: true,
maxLength: 4,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
onChanged: (v)=>setState((){}), onChanged: (v)=>setState((){}),
), ),
], ],

View File

@@ -9,19 +9,23 @@ class CheckBoxSubtitle extends StatelessWidget {
bool checkbox; bool checkbox;
var onChanged; var onChanged;
double fontSize; double fontSize;
var ontap;
CheckBoxSubtitle({ CheckBoxSubtitle({
this.width = double.infinity, this.width = double.infinity,
required this.checkbox, required this.checkbox,
required this.subtitle, required this.subtitle,
required this.onChanged, required this.onChanged,
this.fontSize = 14 this.fontSize = 14,
this.ontap = null
}); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return GestureDetector(
onTap: ontap,
child: Container(
width: width, width: width,
child: Row( child: Row(
children: [ children: [
@@ -31,10 +35,11 @@ class CheckBoxSubtitle extends StatelessWidget {
), ),
Container( Container(
width: width, width: width,
child: TextDefault(text: subtitle,fontSize: fontSize,color: ColorPalette.black54,) child: TextDefault(text: subtitle,fontSize: fontSize,color: ColorPalette.black54,maxLines: 2,)
), ),
], ],
), ),
),
); );
} }
} }

View File

@@ -11,6 +11,8 @@ class CheckBoxTwoSubtitle extends StatelessWidget {
bool checkbox2; bool checkbox2;
var onChanged1; var onChanged1;
var onChanged2; var onChanged2;
var ontap1;
var ontap2;
CheckBoxTwoSubtitle({ CheckBoxTwoSubtitle({
this.width = double.infinity, this.width = double.infinity,
@@ -20,6 +22,8 @@ class CheckBoxTwoSubtitle extends StatelessWidget {
required this.subtitle2, required this.subtitle2,
required this.onChanged1, required this.onChanged1,
required this.onChanged2, required this.onChanged2,
this.ontap1 = null,
this.ontap2 = null,
}); });
@override @override
@@ -33,19 +37,25 @@ class CheckBoxTwoSubtitle extends StatelessWidget {
value: checkbox1, value: checkbox1,
onChanged: onChanged1 onChanged: onChanged1
), ),
Container( GestureDetector(
onTap: ontap1,
child: Container(
width: width/2.5, width: width/2.5,
child: TextDefault(text: subtitle1,fontSize: 14,color: ColorPalette.black54,) child: TextDefault(text: subtitle1,fontSize: 14,color: ColorPalette.black54,)
), ),
),
Spacer(), Spacer(),
Checkbox( Checkbox(
value: checkbox2, value: checkbox2,
onChanged: onChanged2 onChanged: onChanged2
), ),
Container( GestureDetector(
onTap: ontap2,
child: Container(
width: width/3, width: width/3,
child: TextDefault(text: subtitle2,fontSize: 14,color: ColorPalette.black54) child: TextDefault(text: subtitle2,fontSize: 14,color: ColorPalette.black54)
), ),
),
], ],
), ),
); );

View File

@@ -15,6 +15,8 @@ class InputText extends StatelessWidget {
int maxLines; int maxLines;
Color colorBorder; Color colorBorder;
var onChanged; var onChanged;
int maxLength;
List<TextInputFormatter> inputFormatters;
InputText({ InputText({
required this.controller, required this.controller,
@@ -27,7 +29,9 @@ class InputText extends StatelessWidget {
this.maxLines = 1, this.maxLines = 1,
this.colorBorder = ColorPalette.black54, this.colorBorder = ColorPalette.black54,
this.onChanged = null, this.onChanged = null,
}); this.maxLength = 200,
List<TextInputFormatter>? inputFormatters, // Alteração aqui
}) : inputFormatters = inputFormatters ?? [FormatText()];
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@@ -39,9 +43,8 @@ class InputText extends StatelessWidget {
keyboardType: textInputType, keyboardType: textInputType,
maxLines: maxLines, maxLines: maxLines,
onChanged: onChanged, onChanged: onChanged,
inputFormatters: [ maxLength: maxLength,
FormatText() inputFormatters: inputFormatters,
],
obscureText: this.obscure, obscureText: this.obscure,
controller: this.controller, controller: this.controller,
style: TextStyle( style: TextStyle(

View File

@@ -1,6 +1,8 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:rkm/widgets/title_input.dart'; import 'package:rkm/widgets/title_input.dart';
import '../config/color_palette.dart'; import '../config/color_palette.dart';
import '../controllers/format_txt.dart';
import 'error_default.dart'; import 'error_default.dart';
import 'input_text.dart'; import 'input_text.dart';
@@ -20,6 +22,8 @@ class InputWithSubtitle extends StatelessWidget {
int maxLines; int maxLines;
Color colorBorder; Color colorBorder;
String typeInput; String typeInput;
int maxLength;
List<TextInputFormatter> inputFormatters;
InputWithSubtitle({ InputWithSubtitle({
required this.subtitle, required this.subtitle,
@@ -36,8 +40,10 @@ class InputWithSubtitle extends StatelessWidget {
this.maxLines = 1, this.maxLines = 1,
this.colorBorder = ColorPalette.white, this.colorBorder = ColorPalette.white,
required this.onChanged, required this.onChanged,
this.widthError = 0.7 this.widthError = 0.7,
}); this.maxLength = 200,
List<TextInputFormatter>? inputFormatters, // Alteração aqui
}) : inputFormatters = inputFormatters ?? [FormatText()];
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@@ -57,6 +63,8 @@ class InputWithSubtitle extends StatelessWidget {
maxLines:maxLines, maxLines:maxLines,
colorBorder: colorBorder, colorBorder: colorBorder,
onChanged: onChanged, onChanged: onChanged,
maxLength: maxLength,
inputFormatters: inputFormatters,
), ),
typeInput=='normal'&&(enabled&&mandatory) && (labelInput=='Nome' && splited.length<=1) ?ErrorDefault(widthDefault: widthError,error: errorInput,):Container(), typeInput=='normal'&&(enabled&&mandatory) && (labelInput=='Nome' && splited.length<=1) ?ErrorDefault(widthDefault: widthError,error: errorInput,):Container(),
typeInput!='normal'&&(enabled&&mandatory)&& errorInput!=''?ErrorDefault(widthDefault: widthError,error: errorInput,):Container(), typeInput!='normal'&&(enabled&&mandatory)&& errorInput!=''?ErrorDefault(widthDefault: widthError,error: errorInput,):Container(),