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

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