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:
Reginaldo
2024-08-27 21:36:28 -03:00
parent 48a5a779bf
commit ce2a1cf4d1
9 changed files with 411 additions and 75 deletions

View File

@@ -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(),
],
));
},
),
),
],
),
),

View File

@@ -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']);
}
}
});

View File

@@ -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,

View File

@@ -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',

View File

@@ -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);

View File

@@ -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,

View File

@@ -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();

View File

@@ -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(

View File

@@ -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'