You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							1279 lines
						
					
					
						
							50 KiB
						
					
					
				
			
		
		
	
	
							1279 lines
						
					
					
						
							50 KiB
						
					
					
				| import 'dart:convert';
 | |
| 
 | |
| import 'package:flutter/material.dart';
 | |
| import 'package:healthcare_user/Reports/add_reports.dart';
 | |
| import 'package:healthcare_user/Reports/all_records_tab.dart';
 | |
| import 'package:healthcare_user/Reports/finding_images.dart';
 | |
| import 'package:healthcare_user/Reports/prescription_images.dart';
 | |
| import 'package:healthcare_user/Reports/report_images.dart';
 | |
| import 'package:healthcare_user/Reports/update_report.dart';
 | |
| import 'package:healthcare_user/common/settings.dart';
 | |
| import 'package:healthcare_user/common/zoom_image.dart';
 | |
| import 'package:healthcare_user/models/reports_model.dart';
 | |
| import 'package:healthcare_user/report_problem/all-records_onclick_new.dart';
 | |
| import 'package:photo_view/photo_view.dart';
 | |
| import 'package:intl/intl.dart';
 | |
| 
 | |
| class AllReports extends StatefulWidget {
 | |
|   const AllReports({Key? key}) : super(key: key);
 | |
| 
 | |
|   @override
 | |
|   State<AllReports> createState() => _AllReportsState();
 | |
| }
 | |
| 
 | |
| class _AllReportsState extends State<AllReports> {
 | |
| 
 | |
| 
 | |
|   List<ReportsModel> reportsList = [];
 | |
|   List<ReportsModel> reportsListOriginal = [];
 | |
|   bool isReportsDataLoading = false;
 | |
|   bool isSereverIssue = false;
 | |
|   TextEditingController searchController = TextEditingController();
 | |
|   TextEditingController dateInput = TextEditingController();
 | |
|   TextEditingController fromdateController = TextEditingController();
 | |
|   TextEditingController todateController = TextEditingController();
 | |
|   DateTime fromDate=DateTime.now();
 | |
|   String dropdownSearchType = 'Problem';
 | |
|   String? searchBy;
 | |
|   var typeOfSearchItems = [
 | |
|     'Problem',
 | |
|     'Doctor',
 | |
|     'Date',
 | |
|   ];
 | |
| 
 | |
|   Future<void> getAllRecords() async {
 | |
|     isReportsDataLoading=true;
 | |
|     try {
 | |
|       var response = await AppSettings.getAllRecords();
 | |
| 
 | |
|       setState(() {
 | |
|         reportsListOriginal = ((jsonDecode(response)) as List)
 | |
|             .map((dynamic model) {
 | |
|           return ReportsModel.fromJson(model);
 | |
|         }).toList();
 | |
|         reportsList=reportsListOriginal.reversed.toList();
 | |
|         isReportsDataLoading = false;
 | |
|       });
 | |
|     } catch (e) {
 | |
|       setState(() {
 | |
|         isReportsDataLoading = false;
 | |
|         isSereverIssue = true;
 | |
|       });
 | |
|     }
 | |
|   }
 | |
| 
 | |
| 
 | |
|   Future<void> getRecordsByProblemName(var problem) async {
 | |
| 
 | |
|     isReportsDataLoading=true;
 | |
|     try {
 | |
|       var response = await AppSettings.getAllRecords();
 | |
| 
 | |
|       setState(() {
 | |
|         reportsListOriginal = ((jsonDecode(response)) as List)
 | |
|             .map((dynamic model) {
 | |
|           return ReportsModel.fromJson(model);
 | |
|         }).toList();
 | |
|         reportsList=reportsListOriginal.reversed.toList();
 | |
|         reportsList= reportsListOriginal.where(
 | |
|                 (x) => x.problem.toString().toLowerCase().contains(problem.toString().toLowerCase())
 | |
|         ).toList();
 | |
|         isReportsDataLoading = false;
 | |
|       });
 | |
|     } catch (e) {
 | |
|       setState(() {
 | |
|         isReportsDataLoading = false;
 | |
|         isSereverIssue = true;
 | |
|       });
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   Future<void> getRecordsByDoctorName(var doctor) async {
 | |
| 
 | |
|     isReportsDataLoading=true;
 | |
|     try {
 | |
|       var response = await AppSettings.getAllRecords();
 | |
| 
 | |
|       setState(() {
 | |
|         reportsListOriginal = ((jsonDecode(response)) as List)
 | |
|             .map((dynamic model) {
 | |
|           return ReportsModel.fromJson(model);
 | |
|         }).toList();
 | |
|         reportsList=reportsListOriginal.reversed.toList();
 | |
|         reportsList= reportsListOriginal.where(
 | |
|                 (x) => x.doctorName.toString().toLowerCase().contains(doctor.toString().toLowerCase())
 | |
|         ).toList();
 | |
|         isReportsDataLoading = false;
 | |
|       });
 | |
|     } catch (e) {
 | |
|       setState(() {
 | |
|         isReportsDataLoading = false;
 | |
|         isSereverIssue = true;
 | |
|       });
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   Future<void> getRecordsByDate(var date) async {
 | |
| 
 | |
|     isReportsDataLoading=true;
 | |
|     try {
 | |
|       var response = await AppSettings.getAllRecords();
 | |
| 
 | |
|       setState(() {
 | |
|         reportsListOriginal = ((jsonDecode(response)) as List)
 | |
|             .map((dynamic model) {
 | |
|           return ReportsModel.fromJson(model);
 | |
|         }).toList();
 | |
|         reportsList=reportsListOriginal.reversed.toList();
 | |
|         reportsList= reportsListOriginal.where(
 | |
|                 (x) => x.date.toString().toLowerCase().contains(date.toString().toLowerCase())
 | |
|         ).toList();
 | |
|         isReportsDataLoading = false;
 | |
|       });
 | |
|     } catch (e) {
 | |
|       setState(() {
 | |
|         isReportsDataLoading = false;
 | |
|         isSereverIssue = true;
 | |
|       });
 | |
|     }
 | |
|   }
 | |
| 
 | |
| 
 | |
|   Future<void> getRecordsByDateRange(var fromDate,var toDate) async {
 | |
|     isReportsDataLoading = true;
 | |
| 
 | |
|     try {
 | |
|       var response = await AppSettings.getAllRecords();
 | |
| 
 | |
|       setState(() {
 | |
|         reportsListOriginal = ((jsonDecode(response)) as List)
 | |
|             .map((dynamic model) {
 | |
|           return ReportsModel.fromJson(model);
 | |
|         }).toList();
 | |
|         reportsList=reportsListOriginal.reversed.toList();
 | |
|         var dateToCheck = DateTime.now().add(Duration(days: -1));
 | |
| 
 | |
|         reportsList = reportsListOriginal.reversed.where((product) {
 | |
|           final date = product.dateForFilter;
 | |
|           final startDate =DateFormat('dd-MM-yyyy').parse(fromDate);
 | |
|           final endDate = DateFormat('dd-MM-yyyy').parse(toDate);
 | |
|           return date.isAfter(startDate) && date.isBefore(endDate);
 | |
| 
 | |
|           //reportsList=reportsListOriginal.reversed.toList();
 | |
|         }).toList();
 | |
| 
 | |
|         /*if( dateToCheck.isAfter(startDate) && dateToCheck.isBefore(endDate))
 | |
|         {
 | |
|           print("dateToCheck is between now and lastYear");
 | |
|         }
 | |
|         else
 | |
|         {
 | |
|           print("dateToCheck is not between now and lastYear");
 | |
|         }*/
 | |
| 
 | |
| 
 | |
|         isReportsDataLoading = false;
 | |
|       });
 | |
|     } catch (e) {
 | |
|       setState(() {
 | |
|         isReportsDataLoading = false;
 | |
|         isSereverIssue = true;
 | |
|       });
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   @override
 | |
|   void initState() {
 | |
|     getAllRecords();
 | |
|     var now = new DateTime.now();
 | |
|     String formattedDate = DateFormat('dd-MM-yyyy').format(now);
 | |
|     fromdateController.text=formattedDate;
 | |
|     todateController.text=formattedDate;
 | |
|     super.initState();
 | |
|   }
 | |
| 
 | |
| 
 | |
|   showPicDialog(var imageUrl){
 | |
|     return showDialog(
 | |
|       context: context,
 | |
|       barrierDismissible: false,
 | |
|       builder: (BuildContext context) {
 | |
|         return StatefulBuilder(
 | |
|             builder: (BuildContext context, StateSetter setState) {
 | |
|               return AlertDialog(
 | |
|                 title: const Text(''),
 | |
|                 content: SingleChildScrollView(
 | |
|                   child: ListBody(
 | |
|                     children: <Widget>[
 | |
|                       Container(
 | |
|                           width: MediaQuery.of(context).size.width * .10,
 | |
|                           height: MediaQuery.of(context).size.height * .50,
 | |
|                           child: PhotoView(
 | |
|                             imageProvider: NetworkImage(imageUrl) as ImageProvider,
 | |
|                             maxScale: PhotoViewComputedScale.contained * 4.0,
 | |
|                             minScale: PhotoViewComputedScale.contained,
 | |
|                             initialScale: PhotoViewComputedScale.contained,
 | |
|                             basePosition: Alignment.center,
 | |
| 
 | |
|                           )
 | |
|                       )
 | |
|                     ],
 | |
|                   ),
 | |
|                 ),
 | |
|                 actions: <Widget>[
 | |
|                   TextButton(
 | |
|                     child: Text('Close', style: textButtonStyle()),
 | |
|                     onPressed: () {
 | |
|                       Navigator.of(context).pop();
 | |
|                     },
 | |
|                   ),
 | |
|                 ],
 | |
|               );
 | |
|             });
 | |
|       },
 | |
|     );
 | |
|   }
 | |
| 
 | |
| 
 | |
|   Widget findings(var obj){
 | |
|     return Container(
 | |
|       width: double.infinity,
 | |
|       height: MediaQuery.of(context).size.height * .20,
 | |
|       child: ListView.builder(
 | |
|           scrollDirection: Axis.horizontal,
 | |
|           itemCount: obj.findingsImages.length,
 | |
|           itemBuilder: (context, index) {
 | |
|             return Column(
 | |
|               children: [
 | |
|                 Card(
 | |
|                   child: GestureDetector(
 | |
|                     onTap: (){
 | |
|                       /*showPicDialog(obj.findingsImages[index]['url']);*/
 | |
|                       Navigator.push(
 | |
|                           context,
 | |
|                           new MaterialPageRoute(
 | |
|                               builder: (__) => new ImageZoomPage(imageName:'Findings',imageDetails:obj.findingsImages[index]['url'])));
 | |
|                     },
 | |
|                     child: Container(
 | |
|                       width: MediaQuery.of(context).size.width *
 | |
|                           .30,
 | |
|                       height:
 | |
|                       MediaQuery.of(context).size.height *
 | |
|                           .15,
 | |
|                       decoration: BoxDecoration(
 | |
|                           shape: BoxShape.rectangle,
 | |
|                           image: DecorationImage(
 | |
|                               image: NetworkImage(
 | |
|                                   obj.findingsImages[index]['url'])
 | |
|                               as ImageProvider, // picked file
 | |
|                               fit: BoxFit.fill)),
 | |
|                     ),
 | |
|                   ),
 | |
|                 ),
 | |
|                 /*Expanded(child:IconButton(
 | |
|                                     icon: const Icon(Icons.remove,color: Colors.red,),
 | |
| 
 | |
|                                     onPressed: () async{
 | |
| 
 | |
|                                     },
 | |
|                                   ),)*/
 | |
|               ],
 | |
|             );
 | |
|           }),
 | |
|     );
 | |
|   }
 | |
| 
 | |
|   Widget reports(var obj){
 | |
| 
 | |
|     return Container(
 | |
|       width: double.infinity,
 | |
|       height: MediaQuery.of(context).size.height * .20,
 | |
|       child: ListView.builder(
 | |
|           scrollDirection: Axis.horizontal,
 | |
|           itemCount: obj.reportImages.length,
 | |
|           itemBuilder: (context, index) {
 | |
|             return Column(
 | |
|               children: [
 | |
|                 Card(
 | |
|                   child: GestureDetector(
 | |
|                     onTap: (){
 | |
|                       //showPicDialog(obj.reportImages[index]['url']);
 | |
| 
 | |
|                       Navigator.push(
 | |
|                           context,
 | |
|                           new MaterialPageRoute(
 | |
|                               builder: (__) => new ImageZoomPage(imageName:'Reports',imageDetails:obj.reportImages[index]['url'])));
 | |
| 
 | |
|                     },
 | |
|                     child: Container(
 | |
|                       width: MediaQuery.of(context).size.width * .30,
 | |
|                       height: MediaQuery.of(context).size.height * .15,
 | |
|                       decoration: BoxDecoration(
 | |
|                           shape: BoxShape.rectangle,
 | |
|                           image: DecorationImage(
 | |
|                               image: NetworkImage(
 | |
|                                   obj.reportImages[index]
 | |
|                                   ['url'])
 | |
|                               as ImageProvider, // picked file
 | |
|                               fit: BoxFit.fill)),
 | |
|                     ),
 | |
|                   ),
 | |
|                 ),
 | |
|                 /*Expanded(child:IconButton(
 | |
|                                     icon: const Icon(Icons.remove,color: Colors.red,),
 | |
| 
 | |
|                                     onPressed: () async{
 | |
| 
 | |
|                                     },
 | |
|                                   ),)*/
 | |
|               ],
 | |
|             );
 | |
|           }),
 | |
|     );
 | |
| 
 | |
|   }
 | |
| 
 | |
|   Widget prescriptions(var obj){
 | |
| 
 | |
|     return Container(
 | |
|       width: double.infinity,
 | |
|       height: MediaQuery.of(context).size.height * .20,
 | |
|       child: ListView.builder(
 | |
|           scrollDirection: Axis.horizontal,
 | |
|           itemCount: obj.prescriptionImages.length,
 | |
|           itemBuilder: (context, index) {
 | |
|             return Column(
 | |
|               children: [
 | |
|                 Card(
 | |
|                   child: GestureDetector(
 | |
|                     onTap: (){
 | |
|                       //showPicDialog(obj.prescriptionImages[index]['url']);
 | |
|                       Navigator.push(
 | |
|                           context,
 | |
|                           new MaterialPageRoute(
 | |
|                               builder: (__) => new ImageZoomPage(imageName:'Prescriptions',imageDetails:obj.prescriptionImages[index]['url'])));
 | |
| 
 | |
| 
 | |
| 
 | |
|                     },
 | |
|                     child: Container(
 | |
|                       width: MediaQuery.of(context).size.width * .30,
 | |
|                       height: MediaQuery.of(context).size.height * .15,
 | |
|                       decoration: BoxDecoration(
 | |
|                           shape: BoxShape.rectangle,
 | |
|                           image: DecorationImage(
 | |
|                               image: NetworkImage(
 | |
|                                   obj.prescriptionImages[index]
 | |
|                                   ['url'])
 | |
|                               as ImageProvider, // picked file
 | |
|                               fit: BoxFit.fill)),
 | |
|                     ),
 | |
|                   ),
 | |
|                 ),
 | |
|                 /*Expanded(child:IconButton(
 | |
|                                     icon: const Icon(Icons.remove,color: Colors.red,),
 | |
| 
 | |
|                                     onPressed: () async{
 | |
| 
 | |
|                                     },
 | |
|                                   ),)*/
 | |
|               ],
 | |
|             );
 | |
|           }),
 | |
|     );
 | |
| 
 | |
|   }
 | |
| 
 | |
|   Widget _filtereddata(){
 | |
|     if(reportsList.length!=0){
 | |
|       reportsList.sort((a, b) => b.date.compareTo(a.date));
 | |
|      return ListView.builder(
 | |
|          padding:  EdgeInsets.all(0),
 | |
|          itemCount: reportsList.length,
 | |
|          itemBuilder: (BuildContext context, int index) {
 | |
|            return GestureDetector(
 | |
|              onTap: (){
 | |
| 
 | |
|                Navigator.push(
 | |
|                    context,
 | |
|                    new MaterialPageRoute(
 | |
|                        builder: (__) => new AllRecordsOnClick(recordDetails:reportsList[index],initialIndex: 0,))).then((value) {
 | |
|                  getAllRecords();
 | |
|                });
 | |
|              },
 | |
|              child: Card(
 | |
| 
 | |
|                //color: prescriptionsList[index].cardColor,
 | |
|                child: Padding(
 | |
|                  padding:EdgeInsets.all(8) ,
 | |
|                  child: Column(
 | |
|                    crossAxisAlignment: CrossAxisAlignment.start,
 | |
|                    children: [
 | |
|                      Row(
 | |
|                        mainAxisAlignment: MainAxisAlignment.spaceBetween,
 | |
|                        crossAxisAlignment: CrossAxisAlignment.center,
 | |
|                        children: [
 | |
| 
 | |
|                          Container(
 | |
|                            width: MediaQuery.of(context).size.width * .55,
 | |
|                            child: Column(
 | |
|                              mainAxisAlignment: MainAxisAlignment.start,
 | |
|                              crossAxisAlignment: CrossAxisAlignment.start,
 | |
|                              children: [
 | |
|                                Text('Problem: '+reportsList[index].problem.toString().toUpperCase(),style: problemTextStyle()),
 | |
|                                Text(reportsList[index].doctorName.toString().toUpperCase(),style: valuesTextStyle()),
 | |
|                                Text(reportsList[index].hospitalName.toString().toUpperCase(),style: valuesTextStyle()),
 | |
|                                Text(reportsList[index].date.toString().toUpperCase(),style: valuesTextStyle()),
 | |
|                                Text('Patient details: ',style: problemTextStyle()),
 | |
|                                Text(reportsList[index].patient_name.toString().toUpperCase(),style: valuesTextStyle()),
 | |
|                                Row(
 | |
|                                  children: [
 | |
|                                    Text(reportsList[index].gender.toString().toUpperCase(),style: valuesTextStyle()),
 | |
|                                    SizedBox(width:MediaQuery.of(context).size.width * .05,),
 | |
|                                    Text(reportsList[index].age.toString().toUpperCase()+" Yrs",style: valuesTextStyle()),
 | |
|                                  ],
 | |
|                                ),
 | |
| 
 | |
| 
 | |
|                              ],
 | |
|                            ),
 | |
| 
 | |
| 
 | |
|                          ),
 | |
| 
 | |
| 
 | |
|                          Expanded(child:IconButton(
 | |
|                            icon: const Icon(Icons.edit,color: primaryColor,),
 | |
|                            onPressed: () {
 | |
| 
 | |
|                              Navigator.push(
 | |
|                                  context,
 | |
|                                  new MaterialPageRoute(
 | |
|                                      builder: (__) => new UpdateReport(reportDetails:reportsList[index]))).then((value) {
 | |
|                                getAllRecords();
 | |
|                              });
 | |
|                            },
 | |
|                          ),),
 | |
|                          Expanded(child:IconButton(
 | |
|                            icon: const Icon(Icons.delete,color: primaryColor,),
 | |
| 
 | |
|                            onPressed: () async{
 | |
|                              showDialog(
 | |
|                                //if set to true allow to close popup by tapping out of the popup
 | |
|                                //barrierDismissible: false,
 | |
|                                context: context,
 | |
|                                builder: (BuildContext context) => AlertDialog(
 | |
|                                  title: const Text('Do you want to delete Record?',
 | |
|                                      style: TextStyle(
 | |
|                                        color: primaryColor,
 | |
|                                        fontSize: 20,
 | |
|                                      )),
 | |
|                                  actionsAlignment: MainAxisAlignment.spaceBetween,
 | |
|                                  actions: [
 | |
|                                    TextButton(
 | |
|                                      onPressed: ()async {
 | |
| 
 | |
|                                        bool deleteTankStatus = await AppSettings.deleteRecord(reportsList[index].recordId);
 | |
| 
 | |
| 
 | |
|                                        if(deleteTankStatus){
 | |
|                                          getAllRecords();
 | |
|                                          AppSettings.longSuccessToast('Record deleted successfully');
 | |
|                                          Navigator.of(context).pop(true);
 | |
| 
 | |
|                                        }
 | |
|                                        else{
 | |
|                                          AppSettings.longFailedToast('Record deletion failed');
 | |
|                                          Navigator.of(context).pop(true);
 | |
|                                        }
 | |
|                                      },
 | |
|                                      child: const Text('Yes',
 | |
|                                          style: TextStyle(
 | |
|                                            color: primaryColor,
 | |
|                                            fontSize: 20,
 | |
|                                          )),
 | |
|                                    ),
 | |
|                                    TextButton(
 | |
|                                      onPressed: () {
 | |
|                                        Navigator.of(context).pop(true);
 | |
|                                      },
 | |
|                                      child: const Text('No',
 | |
|                                          style: TextStyle(
 | |
|                                            color: primaryColor,
 | |
|                                            fontSize: 20,
 | |
|                                          )),
 | |
|                                    ),
 | |
|                                  ],
 | |
|                                ),
 | |
|                              );
 | |
| 
 | |
| 
 | |
| 
 | |
|                            },
 | |
|                          ),)
 | |
| 
 | |
|                        ],
 | |
| 
 | |
|                      ),
 | |
| 
 | |
|                      Row(
 | |
|                        children: [
 | |
|                          ElevatedButton(
 | |
|                            style: ElevatedButton.styleFrom(
 | |
|                              primary: primaryColor, // background
 | |
|                              onPrimary: Colors.white, // foreground
 | |
|                            ),
 | |
|                            onPressed: () async {
 | |
|                              Navigator.push(
 | |
|                                  context,
 | |
|                                  new MaterialPageRoute(
 | |
|                                      builder: (__) => new AllRecordsOnClick(recordDetails:reportsList[index],initialIndex: 0,))).then((value) {
 | |
|                                getAllRecords();
 | |
|                              });
 | |
|                              /*Navigator.push(
 | |
|                                  context,
 | |
|                                  new MaterialPageRoute(
 | |
|                                      builder: (__) => new AllReportsTab(recordDetails:reportsList[index],initialIndex: 0,))).then((value) {
 | |
|                                getAllRecords();
 | |
|                              });*/
 | |
|                            },
 | |
|                            child:  Text('Findings: '+reportsList[index].findingsImages.length.toString(),style:textButtonStyleReports(),),
 | |
|                          ),
 | |
|                          SizedBox(
 | |
|                            width:MediaQuery.of(context).size.width * .05,
 | |
|                          ),
 | |
|                          ElevatedButton(
 | |
|                            style: ElevatedButton.styleFrom(
 | |
|                              primary: primaryColor, // background
 | |
|                              onPrimary: Colors.white, // foreground
 | |
|                            ),
 | |
|                            onPressed: () async {
 | |
|                              Navigator.push(
 | |
|                                  context,
 | |
|                                  new MaterialPageRoute(
 | |
|                                      builder: (__) => new AllRecordsOnClick(recordDetails:reportsList[index],initialIndex: 0,))).then((value) {
 | |
|                                getAllRecords();
 | |
|                              });
 | |
|                              /*Navigator.push(
 | |
|                                  context,
 | |
|                                  new MaterialPageRoute(
 | |
|                                      builder: (__) => new AllReportsTab(recordDetails:reportsList[index],initialIndex: 1,))).then((value) {
 | |
|                                getAllRecords();
 | |
|                              });*/
 | |
| 
 | |
|                            },
 | |
|                            child:  Text('Reports: '+reportsList[index].reportImages.length.toString(),style:textButtonStyleReports()),
 | |
|                          ),
 | |
|                          SizedBox(
 | |
|                            width:MediaQuery.of(context).size.width * .05,
 | |
|                          ),
 | |
|                          ElevatedButton(
 | |
|                            style: ElevatedButton.styleFrom(
 | |
|                              primary: primaryColor, // background
 | |
|                              onPrimary: Colors.white, // foreground
 | |
|                            ),
 | |
|                            onPressed: () async {
 | |
|                              Navigator.push(
 | |
|                                  context,
 | |
|                                  new MaterialPageRoute(
 | |
|                                      builder: (__) => new AllRecordsOnClick(recordDetails:reportsList[index],initialIndex: 0,))).then((value) {
 | |
|                                getAllRecords();
 | |
|                              });
 | |
| 
 | |
|                              /*Navigator.push(
 | |
|                                  context,
 | |
|                                  new MaterialPageRoute(
 | |
|                                      builder: (__) => new AllReportsTab(recordDetails:reportsList[index],initialIndex: 2,))).then((value) {
 | |
|                                getAllRecords();
 | |
|                              });*/
 | |
| 
 | |
|                            },
 | |
|                            child:  Text('Prescriptions: '+reportsList[index].prescriptionImages.length.toString(),style:textButtonStyleReports()),
 | |
|                          ),
 | |
|                        ],
 | |
|                      ),
 | |
| 
 | |
| 
 | |
| 
 | |
|                      Visibility(
 | |
|                        visible: false,
 | |
|                        child: Text('Findings',style: headingsTextStyle()),),
 | |
|                      Visibility(
 | |
|                          visible: false,
 | |
|                          child: findings(reportsList[index])),
 | |
|                      Visibility(
 | |
|                        visible: false,
 | |
|                        child: Text('Reports',style: headingsTextStyle()),),
 | |
|                      Visibility(
 | |
|                          visible: false,
 | |
|                          child:reports(reportsList[index]) ),
 | |
|                      Visibility(
 | |
|                        visible: false,
 | |
|                        child: Text('Prescriptions',style: headingsTextStyle()),),
 | |
|                      Visibility(
 | |
|                          visible:false,
 | |
|                          child:prescriptions(reportsList[index]) ),
 | |
|                    ],
 | |
|                  ),
 | |
|                ),
 | |
|              ),
 | |
|            );
 | |
|          });
 | |
|     }
 | |
|     else{
 | |
|       return   Padding(padding: EdgeInsets.fromLTRB(60,10,60,10),
 | |
|       child: Column(
 | |
|         children: [
 | |
|           Text('No records found related to your search'),
 | |
|           SizedBox(
 | |
|             height: 20,
 | |
|           ),
 | |
|           CircleAvatar(
 | |
|             backgroundColor: Colors.red,
 | |
|             radius: 30,
 | |
|             child: const Icon(
 | |
|               Icons.info,
 | |
|               color: Colors.white,
 | |
|             ),
 | |
|           )
 | |
|         ],
 | |
|       ),);
 | |
| 
 | |
|     }
 | |
|   }
 | |
| 
 | |
| 
 | |
|   Widget _allreports(){
 | |
| 
 | |
|     if(reportsListOriginal.length!=0){
 | |
| 
 | |
|       return  Column(
 | |
|           crossAxisAlignment: CrossAxisAlignment.end,
 | |
|           children: [
 | |
|             /*Container(
 | |
|               padding: const EdgeInsets.fromLTRB(10, 10, 10, 0),
 | |
|               child: DropdownButtonFormField(
 | |
|                 // Initial Value
 | |
|                 value: dropdownSearchType,
 | |
|                 isExpanded: true,
 | |
|                 decoration: const InputDecoration(
 | |
|                   prefixIcon: Icon(
 | |
|                     Icons.search,
 | |
|                     color: greyColor,
 | |
|                   ),
 | |
|                   border: OutlineInputBorder(
 | |
|                       borderSide: BorderSide(color: greyColor)),
 | |
|                   focusedBorder: OutlineInputBorder(
 | |
|                     borderSide: BorderSide(color: greyColor),
 | |
|                   ),
 | |
|                   enabledBorder: OutlineInputBorder(
 | |
|                     borderSide: BorderSide(color: greyColor),
 | |
|                   ),
 | |
|                   labelText: 'Search By',
 | |
|                   labelStyle: TextStyle(
 | |
|                     color: greyColor, //<-- SEE HERE
 | |
|                   ),
 | |
|                 ),
 | |
| 
 | |
|                 hint: Text('Select Search Type'),
 | |
|                 // Down Arrow Icon
 | |
|                 icon: const Icon(Icons.keyboard_arrow_down),
 | |
| 
 | |
|                 // Array list of items
 | |
|                 items: typeOfSearchItems.map((String items) {
 | |
|                   return DropdownMenuItem(
 | |
|                     value: items,
 | |
|                     child: Text(items),
 | |
|                   );
 | |
|                 }).toList(),
 | |
|                 // After selecting the desired option,it will
 | |
|                 // change button value to selected value
 | |
|                 onChanged: (String? newValue) {
 | |
|                   setState(() {
 | |
|                     dropdownSearchType = newValue!;
 | |
|                   });
 | |
|                 },
 | |
|               ),
 | |
|             ),*/
 | |
|             Container(
 | |
|               child: Column(
 | |
|                 crossAxisAlignment: CrossAxisAlignment.start,
 | |
|                 mainAxisAlignment: MainAxisAlignment.start,
 | |
|                 children: [
 | |
|                   Padding(padding: EdgeInsets.fromLTRB(10,10,0,0),
 | |
|                   child: Text('Please select search option',style: TextStyle(color: Colors.red,fontWeight: FontWeight.bold,fontSize: 16),),),
 | |
|                   Row(
 | |
|                     mainAxisAlignment: MainAxisAlignment.start,
 | |
|                     crossAxisAlignment: CrossAxisAlignment.start,
 | |
|                     children: [
 | |
|                       Expanded(
 | |
|                         child: RadioListTile(
 | |
|                           title: Text("Problem", style: TextStyle(fontSize: 10)),
 | |
|                           value: "problem",
 | |
|                           groupValue: searchBy,
 | |
|                           activeColor: primaryColor,
 | |
|                           onChanged: (value) {
 | |
|                             setState(() {
 | |
|                               searchBy = value.toString();
 | |
|                             });
 | |
|                           },
 | |
|                         ),
 | |
|                       ),
 | |
|                       Expanded(
 | |
|                         child: RadioListTile(
 | |
|                           title: Text(
 | |
|                             "Doctor",
 | |
|                             style: TextStyle(fontSize: 10),
 | |
|                           ),
 | |
|                           value: "doctor",
 | |
|                           groupValue: searchBy,
 | |
|                           activeColor: primaryColor,
 | |
|                           onChanged: (value) {
 | |
|                             setState(() {
 | |
|                               searchBy = value.toString();
 | |
|                             });
 | |
|                           },
 | |
|                         ),
 | |
|                       ),
 | |
|                       Expanded(
 | |
|                         child: RadioListTile(
 | |
|                           title:
 | |
|                           Text("Date", style: TextStyle(fontSize: 10)),
 | |
|                           value: "date",
 | |
|                           groupValue: searchBy,
 | |
|                           activeColor: primaryColor,
 | |
|                           onChanged: (value) {
 | |
|                             setState(() {
 | |
|                               searchBy = value.toString();
 | |
|                             });
 | |
|                           },
 | |
|                         ),
 | |
|                       ),
 | |
|                     ],
 | |
|                   ),
 | |
|                 ],
 | |
|               )
 | |
| 
 | |
|             ),
 | |
|             Visibility(
 | |
|               visible:searchBy.toString().toLowerCase()=='problem' ,
 | |
|               child: Container(
 | |
|                 height: MediaQuery.of(context).size.height * .07,
 | |
|                 padding:  EdgeInsets.all(5),
 | |
|                 child: Center(child: TextField(
 | |
| 
 | |
|                   cursorColor: primaryColor,
 | |
|                   controller: searchController,
 | |
|                   onChanged: (string) {
 | |
|                     if(string.length>=1){
 | |
|                       getRecordsByProblemName(string);
 | |
|                     }
 | |
|                     else{
 | |
|                       getAllRecords();
 | |
|                     }
 | |
|                   },
 | |
|                   decoration:  InputDecoration(
 | |
|                     prefixIcon: Icon(
 | |
|                       Icons.search,
 | |
|                       color: primaryColor,
 | |
|                     ),
 | |
|                     /*suffixIcon: Icon(
 | |
|                               Icons.clear,
 | |
|                               color: greyColor,
 | |
|                             ),*/
 | |
|                     suffixIcon: searchController.text!=''?IconButton(
 | |
|                       icon:  Icon(
 | |
|                         Icons.clear,
 | |
|                         color: Colors.red,
 | |
|                       ),
 | |
|                       onPressed: () {
 | |
|                         setState(() {
 | |
|                           searchController.text='';
 | |
|                         });
 | |
|                         getAllRecords();
 | |
|                       },
 | |
|                     ):IconButton(
 | |
|                       icon:  Icon(
 | |
|                         Icons.clear,
 | |
|                         color: Colors.transparent,
 | |
|                       ),
 | |
|                       onPressed: () {
 | |
|                       },
 | |
|                     ),
 | |
|                     border: OutlineInputBorder(
 | |
|                       borderSide: BorderSide(color: primaryColor),
 | |
|                       borderRadius: BorderRadius.circular(30),
 | |
|                     ),
 | |
|                     focusedBorder: OutlineInputBorder(
 | |
|                       borderSide: BorderSide(color: primaryColor),
 | |
|                       borderRadius: BorderRadius.circular(30),
 | |
|                     ),
 | |
|                     enabledBorder: OutlineInputBorder(
 | |
|                       borderSide: BorderSide(color: primaryColor),
 | |
|                       borderRadius: BorderRadius.circular(30),
 | |
|                     ),
 | |
|                     //labelText: 'Search by phone number',
 | |
|                     hintText: 'Search by problem',
 | |
|                     labelStyle: TextStyle(
 | |
|                       color: greyColor, //<-- SEE HERE
 | |
|                     ),
 | |
|                   ),
 | |
|                 ),)
 | |
|             ),),
 | |
|             Visibility(
 | |
|               visible:searchBy.toString().toLowerCase()=='doctor' ,
 | |
|               child: Container(
 | |
|                   height: MediaQuery.of(context).size.height * .07,
 | |
|                   padding:  EdgeInsets.all(5),
 | |
|                   child: Center(child: TextField(
 | |
| 
 | |
|                     cursorColor: primaryColor,
 | |
|                     controller: searchController,
 | |
|                     onChanged: (string) {
 | |
|                       if(string.length>=1){
 | |
|                         getRecordsByDoctorName(string);
 | |
|                       }
 | |
|                       else{
 | |
|                         getAllRecords();
 | |
|                       }
 | |
|                     },
 | |
|                     decoration:  InputDecoration(
 | |
|                       prefixIcon: Icon(
 | |
|                         Icons.search,
 | |
|                         color: primaryColor,
 | |
|                       ),
 | |
|                       /*suffixIcon: Icon(
 | |
|                               Icons.clear,
 | |
|                               color: greyColor,
 | |
|                             ),*/
 | |
|                       suffixIcon: searchController.text!=''?IconButton(
 | |
|                         icon:  Icon(
 | |
|                           Icons.clear,
 | |
|                           color: Colors.red,
 | |
|                         ),
 | |
|                         onPressed: () {
 | |
|                           setState(() {
 | |
|                             searchController.text='';
 | |
|                           });
 | |
|                           getAllRecords();
 | |
|                         },
 | |
|                       ):IconButton(
 | |
|                         icon:  Icon(
 | |
|                           Icons.clear,
 | |
|                           color: Colors.transparent,
 | |
|                         ),
 | |
|                         onPressed: () {
 | |
|                         },
 | |
|                       ),
 | |
|                       border: OutlineInputBorder(
 | |
|                         borderSide: BorderSide(color: primaryColor),
 | |
|                         borderRadius: BorderRadius.circular(30),
 | |
|                       ),
 | |
|                       focusedBorder: OutlineInputBorder(
 | |
|                         borderSide: BorderSide(color: primaryColor),
 | |
|                         borderRadius: BorderRadius.circular(30),
 | |
|                       ),
 | |
|                       enabledBorder: OutlineInputBorder(
 | |
|                         borderSide: BorderSide(color: primaryColor),
 | |
|                         borderRadius: BorderRadius.circular(30),
 | |
|                       ),
 | |
|                       //labelText: 'Search by phone number',
 | |
|                       hintText: 'Search by doctor',
 | |
|                       labelStyle: TextStyle(
 | |
|                         color: greyColor, //<-- SEE HERE
 | |
|                       ),
 | |
|                     ),
 | |
|                   ),)
 | |
|               ),),
 | |
|             Visibility(
 | |
|               visible:searchBy.toString().toLowerCase()=='date',
 | |
|               child: Container(
 | |
|                 //height: 60,
 | |
|                 padding:  EdgeInsets.all(5),
 | |
|                 child: Row(
 | |
|                   children: [
 | |
|                     Expanded(
 | |
|                       child: TextField(
 | |
| 
 | |
|                         cursorColor: primaryColor,
 | |
|                         controller: fromdateController,
 | |
|                         onChanged: (string) {
 | |
|                           if(string.length>=1){
 | |
|                             //getRecordsByDate(string);
 | |
|                           }
 | |
|                           else{
 | |
|                             getAllRecords();
 | |
|                           }
 | |
|                         },
 | |
|                         onTap: () async {
 | |
|                           DateTime? pickedDate = await showDatePicker(
 | |
|                             context: context,
 | |
|                             initialDate: DateTime.now(),
 | |
|                             firstDate: DateTime(1950),
 | |
|                             lastDate: DateTime.now(),
 | |
|                             builder: (BuildContext context, Widget? child) {
 | |
|                               return Theme(
 | |
|                                 data: ThemeData.dark().copyWith(
 | |
|                                   colorScheme: ColorScheme.dark(
 | |
|                                     primary: buttonColors,
 | |
|                                     onPrimary: Colors.white,
 | |
|                                     surface: buttonColors,
 | |
|                                     onSurface: Colors.white,
 | |
|                                   ),
 | |
|                                   dialogBackgroundColor: primaryColor,
 | |
|                                 ),
 | |
|                                 child: child!,
 | |
|                               );
 | |
|                             },
 | |
|                           );
 | |
| 
 | |
|                           if (pickedDate != null) {
 | |
|                             print(pickedDate); //pickedDate output format => 2021-03-10 00:00:00.000
 | |
|                             String formattedDate = DateFormat('dd-MM-yyyy').format(pickedDate);
 | |
|                             print(formattedDate); //formatted date output using intl package =>  2021-03-16
 | |
|                             setState(() {
 | |
|                               fromDate=pickedDate;
 | |
|                               fromdateController.text = formattedDate; //set output date to TextField value.
 | |
|                             });
 | |
|                             getRecordsByDateRange(fromdateController.text,todateController.text);
 | |
|                           } else {}
 | |
|                         },
 | |
|                         decoration:  InputDecoration(
 | |
|                           prefixIcon: Icon(
 | |
|                             Icons.calendar_month,
 | |
|                             color: primaryColor,
 | |
|                           ),
 | |
|                           suffixIcon: fromdateController.text!=''?IconButton(
 | |
|                             icon:  Icon(
 | |
|                               Icons.clear,
 | |
|                               color: Colors.red,
 | |
|                             ),
 | |
|                             onPressed: () {
 | |
|                               setState(() {
 | |
|                                 fromdateController.text='';
 | |
|                               });
 | |
|                               getAllRecords();
 | |
|                             },
 | |
|                           ):IconButton(
 | |
|                             icon:  Icon(
 | |
|                               Icons.clear,
 | |
|                               color: Colors.transparent,
 | |
|                             ),
 | |
|                             onPressed: () {
 | |
|                             },
 | |
|                           ),
 | |
|                           border: OutlineInputBorder(
 | |
|                             borderSide: BorderSide(color: primaryColor),
 | |
|                             borderRadius: BorderRadius.circular(30),
 | |
|                           ),
 | |
|                           focusedBorder: OutlineInputBorder(
 | |
|                             borderSide: BorderSide(color: primaryColor),
 | |
|                             borderRadius: BorderRadius.circular(30),
 | |
|                           ),
 | |
|                           enabledBorder: OutlineInputBorder(
 | |
|                             borderSide: BorderSide(color: primaryColor),
 | |
|                             borderRadius: BorderRadius.circular(30),
 | |
|                           ),
 | |
|                           //labelText: 'Search by phone number',
 | |
|                           hintText: 'From date',
 | |
| 
 | |
|                           labelStyle: TextStyle(
 | |
|                             color: greyColor, //<-- SEE HERE
 | |
|                           ),
 | |
|                         ),
 | |
|                       ),
 | |
|                     ),
 | |
|                     SizedBox(width: 5),
 | |
|                     Expanded(
 | |
|                       child: TextField(
 | |
| 
 | |
|                         cursorColor: primaryColor,
 | |
|                         controller: todateController,
 | |
|                         onChanged: (string) {
 | |
|                           if(string.length>=1){
 | |
|                             //getRecordsByDate(string);
 | |
|                           }
 | |
|                           else{
 | |
|                             getAllRecords();
 | |
|                           }
 | |
|                         },
 | |
|                         onTap: () async {
 | |
|                           DateTime? pickedDate = await showDatePicker(
 | |
|                             context: context,
 | |
|                             initialDate: DateTime.now(),
 | |
|                             firstDate: fromDate,
 | |
|                             lastDate: DateTime.now(),
 | |
|                             builder: (BuildContext context, Widget? child) {
 | |
|                               return Theme(
 | |
|                                 data: ThemeData.dark().copyWith(
 | |
|                                   colorScheme: ColorScheme.dark(
 | |
|                                     primary: buttonColors,
 | |
|                                     onPrimary: Colors.white,
 | |
|                                     surface: buttonColors,
 | |
|                                     onSurface: Colors.white,
 | |
|                                   ),
 | |
|                                   dialogBackgroundColor: primaryColor,
 | |
|                                 ),
 | |
|                                 child: child!,
 | |
|                               );
 | |
|                             },
 | |
|                           );
 | |
| 
 | |
|                           if (pickedDate != null) {
 | |
|                             print(
 | |
|                                 pickedDate); //pickedDate output format => 2021-03-10 00:00:00.000
 | |
|                             String formattedDate =
 | |
|                             DateFormat('dd-MM-yyyy').format(pickedDate);
 | |
|                             print(
 | |
|                                 formattedDate); //formatted date output using intl package =>  2021-03-16
 | |
|                             setState(() {
 | |
|                               todateController.text = formattedDate; //set output date to TextField value.
 | |
|                             });
 | |
|                             getRecordsByDateRange(fromdateController.text,todateController.text);
 | |
|                           } else {}
 | |
|                         },
 | |
|                         decoration:  InputDecoration(
 | |
|                           prefixIcon: Icon(
 | |
|                             Icons.calendar_month,
 | |
|                             color: primaryColor,
 | |
|                           ),
 | |
|                           suffixIcon: todateController.text!=''?IconButton(
 | |
|                             icon:  Icon(
 | |
|                               Icons.clear,
 | |
|                               color: Colors.red,
 | |
|                             ),
 | |
|                             onPressed: () {
 | |
|                               setState(() {
 | |
|                                 todateController.text='';
 | |
|                               });
 | |
|                               getAllRecords();
 | |
|                             },
 | |
|                           ):IconButton(
 | |
|                             icon:  Icon(
 | |
|                               Icons.clear,
 | |
|                               color: Colors.transparent,
 | |
|                             ),
 | |
|                             onPressed: () {
 | |
|                             },
 | |
|                           ),
 | |
|                           border: OutlineInputBorder(
 | |
|                             borderSide: BorderSide(color: primaryColor),
 | |
|                             borderRadius: BorderRadius.circular(30),
 | |
|                           ),
 | |
|                           focusedBorder: OutlineInputBorder(
 | |
|                             borderSide: BorderSide(color: primaryColor),
 | |
|                             borderRadius: BorderRadius.circular(30),
 | |
|                           ),
 | |
|                           enabledBorder: OutlineInputBorder(
 | |
|                             borderSide: BorderSide(color: primaryColor),
 | |
|                             borderRadius: BorderRadius.circular(30),
 | |
|                           ),
 | |
|                           //labelText: 'Search by phone number',
 | |
|                           hintText: 'To date',
 | |
| 
 | |
|                           labelStyle: TextStyle(
 | |
|                             color: greyColor, //<-- SEE HERE
 | |
|                           ),
 | |
|                         ),
 | |
|                       ),
 | |
|                     ),
 | |
|                     SizedBox(width: 5),
 | |
| 
 | |
|                   ],
 | |
|                 ),
 | |
|               ),),
 | |
|             /*Visibility(
 | |
|               visible:searchBy.toString().toLowerCase()=='date' ,
 | |
|               child: Container(
 | |
|                   height: MediaQuery.of(context).size.height * .07,
 | |
|                   padding:  EdgeInsets.all(5),
 | |
|                   child: Center(child: TextField(
 | |
| 
 | |
|                     cursorColor: primaryColor,
 | |
|                     controller: searchController,
 | |
|                     onChanged: (string) {
 | |
|                       if(string.length>=1){
 | |
|                         getRecordsByDate(string);
 | |
|                       }
 | |
|                       else{
 | |
|                         getAllRecords();
 | |
|                       }
 | |
|                     },
 | |
|                     onTap: () async {
 | |
|                       DateTime? pickedDate = await showDatePicker(
 | |
|                         context: context,
 | |
|                         initialDate: DateTime.now(),
 | |
|                         firstDate: DateTime(1950),
 | |
|                         lastDate: DateTime.now(),
 | |
|                         builder: (BuildContext context, Widget? child) {
 | |
|                           return Theme(
 | |
|                             data: ThemeData.dark().copyWith(
 | |
|                               colorScheme: ColorScheme.dark(
 | |
|                                 primary: buttonColors,
 | |
|                                 onPrimary: Colors.white,
 | |
|                                 surface: buttonColors,
 | |
|                                 onSurface: Colors.white,
 | |
|                               ),
 | |
|                               dialogBackgroundColor: primaryColor,
 | |
|                             ),
 | |
|                             child: child!,
 | |
|                           );
 | |
|                         },
 | |
|                       );
 | |
| 
 | |
|                       if (pickedDate != null) {
 | |
|                         print(
 | |
|                             pickedDate); //pickedDate output format => 2021-03-10 00:00:00.000
 | |
|                         String formattedDate =
 | |
|                         DateFormat('dd-MM-yyyy').format(pickedDate);
 | |
|                         print(
 | |
|                             formattedDate); //formatted date output using intl package =>  2021-03-16
 | |
|                         setState(() {
 | |
|                           searchController.text = formattedDate; //set output date to TextField value.
 | |
|                         });
 | |
|                         getRecordsByDate(searchController.text);
 | |
|                       } else {}
 | |
|                     },
 | |
|                     decoration:  InputDecoration(
 | |
|                       prefixIcon: Icon(
 | |
|                         Icons.search,
 | |
|                         color: primaryColor,
 | |
|                       ),
 | |
|                       suffixIcon: searchController.text!=''?IconButton(
 | |
|                         icon:  Icon(
 | |
|                           Icons.clear,
 | |
|                           color: Colors.red,
 | |
|                         ),
 | |
|                         onPressed: () {
 | |
|                           setState(() {
 | |
|                             searchController.text='';
 | |
|                           });
 | |
|                           getAllRecords();
 | |
|                         },
 | |
|                       ):IconButton(
 | |
|                         icon:  Icon(
 | |
|                           Icons.clear,
 | |
|                           color: Colors.transparent,
 | |
|                         ),
 | |
|                         onPressed: () {
 | |
|                         },
 | |
|                       ),
 | |
|                       border: OutlineInputBorder(
 | |
|                         borderSide: BorderSide(color: primaryColor),
 | |
|                         borderRadius: BorderRadius.circular(30),
 | |
|                       ),
 | |
|                       focusedBorder: OutlineInputBorder(
 | |
|                         borderSide: BorderSide(color: primaryColor),
 | |
|                         borderRadius: BorderRadius.circular(30),
 | |
|                       ),
 | |
|                       enabledBorder: OutlineInputBorder(
 | |
|                         borderSide: BorderSide(color: primaryColor),
 | |
|                         borderRadius: BorderRadius.circular(30),
 | |
|                       ),
 | |
|                       //labelText: 'Search by phone number',
 | |
|                       hintText: 'Search by date',
 | |
| 
 | |
|                       labelStyle: TextStyle(
 | |
|                         color: greyColor, //<-- SEE HERE
 | |
|                       ),
 | |
|                     ),
 | |
|                   ),)
 | |
|               ),
 | |
| 
 | |
| 
 | |
|              ),*/
 | |
|             Expanded(child: _filtereddata()),
 | |
| 
 | |
|           ]);
 | |
| 
 | |
| 
 | |
|     }
 | |
|     else{
 | |
|       return  Center(
 | |
|           child: Padding(
 | |
|             padding: EdgeInsets.fromLTRB(0, 40, 0, 0),
 | |
|             child: Column(
 | |
|               crossAxisAlignment: CrossAxisAlignment.center,
 | |
|               children: [
 | |
|                 SizedBox(height: MediaQuery.of(context).size.height * .25,),
 | |
|                 Text('Click below icon to add new Record'),
 | |
|                 SizedBox(
 | |
|                   height: 20,
 | |
|                 ),
 | |
|                 CircleAvatar(
 | |
|                   backgroundColor: primaryColor,
 | |
|                   radius: 40,
 | |
|                   child: IconButton(
 | |
|                     iconSize: 40,
 | |
|                     icon: const Icon(
 | |
|                       Icons.add,
 | |
|                       color: Colors.white,
 | |
|                     ),
 | |
|                     onPressed: () async {
 | |
|                       Navigator.push(context, MaterialPageRoute(builder: (context) => AddReports())).then((value) {
 | |
|                         getAllRecords();
 | |
|                       });
 | |
|                     },
 | |
|                   ),
 | |
|                 )
 | |
|               ],
 | |
|             ),
 | |
|           )
 | |
|       );
 | |
|     }
 | |
| 
 | |
| 
 | |
|   }
 | |
| 
 | |
| 
 | |
|   @override
 | |
|   Widget build(BuildContext context) {
 | |
|     return Scaffold(
 | |
|       appBar: AppSettings.appBar('Records'),
 | |
|       body: isReportsDataLoading?Center(
 | |
|         child: CircularProgressIndicator(
 | |
|           color: primaryColor,
 | |
|           strokeWidth: 5.0,
 | |
|         ),
 | |
|       ): _allreports(),
 | |
|       floatingActionButton: Visibility(
 | |
|         visible:reportsListOriginal.length!=0,
 | |
|         child: CircleAvatar(
 | |
|           backgroundColor: buttonColors,
 | |
|           radius: 40,
 | |
|           child: Column(
 | |
|             mainAxisSize: MainAxisSize.min,
 | |
|             children: <Widget>[
 | |
|               IconButton(
 | |
|                 iconSize: 40,
 | |
|                 icon: const Icon(
 | |
|                   Icons.add,
 | |
|                   color: Colors.black,
 | |
|                 ),
 | |
|                 onPressed: () async{
 | |
|                   /*await Navigator.push(
 | |
|                           context,
 | |
|                           MaterialPageRoute(
 | |
|                               builder: (context) => AddPrescription()),
 | |
|                         );*/
 | |
|                   Navigator.push(context, MaterialPageRoute(builder: (context) => AddReports())).then((value) {
 | |
|                     getAllRecords();
 | |
|                   });
 | |
|                   //showBoreAddingDialog();
 | |
|                 },
 | |
|               ),
 | |
|               /* Padding(
 | |
|                       padding: EdgeInsets.fromLTRB(5, 0, 5, 5),
 | |
|                       child: Text(
 | |
|                         'Add Tanks ',
 | |
|                         style: TextStyle(color: Colors.white),
 | |
|                       ),
 | |
|                     )*/
 | |
|             ],
 | |
|           ),
 | |
|         ),
 | |
|       ),
 | |
|     );
 | |
|   }
 | |
| }
 |