yeguodong пре 2 недеља
родитељ
комит
acc52f8754

+ 17 - 1
src/main/java/thyyxxk/webserver/service/medicalinsurance/SiZyService.java

@@ -14,6 +14,7 @@ import thyyxxk.webserver.config.exception.BizException;
 import thyyxxk.webserver.config.exception.ExceptionEnum;
 import thyyxxk.webserver.constants.sidicts.*;
 import thyyxxk.webserver.constants.YesOrNo;
+import thyyxxk.webserver.dao.his.inpatient.DoctorsAdviseDao;
 import thyyxxk.webserver.dao.his.inpatient.PatientDao;
 import thyyxxk.webserver.dao.his.medicalinsurance.*;
 import thyyxxk.webserver.entity.ResultVo;
@@ -45,6 +46,7 @@ public class SiZyService {
     private static final String ERROR_MESSAGE = "err_msg";
     private static final String OUTPUT = "output";
     private final SiZyDao dao;
+    private final DoctorsAdviseDao doctorsAdviseDao;
     private final PatientDao patientDao;
     private final SiQueryService queryService;
     private final SiQueryDao queryDao;
@@ -62,9 +64,10 @@ public class SiZyService {
     @Autowired
     public SiZyService(SiZyDao dao, PatientDao patientDao, SiQueryService queryService, SiQueryDao queryDao, SiSetlinfoDao setlinfoDao,
                        SiSetldetailDao setldetldao, SiChargeTempDao chrgtmpdao, SiLogDao logDao, ExecService exec,
-                       DismissService dismissService, SiZySrvc zySrvc, MedinsurConfig cfg) {
+                       DismissService dismissService, SiZySrvc zySrvc, MedinsurConfig cfg, DoctorsAdviseDao doctorsAdviseDao) {
         this.dao = dao;
         this.patientDao = patientDao;
+        this.doctorsAdviseDao = doctorsAdviseDao;
         this.queryService = queryService;
         this.queryDao = queryDao;
         this.setlinfodao = setlinfoDao;
@@ -79,6 +82,19 @@ public class SiZyService {
 
     public String admissRegister(ZyPatientInfo p, ZyOrJzYbData ybData) {
         AdmMdtrtinfo admMdtrtinfo = ybData.getAdmMdtrtinfo(p);
+
+        // 当医生有医保姓名时,优先使用医保姓名
+        try {
+            String ybName = doctorsAdviseDao.getYbName(admMdtrtinfo.getChfpdrName());
+            if(StringUtil.isNotEmpty(ybName)) {
+                log.info("门诊挂号医生{},使用医保姓名:{}", admMdtrtinfo.getChfpdrName(), ybName);
+                admMdtrtinfo.setChfpdrName(ybName);
+            }
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            log.error("获取医保姓名出错:{}", admMdtrtinfo.getAtddrNo());
+        }
+
         List<AdmDiseinfo> admDiseinfos = ybData.getAdmDiseinfo(p.getInpatientNo(), p.getAdmissTimes());
         admDiseinfos.forEach(item -> {
             item.setDiseDorNo(admMdtrtinfo.getAtddrNo());