619 lines
24 KiB
Dart
619 lines
24 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:rkm/config/color_palette.dart';
|
|
import 'package:rkm/config/const_variable.dart';
|
|
import 'package:rkm/screens/select_service/complementary_sheet_screen.dart';
|
|
import 'package:rkm/screens/select_service/consumption_markers_screen.dart';
|
|
import 'package:rkm/screens/select_service/eligibility_assessment_screen.dart';
|
|
import 'package:rkm/screens/select_service/procedures_screen.dart';
|
|
import 'package:rkm/screens/select_service/service_dental_screen.dart';
|
|
import 'package:rkm/screens/select_service/atendimento_domiciliar_tela.dart';
|
|
import 'package:rkm/screens/select_service/service_individual_screen.dart';
|
|
import 'package:rkm/widgets/button_default.dart';
|
|
import 'package:rkm/widgets/dropdown_button_com_pesquisa.dart';
|
|
import 'package:rkm/widgets/switch_with_subtitle.dart';
|
|
import 'package:rkm/widgets/text_default.dart';
|
|
import 'package:rkm/widgets/title_containers.dart';
|
|
import '../screens/select_service/visita_domiciliar_tela.dart';
|
|
import 'dropdown_button_default.dart';
|
|
import 'input_search_text.dart';
|
|
class AlertDialogDefault {
|
|
|
|
@override
|
|
alert_with_search(BuildContext context,controller,Widget list) {
|
|
|
|
double width = MediaQuery.of(context).size.width;
|
|
double height = MediaQuery.of(context).size.height;
|
|
|
|
return showDialog(
|
|
context: context,
|
|
builder: (context){
|
|
return AlertDialog(
|
|
title: InputSearchText(
|
|
controller: controller,
|
|
width: width*0.3,
|
|
hint: 'Buscar...',
|
|
color: ColorPalette.titleContainer,
|
|
border: false,
|
|
),
|
|
content: Container(
|
|
padding: EdgeInsets.symmetric(vertical: 10),
|
|
width: width*0.8,
|
|
child: Container(
|
|
width: width*0.8,
|
|
height: height*0.8,
|
|
padding: EdgeInsets.symmetric(horizontal: 10),
|
|
child: list,
|
|
),
|
|
),
|
|
);
|
|
}
|
|
);
|
|
}
|
|
|
|
alert(BuildContext context,String title,String subtitle,String textButtom) {
|
|
|
|
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: title,
|
|
color: ColorPalette.black54,
|
|
textAlign: TextAlign.center,
|
|
fontWeigth: FontWeight.bold,
|
|
),
|
|
content: TextDefault(
|
|
text: subtitle,
|
|
color: ColorPalette.black54,
|
|
maxLines: 4,
|
|
),
|
|
actions: [
|
|
ButtonDefault(
|
|
onPressed: ()=>Navigator.pop(context),
|
|
title: textButtom,
|
|
width: width*0.85,
|
|
textColor: ColorPalette.white,
|
|
borderColor: ColorPalette.appBar,
|
|
background: ColorPalette.appBar,
|
|
)
|
|
],
|
|
);
|
|
}
|
|
);
|
|
}
|
|
|
|
sucess(BuildContext context,String title,String subtitle,String textButtom, var onPressed) {
|
|
|
|
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: title,
|
|
color: ColorPalette.black54,
|
|
textAlign: TextAlign.center,
|
|
fontWeigth: FontWeight.bold,
|
|
),
|
|
content: TextDefault(
|
|
text: subtitle,
|
|
color: ColorPalette.black54,
|
|
maxLines: 4,
|
|
),
|
|
actions: [
|
|
ButtonDefault(
|
|
onPressed: onPressed,
|
|
title: textButtom,
|
|
width: width*0.85,
|
|
textColor: ColorPalette.white,
|
|
borderColor: ColorPalette.appBar,
|
|
background: ColorPalette.appBar,
|
|
)
|
|
],
|
|
);
|
|
}
|
|
);
|
|
}
|
|
|
|
alertSelect(BuildContext context,String name,String username, var dataPatient) {
|
|
//Cadastro e edição do Cadastro do Cidadão, Cadastro Individual, Cadastro Domiciliar e Visita Domiciliar
|
|
List list = [
|
|
'Atendimento Domiciliar',
|
|
// 'Atendimento Individual',
|
|
// 'Atendimento Odontológico',
|
|
// 'Avaliação de Elegibilidade',
|
|
// 'Ficha Complementar',
|
|
// 'Marcadores de Consumo',
|
|
// 'Procedimentos',
|
|
'Visita Domiciliar',
|
|
];
|
|
|
|
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.pop(context);
|
|
if(index==0){
|
|
Navigator.push(
|
|
context,
|
|
MaterialPageRoute(builder:(context) => AtendimentoDomiciliarTela(name: name,username: username,dados: null,)),
|
|
);
|
|
}else if(index == 1){
|
|
Navigator.push(
|
|
context,
|
|
MaterialPageRoute(builder:(context) => VisitaDomiciliarTela(name: name,username: username,)),
|
|
);
|
|
// Navigator.push(
|
|
// context,
|
|
// MaterialPageRoute(builder:(context) => ServiceIndividualScreen(username: username,dataPatient: dataPatient,)),
|
|
// );
|
|
}else if(index == 2){
|
|
Navigator.push(
|
|
context,
|
|
MaterialPageRoute(builder:(context) => ServiceDentalScreen(username: username,)),
|
|
);
|
|
}else if(index == 3){
|
|
Navigator.push(
|
|
context,
|
|
MaterialPageRoute(builder:(context) => EligibilityAssessmentScreen(username: username,)),
|
|
);
|
|
}else if(index == 4){
|
|
Navigator.push(
|
|
context,
|
|
MaterialPageRoute(builder:(context) => ComplementarySheetScreen(username: username,)),
|
|
);
|
|
}else if(index == 5){
|
|
Navigator.push(
|
|
context,
|
|
MaterialPageRoute(builder:(context) => ConsumptionMarkersScreen(username: username,)),
|
|
);
|
|
}else if(index == 6){
|
|
Navigator.push(
|
|
context,
|
|
MaterialPageRoute(builder:(context) => ProceduresScreen(username: username,)),
|
|
);
|
|
}else if (index==7){
|
|
Navigator.push(
|
|
context,
|
|
MaterialPageRoute(builder:(context) => VisitaDomiciliarTela(name: name,username: username,)),
|
|
);
|
|
}
|
|
},
|
|
tileColor: rest==0?ColorPalette.white:ColorPalette.appBar,
|
|
title: TextDefault(
|
|
textAlign: TextAlign.center,
|
|
text: list[index],
|
|
color: rest==0?ColorPalette.black54:ColorPalette.white,
|
|
),
|
|
);
|
|
}
|
|
),
|
|
),
|
|
);
|
|
}
|
|
);
|
|
}
|
|
|
|
otherProfessionals(
|
|
BuildContext context,String title,String subtitle,String? selectProfessionals,String? selectCBO,String add
|
|
) {
|
|
|
|
double width = MediaQuery.of(context).size.width;
|
|
double height = MediaQuery.of(context).size.height;
|
|
bool addProfissionals = false;
|
|
|
|
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;
|
|
addProfissionals = true;
|
|
}),
|
|
select: selectProfessionals,
|
|
title: 'Profissional',
|
|
list: [
|
|
'ADMINISTRADOR',
|
|
'ALEXANDRE NITTA',
|
|
'ALINE SUELEM LEITE',
|
|
'ARIANE FAVORATO ROSA',
|
|
],
|
|
width: width
|
|
),
|
|
DropDownButtonDefault(
|
|
onChanged: (value)=>setState(()=>selectCBO=value),
|
|
select: selectCBO,
|
|
title: 'CBO',
|
|
list: [],
|
|
width: width
|
|
),
|
|
ButtonDefault(
|
|
onPressed:addProfissionals?()=>setState((){
|
|
add = selectProfessionals!;
|
|
}):null,
|
|
title: 'Adicionar',
|
|
width: width*0.85,
|
|
textColor: ColorPalette.white,
|
|
borderColor:addProfissionals?ColorPalette.appBar:ColorPalette.buttonDisable,
|
|
background: ColorPalette.appBar,
|
|
disableColor: ColorPalette.buttonDisable,
|
|
)
|
|
],
|
|
),
|
|
),
|
|
Card(
|
|
child: Column(
|
|
mainAxisSize: MainAxisSize.min,
|
|
children: [
|
|
TitleContainers(title: 'Profissionais'),
|
|
add!=''
|
|
?Container(
|
|
padding: EdgeInsets.all(10),
|
|
child: Row(
|
|
children: [
|
|
TextDefault(text: add,color: ColorPalette.black54,),
|
|
Spacer(),
|
|
IconButton(
|
|
icon: Icon(Icons.delete),
|
|
onPressed: ()=>setState((){
|
|
add='';
|
|
addProfissionals = false;
|
|
}),
|
|
)
|
|
],
|
|
),
|
|
)
|
|
: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,
|
|
)
|
|
],
|
|
),
|
|
);
|
|
}
|
|
);
|
|
}
|
|
|
|
otherExams(
|
|
BuildContext context,
|
|
String title,String subtitle,
|
|
String? selectProfessionals,
|
|
String? selectCBO,
|
|
String add,
|
|
List examsList,
|
|
bool requested,
|
|
bool avaliable
|
|
) {
|
|
|
|
double width = MediaQuery.of(context).size.width;
|
|
double height = MediaQuery.of(context).size.height;
|
|
bool addProfissionals = false;
|
|
|
|
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;
|
|
addProfissionals = true;
|
|
}),
|
|
select: selectProfessionals,
|
|
title: 'Exame',
|
|
list: [
|
|
'0201010011 - AMNIOCENTESE',
|
|
'0201010020 - BIOPSIA / PUNSAO DE TUMOR SUPERFICIAL DA PELE',
|
|
'0201010046 - BIOPSIA DE ANUS E CANAL ANAL',
|
|
'0201010062 - BIOSIA DE BEXIGA',
|
|
],
|
|
width: width
|
|
),
|
|
SwitchWithSubtitle(
|
|
onChanged: (v)=>setState(()=>requested=v),
|
|
value: requested,
|
|
width: width*0.8,
|
|
title: 'Solicitado'
|
|
),
|
|
SwitchWithSubtitle(
|
|
onChanged: (v)=>setState(()=>avaliable=v),
|
|
value: avaliable,
|
|
width: width*0.8,
|
|
title: 'Avaliado'
|
|
),
|
|
ButtonDefault(
|
|
onPressed:addProfissionals || examsList.length == 4?()=>setState((){
|
|
List list = selectProfessionals!.split(' - ');
|
|
add = list[0] + '${requested?' - S':''}' + '${avaliable?' - A':''}'+' - ${list[1]}';
|
|
if(examsList.length<=3){
|
|
examsList.add(add);
|
|
}else{
|
|
addProfissionals = false;
|
|
}
|
|
selectProfessionals=null;
|
|
avaliable = false;
|
|
requested = false;
|
|
}):null,
|
|
title: 'Adicionar',
|
|
width: width*0.85,
|
|
textColor: ColorPalette.white,
|
|
borderColor:addProfissionals?ColorPalette.appBar:ColorPalette.buttonDisable,
|
|
background: ColorPalette.appBar,
|
|
disableColor: ColorPalette.buttonDisable,
|
|
)
|
|
],
|
|
),
|
|
),
|
|
Card(
|
|
child: Column(
|
|
mainAxisSize: MainAxisSize.min,
|
|
children: [
|
|
TitleContainers(title: 'Exames'),
|
|
examsList.length!=0
|
|
?Container(
|
|
width: width*0.8,
|
|
height: height*0.4,
|
|
child: ListView.builder(
|
|
itemCount: examsList.length,
|
|
itemBuilder: (context,index) {
|
|
return Container(
|
|
width: width * 0.8,
|
|
padding: EdgeInsets.all(10),
|
|
child: Row(
|
|
children: [
|
|
Container(
|
|
width: width * 0.6,
|
|
child: TextDefault(text: examsList[index],
|
|
color: ColorPalette.black54,)
|
|
),
|
|
Spacer(),
|
|
IconButton(
|
|
icon: Icon(Icons.delete),
|
|
onPressed: () =>
|
|
setState(() {
|
|
examsList.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,
|
|
)
|
|
],
|
|
),
|
|
);
|
|
}
|
|
);
|
|
}
|
|
|
|
otherProc(
|
|
BuildContext context,
|
|
String title,
|
|
String subtitle,
|
|
String? selectProfessionals,
|
|
String? selectCBO,
|
|
String add,
|
|
List listProcProfissional,
|
|
List listProc,
|
|
) {
|
|
|
|
double width = MediaQuery.of(context).size.width;
|
|
|
|
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),
|
|
DropDownButtonComPesquisa(
|
|
onChanged: (value)=>setState((){
|
|
selectProfessionals=value;
|
|
listProc.add(selectProfessionals);
|
|
setState((){});
|
|
}),
|
|
select: selectProfessionals,
|
|
title: '',
|
|
list: listProcProfissional,
|
|
width: width*0.8,
|
|
widthContainer: width*0.75,
|
|
),
|
|
// 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'),
|
|
listProcProfissional.length!=0
|
|
?Container(
|
|
width: width*0.8,
|
|
height: listProc.length*70,
|
|
child: ListView.builder(
|
|
itemCount: listProc.length,
|
|
itemBuilder: (context,index) {
|
|
print(listProc.length);
|
|
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);
|
|
setState((){});
|
|
}),
|
|
)
|
|
],
|
|
),
|
|
);
|
|
}
|
|
),
|
|
)
|
|
: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,
|
|
)
|
|
],
|
|
),
|
|
);
|
|
}
|
|
);
|
|
}
|
|
}
|