Browse Source

处方诊断回调解决编码含有特殊符号问题

hurugang 2 years ago
parent
commit
3340b0c49f

+ 10 - 7
src/main/java/cn/hnthyy/thmz/controller/CommonController.java

@@ -12,10 +12,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.*;
 
@@ -909,13 +906,19 @@ public class CommonController {
     /**
      * 根据医保编码集合查询诊断列表
      *
-     * @param icdCode 查询参数
+     * @param params 查询参数
      * @return
      */
-    @RequestMapping(value = "/getZdIcdByCodes", method = {RequestMethod.GET})
-    public Map<String, Object> getZdIcdByCodes(@RequestParam("icdCode") String icdCode) {
+    @RequestMapping(value = "/getZdIcdByCodes", method = {RequestMethod.POST})
+    public Map<String, Object> getZdIcdByCodes(@RequestBody Map<String,String> params) {
         Map<String, Object> resultMap = new HashMap<>();
         try {
+            if (params==null || params.size()==0) {
+                resultMap.put("code", -1);
+                resultMap.put("message", "诊断编码集为空");
+                return resultMap;
+            }
+            String icdCode =params.get("icdCode");
             if (StringUtils.isBlank(icdCode)) {
                 resultMap.put("code", -1);
                 resultMap.put("message", "诊断编码集为空");

+ 23 - 3
src/main/java/cn/hnthyy/thmz/service/impl/his/zd/ZdIcdCodeServiceImpl.java

@@ -9,11 +9,15 @@ import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
 @Service
 public class ZdIcdCodeServiceImpl implements ZdIcdCodeService {
     @SuppressWarnings("all")
     @Autowired
     private ZdIcdCodeMapper zdIcdCodeMapper;
+
     @Override
     public List<ZdIcdCode> queryAllZdIcdCode() {
         return zdIcdCodeMapper.selectAllZdIcdCode();
@@ -21,10 +25,10 @@ public class ZdIcdCodeServiceImpl implements ZdIcdCodeService {
 
     @Override
     public List<ZdIcdCode> queryAllZdIcdCommonParams(String commonParams) {
-        if(StringUtils.isBlank(commonParams)){
+        if (StringUtils.isBlank(commonParams)) {
             return new ArrayList<>();
         }
-        commonParams="%"+commonParams+"%";
+        commonParams = "%" + commonParams + "%";
         return zdIcdCodeMapper.selectAllZdIcdCommonParams(commonParams);
     }
 
@@ -40,6 +44,22 @@ public class ZdIcdCodeServiceImpl implements ZdIcdCodeService {
 
     @Override
     public List<ZdIcdCode> queryByCodes(List<String> codes) {
-        return zdIcdCodeMapper.selectByCodes(codes);
+        List<ZdIcdCode> zdIcdCodeList = zdIcdCodeMapper.selectByCodes(codes);
+        if (zdIcdCodeList == null || zdIcdCodeList.size() == 0) {
+            return zdIcdCodeList;
+        }
+        Map<String, ZdIcdCode> zdIcdCodeMap = zdIcdCodeList.stream().collect(Collectors.toMap(ZdIcdCode::getCode, zdIcdCode -> zdIcdCode));
+        if (zdIcdCodeMap == null || zdIcdCodeMap.size() == 0) {
+            return zdIcdCodeList;
+        }
+        List<ZdIcdCode> list = new ArrayList<>();
+        for (String code : codes) {
+            ZdIcdCode temp = zdIcdCodeMap.get(code);
+            if (temp == null) {
+                continue;
+            }
+            list.add(temp);
+        }
+        return list;
     }
 }

+ 5 - 2
src/main/resources/static/js/mz/clinic.js

@@ -2900,11 +2900,14 @@ function editPrescription(jsonData, type) {
         var icdCode = jsonData.icdCode;
         if (icdCode != null && icdCode != "" && icdCode.length > 0) {
             $.ajax({
-                type: "GET",
-                url: '/thmz/getZdIcdByCodes?icdCode=' + icdCode,
+                type: "POST",
+                url: '/thmz/getZdIcdByCodes',
                 contentType: "application/json;charset=UTF-8",
                 dataType: "json",
                 async: false,
+                data: JSON.stringify({
+                    "icdCode": icdCode
+                }),
                 headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
                 success: function (res) {
                     if (res == '401' || res == 401) {