Bladeren bron

feature: 检验检查列表与详情

wuyongyi 2 jaren geleden
bovenliggende
commit
d8cbc46c0b

+ 1 - 1
onemini-hospital-empty/src/main/java/com/ywt/alipaympapi/core/utils/ContextHelper.java

@@ -16,7 +16,7 @@ public final class ContextHelper {
     }
 
     public static int getCurrentUserIdWrapped() {
-//        return 173140;
+//        return 5;
         return WebAppContext.current().getUserId();
     }
 

+ 10 - 0
onemini-hospital-empty/src/main/java/com/ywt/alipaympapi/models/vo/MedicalCardVo.java

@@ -12,6 +12,8 @@ public class MedicalCardVo {
 
     private String cardNum;
 
+    private String age;
+
 
     public int getId() {
         return id;
@@ -52,4 +54,12 @@ public class MedicalCardVo {
     public void setCardNum(String cardNum) {
         this.cardNum = cardNum;
     }
+
+    public String getAge() {
+        return age;
+    }
+
+    public void setAge(String age) {
+        this.age = age;
+    }
 }

+ 44 - 18
onemini-hospital-empty/src/main/java/com/ywt/alipaympapi/service/impl/IsvReportServiceImpl.java

@@ -19,12 +19,14 @@ import com.ywt.response.report.QueryReportDetailResponseData;
 import com.ywt.response.report.QueryReportListResponseData;
 import com.ywt.alipaympapi.service.IsvReportService;
 import com.ywt.response.report.ReportItem;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
 import java.util.List;
 
+@Slf4j
 @Service
 public class IsvReportServiceImpl implements IsvReportService {
 
@@ -35,7 +37,7 @@ public class IsvReportServiceImpl implements IsvReportService {
     private TaiheServiceGrpc.TaiheServiceBlockingStub taiheServiceBlockingStub;
 
     @Override
-    public QueryReportDetailResponseData queryReportDetail(QueryReportDetailRequest request) throws AppMessageException {
+    public QueryReportDetailResponseData queryReportDetail(QueryReportDetailRequest request) throws Exception{
         QueryReportDetailResponseData data = new QueryReportDetailResponseData();
         if (StringHelper.isNullOrWhiteSpace(request.getRecordId())) {
             throw new AppMessageException("没有检验检查报告Id");
@@ -44,8 +46,8 @@ public class IsvReportServiceImpl implements IsvReportService {
         if (StringHelper.isNullOrWhiteSpace(request.getRecordId())) {
             throw new AppMessageException("没有报告类型");
         }
-        try {
-            int userId = ContextHelper.getCurrentUserIdWrapped();
+            String userIdStr = request.getUserId();
+            int userId = Integer.parseInt(userIdStr);
             int hospitalId = BizUtil.getCurrentHospitalId();
             String hisPatientId = request.getHisPatientId();
             MedicalCardVo card = getCard(userId, hospitalId, hisPatientId);
@@ -61,8 +63,9 @@ public class IsvReportServiceImpl implements IsvReportService {
                     List<String> reportItem = new ArrayList<>();
                     InspectionDetail detail = res.getDetail();
                     data.setRecordId(request.getRecordId());
-                    data.setUserName(card.getPatientName());
-                    data.setUserSex(card.getSex() == 1 ? "男" : "女");
+                    data.setUserName(Checker.getStringValue(card.getPatientName()));
+                    data.setUserSex(card.getSex() == 1 ? "男": card.getSex() ==  2 ? "女": "");
+                    data.setUserAge(Checker.getStringValue(card.getAge()));
                     data.setCardNum(Checker.getStringValue(card.getCardNum()));
                     data.setDepartmentName(detail.getDeptName());
                     data.setApplyDoctorName(detail.getDoctorName());
@@ -83,7 +86,8 @@ public class IsvReportServiceImpl implements IsvReportService {
                         com.ywt.gapi.user.InspectionReportDetail detail = girdResp.getReport();
                         data.setRecordId(request.getRecordId());
                         data.setUserName(card.getPatientName());
-                        data.setUserSex(card.getSex() == 1 ? "男" : "女");
+                        data.setUserSex(card.getSex() == 1 ? "男": card.getSex() ==  2 ? "女": "");
+                        data.setUserAge(Checker.getStringValue(card.getAge()));
                         data.setCardNum(Checker.getStringValue(card.getCardNum()));
                         data.setDepartmentName(detail.getDeptName());
                         data.setApplyDoctorName(Checker.getStringValue(detail.getAppDocName()));
@@ -108,6 +112,8 @@ public class IsvReportServiceImpl implements IsvReportService {
                     List<String> reportItem = new ArrayList<>();
                     data.setDiagnosis(reportItem);
                     data.setUserName(card.getPatientName());
+                    data.setUserSex(card.getSex() == 1 ? "男": card.getSex() ==  2 ? "女": "");
+                    data.setUserAge(Checker.getStringValue(card.getAge()));
                     data.setItemName(res.getTitle());
                     data.setReportDate(res.getTime());
                     data.setConfirmDoctorName(res.getDoctor());
@@ -133,7 +139,9 @@ public class IsvReportServiceImpl implements IsvReportService {
                         List<ReportItem> reportItemList = new ArrayList<>();
                         List<String> reportItem = new ArrayList<>();
                         data.setDiagnosis(reportItem);
-                        data.setUserName(card.getPatientName());
+                        data.setUserName(Checker.getStringValue(card.getPatientName()));
+                        data.setUserSex(card.getSex() == 1 ? "男": card.getSex() ==  2 ? "女": "");
+                        data.setUserAge(Checker.getStringValue(card.getAge()));
                         data.setItemName(res.getTitle());
                         data.setReportDate(res.getTime());
                         data.setConfirmDoctorName(res.getDoctor());
@@ -141,7 +149,7 @@ public class IsvReportServiceImpl implements IsvReportService {
                         data.setRecordId(request.getRecordId());
                         for (com.ywt.gapi.user.LaboratoryReportDetail detail : glrdResp.getDetailList()) {
                             ReportItem r = new ReportItem();
-                            r.setItemName(detail.getItemName());
+                            r.setItemName(Checker.getStringValue(detail.getItemName()));
                             r.setPnFlag(Checker.getStringValue(detail.getResultFlag()));
                             r.setReference(detail.getItemRef());
                             r.setTxtVal(detail.getTestResult());
@@ -153,16 +161,14 @@ public class IsvReportServiceImpl implements IsvReportService {
                     throw new AppMessageException("没有此报告");
                 }
             }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
         return data;
     }
 
     @Override
-    public PageVO<QueryReportListResponseData> queryReportList(QueryReportListRequest request) {
+    public PageVO<QueryReportListResponseData> queryReportList(QueryReportListRequest request) throws Exception {
         List<QueryReportListResponseData> list = new ArrayList<>();
-        int userId = ContextHelper.getCurrentUserIdWrapped();
+        String userIdStr = request.getUserId();
+        int userId = Integer.parseInt(userIdStr);
         // 报告类型:分为"检查报告"、"检验报告"两种
         String type = request.getType();
         int hospitalId = BizUtil.getCurrentHospitalId();
@@ -172,7 +178,6 @@ public class IsvReportServiceImpl implements IsvReportService {
         int total = 0;
         int totalT = 0;
         int totalTh = 0;
-        try {
             MedicalCardVo card = getCard(userId, hospitalId, hisPatientId);
 
             if ("检查报告".equals(type)) {
@@ -257,9 +262,6 @@ public class IsvReportServiceImpl implements IsvReportService {
                 }
 
             }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
         totalTh = total + totalT;
         Pagination pagination = new Pagination(pageIndex, pageSize, totalTh);
         PageVO<QueryReportListResponseData> res = new PageVO<>(pagination, list);
@@ -292,10 +294,34 @@ public class IsvReportServiceImpl implements IsvReportService {
                 v.setHisPatientId(card.getPatientId());
                 v.setPatientName(card.getPatientName());
                 v.setCardNum(card.getCardNo());
+                v.setAge(getAgeFromMedicalCard(card));
                 return v;
             }
         }
-
         throw new AppMessageException("没有此报告");
     }
+
+    private String getAgeFromMedicalCard(MedicalCard card) {
+        int age = -1;
+        String idNo = card.getIdNo();
+        String birthday = card.getBirthday();
+        if (!StringHelper.isNullOrEmpty(idNo)) {
+            try {
+                age = IdCardUtil.getCurrentAge(idNo);
+            } catch (Exception e) {
+                log.error("IsvMedicCardServiceImpl#getAgeFromMedicalCard(idNo = {}): 无法获取年龄 {}", idNo, e.getMessage(), e);
+            }
+        } else if (!StringHelper.isNullOrEmpty(birthday)) {
+            try {
+                age = IdCardUtil.getCurrentAgeByBirthday(birthday, IdCardUtil.DATE_PATTERN2);
+            } catch (Exception e) {
+                log.error("IsvMedicCardServiceImpl#getAgeFromMedicalCard(birthday = {}): 无法获取年龄 {}", birthday, e.getMessage(), e);
+            }
+        }
+        // 不返回年龄为 "-1"
+        if (age < 0) {
+            return "";
+        }
+        return String.valueOf(age);
+    }
 }

+ 1 - 1
onemini-hospital-sdk/src/main/java/com/ywt/alipaympapi/service/IsvReportService.java

@@ -19,7 +19,7 @@ public interface IsvReportService {
      * @param request
      * @return 查询结果
      **/
-    QueryReportDetailResponseData queryReportDetail(QueryReportDetailRequest request) throws AppMessageException;
+    QueryReportDetailResponseData queryReportDetail(QueryReportDetailRequest request) throws AppMessageException, Exception;
 
     /**
      * 就诊卡列表查询