Explorar o código

优化患者身份证查看

lighter %!s(int64=2) %!d(string=hai) anos
pai
achega
0467e5be38

+ 4 - 0
src/main/java/thyyxxk/webserver/dao/his/inpatient/PatientDao.java

@@ -131,6 +131,10 @@ public interface PatientDao {
             "FROM zy_xnh_record_sfz WHERE inpatient_no=#{inpatientNo} AND admiss_times=#{admissTimes}")
     List<IdCard> getIdCard(@Param("inpatientNo") String inpatientNo, @Param("admissTimes") Integer admissTimes);
 
+    @Select("select agency, expirestart, sfz_image as fileSfz " +
+            "from patient_mi_sfz where social_no=#{socialNo}")
+    List<IdCard> selectIdCard(@Param("socialNo") String socialNo);
+
     @Select("SELECT item_no,inpatient_no,admiss_times,file_xnh AS file_sfz FROM zy_xnh_record " +
             "WHERE inpatient_no=#{inpatientNo} AND admiss_times=#{admissTimes}")
     List<IdCard> getScanFile(@Param("inpatientNo") String inpatientNo, @Param("admissTimes") Integer admissTimes);

+ 10 - 7
src/main/java/thyyxxk/webserver/service/inpatient/PatientService.java

@@ -298,13 +298,6 @@ public class PatientService {
     }
 
     public ResultVo<Map<String, Object>> getIdCardInfo(String inpatientNo, Integer admissTimes) {
-        List<IdCard> idCard = dao.getIdCard(inpatientNo, admissTimes);
-        if (idCard.isEmpty()) {
-            idCard = dao.getScanFile(inpatientNo, admissTimes);
-        }
-        if (idCard.isEmpty()) {
-            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "此患者没有录入身份证或扫描件!");
-        }
         Patient patient = dao.getPatientInfo(inpatientNo, "zy_actpatient", 0);
         if (null == patient) {
             patient = dao.getPatientInfo(inpatientNo, "zy_inactpatient", admissTimes);
@@ -313,6 +306,16 @@ public class PatientService {
         if (null != birthDate) {
             patient.setBirthDate(birthDate);
         }
+        List<IdCard> idCard = dao.selectIdCard(patient.getSocialNo());
+        if (idCard.isEmpty()) {
+            idCard = dao.getIdCard(inpatientNo, admissTimes);
+            if (idCard.isEmpty()) {
+                idCard = dao.getScanFile(inpatientNo, admissTimes);
+            }
+        }
+        if (idCard.isEmpty()) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "没有查询到此患者的身份证或扫描件,请检查身份证号是否有误。");
+        }
         Map<String, Object> map = new HashMap<>();
         map.put("idCard", idCard.get(0));
         map.put("patient", patient);