This commit is contained in:
erfan hayat'bakhsh
2020-08-01 14:16:20 +04:30
parent 30f10dca2e
commit e4d29c4e3c
71 changed files with 5018 additions and 2319 deletions
+74 -3
View File
@@ -30,6 +30,78 @@ class Auth with ChangeNotifier {
return {..._user};
}
Future<String> requestCode(String cellNumber) async {
final response = await http.post(
Url.requestResetPass,
body: {
'cell_number': cellNumber,
},
// headers: {'X-Requested-With': 'XMLHttpRequest'},
);
final responseData = json.decode(response.body);
if (responseData['status'] == 'Faild') {
return 'NotUser';
} else {
return 'Done';
}
// print(responseData);
}
Future<String> sendCode(String code) async {
final response = await http.post(
Url.verifyResetPass,
body: {
'code': code,
},
// headers: {'X-Requested-With': 'XMLHttpRequest'},
);
final responseData = json.decode(response.body);
// if (responseData['status']=='Faild') {
// return 'NotUser';
// } else {
// return 'Done';
// }
print(responseData);
if (responseData['status']=='Faild') {
return 'wrong';
}
else{
return responseData['access_token'];
}
}
Future<String> sendRePass(String password, String token) async {
print(password);
print(token);
final response = await http.post(
Url.sendResetPass,
body: {
'password': password,
'password_confirmation': password,
},
headers: {
'Authorization': token,
'X-Requested-With': 'XMLHttpRequest'
},
// headers: {'X-Requested-With': 'XMLHttpRequest'},
);
final responseData = json.decode(response.body);
// if (responseData['status']=='Faild') {
// return 'NotUser';
// } else {
// return 'Done';
// }
print(responseData);
if (responseData['status']=='Success') {
return 'done';
}
else{
return 'error';
}
}
Future<String> login(String cellNumber, String password) async {
final response = await http.post(
Url.login,
@@ -40,12 +112,11 @@ class Auth with ChangeNotifier {
// headers: {'X-Requested-With': 'XMLHttpRequest'},
);
final responseData = json.decode(response.body);
// print(responseData);
print(responseData);
if (response.statusCode == 401) {
if (responseData['message'] == 'The user credentials were incorrect.') {
return 'badinput'; // incorrect user or pass
}
else{
} else {
return 'error';
}
}
+3
View File
@@ -222,6 +222,7 @@ class CyclesProvider extends ChangeNotifier {
id: 'null',
description: 'null',
createDate: 'null',
hospitalName: 'null',
date: '2020-01-01',
sterileId: 'null',
cycleNumber: 'null',
@@ -233,10 +234,12 @@ class CyclesProvider extends ChangeNotifier {
for (var label in data['labels']) {
lablesList.add(label['id'].toString());
}
print(data);
result = CycleDetailObject(
id: data['id'].toString(),
description: data['note'] != null ? data['note'] : '',
createDate: data['created_at'] != null ? data['created_at'] : '',
hospitalName: data['user']['medical_center']['name'],
date: data['date'] != null ? data['date'] : '',
sterileId: data['sterilizer_id'] != null ? data['sterilizer_id'] : '',
cycleNumber: data['cycle_number'] != null ? data['cycle_number'] : '',
+52 -24
View File
@@ -6,16 +6,21 @@ import 'package:cssd/config/urls.dart';
import 'package:cssd/config/user.dart';
class Inputs with ChangeNotifier {
List<Map<String, dynamic>> inputItems = [];
Future<bool> getInputs({String testResultId = "", String name = "", String uniqueCode = "", String testTypeId = ""}) async {
print({
'test_type_id': testTypeId,
'test_result_id': testResultId,
'name': name,
'unique_code': uniqueCode,
},);
Future<bool> getInputs(
{String testResultId = "",
String name = "",
String uniqueCode = "",
String testTypeId = ""}) async {
print(
{
'test_type_id': testTypeId,
'test_result_id': testResultId,
'name': name,
'unique_code': uniqueCode,
},
);
var response = await http.post(
Url.getInputs,
body: {
@@ -35,15 +40,13 @@ class Inputs with ChangeNotifier {
return false;
}
final responseData = json.decode(response.body);
// print(responseData);
Map<String, dynamic> values;
if (testResultId.isNotEmpty) {
response = await http.get(Url.testResultFormValues(testResultId),
headers: {
'Authorization': User.token
});
headers: {'Authorization': User.token});
values = json.decode(response.body)['data'];
}
@@ -56,20 +59,41 @@ class Inputs with ChangeNotifier {
String deviceLabel;
if (values != null && values.isNotEmpty) {
result = values['result'] == 'Accept' ? true : false;
dateTime = values['date'] == null ? DateTime.now() : DateTime.parse(values['date']);
dateTime = values['date'] == null
? DateTime.now()
: DateTime.parse(values['date']);
deviceLabel = values['device_id'] ?? '';
}
inputItems.add({'type': 'Label', 'key': 'test_type_id', 'name': general['name'], 'value': general['id']});
inputItems.add({
'type': 'Label',
'key': 'test_type_id',
'name': general['name'],
'value': general['id']
});
inputItems.add({
'type': 'Text',
'key': 'device_id',
'name': general['device_label'],
'value': deviceLabel
});
inputItems.add(
{'type': 'Date', 'key': 'date', 'name': 'date', 'value': dateTime});
inputItems.add(
{'type': 'Switch', 'key': 'result', 'name': 'Result', 'value': result});
inputItems.add({'type': 'Text', 'key': 'device_id', 'name': general['device_label'], 'value': deviceLabel});
inputItems.add({'type': 'Date', 'key': 'date' , 'name': 'date', 'value': dateTime});
inputItems.add({'type': 'Switch', 'key': 'result', 'name': 'Result', 'value': result});
setValues(inputs, values);
for (var input in inputs) {
inputItems.add(input as Map<String, dynamic>);
}
inputItems.add({
'type': 'Image',
'key': 'test_type_id',
'name': general['name'],
'value': general['id']
});
notifyListeners();
return true;
}
@@ -81,13 +105,17 @@ class Inputs with ChangeNotifier {
}
var key = "${input['name']}_${input['id']}";
input['key'] = key;
if(values != null && values.isNotEmpty && values.containsKey(key)) {
if (input['type'] == 'Range' || input['type'] == 'Temperature' || input['type'] == 'Pressure') {
if (values != null && values.isNotEmpty && values.containsKey(key)) {
if (input['type'] == 'Range' ||
input['type'] == 'Temperature' ||
input['type'] == 'Pressure') {
input['value'] = double.parse(values[key]);
} else if (input['type'] == 'Switch'){
} else if (input['type'] == 'Switch') {
input['value'] = values[key] == "1" ? true : false;
} else if (input['type'] == 'Time'){
input['value'] = values[key] == null ? '' : values[key].substring(0, 2) + ":" + values[key].substring(2, 4);
} else if (input['type'] == 'Time') {
input['value'] = values[key] == null
? ''
: values[key].substring(0, 2) + ":" + values[key].substring(2, 4);
} else {
input['value'] = values[key];
}
+44
View File
@@ -102,6 +102,41 @@ class LabelsProvider extends ChangeNotifier {
print(response.body);
}
Future<void> updateLabelResult(
id,
lotNumber,
cycleNumber,
sterileDate,
package,
expireDate,
sterilizerId,
) async {
// print(labs);
var response = await http.put(Url.updateLabelResult(id),
body: json.encode(
{
'sterile_date': sterileDate,
'expire_date': expireDate,
'sterilizer_id': sterilizerId,
'cycle_number': cycleNumber,
'lot_number': lotNumber,
'package_id': package['id']
// 'package': {
// 'id': package['id'],
// 'name': package['name'],
// },
},
),
headers: {
'Authorization': User.token,
'X-Requested-With': 'XMLHttpRequest',
"Content-Type": "application/json",
"Accept": "application/json"
});
print(response.body);
}
void setFilters(id, cycleNumber, sterilizerId, hospital) {
pageNumber = 1;
filters = LabelFilterObject(
@@ -165,11 +200,13 @@ class LabelsProvider extends ChangeNotifier {
}
for (var item in testResultData['data']['data']) {
// print(item);
originalItems.add(
LabelResultObject(
expireDate: item['expire_date'],
id: item['id'].toString(),
package: item['package']['name'],
packageId: item['package']['id'].toString(),
),
);
}
@@ -188,6 +225,8 @@ class LabelsProvider extends ChangeNotifier {
return LabelDetailsObject(
id: 'null',
package: 'null',
packageId: 'null',
hospitalName: 'null',
createDate: 'null',
expireDate: 'null',
sterileDate: 'null',
@@ -198,9 +237,14 @@ class LabelsProvider extends ChangeNotifier {
}
var data = json.decode(response.body)['data'];
print(data);
result = LabelDetailsObject(
id: data['id'].toString(),
package: data['package']['name'] != null ? data['package']['name'] : '',
packageId: data['package']['id'].toString() != 'null'
? data['package']['id'].toString()
: '',
hospitalName: data['user']['medical_center']['name'],
createDate: data['created_at'] != null ? data['created_at'] : '',
expireDate: data['expire_date'] != null ? data['expire_date'] : '',
sterileDate: data['sterile_date'] != null ? data['sterile_date'] : '',
+142 -9
View File
@@ -1,4 +1,8 @@
import 'dart:convert';
import 'dart:io';
import 'dart:typed_data';
// import 'dart:typed_data';
import 'package:dio/dio.dart' as di;
import 'package:cssd/config/urls.dart';
import 'package:cssd/config/user.dart';
@@ -6,8 +10,47 @@ import 'package:cssd/models/test_result_models.dart';
// import 'package:cssd/providers/test_result.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'package:random_string/random_string.dart';
// import 'package:multi_image_picker/multi_image_picker.dart';
class TestResultsProvider with ChangeNotifier {
List<File> catchImages = [];
List<Uint8List> images = [];
setImages() async {
images = [];
for (var image in catchImages) {
var result = image.readAsBytesSync();
// final batchId = randomString(10);
// addImage(batchId, result, image.path);
images.add(result.buffer
.asUint8List(result.offsetInBytes, result.lengthInBytes));
}
notifyListeners();
}
setCatchImages(List<File> images) {
catchImages = images;
notifyListeners();
}
removeImage(int index) {
catchImages.removeAt(index);
notifyListeners();
}
// Future<String> addImage() async {
// Map<dynamic, dynamic> imgs = {};
// var counter = 0;
// for (var image in images) {
// imgs[counter.toString()] =
// di.MultipartFile.fromBytes(image, filename: 'test$counter.jpg');
// counter += 1;
// }
// return 'True';
// }
String searchBoxValue = '';
bool filterOn = false;
List<TestResultObject> items;
@@ -157,14 +200,16 @@ class TestResultsProvider with ChangeNotifier {
items = [];
}
for (var item in testResultData['data']['data']) {
// print(item);
originalItems.add(
TestResultObject(
id: item['id'].toString(),
name: item['test_type']['name'],
deviceId: item['device_id'].toString(),
result: item['verified'] == 'Verified' ? 'Verified' : 'Not Verified',
date: item['date'],
result: item['result'] == 'Accept' ? 'Accepted' : 'Not Accepted',
date: item['created_at'].toString().substring(0, 10),
hospital: item['user']['medical_center']['name'],
verified: item['verified'].toString(),
),
);
}
@@ -187,16 +232,75 @@ class TestResultsProvider with ChangeNotifier {
print(response.body);
}
static Future<void> createTestResult(values) async {
var response = await http
.post(Url.createTestResult, body: json.encode(values), headers: {
Future<String> addImage(String batchId, dynamic file, String fileName) async {
var imageListInt = file.cast<int>();
var dio = new di.Dio();
dio.options.headers = {
'Authorization': User.token,
'X-Requested-With': 'XMLHttpRequest',
"Content-Type": "application/json",
"Accept": "application/json"
'Content-Type': 'application/json',
};
di.FormData formData = new di.FormData.fromMap({
"batch_id": batchId,
'model_type': 'TestResult',
"file": di.MultipartFile.fromBytes(imageListInt, filename: fileName)
});
print(response.body);
var response = await dio.post(
Url.addImage,
data: formData,
);
// print(response.statusCode);
// print(response.statusMessage);
// print(response.data);
return 'Added';
}
Future<String> createTestResult(values, batchId) async {
final batchId = randomString(10);
for (var image in catchImages) {
await addImage(batchId, image.readAsBytesSync(), image.path);
}
dynamic vals = values;
vals['file_batch_id'] = batchId;
// int counter = 0;
// if (images.length != 0) {
// for (var image in images) {
// vals['imgs'][counter.toString()] = base64Encode(
// image,
// );
// counter += 1;
// }
// }
var dio = new di.Dio();
dio.options.headers = {
'Authorization': User.token,
// 'X-Requested-With': 'XMLHttpRequest'
};
var response = await dio.post(
Url.createTestResult,
data: vals,
);
print(response.data);
if (response.data['status'] == 'Success') {
catchImages = [];
return 'done';
} else {
return 'error';
}
// var response = await http
// .post(Url.createTestResult, body: json.encode(values), headers: {
// 'Authorization': User.token,
// 'X-Requested-With': 'XMLHttpRequest',
// "Content-Type": "application/json",
// "Accept": "application/json"
// });
// print(response.body);
}
Future<Map<String, dynamic>> showTestResult(String id) async {
@@ -213,11 +317,16 @@ class TestResultsProvider with ChangeNotifier {
: '',
'test_code': data['test_type_id'] != null ? data['test_type_id'] : '',
'date': data['created_at'] != null ? data['created_at'] : '',
'verified': data['verified'] != null ? data['verified'] : '',
'accepted': originalItems
.firstWhere((element) => element.id == data['id'].toString())
.result, //az api safheye asli estefade mishavad
'description':
data['inputs']['Note'] != null ? data['inputs']['Note'] : '',
'test_type_name':
data['test_type']['name'] != null ? data['test_type']['name'] : '',
'hospital': originalItems
.firstWhere((element) => element.id == data['id'].toString())
.hospital // az api safheye asli estefade mi shavad
};
return result;
}
@@ -238,4 +347,28 @@ class TestResultsProvider with ChangeNotifier {
notifyListeners();
return true;
}
Future<bool> changeVerification(String id, String value) async {
print(id);
print(value);
var response = await http.post(
Url.testResultVerification(id, value),
headers: {
'Authorization': User.token,
'X-Requested-With': 'XMLHttpRequest',
"Content-Type": "application/json",
"Accept": "application/json"
},
);
var testResultData = json.decode(response.body);
// print(response.body);
try {
if (testResultData['status'] == 'Success') {
return true;
} else {
return false;
}
} catch (e) {}
return false;
}
}