QR Code checkin implemented

dev_3.3_LabReportEnhancementCR
haroon amjad 2 years ago
parent 542501f5c5
commit 0a478e077a

@ -1,5 +1,6 @@
import 'dart:typed_data'; import 'dart:typed_data';
import 'package:barcode_scan2/barcode_scan2.dart';
import 'package:diplomaticquarterapp/analytics/google-analytics.dart'; import 'package:diplomaticquarterapp/analytics/google-analytics.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/locator.dart'; import 'package:diplomaticquarterapp/locator.dart';
@ -18,6 +19,7 @@ import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart'; import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/buttons/custom_text_button.dart'; import 'package:diplomaticquarterapp/widgets/buttons/custom_text_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/medical/medical_profile_item.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart'; import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart';
import 'package:diplomaticquarterapp/widgets/new_design/doctor_header.dart'; import 'package:diplomaticquarterapp/widgets/new_design/doctor_header.dart';
import 'package:diplomaticquarterapp/widgets/nfc/nfc_reader_sheet.dart'; import 'package:diplomaticquarterapp/widgets/nfc/nfc_reader_sheet.dart';
@ -56,7 +58,7 @@ class _QRCodeState extends State<QRCode> {
}); });
WidgetsBinding.instance.addPostFrameCallback((timeStamp) { WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
startNFCScan(); // startNFCScan();
}); });
super.initState(); super.initState();
@ -76,9 +78,18 @@ class _QRCodeState extends State<QRCode> {
}); });
} }
startQRCodeScan() async {
String onlineCheckInQRCode = (await BarcodeScanner.scan())?.rawContent;
if (onlineCheckInQRCode != "") {
sendNfcCheckInRequest(onlineCheckInQRCode);
locator<GAnalytics>().todoList.to_do_list_nfc(widget.appointment);
} else {}
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
_context = context; _context = context;
List<Widget> checkInOptionsList = getCheckInOptionsList(context);
return AppScaffold( return AppScaffold(
appBarTitle: TranslationBase.of(context).onlineCheckIn, appBarTitle: TranslationBase.of(context).onlineCheckIn,
isShowAppBar: true, isShowAppBar: true,
@ -123,45 +134,92 @@ class _QRCodeState extends State<QRCode> {
)), )),
), ),
mHeight(21), mHeight(21),
Row( Padding(
children: [ padding: EdgeInsets.only(left: 21, right: 21),
child: GridView.builder(
], shrinkWrap: true,
) primary: false,
physics: NeverScrollableScrollPhysics(),
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2, childAspectRatio: 2 / 2, crossAxisSpacing: 12, mainAxisSpacing: 12),
padding: EdgeInsets.zero,
itemCount: checkInOptionsList.length,
itemBuilder: (BuildContext context, int index) {
return checkInOptionsList[index];
},
),
),
], ],
), ),
), ),
bottomSheet: Container( // bottomSheet: Container(
color: CustomColors.appBackgroudGreyColor, // color: CustomColors.appBackgroudGreyColor,
padding: EdgeInsets.all(21), // padding: EdgeInsets.all(21),
// // height: 45.0,
// child: Row(
// children: [
// Expanded(
// flex: 1,
// child: ButtonTheme(
// shape: RoundedRectangleBorder(
// borderRadius: BorderRadius.circular(10.0),
// ),
// height: 45.0, // height: 45.0,
child: Row( // child: CustomTextButton(
children: [ // backgroundColor: CustomColors.green,
Expanded( // elevation: 0,
flex: 1, // onPressed: () {
child: ButtonTheme( // startNFCScan();
shape: RoundedRectangleBorder( // },
borderRadius: BorderRadius.circular(10.0), // child: Text(TranslationBase.of(context).scanNFC,
), // style: TextStyle(
height: 45.0, // fontSize: 18.0,
child: CustomTextButton( // color: Colors.white,
backgroundColor: CustomColors.green, // )),
elevation: 0, // ),
onPressed: () { // ),
// ),
// ],
// ),
// ),
);
}
List<Widget> getCheckInOptionsList(BuildContext context) {
List<Widget> optionsList = [];
optionsList.add(
InkWell(
onTap: () {
startNFCScan(); startNFCScan();
}, },
child: Text(TranslationBase.of(context).scanNFC, child: MedicalProfileItem(
style: TextStyle( title: TranslationBase.of(context).scanNFC,
fontSize: 18.0, imagePath: 'contactless.svg',
color: Colors.white, subTitle: "",
)), isEnable: true,
width: 80.0,
height: 80.0,
), ),
), ),
), );
],
optionsList.add(
InkWell(
onTap: () {
startQRCodeScan();
},
child: MedicalProfileItem(
title: TranslationBase.of(context).pharmaLiveCareScanQR,
imagePath: 'qr_code.svg',
subTitle: "",
isEnable: true,
width: 80.0,
height: 80.0,
), ),
), ),
); );
return optionsList;
} }
sendEmail() async { sendEmail() async {

@ -294,7 +294,8 @@ class Utils {
)); ));
} }
medical.add(InkWell( medical.add(
InkWell(
onTap: () => projectViewModel.havePrivilege(7) ? Navigator.push(context, FadePage(page: RadiologyHomePage())) : null, onTap: () => projectViewModel.havePrivilege(7) ? Navigator.push(context, FadePage(page: RadiologyHomePage())) : null,
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context).radiology, title: TranslationBase.of(context).radiology,
@ -302,7 +303,8 @@ class Utils {
subTitle: TranslationBase.of(context).radiologySubtitle, subTitle: TranslationBase.of(context).radiologySubtitle,
isEnable: projectViewModel.havePrivilege(7), isEnable: projectViewModel.havePrivilege(7),
), ),
)); ),
);
medical.add(InkWell( medical.add(InkWell(
onTap: () => projectViewModel.havePrivilege(12) ? Navigator.push(context, FadePage(page: HomePrescriptionsPage())) : null, onTap: () => projectViewModel.havePrivilege(12) ? Navigator.push(context, FadePage(page: HomePrescriptionsPage())) : null,
@ -820,10 +822,7 @@ class Utils {
return isVidaPlus; return isVidaPlus;
} }
static String generateSignature() { static String generateSignature() {}
}
} }
Widget applyShadow({Color color = Colors.grey, double shadowOpacity = 0.5, double spreadRadius = 2, double blurRadius = 7, Offset offset = const Offset(2, 2), @required Widget child}) { Widget applyShadow({Color color = Colors.grey, double shadowOpacity = 0.5, double spreadRadius = 2, double blurRadius = 7, Offset offset = const Offset(2, 2), @required Widget child}) {

@ -51,8 +51,8 @@ class MedicalProfileItem extends StatelessWidget {
) )
: SvgPicture.asset( : SvgPicture.asset(
"assets/images/new/services/$imagePath", "assets/images/new/services/$imagePath",
height: SizeConfig.widthMultiplier * 7, height: height != null ? height : SizeConfig.widthMultiplier * 7,
width: SizeConfig.widthMultiplier * 7, width: width != null ? width : SizeConfig.widthMultiplier * 7,
color: imgColor, color: imgColor,
), ),
mFlex(2), mFlex(2),

Loading…
Cancel
Save