controller.dart 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import 'dart:convert';
  2. import 'package:get/get.dart';
  3. import 'package:vitalapp/architecture/defines.dart';
  4. import 'package:vitalapp/architecture/utils/prompt_box.dart';
  5. import 'package:vitalapp/consts/diagnosis.dart';
  6. import 'package:vitalapp/global.dart';
  7. import 'package:vitalapp/helper/goto_helper.dart';
  8. import 'package:vitalapp/managers/interfaces/diagnosis.dart';
  9. import 'package:vitalapp/managers/interfaces/dictionary.dart';
  10. import 'package:vitalapp/managers/interfaces/models/diagnosis_aggregation_record_model.dart';
  11. import 'package:vitalapp/pages/home/controller.dart';
  12. import 'package:vitalapp/pages/medical/records/state.dart';
  13. import 'package:vitalapp/routes/routes.dart';
  14. class MedicalRecordsController extends FControllerBase {
  15. final state = MedicalRecordsState();
  16. final _diagnosisManager = Get.find<IDiagnosisManager>();
  17. final _dictionaryManager = Get.find<IDictionaryManager>();
  18. late String patientCode;
  19. @override
  20. void onReady() {
  21. super.onReady();
  22. final p = Get.parameters;
  23. patientCode = p['patientCode'] ?? "";
  24. _loadData();
  25. }
  26. _loadData() async {
  27. try {
  28. state.pageIndex = 0;
  29. state.dataList = [];
  30. var listRecord =
  31. await _diagnosisManager.getListByPatientCode(patientCode);
  32. if (listRecord != null) {
  33. state.appendDataList(listRecord);
  34. }
  35. await loadNextPageList();
  36. } catch (e) {}
  37. }
  38. Future<void> loadNextPageList() async {
  39. var result = await _diagnosisManager.getDiagnosisAggregationPageAsync(
  40. patientCode, state.pageIndex + 1, state.pageSize);
  41. if (result != null) {
  42. state.totalCount = result.dataCount;
  43. if (result.pageData != null) {
  44. state.pageIndex = state.pageIndex + 1;
  45. state.appendDataList(result.pageData!);
  46. }
  47. }
  48. }
  49. Future<List<List<String>>> getTableData(
  50. DiagnosisAggregationRecordModel dto) async {
  51. var currentDiagnosis = await _diagnosisManager.getTableData(dto);
  52. return currentDiagnosis;
  53. }
  54. Future<void> removeRecord(String appDataId) async {
  55. setBusy("正在删除...");
  56. final result = await _diagnosisManager.removeDiagnosis(appDataId);
  57. cancelBusy();
  58. if (result) {
  59. PromptBox.toast("删除成功");
  60. await Future.delayed(const Duration(milliseconds: 500));
  61. await _loadData();
  62. } else {
  63. PromptBox.toast("删除失败");
  64. }
  65. }
  66. /// 编辑记录(离线)
  67. Future<void> editRecord(DiagnosisAggregationRecordModel model) async {
  68. Get.back();
  69. busy = true;
  70. await Future.delayed(const Duration(milliseconds: 800));
  71. Routes.parameters["diagnosisEditData"] = model;
  72. Get.find<HomeController>().switchNavByName("/medical");
  73. }
  74. }