ajustes na tela de Atendimento Domiliar, nos models e alert dialog
This commit is contained in:
@@ -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',
|
||||
|
||||
10
lib/models/drop_down_data_string_model.dart
Normal file
10
lib/models/drop_down_data_string_model.dart
Normal file
@@ -0,0 +1,10 @@
|
||||
class DropDownDataStringModel{
|
||||
String cod;
|
||||
String title;
|
||||
|
||||
DropDownDataStringModel({
|
||||
required this.cod,
|
||||
required this.title
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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(() {});
|
||||
},
|
||||
)
|
||||
],
|
||||
),
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
)
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ class CheckBoxSubtitle extends StatelessWidget {
|
||||
required this.checkbox,
|
||||
required this.subtitle,
|
||||
required this.onChanged,
|
||||
this.fontSize = 15
|
||||
this.fontSize = 14
|
||||
});
|
||||
|
||||
@override
|
||||
|
||||
Reference in New Issue
Block a user