controller.dart 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. import 'package:fis_jsonrpc/rpc.dart';
  2. import 'package:get/get.dart';
  3. import 'package:vnoteapp/architecture/defines.dart';
  4. import 'package:vnoteapp/managers/interfaces/patient.dart';
  5. import 'package:vnoteapp/managers/interfaces/service_pack.dart';
  6. import 'package:vnoteapp/pages/controllers/crowd_labels.dart';
  7. import 'state.dart';
  8. class ServicePackageContractController extends FControllerBase {
  9. final state = ServicePackageContractState();
  10. final _patientManager = Get.find<IPatientManager>();
  11. final _servicePackManager = Get.find<IServicePackManager>();
  12. List<LabelDTO> normalOptions = [];
  13. PatientDTO patient = PatientDTO();
  14. @override
  15. void onInit() {
  16. final p = Get.parameters;
  17. state.patientCode = p["patientCode"]!;
  18. super.onInit();
  19. }
  20. @override
  21. void onReady() {
  22. super.onReady();
  23. _loadData();
  24. }
  25. Future<void> _loadData() async {
  26. final dto = await _patientManager.getDetail(state.patientCode);
  27. try {
  28. /// server 暂时没根据人群获取服务包列表这边先用全部服务包
  29. final result = await _servicePackManager.getServicePackList(
  30. PageRequest(
  31. pageIndex: 1,
  32. pageSize: 10,
  33. ),
  34. );
  35. print('🌶');
  36. print(result);
  37. normalOptions = Get.find<CrowdLabelsController>().state.normalOptions;
  38. state.servicePackageItems = result?.pageData ?? [];
  39. } catch (e) {
  40. print(e);
  41. }
  42. final getServiceItemResult = await _servicePackManager.getServiceItemList(
  43. PageRequest(
  44. pageIndex: 1,
  45. pageSize: 100,
  46. ),
  47. );
  48. state.serviceItems = getServiceItemResult?.pageData ?? [];
  49. if (dto != null) {
  50. dto.birthday = dto.birthday!.toLocal();
  51. state.updateDto(dto);
  52. patient = dto;
  53. }
  54. }
  55. String setNormalLabels(List<String> normalValueList) {
  56. List<String> normalLabels = [];
  57. for (LabelDTO i in normalOptions) {
  58. if (normalValueList.contains(i.code)) {
  59. normalLabels.add(i.labelName ?? '');
  60. }
  61. }
  62. String labels = normalLabels.join('、');
  63. if (labels.isEmpty) {
  64. return '暂无';
  65. }
  66. return labels;
  67. }
  68. String getServiceItemsName(List<String> serviceItems) {
  69. List<String> serviceItemNames = [];
  70. for (var element in state.serviceItems) {
  71. if (serviceItems.contains(element.code)) {
  72. serviceItemNames.add(element.name ?? '');
  73. }
  74. }
  75. if (serviceItemNames.isEmpty) {
  76. return '暂无';
  77. }
  78. return serviceItemNames.join('、');
  79. }
  80. // 切换选择的服务包
  81. void changeServicePackage(ServicePackDTO servicePackDTO) {
  82. List<ServicePackDTO> selectedServicePackage = state.selectedServicePackage;
  83. if (state.selectedServicePackage.contains(servicePackDTO)) {
  84. selectedServicePackage.remove(servicePackDTO);
  85. } else {
  86. selectedServicePackage.add(servicePackDTO);
  87. }
  88. state.selectedServicePackage = selectedServicePackage;
  89. setSelectedServicePackages();
  90. }
  91. void setSelectedServicePackages() {
  92. List<String> selectedServicePackageNameList = [];
  93. List<String> selectedServicePackageCodeList = [];
  94. for (var element in state.selectedServicePackage) {
  95. selectedServicePackageNameList.add(element.name ?? "");
  96. selectedServicePackageCodeList.add(element.code ?? "");
  97. }
  98. state.selectedServicePackageName = selectedServicePackageNameList.join('、');
  99. state.selectedServicePackageCode = selectedServicePackageCodeList.join('、');
  100. }
  101. }