ajustes em diversos pontos do app para receber o username, e ajustar para exibir apenas as telas que realmente será utilizado no app.

This commit is contained in:
Reginaldo
2024-02-01 17:01:08 -03:00
parent cfdfb316f8
commit 2450a76f4b
31 changed files with 227 additions and 223 deletions

View File

@@ -5,10 +5,11 @@
android:usesCleartextTraffic="true"
android:label="RKMAB 2.0 ConectaSUS"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher">
android:icon="@mipmap/ic_launcher"
android:enableOnBackInvokedCallback="true"
>
<activity
android:name=".MainActivity"
android:enableOnBackInvokedCallback="true"
android:exported="true"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"

View File

@@ -1,35 +1,11 @@
import 'package:rkm/screens/configurations/about_screen.dart';
import 'package:rkm/screens/attendance_list_screen.dart';
import 'package:rkm/screens/home_screen.dart';
import 'package:rkm/screens/select_service/eligibility_assessment_screen.dart';
import 'package:rkm/screens/splash_screen.dart';
import '../screens/configurations/clear_data_screen.dart';
import '../screens/edit_procedures_screen.dart';
import '../screens/configurations/import_sigtap_screen.dart';
import '../screens/login/login_load_screen.dart';
import '../screens/configurations/main_procedures_screen.dart';
import '../screens/select_service/complementary_sheet_screen.dart';
import '../screens/select_service/consumption_markers_screen.dart';
import '../screens/select_service/procedures_screen.dart';
import '../screens/select_service/service_dental_screen.dart';
import '../screens/select_service/service_individual_screen.dart';
import '../screens/configurations/sinc_data_screen.dart';
import '../screens/configurations/sync_data_screen.dart';
var routes = {
'/home': (context) => HomeScreen(),
'/login_load': (context) => LoginLoadScreen(),
'/attendance_list': (context) => AttendanceListScreen(),
'/about': (context) => AboutScreen(),
'/main_procedures': (context) => MainProceduresScreen(),
'/sinc_data': (context) => SincDataScreen(),
'/clear_data': (context) => ClearDataScreen(),
'/import_sigtap': (context) => ImportSigtapScreen(),
'/edit_procedure': (context) => EditProceduresScreen(),
'/splash': (context) => SplashScreen(),
'/service_individual': (context) => ServiceIndividualScreen(),
'/service_dental': (context) => ServiceDentalScreen(),
'/eligibility_assessment': (context) => EligibilityAssessmentScreen(),
'/complementary_sheet': (context) => ComplementarySheetScreen(),
'/consumption_markers': (context) => ConsumptionMarkersScreen(),
'/procedures': (context) => ProceduresScreen(),
};

View File

@@ -15,7 +15,7 @@ void main() {
HttpOverrides.global = new PostHttpOverrides();
runApp(const MyApp());
}
//Cadastro e edição do Cadastro do Cidadão, Cadastro Individual, Cadastro Domiciliar e Visita Domiciliar
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override

View File

@@ -5,7 +5,9 @@ import 'package:rkm/widgets/text_default.dart';
import '../widgets/appbar_default.dart';
class AttendanceListScreen extends StatefulWidget {
const AttendanceListScreen({Key? key}) : super(key: key);
String username;
AttendanceListScreen({required this.username});
@override
State<AttendanceListScreen> createState() => _AttendanceListScreenState();
@@ -15,7 +17,7 @@ class _AttendanceListScreenState extends State<AttendanceListScreen> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Lista Atendimentos'),
appBar: AppBarDefault().appbar(context, 'RKM AB - Lista Atendimentos',widget.username),
body: Container(
decoration: ConstVariable().backgroundGradient,
width: double.infinity,

View File

@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:rkm/screens/home_screen.dart';
import 'package:rkm/service/db/db_sqlite_sync.dart';
import 'package:rkm/widgets/button_default.dart';
import '../../service/db/db_sqlite_load.dart';
@@ -7,7 +8,8 @@ import '../../config/color_palette.dart';
import '../../widgets/text_default.dart';
class ClearDataScreen extends StatefulWidget {
const ClearDataScreen({Key? key}) : super(key: key);
String username;
ClearDataScreen({Key? key, required this.username}) : super(key: key);
@override
State<ClearDataScreen> createState() => _ClearDataScreenState();
@@ -47,7 +49,7 @@ class _ClearDataScreenState extends State<ClearDataScreen> {
textColor: ColorPalette.white,
background: ColorPalette.appBar,
borderColor: ColorPalette.appBar,
onPressed: ()=>Navigator.pushNamedAndRemoveUntil(context, '/home', (Route<dynamic> route) => false),
onPressed: ()=>Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context)=>HomeScreen(username: widget.username)), (Route<dynamic> route) => false),
)
],
),

View File

@@ -8,7 +8,9 @@ import '../../widgets/button_default.dart';
import '../../widgets/text_default.dart';
class ImportSigtapScreen extends StatefulWidget {
const ImportSigtapScreen({Key? key}) : super(key: key);
String username;
ImportSigtapScreen({required this.username});
@override
State<ImportSigtapScreen> createState() => _ImportSigtapScreenState();
@@ -174,7 +176,7 @@ class _ImportSigtapScreenState extends State<ImportSigtapScreen> {
onPressed: (){
Navigator.pushReplacement(
context,
MaterialPageRoute(builder: (context) => HomeScreen()),
MaterialPageRoute(builder: (context) => HomeScreen(username: widget.username,)),
);
},
title: 'Continuar',

View File

@@ -14,7 +14,8 @@ import '../../widgets/text_default.dart';
import '../../widgets/title_containers.dart';
class MainProceduresScreen extends StatefulWidget {
const MainProceduresScreen({Key? key}) : super(key: key);
String username;
MainProceduresScreen({required this.username});
@override
State<MainProceduresScreen> createState() => _MainProceduresScreenState();
@@ -179,7 +180,7 @@ class _MainProceduresScreenState extends State<MainProceduresScreen> {
double height = MediaQuery.of(context).size.height;
return Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Procedimentos Iniciais'),
appBar: AppBarDefault().appbar(context, 'RKM AB - Procedimentos Iniciais',widget.username),
body: Container(
padding: EdgeInsets.all(10),
decoration: ConstVariable().backgroundGradient,

View File

@@ -1,45 +0,0 @@
{
"competencia":"202303",
"procedimentos":[
{
"codProcedimento":"0101010010",
"nome":"ATIVIDADE EDUCATIVA \/ ORIENTA\u00c7\u00c3O EM GRUPO NA ATEN\u00c7\u00c3O PRIM\u00c1RIA",
"codGrupo":"01",
"qtdeMax":9999,
"idadeMin":833,
"idadeMax":833,
"sexo":"N"
}
],
"procedimentosRegistros":[
{
"codProcedimento":"0101010010",
"codRegistro":"01"
}
],
"CID":[
{
"codCID":"A000",
"descCID":"A00.0 Colera dev Vibrio cholerae 01 biot cholerae",
"restSexo":"5"
}
],
"procedimentosCID":[
{
"codProcedimento":"0201010046",
"codCID":"C211"
}
],
"CBO":[
{
"codCBO":"223208",
"descCBO":"Cirurgi\u00e3o dentista - cl\u00ednico geral"
}
],
"procedimentosCBO":[
{
"codProcedimento":"0101010010",
"codCBO":"223208"
}
]
}

View File

@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:rkm/screens/home_screen.dart';
import 'package:rkm/service/db/db_querys.dart';
import 'package:rkm/widgets/button_default.dart';
import '../../config/color_palette.dart';
@@ -7,14 +8,15 @@ import '../../service/db/db_sqlite_load.dart';
import '../../service/db/db_sqlite_sync.dart';
import '../../widgets/text_default.dart';
class SincDataScreen extends StatefulWidget {
const SincDataScreen({Key? key}) : super(key: key);
class SyncDataScreen extends StatefulWidget {
String username;
SyncDataScreen({Key? key,required this.username}) : super(key: key);
@override
State<SincDataScreen> createState() => _SincDataScreenState();
State<SyncDataScreen> createState() => _SyncDataScreenState();
}
class _SincDataScreenState extends State<SincDataScreen> {
class _SyncDataScreenState extends State<SyncDataScreen> {
String mode ='';
String urlAPI ='';
@@ -285,7 +287,7 @@ class _SincDataScreenState extends State<SincDataScreen> {
textColor: ColorPalette.white,
background: ColorPalette.appBar,
borderColor: ColorPalette.appBar,
onPressed: ()=>Navigator.pushNamedAndRemoveUntil(context, '/home', (Route<dynamic> route) => false),
onPressed: ()=>Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context)=>HomeScreen(username: widget.username)), (Route<dynamic> route) => false),
)
],
),

View File

@@ -12,7 +12,9 @@ import '../widgets/subtitle_containers.dart';
import '../widgets/title_containers.dart';
class EditProceduresScreen extends StatefulWidget {
const EditProceduresScreen({Key? key}) : super(key: key);
String username;
EditProceduresScreen({required this.username});
@override
State<EditProceduresScreen> createState() => _EditProceduresScreenState();
@@ -53,9 +55,9 @@ class _EditProceduresScreenState extends State<EditProceduresScreen> {
double height = MediaQuery.of(context).size.height;
return WillPopScope(
onWillPop: ()async => await OnBackButton().onBackButton(context),
onWillPop: ()async => await OnBackButton().onBackButton(context, widget.username),
child: Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Procedimentos Consolidados'),
appBar: AppBarDefault().appbar(context, 'RKM AB - Procedimentos Consolidados',widget.username),
body: Container(
decoration: ConstVariable().backgroundGradient,
width: width,

View File

@@ -1,6 +1,8 @@
import 'package:flutter/material.dart';
import 'package:line_icons/line_icons.dart';
import 'package:rkm/controllers/main_controllers.dart';
import 'package:rkm/screens/attendance_list_screen.dart';
import 'package:rkm/screens/edit_procedures_screen.dart';
import 'package:rkm/screens/registers_citizen/register_citizen_screen.dart';
import 'package:rkm/config/const_variable.dart';
import 'package:rkm/service/db/db_querys.dart';
@@ -11,7 +13,9 @@ import '../widgets/appbar_default.dart';
import '../widgets/item_citizen.dart';
class HomeScreen extends StatefulWidget {
const HomeScreen({Key? key}) : super(key: key);
String username;
HomeScreen({required this.username});
@override
State<HomeScreen> createState() => _HomeScreenState();
@@ -88,7 +92,7 @@ class _HomeScreenState extends State<HomeScreen> {
double width = MediaQuery.of(context).size.width;
double height = MediaQuery.of(context).size.height;
return Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Início'),
appBar: AppBarDefault().appbar(context, 'RKM AB - Início',widget.username),
body: Container(
padding: EdgeInsets.all(10),
width: width,
@@ -109,16 +113,16 @@ class _HomeScreenState extends State<HomeScreen> {
icon: Icons.person_add,
onPressed: ()=> Navigator.push(
context,
MaterialPageRoute(builder: (context) => RegisterCitizenScreen(listData: [],)),
MaterialPageRoute(builder: (context) => RegisterCitizenScreen(listData: [],username: widget.username,)),
)
),
IconButtonDefault(
icon: Icons.article,
onPressed: ()=>Navigator.pushNamed(context, '/attendance_list')
onPressed: ()=>Navigator.push(context,MaterialPageRoute(builder:(context) => AttendanceListScreen(username: widget.username,)))
),
IconButtonDefault(
icon: LineIcons.edit,
onPressed: ()=>Navigator.pushNamed(context, '/edit_procedure')
onPressed: ()=> Navigator.push(context,MaterialPageRoute(builder:(context) => EditProceduresScreen(username: widget.username,)))
),
],
),
@@ -137,6 +141,8 @@ class _HomeScreenState extends State<HomeScreen> {
return ItemCitizen(
date: date,
dataPatient: showResults[index],
username: widget.username,
name: '${showResults[index]['NOME_CIDADAO']}',
mother:'${showResults[index]['NOME_MAE']}',
numberCNS: '${showResults[index]['CNS']}'=='null'||'${showResults[index]['CNS']}'==''?'999999999999999':'${showResults[index]['CNS']}',
@@ -145,7 +151,7 @@ class _HomeScreenState extends State<HomeScreen> {
await DBQuerys().buscaCidadao(showResults[index]['NOME_CIDADAO']).then((list){
Navigator.push(
context,
MaterialPageRoute(builder:(context) => RegisterCitizenScreen(listData: list,)),
MaterialPageRoute(builder:(context) => RegisterCitizenScreen(listData: list,username: widget.username,)),
);
});
},

View File

@@ -30,7 +30,6 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
String? now;
bool validatorDropDown= false;
int contLogo = 0;
bool loading = false;
String urlAPI='';
String mode = '';
String nameCityApi = '';
@@ -38,6 +37,8 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
int codCity = 0;
int codCityIbge = 0;
String codState = '';
String passwordDB = '';
String userDB = '';
recupDB()async{
await DbSqliteLoad().intialDB().then((db)async{
@@ -46,8 +47,8 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
mode = list[0]['MODE'];
nameCityApi = list[0]['NAME_CITY_API'];
nameCityFront = list[0]['NAME_CITY_FRONT'];
inputUser.text = list[0]['USER'];
inputPassword.text = list[0]['PASSWORD'];
userDB = list[0]['USER'];
passwordDB = list[0]['PASSWORD'];
codCity = list[0]['COD_CITY'];
codState = list[0]['COD_STATE'];
codCityIbge = list[0]['COD_IBGE'];
@@ -57,43 +58,17 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
checkLogin()async{
if(inputUser.text.isNotEmpty && inputPassword.text.isNotEmpty && inputUser.text.length>3 && inputPassword.text.length>3){
setState(() {
error = '';
loading = true;
});
await ApiDataLoad().apiConect(urlAPI,mode,nameCityApi,inputUser.text).then((response) async {
if(inputUser.text == inputPassword.text || response['bloqueio']==1){
setState(() {
error = 'Usuário bloqueado/senha incorreta';
});
}else if(response['status']==0) {
setState(() {
error = 'Usuário não encontrado';
});
}else if(response['status']==1) {
setState((){
error = '';
});
//verificar se a criptografia identificou se a senha está correta
if(MainControllers().encrypt(inputPassword.text,response['userPass']) == response['userPass']){
// print(EncryptPassword().encrypt(inputPassword.text,response['userPass']));
DbSqliteLoad().updateArgs(mode, inputUser.text, inputPassword.text).then((value){
setState(() {
loading = false;
});
int mes = DateTime.now().month;
if(widget.listControl[0]['COMPETENCIA'].toString()=='${DateTime.now().year}${mes<10?'0${mes}':'$mes'}'){
Navigator.push(
context,
MaterialPageRoute(builder: (context) => HomeScreen()),
);
}else{
Navigator.pushNamed(context, '/import_sigtap');
}
});
}
}
if(inputUser.text == userDB && inputPassword.text == passwordDB){
setState(() {
error = '';
});
Navigator.push(context,MaterialPageRoute(builder: (context) => HomeScreen(username: inputUser.text,)));
}else{
setState(() {
error = 'Usuário/senha inválido(s)';
});
}
}else{
setState(() {
error = 'Usuário/senha inválido(s)';
@@ -146,16 +121,7 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
mode == 'homologacao'?Image.asset('assets/images/homologacao.png',width: width*0.4):Container(),
mode == 'desenvolvimento'?Image.asset('assets/images/desenvolvimento.png',width: width*0.4):Container(),
SizedBox(height: 10),
loading?Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Image.asset('assets/images/loading.gif'),
SizedBox(height: 10),
TextDefault(text: 'Carregando dados...',color: ColorPalette.black54,fontSize: 20,fontWeigth: FontWeight.bold,)
],
),
):Form(
Form(
autovalidateMode: AutovalidateMode.onUserInteraction,
child: Container(
width: width*0.6,
@@ -183,7 +149,7 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
),
),
),
loading?Container():ButtonDefault(
ButtonDefault(
onPressed: ()=>checkLogin(),
title: 'Entrar',
width: width*0.6,

View File

@@ -24,7 +24,8 @@ import '../../widgets/switch_with_subtitle.dart';
import '../../widgets/text_default.dart';
class RegisterCitizenScreen extends StatefulWidget {
List listData;
RegisterCitizenScreen({required this.listData});
String username;
RegisterCitizenScreen({required this.listData, required this.username});
@override
State<RegisterCitizenScreen> createState() => _RegisterCitizenScreenState();
}
@@ -687,16 +688,16 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
double width = MediaQuery.of(context).size.width;
return WillPopScope(
onWillPop: () async => await OnBackButton().onBackButton(context),
onWillPop: () async => await OnBackButton().onBackButton(context, widget.username),
child: Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Cadastro Cidadão'),
appBar: AppBarDefault().appbar(context, 'RKM AB - Cadastro Cidadão',widget.username),
body: Container(
height: double.infinity,
width: double.infinity,
decoration: ConstVariable().backgroundGradient,
child: ListView(
children: [
SubtitleAppbarCitizen(title: 1,edit: showTab,listData:widget.listData),
SubtitleAppbarCitizen(title: 1,edit: showTab,listData:widget.listData,username: widget.username),
showCheckError?Card(
margin: EdgeInsets.all(10),
child: Container(

View File

@@ -18,7 +18,8 @@ import '../../widgets/switch_with_subtitle.dart';
import '../../widgets/text_default.dart';
class RegisterHomeScreen extends StatefulWidget {
List listData;
RegisterHomeScreen({required this.listData});
String username;
RegisterHomeScreen({required this.listData, required this.username});
@override
State<RegisterHomeScreen> createState() => _RegisterHomeScreenState();
@@ -387,16 +388,16 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
double width = MediaQuery.of(context).size.width;
return WillPopScope(
onWillPop: ()async => await OnBackButton().onBackButton(context),
onWillPop: ()async => await OnBackButton().onBackButton(context, widget.username),
child: Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Cadastro Domiciliar'),
appBar: AppBarDefault().appbar(context, 'RKM AB - Cadastro Domiciliar',widget.username),
body: Container(
height: double.infinity,
width: double.infinity,
decoration: ConstVariable().backgroundGradient,
child: ListView(
children: [
SubtitleAppbarCitizen(title: 3,edit: true,listData: widget.listData),
SubtitleAppbarCitizen(title: 3,edit: true,listData: widget.listData,username: widget.username),
showCheckError?Card(
margin: EdgeInsets.all(10),
child: Container(

View File

@@ -20,7 +20,8 @@ import '../../widgets/subtitle_appbar_citizen.dart';
import '../../widgets/switch_with_subtitle.dart';
class RegisterIndividualScreen extends StatefulWidget {
List listData;
RegisterIndividualScreen({required this.listData});
String username;
RegisterIndividualScreen({required this.listData, required this.username});
@override
State<RegisterIndividualScreen> createState() => _RegisterIndividualScreenState();
@@ -601,16 +602,16 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
double width = MediaQuery.of(context).size.width;
return WillPopScope(
onWillPop: ()async=> await OnBackButton().onBackButton(context),
onWillPop: ()async=> await OnBackButton().onBackButton(context, widget.username),
child: Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Cadastro Individual'),
appBar: AppBarDefault().appbar(context, 'RKM AB - Cadastro Individual',widget.username),
body: Container(
height: double.infinity,
width: double.infinity,
decoration: ConstVariable().backgroundGradient,
child: ListView(
children: [
SubtitleAppbarCitizen(title: 2,edit: showTab,listData: widget.listData),
SubtitleAppbarCitizen(title: 2,edit: showTab,listData: widget.listData,username: widget.username),
showCheckError?Card(
margin: EdgeInsets.all(10),
child: Container(

View File

@@ -4,7 +4,8 @@ import 'package:rkm/widgets/appbar_default.dart';
import 'package:rkm/widgets/screen_dev.dart';
class ComplementarySheetScreen extends StatefulWidget {
const ComplementarySheetScreen({Key? key}) : super(key: key);
String username;
ComplementarySheetScreen({required this.username});
@override
State<ComplementarySheetScreen> createState() => _ComplementarySheetScreenState();
@@ -15,7 +16,7 @@ class _ComplementarySheetScreenState extends State<ComplementarySheetScreen> {
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Ficha Complemetar'),
appBar: AppBarDefault().appbar(context, 'RKM AB - Ficha Complemetar',widget.username),
body: ScreenDev(),
);
}

View File

@@ -4,7 +4,8 @@ import '../../widgets/appbar_default.dart';
import '../../widgets/screen_dev.dart';
class ConsumptionMarkersScreen extends StatefulWidget {
const ConsumptionMarkersScreen({Key? key}) : super(key: key);
String username;
ConsumptionMarkersScreen({required this.username});
@override
State<ConsumptionMarkersScreen> createState() => _ConsumptionMarkersScreenState();
@@ -14,7 +15,7 @@ class _ConsumptionMarkersScreenState extends State<ConsumptionMarkersScreen> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Marcadores de Consumo'),
appBar: AppBarDefault().appbar(context, 'RKM AB - Marcadores de Consumo',widget.username),
body: ScreenDev(),
);
}

View File

@@ -1,10 +1,11 @@
import 'package:flutter/material.dart';
import '../../widgets/appbar_default.dart';
import '../../widgets/screen_dev.dart';
class EligibilityAssessmentScreen extends StatefulWidget {
const EligibilityAssessmentScreen({Key? key}) : super(key: key);
String username;
EligibilityAssessmentScreen({required this.username});
@override
State<EligibilityAssessmentScreen> createState() => _EligibilityAssessmentScreenState();
@@ -14,7 +15,7 @@ class _EligibilityAssessmentScreenState extends State<EligibilityAssessmentScree
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Avaliação de Elegibilidade'),
appBar: AppBarDefault().appbar(context, 'RKM AB - Avaliação de Elegibilidade',widget.username),
body: ScreenDev(),
);
}

View File

@@ -23,7 +23,8 @@ import '../../widgets/title_containers.dart';
class HomeVisitScreen extends StatefulWidget {
String name;
HomeVisitScreen({required this.name});
String username;
HomeVisitScreen({required this.name, required this.username});
@override
State<HomeVisitScreen> createState() => _HomeVisitScreenState();
@@ -107,9 +108,9 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
CD_USUARIO_SUS = list[0]['CD_USUARIO_SUS'];
});
final PrefService _prefService = PrefService();
_prefService.readCacheIdUsername('idUsuario').then((value){
_prefService.readCacheIDUser().then((value){
if(value != null){
idUsuario = value;
idUsuario = int.parse(value);
loadData();
}
});
@@ -392,9 +393,9 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
double width = MediaQuery.of(context).size.width;
return WillPopScope(
onWillPop: ()async=> await OnBackButton().onBackButton(context),
onWillPop: ()async=> await OnBackButton().onBackButton(context, widget.username),
child: Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Visita Domiciliar'),
appBar: AppBarDefault().appbar(context, 'RKM AB - Visita Domiciliar',widget.username),
body: Container(
height: double.infinity,
width: double.infinity,

View File

@@ -4,7 +4,10 @@ import '../../widgets/appbar_default.dart';
import '../../widgets/screen_dev.dart';
class ProceduresScreen extends StatefulWidget {
const ProceduresScreen({Key? key}) : super(key: key);
String username;
ProceduresScreen({required this.username});
@override
State<ProceduresScreen> createState() => _ProceduresScreenState();
@@ -14,7 +17,7 @@ class _ProceduresScreenState extends State<ProceduresScreen> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Procedimentos'),
appBar: AppBarDefault().appbar(context, 'RKM AB - Procedimentos',widget.username),
body: ScreenDev(),
);
}

View File

@@ -1,10 +1,10 @@
import 'package:flutter/material.dart';
import '../../widgets/appbar_default.dart';
import '../../widgets/screen_dev.dart';
class ServiceDentalScreen extends StatefulWidget {
const ServiceDentalScreen({Key? key}) : super(key: key);
String username;
ServiceDentalScreen({Key? key,required this.username}) : super(key: key);
@override
State<ServiceDentalScreen> createState() => _ServiceDentalScreenState();
@@ -14,7 +14,7 @@ class _ServiceDentalScreenState extends State<ServiceDentalScreen> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Atendimento Odontológico'),
appBar: AppBarDefault().appbar(context, 'RKM AB - Atendimento Odontológico',widget.username),
body: ScreenDev(),
);
}

View File

@@ -25,7 +25,8 @@ import '../../widgets/title_containers.dart';
class ServiceHomeScreen extends StatefulWidget {
String name;
ServiceHomeScreen({required this.name});
String username;
ServiceHomeScreen({required this.name,required this.username});
@override
State<ServiceHomeScreen> createState() => _ServiceHomeScreenState();
@@ -314,9 +315,9 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
double width = MediaQuery.of(context).size.width;
return WillPopScope(
onWillPop: ()async=> await OnBackButton().onBackButton(context),
onWillPop: ()async=> await OnBackButton().onBackButton(context, widget.username),
child: Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Atendimento Domiciliar'),
appBar: AppBarDefault().appbar(context, 'RKM AB - Atendimento Domiciliar',widget.username),
body: Container(
height: double.infinity,
width: double.infinity,

View File

@@ -2,11 +2,13 @@ import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:line_icons/line_icons.dart';
import 'package:rkm/widgets/input_text.dart';
import 'package:sqflite/sqflite.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 '../../service/db/db_sqlite_load.dart';
import '../../widgets/alert_dialog_default.dart';
import '../../widgets/appbar_default.dart';
import '../../widgets/button_default.dart';
@@ -19,7 +21,11 @@ import '../../widgets/text_default.dart';
import '../../widgets/title_containers.dart';
class ServiceIndividualScreen extends StatefulWidget {
const ServiceIndividualScreen({Key? key}) : super(key: key);
String username;
var dataPatient;
ServiceIndividualScreen({required this.username, required this.dataPatient});
@override
State<ServiceIndividualScreen> createState() => _ServiceIndividualScreenState();
@@ -66,8 +72,9 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
bool switchUnderObservation = false;
bool selectExamsRequested = false;
bool selectExamsAvalible = false;
var userResponsibleRegisterController = TextEditingController(text: 'ADMINISTRADOR');
var userUnitController = TextEditingController(text: 'USF PINHAL - EMILIA STEPHANI SIMIONATO');
bool mandatory = false;
var userResponsibleRegisterController = TextEditingController();
var userUnitController = TextEditingController();
var weigthController = TextEditingController();
var heightController = TextEditingController();
var cephalicPerimeterController = TextEditingController();
@@ -104,9 +111,20 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
});
}
loadUnidade()async{
Database db = await DbSqliteLoad().intialDB();
List list = await db.rawQuery("SELECT * FROM CONTROLE_INTERNO");
List listArg = await db.rawQuery("SELECT * FROM PROFISSIONAIS WHERE USERNAME = '${widget.username}'");
// print(listArg);
userUnitController.text = list[0]['NOME_UNIDADE'];
userResponsibleRegisterController.text =listArg[0]['NOME_PROFISSIONAL'];
setState(() {});
}
@override
void initState() {
super.initState();
loadUnidade();
loadLists();
}
@@ -117,9 +135,9 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
double width = MediaQuery.of(context).size.width;
return WillPopScope(
onWillPop: ()async=> await OnBackButton().onBackButton(context),
onWillPop: ()async=> await OnBackButton().onBackButton(context, widget.username),
child: Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Atendimento Individual'),
appBar: AppBarDefault().appbar(context, 'RKM AB - Atendimento Individual',widget.username),
body: Container(
height: double.infinity,
width: double.infinity,
@@ -234,6 +252,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
controller: weigthController,
colorBorder: ColorPalette.white,
onChanged: (v)=>setState((){}),
mandatory: mandatory,
),
InputWithSubtitle(
subtitle: 'Altura (em metros - 0,00)',
@@ -245,6 +264,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
controller: heightController,
colorBorder: ColorPalette.white,
onChanged: (v)=>setState((){}),
mandatory: mandatory,
),
InputWithSubtitle(
subtitle: 'Perímetro cefálico (em centímetros - 000,00)',
@@ -256,6 +276,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
controller: cephalicPerimeterController,
colorBorder: ColorPalette.white,
onChanged: (v)=>setState((){}),
mandatory: mandatory,
),
SwitchWithSubtitle(
width: width*0.7,
@@ -271,7 +292,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
select: selectBreastfeeding,
widthDropdown: width*0.7,
widthContainerDropdown: width*0.6,
onChanged: (value)=>setState(()=>selectBreastfeeding = value!),
onChanged:widget.dataPatient['SEXO']=='M'?null: (value)=>setState(()=>selectBreastfeeding = value!),
colorBorder: ColorPalette.white,
),
],
@@ -865,7 +886,12 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
child: Column(
children: [
ButtonDefault(
onPressed: (){},
onPressed: (){
if(heightController.text.isEmpty || heightController.text.isEmpty || cephalicPerimeterController.text.isEmpty){
mandatory = true;
setState(() {});
}
},
title: 'Salvar',
borderColor: ColorPalette.appBar,
background: ColorPalette.appBar,
@@ -879,11 +905,24 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
background: ColorPalette.blackButton,
textColor: ColorPalette.white,
width: double.infinity,
)
),
],
),
),
),
mandatory?Card(
margin: EdgeInsets.all(10),
child: Container(
padding: EdgeInsets.all(10),
child: Row(
children: [
Icon(Icons.warning,color: Colors.red,),
TextDefault(text: 'Existem campos obrigatórios não preenchidos.',color: ColorPalette.red,fontSize: 15,)
],
),
),
color: ColorPalette.white,
):Container(),
],
),
),

View File

@@ -1,7 +1,13 @@
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/service_home_screen.dart';
import 'package:rkm/screens/select_service/service_individual_screen.dart';
import 'package:rkm/widgets/button_default.dart';
import 'package:rkm/widgets/switch_with_subtitle.dart';
import 'package:rkm/widgets/text_default.dart';
@@ -78,29 +84,19 @@ class AlertDialogDefault {
);
}
alertSelect(BuildContext context,String name) {
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',
// '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;
@@ -125,18 +121,51 @@ class AlertDialogDefault {
return ListTile(
onTap: (){
Navigator.pop(context);
if(index==0){
Navigator.push(
context,
MaterialPageRoute(builder:(context) => ServiceHomeScreen(name: name,)),
MaterialPageRoute(builder:(context) => ServiceHomeScreen(name: name,username: username,)),
);
}else if(index == 1){
Navigator.push(
context,
MaterialPageRoute(builder:(context) => HomeVisitScreen(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) => HomeVisitScreen(name: name,)),
MaterialPageRoute(builder:(context) => HomeVisitScreen(name: name,username: username,)),
);
}else{
Navigator.pushNamed(context, routes[index]);
}
},
tileColor: rest==0?ColorPalette.white:ColorPalette.appBar,

View File

@@ -1,12 +1,16 @@
import 'package:flutter/material.dart';
import 'package:rkm/config/const_variable.dart';
import 'package:rkm/screens/configurations/clear_data_screen.dart';
import 'package:rkm/screens/configurations/import_sigtap_screen.dart';
import 'package:rkm/screens/configurations/main_procedures_screen.dart';
import 'package:rkm/screens/configurations/sync_data_screen.dart';
import 'package:rkm/widgets/button_default.dart';
import 'package:rkm/widgets/item_alert_settings.dart';
import 'package:rkm/widgets/text_default.dart';
class AlertDialogSettings {
@override
alert(BuildContext context) {
alert(BuildContext context, String username) {
return showDialog(
context: context,
builder: (context){
@@ -21,7 +25,7 @@ class AlertDialogSettings {
ItemAlertSettings(
onTap: (){
Navigator.pop(context);
Navigator.pushNamed(context, '/import_sigtap');
Navigator.push(context,MaterialPageRoute(builder: (context) => ImportSigtapScreen(username: username,)));
},
title: 'Importar SIGTAP',
body: 'Atulizar as informações do SIGTAP no aplicativo\n'
@@ -31,7 +35,7 @@ class AlertDialogSettings {
ItemAlertSettings(
onTap: (){
Navigator.pop(context);
Navigator.pushNamed(context, '/clear_data');
Navigator.push(context,MaterialPageRoute(builder:(context) => ClearDataScreen(username: username,)));
},
title: 'Limpar Dados',
body: 'Apaga todos os dados do Aplicativo.\n'
@@ -43,7 +47,7 @@ class AlertDialogSettings {
ItemAlertSettings(
onTap: (){
Navigator.pop(context);
Navigator.pushNamed(context, '/main_procedures');
Navigator.push(context,MaterialPageRoute(builder:(context) => MainProceduresScreen(username:username,)));
},
title: 'Definir Procedimentos Iniciais',
body: 'Define os Procedimentos iniciais que deverão ser\n'
@@ -62,7 +66,7 @@ class AlertDialogSettings {
ItemAlertSettings(
onTap: (){
Navigator.pop(context);
Navigator.pushNamed(context, '/sinc_data');
Navigator.push(context,MaterialPageRoute(builder:(context) => SyncDataScreen(username: username,)));
},
title: 'Sincronia de Envio',
body: 'Efetua a Sincronia de Envio levandoas informações\n'

View File

@@ -8,7 +8,7 @@ import 'icon_button_default.dart';
class AppBarDefault{
@override
PreferredSize appbar(BuildContext context,String title) {
PreferredSize appbar(BuildContext context,String title, String username) {
return PreferredSize(
preferredSize: Size.fromHeight(50),
child: AppBar(
@@ -19,7 +19,7 @@ class AppBarDefault{
IconButtonDefault(
icon: Icons.settings,
color: ColorPalette.white,
onPressed: ()=>AlertDialogSettings().alert(context)
onPressed: ()=>AlertDialogSettings().alert(context,username)
),
IconButtonDefault(
icon: Icons.logout,

View File

@@ -13,6 +13,8 @@ class ItemCitizen extends StatelessWidget {
String numberCNS;
String numberMedicalRecord;
var onTap;
String username;
var dataPatient;
ItemCitizen({
required this.name,
@@ -21,6 +23,8 @@ class ItemCitizen extends StatelessWidget {
required this.numberCNS,
required this.numberMedicalRecord,
required this.onTap,
required this.username,
required this.dataPatient
});
@override
@@ -35,7 +39,7 @@ class ItemCitizen extends StatelessWidget {
subtitle: TextDefault(text: '$numberCNS - $numberMedicalRecord - $date - $mother',fontSize: 13,color: Colors.black54),
trailing: IconButton(
icon: Icon(LineIcons.clipboard,size: 35,),
onPressed: ()=>AlertDialogDefault().alertSelect(context,name),
onPressed: ()=>AlertDialogDefault().alertSelect(context,name,username,dataPatient),
),
onTap: onTap,
),

View File

@@ -1,10 +1,11 @@
import 'package:flutter/material.dart';
import 'package:rkm/screens/home_screen.dart';
import 'package:rkm/widgets/text_default.dart';
import '../config/color_palette.dart';
import 'button_default.dart';
class OnBackButton{
onBackButton(context)async {
onBackButton(context,String username)async {
await showDialog(
context: context,
builder: (context){
@@ -13,7 +14,7 @@ class OnBackButton{
content: TextDefault(text: 'Deseja sair e descartar as alterações?',color: ColorPalette.black54,),
actions: [
ButtonDefault(
onPressed: ()=>Navigator.pushNamedAndRemoveUntil(context, '/home', (route) => false),
onPressed: ()=>Navigator.pushAndRemoveUntil(context,MaterialPageRoute(builder:(context)=> HomeScreen(username: username,)), (route) => false),
title: 'Sim',
background: ColorPalette.appBar,
borderColor: ColorPalette.appBar,

View File

@@ -1,5 +1,4 @@
import 'package:flutter/material.dart';
import '../config/const_variable.dart';
class ScreenDev extends StatefulWidget {

View File

@@ -9,11 +9,13 @@ class SubtitleAppbarCitizen extends StatelessWidget {
int title;
bool edit;
List listData;
String username;
SubtitleAppbarCitizen({
required this.title,
this.edit = false,
required this.listData
required this.listData,
required this.username
});
@override
@@ -31,7 +33,7 @@ class SubtitleAppbarCitizen extends StatelessWidget {
TextButton.icon(
onPressed:edit? ()=> Navigator.push(
context,
MaterialPageRoute(builder: (context) => RegisterCitizenScreen(listData: this.listData,)),
MaterialPageRoute(builder: (context) => RegisterCitizenScreen(listData: this.listData,username: this.username,)),
):null,
icon: Icon(Icons.person,color: title==1?Colors.black:ColorPalette.gray,),
label: TextDefault(text: 'Cadastro Cidadão',fontSize: 14,color: title==1?Colors.black:ColorPalette.gray,)
@@ -39,7 +41,7 @@ class SubtitleAppbarCitizen extends StatelessWidget {
TextButton.icon(
onPressed:edit? ()=> Navigator.push(
context,
MaterialPageRoute(builder: (context) => RegisterIndividualScreen(listData: this.listData,)),
MaterialPageRoute(builder: (context) => RegisterIndividualScreen(listData: this.listData,username: this.username)),
):null,
icon: Icon(Icons.assignment_outlined,color: title==2?Colors.black:ColorPalette.gray,),
label: TextDefault(text: 'Cadastro Individual',fontSize: 14,color: title==2?Colors.black:ColorPalette.gray,)
@@ -47,7 +49,7 @@ class SubtitleAppbarCitizen extends StatelessWidget {
TextButton.icon(
onPressed:edit? ()=> Navigator.push(
context,
MaterialPageRoute(builder: (context) => RegisterHomeScreen(listData: this.listData,)),
MaterialPageRoute(builder: (context) => RegisterHomeScreen(listData: this.listData,username: this.username)),
):null,
icon: Icon(Icons.home,color: title==3?Colors.black:ColorPalette.gray,),
label: TextDefault(text: 'Cadastro Domiciliar',fontSize: 14,color: title==3?Colors.black:ColorPalette.gray,)

View File

@@ -1,6 +1,6 @@
name: rkm
description: RKM AB 2.0.
#Cadastro e edição do Cadastro do Cidadão, Cadastro Individual, Cadastro Domiciliar e Visita Domiciliar
publish_to: 'none'
version: 1.0.6+5