123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- import 'dart:convert';
- import 'package:fis_jsonrpc/services/diagnosis.m.dart';
- import 'package:fis_jsonrpc/services/dictionary.m.dart';
- import 'package:get/get.dart';
- import 'package:vitalapp/architecture/defines.dart';
- import 'package:vitalapp/consts/diagnosis.dart';
- import 'package:vitalapp/managers/interfaces/diagnosis.dart';
- import 'package:vitalapp/managers/interfaces/dictionary.dart';
- import 'package:vitalapp/managers/interfaces/models/diagnosis_aggregation_record_model.dart';
- import 'package:vitalapp/pages/medical/records/state.dart';
- class MedicalRecordsController extends FControllerBase {
- final state = MedicalRecordsState();
- final _diagnosisManager = Get.find<IDiagnosisManager>();
- final _dictionaryManager = Get.find<IDictionaryManager>();
- late String patientCode;
- @override
- void onReady() {
- super.onReady();
- final p = Get.parameters;
- patientCode = p['patientCode'] ?? "";
- _loadData();
- }
- _loadData() async {
- try {
- state.pageIndex = 0;
- state.dataList = [];
- var listRecord =
- await _diagnosisManager.getListByPatientCode(patientCode);
- if (listRecord != null) {
- state.appendDataList(listRecord);
- }
- await loadNextPageList();
- } catch (e) {}
- }
- Future<void> loadNextPageList() async {
- var result = await _diagnosisManager.getDiagnosisAggregationPageAsync(
- patientCode, state.pageIndex + 1, state.pageSize);
- if (result != null) {
- state.totalCount = result.dataCount;
- if (result.pageData != null) {
- state.pageIndex = state.pageIndex + 1;
- state.appendDataList(result.pageData!);
- }
- }
- }
- Future<List<List<String>>> getTableData(
- DiagnosisAggregationRecordModel dto) async {
- var currentDiagnosis = <List<String>>[];
- var index = 1;
- // this.diagnosisTime = DateFormat("yyyy-MM-dd HH:mm:ss").format(row.diagnosisTime);
- for (var element in dto.diagnosisAggregationData!) {
- if (element.diagnosisData != "null") {
- var jsonData = json.decode(element.diagnosisData!);
- List<String> keys = jsonData.keys.toList();
- List<DictionaryWithUnitDTO>? dtos = [];
- if (dto.isExistLocalData!) {
- for (var key in keys) {
- dtos.add(DictionaryWithUnitDTO(
- key: key, name: DiagnosisTranslator.reportTr(key), unit: ""));
- }
- } else {
- dtos = await _dictionaryManager
- .getDictionaryNameAndUnitByKeysAsync(keys) ??
- [];
- }
- for (var key in keys) {
- if (key == "ECG_POINT") {
- continue;
- }
- var dto = dtos.firstWhereOrNull((item) => item.key == key);
- currentDiagnosis.add([
- (index++).toString(),
- dto?.name ?? '',
- jsonData[key].toString(),
- dto?.unit ?? '',
- ]);
- }
- }
- }
- return currentDiagnosis;
- }
- }
|