diff --git a/lib/models/service_home_check_condition_model.dart b/lib/models/service_home_check_condition_model.dart new file mode 100644 index 0000000..c5b5ff8 --- /dev/null +++ b/lib/models/service_home_check_condition_model.dart @@ -0,0 +1,10 @@ +class ServiceHomeCheckConditionModel{ + String subtitle; + bool check; + + ServiceHomeCheckConditionModel({ + required this.subtitle, + required this.check + }); +} + diff --git a/lib/screens/home_screen.dart b/lib/screens/home_screen.dart index d3fd5a0..4294575 100644 --- a/lib/screens/home_screen.dart +++ b/lib/screens/home_screen.dart @@ -4,7 +4,7 @@ import 'package:rkm/widgets/icon_button_default.dart'; import 'package:rkm/widgets/input_search_text.dart'; import '../widgets/appbar_default.dart'; import '../widgets/item_citizen.dart'; -import 'main_register_citizen_screen.dart'; +import 'registers_citizen/main_register_citizen_screen.dart'; class HomeScreen extends StatefulWidget { const HomeScreen({Key? key}) : super(key: key); diff --git a/lib/screens/main_register_citizen_screen.dart b/lib/screens/registers_citizen/main_register_citizen_screen.dart similarity index 90% rename from lib/screens/main_register_citizen_screen.dart rename to lib/screens/registers_citizen/main_register_citizen_screen.dart index 0e27abd..5baeaeb 100644 --- a/lib/screens/main_register_citizen_screen.dart +++ b/lib/screens/registers_citizen/main_register_citizen_screen.dart @@ -1,11 +1,11 @@ import 'package:flutter/material.dart'; -import 'package:rkm/screens/register_citizen_screen.dart'; +import 'package:rkm/screens/registers_citizen/register_citizen_screen.dart'; import 'package:rkm/screens/register_home_screen.dart'; -import 'package:rkm/screens/register_individual_screen.dart'; +import 'package:rkm/screens/registers_citizen/register_individual_screen.dart'; import 'package:rkm/utils/color_palette.dart'; import 'package:rkm/widgets/text_default.dart'; -import '../widgets/alert_dialog_settings.dart'; -import '../widgets/icon_button_default.dart'; +import '../../widgets/alert_dialog_settings.dart'; +import '../../widgets/icon_button_default.dart'; class MainRegisterCitizenScreen extends StatefulWidget { int screens; diff --git a/lib/screens/register_citizen_screen.dart b/lib/screens/registers_citizen/register_citizen_screen.dart similarity index 99% rename from lib/screens/register_citizen_screen.dart rename to lib/screens/registers_citizen/register_citizen_screen.dart index 8143940..ea30513 100644 --- a/lib/screens/register_citizen_screen.dart +++ b/lib/screens/registers_citizen/register_citizen_screen.dart @@ -5,11 +5,11 @@ import 'package:rkm/utils/const_variable.dart'; import 'package:rkm/widgets/alert_dialog_default.dart'; import 'package:rkm/widgets/button_default.dart'; import 'package:rkm/widgets/title_containers.dart'; -import '../widgets/dropdown_with_subtitle.dart'; -import '../widgets/input_with_subtitle.dart'; -import '../widgets/onbackbutton.dart'; -import '../widgets/switch_with_subtitle.dart'; -import '../widgets/text_default.dart'; +import '../../widgets/dropdown_with_subtitle.dart'; +import '../../widgets/input_with_subtitle.dart'; +import '../../widgets/onbackbutton.dart'; +import '../../widgets/switch_with_subtitle.dart'; +import '../../widgets/text_default.dart'; class RegisterCitizenScreen extends StatefulWidget { const RegisterCitizenScreen({Key? key}) : super(key: key); diff --git a/lib/screens/register_individual_screen.dart b/lib/screens/registers_citizen/register_individual_screen.dart similarity index 99% rename from lib/screens/register_individual_screen.dart rename to lib/screens/registers_citizen/register_individual_screen.dart index 13780f5..885838f 100644 --- a/lib/screens/register_individual_screen.dart +++ b/lib/screens/registers_citizen/register_individual_screen.dart @@ -6,12 +6,12 @@ import 'package:rkm/utils/const_variable.dart'; import 'package:rkm/widgets/alert_dialog_default.dart'; import 'package:rkm/widgets/button_default.dart'; import 'package:rkm/widgets/title_containers.dart'; -import '../widgets/check_box_two_subtitle.dart'; -import '../widgets/dropdown_with_subtitle.dart'; -import '../widgets/input_with_subtitle.dart'; -import '../widgets/onbackbutton.dart'; -import '../widgets/switch_with_subtitle.dart'; -import '../widgets/text_default.dart'; +import '../../widgets/check_box_two_subtitle.dart'; +import '../../widgets/dropdown_with_subtitle.dart'; +import '../../widgets/input_with_subtitle.dart'; +import '../../widgets/onbackbutton.dart'; +import '../../widgets/switch_with_subtitle.dart'; +import '../../widgets/text_default.dart'; class RegisterIndividualScreen extends StatefulWidget { const RegisterIndividualScreen({Key? key}) : super(key: key); diff --git a/lib/screens/select_service/complementary_sheet_screen.dart b/lib/screens/select_service/complementary_sheet_screen.dart new file mode 100644 index 0000000..4ad4c53 --- /dev/null +++ b/lib/screens/select_service/complementary_sheet_screen.dart @@ -0,0 +1,15 @@ +import 'package:flutter/material.dart'; + +class ComplementarySheetScreen extends StatefulWidget { + const ComplementarySheetScreen({Key? key}) : super(key: key); + + @override + State createState() => _ComplementarySheetScreenState(); +} + +class _ComplementarySheetScreenState extends State { + @override + Widget build(BuildContext context) { + return Center(child: Text('Ficha Complementar'),); + } +} diff --git a/lib/screens/select_service/consumption_markers_screen.dart b/lib/screens/select_service/consumption_markers_screen.dart new file mode 100644 index 0000000..54e093f --- /dev/null +++ b/lib/screens/select_service/consumption_markers_screen.dart @@ -0,0 +1,15 @@ +import 'package:flutter/material.dart'; + +class ConsumptionMarkersScreen extends StatefulWidget { + const ConsumptionMarkersScreen({Key? key}) : super(key: key); + + @override + State createState() => _ConsumptionMarkersScreenState(); +} + +class _ConsumptionMarkersScreenState extends State { + @override + Widget build(BuildContext context) { + return Center(child: Text('Marcadores de Consumo'),); + } +} diff --git a/lib/screens/select_service/eligibility_assessment_screen.dart b/lib/screens/select_service/eligibility_assessment_screen.dart new file mode 100644 index 0000000..fea52c2 --- /dev/null +++ b/lib/screens/select_service/eligibility_assessment_screen.dart @@ -0,0 +1,15 @@ +import 'package:flutter/material.dart'; + +class EligibilityAssessmentScreen extends StatefulWidget { + const EligibilityAssessmentScreen({Key? key}) : super(key: key); + + @override + State createState() => _EligibilityAssessmentScreenState(); +} + +class _EligibilityAssessmentScreenState extends State { + @override + Widget build(BuildContext context) { + return Center(child: Text('Avaliação de Elegibilidade'),); + } +} diff --git a/lib/screens/select_service/home_visit_screen.dart b/lib/screens/select_service/home_visit_screen.dart new file mode 100644 index 0000000..9216796 --- /dev/null +++ b/lib/screens/select_service/home_visit_screen.dart @@ -0,0 +1,15 @@ +import 'package:flutter/material.dart'; + +class HomeVisitScreen extends StatefulWidget { + const HomeVisitScreen({Key? key}) : super(key: key); + + @override + State createState() => _HomeVisitScreenState(); +} + +class _HomeVisitScreenState extends State { + @override + Widget build(BuildContext context) { + return Center(child: Text('Visita Domiciliar'),); + } +} diff --git a/lib/screens/select_service/procedures_screen.dart b/lib/screens/select_service/procedures_screen.dart new file mode 100644 index 0000000..7fbc0d9 --- /dev/null +++ b/lib/screens/select_service/procedures_screen.dart @@ -0,0 +1,15 @@ +import 'package:flutter/material.dart'; + +class ProceduresScreen extends StatefulWidget { + const ProceduresScreen({Key? key}) : super(key: key); + + @override + State createState() => _ProceduresScreenState(); +} + +class _ProceduresScreenState extends State { + @override + Widget build(BuildContext context) { + return Center(child: Text('Procedimentos'),); + } +} diff --git a/lib/screens/select_service/service_dental_screen.dart b/lib/screens/select_service/service_dental_screen.dart new file mode 100644 index 0000000..d948a56 --- /dev/null +++ b/lib/screens/select_service/service_dental_screen.dart @@ -0,0 +1,15 @@ +import 'package:flutter/material.dart'; + +class ServiceDentalScreen extends StatefulWidget { + const ServiceDentalScreen({Key? key}) : super(key: key); + + @override + State createState() => _ServiceDentalScreenState(); +} + +class _ServiceDentalScreenState extends State { + @override + Widget build(BuildContext context) { + return Center(child: Text('Atendimento Odontológico'),); + } +} diff --git a/lib/screens/select_service/service_home_screen.dart b/lib/screens/select_service/service_home_screen.dart new file mode 100644 index 0000000..10dcc53 --- /dev/null +++ b/lib/screens/select_service/service_home_screen.dart @@ -0,0 +1,479 @@ +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:line_icons/line_icons.dart'; +import 'package:rkm/models/service_home_check_condition_model.dart'; +import 'package:rkm/utils/color_palette.dart'; +import 'package:rkm/widgets/alert_dialog_default.dart'; +import 'package:rkm/widgets/appbar_default.dart'; +import '../../utils/const_variable.dart'; +import '../../widgets/button_default.dart'; +import '../../widgets/check_box_subtitle.dart'; +import '../../widgets/dropdown_with_subtitle.dart'; +import '../../widgets/input_with_subtitle.dart'; +import '../../widgets/onbackbutton.dart'; +import '../../widgets/switch_with_subtitle.dart'; +import '../../widgets/text_default.dart'; +import '../../widgets/title_containers.dart'; + +class ServiceHomeScreen extends StatefulWidget { + const ServiceHomeScreen({Key? key}) : super(key: key); + + @override + State createState() => _ServiceHomeScreenState(); +} + +class _ServiceHomeScreenState extends State { + + var professionalController = TextEditingController(text: 'ADMINISTRADOR'); + var unitController = TextEditingController(text: 'USF PINHAL - EMILIA STEPHANI SIMIONATO'); + var controllerSearchCondition = TextEditingController(); + var controllerSearchCID = TextEditingController(); + String date='Data'; + String? selectCBO; + String? selectCodTeam; + String? selectServicePlace; + String? selectTypeService; + String? selectModality; + String? selectRotation; + String? selectCIAP; + String? selectCID; + String? selectConduct; + List serviceHomeModel = []; + List proceduresModel = []; + + escolherprazoInicio(BuildContext context) async { + var pickDate = await showDatePicker( + context: context, + initialDate: DateTime.now(), + firstDate: DateTime(2022), + lastDate: DateTime(2025)); + if (pickDate != null) { + setState(() { + date = formatData(year: pickDate.year, month: pickDate.month, day: pickDate.day); + date = 'Data $date'; + }); + } + } + + String formatData({int? year, int? month, int? day}) { + DateTime data = DateTime(year!, month!, day!); + String formattedDate = DateFormat('dd/MM/yyyy').format(data); + return formattedDate; + } + + @override + Widget build(BuildContext context) { + + double heigth = MediaQuery.of(context).size.height; + double width = MediaQuery.of(context).size.width; + + return WillPopScope( + onWillPop: ()=> OnBackButton().onBackButton(context), + child: Scaffold( + appBar: AppBarDefault().appbar(context, 'RKM AB - Atendimento Domiciliar'), + body: Container( + height: double.infinity, + width: double.infinity, + decoration: ConstVariable().backgroundGradient, + child: ListView( + children: [ + Card( + margin: EdgeInsets.all(10), + child: Column( + children: [ + TitleContainers(title: 'Cadastro'), + Row( + children: [ + Container( + height: heigth*0.5, + width: width*0.2, + child: Icon(Icons.business_center,size: 80,), + ), + Column( + mainAxisAlignment: MainAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + InputWithSubtitle( + controller: professionalController, + subtitle: 'Profissional', + errorInput: 'Campo Obrigatório', + labelInput: 'Profissional', + widthInput: width*0.7, + widthSubtitle: width*0.7, + hintInput: 'Escreva aqui', + enable: false, + ), + InputWithSubtitle( + controller: unitController, + subtitle: 'Unidade', + errorInput: 'Campo Obrigatório', + labelInput: 'Unidade', + widthInput: width*0.7, + widthSubtitle: width*0.7, + hintInput: 'Escreva aqui', + enable: false, + ), + DropdownWithSubtitle( + list: [], + widthSubtitle: width*0.7, + subtitle: 'CBO', + hintDropdown: 'CBO', + select: selectCBO, + widthDropdown: width*0.7, + widthContainerDropdown: width*0.6, + onChanged: (value){ + setState(() { + selectCBO = value!; + }); + }, + colorBorder: ColorPalette.white, + ), + DropdownWithSubtitle( + list: ['INE: 0001558536 / Área 4 - Microárea: - '], + widthSubtitle: width*0.2, + subtitle: 'Código da Equipe', + hintDropdown: 'Selecione', + select: selectCodTeam, + widthDropdown: width*0.7, + widthContainerDropdown: width*0.4, + onChanged: (value){ + setState(() { + selectCodTeam = value!; + }); + }, + colorBorder: ColorPalette.white, + ), + GestureDetector( + onTap: ()=>escolherprazoInicio(context), + child: Container( + height: 50, + margin: EdgeInsets.symmetric(horizontal: 10), + padding: EdgeInsets.symmetric(horizontal: 8,vertical: 10), + decoration: BoxDecoration( + border: Border.all(color: ColorPalette.white), + borderRadius: BorderRadius.all( + Radius.circular(5.0) // <--- border radius here + ), + ), + width: width*0.7, + child: TextDefault( + text: date, + color: ColorPalette.black54, + fontSize: 18, + ), + ), + ), + DropdownWithSubtitle( + list: ConstVariable().listServicePlace, + widthSubtitle: width*0.2, + subtitle: 'Local de Atendimento', + hintDropdown: 'Local de Atendimento', + select: selectServicePlace, + widthDropdown: width*0.7, + widthContainerDropdown: width*0.6, + onChanged: (value)=>setState(()=>selectServicePlace = value!), + colorBorder: ColorPalette.white, + ), + DropdownWithSubtitle( + list: ConstVariable().typeService, + widthSubtitle: width*0.2, + subtitle: 'Tipo de Atendimento', + hintDropdown: 'Tipo de Atendimento', + select: selectTypeService, + widthDropdown: width*0.7, + widthContainerDropdown: width*0.6, + onChanged: (value){ + setState(() { + selectTypeService = value!; + }); + }, + colorBorder: ColorPalette.white, + ), + DropdownWithSubtitle( + list: ['AD1','AD2','AD3'], + widthSubtitle: width*0.2, + subtitle: 'Modalidade', + hintDropdown: 'Modalidade', + select: selectModality, + widthDropdown: width*0.7, + widthContainerDropdown: width*0.6, + onChanged: (value){ + setState(() { + selectModality = value!; + }); + }, + colorBorder: ColorPalette.white, + ), + DropdownWithSubtitle( + list: ['MANHÃ','TARDE','NOITE'], + widthSubtitle: width*0.2, + subtitle: 'Turno', + hintDropdown: 'Turno', + select: selectRotation, + widthDropdown: width*0.7, + widthContainerDropdown: width*0.6, + onChanged: (value){ + setState(() { + selectRotation = value!; + }); + }, + colorBorder: ColorPalette.white, + ), + ], + ) + ], + ) + ], + ), + ), + Card( + margin: EdgeInsets.all(10), + child: Column( + children: [ + TitleContainers(title: 'Condições Avaliadas'), + Row( + children: [ + Container( + height: heigth*0.4, + width: width*0.2, + child: Icon(LineIcons.edit,size: 80,), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 10.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + SizedBox(height: 10,), + TitleContainers(title: 'Condição Avaliada',width: width * 0.73), + Container( + width: width*0.7, + height: heigth*1.3, + child: ListView.builder( + physics: const NeverScrollableScrollPhysics(), + itemCount: ConstVariable().serviceHomeCheckConditionlist.length, + itemBuilder: (context,index){ + serviceHomeModel.add( + ServiceHomeCheckConditionModel( + subtitle: ConstVariable().serviceHomeCheckConditionlist[index], + check: false + ) + ); + return CheckBoxSubtitle( + subtitle: serviceHomeModel[index].subtitle, + checkbox:serviceHomeModel[index].check, + width: width*0.6, + onChanged: (value)=>setState(()=>serviceHomeModel[index].check=value), + ); + } + ), + ), + GestureDetector( + onTap: ()=>AlertDialogDefault().alert_with_search( + context, + controllerSearchCondition, + ListView.separated( + itemCount: ConstVariable().CIAP.length, + separatorBuilder: (context,index)=>Divider(color: ColorPalette.black54), + itemBuilder: (context,index){ + return ListTile( + onTap: ()=>setState(() { + selectCIAP = ConstVariable().CIAP[index]; + Navigator.pop(context); + }), + title: TextDefault(text: ConstVariable().CIAP[index],maxLines: 2,) + ); + }, + ) + ), + child: Container( + padding: EdgeInsets.symmetric(vertical: 10), + width: width*0.7, + child: TextDefault( + text: selectCIAP!=null?'CIAP $selectCIAP':'CIAP', + color: ColorPalette.black54, + ) + ) + ), + GestureDetector( + onTap: ()=>AlertDialogDefault().alert_with_search( + context, + controllerSearchCID, + ListView.separated( + itemCount: ConstVariable().CID.length, + separatorBuilder: (context,index)=>Divider(color: ColorPalette.black54), + itemBuilder: (context,index){ + return ListTile( + onTap: ()=>setState(() { + selectCID = ConstVariable().CIAP[index]; + Navigator.pop(context); + }), + title: TextDefault(text: ConstVariable().CID[index],maxLines: 2,) + ); + }, + ) + ), + child: Container( + padding: EdgeInsets.symmetric(vertical: 10), + width: width*0.7, + child: TextDefault( + text: selectCID!=null?'CID $selectCIAP':'CID', + color: ColorPalette.black54, + ) + ) + ), + ], + ), + ), + ] + ), + ], + ), + ), + Card( + margin: EdgeInsets.all(10), + child: Column( + children: [ + TitleContainers(title: 'Procedimentos'), + Row( + children: [ + Container( + height: heigth*0.4, + width: width*0.2, + child: Icon(Icons.info_outlined,size: 80,), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 10.0), + child: Container( + width: width*0.7, + height: heigth*1.1, + child: ListView.builder( + physics: const NeverScrollableScrollPhysics(), + itemCount: ConstVariable().proceduresModel.length, + itemBuilder: (context,index){ + proceduresModel.add( + ServiceHomeCheckConditionModel( + subtitle: ConstVariable().proceduresModel[index], + check: false + ) + ); + return CheckBoxSubtitle( + subtitle: proceduresModel[index].subtitle, + checkbox:proceduresModel[index].check, + width: width*0.6, + onChanged: (value)=>setState(()=>proceduresModel[index].check=value), + ); + } + ), + ), + ), + ] + ), + ], + ), + ), + Card( + margin: EdgeInsets.all(10), + child: Column( + children: [ + TitleContainers(title: 'Procedimentos'), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + height: heigth*0.2, + width: width*0.2, + child: Icon(Icons.add,size: 130,), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 10.0), + child: Container( + width: width*0.7, + child: Row( + children: [ + TextDefault(text: 'Procedimento'), + Spacer(), + IconButton(onPressed: (){}, icon: Icon(Icons.add_circle,color: ColorPalette.blackButton,)) + ], + ), + ) + ) + ] + ) + ] + ) + ), + Card( + margin: EdgeInsets.all(10), + child: Column( + children: [ + TitleContainers(title: 'Outros'), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + height: heigth*0.2, + width: width*0.2, + child: Icon(Icons.tag,size: 130,), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 5.0), + child: Container( + width: width*0.7, + child: Row( + children: [ + TextDefault(text: 'Conduta / Desfecho',fontSize: 15), + Spacer(), + DropdownWithSubtitle( + colorBorder: ColorPalette.white, + list: ConstVariable().listConduct, + subtitle: 'SELECIONE', + select: selectConduct, + widthDropdown: width*0.4, + widthContainerDropdown: width*0.35, + widthSubtitle: width*0.35, + hintDropdown: 'SELECIONE', + onChanged: (value)=>setState(()=>selectConduct=value), + ) + ], + ), + ) + ) + ] + ) + ] + ) + ), + Card( + margin: EdgeInsets.all(10), + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Column( + children: [ + ButtonDefault( + onPressed: (){}, + title: 'Salvar', + borderColor: ColorPalette.appBar, + background: ColorPalette.appBar, + textColor: ColorPalette.white, + width: double.infinity, + ), + ButtonDefault( + onPressed: ()=>Navigator.pop(context), + title: 'Cancelar', + borderColor: ColorPalette.blackButton, + background: ColorPalette.blackButton, + textColor: ColorPalette.white, + width: double.infinity, + ) + ], + ), + ), + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/screens/select_service/service_individual_screen.dart b/lib/screens/select_service/service_individual_screen.dart new file mode 100644 index 0000000..e2dbcbf --- /dev/null +++ b/lib/screens/select_service/service_individual_screen.dart @@ -0,0 +1,15 @@ +import 'package:flutter/material.dart'; + +class ServiceIndividualScreen extends StatefulWidget { + const ServiceIndividualScreen({Key? key}) : super(key: key); + + @override + State createState() => _ServiceIndividualScreenState(); +} + +class _ServiceIndividualScreenState extends State { + @override + Widget build(BuildContext context) { + return Center(child: Text('Atendimento Individual'),); + } +} diff --git a/lib/utils/const_variable.dart b/lib/utils/const_variable.dart index ecd342d..eef44dc 100644 --- a/lib/utils/const_variable.dart +++ b/lib/utils/const_variable.dart @@ -16,6 +16,93 @@ 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 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 serviceHomeCheckConditionlist = [ + 'ACAMADO', + 'DOMICILIADO', + 'ÚLCERAS / FERIDAS (GRAU III OU IV)', + 'ACOMPANHAMENTO NUTRICIONAL', + 'USO DE SONDA NASO-GRÁSTRICA - SNG', + 'USO DE SONDA NASO-ENTERAL - SNE', + 'USO DE GASTRONOMIA', + 'USO DE COLOSTOMIA', + 'USO DE CISTOSTOMIA', + 'USO DE SONDA VESICAL DE DEMORA - SVD', + 'ACOMPANHAMENTO PRÉ-OPERATÓRIO', + 'ACOMPANHAMENTO PÓS-OPERATÓRIO', + 'ADAPTAÇÃO AO USO DE ÓRTESE / PRÓTESE', + 'REABILITAÇÃO DOMICILIAR', + 'CUIDADOS PALIATIVOS ONCOLÓGICO', + 'CUIDADOS PALIATIVOS NÃO-ONCOLÓGICO', + 'OXIGENOTERAPIA DOMICILIAR', + 'USO DE TRAQUEOSTOMIA', + 'USO DE ASPIRADOR DE VIAS AÉRIAS PARA HIGIENE BUCAL', + 'SUPORTE VENTILATÓRIO NÃO INVASICO - CPAP', + 'SUPORTE VENTILATÓRIO NÃO INVASICO - BIPAP', + 'DIÁLISE PERITONIAL', + 'PARACENTESE', + 'MEDICAÇÃO PARENTERAL', + ]; + List 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 typeService = [ + 'ATENDIMENTO PROGRAMADO', + 'ATENDIMENTO NÃO PROGRAMADO', + 'VISITA DOMICILIAR PÓS ÓBITO', + ]; List listBreed = [ 'AMARELA', 'BRANCA', diff --git a/lib/utils/routes.dart b/lib/utils/routes.dart index 3eaf293..f01465c 100644 --- a/lib/utils/routes.dart +++ b/lib/utils/routes.dart @@ -2,13 +2,20 @@ import 'package:rkm/screens/about_screen.dart'; import 'package:rkm/screens/attendance_list_screen.dart'; import 'package:rkm/screens/home_screen.dart'; import 'package:rkm/screens/login_screen.dart'; +import 'package:rkm/screens/select_service/eligibility_assessment_screen.dart'; import 'package:rkm/screens/splash_screen.dart'; import '../screens/clear_data_screen.dart'; import '../screens/edit_procedures_screen.dart'; import '../screens/import_sigtap_screen.dart'; import '../screens/main_procedures_screen.dart'; -import '../screens/main_register_citizen_screen.dart'; -import '../screens/register_citizen_screen.dart'; +import '../screens/registers_citizen/register_citizen_screen.dart'; +import '../screens/select_service/complementary_sheet_screen.dart'; +import '../screens/select_service/consumption_markers_screen.dart'; +import '../screens/select_service/home_visit_screen.dart'; +import '../screens/select_service/procedures_screen.dart'; +import '../screens/select_service/service_dental_screen.dart'; +import '../screens/select_service/service_home_screen.dart'; +import '../screens/select_service/service_individual_screen.dart'; import '../screens/sinc_data_screen.dart'; var routes = { @@ -23,4 +30,12 @@ var routes = { '/import_sigtap': (context) => ImportSigtapScreen(), '/edit_procedure': (context) => EditProceduresScreen(), '/splash': (context) => SplashScreen(), + '/service_home': (context) => ServiceHomeScreen(), + '/service_individual': (context) => ServiceIndividualScreen(), + '/service_dental': (context) => ServiceDentalScreen(), + '/eligibility_assessment': (context) => EligibilityAssessmentScreen(), + '/complementary_sheet': (context) => ComplementarySheetScreen(), + '/consumption_markers': (context) => ConsumptionMarkersScreen(), + '/procedures': (context) => ProceduresScreen(), + '/home_visit': (context) => HomeVisitScreen(), }; \ No newline at end of file diff --git a/lib/widgets/alert_dialog_default.dart b/lib/widgets/alert_dialog_default.dart index 4194c0c..4aa7fdb 100644 --- a/lib/widgets/alert_dialog_default.dart +++ b/lib/widgets/alert_dialog_default.dart @@ -75,4 +75,66 @@ class AlertDialogDefault { } ); } + + alertSelect(BuildContext context) { + + List list = [ + 'Atendimento Domiciliar', + 'Atendimento Individual', + 'Atendimento Odontológico', + 'Avaliação de Elegibilidade', + 'Ficha Complementar', + 'Marcadores de Consumo', + 'Procedimentos', + 'Visita domiciliar', + ]; + + List routes = [ + '/service_home', + '/service_individual', + '/service_dental', + '/eligibility_assessment', + '/complementary_sheet', + '/consumption_markers', + '/procedures', + '/home_visit', + ]; + double width = MediaQuery.of(context).size.width; + double height = MediaQuery.of(context).size.height; + + return showDialog( + context: context, + builder: (context){ + return AlertDialog( + title: TextDefault( + text: 'Seleção de Atendimento', + color: ColorPalette.black54, + textAlign: TextAlign.center, + fontWeigth: FontWeight.bold, + ), + content: Container( + width: width*0.8, + height: height*0.5, + child: ListView.builder( + itemCount: list.length, + itemBuilder: (context,index){ + + int rest = index % 2; + + return ListTile( + onTap: ()=>Navigator.pushNamed(context, routes[index]), + tileColor: rest==0?ColorPalette.white:ColorPalette.appBar, + title: TextDefault( + textAlign: TextAlign.center, + text: list[index], + color: rest==0?ColorPalette.black54:ColorPalette.white, + ), + ); + } + ), + ), + ); + } + ); + } } diff --git a/lib/widgets/check_box_subtitle.dart b/lib/widgets/check_box_subtitle.dart new file mode 100644 index 0000000..1bb14dd --- /dev/null +++ b/lib/widgets/check_box_subtitle.dart @@ -0,0 +1,38 @@ +import 'package:flutter/material.dart'; +import 'package:rkm/utils/color_palette.dart'; +import 'package:rkm/widgets/text_default.dart'; + +class CheckBoxSubtitle extends StatelessWidget { + + double width; + String subtitle; + bool checkbox; + var onChanged; + + CheckBoxSubtitle({ + this.width = double.infinity, + required this.checkbox, + required this.subtitle, + required this.onChanged, +}); + + @override + Widget build(BuildContext context) { + + return Container( + width: width, + child: Row( + children: [ + Checkbox( + value: checkbox, + onChanged: onChanged + ), + Container( + width: width, + child: TextDefault(text: subtitle,fontSize: 15,color: ColorPalette.black54,) + ), + ], + ), + ); + } +} diff --git a/lib/widgets/item_citizen.dart b/lib/widgets/item_citizen.dart index 3db6912..8bd337c 100644 --- a/lib/widgets/item_citizen.dart +++ b/lib/widgets/item_citizen.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:rkm/utils/color_palette.dart'; import 'package:rkm/utils/const_variable.dart'; +import 'package:rkm/widgets/alert_dialog_default.dart'; import 'package:rkm/widgets/text_default.dart'; class ItemCitizen extends StatelessWidget { @@ -31,7 +32,10 @@ class ItemCitizen extends StatelessWidget { child: ListTile( title: TextDefault(text: name,fontWeigth: FontWeight.bold), subtitle: TextDefault(text: '$numberCNS - $numberMedicalRecord - $date - $mother',fontSize: 16), - trailing: Icon(Icons.assignment_outlined), + trailing: IconButton( + icon: Icon(Icons.assignment_outlined), + onPressed: ()=>AlertDialogDefault().alertSelect(context), + ), onTap: onTap, ), ),