|
|
|
@ -14,7 +14,6 @@ import 'package:queuing_system/utils/call_type.dart';
|
|
|
|
import 'package:queuing_system/utils/signalR_utils.dart';
|
|
|
|
import 'package:queuing_system/utils/signalR_utils.dart';
|
|
|
|
import 'package:queuing_system/utils/utils.dart';
|
|
|
|
import 'package:queuing_system/utils/utils.dart';
|
|
|
|
import 'package:queuing_system/widget/data_display/app_texts_widget.dart';
|
|
|
|
import 'package:queuing_system/widget/data_display/app_texts_widget.dart';
|
|
|
|
import 'package:text_to_speech/text_to_speech.dart';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var DEVICE_IP = "10.10.15.11"; // Testing IP
|
|
|
|
var DEVICE_IP = "10.10.15.11"; // Testing IP
|
|
|
|
// var DEVICE_IP = "10.10.14.11"; // Testing IP
|
|
|
|
// var DEVICE_IP = "10.10.14.11"; // Testing IP
|
|
|
|
@ -55,7 +54,6 @@ class _MyHomePageState extends State<MyHomePage> {
|
|
|
|
|
|
|
|
|
|
|
|
TextEditingController controller = TextEditingController();
|
|
|
|
TextEditingController controller = TextEditingController();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
@override
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
return AppScaffold(
|
|
|
|
return AppScaffold(
|
|
|
|
@ -148,26 +146,58 @@ class _MyHomePageState extends State<MyHomePage> {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String getCallTypeText(Tickets ticket) {
|
|
|
|
|
|
|
|
final callType = ticket.getCallType();
|
|
|
|
|
|
|
|
switch (callType) {
|
|
|
|
|
|
|
|
case CallType.RECEPTION:
|
|
|
|
|
|
|
|
return "Please Visit Doctor";
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case CallType.NURSE:
|
|
|
|
|
|
|
|
return "Please Visit Nurse";
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case CallType.DOCTOR:
|
|
|
|
|
|
|
|
return "Please Visit Doctor";
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case CallType.NONE:
|
|
|
|
|
|
|
|
return "";
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
|
|
|
return "";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
CallByVoice voiceCaller;
|
|
|
|
CallByVoice voiceCaller;
|
|
|
|
|
|
|
|
|
|
|
|
voiceCall() async {
|
|
|
|
voiceCall() async {
|
|
|
|
|
|
|
|
var j = {
|
|
|
|
|
|
|
|
"ID": 4182,
|
|
|
|
|
|
|
|
"PatientID": 123123,
|
|
|
|
|
|
|
|
"MobileNo": "05***6794",
|
|
|
|
|
|
|
|
"DoctorName": "Shakiera",
|
|
|
|
|
|
|
|
"DoctorNameN": "Shakeria",
|
|
|
|
|
|
|
|
"PatientGender": 1,
|
|
|
|
|
|
|
|
"CallNo": 123,
|
|
|
|
|
|
|
|
"callType": 1,
|
|
|
|
|
|
|
|
"RoomNo": "10",
|
|
|
|
|
|
|
|
"CreatedOn": "/Date(1673771382130+0300)/",
|
|
|
|
|
|
|
|
"EditedOn": "/Date(1673771384500+0300)/",
|
|
|
|
|
|
|
|
"CallNoStr": "A-5",
|
|
|
|
|
|
|
|
"QueueNo": null
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
waitings = [Tickets.fromJson(j)];
|
|
|
|
|
|
|
|
|
|
|
|
if (waitings.isNotEmpty && voiceCaller == null) {
|
|
|
|
if (waitings.isNotEmpty && voiceCaller == null) {
|
|
|
|
final postVoice = waitings.first.getCallType().audio('en');
|
|
|
|
final postVoice = getCallTypeText(waitings.first);
|
|
|
|
voiceCaller = CallByVoice(waitings.first.callNoStr.toString(), preVoice: 'ticket_number.mp3', postVoice: postVoice, lang: 'en');
|
|
|
|
voiceCaller = CallByVoice(waitings.first.callNoStr.toString(), preVoice: "Ticket Number", postVoice: postVoice, lang: 'en');
|
|
|
|
await voiceCaller.start();
|
|
|
|
await voiceCaller.startCalling();
|
|
|
|
voiceCaller = null;
|
|
|
|
voiceCaller = null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
printWaiting() {
|
|
|
|
|
|
|
|
for (var value in waitings) {
|
|
|
|
|
|
|
|
print("waiting: ${value.callNoStr}");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
onUpdateAvailable(data) async {
|
|
|
|
onUpdateAvailable(data) async {
|
|
|
|
waitings.clear();
|
|
|
|
waitings.clear();
|
|
|
|
API.GetCallRequestInfoByClinincInfo(DEVICE_IP, onSuccess: (waitingCalls) {
|
|
|
|
API.getCallRequestInfoByClinicInfo(DEVICE_IP, onSuccess: (waitingCalls) {
|
|
|
|
setState(() {
|
|
|
|
setState(() {
|
|
|
|
waitings = waitingCalls;
|
|
|
|
waitings = waitingCalls;
|
|
|
|
// currents = currentInClinic;
|
|
|
|
// currents = currentInClinic;
|
|
|
|
@ -175,9 +205,7 @@ class _MyHomePageState extends State<MyHomePage> {
|
|
|
|
|
|
|
|
|
|
|
|
log("\n\n");
|
|
|
|
log("\n\n");
|
|
|
|
log("--------------------");
|
|
|
|
log("--------------------");
|
|
|
|
// log("Current: $currentInClinic");
|
|
|
|
log("waiting: $waitings");
|
|
|
|
// log("Waiting: $waitingCalls");
|
|
|
|
|
|
|
|
printWaiting();
|
|
|
|
|
|
|
|
log("--------------------");
|
|
|
|
log("--------------------");
|
|
|
|
log("\n\n");
|
|
|
|
log("\n\n");
|
|
|
|
|
|
|
|
|
|
|
|
@ -186,12 +214,14 @@ class _MyHomePageState extends State<MyHomePage> {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
updateTickets() {
|
|
|
|
updateTickets() {
|
|
|
|
// List<Tickets> _ticketsToUpdate = waitings.where((t) => t.call_updated == false).toList();
|
|
|
|
if (waitings != null && waitings.isNotEmpty) {
|
|
|
|
// API.Call_UpdateNotIsQueueRecordByIDAsync(DEVICE_IP, ticket: _ticketsToUpdate.first, onSuccess: (tickets_updated) {
|
|
|
|
List<Tickets> _ticketsToUpdate = waitings.where((t) => t.callUpdated == false).toList();
|
|
|
|
// print("[${tickets_updated.length}] Tickets Updated: $tickets_updated");
|
|
|
|
API.callUpdateNotIsQueueRecordByIDAsync(DEVICE_IP, ticket: _ticketsToUpdate.first, onSuccess: (tickets_updated) {
|
|
|
|
// }, onFailure: (e) {
|
|
|
|
log("[${tickets_updated.length}] Tickets Updated: $tickets_updated");
|
|
|
|
// print("API UPDate Tickets Failed with : ${e.toString()}");
|
|
|
|
}, onFailure: (e) {
|
|
|
|
// });
|
|
|
|
log("API UPDate Tickets Failed with : ${e.toString()}");
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
onConnect() {
|
|
|
|
onConnect() {
|
|
|
|
|