Ver Fonte

基本完成病案首页的填写模块。

lighter há 4 anos atrás
pai
commit
3658e5817d

+ 5 - 0
pom.xml

@@ -124,6 +124,11 @@
             <artifactId>wechatpay-apache-httpclient</artifactId>
             <version>0.2.1</version>
         </dependency>
+        <dependency>
+            <groupId>com.oracle.database.jdbc</groupId>
+            <artifactId>ojdbc6</artifactId>
+            <version>11.2.0.4</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 14 - 1
src/main/java/thyyxxk/webserver/controller/casefrontsheet/CaseFrontSheetController.java

@@ -6,6 +6,7 @@ import thyyxxk.webserver.pojo.ResultVo;
 import thyyxxk.webserver.pojo.casefrontsheet.*;
 import thyyxxk.webserver.pojo.dictionary.PureCodeName;
 import thyyxxk.webserver.service.casefrontsheet.CaseFrontSheetService;
+import thyyxxk.webserver.utils.TokenUtil;
 
 import java.util.List;
 import java.util.Map;
@@ -59,6 +60,7 @@ public class CaseFrontSheetController {
 
     @PostMapping("/save")
     public ResultVo<String> savePatientInfo(@RequestBody SheetInfo param) {
+        param.setCode(TokenUtil.getTokenUserId());
         return service.savePatientInfo(param);
     }
 
@@ -68,38 +70,44 @@ public class CaseFrontSheetController {
         return service.getYbDiags(bah, times);
     }
 
-    @PostMapping("/saveYbDiags")
+    @PostMapping("/doSaveYbDiags")
     public ResultVo<String> saveYbDiags(@RequestBody SaveYbDiagParam param) {
         return service.saveYbDiags(param);
     }
 
     @PostMapping("/unArchiveBa")
     public ResultVo<String> unArchiveBa(@RequestBody SheetInfo param) {
+        param.setCode(TokenUtil.getTokenUserId());
         return service.unArchiveBa(param);
     }
 
     @PostMapping("/printVerify")
     public ResultVo<String> infoVerification(@RequestBody SheetInfo info) {
+        info.setCode(TokenUtil.getTokenUserId());
         return service.infoVerification(info);
     }
 
     @PostMapping("/saveVerify")
     public ResultVo<String> saveVerify(@RequestBody SheetInfo info) {
+        info.setCode(TokenUtil.getTokenUserId());
         return service.saveVerify(info);
     }
 
     @PostMapping("/confirmCopyPrint")
     public ResultVo<String> confirmCopyPrint(@RequestBody SheetInfo info) {
+        info.setCode(TokenUtil.getTokenUserId());
         return service.confirmCopyPrint(info);
     }
 
     @PostMapping("/lendOut")
     public ResultVo<String> lendOut(@RequestBody SheetInfo param) {
+        param.setCode(TokenUtil.getTokenUserId());
         return service.lendOut(param);
     }
 
     @PostMapping("/lendBack")
     public ResultVo<String> lendBack(@RequestBody SheetInfo param) {
+        param.setCode(TokenUtil.getTokenUserId());
         return service.lendBack(param);
     }
 
@@ -107,4 +115,9 @@ public class CaseFrontSheetController {
     public ResultVo<List<AdvanceOverview>> advanceSearch(@RequestBody AdvanceSearchParam param) {
         return service.advanceSearch(param);
     }
+
+    @GetMapping("/fetchSsfz")
+    public ResultVo<PureCodeName> fetchSsfz(@RequestParam("code") String code) {
+        return service.fetchSsfz(code);
+    }
 }

+ 28 - 0
src/main/java/thyyxxk/webserver/controller/casefrontsheet/SheetSearchController.java

@@ -0,0 +1,28 @@
+package thyyxxk.webserver.controller.casefrontsheet;
+
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import thyyxxk.webserver.pojo.ResultVo;
+import thyyxxk.webserver.pojo.dictionary.PureCodeName;
+import thyyxxk.webserver.pojo.dictionary.SearchDataParam;
+import thyyxxk.webserver.service.casefrontsheet.SheetSearchService;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/sheetSearch")
+public class SheetSearchController {
+    private final SheetSearchService service;
+
+    public SheetSearchController(SheetSearchService service) {
+        this.service = service;
+    }
+
+    @PostMapping("/execute")
+    public ResultVo<List<PureCodeName>> sheetSearch(@Validated @RequestBody SearchDataParam param) {
+        return service.sheetSearch(param);
+    }
+}

+ 5 - 5
src/main/java/thyyxxk/webserver/controller/yibao/DictionaryController.java

@@ -6,7 +6,7 @@ import org.springframework.web.bind.annotation.*;
 import thyyxxk.webserver.config.auth.PassToken;
 import thyyxxk.webserver.config.exception.ExceptionEnum;
 import thyyxxk.webserver.pojo.ResultVo;
-import thyyxxk.webserver.pojo.dictionary.CodeNamePojo;
+import thyyxxk.webserver.pojo.dictionary.PureCodeName;
 import thyyxxk.webserver.pojo.dictionary.SearchDataParam;
 import thyyxxk.webserver.service.yibao.DictionaryService;
 import thyyxxk.webserver.utils.ResultVoUtil;
@@ -26,25 +26,25 @@ public class DictionaryController {
 
     @PassToken
     @GetMapping("/visitAndResponce")
-    public ResultVo<Map<String, List<CodeNamePojo>>> getVisitAndResponce() {
+    public ResultVo<Map<String, List<PureCodeName>>> getVisitAndResponce() {
         return service.getVisitAndResponce();
     }
 
     @PostMapping("/searchData")
-    public ResultVo<List<CodeNamePojo>> searchData(@RequestBody @Validated SearchDataParam param) {
+    public ResultVo<List<PureCodeName>> searchData(@RequestBody @Validated SearchDataParam param) {
         return service.searchData(param);
     }
 
     @PassToken
     @PostMapping("/searchYbDiag") // *这是给病案首页填医保诊断用的*
-    public ResultVo<List<CodeNamePojo>> searchYbDiag(@RequestBody SearchDataParam param) {
+    public ResultVo<List<PureCodeName>> searchYbDiag(@RequestBody SearchDataParam param) {
         if (null == param.getResponceType()) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "医保身份不能为空!");
         }
         if (!param.getResponceType().equals("04") && null == param.getYbType()) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "医保类别不能为空!");
         }
-        List<CodeNamePojo> list = service.searchYbDiag(param);
+        List<PureCodeName> list = service.searchYbDiag(param);
         int start = param.getPage() * 10;
         int end = param.getPage() * 10 + 10;
         return ResultVoUtil.success(list.subList(start, Math.min(list.size(), end)));

+ 127 - 0
src/main/java/thyyxxk/webserver/dao_his/casefrontsheet/SheetSearchDao.java

@@ -0,0 +1,127 @@
+package thyyxxk.webserver.dao_his.casefrontsheet;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
+import thyyxxk.webserver.pojo.dictionary.PureCodeName;
+
+import java.util.List;
+
+@Mapper
+public interface SheetSearchDao {
+    @Select("select top 10 rtrim(code) code, rtrim(name) name from " +
+            "(SELECT ROW_NUMBER() OVER(ORDER BY code) AS 'Number',  * " +
+            "from zd_cm3 where py_code like #{content}) a " +
+            "where a.[Number]>10*(#{page})")
+    List<PureCodeName> searchSurgeryByAlpha(@Param("content") String content, @Param("page") int page);
+
+    @Select("select top 10 rtrim(code) code, rtrim(name) name from " +
+            "(SELECT ROW_NUMBER() OVER(ORDER BY code) AS 'Number',  * " +
+            "from zd_cm3 where code like #{content}) a " +
+            "where a.[Number]>10*(#{page})")
+    List<PureCodeName> searchSurgeryByCode(@Param("content") String content, @Param("page") int page);
+
+    @Select("select top 10 rtrim(code) code, rtrim(name) name from " +
+            "(SELECT ROW_NUMBER() OVER(ORDER BY code) AS 'Number',  * " +
+            "from zd_cm3 where name like #{content}) a " +
+            "where a.[Number]>10*(#{page})")
+    List<PureCodeName> searchSurgeryByName(@Param("content") String content, @Param("page") int page);
+
+    @Select("select top 10 rtrim(CODE) code, rtrim(NAME) name from " +
+            "(SELECT ROW_NUMBER() OVER(ORDER BY CODE) AS 'Number',  * " +
+            "from zd_pathologic_diag_code where PY_CODE like #{content}) a " +
+            "where a.[Number]>10*(#{page})")
+    List<PureCodeName> searchPathologicDiagByAlpha(@Param("content") String content, @Param("page") int page);
+
+    @Select("select top 10 rtrim(CODE) code, rtrim(NAME) name from " +
+            "(SELECT ROW_NUMBER() OVER(ORDER BY CODE) AS 'Number',  * " +
+            "from zd_pathologic_diag_code where CODE like #{content}) a " +
+            "where a.[Number]>10*(#{page})")
+    List<PureCodeName> searchPathologicDiagByCode(@Param("content") String content, @Param("page") int page);
+
+    @Select("select top 10 rtrim(CODE) code, rtrim(NAME) name from " +
+            "(SELECT ROW_NUMBER() OVER(ORDER BY CODE) AS 'Number',  * " +
+            "from zd_pathologic_diag_code where NAME like #{content}) a " +
+            "where a.[Number]>10*(#{page})")
+    List<PureCodeName> searchPathologicDiagByName(@Param("content") String content, @Param("page") int page);
+
+    @Select("select top 10 rtrim(code) code, rtrim(name) name from " +
+            "(SELECT ROW_NUMBER() OVER(ORDER BY code) AS 'Number',  * " +
+            "from zd_district_code where py_code like #{content}) a " +
+            "where a.[Number]>10*(#{page})")
+    List<PureCodeName> searchBirthPlaceByAlpha(@Param("content") String content, @Param("page") int page);
+
+    @Select("select top 10 rtrim(code) code, rtrim(name) name from " +
+            "(SELECT ROW_NUMBER() OVER(ORDER BY code) AS 'Number',  * " +
+            "from zd_district_code where code like #{content}) a " +
+            "where a.[Number]>10*(#{page})")
+    List<PureCodeName> searchBirthPlaceByCode(@Param("content") String content, @Param("page") int page);
+
+    @Select("select top 10 rtrim(code) code, rtrim(name) name from " +
+            "(SELECT ROW_NUMBER() OVER(ORDER BY code) AS 'Number',  * " +
+            "from zd_district_code where name like #{content}) a " +
+            "where a.[Number]>10*(#{page})")
+    List<PureCodeName> searchBirthPlaceByName(@Param("content") String content, @Param("page") int page);
+
+    @Select("select top 10 rtrim(code) code, rtrim(name) name from " +
+            "(SELECT ROW_NUMBER() OVER(ORDER BY code) AS 'Number',  * " +
+            "from zd_icd_code where py_code like #{content}) a " +
+            "where a.[Number]>10*(#{page})")
+    List<PureCodeName> searchClinicDiagByAlpha(@Param("content") String content, @Param("page") int page);
+
+    @Select("select top 10 rtrim(code) code, rtrim(name) name from " +
+            "(SELECT ROW_NUMBER() OVER(ORDER BY code) AS 'Number',  * " +
+            "from zd_icd_code where code like #{content}) a " +
+            "where a.[Number]>10*(#{page})")
+    List<PureCodeName> searchClinicDiagByCode(@Param("content") String content, @Param("page") int page);
+
+    @Select("select top 10 rtrim(code) code, rtrim(name) name from " +
+            "(SELECT ROW_NUMBER() OVER(ORDER BY code) AS 'Number',  * " +
+            "from zd_icd_code where name like #{content}) a " +
+            "where a.[Number]>10*(#{page})")
+    List<PureCodeName> searchClinicDiagByName(@Param("content") String content, @Param("page") int page);
+
+    @Select("select top 10 rtrim(code) code, rtrim(name) name from " +
+            "(SELECT ROW_NUMBER() OVER(ORDER BY code) AS 'Number',  * " +
+            "from zd_icd_code where PATINDEX('%[V-Y]%',code)=1 and py_code like #{content}) a " +
+            "where a.[Number]>10*(#{page})")
+    List<PureCodeName> searchHurtReasonByAlpha(@Param("content") String content, @Param("page") int page);
+
+    @Select("select top 10 rtrim(code) code, rtrim(name) name from " +
+            "(SELECT ROW_NUMBER() OVER(ORDER BY code) AS 'Number',  * " +
+            "from zd_icd_code where PATINDEX('%[V-Y]%',code)=1 and code like #{content}) a " +
+            "where a.[Number]>10*(#{page})")
+    List<PureCodeName> searchHurtReasonByCode(@Param("content") String content, @Param("page") int page);
+
+    @Select("select top 10 rtrim(code) code, rtrim(name) name from " +
+            "(SELECT ROW_NUMBER() OVER(ORDER BY code) AS 'Number',  * " +
+            "from zd_icd_code where PATINDEX('%[V-Y]%',code)=1 and name like #{content}) a " +
+            "where a.[Number]>10*(#{page})")
+    List<PureCodeName> searchHurtReasonByName(@Param("content") String content, @Param("page") int page);
+
+    @Select("select top 10 rtrim(code) code, rtrim(name) name from " +
+            "(SELECT ROW_NUMBER() OVER(ORDER BY code) AS 'Number',  * " +
+            "from a_employee_mi where isnull(del_flag,0)=0 and py_code like #{content}) a " +
+            "where a.[Number]>10*(#{page})")
+    List<PureCodeName> searchEmployeeByAlpha(@Param("content") String content, @Param("page") int page);
+
+    @Select("select top 10 rtrim(code) code, rtrim(name) name from " +
+            "(SELECT ROW_NUMBER() OVER(ORDER BY code) AS 'Number',  * " +
+            "from a_employee_mi where isnull(del_flag,0)=0 and code like #{content}) a " +
+            "where a.[Number]>10*(#{page})")
+    List<PureCodeName> searchEmployeeByCode(@Param("content") String content, @Param("page") int page);
+
+    @Select("select top 10 rtrim(code) code, rtrim(name) name from " +
+            "(SELECT ROW_NUMBER() OVER(ORDER BY code) AS 'Number',  * " +
+            "from a_employee_mi where isnull(del_flag,0)=0 and name like #{content}) a " +
+            "where a.[Number]>10*(#{page})")
+    List<PureCodeName> searchEmployeeByName(@Param("content") String content, @Param("page") int page);
+
+    @Select("select rtrim(code) code, rtrim(name) name from zd_cm3_new")
+    List<PureCodeName> getAllItem();
+
+    @Update("update zd_cm3_new set py_code=#{py} where code=#{code}")
+    void updatePyCode(@Param("py") String py, @Param("code") String code);
+
+}

+ 48 - 48
src/main/java/thyyxxk/webserver/dao_his/yibao/DictionaryDao.java

@@ -2,7 +2,7 @@ package thyyxxk.webserver.dao_his.yibao;
 
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Select;
-import thyyxxk.webserver.pojo.dictionary.CodeNamePojo;
+import thyyxxk.webserver.pojo.dictionary.PureCodeName;
 
 import java.util.List;
 
@@ -10,171 +10,171 @@ import java.util.List;
 public interface DictionaryDao {
 
     @Select("SELECT rtrim(code) code, rtrim(name) name FROM zd_visit_type")
-    List<CodeNamePojo> getVisitType();
+    List<PureCodeName> getVisitType();
 
     @Select("SELECT rtrim(code) code,rtrim(name) name FROM zy_zd_responce_type WHERE (isnull(del_flag,0)) = 0")
-    List<CodeNamePojo> getResponceType();
+    List<PureCodeName> getResponceType();
 
     @Select("SELECT RTRIM(code) AS code,rtrim(name) name FROM a_employee_mi WHERE isnull(del_flag,0)!=1 and py_code LIKE #{content}")
-    List<CodeNamePojo> searchPhysicianByPinyin(String content);
+    List<PureCodeName> searchPhysicianByPinyin(String content);
 
     @Select("SELECT RTRIM(code) AS code,rtrim(name) name FROM a_employee_mi WHERE code LIKE #{content}")
-    List<CodeNamePojo> searchPhysicianByCode(String content);
+    List<PureCodeName> searchPhysicianByCode(String content);
 
     @Select("SELECT RTRIM(code) AS code,rtrim(name) name FROM a_employee_mi WHERE name LIKE #{content}")
-    List<CodeNamePojo> searchPhysicianByName(String content);
+    List<PureCodeName> searchPhysicianByName(String content);
 
     @Select("SELECT rtrim(code) code,rtrim(name) name FROM yb_zd_xnh_cmisno WHERE py_code LIKE #{content}")
-    List<CodeNamePojo> searchCmisNoByPinyin(String content);
+    List<PureCodeName> searchCmisNoByPinyin(String content);
 
     @Select("SELECT rtrim(code) code,rtrim(name) name FROM yb_zd_xnh_cmisno WHERE code LIKE #{content}")
-    List<CodeNamePojo> searchCmisNoByCode(String content);
+    List<PureCodeName> searchCmisNoByCode(String content);
 
     @Select("SELECT rtrim(code) code,rtrim(name) name FROM yb_zd_xnh_cmisno WHERE name LIKE #{content}")
-    List<CodeNamePojo> searchCmisNoByName(String content);
+    List<PureCodeName> searchCmisNoByName(String content);
 
     @Select("SELECT rtrim(code) code,rtrim(name) name FROM zd_redeem_type_xnh where LEN(RTRIM(code))>2 and py_code LIKE #{content}")
-    List<CodeNamePojo> searchRedeemByPinyin(String content);
+    List<PureCodeName> searchRedeemByPinyin(String content);
 
     @Select("SELECT rtrim(code) code,rtrim(name) name FROM zd_redeem_type_xnh where LEN(RTRIM(code))>2 and code LIKE #{content}")
-    List<CodeNamePojo> searchRedeemByCode(String content);
+    List<PureCodeName> searchRedeemByCode(String content);
 
     @Select("SELECT rtrim(code) code,rtrim(name) name FROM zd_redeem_type_xnh where LEN(RTRIM(code))>2 and name LIKE #{content}")
-    List<CodeNamePojo> searchRedeemByName(String content);
+    List<PureCodeName> searchRedeemByName(String content);
 
     @Select("SELECT icdAllno AS code,icdName AS name FROM zd_icd_code_xnh WHERE py_code LIKE #{content}")
-    List<CodeNamePojo> search_04_n_n_diagByPinyin(String content);
+    List<PureCodeName> search_04_n_n_diagByPinyin(String content);
 
     @Select("SELECT icdAllno AS code,icdName AS name FROM zd_icd_code_xnh WHERE icdAllno LIKE #{content}")
-    List<CodeNamePojo> search_04_n_n_diagByCode(String content);
+    List<PureCodeName> search_04_n_n_diagByCode(String content);
 
     @Select("SELECT icdAllno AS code,icdName AS name FROM zd_icd_code_xnh WHERE icdName LIKE #{content}")
-    List<CodeNamePojo> search_04_n_n_diagByName(String content);
+    List<PureCodeName> search_04_n_n_diagByName(String content);
 
     @Select("SELECT icd AS code,disease AS name FROM [insur_yb].dbo.bs_disease WHERE center_id='439900' AND " +
             "charindex('_dbz',icd)=0 AND code_py LIKE #{content} order by disease")
-    List<CodeNamePojo> search_10_n_n_diagByPinyin(String content);
+    List<PureCodeName> search_10_n_n_diagByPinyin(String content);
 
     @Select("SELECT icd AS code,disease AS name FROM [insur_yb].dbo.bs_disease WHERE center_id='439900' AND " +
             "charindex('_dbz',icd)=0 AND icd LIKE #{content} order by disease")
-    List<CodeNamePojo> search_10_n_n_diagByCode(String content);
+    List<PureCodeName> search_10_n_n_diagByCode(String content);
 
     @Select("SELECT icd AS code,disease AS name FROM [insur_yb].dbo.bs_disease WHERE center_id='439900' AND " +
             "charindex('_dbz',icd)=0 AND disease LIKE #{content} order by disease")
-    List<CodeNamePojo> search_10_n_n_diagByName(String content);
+    List<PureCodeName> search_10_n_n_diagByName(String content);
 
     @Select("SELECT icd AS code,disease AS name FROM [insur_yb].dbo.bs_disease WHERE center_id='439900' " +
             "AND expire_date>getdate() AND (charindex('_dbz',icd)>0 or charindex('BGBZ',icd)>0) AND code_py LIKE #{content}")
-    List<CodeNamePojo> search_n_12_121_diagByPinyin(String content);
+    List<PureCodeName> search_n_12_121_diagByPinyin(String content);
 
     @Select("SELECT icd AS code,disease AS name FROM [insur_yb].dbo.bs_disease WHERE center_id='439900' " +
             "AND expire_date>getdate() AND (charindex('_dbz',icd)>0 or charindex('BGBZ',icd)>0) AND icd LIKE #{content}")
-    List<CodeNamePojo> search_n_12_121_diagByCode(String content);
+    List<PureCodeName> search_n_12_121_diagByCode(String content);
 
     @Select("SELECT icd AS code,disease AS name FROM [insur_yb].dbo.bs_disease WHERE center_id='439900' " +
             "AND expire_date>getdate() AND (charindex('_dbz',icd)>0 or charindex('BGBZ',icd)>0) AND disease LIKE #{content}")
-    List<CodeNamePojo> search_n_12_121_diagByName(String content);
+    List<PureCodeName> search_n_12_121_diagByName(String content);
 
     @Select("SELECT icd AS code,disease AS name FROM [insur_yb].dbo.bs_disease WHERE center_id='439900' " +
             "AND expire_date>getdate() AND charindex('_dbz',icd)=0 AND code_py LIKE #{content}")
-    List<CodeNamePojo> search_n_12_n_diagByPinyin(String content);
+    List<PureCodeName> search_n_12_n_diagByPinyin(String content);
 
     @Select("SELECT icd AS code,disease AS name FROM [insur_yb].dbo.bs_disease WHERE center_id='439900' " +
             "AND expire_date>getdate() AND charindex('_dbz',icd)=0 AND icd LIKE #{content}")
-    List<CodeNamePojo> search_n_12_n_diagByCode(String content);
+    List<PureCodeName> search_n_12_n_diagByCode(String content);
 
     @Select("SELECT icd AS code,disease AS name FROM [insur_yb].dbo.bs_disease WHERE center_id='439900' " +
             "AND expire_date>getdate() AND charindex('_dbz',icd)=0 AND disease LIKE #{content}")
-    List<CodeNamePojo> search_n_12_n_diagByName(String content);
+    List<PureCodeName> search_n_12_n_diagByName(String content);
 
     @Select("SELECT icd AS code,disease AS name FROM [insur_szgs].dbo.bs_disease " +
             "WHERE center_id='439901' AND expire_date>getdate() AND code_py LIKE #{content}")
-    List<CodeNamePojo> search_02_42_n_diagByPinyin(String content);
+    List<PureCodeName> search_02_42_n_diagByPinyin(String content);
 
     @Select("SELECT icd AS code,disease AS name FROM [insur_szgs].dbo.bs_disease " +
             "WHERE center_id='439901' AND expire_date>getdate() AND icd LIKE #{content}")
-    List<CodeNamePojo> search_02_42_n_diagByCode(String content);
+    List<PureCodeName> search_02_42_n_diagByCode(String content);
 
     @Select("SELECT icd AS code,disease AS name FROM [insur_szgs].dbo.bs_disease " +
             "WHERE center_id='439901' AND expire_date>getdate() AND disease LIKE #{content}")
-    List<CodeNamePojo> search_02_42_n_diagByName(String content);
+    List<PureCodeName> search_02_42_n_diagByName(String content);
 
     @Select("SELECT rtrim(code) code,rtrim(name) name FROM yb_zd_icd_code WHERE gs_flag=1 AND py_code LIKE #{content}")
-    List<CodeNamePojo> search_n_42_n_diagByPinyin(String content);
+    List<PureCodeName> search_n_42_n_diagByPinyin(String content);
 
     @Select("SELECT rtrim(code) code,rtrim(name) name FROM yb_zd_icd_code WHERE gs_flag=1 AND code LIKE #{content}")
-    List<CodeNamePojo> search_n_42_n_diagByCode(String content);
+    List<PureCodeName> search_n_42_n_diagByCode(String content);
 
     @Select("SELECT rtrim(code) code,rtrim(name) name FROM yb_zd_icd_code WHERE gs_flag=1 AND name LIKE #{content}")
-    List<CodeNamePojo> search_n_42_n_diagByName(String content);
+    List<PureCodeName> search_n_42_n_diagByName(String content);
 
     @Select("SELECT icd AS code,disease AS name FROM [insur_yb].dbo.bs_disease WHERE expire_date>getdate() " +
             "AND charindex('_dbz',icd)=0 AND code_py LIKE #{content}")
-    List<CodeNamePojo> search_n_52_n_diagByPinyin(String content);
+    List<PureCodeName> search_n_52_n_diagByPinyin(String content);
 
     @Select("SELECT icd AS code,disease AS name FROM [insur_yb].dbo.bs_disease WHERE expire_date>getdate() " +
             "AND charindex('_dbz',icd)=0 AND icd LIKE #{content}")
-    List<CodeNamePojo> search_n_52_n_diagByCode(String content);
+    List<PureCodeName> search_n_52_n_diagByCode(String content);
 
     @Select("SELECT icd AS code,disease AS name FROM [insur_yb].dbo.bs_disease WHERE expire_date>getdate() " +
             "AND charindex('_dbz',icd)=0 AND disease LIKE #{content}")
-    List<CodeNamePojo> search_n_52_n_diagByName(String content);
+    List<PureCodeName> search_n_52_n_diagByName(String content);
 
     @Select("SELECT rtrim(code) code,rtrim(name) name FROM yb_zd_icd_code WHERE gs_flag=1 AND py_code LIKE #{content}")
-    List<CodeNamePojo> search_n_44or46_n_diagByPinyin(String content);
+    List<PureCodeName> search_n_44or46_n_diagByPinyin(String content);
 
     @Select("SELECT rtrim(code) code,rtrim(name) name FROM yb_zd_icd_code WHERE gs_flag=1 AND code LIKE #{content}")
-    List<CodeNamePojo> search_n_44or46_n_diagByCode(String content);
+    List<PureCodeName> search_n_44or46_n_diagByCode(String content);
 
     @Select("SELECT rtrim(code) code,rtrim(name) name FROM yb_zd_icd_code WHERE gs_flag=1 AND name LIKE #{content}")
-    List<CodeNamePojo> search_n_44or46_n_diagByName(String content);
+    List<PureCodeName> search_n_44or46_n_diagByName(String content);
 
     @Select("SELECT rtrim(code) code,rtrim(name) name FROM yb_zd_icd_code WHERE sy_flag=1 AND " +
             "(charindex('SY',code)>0 or CHARINDEX('sy', code)>0) AND py_code LIKE #{content}")
-    List<CodeNamePojo> search_n_53or54_n_diagByPinyin(String content);
+    List<PureCodeName> search_n_53or54_n_diagByPinyin(String content);
 
     @Select("SELECT rtrim(code) code,rtrim(name) name FROM yb_zd_icd_code WHERE sy_flag=1 AND " +
             "(charindex('SY',code)>0 or CHARINDEX('sy', code)>0) AND code LIKE #{content}")
-    List<CodeNamePojo> search_n_53or54_n_diagByCode(String content);
+    List<PureCodeName> search_n_53or54_n_diagByCode(String content);
 
     @Select("SELECT rtrim(code) code,rtrim(name) name FROM yb_zd_icd_code WHERE sy_flag=1 AND " +
             "(charindex('SY',code)>0 or CHARINDEX('sy', code)>0) AND name LIKE #{content}")
-    List<CodeNamePojo> search_n_53or54_n_diagByName(String content);
+    List<PureCodeName> search_n_53or54_n_diagByName(String content);
 
     @Select("SELECT rtrim(code) code,rtrim(name) name FROM yb_zd_icd_code WHERE sy_flag=1 AND " +
             "charindex('sy',code)>0 AND py_code LIKE #{content}")
-    List<CodeNamePojo> search_n_31or73_n_diagByPinyin(String content);
+    List<PureCodeName> search_n_31or73_n_diagByPinyin(String content);
 
     @Select("SELECT rtrim(code) code,rtrim(name) name FROM yb_zd_icd_code WHERE sy_flag=1 AND " +
             "charindex('sy',code)>0 AND code LIKE #{content}")
-    List<CodeNamePojo> search_n_31or73_n_diagByCode(String content);
+    List<PureCodeName> search_n_31or73_n_diagByCode(String content);
 
     @Select("SELECT rtrim(code) code,rtrim(name) name FROM yb_zd_icd_code WHERE sy_flag=1 AND " +
             "charindex('sy',code)>0 AND name LIKE #{content}")
-    List<CodeNamePojo> search_n_31or73_n_diagByName(String content);
+    List<PureCodeName> search_n_31or73_n_diagByName(String content);
 
     @Select("SELECT rtrim(code) code,rtrim(name) name FROM yb_zd_icd_code WHERE charindex('DBZ',code)=0 " +
             "AND (charindex('SY',code)=0 or CHARINDEX('sy', code)=0) AND charindex('sy',code)=0 AND py_code LIKE #{content}")
-    List<CodeNamePojo> search_n_21or61_n_diagByPinyin(String content);
+    List<PureCodeName> search_n_21or61_n_diagByPinyin(String content);
 
     @Select("SELECT rtrim(code) code,rtrim(name) name FROM yb_zd_icd_code WHERE charindex('DBZ',code)=0 " +
             "AND (charindex('SY',code)=0 or CHARINDEX('sy', code)=0) AND charindex('sy',code)=0 AND code LIKE #{content}")
-    List<CodeNamePojo> search_n_21or61_n_diagByCode(String content);
+    List<PureCodeName> search_n_21or61_n_diagByCode(String content);
 
     @Select("SELECT rtrim(code) code,rtrim(name) name FROM yb_zd_icd_code WHERE charindex('DBZ',code)=0 " +
             "AND (charindex('SY',code)=0 or CHARINDEX('sy', code)=0) AND charindex('sy',code)=0 AND name LIKE #{content}")
-    List<CodeNamePojo> search_n_21or61_n_diagByName(String content);
+    List<PureCodeName> search_n_21or61_n_diagByName(String content);
 
     @Select("SELECT rtrim(code) code,rtrim(name) name FROM yb_zd_icd_code WHERE " +
             "charindex('DBZ',code)>0 AND py_code LIKE #{content}")
-    List<CodeNamePojo> search_n_23or63_n_diagByPinyin(String content);
+    List<PureCodeName> search_n_23or63_n_diagByPinyin(String content);
 
     @Select("SELECT rtrim(code) code,rtrim(name) name FROM yb_zd_icd_code WHERE " +
             "charindex('DBZ',code)>0 AND code LIKE #{content}")
-    List<CodeNamePojo> search_n_23or63_n_diagByCode(String content);
+    List<PureCodeName> search_n_23or63_n_diagByCode(String content);
 
     @Select("SELECT rtrim(code) code,rtrim(name) name FROM yb_zd_icd_code WHERE " +
             "charindex('DBZ',code)>0 AND name LIKE #{content}")
-    List<CodeNamePojo> search_n_23or63_n_diagByName(String content);
+    List<PureCodeName> search_n_23or63_n_diagByName(String content);
 
 }

+ 57 - 10
src/main/java/thyyxxk/webserver/service/casefrontsheet/CaseFrontSheetService.java

@@ -11,12 +11,13 @@ import thyyxxk.webserver.pojo.ResultVo;
 import thyyxxk.webserver.pojo.casefrontsheet.*;
 import thyyxxk.webserver.pojo.dictionary.CodeNamePojo;
 import thyyxxk.webserver.pojo.dictionary.PureCodeName;
-import thyyxxk.webserver.utils.DateUtil;
-import thyyxxk.webserver.utils.DecimalUtil;
-import thyyxxk.webserver.utils.ResultVoUtil;
-import thyyxxk.webserver.utils.VerifyCaseFrontSheet;
+import thyyxxk.webserver.utils.*;
 
 import java.lang.reflect.Field;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -239,8 +240,9 @@ public class CaseFrontSheetService {
                 List<SheetDisdiag> diags = param.getDisdiags();
                 for (int i = 0; i < diags.size(); i++) {
                     SheetDisdiag item = diags.get(i);
-                    if (item.getCode().equals(""))
+                    if (null == item.getCode()) {
                         break;
+                    }
                     item.setNo(i + 1);
                     item.setBah(bah);
                     item.setTimes(times);
@@ -252,8 +254,9 @@ public class CaseFrontSheetService {
                 List<SheetSurgery> surgeries = param.getSurgeries();
                 for (int i = 0; i < surgeries.size(); i++) {
                     SheetSurgery item = surgeries.get(i);
-                    if (item.getCode().equals(""))
+                    if (null == item.getCode()) {
                         break;
+                    }
                     item.setNo(i + 1);
                     item.setBah(bah);
                     item.setTimes(times);
@@ -304,14 +307,13 @@ public class CaseFrontSheetService {
         }
         final String message = VerifyCaseFrontSheet.getInstance().printVerify(info);
         log.info("打印前病案逻辑校验, 操作员:{} >>> {}", info.getCode(), message);
-        if (message.equals("<div class=\"verify-done\">校验结束。</div>")) {
+        if (message.equals("")) {
             return ResultVoUtil.success();
         }
         return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, message);
     }
 
     public ResultVo<String> saveVerify(SheetInfo info) {
-        log.info(info.getCode());
         if (info.getFileStatus() == 1 && !info.getCode().equals("02663")) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "已签收的病案首页无法保存,如需保存,请联系病案室对此病案解除签收。");
         }
@@ -320,8 +322,8 @@ public class CaseFrontSheetService {
         }
         final String message = VerifyCaseFrontSheet.getInstance().saveVerify(info);
         log.info("保存前病案逻辑校验, 操作员:{} >>> {}", info.getCode(), message);
-        if (message.equals("<div class=\"verify-done\">校验结束。</div>")) {
-            return ResultVoUtil.success();
+        if (message.equals("")) {
+            return savePatientInfo(info);
         } else {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, message);
         }
@@ -351,6 +353,7 @@ public class CaseFrontSheetService {
 
     @Transactional
     public ResultVo<String> saveYbDiags(SaveYbDiagParam param) {
+        log.info("保存医保诊断:{}", param);
         dao.deleteOldYbDiag(param.getBah(), param.getTimes());
         for (int i = 0; i < param.getYbDiags().size(); i++) {
             YiBaoDisdiag diag = param.getYbDiags().get(i);
@@ -419,6 +422,50 @@ public class CaseFrontSheetService {
         return ResultVoUtil.success(new ArrayList<>());
     }
 
+    public ResultVo<PureCodeName> fetchSsfz(String code) {
+        PureCodeName ret = new PureCodeName();
+        Connection conn = null;
+        PreparedStatement stmt = null;
+        ResultSet rs = null;
+        try {
+            String sql = String.format("select FSSFZ, SSFZ from dc_ph_jbfz where ICD='%s'", code);
+            log.info("查询手术分值>>> sql:{}", sql);
+            conn = getConn();
+            stmt = conn.prepareStatement(sql);
+            rs = stmt.executeQuery();
+            if (rs.next()) {
+                String fssfz = rs.getString("FSSFZ");
+                String ssfz = rs.getString("SSFZ");
+                fssfz = fssfz == null ? "" : fssfz;
+                ssfz = ssfz == null ? "" : ssfz;
+                ret.setCode(fssfz);
+                ret.setName(ssfz);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                if (rs != null)
+                    rs.close();
+                if (stmt != null)
+                    stmt.close();
+                if (conn != null)
+                    conn.close();
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        return ResultVoUtil.success(ret);
+    }
+
+    private Connection getConn() throws Exception {
+        Class.forName("oracle.jdbc.driver.OracleDriver");
+        String url = "jdbc:oracle:thin:@172.16.32.111:1521:orcl";
+        String user = "yypt_new";
+        String pwd = "powersi";
+        return DriverManager.getConnection(url, user, pwd);
+    }
+
     private int isLateSubmit(String dismissDateStr) {
         SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         Date dismissDate;

+ 135 - 0
src/main/java/thyyxxk/webserver/service/casefrontsheet/SheetSearchService.java

@@ -0,0 +1,135 @@
+package thyyxxk.webserver.service.casefrontsheet;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import thyyxxk.webserver.config.exception.ExceptionEnum;
+import thyyxxk.webserver.dao_his.casefrontsheet.SheetSearchDao;
+import thyyxxk.webserver.pojo.ResultVo;
+import thyyxxk.webserver.pojo.dictionary.PureCodeName;
+import thyyxxk.webserver.pojo.dictionary.SearchDataParam;
+import thyyxxk.webserver.service.yibao.DictionaryService;
+import thyyxxk.webserver.utils.ResultVoUtil;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Slf4j
+@Service
+public class SheetSearchService {
+    private final SheetSearchDao dao;
+    private final DictionaryService service;
+
+    @Autowired
+    public SheetSearchService(SheetSearchDao dao, DictionaryService service) {
+        this.dao = dao;
+        this.service = service;
+    }
+
+    public ResultVo<List<PureCodeName>> sheetSearch(SearchDataParam param) {
+        final String content = '%' + param.getContent().toUpperCase() + '%';
+        switch (param.getTarget()) {
+            case "surgery":
+                return ResultVoUtil.success(searchSurgery(param.getMethod(), content, param.getPage() - 1));
+            case "pathologicDiag":
+                return ResultVoUtil.success(searchPathologicDiag(param.getMethod(), content, param.getPage() - 1));
+            case "place":
+                return ResultVoUtil.success(searchBirthPlace(param.getMethod(), content, param.getPage() - 1));
+            case "normalDiag":
+                return ResultVoUtil.success(searchClinicDiag(param.getMethod(), content, param.getPage() - 1));
+            case "hurtReason":
+                return ResultVoUtil.success(searchHurtReason(param.getMethod(), content, param.getPage() - 1));
+            case "employee":
+                return ResultVoUtil.success(searchEmployee(param.getMethod(), content, param.getPage() - 1));
+            case "ybDiag":
+                return searchYbDiag(param);
+        }
+        return ResultVoUtil.success(new ArrayList<>());
+    }
+
+    private List<PureCodeName> searchSurgery(String method, String content, int page) {
+        switch (method) {
+            case "alpha":
+                return dao.searchSurgeryByAlpha(content, page);
+            case "code":
+                return dao.searchSurgeryByCode(content, page);
+            case "name":
+                return dao.searchSurgeryByName(content, page);
+        }
+        return null;
+    }
+
+    private List<PureCodeName> searchPathologicDiag(String method, String content, int page) {
+        switch (method) {
+            case "alpha":
+                return dao.searchPathologicDiagByAlpha(content, page);
+            case "code":
+                return dao.searchPathologicDiagByCode(content, page);
+            case "name":
+                return dao.searchPathologicDiagByName(content, page);
+        }
+        return null;
+    }
+
+    private List<PureCodeName> searchBirthPlace(String method, String content, int page) {
+        switch (method) {
+            case "alpha":
+                return dao.searchBirthPlaceByAlpha(content, page);
+            case "code":
+                return dao.searchBirthPlaceByCode(content, page);
+            case "name":
+                return dao.searchBirthPlaceByName(content, page);
+        }
+        return null;
+    }
+
+    private List<PureCodeName> searchClinicDiag(String method, String content, int page) {
+        switch (method) {
+            case "alpha":
+                return dao.searchClinicDiagByAlpha(content, page);
+            case "code":
+                return dao.searchClinicDiagByCode(content, page);
+            case "name":
+                return dao.searchClinicDiagByName(content, page);
+        }
+        return null;
+    }
+
+    private List<PureCodeName> searchHurtReason(String method, String content, int page) {
+        switch (method) {
+            case "alpha":
+                return dao.searchHurtReasonByAlpha(content, page);
+            case "code":
+                return dao.searchHurtReasonByCode(content, page);
+            case "name":
+                return dao.searchHurtReasonByName(content, page);
+        }
+        return null;
+    }
+
+    private List<PureCodeName> searchEmployee(String method, String content, int page) {
+        switch (method) {
+            case "alpha":
+                return dao.searchEmployeeByAlpha(content, page);
+            case "code":
+                return dao.searchEmployeeByCode(content, page);
+            case "name":
+                return dao.searchEmployeeByName(content, page);
+        }
+        return null;
+    }
+
+    private ResultVo<List<PureCodeName>> searchYbDiag(SearchDataParam param) {
+        if (null == param.getResponceType()) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "医保身份不能为空!");
+        }
+        if (!param.getResponceType().equals("04") && null == param.getYbType()) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "医保类别不能为空!");
+        }
+        List<PureCodeName> list = service.searchYbDiag(param);
+        int start = (param.getPage() - 1) * 10;
+        int end = (param.getPage() - 1) * 10 + 10;
+        return ResultVoUtil.success(list.subList(start, Math.min(list.size(), end)));
+    }
+
+}

+ 25 - 24
src/main/java/thyyxxk/webserver/service/yibao/DictionaryService.java

@@ -5,7 +5,8 @@ import org.springframework.stereotype.Service;
 import thyyxxk.webserver.config.exception.ExceptionEnum;
 import thyyxxk.webserver.dao_his.yibao.DictionaryDao;
 import thyyxxk.webserver.pojo.ResultVo;
-import thyyxxk.webserver.pojo.dictionary.CodeNamePojo;
+import thyyxxk.webserver.pojo.dictionary.PureCodeName;
+import thyyxxk.webserver.pojo.dictionary.PureCodeName;
 import thyyxxk.webserver.pojo.dictionary.SearchDataParam;
 import thyyxxk.webserver.utils.ResultVoUtil;
 
@@ -25,14 +26,14 @@ public class DictionaryService {
         this.dao = dao;
     }
 
-    public ResultVo<Map<String, List<CodeNamePojo>>> getVisitAndResponce() {
-        Map<String, List<CodeNamePojo>> map = new HashMap<>();
+    public ResultVo<Map<String, List<PureCodeName>>> getVisitAndResponce() {
+        Map<String, List<PureCodeName>> map = new HashMap<>();
         map.put("visitTypes", dao.getVisitType());
         map.put("responceTypes", dao.getResponceType());
         return ResultVoUtil.success(map);
     }
 
-    public ResultVo<List<CodeNamePojo>> searchData(SearchDataParam param) {
+    public ResultVo<List<PureCodeName>> searchData(SearchDataParam param) {
         switch (param.getTarget()) {
             case "physician":
                 return ResultVoUtil.success(deepinPhysician(param.getMethod(), param.getContent(), param.isAccurateSearch()));
@@ -47,7 +48,7 @@ public class DictionaryService {
         return ResultVoUtil.fail(ExceptionEnum.NULL_POINTER);
     }
 
-    private List<CodeNamePojo> deepinPhysician(String method, String content, boolean accurateSearch) {
+    private List<PureCodeName> deepinPhysician(String method, String content, boolean accurateSearch) {
         content = accurateSearch ? content.toUpperCase() + '%' : '%' + content.toUpperCase() + '%';
         switch (method) {
             case "alpha":
@@ -61,7 +62,7 @@ public class DictionaryService {
         }
     }
 
-    private List<CodeNamePojo> deepinCmisNo(String method, String content, boolean accurateSearch) {
+    private List<PureCodeName> deepinCmisNo(String method, String content, boolean accurateSearch) {
         content = accurateSearch ? content.toUpperCase() + '%' : '%' + content.toUpperCase() + '%';
         switch (method) {
             case "alpha":
@@ -75,7 +76,7 @@ public class DictionaryService {
         }
     }
 
-    private List<CodeNamePojo> deepinRedeemType(String method, String content, boolean accurateSearch) {
+    private List<PureCodeName> deepinRedeemType(String method, String content, boolean accurateSearch) {
         content = accurateSearch ? content.toUpperCase() + '%' : '%' + content.toUpperCase() + '%';
         switch (method) {
             case "alpha":
@@ -89,14 +90,14 @@ public class DictionaryService {
         }
     }
 
-    public List<CodeNamePojo> searchYbDiag(SearchDataParam param) {
+    public List<PureCodeName> searchYbDiag(SearchDataParam param) {
         return deepinDiag(param.getMethod(), param.getContent(), param.isAccurateSearch(),
                 param.getResponceType(), param.getYbType(), param.getTreatType());
     }
 
-    private List<CodeNamePojo> deepinDiag(String method, String content, boolean accurateSearch,
+    private List<PureCodeName> deepinDiag(String method, String content, boolean accurateSearch,
                                            String responceType, String ybType, String treatType) {
-        List<CodeNamePojo> list = null;
+        List<PureCodeName> list = null;
         if (responceType.equals("04")) {
             return search_04_n_n_diag(method, content, accurateSearch);
         } else if (responceType.equals("10")) {
@@ -150,7 +151,7 @@ public class DictionaryService {
         return list;
     }
 
-    private List<CodeNamePojo> search_04_n_n_diag(String method, String content, boolean accurateSearch) {
+    private List<PureCodeName> search_04_n_n_diag(String method, String content, boolean accurateSearch) {
         content = accurateSearch ? content.toUpperCase() + '%' : '%' + content.toUpperCase() + '%';
         switch (method) {
             case "alpha":
@@ -164,7 +165,7 @@ public class DictionaryService {
         }
     }
 
-    private List<CodeNamePojo> search_10_n_n_diag(String method, String content, boolean accurateSearch) {
+    private List<PureCodeName> search_10_n_n_diag(String method, String content, boolean accurateSearch) {
         content = accurateSearch ? content.toUpperCase() + '%' : '%' + content.toUpperCase() + '%';
         switch (method) {
             case "alpha":
@@ -178,7 +179,7 @@ public class DictionaryService {
         }
     }
 
-    private List<CodeNamePojo> search_n_12_121_diag(String method, String content, boolean accurateSearch) {
+    private List<PureCodeName> search_n_12_121_diag(String method, String content, boolean accurateSearch) {
         content = accurateSearch ? content.toUpperCase() + '%' : '%' + content.toUpperCase() + '%';
         switch (method) {
             case "alpha":
@@ -192,7 +193,7 @@ public class DictionaryService {
         }
     }
 
-    private List<CodeNamePojo> search_n_12_n_diag(String method, String content, boolean accurateSearch) {
+    private List<PureCodeName> search_n_12_n_diag(String method, String content, boolean accurateSearch) {
         content = accurateSearch ? content.toUpperCase() + '%' : '%' + content.toUpperCase() + '%';
         switch (method) {
             case "alpha":
@@ -206,7 +207,7 @@ public class DictionaryService {
         }
     }
 
-    private List<CodeNamePojo> search_02_42_n_diag(String method, String content, boolean accurateSearch) {
+    private List<PureCodeName> search_02_42_n_diag(String method, String content, boolean accurateSearch) {
         content = accurateSearch ? content.toUpperCase() + '%' : '%' + content.toUpperCase() + '%';
         switch (method) {
             case "alpha":
@@ -220,7 +221,7 @@ public class DictionaryService {
         }
     }
 
-    private List<CodeNamePojo> search_n_42_n_diag(String method, String content, boolean accurateSearch) {
+    private List<PureCodeName> search_n_42_n_diag(String method, String content, boolean accurateSearch) {
         content = accurateSearch ? content.toUpperCase() + '%' : '%' + content.toUpperCase() + '%';
         switch (method) {
             case "alpha":
@@ -234,7 +235,7 @@ public class DictionaryService {
         }
     }
 
-    private List<CodeNamePojo> search_n_52_n_diag(String method, String content, boolean accurateSearch) {
+    private List<PureCodeName> search_n_52_n_diag(String method, String content, boolean accurateSearch) {
         content = accurateSearch ? content.toUpperCase() + '%' : '%' + content.toUpperCase() + '%';
         switch (method) {
             case "alpha":
@@ -248,7 +249,7 @@ public class DictionaryService {
         }
     }
 
-    private List<CodeNamePojo> search_n_44or46_n_diag(String method, String content, boolean accurateSearch) {
+    private List<PureCodeName> search_n_44or46_n_diag(String method, String content, boolean accurateSearch) {
         content = accurateSearch ? content.toUpperCase() + '%' : '%' + content.toUpperCase() + '%';
         switch (method) {
             case "alpha":
@@ -262,7 +263,7 @@ public class DictionaryService {
         }
     }
 
-    private List<CodeNamePojo> search_n_53or54_n_diag(String method, String content, boolean accurateSearch) {
+    private List<PureCodeName> search_n_53or54_n_diag(String method, String content, boolean accurateSearch) {
         content = accurateSearch ? content.toUpperCase() + '%' : '%' + content.toUpperCase() + '%';
         switch (method) {
             case "alpha":
@@ -276,7 +277,7 @@ public class DictionaryService {
         }
     }
 
-    private List<CodeNamePojo> search_n_31or73_n_diag(String method, String content, boolean accurateSearch) {
+    private List<PureCodeName> search_n_31or73_n_diag(String method, String content, boolean accurateSearch) {
         content = accurateSearch ? content.toUpperCase() + '%' : '%' + content.toUpperCase() + '%';
         switch (method) {
             case "alpha":
@@ -290,7 +291,7 @@ public class DictionaryService {
         }
     }
 
-    private List<CodeNamePojo> search_n_21or61_n_diag(String method, String content, boolean accurateSearch) {
+    private List<PureCodeName> search_n_21or61_n_diag(String method, String content, boolean accurateSearch) {
         content = accurateSearch ? content.toUpperCase() + '%' : '%' + content.toUpperCase() + '%';
         switch (method) {
             case "alpha":
@@ -304,7 +305,7 @@ public class DictionaryService {
         }
     }
 
-    private List<CodeNamePojo> search_n_23or63_n_diag(String method, String content, boolean accurateSearch) {
+    private List<PureCodeName> search_n_23or63_n_diag(String method, String content, boolean accurateSearch) {
         content = accurateSearch ? content.toUpperCase() + '%' : '%' + content.toUpperCase() + '%';
         switch (method) {
             case "alpha":
@@ -318,9 +319,9 @@ public class DictionaryService {
         }
     }
 
-    private List<CodeNamePojo> extractPureNumber(List<CodeNamePojo> ret) {
+    private List<PureCodeName> extractPureNumber(List<PureCodeName> ret) {
         if (ret == null) return null;
-        List<CodeNamePojo> result = new ArrayList<>();
+        List<PureCodeName> result = new ArrayList<>();
         Pattern pattern = Pattern.compile("[0-9]*");
         ret.forEach(item -> {
             Matcher isNum = pattern.matcher(item.getCode().replaceAll(" ", "").replaceAll("\\.", ""));

+ 99 - 98
src/main/java/thyyxxk/webserver/utils/VerifyCaseFrontSheet.java

@@ -31,151 +31,151 @@ public class VerifyCaseFrontSheet {
         try {
             byte[] livePlaceBytes = info.getLivePlace().getBytes("GBK");
             if (livePlaceBytes.length > 32)
-                builder.append("<div>患者现住址不能超过32个字节,当前字节数为")
+                builder.append("患者现住址不能超过32个字节,当前字节数为")
                         .append(livePlaceBytes.length)
-                        .append("(1汉字=2字节,1字母或数字=1字节)!</div>");
+                        .append("(1汉字=2字节,1字母或数字=1字节)!");
         } catch (Exception e) {
             e.printStackTrace();
         }
         if (info.getHkPlaceName().length() > 10)
-            builder.append("<div>患者户口地址不能超过10个汉字!</div>");
+            builder.append("患者户口地址不能超过10个汉字!");
         if (info.getUnitPlace().length() > 16)
-            builder.append("<div>患者单位地址不能超过16个汉字!</div>");
+            builder.append("患者单位地址不能超过16个汉字!");
         if (info.getContactAddrName().length() > 16)
-            builder.append("<div>患者联系人地址不能超过16个汉字!</div>");
+            builder.append("患者联系人地址不能超过16个汉字!");
         if (betweenDays(info.getQualityControlDate(), info.getDismissDate()) > 7)
-            builder.append("<div>质控日期不能大于出院7天!</div>");
+            builder.append("质控日期不能大于出院7天!");
         return connectedVerify(builder, info);
     }
 
     public String printVerify(SheetInfo info) {
         StringBuilder sb = new StringBuilder();
         if (isNull(info.getName()))
-            sb.append("<div>患者姓名不能为空!</div>");
+            sb.append("患者姓名不能为空!");
         if (isNull(info.getBirthDate()))
-            sb.append("<div>患者出生日期不能为空!</div>");
+            sb.append("患者出生日期不能为空!");
         if (isNull(info.getAge()))
-            sb.append("<div>患者年龄不能为空!</div>");
+            sb.append("患者年龄不能为空!");
         if (isNull(info.getCountry()))
-            sb.append("<div>患者国籍不能为空!</div>");
+            sb.append("患者国籍不能为空!");
         if (isNull(info.getBirthPlace()))
-            sb.append("<div>患者出生地不能为空!</div>");
+            sb.append("患者出生地不能为空!");
         if (isNull(info.getNativePlace()))
-            sb.append("<div>患者籍贯不能为空!</div>");
+            sb.append("患者籍贯不能为空!");
         if (isNull(info.getNation()))
-            sb.append("<div>患者民族不能为空!</div>");
+            sb.append("患者民族不能为空!");
         if (isNull(info.getSocialNo()))
-            sb.append("<div>患者身份证不能为空!</div>");
+            sb.append("患者身份证不能为空!");
         if (isNull(info.getOccupation()))
-            sb.append("<div>患者职业不能为空!</div>");
+            sb.append("患者职业不能为空!");
         if (isNull(info.getMarriage()))
-            sb.append("<div>患者婚姻状况不能为空!</div>");
+            sb.append("患者婚姻状况不能为空!");
         if (isNull(info.getLivePlace()))
-            sb.append("<div>患者现住址不能为空!</div>");
+            sb.append("患者现住址不能为空!");
         if (isNull(info.getPhone()))
-            sb.append("<div>患者电话不能为空!</div>");
+            sb.append("患者电话不能为空!");
         if (isNull(info.getAddrZipCode()))
-            sb.append("<div>现住址邮编不能为空!</div>");
+            sb.append("现住址邮编不能为空!");
         if (isNull(info.getHkZipCode()))
-            sb.append("<div>户口地址邮编不能为空!</div>");
+            sb.append("户口地址邮编不能为空!");
         if (isNull(info.getUnitZipCode()))
-            sb.append("<div>工作住址邮编不能为空!</div>");
+            sb.append("工作住址邮编不能为空!");
         if (isNull(info.getHkPlaceName()))
-            sb.append("<div>患者户口地址不能为空!</div>");
+            sb.append("患者户口地址不能为空!");
         if (isNull(info.getUnitName()) || isNull(info.getUnitPlace()))
-            sb.append("<div>患者工作单位及地址不能为空!</div>");
+            sb.append("患者工作单位及地址不能为空!");
         if (isNull(info.getUnitPhone()))
-            sb.append("<div>患者单位电话不能为空!</div>");
+            sb.append("患者单位电话不能为空!");
         if (isNull(info.getContactName()))
-            sb.append("<div>患者联系人姓名不能为空!</div>");
+            sb.append("患者联系人姓名不能为空!");
         if (isNull(info.getContactRelation()))
-            sb.append("<div>患者联系人关系不能为空!</div>");
+            sb.append("患者联系人关系不能为空!");
         if (isNull(info.getContactAddrName()))
-            sb.append("<div>患者联系人地址不能为空!</div>");
+            sb.append("患者联系人地址不能为空!");
         if (isNull(info.getContactPhone()))
-            sb.append("<div>患者联系人电话不能为空!</div>");
+            sb.append("患者联系人电话不能为空!");
         if (isNull(info.getZyAdmissWay()))
-            sb.append("<div>患者入院途径不能为空!</div>");
+            sb.append("患者入院途径不能为空!");
         if (isNull(info.getAdmissDate()))
-            sb.append("<div>患者入院时间不能为空!</div>");
+            sb.append("患者入院时间不能为空!");
         if (isNull(info.getAdmissDept()))
-            sb.append("<div>患者入院科别不能为空!</div>");
+            sb.append("患者入院科别不能为空!");
         if (isNull(info.getHasSurgery()))
-            sb.append("<div>患者是否手术不能为空!</div>");
+            sb.append("患者是否手术不能为空!");
         if (isNull(info.getDismissDate()))
-            sb.append("<div>患者出院时间不能为空!</div>");
+            sb.append("患者出院时间不能为空!");
         if (isNull(info.getDismissDept()))
-            sb.append("<div>患者出院科别不能为空!</div>");
+            sb.append("患者出院科别不能为空!");
         if (isNull(info.getAdmissDays()))
-            sb.append("<div>患者住院天数不能为空!</div>");
+            sb.append("患者住院天数不能为空!");
         if (isNull(info.getDisdiags().get(0).getName()))
-            sb.append("<div>患者主要诊断不能为空!</div>");
+            sb.append("患者主要诊断不能为空!");
         if (isNull(info.getDisdiags().get(0).getAdmissStatus()))
-            sb.append("<div>患者主要诊断入院病情不能为空!</div>");
+            sb.append("患者主要诊断入院病情不能为空!");
         if (isNull(info.getAllergy()))
-            sb.append("<div>患者有无药物过敏不能为空!</div>");
+            sb.append("患者有无药物过敏不能为空!");
         if (isNull(info.getBloodType()))
-            sb.append("<div>患者ABO血型不能为空!</div>");
+            sb.append("患者ABO血型不能为空!");
         if (isNull(info.getRh()))
-            sb.append("<div>患者Rh血型不能为空!</div>");
+            sb.append("患者Rh血型不能为空!");
         if (isNull(info.getDeptLeader()))
-            sb.append("<div>科主任不能为空!</div>");
+            sb.append("科主任不能为空!");
         if (isNull(info.getLeaderDoctor()))
-            sb.append("<div>主任(副主任)医师不能为空!</div>");
+            sb.append("主任(副主任)医师不能为空!");
         if (isNull(info.getMainDoctor()))
-            sb.append("<div>主治医师不能为空!</div>");
+            sb.append("主治医师不能为空!");
         if (isNull(info.getAdmissDoctor()))
-            sb.append("<div>住院医师不能为空!</div>");
+            sb.append("住院医师不能为空!");
         if (isNull(info.getQualityControlLevel()))
-            sb.append("<div>病案质量不能为空!</div>");
+            sb.append("病案质量不能为空!");
         if (isNull(info.getZyDismissWay()))
-            sb.append("<div>患者离院方式不能为空!</div>");
+            sb.append("患者离院方式不能为空!");
         if (isNull(info.getAdmissAgainInOneMonth()))
-            sb.append("<div>患者是否有出院31天内再住院计划不能为空!</div>");
+            sb.append("患者是否有出院31天内再住院计划不能为空!");
         if (isNull(info.getQualityControlDoctor()))
-            sb.append("<div>质控医生不能为空!</div>");
+            sb.append("质控医生不能为空!");
         if (isNull(info.getCaseClassification()))
-            sb.append("<div>病例分型不能为空!</div>");
+            sb.append("病例分型不能为空!");
         if (isNull(info.getHasIcu()))
-            sb.append("<div>实施重症监护不能为空!</div>");
+            sb.append("实施重症监护不能为空!");
         if (isNull(info.getMonopathyManagement()))
-            sb.append("<div>单病种管理不能为空!</div>");
+            sb.append("单病种管理不能为空!");
         if (isNull(info.getClinicalPathwayManagement()))
-            sb.append("<div>实施临床路径管理不能为空!</div>");
+            sb.append("实施临床路径管理不能为空!");
         if (isNull(info.getTheDRGsManagement()))
-            sb.append("<div>DRGs管理不能为空!</div>");
+            sb.append("DRGs管理不能为空!");
         if (isNull(info.getUseAntibiotic()))
-            sb.append("<div>抗生素使用不能为空!</div>");
+            sb.append("抗生素使用不能为空!");
         if (isNull(info.getBacilliculture()))
-            sb.append("<div>细菌培养标本送检不能为空!</div>");
+            sb.append("细菌培养标本送检不能为空!");
         if (zipCodeLengthWrong(info.getAddrZipCode()))
-            sb.append("<div>现住址邮编长度错误!</div>");
+            sb.append("现住址邮编长度错误!");
         if (zipCodeLengthWrong(info.getHkZipCode()))
-            sb.append("<div>户口地址邮编长度错误!</div>");
+            sb.append("户口地址邮编长度错误!");
         if (zipCodeLengthWrong(info.getUnitZipCode()))
-            sb.append("<div>工作地址邮编错误!</div>");
+            sb.append("工作地址邮编错误!");
         if (phoneLengthWrong(info.getPhone()))
-            sb.append("<div>患者电话号码长度错误!</div>");
+            sb.append("患者电话号码长度错误!");
         if (phoneLengthWrong(info.getContactPhone()))
-            sb.append("<div>联系人电话号码长度错误!</div>");
+            sb.append("联系人电话号码长度错误!");
         if (phoneLengthWrong(info.getUnitPhone()))
-            sb.append("<div>工作单位电话长度错误!</div>");
+            sb.append("工作单位电话长度错误!");
         if (betweenDays(info.getDismissDate(), info.getAdmissDate()) < 0)
-            sb.append("<div>出院时间不能小于入院时间!</div>");
+            sb.append("出院时间不能小于入院时间!");
         if (betweenDays(info.getBirthDate(), info.getAdmissDate()) > 0)
-            sb.append("<div>出生时间不能大于入院时间!</div>");
+            sb.append("出生时间不能大于入院时间!");
         if (betweenDays(info.getQualityControlDate(), info.getDismissDate()) > 7)
-            sb.append("<div>质控日期不能大于出院7天!</div>");
+            sb.append("质控日期不能大于出院7天!");
         if (isNewBorn(info.getHasInfant(), info.getBirthDate())) {
             if (isNewBornInfoNull(info.getNewBornWeight()) ||
                     isNewBornInfoNull(info.getNewBornAdmissWeight()))
-                sb.append("<div>请填写新生儿信息!</div>");
+                sb.append("请填写新生儿信息!");
             if (isNewBornInfoNull(info.getXxeApgar()))
-                sb.append("<div>新生儿Apgar评分不能为空!</div>");
+                sb.append("新生儿Apgar评分不能为空!");
         } else {
             if (!isNewBornInfoNull(info.getNewBornWeight()) ||
                     !isNewBornInfoNull(info.getNewBornAdmissWeight()))
-                sb.append("<div>非新生儿请保持新生信息为空!</div>");
+                sb.append("非新生儿请保持新生信息为空!");
         }
         return connectedVerify(sb, info);
     }
@@ -183,63 +183,62 @@ public class VerifyCaseFrontSheet {
     private String connectedVerify(StringBuilder sb, SheetInfo info) {
         if (info.getZyDismissWay().equals("1") || info.getZyDismissWay().equals("2")) {
             if (isNull(info.getDismissDestination()))
-                sb.append("<div>患者转入医疗机构不能为空!</div>");
+                sb.append("患者转入医疗机构不能为空!");
         }
         if (info.getHasSurgery().equals("0") && !info.getDiagConform3().equals("0")) {
-            sb.append("<div>无手术时,诊断符合情况中的术前与术后需要为’未做‘!</div>");
+            sb.append("无手术时,诊断符合情况中的术前与术后需要为’未做‘!");
         }
         if ((info.getHasSurgery().equals("1") || info.getHasSurgery().equals("2") || info.getHasSurgery().equals("3"))
                 && info.getDiagConform3().equals("0")) {
-            sb.append("<div>有手术时,诊断符合情况中的术前与术后不可为’未做‘!</div>");
+            sb.append("有手术时,诊断符合情况中的术前与术后不可为’未做‘!");
         }
         if (!isNull(info.getAutopsy())) {
             if (!info.getZyDismissWay().equals("4"))
-                sb.append("<div>尸检不为空时,需要离院方式为死亡!</div>");
+                sb.append("尸检不为空时,需要离院方式为死亡!");
         }
         for (SheetSurgery surgery : info.getSurgeries()) {
             checkSurgery(sb, surgery);
         }
         if (needPathologicDiag(info.getDisdiags().get(0).getCode()) &&
                 (isNull(info.getPathologicDiagStr()) || isNull(info.getPathologicDiagCode()))) {
-            sb.append("<div>根据患者出院主要诊断,病理诊断不能为空!</div>");
+            sb.append("根据患者出院主要诊断,病理诊断不能为空!");
         }
         if (info.getHasIcu().equals("2") && (isNull(info.getIcuDays()) || isNull(info.getIcuHours()))) {
-            sb.append("<div>患者ICU时间不能为空!</div>");
+            sb.append("患者ICU时间不能为空!");
         }
         if (hasSurgery(info.getHasSurgery()) && isNull(info.getSurgeries().get(0).getName()))
-            sb.append("<div>患者有手术时,手术列表不能为空!</div>");
+            sb.append("患者有手术时,手术列表不能为空!");
         if (info.getAllergy().equals("2") && isNull(info.getAllergicMedicine()))
-            sb.append("<div>患者有药物过敏时,过敏药物名称不能为空!</div>");
+            sb.append("患者有药物过敏时,过敏药物名称不能为空!");
         if (!isNull(info.getPathologicDiagFee()) && isNull(info.getBlh()))
-            sb.append("<div>患者有病理诊断费,病理号不能为空!</div>");
+            sb.append("患者有病理诊断费,病理号不能为空!");
         if (hasSurgeryFee(info.getSurgeryFee()) && isNull(info.getSurgeries().get(0).getName()))
-            sb.append("<div>患者有手术费,手术列表不能为空!</div>");
+            sb.append("患者有手术费,手术列表不能为空!");
         if (needHurtReason(info.getDisdiags().get(0).getCode()) &&
                 (isNull(info.getHurtReasonName()) || isNull(info.getHurtReasonCode())))
-            sb.append("<div>根据患者出院主要诊断,损伤中毒诊断不能为空!</div>");
+            sb.append("根据患者出院主要诊断,损伤中毒诊断不能为空!");
         if (hasBloodType(info.getBloodType()) &&
                 (!info.getRh().equals("1") && !info.getRh().equals("2")))
-            sb.append("<div>患者血型确定时,Rh血型应为阴或阳!</div>");
+            sb.append("患者血型确定时,Rh血型应为阴或阳!");
         if (hasDuplicateDiag(info.getDisdiags()))
-            sb.append("<div>出院诊断不能存在相同的诊断编码!</div>");
+            sb.append("出院诊断不能存在相同的诊断编码!");
         if (hasSameSurgeryInOneDay(info.getSurgeries()))
-            sb.append("<div>同一天不能有相同的手术!</div>");
+            sb.append("同一天不能有相同的手术!");
         if (surgeryDateWrong(info.getSurgeries(), info.getAdmissDate(), info.getDismissDate()))
-            sb.append("<div>手术时间必须在入院时间和出院时间之间!</div>");
+            sb.append("手术时间必须在入院时间和出院时间之间!");
         if ((info.getBloodType().equals("5") || info.getBloodType().equals("6")) &&
                 (!info.getRh().equals("0") && !info.getRh().equals("3")))
-            sb.append("<div>患者血型不确定时,Rh血型应为不详或未查!</div>");
+            sb.append("患者血型不确定时,Rh血型应为不详或未查!");
         if (!isNull(info.getAutopsy()) || info.getZyDismissWay().equals("4")) {
             if (info.getRescueTimes() <= 0)
-                sb.append("<div>患者死亡时,抢救次数不能小于一次!</div>");
+                sb.append("患者死亡时,抢救次数不能小于一次!");
         }
         if (info.getRescueTimes() < 0)
-            sb.append("<div>抢救次数不能为负数!</div>");
+            sb.append("抢救次数不能为负数!");
         if (info.getRescueTimes() < info.getRescueSuccessTimes())
-            sb.append("<div>抢救成功次数不能大于抢救次数!</div>");
+            sb.append("抢救成功次数不能大于抢救次数!");
         if (info.getRescueTimes() - info.getRescueSuccessTimes() > 1)
-            sb.append("<div>抢救成功次数不能少于抢救次数两次!</div>");
-        sb.append("<div class=\"verify-done\">校验结束。</div>");
+            sb.append("抢救成功次数不能少于抢救次数两次!");
         return sb.toString();
     }
 
@@ -268,26 +267,28 @@ public class VerifyCaseFrontSheet {
         if (isNull(surgery.getName())) return;
         if (isHighLevelSurgery(surgery.getLevel())) {
             if (isNull(surgery.getName()))
-                sb.append("<div>手术").append(surgery.getNo()).append(",三、四级手术名称、编码不能为空!</div>");
+                sb.append("手术").append(surgery.getNo()).append(",三、四级手术名称、编码不能为空!");
             if (isNull(surgery.getDate()))
-                sb.append("<div>手术").append(surgery.getNo()).append(",三、四级手术日期不能为空!</div>");
+                sb.append("手术").append(surgery.getNo()).append(",三、四级手术日期不能为空!");
             if (isNull(surgery.getOperator()))
-                sb.append("<div>手术").append(surgery.getNo()).append(",三、四级手术术者不能为空!</div>");
+                sb.append("手术").append(surgery.getNo()).append(",三、四级手术术者不能为空!");
             if (isNull(surgery.getAssistantOne()))
-                sb.append("<div>手术").append(surgery.getNo()).append(",三、四级手术I助不能为空!</div>");
+                sb.append("手术").append(surgery.getNo()).append(",三、四级手术I助不能为空!");
             if (isNull(surgery.getCutHeal()))
-                sb.append("<div>手术").append(surgery.getNo()).append(",三、四级手术切口愈合等级不能为空!</div>");
+                sb.append("手术").append(surgery.getNo()).append(",三、四级手术切口愈合等级不能为空!");
             if (isNull(surgery.getAnaesthesia()))
-                sb.append("<div>手术").append(surgery.getNo()).append(",三、四级手术麻醉方式不能为空!</div>");
+                sb.append("手术").append(surgery.getNo()).append(",三、四级手术麻醉方式不能为空!");
             if (isNull(surgery.getAnaesthesiaor()))
-                sb.append("<div>手术").append(surgery.getNo()).append(",三、四级手术麻醉医师不能为空!</div>");
+                sb.append("手术").append(surgery.getNo()).append(",三、四级手术麻醉医师不能为空!");
             if (isNull(surgery.getAssistantTwo()))
-                sb.append("<div>手术").append(surgery.getNo()).append(",三、四级手术II助不能为空!</div>");
+                sb.append("手术").append(surgery.getNo()).append(",三、四级手术II助不能为空!");
         }
     }
 
     private boolean needPathologicDiag(String diag) {
-        if (diag.equals("")) return false;
+        if (null == diag) {
+            return false;
+        }
         final char firstLetter = diag.toUpperCase().charAt(0);
         if (firstLetter != 'C' && firstLetter != 'D')
             return false;
@@ -315,7 +316,7 @@ public class VerifyCaseFrontSheet {
     }
 
     private boolean needHurtReason(String diag) {
-        if (diag.equals("") || diag.startsWith("sy")) return false;
+        if (null == diag || diag.startsWith("sy")) return false;
         final char firstLetter = diag.toUpperCase().charAt(0);
         return firstLetter == 'S' || firstLetter == 'T';
     }