mirror of
https://git.meshkee.com/applications/cssd.git
synced 2026-10-13 17:18:56 +03:30
commit
This commit is contained in:
@@ -0,0 +1,241 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:cssd/config/urls.dart';
|
||||
import 'package:cssd/config/user.dart';
|
||||
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;
|
||||
|
||||
class TestResultsProvider with ChangeNotifier {
|
||||
String searchBoxValue = '';
|
||||
bool filterOn = false;
|
||||
List<TestResultObject> items;
|
||||
List<TestResultObject> originalItems;
|
||||
// List<TestResult> items = [];
|
||||
Map<String, dynamic> result;
|
||||
|
||||
TestResultFilterObject _filters = TestResultFilterObject(
|
||||
id: '',
|
||||
labelID: '',
|
||||
userName: '',
|
||||
hospital: '',
|
||||
testType: '',
|
||||
fDate: '',
|
||||
uDate: '',
|
||||
);
|
||||
|
||||
void resetFilters() {
|
||||
filterOn = false;
|
||||
_filters = TestResultFilterObject(
|
||||
id: '',
|
||||
labelID: '',
|
||||
userName: '',
|
||||
hospital: '',
|
||||
testType: '',
|
||||
fDate: '',
|
||||
uDate: '',
|
||||
);
|
||||
}
|
||||
|
||||
int pageNumber = 1;
|
||||
void resetPageNumber() => pageNumber = 1;
|
||||
bool isloading = false;
|
||||
void resetLoading() {
|
||||
isloading = false;
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
void setLoading() {
|
||||
isloading = true;
|
||||
// notifyListeners();
|
||||
}
|
||||
|
||||
TestResultFilterObject get filters {
|
||||
return _filters;
|
||||
}
|
||||
|
||||
void search(String value) {
|
||||
print(value);
|
||||
items = [];
|
||||
searchBoxValue = value;
|
||||
originalItems.forEach((result) {
|
||||
if (result.name.toString().contains(searchBoxValue)) {
|
||||
items.add(result);
|
||||
}
|
||||
});
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
void setFilters(id, labelId, username, testType, hospital, fDate, uDate) {
|
||||
pageNumber = 1;
|
||||
_filters = TestResultFilterObject(
|
||||
id: id,
|
||||
labelID: labelId,
|
||||
userName: username,
|
||||
hospital: hospital,
|
||||
testType: testType,
|
||||
fDate: fDate,
|
||||
uDate: uDate);
|
||||
if (_filters.id == '' &&
|
||||
_filters.labelID == '' &&
|
||||
_filters.testType == '' &&
|
||||
_filters.hospital == '' &&
|
||||
_filters.userName == '' &&
|
||||
_filters.fDate == '' &&
|
||||
_filters.uDate == '') {
|
||||
filterOn = false;
|
||||
} else {
|
||||
filterOn = true;
|
||||
}
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
Future<List<Map<String, String>>> getFilterItems() async {
|
||||
var response = await http.get(
|
||||
Url.filterItems,
|
||||
headers: {
|
||||
'Authorization': User.token,
|
||||
},
|
||||
);
|
||||
List<Map<String, String>> result = [];
|
||||
Map<String, String> hospitals = {};
|
||||
Map<String, String> testTypes = {};
|
||||
|
||||
var filterDatas = json.decode(response.body);
|
||||
for (var hospital in filterDatas['data']['MedicalCenters']) {
|
||||
hospitals.addAll({hospital['name']: hospital['id'].toString()});
|
||||
}
|
||||
result.add(hospitals);
|
||||
for (var testType in filterDatas['data']['TestTypes']) {
|
||||
testTypes.addAll({testType['name']: testType['id'].toString()});
|
||||
}
|
||||
result.add(testTypes);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
Future<void> getTestResults() async {
|
||||
String url = Url.testResults(pageNumber);
|
||||
if (filterOn) {
|
||||
items = [];
|
||||
if (_filters.id != '') {
|
||||
url += '&device_id=${_filters.id}';
|
||||
}
|
||||
if (_filters.labelID != '') {
|
||||
url += '&device_label=${_filters.labelID}';
|
||||
}
|
||||
if (_filters.hospital != '') {
|
||||
url += '&medicalCenter_id=${_filters.hospital}';
|
||||
}
|
||||
if (_filters.testType != '') {
|
||||
url += '&testType_id=${_filters.testType}';
|
||||
}
|
||||
if (_filters.userName != '') {
|
||||
url += '&user_name=${_filters.userName}';
|
||||
}
|
||||
if (_filters.fDate != '') {
|
||||
url += '&fromPicker=${_filters.fDate}';
|
||||
}
|
||||
if (_filters.uDate != '') {
|
||||
url += '&upToPicker=${_filters.uDate}';
|
||||
}
|
||||
print(url);
|
||||
}
|
||||
//'device_id=3526&testType_id=107&medicalCenter_id=2&user_name=erfan&fromPicker=2020-05-12&upToPicker=2020-05-19&device_label=Instrument%20ID&page=1'
|
||||
var response = await http.get(
|
||||
url,
|
||||
headers: {
|
||||
'Authorization': User.token,
|
||||
},
|
||||
);
|
||||
|
||||
var testResultData = json.decode(response.body);
|
||||
|
||||
if (pageNumber == 1) {
|
||||
originalItems = [];
|
||||
items = [];
|
||||
}
|
||||
for (var item in testResultData['data']['data']) {
|
||||
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'],
|
||||
hospital: item['user']['medical_center']['name'],
|
||||
),
|
||||
);
|
||||
}
|
||||
pageNumber += 1;
|
||||
search('');
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
static Future<void> updateTestResult(String id, values) async {
|
||||
var response = await http.post(
|
||||
Url.updateTestResult(id),
|
||||
body: json.encode(values),
|
||||
headers: {
|
||||
'Authorization': User.token,
|
||||
'X-Requested-With': 'XMLHttpRequest',
|
||||
"Content-Type": "application/json",
|
||||
"Accept": "application/json"
|
||||
},
|
||||
);
|
||||
print(response.body);
|
||||
}
|
||||
|
||||
static Future<void> createTestResult(values) async {
|
||||
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 {
|
||||
var response = await http.get(Url.getTestResult(id), headers: {
|
||||
'Authorization': User.token,
|
||||
});
|
||||
|
||||
var data = json.decode(response.body)['data'];
|
||||
// print(data);
|
||||
result = {
|
||||
'id': data['id'],
|
||||
'auto_cleave_id': data['inputs']['Autoclave ID'] != null
|
||||
? data['inputs']['Autoclave ID']
|
||||
: '',
|
||||
'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'] : '',
|
||||
'description':
|
||||
data['inputs']['Note'] != null ? data['inputs']['Note'] : '',
|
||||
'test_type_name':
|
||||
data['test_type']['name'] != null ? data['test_type']['name'] : '',
|
||||
};
|
||||
return result;
|
||||
}
|
||||
|
||||
Future<bool> removeTestResult(String id) async {
|
||||
var response = await http.post(Url.removeTestResult(id), body: {
|
||||
'_method': 'delete'
|
||||
}, headers: {
|
||||
'Authorization': User.token,
|
||||
});
|
||||
|
||||
if (response.statusCode == 200) {
|
||||
items.removeWhere((item) {
|
||||
return item.id.toString() == id;
|
||||
});
|
||||
}
|
||||
|
||||
notifyListeners();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user