ソースを参照

feature: 住院人详情接口

wuyongyi 2 年 前
コミット
453430ea03

+ 35 - 2
onemini-hospital-empty/src/main/java/com/ywt/alipaympapi/service/impl/InpatientServiceImpl.java

@@ -447,7 +447,40 @@ public class InpatientServiceImpl implements InpatientService {
     }
 
     @Override
-    public InpatientDetailsResponseData inpatientDetails(InpatientDetailsRequest request) {
-        return null;
+    public InpatientDetailsResponseData inpatientDetails(InpatientDetailsRequest request) throws Exception {
+        int userId = Checker.parseInt(request.getUserId());
+
+        if (userId <= 0) {
+            throw new AppMessageException("userId不能为空");
+        };
+        int hospId = BizUtil.getCurrentHospitalId();
+        if(Checker.isNone(request.getInpatientId())){
+            throw new AppMessageException("hisPationId不能为空");
+        }
+        String hisPationId = Checker.getStringValue(request.getInpatientId());
+        GetMedicalCardListRequest getMedicalCardListRequest = GetMedicalCardListRequest.newBuilder()
+                .setHospitalId(hospId)
+                .setUserId(userId)
+                .setFlag(0)
+                .build();
+        GetMedicalCardListResponse getMedicalCardListResponse = userServiceBlockingStub.getMedicalCardList(getMedicalCardListRequest);
+        Result result = getMedicalCardListResponse.getResult();
+        InpatientDetailsResponseData data = new InpatientDetailsResponseData();
+        if (result.getCode() == ResultCode.SUCCEED) {
+            for (MedicalCard medicalCard : getMedicalCardListResponse.getMedicalCardsList()) {
+                if(medicalCard.getPatientId().equals(hisPationId)) {
+                    data.setPatientId(hisPationId);
+                    data.setInpatientId(hisPationId);
+                    data.setInpatientName(medicalCard.getPatientName());
+                    data.setSex(medicalCard.getSex() == 1 ? "男" : "女");
+                    Date date = DateUtil.stringToDate(medicalCard.getBirthday(), DateUtil.DADE_FROMAT_YMD);
+                    data.setInpatientAge(Integer.parseInt(getAgeFromMedicalCard(medicalCard)));
+                    InpatientVo vo = getInpatientVo(userId, medicalCard.getPatientId());
+                    return data;
+                }
+            }
+            return data;
+        }
+        return data;
     }
 }

+ 9 - 2
onemini-hospital-sdk/src/main/java/com/ywt/alipaympapi/controller/InpatientController.java

@@ -110,8 +110,15 @@ public class InpatientController {
      */
     @PostMapping("isvRequest.inpatient.details")
     public ResponseVO<InpatientDetailsResponseData> inpatientDetails(InpatientDetailsRequest request) {
-        log.info("request:{}", JSON.toJSONString(request));
-        return ResponseVO.success(inpatientService.inpatientDetails(request));
+       try{
+           return ResponseVO.success(inpatientService.inpatientDetails(request));
+       }catch (AppMessageException e) {
+           return ResponseVO.fail(Code.RESP_CODE_PARAM_ERROR, e.getMessage());
+       } catch (Exception e) {
+           log.error("InpatientController#inpatient.details(request = {}):\n {}", request, e.getMessage(), e);
+           return ResponseVO.fail(Code.RESP_CODE_APP_EXCEPTION, e.getMessage());
+       }
+
     }
 
     /**

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

@@ -188,5 +188,5 @@ public interface InpatientService {
      * @param request
      * @return
      */
-    InpatientDetailsResponseData inpatientDetails(InpatientDetailsRequest request);
+    InpatientDetailsResponseData inpatientDetails(InpatientDetailsRequest request) throws AppMessageException, Exception;
 }