ajustes na tela de Atendimento Domiliar, nos models e alert dialog

This commit is contained in:
Reginaldo
2023-05-05 17:49:04 -03:00
parent 899cf51fe0
commit 532d186d5b
8 changed files with 507 additions and 147 deletions

View File

@@ -22,45 +22,15 @@ class ConstVariable{
'ESTRANGEIRO',
'NATURALIZADO',
];
List CID = [];
List CIAP = [
'30 - EXAME MÉDICO/AVALIAÇÃO DE SAÚDE - COMPLETO',
'31 - EXAME MÉDICO/AVALIAÇÃO DE SAÚDE - PARCIAL',
'32 - TESTE DE SENSIBILIDADE',
'33 - EXAME MICROBIOLÓGICO/IMUNOLÓGICO',
];
List<String> listConduct = [
'ALTA ADMINISTRATIVA',
'ALTA CLÍNICA',
'END. AD1',
'ENC. INTERNAÇÃO HOSPITALAR',
'ENC. URGÊNCIA E EMERGÊNCIA',
'ÓBITO',
'PERMANÊNCIA',
];
List proceduresModel = [
'ACOMPANHAMENTO DE PACIENTE EM REABILITAÇÃO',
'ENEMA',
'ANTIBIOTICOTERAPIA PARENTERAL',
'OXIGENOTERAPIA',
'ATEND./ACOMP.PACIENTE EM REABILITAÇÃO DO DES...',
'RETIRADA DE PONTOS DE CIRURGIAS BÁSICAS',
'ATEND. FISIOTERAPÊUTICO PACIENTE C/ TRANST. RES...',
'SONDAGEM GÁSTRICA',
'ATENDIMENTO MÉDICO COM FINALIDADE DE ATESTAR...',
'TERAPIA DE REIDRATAÇÃO ORAL',
'ATENDIMENTO/ACOMPANHMENTO DE REABILITAÇÃO',
'TERAPIA DE REIDRATAÇÃO PARENTAL',
'CATETERISMO VESICAL DE ALÍVIO',
'TERAPIA FONOAUDIOLÓGICA INDIVIDUAL',
'CATETERISMO VESICAL DE DEMORA',
'TRATAMENTO DE TRAUMATISMOS DE LOCALIZAÇÃO E...',
'COLETA DE MATERIAL PARA EXAME LABORATORIAL',
'TRATAMENTO EM REABILITAÇÃO',
'CUIDADOS COM ESTOMAS',
'CUIDADOS COM TRAQUEOSTOMIA',
List<DropDownDataModel> listConduct = [
DropDownDataModel(cod: 3, title: 'ALTA ADMINISTRATIVA'),
DropDownDataModel(cod: 1, title: 'ALTA CLÍNICA'),
DropDownDataModel(cod: 2, title: 'END. AD1'),
DropDownDataModel(cod: 5, title: 'ENC. INTERNAÇÃO HOSPITALAR'),
DropDownDataModel(cod: 4, title: 'ENC. URGÊNCIA E EMERGÊNCIA'),
DropDownDataModel(cod: 9, title: 'ÓBITO'),
DropDownDataModel(cod: 7, title: 'PERMANÊNCIA'),
];
List serviceIndividualCheckBoxList =[
@@ -123,25 +93,61 @@ class ConstVariable{
'PARACENTESE',
'MEDICAÇÃO PARENTERAL',
];
List<String> listServicePlace = [
'UBS',
'UNIDADE MÓVEL',
'RUA',
'DOMICÍLIO',
'ESCOLA/CRECHE',
'OUTROS',
'POLO',
'INSTITUIÇÃO/ABRIGO',
'UNIDADE PRISIONAL OU CONGÊNERES',
'UNIDADE SOCIOEDUCATIVA',
'HOSPITAL',
'UNIDADE DE PRONTO ATENDIMENTO',
'CACON/UNACON',
List serviceHomeCheckProclist = [
'ACOMPANHAMENTO DE PACIENTE EM REABILITAÇÃO',
'ENEMA',
'ANTIBIOTICOTERAPIA PARENTERAL',
'OXIGENOTERAPIA',
'ATEND./ ACOMP. PACIENTE EM REABILITAÇÃO DO DESENVOLVIMENTO NEUROPSICOMOTOR',
'RETIRADA DE PONTOS DE CIRURGIAS BÁSICAS',
'ATEND. FISIOTERAPÊUTICO PACIENTE C/ TRANST. RESP S/ COMPLICAÇÕES SISTÊMICAS',
'SONDAGEM GÁSTRICA',
'ATENDIMENTO MÉDICO COM FINALIDADE DE ATESTAR ÓBITO',
'TERAPIA DE REIDRATAÇÃO ORAL',
'ATENDIMENTO/ACOMPANHAMENTO EM REABILITAÇÃO NAS MÚLTIPLS DEFICIÊNCIAS',
'TERAPIA DE REIDRATAÇÃO PARENTAL',
'ADAPTAÇÃO AO USO DE ÓRTESE / PRÓTESE',
'REABILITAÇÃO DOMICILIAR',
'CATETERISMO VESICAL DE ALÍVIO',
'TERAPIA FONOAUDIOLÓGICA INDIVIDUAL',
'CATETERISMO VESICAL DE DEMORA',
'TRATAMENTO DE TRAUMATISMOS DE LOCALIZAÇÃO ESPECIF/NÃO ESPECIFICADA',
'COLETA DE MATERIAL PARA EXAME LABORATORIAL',
'TRATAMENTO EM REABILITAÇÃO',
'CUIDADOS COM ESTOMAS',
'CUIDADOS COM TRAQUEOSTOMIA'
];
List<String> typeService = [
'ATENDIMENTO PROGRAMADO',
'ATENDIMENTO NÃO PROGRAMADO',
'VISITA DOMICILIAR PÓS ÓBITO',
List<DropDownDataModel> listServicePlace = [
DropDownDataModel(cod: 1,title: 'UBS'),
DropDownDataModel(cod: 2,title: 'UNIDADE MÓVEL'),
DropDownDataModel(cod: 3,title: 'RUA'),
DropDownDataModel(cod: 4,title: 'DOMICÍLIO'),
DropDownDataModel(cod: 5,title: 'ESCOLA/CRECHE'),
DropDownDataModel(cod: 6,title: 'OUTROS'),
DropDownDataModel(cod: 7,title: 'POLO'),
DropDownDataModel(cod: 8,title: 'INSTITUIÇÃO/ABRIGO'),
DropDownDataModel(cod: 9,title: 'UNIDADE PRISIONAL OU CONGÊNERES'),
DropDownDataModel(cod: 10,title: 'UNIDADE SOCIOEDUCATIVA'),
DropDownDataModel(cod: 11,title: 'HOSPITAL'),
DropDownDataModel(cod: 12,title: 'UNIDADE DE PRONTO ATENDIMENTO'),
DropDownDataModel(cod: 13,title: 'CACON/UNACON'),
];
List<DropDownDataModel> typeService = [
DropDownDataModel(cod: 7,title: 'ATENDIMENTO PROGRAMADO'),
DropDownDataModel(cod: 8,title: 'ATENDIMENTO NÃO PROGRAMADO'),
DropDownDataModel(cod: 9,title: 'VISITA DOMICILIAR PÓS ÓBITO'),
];
List<DropDownDataModel> typeModelService = [
DropDownDataModel(cod: 1,title: 'AD1'),
DropDownDataModel(cod: 2,title: 'AD2'),
DropDownDataModel(cod: 3,title: 'AD3'),
];
List<DropDownDataModel> typeTurnService = [
DropDownDataModel(cod: 1,title: 'MANHÃ'),
DropDownDataModel(cod: 2,title: 'TARDE'),
DropDownDataModel(cod: 3,title: 'NOITE'),
];
List<String> typeService2 = [
'CONSULTA AGENDADA PROGRAMADA/CUIDADO CONTINUADO',

View File

@@ -0,0 +1,10 @@
class DropDownDataStringModel{
String cod;
String title;
DropDownDataStringModel({
required this.cod,
required this.title
});
}

View File

@@ -3,9 +3,16 @@ import 'package:intl/intl.dart';
import 'package:line_icons/line_icons.dart';
import 'package:rkm/models/check_model.dart';
import 'package:rkm/config/color_palette.dart';
import 'package:rkm/models/drop_down_data_model.dart';
import 'package:rkm/service/db/db_sqlite_Sigtap.dart';
import 'package:rkm/widgets/alert_dialog_default.dart';
import 'package:rkm/widgets/appbar_default.dart';
import '../../config/const_variable.dart';
import '../../models/drop_down_data_string_model.dart';
import '../../service/api/api_data_import_sigtap.dart';
import '../../service/db/db_querys.dart';
import '../../service/db/db_sqlite_load.dart';
import '../../service/shared_preferences/shared_preferences_service.dart';
import '../../widgets/button_default.dart';
import '../../widgets/check_box_subtitle.dart';
import '../../widgets/dropdown_with_subtitle.dart';
@@ -23,22 +30,55 @@ class ServiceHomeScreen extends StatefulWidget {
class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
var professionalController = TextEditingController(text: 'ADMINISTRADOR');
var unitController = TextEditingController(text: 'USF PINHAL - EMILIA STEPHANI SIMIONATO');
var NOME_PROFISSIONAL = TextEditingController();
var CNES_UNIDADE = TextEditingController();
var controllerSearchCondition = TextEditingController();
var controllerSearchCID = TextEditingController();
String date='Data';
String date='';
String dateDB='';
String idUsuario='';
String idUnidade='';
int ID_PROFISSIONAL=0;
int LOCAL_ATENDIMENTO_COD=0;
int TIPO_ATENDIMENTO_COD=0;
int MODALIDADE_COD=0;
int TURNO_COD=0;
int CIAP_COD=0;
int CONDUTA_COD=0;
String CID_COD='';
String? selectCBO;
String? selectCodTeam;
String? selectServicePlace;
String? selectTypeService;
String? selectModality;
String? selectRotation;
String? selectCIAP;
String? selectCID;
String? selectConduct;
String? CIAP;
String? CID;
String? CBO_RESP_CADASTRO;
String? INE_RESP_CADASTRO;
String? LOCAL_ATENDIMENTO;
String? TIPO_ATENDIMENTO;
String? MODALIDADE;
String? TURNO;
String? CONDUTA;
String? nameCityApi;
String? mode;
String? urlAPI;
List<CheckModel> serviceHomeModel = [];
List<CheckModel> proceduresModel = [];
List<CheckModel> serviceProcModel = [];
List <String>listCBO = [];
List <String>listServicePlace = [];
List <String>typeService = [];
List <String>typeModelService = [];
List <String>typeTurnService = [];
List <String>listINEPROF = [];
List<DropDownDataModel> listCIAP = [];
List<DropDownDataStringModel> listCID = [];
List<String> PROCEDIMENTOS_SIGTAP = [];
List<String> ATENDS_DOM_PROC = [];
List<String> listConduct = [];
List listProc = [];
bool CNS_VALIDO = false;
escolherprazoInicio(BuildContext context) async {
var pickDate = await showDatePicker(
@@ -48,8 +88,8 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
lastDate: DateTime(2025));
if (pickDate != null) {
setState(() {
dateDB = '${pickDate.year}-${pickDate.month<10?'0':''}${pickDate.month}-${pickDate.day<10?'0':''}${pickDate.day}';
date = formatData(year: pickDate.year, month: pickDate.month, day: pickDate.day);
date = 'Data $date';
});
}
}
@@ -60,6 +100,98 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
return formattedDate;
}
loadLists() {
for (int i = 0; ConstVariable().listServicePlace.length > i; i++) {
listServicePlace.add(ConstVariable().listServicePlace[i].title);
}
for (int i = 0; ConstVariable().typeService.length > i; i++) {
typeService.add(ConstVariable().typeService[i].title);
}
for (int i = 0; ConstVariable().typeModelService.length > i; i++) {
typeModelService.add(ConstVariable().typeModelService[i].title);
}
for (int i = 0; ConstVariable().typeTurnService.length > i; i++) {
typeTurnService.add(ConstVariable().typeTurnService[i].title);
}
for (int i = 0; ConstVariable().listConduct.length > i; i++) {
listConduct.add(ConstVariable().listConduct[i].title);
}
}
getUser()async{
final PrefService _prefService = PrefService();
_prefService.readCacheIdUsuario('idUsuario').then((value){
if(value != null){
idUsuario = value;
loadData();
}
});
_prefService.readCacheUnidade('idUnidade').then((value){
if(value!=null){
idUnidade = value[0];
CNES_UNIDADE.text = value[1];
}
});
await DbSqliteLoad().intialDB().then((db)async{
List list = await db.query('ARGS');
urlAPI = list[0]['URLAPI'];
mode = list[0]['MODE'];
nameCityApi = list[0]['NAME_CITY_API'];
}).then((value)async{
await ApiDataImportSigtap().loadSIGTAP(urlAPI, mode, nameCityApi).then((value)async{
await DbSqliteSigtap().saveProceduresSigtapDB(value).then((db)async{
List list = await db.query('PROCEDIMENTOS_SIGTAP');
for(int i = 0; list.length>i;i++){
if(list[i]['COD_PROC_SIGTAP']!=null && list[i]['DESC_PROC_SIGTAP']!=null){
PROCEDIMENTOS_SIGTAP.add(list[i]['COD_PROC_SIGTAP']+' - ' + list[i]['DESC_PROC_SIGTAP']);
}
}
setState(() {});
});
});
});
await DBQuerys().buscaCIAP().then((list){
listCIAP.add(DropDownDataModel(cod: int.parse(list['CODIGO_CIAP']), title: list['DESC_CIAP']));
});
await DBQuerys().buscaCID().then((list){
listCID.add(DropDownDataStringModel(cod: list['CODIGO_CID'], title: list['DESCRICAO_CID']));
});
}
loadData()async{
await DBQuerys().buscaProfissionalCadInd(idUsuario).then((list){
ID_PROFISSIONAL = list['ID_PROFISSIONAL'];
NOME_PROFISSIONAL.text = list['NOME_PROFISSIONAL'];
String CNS_PROFISSIONAL = list['CNS_PROFISSIONAL'];
if(CNS_PROFISSIONAL == 999999999999999 || CNS_PROFISSIONAL == '999999999999999'){
CNS_VALIDO = true;
}
setState(() {});
});
await DBQuerys().buscaCBOProfissional(idUsuario).then((list){
if(list.length!=0){
for(int i = 0; list.length>i;i++){
listCBO.add(list[i]['CODIGO_CBO'].toString());
}
}
CBO_RESP_CADASTRO = list.length == 0?null:list[0]['CODIGO_CBO'].toString();
setState(() {});
});
List list = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario);
for(int i=0; list.length > i;i++){
INE_RESP_CADASTRO = 'INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']}';
listINEPROF.add('INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']}');
}
setState(() {});
}
@override
void initState() {
super.initState();
getUser();
loadLists();
}
@override
Widget build(BuildContext context) {
@@ -93,7 +225,7 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
mainAxisSize: MainAxisSize.min,
children: [
InputWithSubtitle(
controller: professionalController,
controller: NOME_PROFISSIONAL,
subtitle: 'Profissional',
errorInput: 'Campo Obrigatório',
labelInput: 'Profissional',
@@ -104,7 +236,7 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
onChanged: (v)=>setState((){}),
),
InputWithSubtitle(
controller: unitController,
controller: CNES_UNIDADE,
subtitle: 'Unidade',
errorInput: 'Campo Obrigatório',
labelInput: 'Unidade',
@@ -115,7 +247,7 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
onChanged: (v)=>setState((){}),
),
DropdownWithSubtitle(
list: [],
list: listCBO,
widthSubtitle: width*0.7,
subtitle: 'CBO',
hintDropdown: 'CBO',
@@ -130,20 +262,29 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
colorBorder: ColorPalette.white,
),
DropdownWithSubtitle(
list: ['INE: 0001558536 / Área 4 - Microárea: - '],
widthSubtitle: width*0.2,
list: listINEPROF,
widthSubtitle: width*0.3,
subtitle: 'Código da Equipe',
hintDropdown: 'Selecione',
select: selectCodTeam,
select: INE_RESP_CADASTRO,
widthDropdown: width*0.7,
widthContainerDropdown: width*0.4,
widthContainerDropdown: width*0.5,
onChanged: (value){
setState(() {
selectCodTeam = value!;
INE_RESP_CADASTRO = value!;
});
},
colorBorder: ColorPalette.white,
),
Container(
width: width*0.7,
child: TextDefault(
textAlign: TextAlign.start,
text: 'Data',
color: ColorPalette.black54,
fontSize: 12,
),
),
GestureDetector(
onTap: ()=>escolherprazoInicio(context),
child: Container(
@@ -159,64 +300,84 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
width: width*0.7,
child: TextDefault(
text: date,
color: ColorPalette.black54,
fontSize: 18,
color: Colors.black,
fontSize: 15,
),
),
),
DropdownWithSubtitle(
list: ConstVariable().listServicePlace,
list: listServicePlace,
widthSubtitle: width*0.2,
subtitle: 'Local de Atendimento',
hintDropdown: 'Local de Atendimento',
select: selectServicePlace,
select: LOCAL_ATENDIMENTO,
widthDropdown: width*0.7,
widthContainerDropdown: width*0.6,
onChanged: (value)=>setState(()=>selectServicePlace = value!),
onChanged: (value){
LOCAL_ATENDIMENTO = value;
for(int i = 0;ConstVariable().listServicePlace.length >i;i++){
if(ConstVariable().listServicePlace[i].title == LOCAL_ATENDIMENTO){
LOCAL_ATENDIMENTO_COD = ConstVariable().listServicePlace[i].cod;
}
}
setState(() {});
},
colorBorder: ColorPalette.white,
),
DropdownWithSubtitle(
list: ConstVariable().typeService,
list: typeService,
widthSubtitle: width*0.2,
subtitle: 'Tipo de Atendimento',
hintDropdown: 'Tipo de Atendimento',
select: selectTypeService,
select: TIPO_ATENDIMENTO,
widthDropdown: width*0.7,
widthContainerDropdown: width*0.6,
onChanged: (value){
setState(() {
selectTypeService = value!;
});
TIPO_ATENDIMENTO = value;
for(int i = 0;ConstVariable().typeService.length >i;i++){
if(ConstVariable().typeService[i].title == TIPO_ATENDIMENTO){
TIPO_ATENDIMENTO_COD = ConstVariable().typeService[i].cod;
}
}
setState(() {});
},
colorBorder: ColorPalette.white,
),
DropdownWithSubtitle(
list: ['AD1','AD2','AD3'],
list: typeModelService,
widthSubtitle: width*0.2,
subtitle: 'Modalidade',
hintDropdown: 'Modalidade',
select: selectModality,
select: MODALIDADE,
widthDropdown: width*0.7,
widthContainerDropdown: width*0.6,
onChanged: (value){
setState(() {
selectModality = value!;
});
MODALIDADE = value;
for(int i = 0;ConstVariable().typeModelService.length >i;i++){
if(ConstVariable().typeModelService[i].title == MODALIDADE){
MODALIDADE_COD = ConstVariable().typeModelService[i].cod;
}
}
setState(() {});
},
colorBorder: ColorPalette.white,
),
DropdownWithSubtitle(
list: ['MANHÃ','TARDE','NOITE'],
list: typeTurnService,
widthSubtitle: width*0.2,
subtitle: 'Turno',
hintDropdown: 'Turno',
select: selectRotation,
select: TURNO,
widthDropdown: width*0.7,
widthContainerDropdown: width*0.6,
onChanged: (value){
setState(() {
selectRotation = value!;
});
TURNO = value;
for(int i = 0;ConstVariable().typeTurnService.length >i;i++){
if(ConstVariable().typeTurnService[i].title == TURNO){
TURNO_COD = ConstVariable().typeTurnService[i].cod;
}
}
setState(() {});
},
colorBorder: ColorPalette.white,
),
@@ -274,15 +435,16 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
context,
controllerSearchCondition,
ListView.separated(
itemCount: ConstVariable().CIAP.length,
itemCount: listCIAP.length,
separatorBuilder: (context,index)=>Divider(color: ColorPalette.black54),
itemBuilder: (context,index){
return ListTile(
onTap: ()=>setState(() {
selectCIAP = ConstVariable().CIAP[index];
CIAP_COD = listCIAP[index].cod;
CIAP = listCIAP[index].cod.toString() +' - '+ listCIAP[index].title;
Navigator.pop(context);
}),
title: TextDefault(text: ConstVariable().CIAP[index],maxLines: 2,)
title: TextDefault(text: listCIAP[index].cod.toString() +' - '+ listCIAP[index].title,maxLines: 2,fontSize: 15,color: Colors.black,)
);
},
)
@@ -291,8 +453,9 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
padding: EdgeInsets.symmetric(vertical: 10),
width: width*0.7,
child: TextDefault(
text: selectCIAP!=null?'CIAP $selectCIAP':'CIAP',
color: ColorPalette.black54,
text: CIAP!=null?'CIAP $CIAP':'CIAP',
color:Colors.black,
fontSize: 15,
)
)
),
@@ -301,15 +464,16 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
context,
controllerSearchCID,
ListView.separated(
itemCount: ConstVariable().CID.length,
itemCount: listCID.length,
separatorBuilder: (context,index)=>Divider(color: ColorPalette.black54),
itemBuilder: (context,index){
return ListTile(
onTap: ()=>setState(() {
selectCID = ConstVariable().CIAP[index];
CID_COD =listCID[index].cod;
CID = listCID[index].cod +' - '+ listCID[index].title;
Navigator.pop(context);
}),
title: TextDefault(text: ConstVariable().CID[index],maxLines: 2,)
title: TextDefault(text: listCID[index].cod +' - '+ listCID[index].title,maxLines: 2,fontSize: 15,color: Colors.black,)
);
},
)
@@ -318,8 +482,9 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
padding: EdgeInsets.symmetric(vertical: 10),
width: width*0.7,
child: TextDefault(
text: selectCID!=null?'CID $selectCIAP':'CID',
color: ColorPalette.black54,
text: CID!=null?'CID $CIAP':'CID',
color:Colors.black,
fontSize: 15,
)
)
),
@@ -347,22 +512,22 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
padding: const EdgeInsets.symmetric(horizontal: 10.0),
child: Container(
width: width*0.7,
height: heigth*1.1,
height: heigth*1.2,
child: ListView.builder(
physics: const NeverScrollableScrollPhysics(),
itemCount: ConstVariable().proceduresModel.length,
itemCount: ConstVariable().serviceHomeCheckProclist.length,
itemBuilder: (context,index){
proceduresModel.add(
serviceProcModel.add(
CheckModel(
subtitle: ConstVariable().proceduresModel[index],
subtitle: ConstVariable().serviceHomeCheckProclist[index],
check: false
)
);
return CheckBoxSubtitle(
subtitle: proceduresModel[index].subtitle,
checkbox:proceduresModel[index].check,
subtitle: serviceProcModel[index].subtitle,
checkbox:serviceProcModel[index].check,
width: width*0.6,
onChanged: (value)=>setState(()=>proceduresModel[index].check=value),
onChanged: (value)=>setState(()=>serviceProcModel[index].check=value),
);
}
),
@@ -392,9 +557,14 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
width: width*0.7,
child: Row(
children: [
TextDefault(text: 'Procedimento'),
TextDefault(text: 'Procedimento',color: Colors.black,),
Spacer(),
IconButton(onPressed: (){}, icon: Icon(Icons.add_circle,color: ColorPalette.blackButton,))
IconButton(
icon: Icon(Icons.add_circle,color: ColorPalette.blackButton),
onPressed: (){
AlertDialogDefault().otherProc(context, 'Outros Procedimentos', 'Adicionar Procedimento', selectCBO, selectCBO, 'add',PROCEDIMENTOS_SIGTAP,listProc);
},
)
],
),
)
@@ -427,14 +597,22 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
Spacer(),
DropdownWithSubtitle(
colorBorder: ColorPalette.white,
list: ConstVariable().listConduct,
list: listConduct,
subtitle: 'SELECIONE',
select: selectConduct,
widthDropdown: width*0.4,
widthContainerDropdown: width*0.35,
widthSubtitle: width*0.35,
select: CONDUTA,
widthDropdown: width*0.39,
widthContainerDropdown: width*0.3,
widthSubtitle: width*0.3,
hintDropdown: 'SELECIONE',
onChanged: (value)=>setState(()=>selectConduct=value),
onChanged: (value){
CONDUTA = value;
for(int i = 0;ConstVariable().listConduct.length >i;i++){
if(ConstVariable().listConduct[i].title == CONDUTA){
CONDUTA_COD = ConstVariable().listConduct[i].cod;
}
}
setState(() {});
},
)
],
),

View File

@@ -5,6 +5,8 @@ import 'package:rkm/widgets/input_text.dart';
import '../../models/check_model.dart';
import '../../config/color_palette.dart';
import '../../config/const_variable.dart';
import '../../models/drop_down_data_model.dart';
import '../../service/db/db_querys.dart';
import '../../widgets/alert_dialog_default.dart';
import '../../widgets/appbar_default.dart';
import '../../widgets/button_default.dart';
@@ -47,6 +49,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
String? selectCBO;
String add='';
List examsList=[];
List <String>listServicePlace=[];
List<CheckModel> serviceConditionModel = [];
List<CheckModel> trackingModel = [];
List<CheckModel> nasfPoloModelList = [];
@@ -54,6 +57,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
List<CheckModel> proceduresModel = [];
List<CheckModel> conductList = [];
List<CheckModel> forwardingList = [];
List<DropDownDataModel> listCIAP = [];
bool switchVaccineUpToDate = false;
bool switchPregnancyPlane = false;
bool switchResquestedTest = false;
@@ -91,6 +95,21 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
return formattedDate;
}
loadLists() async{
for (int i = 0; ConstVariable().listServicePlace.length > i; i++) {
listServicePlace.add(ConstVariable().listServicePlace[i].title);
}
await DBQuerys().buscaCIAP().then((list){
listCIAP.add(DropDownDataModel(cod: int.parse(list['CODIGO_CIAP']), title: list['DESC_CIAP']));
});
}
@override
void initState() {
super.initState();
loadLists();
}
@override
Widget build(BuildContext context) {
@@ -160,7 +179,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
colorBorder: ColorPalette.white,
),
DropdownWithSubtitle(
list: ConstVariable().listServicePlace,
list: listServicePlace,
widthSubtitle: width*0.2,
subtitle: 'Local de Atendimento',
hintDropdown: 'Local de Atendimento',
@@ -193,7 +212,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
Spacer(),
IconButton(
icon: Icon(Icons.people_alt_rounded),
onPressed: ()=>AlertDialogDefault().outherProfessionals(
onPressed: ()=>AlertDialogDefault().otherProfessionals(
context,
'Outros Profissionais',
'Adicionar Profissional',
@@ -518,15 +537,15 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
context,
controllerSearchCondition,
ListView.separated(
itemCount: ConstVariable().CIAP.length,
itemCount: listCIAP.length,
separatorBuilder: (context,index)=>Divider(color: ColorPalette.black54),
itemBuilder: (context,index){
return ListTile(
onTap: ()=>setState(() {
selectCIAP1 = ConstVariable().CIAP[index];
selectCIAP1 = listCIAP[index].title;
Navigator.pop(context);
}),
title: TextDefault(text: ConstVariable().CIAP[index],maxLines: 2,)
title: TextDefault(text: listCIAP[index].title,maxLines: 2,)
);
},
)
@@ -545,15 +564,15 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
context,
controllerSearchCondition,
ListView.separated(
itemCount: ConstVariable().CIAP.length,
itemCount: listCIAP.length,
separatorBuilder: (context,index)=>Divider(color: ColorPalette.black54),
itemBuilder: (context,index){
return ListTile(
onTap: ()=>setState(() {
selectCIAP2 = ConstVariable().CIAP[index];
selectCIAP2 = listCIAP[index].title;
Navigator.pop(context);
}),
title: TextDefault(text: ConstVariable().CIAP[index],maxLines: 2,)
title: TextDefault(text: listCIAP[index].title,maxLines: 2,)
);
},
)
@@ -572,15 +591,15 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
context,
controllerSearchCID,
ListView.separated(
itemCount: ConstVariable().CID.length,
itemCount: listCIAP.length,
separatorBuilder: (context,index)=>Divider(color: ColorPalette.black54),
itemBuilder: (context,index){
return ListTile(
onTap: ()=>setState(() {
selectCID = ConstVariable().CIAP[index];
selectCID = listCIAP[index].title;
Navigator.pop(context);
}),
title: TextDefault(text: ConstVariable().CID[index],maxLines: 2,)
title: TextDefault(text: listCIAP[index].title,maxLines: 2,)
);
},
)
@@ -599,15 +618,15 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
context,
controllerSearchCID,
ListView.separated(
itemCount: ConstVariable().CID.length,
itemCount: listCIAP.length,
separatorBuilder: (context,index)=>Divider(color: ColorPalette.black54),
itemBuilder: (context,index){
return ListTile(
onTap: ()=>setState(() {
selectCID = ConstVariable().CIAP[index];
selectCID = listCIAP[index].title;
Navigator.pop(context);
}),
title: TextDefault(text: ConstVariable().CID[index],maxLines: 2,)
title: TextDefault(text: listCIAP[index].title,maxLines: 2,)
);
},
)
@@ -642,7 +661,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
Spacer(),
IconButton(
icon: Icon(Icons.add_circle),
onPressed: ()=>AlertDialogDefault().outherExams(
onPressed: ()=>AlertDialogDefault().otherExams(
context,
'Outros Exames',
'Adicionar Exames',

View File

@@ -19,6 +19,27 @@ class DBQuerys{
// List list = await db.rawQuery("SELECT * FROM CIDADAOS WHERE CPF = $teste");
return list;
}
Future buscaCIAP()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT * FROM CIAPS";
List list = await db.rawQuery(query);
// print(list);
return list[0];
}
Future buscaCID()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT * FROM CIDS";
List list = await db.rawQuery(query);
// print(list);
return list[0];
}
Future buscaAtendDomProc()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT * FROM ATENDS_DOM_SIGTAP";
List list = await db.rawQuery(query);
print(list);
return list[0];
}
buscaDadosProfissional(String idUnidade, String idUsuario)async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT * FROM EQUIPES JOIN PROFISSIONAIS_EQUIPE ON PROFISSIONAIS_EQUIPE.ID_EQUIPE = EQUIPES.ID_EQUIPE WHERE ID_UNIDADE = $idUnidade AND ID_PROFISSIONAL = $idUsuario";

View File

@@ -22,13 +22,13 @@ class DbSqliteSigtap{
// {"codProcedimento":"0701020580","nome":"MANUTEN\u00c7\u00c3O DE OPM ORTOP\u00c9DICA","codGrupo":"07","qtdeMax":2,"idadeMin":833,"idadeMax":833,"sexo":"N"}
for(int i=0;value.length > i;i++){
Map<String, dynamic> row = {
'COD_PROC_SIGTAP' : value[i]['codProcedimento'],
'DESC_PROC_SIGTAP' : value[i]['nome'],
'GRUPO_PROC_SIGTAP' : value[i]['codGrupo'],
'QTDE_MAXIMA' : value[i]['qtdeMax'],
'IDADE_MIN' : value[i]['idadeMin'],
'IDADE_MAX' : value[i]['idadeMax'],
'SEXO' : value[i]['sexo'],
'COD_PROC_SIGTAP' : value['codProcedimento'],
'DESC_PROC_SIGTAP' : value['nome'],
'GRUPO_PROC_SIGTAP' : value['codGrupo'],
'QTDE_MAXIMA' : value['qtdeMax'],
'IDADE_MIN' : value['idadeMin'],
'IDADE_MAX' : value['idadeMax'],
'SEXO' : value['sexo'],
};
int id = await db.insert('PROCEDIMENTOS_SIGTAP', row);
}

View File

@@ -138,7 +138,7 @@ class AlertDialogDefault {
);
}
outherProfessionals(
otherProfessionals(
BuildContext context,String title,String subtitle,String? selectProfessionals,String? selectCBO,String add
) {
@@ -254,7 +254,7 @@ class AlertDialogDefault {
);
}
outherExams(
otherExams(
BuildContext context,
String title,String subtitle,
String? selectProfessionals,
@@ -404,4 +404,130 @@ class AlertDialogDefault {
}
);
}
otherProc(
BuildContext context,
String title,
String subtitle,
String? selectProfessionals,
String? selectCBO,
String add,
List list,
List listProc,
) {
double width = MediaQuery.of(context).size.width;
double height = MediaQuery.of(context).size.height;
return showDialog(
context: context,
builder: (context){
return StatefulBuilder(
builder:(context,setState)=> AlertDialog(
titlePadding: EdgeInsets.all(0),
contentPadding: EdgeInsets.all(0),
title: Container(
padding: EdgeInsets.all(10),
color: ColorPalette.blackButton,
child: TextDefault(
text: title,
color: ColorPalette.white,
textAlign: TextAlign.center,
fontWeigth: FontWeight.bold,
),
),
content: Container(
decoration: ConstVariable().backgroundGradient,
child: Column(
children: [
Card(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
TitleContainers(title: subtitle),
DropDownButtonDefault(
onChanged: (value)=>setState((){
selectProfessionals=value;
}),
select: selectProfessionals,
title: 'Procedimento',
list: list,
width: width
),
ButtonDefault(
onPressed:(){
listProc.add(selectProfessionals);
setState((){});
},
title: 'Adicionar',
width: width*0.8,
textColor: ColorPalette.white,
borderColor:ColorPalette.appBar,
background: ColorPalette.appBar,
disableColor: ColorPalette.buttonDisable,
)
],
),
),
Card(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
TitleContainers(title: 'Procedimentos'),
list.length!=0
?Container(
width: width*0.8,
height: height*0.4,
child: ListView.builder(
itemCount: listProc.length,
itemBuilder: (context,index) {
return Container(
width: width * 0.8,
padding: EdgeInsets.all(10),
child: Row(
children: [
Container(
width: width * 0.65,
child: TextDefault(
fontSize: 15,
text: listProc[index],
color: ColorPalette.black54,)
),
Spacer(),
IconButton(
icon: Icon(Icons.delete),
onPressed: () =>
setState(() {
listProc.removeAt(index);
}),
)
],
),
);
}
),
)
:Container()
],
),
)
],
),
),
actionsAlignment: MainAxisAlignment.start,
actions: [
ButtonDefault(
onPressed: ()=>Navigator.pop(context),
title: 'Fechar',
width: width*0.2,
textColor: ColorPalette.black54,
borderColor: ColorPalette.white,
background: ColorPalette.white,
)
],
),
);
}
);
}
}

View File

@@ -15,7 +15,7 @@ class CheckBoxSubtitle extends StatelessWidget {
required this.checkbox,
required this.subtitle,
required this.onChanged,
this.fontSize = 15
this.fontSize = 14
});
@override