Browse Source

fixed: 0018884: 【医生签约】【用户反馈】签约医生、医生电话、团队负责人、指导医生4项,每次都需要手动输入

loki.wu 10 months ago
parent
commit
8534ffcf98

+ 3 - 0
lib/managers/interfaces/service_pack.dart

@@ -10,4 +10,7 @@ abstract class IServicePackManager implements IManager {
   /// 获取服务包项目分页列表
   Future<PageCollection<ServiceItemDTO>?> getServiceItemList(
       GetServiceItemPageRequest request);
+
+  //最近签约详情接口
+  Future<ContractRecordDTO?> getDoctorContractRecord();
 }

+ 31 - 0
lib/managers/service_pack.dart

@@ -1,8 +1,10 @@
+import 'package:fis_common/index.dart';
 import 'package:fis_jsonrpc/rpc.dart';
 import 'package:vitalapp/managers/interfaces/service_pack.dart';
 import 'package:vitalapp/rpc.dart';
 import 'package:fis_common/logger/logger.dart';
 import 'package:vitalapp/store/store.dart';
+import 'package:fis_common/index.dart';
 
 class ServicePackManager implements IServicePackManager {
   @override
@@ -33,4 +35,33 @@ class ServicePackManager implements IServicePackManager {
       return null;
     }
   }
+
+  @override
+  Future<ContractRecordDTO?> getDoctorContractRecord() async {
+    ContractRecordDTO? result;
+    try {
+      result = await rpc.vitalContractRecord
+          .getDoctorContractRecordAsync(GetDoctorContractRecordRequest(
+        token: Store.user.token,
+      ));
+    } catch (e) {
+      logger.e("ServicePackManager getDoctorContractRecord ex:", e);
+    }
+    if (result == null) {
+      result = ContractRecordDTO();
+    }
+    if (result.contractedDoctorName?.isNullOrEmpty ?? true) {
+      result.contractedDoctorName = Store.user.displayName;
+    }
+    if (result.contractedDoctorPhone?.isNullOrEmpty ?? true) {
+      result.contractedDoctorPhone = Store.user.phone;
+    }
+    if (result.teamLeaderName?.isNullOrEmpty ?? true) {
+      result.teamLeaderName = Store.user.principalName;
+    }
+    if (result.preceptorName?.isNullOrEmpty ?? true) {
+      result.preceptorName = Store.user.principalName;
+    }
+    return result;
+  }
 }

+ 11 - 0
lib/pages/contract/package_list/controller.dart

@@ -23,6 +23,7 @@ class ServicePackageContractController extends FControllerBase {
   List<LabelDTO> normalOptions = [];
   PatientDTO patient = PatientDTO();
   String templateCode = '';
+  ContractRecordDTO? contractRecordDTO;
   @override
   void onInit() {
     // final p = Get.parameters;
@@ -72,6 +73,12 @@ class ServicePackageContractController extends FControllerBase {
       patient = dto;
       state.phone = dto.phone ?? '';
     }
+    contractRecordDTO = await _servicePackManager.getDoctorContractRecord();
+    state.designatedDoctorName = contractRecordDTO?.contractedDoctorName ?? '';
+    state.designatedDoctorPhone =
+        contractRecordDTO?.contractedDoctorPhone ?? '';
+    state.teamLeaderName = contractRecordDTO?.teamLeaderName ?? '';
+    state.guidingDoctorName = contractRecordDTO?.preceptorName ?? '';
   }
 
   String setNormalLabels(List<String> normalValueList) {
@@ -102,6 +109,10 @@ class ServicePackageContractController extends FControllerBase {
         servicePacks: state.selectedServicePackageCode.split('、'),
         photos: ["data:image/png;base64,${state.userImage ?? ''}"],
         notes: state.notes,
+        contractedDoctorName: state.designatedDoctorName,
+        contractedDoctorPhone: state.designatedDoctorPhone,
+        teamLeaderName: state.teamLeaderName,
+        renewalContractCode: state.guidingDoctorName,
       ),
     );
   }