versão 1.0.13+14 state do salvar alterações de cadastro do cidadaos, e edicao do atendimento_domiciliar_tela.dart
This commit is contained in:
@@ -1,8 +1,11 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:rkm/config/color_palette.dart';
|
||||
import 'package:rkm/config/const_variable.dart';
|
||||
import 'package:rkm/screens/registers_citizen/register_citizen_screen.dart';
|
||||
import 'package:rkm/screens/select_service/atendimento_domiciliar_tela.dart';
|
||||
import 'package:rkm/widgets/text_default.dart';
|
||||
import 'package:sqflite/sqflite.dart';
|
||||
import '../service/db/db_querys.dart';
|
||||
import '../service/db/db_sqlite_load.dart';
|
||||
import '../widgets/appbar_default.dart';
|
||||
|
||||
@@ -17,23 +20,26 @@ class AttendanceListScreen extends StatefulWidget {
|
||||
|
||||
class _AttendanceListScreenState extends State<AttendanceListScreen> {
|
||||
|
||||
List visitHome = [];
|
||||
List citizenUpdate = [];
|
||||
List serviceHome = [];
|
||||
List atendimentoDomiciliarLista = [];
|
||||
List visitaDomiciliarLista = [];
|
||||
List cadastroCidadaoLista = [];
|
||||
List cadastrosIndividuais = [];
|
||||
|
||||
getData()async{
|
||||
Database db = await DbSqliteLoad().intialDB();
|
||||
visitHome = await db.query('VISITAS_DOMICILIARES');
|
||||
citizenUpdate = await db.query('CIDADAOS WHERE SINCRONIZADO = "N"');
|
||||
// visitHome = await db.query('VISITAS_DOMICILIARES');
|
||||
visitaDomiciliarLista =await db.rawQuery('''
|
||||
SELECT VD.*, C.*
|
||||
FROM VISITAS_DOMICILIARES VD
|
||||
INNER JOIN CIDADAOS C ON VD.ID_CIDADAO = C.ID_CIDADAO
|
||||
''');
|
||||
cadastroCidadaoLista = await db.query('CIDADAOS WHERE SINCRONIZADO = "N"');
|
||||
cadastrosIndividuais = await db.query('CADASTROS_INDIVIDUAIS WHERE SINCRONIZADO = "N"');
|
||||
serviceHome =await db.query('ATENDIMENTOS_DOMICILIARES');
|
||||
// print(await db.query('ATENDIMENTOS_DOMICILIARES'));
|
||||
// print(await db.query('CADASTROS_INDIVIDUAIS WHERE SINCRONIZADO = "N"'));
|
||||
// print(await db.query('VISITAS_DOMICILIARES_PROC'));
|
||||
// print(await db.query('CIDADAOS WHERE SINCRONIZADO = "N"'));
|
||||
// print(citizenUpdate.length);
|
||||
// List list = await db.rawQuery('SELECT * FROM CIDADAOS WHERE CNS = $CNS');
|
||||
atendimentoDomiciliarLista =await db.rawQuery('''
|
||||
SELECT AD.*, C.*
|
||||
FROM ATENDIMENTOS_DOMICILIARES AD
|
||||
INNER JOIN CIDADAOS C ON AD.ID_CIDADAO = C.ID_CIDADAO
|
||||
''');
|
||||
setState(() {});
|
||||
}
|
||||
|
||||
@@ -59,44 +65,237 @@ class _AttendanceListScreenState extends State<AttendanceListScreen> {
|
||||
child: Column(
|
||||
children: [
|
||||
TextDefault(
|
||||
text: 'Atendimentos Domiciliares: ${serviceHome.length} | Visitas Domiciliares: ${visitHome.length}',
|
||||
text: 'Atendimentos Domiciliares: ${atendimentoDomiciliarLista.length} | Visitas Domiciliares: ${visitaDomiciliarLista.length}',
|
||||
fontWeigth: FontWeight.bold,
|
||||
color: ColorPalette.black54,
|
||||
fontSize: 18,
|
||||
),
|
||||
// TextDefault(
|
||||
// text: 'Atendimentos Odontológicos: 0 | Avaliação Elegibilidade: 0',
|
||||
// fontWeigth: FontWeight.bold,
|
||||
// color: ColorPalette.black54,
|
||||
// fontSize: 18,
|
||||
// ),
|
||||
TextDefault(
|
||||
text: 'Cadastros Cidadãos Realizados / Atualizados : ${citizenUpdate.length + cadastrosIndividuais.length}',
|
||||
text: 'Cadastros Cidadãos Realizados / Atualizados : ${cadastroCidadaoLista.length + cadastrosIndividuais.length}',
|
||||
fontWeigth: FontWeight.bold,
|
||||
color: ColorPalette.black54,
|
||||
fontSize: 18,
|
||||
),
|
||||
// TextDefault(
|
||||
// text: 'Fichas Complementares: 0 | Marcadores de Consumo : 0',
|
||||
// fontWeigth: FontWeight.bold,
|
||||
// color: ColorPalette.black54,
|
||||
// fontSize: 18,
|
||||
// ),
|
||||
// TextDefault(
|
||||
// text: 'Procedimentos Consolidados: 0 | Procedimentos Individuais : 0',
|
||||
// fontWeigth: FontWeight.bold,
|
||||
// color: ColorPalette.black54,
|
||||
// fontSize: 18,
|
||||
// ),
|
||||
// TextDefault(
|
||||
// text: 'Visitas Domiciliares: ${visitHome.length}',
|
||||
// fontWeigth: FontWeight.bold,
|
||||
// color: ColorPalette.black54,
|
||||
// fontSize: 18,
|
||||
// ),
|
||||
],
|
||||
)
|
||||
),
|
||||
Container(
|
||||
height: atendimentoDomiciliarLista.length*80,
|
||||
child: ListView.builder(
|
||||
itemCount: atendimentoDomiciliarLista.length,
|
||||
itemBuilder: (context,i){
|
||||
|
||||
List dataList = atendimentoDomiciliarLista[i]['DATA'].toString().split('-');
|
||||
String data = '${dataList[2]}/${dataList[1]}/${dataList[0]}';
|
||||
|
||||
return Card(
|
||||
color: Colors.white,
|
||||
child: Row(
|
||||
children: [
|
||||
Container(
|
||||
height: 70,
|
||||
width: 50,
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0XFF666666),
|
||||
borderRadius: BorderRadius.only(bottomLeft: Radius.circular(10),topLeft: Radius.circular(10))
|
||||
),
|
||||
alignment: Alignment.center,
|
||||
child: TextDefault(text: 'A.D.',color: Colors.white,fontSize: 22,fontWeigth: FontWeight.bold,),
|
||||
),
|
||||
SizedBox(width: 10,),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextDefault(text:atendimentoDomiciliarLista[i]['NOME_CIDADAO'].toString(),color: ColorPalette.black54,fontWeigth: FontWeight.w700,),
|
||||
Row(
|
||||
children: [
|
||||
TextDefault(text:'DATA ATENDIMENTO: $data',color: ColorPalette.black54,fontWeigth: FontWeight.w700,),
|
||||
SizedBox(width: 20,),
|
||||
TextDefault(text:'SINCRONIZADO : ${atendimentoDomiciliarLista[i]['SINCRONIZADO']}',color: ColorPalette.black54,fontWeigth: FontWeight.w700,),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
Spacer(),
|
||||
atendimentoDomiciliarLista[i]['SINCRONIZADO']!='S'?IconButton(
|
||||
icon: Container(
|
||||
padding: EdgeInsets.all(8.0),
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0XFF990000),
|
||||
borderRadius: BorderRadius.circular(50),
|
||||
),
|
||||
child: Icon(Icons.delete, color: Colors.white, size: 40,),
|
||||
),
|
||||
onPressed: (){},
|
||||
):Container(),
|
||||
atendimentoDomiciliarLista[i]['SINCRONIZADO']!='S'?IconButton(
|
||||
icon: Container(
|
||||
padding: EdgeInsets.all(8.0),
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.orangeAccent,
|
||||
borderRadius: BorderRadius.circular(50),
|
||||
),
|
||||
child: Icon(Icons.edit, color: Colors.white, size: 40,),
|
||||
),
|
||||
onPressed: (){
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(builder:(context) => AtendimentoDomiciliarTela(name: atendimentoDomiciliarLista[i]['NOME_CIDADAO'],username: widget.username,dados: atendimentoDomiciliarLista[i],)),
|
||||
);
|
||||
},
|
||||
):Container(),
|
||||
],
|
||||
));
|
||||
},
|
||||
),
|
||||
),
|
||||
Container(
|
||||
height: visitaDomiciliarLista.length*80,
|
||||
child: ListView.builder(
|
||||
itemCount: visitaDomiciliarLista.length,
|
||||
itemBuilder: (context,i){
|
||||
|
||||
//print(visitHome[i]);
|
||||
List dataList = visitaDomiciliarLista[i]['DT_ATENDIMENTO'].toString().split('-');
|
||||
String data = '${dataList[2]}/${dataList[1]}/${dataList[0]}';
|
||||
|
||||
return Card(
|
||||
color: Colors.white,
|
||||
child: Row(
|
||||
children: [
|
||||
Container(
|
||||
height: 70,
|
||||
width: 50,
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0XFF006633),
|
||||
borderRadius: BorderRadius.only(bottomLeft: Radius.circular(10),topLeft: Radius.circular(10))
|
||||
),
|
||||
alignment: Alignment.center,
|
||||
child: TextDefault(text: 'V.D.',color: Colors.white,fontSize: 22,fontWeigth: FontWeight.bold,),
|
||||
),
|
||||
SizedBox(width: 10,),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextDefault(text:visitaDomiciliarLista[i]['NOME_CIDADAO'].toString(),color: ColorPalette.black54,fontWeigth: FontWeight.w700,),
|
||||
Row(
|
||||
children: [
|
||||
TextDefault(text:'DATA ATENDIMENTO: $data',color: ColorPalette.black54,fontWeigth: FontWeight.w700,),
|
||||
SizedBox(width: 20,),
|
||||
TextDefault(text:'SINCRONIZADO : ${visitaDomiciliarLista[i]['SINCRONIZADO']}',color: ColorPalette.black54,fontWeigth: FontWeight.w700,),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
Spacer(),
|
||||
visitaDomiciliarLista[i]['SINCRONIZADO']=='N'?IconButton(
|
||||
icon: Container(
|
||||
padding: EdgeInsets.all(8.0),
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0XFF990000),
|
||||
borderRadius: BorderRadius.circular(50),
|
||||
),
|
||||
child: Icon(Icons.delete, color: Colors.white, size: 40,),
|
||||
),
|
||||
onPressed: (){},
|
||||
):Container(),
|
||||
visitaDomiciliarLista[i]['SINCRONIZADO']=='N'?IconButton(
|
||||
icon: Container(
|
||||
padding: EdgeInsets.all(8.0),
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.orangeAccent,
|
||||
borderRadius: BorderRadius.circular(50),
|
||||
),
|
||||
child: Icon(Icons.edit, color: Colors.white, size: 40,),
|
||||
),
|
||||
onPressed: (){
|
||||
// Navigator.push(
|
||||
// context,
|
||||
// MaterialPageRoute(builder:(context) => AtendimentoDomiciliarTela(name: visitHome[i]['NOME_CIDADAO'],username: widget.username,dados: visitHome[i],)),
|
||||
// );
|
||||
},
|
||||
):Container(),
|
||||
],
|
||||
));
|
||||
},
|
||||
),
|
||||
),
|
||||
Container(
|
||||
height: cadastroCidadaoLista.length*80,
|
||||
child: ListView.builder(
|
||||
itemCount: cadastroCidadaoLista.length,
|
||||
itemBuilder: (context,i){
|
||||
|
||||
List dataList1 = cadastroCidadaoLista[i]['DT_HORA_CADASTRO'].toString().split(' ');
|
||||
List dataList2 = dataList1[0].split('-');
|
||||
String data = '${dataList2[2]}/${dataList2[1]}/${dataList2[0]}';
|
||||
|
||||
return Card(
|
||||
color: Colors.white,
|
||||
child: Row(
|
||||
children: [
|
||||
Container(
|
||||
height: 70,
|
||||
width: 50,
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0XFF990000),
|
||||
borderRadius: BorderRadius.only(bottomLeft: Radius.circular(10),topLeft: Radius.circular(10))
|
||||
),
|
||||
alignment: Alignment.center,
|
||||
child: TextDefault(text: 'C',color: Colors.white,fontSize: 22,fontWeigth: FontWeight.bold,),
|
||||
),
|
||||
SizedBox(width: 10,),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextDefault(text:cadastroCidadaoLista[i]['NOME_CIDADAO'].toString(),color: ColorPalette.black54,fontWeigth: FontWeight.w700,),
|
||||
Row(
|
||||
children: [
|
||||
TextDefault(text:'DATA CADASTRO : $data',color: ColorPalette.black54,fontWeigth: FontWeight.w700,),
|
||||
SizedBox(width: 20,),
|
||||
TextDefault(text:'SINCRONIZADO : ${cadastroCidadaoLista[i]['SINCRONIZADO']}',color: ColorPalette.black54,fontWeigth: FontWeight.w700,),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
Spacer(),
|
||||
cadastroCidadaoLista[i]['ORIGEM']=='C' && cadastroCidadaoLista[i]['SINCRONIZADO']=='N'
|
||||
?IconButton(
|
||||
icon: Container(
|
||||
padding: EdgeInsets.all(8.0),
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0XFF990000),
|
||||
borderRadius: BorderRadius.circular(50),
|
||||
),
|
||||
child: Icon(Icons.delete, color: Colors.white, size: 40,),
|
||||
),
|
||||
onPressed: (){},
|
||||
)
|
||||
:Container(),
|
||||
cadastroCidadaoLista[i]['SINCRONIZADO']=='N'?IconButton(
|
||||
icon: Container(
|
||||
padding: EdgeInsets.all(8.0),
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.orangeAccent,
|
||||
borderRadius: BorderRadius.circular(50),
|
||||
),
|
||||
child: Icon(Icons.edit, color: Colors.white, size: 40,),
|
||||
),
|
||||
onPressed: ()async {
|
||||
await DBQuerys().buscaCidadao(cadastroCidadaoLista[i]['NOME_CIDADAO']).then((list){
|
||||
// print(showResults[index]['CD_USUARIO_SUS']);
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(builder:(context) => RegisterCitizenScreen(listData: list,username: widget.username,)),
|
||||
);
|
||||
});
|
||||
},
|
||||
):Container(),
|
||||
],
|
||||
));
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
||||
@@ -58,6 +58,7 @@ class _HomeScreenState extends State<HomeScreen> {
|
||||
){
|
||||
if(showResults.length<10){
|
||||
showResults.add(dataCitizen[i]);
|
||||
// print(dataCitizen[i]['ORIGEM']);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -68,6 +69,7 @@ class _HomeScreenState extends State<HomeScreen> {
|
||||
if(dataCitizen.isNotEmpty){
|
||||
for(int i = 0;i<10;i++){
|
||||
showResults.add(dataCitizen[i]);
|
||||
// print(dataCitizen[i]['ORIGEM']);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -359,14 +359,20 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
|
||||
checkCNS = 'ok';
|
||||
}
|
||||
if((selectClassification!='OUTRO MUNICIPIO' && selectCountry == 'BRASIL' && selectStreet == null) ||
|
||||
(selectStreet!=null && (cepController.text.isEmpty || cepController.text.length!=10)) ||
|
||||
(selectStreet!=null && numberController.text.isEmpty) ||
|
||||
(selectClassification!='OUTRO MUNICIPIO' && selectStreet!=null && (cepController.text.isEmpty || cepController.text.length!=10)) ||
|
||||
(selectClassification!='OUTRO MUNICIPIO' && selectStreet!=null && numberController.text.isEmpty) ||
|
||||
(selectTypeStreet == null && selectClassification!='OUTRO MUNICIPIO') ||
|
||||
(selectVillage == null && (selectCountry == 'BRASIL' && selectClassification!='OUTRO MUNICIPIO')) ||
|
||||
(cityController.text.isEmpty && selectCountry!='OUTRO') ||
|
||||
selectCountry == null
|
||||
){
|
||||
checkClassification = true;
|
||||
print('selectClassification: $selectClassification');
|
||||
print('selectCountry: $selectCountry');
|
||||
print('selectStreet: $selectStreet');
|
||||
print('cepController: ${cepController.text}');
|
||||
print('selectVillage: $selectVillage');
|
||||
print('cityController: ${cityController.text}');
|
||||
print('erro no end');
|
||||
}
|
||||
|
||||
@@ -380,7 +386,6 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
|
||||
selectClassification==null ||
|
||||
selectCountry==null ||
|
||||
date == 'Data de Nascimento'||
|
||||
date == 'Data de Nascimento'||
|
||||
cityBirthController.text.isEmpty ||
|
||||
mobileDDDController.text.isEmpty ||
|
||||
mobileController.text.isEmpty ||
|
||||
@@ -487,7 +492,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
|
||||
'DT_OBITO' : dateDeathDB,
|
||||
'DECLARACAO_OBITO' : '',
|
||||
'BLOQUEIO' : enableBlocked?1:0,
|
||||
'ORIGEM' : 'A',
|
||||
'ORIGEM' : editing?'A':'C',
|
||||
'DT_HORA_CADASTRO' : DateTime.now().toString(),
|
||||
'SINCRONIZADO' : 'N',
|
||||
};
|
||||
@@ -516,6 +521,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
|
||||
'OK'
|
||||
);
|
||||
setState(() {
|
||||
edit = true;
|
||||
showTab = true;
|
||||
});
|
||||
// print(value);
|
||||
@@ -814,7 +820,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
|
||||
margin: EdgeInsets.all(10),
|
||||
child: Column(
|
||||
children: [
|
||||
TitleContainers(title: 'Indentificação'),
|
||||
TitleContainers(title: 'Identificação'),
|
||||
Row(
|
||||
children: [
|
||||
Container(
|
||||
@@ -1400,7 +1406,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
|
||||
'OUTRO',
|
||||
]
|
||||
),
|
||||
selectCountry==null&& mandatory?ErrorDefault():Container(),
|
||||
selectPaisResidencia==null&& mandatory?ErrorDefault():Container(),
|
||||
GestureDetector(
|
||||
onTap: selectClassification!='OUTRO MUNICIPIO'|| cityController.text == 'MUNICIPIO IGNORADO'?null: (){
|
||||
searchCityController.text = '';
|
||||
@@ -1537,7 +1543,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
|
||||
},
|
||||
list: typeStreetDB
|
||||
),
|
||||
selectTypeStreet!='OUTRO MUNICIPIO' && selectTypeStreet == null && selectCountry == null&& mandatory?ErrorDefault():Container(),
|
||||
selectClassification!='OUTRO MUNICIPIO' && selectTypeStreet == null && selectCountry == null && mandatory?ErrorDefault():Container(),
|
||||
DropdownWithSubtitle(
|
||||
subtitle: 'Nome do Logradouro',
|
||||
select: selectStreet,
|
||||
|
||||
@@ -378,7 +378,7 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
|
||||
'POSSUI_FINANCIAMENTO' : POSSUI_FINANCIAMENTO?'S':'N',
|
||||
'POSSUI_EMPRESTIMO' : POSSUI_EMPRESTIMO?'S':'N',
|
||||
'DT_HORA_CADASTRO' : '${f.format(DateTime.now())}',
|
||||
'ORIGEM' : 'A',
|
||||
'ORIGEM' : TIPO_SALVAR!='new'?'A':'C',
|
||||
'SINCRONIZADO' : 'N',
|
||||
};
|
||||
|
||||
@@ -426,7 +426,7 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
|
||||
'INE_RESP_CADASTRO' : INE_DB,
|
||||
'DT_CADASTRO' : date_cad,
|
||||
'ID_EQUIPE' : ID_EQUIPE,
|
||||
'ORIGEM' : 'A',
|
||||
'ORIGEM' : TIPO_SALVAR!='new'?'A':'C',
|
||||
'SINCRONIZADO' : 'N',
|
||||
'NOME_INSTITUICAO_PERMANENCIA': NOME_INSTITUICAO_PERMANENCIA,
|
||||
'PROFISSIONAIS_VINCULADOS_INST': PROFISSIONAIS_VINCULADOS_INST,
|
||||
@@ -437,6 +437,8 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
|
||||
|
||||
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){
|
||||
edit = false;
|
||||
setState(() {});
|
||||
AlertDialogDefault().alert(
|
||||
context,
|
||||
'Aviso',
|
||||
|
||||
@@ -582,7 +582,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
||||
'INE_RESP_CADASTRO' : INE_DB,
|
||||
'DT_CADASTRO' : date_cad,
|
||||
'ID_EQUIPE' : ID_EQUIPE,
|
||||
'ORIGEM' : 'A',
|
||||
'ORIGEM' : TIPO_SALVAR!='new'?'A':'C',
|
||||
'SINCRONIZADO' : 'N',
|
||||
'DT_ENTRADA_BRASIL' : DT_ENTRADA_BRASIL.text,
|
||||
'DT_NATURALIZACAO' : DT_NATURALIZACAO.text,
|
||||
@@ -605,6 +605,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
||||
'OK'
|
||||
);
|
||||
setState(() {
|
||||
edit = false;
|
||||
showTab = true;
|
||||
});
|
||||
// print(value);
|
||||
|
||||
@@ -29,7 +29,8 @@ import '../home_screen.dart';
|
||||
class AtendimentoDomiciliarTela extends StatefulWidget {
|
||||
String name;
|
||||
String username;
|
||||
AtendimentoDomiciliarTela({required this.name,required this.username});
|
||||
var dados;
|
||||
AtendimentoDomiciliarTela({required this.name,required this.username, required this.dados});
|
||||
|
||||
@override
|
||||
State<AtendimentoDomiciliarTela> createState() => _AtendimentoDomiciliarTelaState();
|
||||
@@ -52,6 +53,7 @@ class _AtendimentoDomiciliarTelaState extends State<AtendimentoDomiciliarTela> {
|
||||
String CD_USUARIO_SUS = '';
|
||||
String INE_PROFISSIONAL = '';
|
||||
|
||||
int ID_ATENDIMENTO_DOMICILIAR = 0;
|
||||
int ID_CIDADAO=0;
|
||||
int ID_PROFISSIONAL=0;
|
||||
int LOCAL_ATENDIMENTO_COD=0;
|
||||
@@ -90,6 +92,8 @@ class _AtendimentoDomiciliarTelaState extends State<AtendimentoDomiciliarTela> {
|
||||
List<String> listConduct = [];
|
||||
List listProc = [];
|
||||
List CBOS_PROFISSIONAL=[];
|
||||
List condicoes = [];
|
||||
List procedimentos = [];
|
||||
|
||||
bool CNS_VALIDO = false;
|
||||
bool mandatory = false;
|
||||
@@ -203,6 +207,9 @@ class _AtendimentoDomiciliarTelaState extends State<AtendimentoDomiciliarTela> {
|
||||
}
|
||||
});
|
||||
}
|
||||
if(widget.dados!=null){
|
||||
editarAtendimento();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -263,6 +270,106 @@ class _AtendimentoDomiciliarTelaState extends State<AtendimentoDomiciliarTela> {
|
||||
}
|
||||
}
|
||||
|
||||
editarAtendimento()async{
|
||||
|
||||
Map map = widget.dados;
|
||||
|
||||
map.forEach((chave,valor){
|
||||
print('$chave: $valor' );
|
||||
});
|
||||
|
||||
ID_ATENDIMENTO_DOMICILIAR = map['ID_ATENDIMENTO_DOMICILIAR'];
|
||||
dateDB = map['DATA'];
|
||||
List splited = dateDB.split('-');
|
||||
date = '${splited[2]}/${splited[1]}/${splited[0]}';
|
||||
LOCAL_ATENDIMENTO_COD = map['LOCAL_ATENDIMENTO'];
|
||||
for(int i = 0;ConstVariable().listServicePlace.length >i;i++){
|
||||
if(ConstVariable().listServicePlace[i].cod == LOCAL_ATENDIMENTO_COD){
|
||||
LOCAL_ATENDIMENTO = ConstVariable().listServicePlace[i].title;
|
||||
}
|
||||
}
|
||||
TIPO_ATENDIMENTO_COD = map['TIPO_ATENDIMENTO'];
|
||||
for(int i = 0;ConstVariable().typeService.length >i;i++){
|
||||
if(ConstVariable().typeService[i].cod == TIPO_ATENDIMENTO_COD){
|
||||
TIPO_ATENDIMENTO = ConstVariable().typeService[i].title;
|
||||
}
|
||||
}
|
||||
CBO_PROFISSIONAL_DB = map['CBO_PROFISSIONAL'];
|
||||
for(int i = 0;listCBO.length > i; i++){
|
||||
String splited = listCBO[i].split(' - ').last;
|
||||
if(splited == CBO_PROFISSIONAL_DB){
|
||||
CBO_PROFISSIONAL = listCBO[i];
|
||||
}
|
||||
}
|
||||
ID_EQUIPE = map['ID_EQUIPE'];
|
||||
List listINE = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario);
|
||||
int AREA_DESCRICAO = 0;
|
||||
int MICROAREA_DESCRICAO = 0;
|
||||
for(int i = 0;listINE.length >i;i++){
|
||||
if(listINE[i]['ID_EQUIPE']==ID_EQUIPE){
|
||||
INE_PROFISSIONAL = listINE[i]['INE']??'';
|
||||
AREA_DESCRICAO = listINE[i]['AREA'];
|
||||
MICROAREA_DESCRICAO = listINE[i]['MICROAREA'];
|
||||
}
|
||||
}
|
||||
for(int i = 0;listINEPROF.length >i;i++){
|
||||
RegExp ineRegExp = RegExp(r"INE:\s(\d+)");
|
||||
RegExp areaRegExp = RegExp(r"Área:\s(\d+)");
|
||||
RegExp microareaRegExp = RegExp(r"Microárea\s:\s(\d+)");
|
||||
|
||||
String ine = ineRegExp.firstMatch(listINEPROF[i])?.group(1) ?? '';
|
||||
String area = areaRegExp.firstMatch(listINEPROF[i])?.group(1) ?? '';
|
||||
String microarea = microareaRegExp.firstMatch(listINEPROF[i])?.group(1) ?? '';
|
||||
|
||||
if(INE_PROFISSIONAL==ine && AREA_DESCRICAO.toString() == area && MICROAREA_DESCRICAO.toString() == microarea){
|
||||
INE_RESP_CADASTRO = listINEPROF[i];
|
||||
}
|
||||
}
|
||||
MODALIDADE_COD = map['MODALIDADE'];
|
||||
for(int i = 0;ConstVariable().typeModelService.length >i;i++){
|
||||
if(ConstVariable().typeModelService[i].cod == MODALIDADE_COD){
|
||||
MODALIDADE = ConstVariable().typeModelService[i].title;
|
||||
}
|
||||
}
|
||||
TURNO_COD = map['TURNO'];
|
||||
for(int i = 0;ConstVariable().typeTurnService.length >i;i++){
|
||||
if(ConstVariable().typeTurnService[i].cod == TURNO_COD){
|
||||
TURNO = ConstVariable().typeTurnService[i].title;
|
||||
}
|
||||
}
|
||||
Database db = await DbSqliteLoad().intialDB();
|
||||
condicoes = await db.query('ATENDS_DOM_COMPL WHERE ID_ATENDIMENTO_DOMICILIAR = $ID_ATENDIMENTO_DOMICILIAR');
|
||||
procedimentos = await db.query('ATENDS_DOM_PROC WHERE ID_ATENDIMENTO_DOMICILIAR = $ID_ATENDIMENTO_DOMICILIAR');
|
||||
// print(condicoes);
|
||||
print(procedimentos);
|
||||
for (int index = 0; index < ConstVariable().serviceHomeCheckConditionlist.length; index++) {
|
||||
bool checkValue = condicoes.any((cond) =>cond['COND_AVAL_ATEND_DOM'] == index + 1);
|
||||
serviceHomeModel.add(
|
||||
CheckModel(
|
||||
subtitle: ConstVariable().serviceHomeCheckConditionlist[index],
|
||||
check: checkValue,
|
||||
),
|
||||
);
|
||||
}
|
||||
for (int index = 0; index < ConstVariable().serviceHomeCheckProclist.length; index++) {
|
||||
bool checkValue = procedimentos.any((cond) =>cond['PROC_ATEND_DOM'] == ConstVariable().serviceHomeCheckProclist[index].COD_SIA);
|
||||
serviceProcModel.add(
|
||||
CheckProcedSiaModel(
|
||||
COD_SIA: ConstVariable().serviceHomeCheckProclist[index].COD_SIA,
|
||||
DESCRICAO_PROCEDIMENTO: ConstVariable().serviceHomeCheckProclist[index].DESCRICAO_PROCEDIMENTO,
|
||||
check: checkValue
|
||||
)
|
||||
);
|
||||
}
|
||||
CONDUTA_COD = map['CONDUTA'];
|
||||
for(int i = 0;ConstVariable().listConduct.length >i;i++){
|
||||
if(ConstVariable().listConduct[i].cod == CONDUTA_COD){
|
||||
CONDUTA = ConstVariable().listConduct[i].title;
|
||||
}
|
||||
}
|
||||
setState(() {});
|
||||
}
|
||||
|
||||
saveServiceHome()async{
|
||||
Map<String, dynamic> row = {
|
||||
'ID_CIDADAO' : ID_CIDADAO,
|
||||
@@ -283,12 +390,23 @@ class _AtendimentoDomiciliarTelaState extends State<AtendimentoDomiciliarTela> {
|
||||
'CONDUTA' : CONDUTA_COD,
|
||||
'SINCRONIZADO' : 'N',
|
||||
};
|
||||
await DbSqliteSync().insertAtendimentoDomiciliar(row).then((value){
|
||||
await DbSqliteSync().insertAtendimentoDomiciliar(row,widget.dados==null,ID_ATENDIMENTO_DOMICILIAR).then((value)async{
|
||||
Database db = await DbSqliteLoad().intialDB();
|
||||
await db.delete(
|
||||
'ATENDS_DOM_COMPL', // Substitua pelo nome da sua tabela
|
||||
where: 'ID_ATENDIMENTO_DOMICILIAR = ?',
|
||||
whereArgs: [ID_ATENDIMENTO_DOMICILIAR],
|
||||
);
|
||||
for(int i = 0;serviceHomeModel.length>i;i++){
|
||||
if(serviceHomeModel[i].check){
|
||||
DbSqliteSync().insertCondicoesAvaliadas(value,i+1);
|
||||
}
|
||||
}
|
||||
await db.delete(
|
||||
'ATENDS_DOM_PROC', // Substitua pelo nome da sua tabela
|
||||
where: 'ID_ATENDIMENTO_DOMICILIAR = ?',
|
||||
whereArgs: [ID_ATENDIMENTO_DOMICILIAR],
|
||||
);
|
||||
for(int i = 0;serviceProcModel.length>i;i++){
|
||||
if(serviceProcModel[i].check){
|
||||
DbSqliteSync().insertProcedimentosDomiciliares(value,serviceProcModel[i].COD_SIA);
|
||||
@@ -309,10 +427,11 @@ class _AtendimentoDomiciliarTelaState extends State<AtendimentoDomiciliarTela> {
|
||||
ID_CIDADAO = list[0]['ID_CIDADAO'];
|
||||
CD_USUARIO_SUS = list[0]['CD_USUARIO_SUS'];
|
||||
});
|
||||
List list = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario);
|
||||
|
||||
INE_PROFISSIONAL = list[0]['INE']??'';
|
||||
ID_EQUIPE = list[0]['ID_EQUIPE']??0;
|
||||
if(widget.dados==null){
|
||||
List list = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario);
|
||||
INE_PROFISSIONAL = list[0]['INE']??'';
|
||||
ID_EQUIPE = list[0]['ID_EQUIPE']??0;
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -547,19 +666,21 @@ class _AtendimentoDomiciliarTelaState extends State<AtendimentoDomiciliarTela> {
|
||||
children: [
|
||||
SizedBox(height: 10,),
|
||||
TitleContainers(title: 'Condição Avaliada',width: width * 0.73),
|
||||
Container(
|
||||
widget.dados!=null && serviceHomeModel.length !=ConstVariable().serviceHomeCheckConditionlist.length?Container():Container(
|
||||
width: width*0.7,
|
||||
height: heigth*0.95,
|
||||
child: ListView.builder(
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemCount: ConstVariable().serviceHomeCheckConditionlist.length,
|
||||
itemBuilder: (context,index){
|
||||
serviceHomeModel.add(
|
||||
CheckModel(
|
||||
subtitle: ConstVariable().serviceHomeCheckConditionlist[index],
|
||||
check: false
|
||||
)
|
||||
);
|
||||
if(widget.dados==null){
|
||||
serviceHomeModel.add(
|
||||
CheckModel(
|
||||
subtitle: ConstVariable().serviceHomeCheckConditionlist[index],
|
||||
check: false
|
||||
)
|
||||
);
|
||||
}
|
||||
return CheckBoxSubtitle(
|
||||
subtitle: serviceHomeModel[index].subtitle,
|
||||
checkbox:serviceHomeModel[index].check,
|
||||
@@ -657,14 +778,14 @@ class _AtendimentoDomiciliarTelaState extends State<AtendimentoDomiciliarTela> {
|
||||
itemCount: ConstVariable().serviceHomeCheckProclist.length,
|
||||
itemBuilder: (context,index){
|
||||
|
||||
serviceProcModel.add(
|
||||
CheckProcedSiaModel(
|
||||
COD_SIA: ConstVariable().serviceHomeCheckProclist[index].COD_SIA,
|
||||
DESCRICAO_PROCEDIMENTO: ConstVariable().serviceHomeCheckProclist[index].DESCRICAO_PROCEDIMENTO,
|
||||
)
|
||||
);
|
||||
|
||||
// print(serviceProcModel[index].subtitle);
|
||||
if(widget.dados==null){
|
||||
serviceProcModel.add(
|
||||
CheckProcedSiaModel(
|
||||
COD_SIA: ConstVariable().serviceHomeCheckProclist[index].COD_SIA,
|
||||
DESCRICAO_PROCEDIMENTO: ConstVariable().serviceHomeCheckProclist[index].DESCRICAO_PROCEDIMENTO,
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
return CheckBoxSubtitle(
|
||||
subtitle: serviceProcModel[index].DESCRICAO_PROCEDIMENTO,
|
||||
|
||||
@@ -511,11 +511,15 @@ class DbSqliteSync{
|
||||
}
|
||||
return db;
|
||||
}
|
||||
Future insertAtendimentoDomiciliar(var value)async{
|
||||
Future insertAtendimentoDomiciliar(var value, bool novo, int ID_ATENDIMENTO_DOMICILIAR)async{
|
||||
Database db = await DbSqliteLoad().intialDB();
|
||||
int id = await db.insert('ATENDIMENTOS_DOMICILIARES', value);
|
||||
// print(await db.query('ATENDIMENTOS_DOMICILIARES'));
|
||||
return id;
|
||||
if(novo){
|
||||
int id = await db.insert('ATENDIMENTOS_DOMICILIARES', value);
|
||||
return id;
|
||||
}else{
|
||||
await db.update('ATENDIMENTOS_DOMICILIARES', value ,where: "ID_ATENDIMENTO_DOMICILIAR = $ID_ATENDIMENTO_DOMICILIAR");
|
||||
return ID_ATENDIMENTO_DOMICILIAR;
|
||||
}
|
||||
}
|
||||
Future insertCondicoesAvaliadas(int ID_ATENDIMENTO_DOMICILIAR,int COND_AVAL_ATEND_DOM)async{
|
||||
Database db = await DbSqliteLoad().intialDB();
|
||||
|
||||
@@ -161,7 +161,7 @@ class AlertDialogDefault {
|
||||
if(index==0){
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(builder:(context) => AtendimentoDomiciliarTela(name: name,username: username,)),
|
||||
MaterialPageRoute(builder:(context) => AtendimentoDomiciliarTela(name: name,username: username,dados: null,)),
|
||||
);
|
||||
}else if(index == 1){
|
||||
Navigator.push(
|
||||
|
||||
@@ -6,9 +6,10 @@ description: RKM AB 2.0.
|
||||
#versão 1.0.10+11 AJUSTES PARA A SINCRONIZAÇÃO DIA 22/08/2024
|
||||
#versão 1.0.11+12 AJUSTES PARA NÃO EXIBIR MICROAREA NULL, E AJUSTE DADOS FORA DE AREA DIA 23/08/2024
|
||||
#versão 1.0.12+13 AJUSTE DE ID E DESCRIÇÃO DE AREA E MICROAREA, AJUSTE DA MENSAGEM DADOS SALVOS DA EDIÇÃO DO PACIENTE. 26/08/2024
|
||||
#versão 1.0.13+14 SETSTATE SALVAR DADOS CIDADAO E EDITAR E EXCLUIR ATENDICMENTO E VISITA. 27/08/2024
|
||||
|
||||
publish_to: 'none'
|
||||
version: 1.0.11+12
|
||||
version: 1.0.13+14
|
||||
|
||||
environment:
|
||||
sdk: '>=3.2.3 <4.0.0'
|
||||
|
||||
Reference in New Issue
Block a user