@@ -116,7 +116,12 @@ public class CallIndicationAggregate {
RespDTO<IndicationDTO> respDTO = cdssCoreClient.indication(indicationPushVO);
Integer callCount = 0;
- while (callCount <= 3 && RespDTOUtil.respIsNG(respDTO)) {
+ while (callCount <= 3
+ && (RespDTOUtil.respIsNG(respDTO)
+ || (ListUtil.isEmpty(respDTO.data.getBillMsgList())
+ && ListUtil.isEmpty(respDTO.data.getHighRiskList())
+ && ListUtil.isEmpty(respDTO.data.getCriticalValList())
+ && ListUtil.isEmpty(respDTO.data.getOtherList())))) {
respDTO = cdssCoreClient.indication(indicationPushVO);
callCount++;
}
@@ -0,0 +1,190 @@
+package com.diagbot.client;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.diagbot.client.hystrix.CdssHystrix;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.MappingConfig;
+import com.diagbot.entity.wrapper.MappingConfigWrapper;
+import com.diagbot.vo.IdListVO;
+import com.diagbot.vo.IdVO;
+import com.diagbot.vo.MappingConfigPageVO;
+import com.diagbot.vo.MappingConfigVO;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.MediaType;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.multipart.MultipartFile;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+import java.util.List;
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/6/21 15:33
+ */
+@FeignClient(name = "cdss", url = "${cdss.url}", fallback = CdssHystrix.class)
+public interface CdssClient {
+ /**
+ * 数据导入模板导出
+ *
+ * @param mappingConfigVO
+ @PostMapping("/tran/mappingConfig/exportExcelModule")
+ void exportExcelModule(@RequestBody @Valid MappingConfigVO mappingConfigVO);
+ * 预匹配导入术语校验
+ * @param file
+ * @param type
+ @PostMapping(value = "/tran/mappingConfig/dataVerify", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+ RespDTO<Boolean> dataVerify(@RequestPart("file") MultipartFile file,
+ @RequestParam("type") Integer type);
+ * 预匹配
+ * @param response
+ @PostMapping(value = "/tran/mappingConfig/precDataMatch", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+ void precDataMatch(@RequestParam("file") MultipartFile file,
+ HttpServletResponse response,
+ * 预匹配_远程调用
+ * @return
+ @PostMapping(value = "/tran/mappingConfig/precDataMatch_remote", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+ RespDTO<List<MappingConfigWrapper>> precDataMatch_remote(@RequestPart("file") MultipartFile file,
+ * 数据导入校验
+ * @param hospitalId
+ * @param userId
+ @PostMapping(value = "/tran/mappingConfig/importExcelDataVerify", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+ RespDTO<Boolean> importExcelDataVerify(@RequestPart("file") MultipartFile file,
+ @RequestParam("hospitalId") Long hospitalId,
+ @RequestParam("type") Integer type,
+ @RequestParam("uesrId") String userId);
+ * 数据导入
+ @PostMapping(value = "/tran/mappingConfig/importExcel", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+ RespDTO<Boolean> importExcel(@RequestPart("file") MultipartFile file,
+ @PostMapping(value = "/tran/mappingConfig/importExcel_remote", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+ RespDTO<List<MappingConfigWrapper>> importExcel_remote(@RequestPart("file") MultipartFile file,
+ * 数据导出_远程调用
+ * @param mappingConfigPageVO
+ @PostMapping("/tran/mappingConfig/exportExcel_remote")
+ RespDTO<List<MappingConfigWrapper>> exportExcel_remote(@RequestBody @Valid MappingConfigPageVO mappingConfigPageVO);
+ * 分页查询
+ @PostMapping("/tran/mappingConfig/getPage")
+ RespDTO<Page<MappingConfigWrapper>> getPage(@RequestBody @Valid MappingConfigPageVO mappingConfigPageVO);
+ * 获取映射关系
+ * @param idVO
+ @PostMapping("/tran/mappingConfig/getRecord")
+ @Transactional
+ RespDTO<MappingConfigWrapper> getRecord(@RequestBody @Valid IdVO idVO);
+ * 映射关系是否已存在
+ * @param mappingConfig
+ @PostMapping("/tran/mappingConfig/isExistRecord")
+ RespDTO<Boolean> isExistRecord(@RequestBody @Valid MappingConfig mappingConfig);
+ * 查询已映射关系
+ @PostMapping("/tran/mappingConfig/getRelatedMapping")
+ RespDTO<List<MappingConfigWrapper>> getRelatedMapping(@RequestBody @Valid MappingConfigVO mappingConfigVO);
+ * 保存或修改映射关系
+ @PostMapping("/tran/mappingConfig/saveOrUpdateRecord")
+ RespDTO<Boolean> saveOrUpdateRecord(@RequestBody @Valid MappingConfig mappingConfig);
+ * 删除映射关系
+ @PostMapping("/tran/mappingConfig/deleteRecord")
+ RespDTO<Boolean> deleteRecord(@RequestBody @Valid IdVO idVO);
+ * 批量删除映射关系
+ * @param idListVO
+ @PostMapping("/tran/mappingConfig/deleteRecords")
+ RespDTO<Boolean> deleteRecords(@RequestBody @Valid IdListVO idListVO);
+}
@@ -2,20 +2,7 @@ package com.diagbot.client;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.diagbot.client.hystrix.CdssCoreHystrix;
-import com.diagbot.dto.DiagnosesFindDTO;
-import com.diagbot.dto.DictionaryInfoDTO;
-import com.diagbot.dto.IndexBatchDTO;
-import com.diagbot.dto.IndicationDTO;
-import com.diagbot.dto.KlConceptStaticDTO;
-import com.diagbot.dto.KlDiagnoseInfoDTO;
-import com.diagbot.dto.KlDiagnoseTypeDTO;
-import com.diagbot.dto.KlRuleByIdParDTO;
-import com.diagbot.dto.KlRuleInfoDTO;
-import com.diagbot.dto.RegulationIndexDTO;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.RetrievalDTO;
-import com.diagbot.dto.StaticKnowledgeDTO;
-import com.diagbot.dto.StaticKnowledgeIndexDTO;
+import com.diagbot.dto.*;
import com.diagbot.entity.KlRuleMenuWrapper;
import com.diagbot.vo.*;
import org.springframework.cloud.openfeign.FeignClient;
@@ -133,14 +120,15 @@ public interface CdssCoreClient {
RespDTO<Boolean> isExist(@Valid @RequestBody KlConceptStaticVO klConceptStaticVO);
/**
- *获取规则下拉菜单信息
+ * 获取规则下拉菜单信息
* @param klRuleMenuVO
* @return
*/
@PostMapping("/klRulePlan/getMenu")
RespDTO<List<KlRuleMenuWrapper>> getMenus(@RequestBody KlRuleMenuVO klRuleMenuVO);
- //"分页获取规则维护列表
+ //"分页获取规则维护列表
@PostMapping("/klRule/getKlRuleInfoPage")
RespDTO<Page<KlRuleInfoDTO>> getKlRuleInfoPages(@RequestBody KlRuleInfoVO klRuleInfoVO);
@@ -161,7 +149,7 @@ public interface CdssCoreClient {
@PostMapping("/klRule/disableRuleInfo")
RespDTO<Boolean> disableRuleInfos(@RequestBody @Valid KlRuleSatartOrdisaVO klRuleSatartOrdisaVO);
- //启用规则
+ //启用规则
@PostMapping("/klRule/startRuleInfo")
RespDTO<Boolean> startRuleInfos(@RequestBody @Valid KlRuleSatartOrdisaVO klRuleSatartOrdisaVO);
@@ -182,13 +170,14 @@ public interface CdssCoreClient {
* 重新加载医学知识库中的所有去重的基础诊断依据
@PostMapping("/cache/reloadDiagnose")
RespDTO<Boolean> reloadDiagnose();
- //分页获取诊断依据维护列表
+ //分页获取诊断依据维护列表
@PostMapping("/klDiagnose/getKlDiagnosePage")
public RespDTO<Page<KlDiagnoseInfoDTO>> getDiagnosePages(@RequestBody KlDiagnoseInfoVO klRuleInfoVO);
@@ -198,7 +187,7 @@ public interface CdssCoreClient {
//保存诊断依据详情[by:wangfeng]")
@PostMapping("/klDiagnose/saveDiagnose")
- public RespDTO<Boolean> saveDiagnoseAll(@RequestBody @Valid KlDiagnoseSaveVO klDiagnoseSaveVO) ;
+ public RespDTO<Boolean> saveDiagnoseAll(@RequestBody @Valid KlDiagnoseSaveVO klDiagnoseSaveVO);
//刪除诊断依据详情[by:wangfeng]")
@PostMapping("/klDiagnose/clearDiagnose")
@@ -215,7 +204,24 @@ public interface CdssCoreClient {
@PostMapping("/klDiagnose/findDiaName")
public RespDTO<List<DiagnosesFindDTO>> findDiaNameAll(@Valid @RequestBody DiagnosesFindVO diagnosesFindVO);
+ @PostMapping("/term/termMatching")
+ public RespDTO<List<TermConceptDTO>> getTermMatching(@Valid @RequestBody TermMatchingVO termMatchingVO);
@PostMapping("/klRegulation/index")
public RespDTO<List<RegulationIndexDTO>> index(@RequestBody RegulationIndexVO regulationIndexVO);
-}
+ @PostMapping("/klDisease/searchConcept")
+ RespDTO<List<GetAllForRelationDTO>> searchConcept(@Valid @RequestBody SearchConceptVO searchConceptVO);
+ //术语集合新增
+ @PostMapping("/klDisease/addConceptClass")
+ RespDTO<List<GetAllForRelationDTO>> addConceptClass(@Valid @RequestBody SearchConceptVO searchConceptVO);
+ //规则维护术语查询
+ @PostMapping("/klDisease/searchConceptRuleClass")
+ RespDTO<List<GetAllForRelationDTO>> searchConceptRuleClass(@Valid @RequestBody SearchConceptVO searchConceptVO);
+ //在集合业务中,搜索术语
+ @PostMapping("/klDisease/searchCollectionConceptVO")
+ RespDTO<List<GetAllForRelationDTO>> searchCollectionConcept(SearchCollectionConceptVO searchCollectionConceptVO);
@@ -2,20 +2,7 @@ package com.diagbot.client.hystrix;
import com.diagbot.client.CdssCoreClient;
import lombok.extern.slf4j.Slf4j;
@@ -286,9 +273,39 @@ public class CdssCoreHystrix implements CdssCoreClient {
return null;
+ @Override
+ public RespDTO<List<TermConceptDTO>> getTermMatching(@Valid TermMatchingVO termMatchingVO) {
+ log.error("【hystrix】调用{}异常", "getTermMatching");
+ return null;
+ }
@Override
public RespDTO<List<RegulationIndexDTO>> index(RegulationIndexVO regulationIndexVO) {
log.error("【hystrix】调用{}异常", "index");
+ public RespDTO<List<GetAllForRelationDTO>> searchConcept(@Valid SearchConceptVO searchConceptVO) {
+ log.error("【hystrix】调用{}异常", "searchConcept");
+ public RespDTO<List<GetAllForRelationDTO>> addConceptClass(@Valid SearchConceptVO searchConceptVO) {
+ log.error("【hystrix】调用{}异常", "addConceptClass");
+ public RespDTO<List<GetAllForRelationDTO>> searchConceptRuleClass(@Valid SearchConceptVO searchConceptVO) {
+ log.error("【hystrix】调用{}异常", "searchConceptRuleClass");
+ public RespDTO<List<GetAllForRelationDTO>> searchCollectionConcept(SearchCollectionConceptVO searchCollectionConceptVO) {
@@ -0,0 +1,140 @@
+package com.diagbot.client.hystrix;
+import com.diagbot.client.CdssClient;
+import feign.FeignException;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+@Component
+@Slf4j
+public class CdssHystrix implements CdssClient {
+ public void exportExcelModule(@Valid MappingConfigVO mappingConfigVO) {
+ log.error("【hystrix】调用{}异常", "exportExcelModule");
+ public RespDTO<Boolean> dataVerify(@RequestParam("file") MultipartFile file,
+ @RequestParam("type") Integer type) {
+ log.error("【hystrix】调用{}异常", "dataVerify");
+ public void precDataMatch(MultipartFile file, HttpServletResponse response, Integer type) {
+ log.error("【hystrix】调用{}异常", "precDataMatch");
+ public RespDTO<List<MappingConfigWrapper>> precDataMatch_remote(@RequestPart("file") MultipartFile file,
+ @RequestParam("type") Integer type) throws FeignException {
+ log.error("【hystrix】调用{}异常", "precDataMatch_remote");
+ public RespDTO<Boolean> importExcelDataVerify(@RequestPart("file") MultipartFile file,
+ @RequestParam("uesrId") String userId){
+ log.error("【hystrix】调用{}异常", "importExcelDataVerify");
+ public RespDTO<Boolean> importExcel(@RequestPart("file") MultipartFile file,
+ @RequestParam("uesrId") String userId) {
+ log.error("【hystrix】调用{}异常", "importExcel");
+ public RespDTO<List<MappingConfigWrapper>> importExcel_remote(@RequestPart("file") MultipartFile file,
+ log.error("【hystrix】调用{}异常", "importExcel_remote");
+ public RespDTO<List<MappingConfigWrapper>> exportExcel_remote(@RequestBody @Valid MappingConfigPageVO mappingConfigPageVO) {
+ log.error("【hystrix】调用{}异常", "exportExcel_remote");
+ public RespDTO<Page<MappingConfigWrapper>> getPage(@Valid MappingConfigPageVO mappingConfigPageVO) {
+ log.error("【hystrix】调用{}异常", "getPage");
+ public RespDTO<MappingConfigWrapper> getRecord(@Valid IdVO idVO) {
+ log.error("【hystrix】调用{}异常", "getRecord");
+ public RespDTO<Boolean> isExistRecord(@Valid MappingConfig mappingConfig) {
+ log.error("【hystrix】调用{}异常", "isExistRecord");
+ public RespDTO<List<MappingConfigWrapper>> getRelatedMapping(@Valid MappingConfigVO mappingConfigVO) {
+ log.error("【hystrix】调用{}异常", "getRelatedMapping");
+ public RespDTO<Boolean> saveOrUpdateRecord(@Valid MappingConfig mappingConfig) {
+ log.error("【hystrix】调用{}异常", "saveOrUpdateRecord");
+ public RespDTO<Boolean> deleteRecord(@Valid IdVO idVO) {
+ log.error("【hystrix】调用{}异常", "deleteRecord");
+ public RespDTO<Boolean> deleteRecords(@Valid IdListVO idListVO) {
+ log.error("【hystrix】调用{}异常", "deleteRecords");
@@ -0,0 +1,22 @@
+/*
+package com.diagbot.config;
+import feign.codec.Encoder;
+import feign.form.spring.SpringFormEncoder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+*/
+ * @time: 2021/6/22 15:26
+ *//*
+@Configuration
+public class FeignMultipartSupportConfig {
+ @Bean
+ public Encoder feignFormEncoder() {
+ return new SpringFormEncoder();
+}*/
@@ -0,0 +1,37 @@
+package com.diagbot.dto;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+ * @time: 2021/8/6 9:43
+@Data
+public class ConceptCollectionDTO {
+ private Long collectionId;
+ private String collectionLibName;
+ private Integer collectionLibType;
+ @ApiModelProperty(hidden = true)
+ private Integer collectionStatus;
+ private String collectionRemark;
+ private Long relationId;
+ private String concatConceptLibName;
+ private Integer conceptLibType;
+ private Integer conceptStatus;
+ * 修改时间
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+ private Date gmtModified;
+ * 修改人
+ private String modifier;
@@ -0,0 +1,18 @@
+import com.diagbot.vo.ConceptCollectionBaseVO;
+ * @time: 2021/8/18 13:50
+public class ConceptCollectionMatchDTO {
+ List<ConceptCollectionBaseVO> matchList;
+ List<ConceptCollectionBaseVO> unMatchList;
+ List<ConceptCollectionBaseVO> disableList;
@@ -25,4 +25,5 @@ public class ConceptMappingDTO {
private Integer nurseNum = 0;
private Integer tcmdiseaseNum = 0;
private Integer tcmsyndromeNum = 0;
+ private Integer anesthesiaNum = 0;
@@ -11,6 +11,7 @@ import lombok.Setter;
@Getter
@Setter
public class DiseaseInfoDTO {
+ private Long id;
* 疾病名称
@@ -13,6 +13,7 @@ import java.util.List;
public class DrugInfoDTO {
* 药品名称
@@ -12,13 +12,13 @@ import lombok.Setter;
public class GetAllForRelationDTO {
-
* 概念id
@ApiModelProperty(value="概念id")
private Long conceptId;
* 概念名称
@@ -30,13 +30,17 @@ public class GetAllForRelationDTO {
private Integer libType;
* 概念名称(类型)
@ApiModelProperty(value="概念名称(类型)")
private String conceptNameType;
+ * 说明
+ @ApiModelProperty(value="说明(remark)")
+ private String remark;
@@ -0,0 +1,72 @@
+import com.google.common.collect.Lists;
+import java.io.Serializable;
+ * <p>
+ * 医院信息表
+ * </p>
+ * @author wangfeng
+ * @since 2020-08-06
+public class HospitalInfoGetDTO implements Serializable {
+ private static final long serialVersionUID = 1L;
+ * 主键
+ * 记录创建时间
+ private Date gmtCreate;
+ * 记录修改时间,如果时间是1970年则表示纪录未修改
+ * 医院名称
+ private String name;
+ * 医院地址
+ private String address;
+ * 医院名称拼音
+ private String spell;
+ * 状态:0.禁用1.启用
+ private Integer status;
+ * 是否对接(0-不对接,1-对接)
+ private Integer connect;
+ * 备注
+ * 子医院关联表
+ private List<HospitalRelationDTO> hospitalRelationDTOList = Lists.newLinkedList();
@@ -0,0 +1,70 @@
+ * @author zhoutg
+public class HospitalInfoPageDTO implements Serializable {
+ * 子医院
+ private String sonHospital;
@@ -0,0 +1,30 @@
+ * 医院关联表
+public class HospitalRelationDTO implements Serializable {
+ * 子医院名称
+ * 子医院编码
+ private String code;
@@ -0,0 +1,27 @@
+import com.diagbot.vo.HospitalRelationVO;
+ * 医院关联表提示出错
+public class HospitalRelationErrorDTO implements Serializable {
+ // 当前医院重复
+ private List<HospitalRelationVO> errorCurrent;
+ // 与其他医院重复
+ private List<HospitalRelationVO> errorOther;
@@ -12,6 +12,21 @@ import lombok.Setter;
public class IndexBatchDTO {
private Long id;
private String name;
private String code;
+ private String synonyms;
+ private Integer type;
+ * 国药准字
+ private String approval;
+ * 药品剂型
+ private String form;
+ * 药品剂型id
+ private Long formConceptId;
@@ -3,6 +3,7 @@ package com.diagbot.dto;
import lombok.Getter;
import lombok.Setter;
* @author wangfeng
* @Description:
@@ -40,8 +41,9 @@ public class KlDiagnoseByIdDTO {
* 描述
private String basDescription;
- private Long basConceptId;
- private String basLibName;
+ /* private Long basConceptId;
+ private String basLibName;*/
+ private List<KlDiagnoseLibNameDTO> libNameList;
private Integer basLibType;
private String basLename;
@@ -0,0 +1,19 @@
+import lombok.Getter;
+import lombok.Setter;
+ * @date 2021-07-01 10:20
+@Setter
+@Getter
+public class KlDiagnoseLibNameDTO {
+ private Long basId;
+ private Long basConceptId;
+ private String basLibName;
+ private Integer basLibType;
+ private String basLename;
@@ -28,4 +28,5 @@ public class KlRuleByIdSubDTO {
private String subEqOperator;//等于域比较符
private String subEqValue;//等于域值
private String subEqUnit;//等于域单位
+ private String subMsg;
public class LisDetailDTO {
* 大项(套餐)
public class NurseInfoDTO {
* 护理名称
public class OperationInfoDTO {
* 手术或操作名称
@@ -0,0 +1,17 @@
+ * @date 2021-06-15 19:07
+public class RetrievalConceptDTO {
@@ -14,51 +14,69 @@ import java.util.List;
public class RetrievalDTO {
- * 化验大项
+ * 化验大项 辅检 诊断 药品 手术或操作 科室 输血 症状 体征 量表 护理 中医诊断 中医证候 麻醉 药品剂型
- private List<String> lisNames;
+ private List<RetrievalConceptDTO> nameList;
* 化验小项
private List<LisDetailDTO> lisDetailNames;
* 辅检
- */
- private List<String> pacsNames;
- /**
+ private List<RetrievalConceptDTO> pacsNames;
+ *//**
* 诊断
- private List<DiseaseInfoDTO> diseaseNames;
+ private List<RetrievalConceptDTO> diseaseNames;
* 药品
- private List<DrugInfoDTO> drugNames;
+ private List<RetrievalConceptDTO> drugNames;
* 手术或操作
- private List<OperationInfoDTO> operationNames;
+ private List<RetrievalConceptDTO> operationNames;
* 科室
- private List<String> deptNames;
+ private List<RetrievalConceptDTO> deptNames;
* 输血
- private List<String> transfusionNames;
+ private List<RetrievalConceptDTO> transfusionNames;
+ * 症状
+ private List<RetrievalConceptDTO> symptomNames;
+ * 体征
+ private List<RetrievalConceptDTO> vitalNames;
* 量表
- private List<ScaleInfoDTO> scalenames;
+ private List<RetrievalConceptDTO> scalenames;
* 护理
- private List<NurseInfoDTO> nursenames;
+ private List<RetrievalConceptDTO> nursenames;
* 中医诊断
- private List<TcmdiseaseInfoDTO> tcmdiseaseNames;
+ private List<RetrievalConceptDTO> tcmdiseaseNames;
* 中医证候
- private List<TcmsyndromeInfoDTO> tcmsyndromeNames;
+ private List<RetrievalConceptDTO> tcmsyndromeNames;
+ * 麻醉
+ private List<RetrievalConceptDTO> anesthesiaInfonames;
+ private List<RetrievalConceptDTO> drugDosage;*/
public class ScaleInfoDTO {
* 量表名称
+ * @date 2021-06-15 19:10
+public class TermConceptDTO {
+ //数据来源(1-标准词、2-同义词、3-编码、4-历史数据、5-相似词、99-数据迁移)
+ private Integer source;
@@ -0,0 +1,47 @@
+package com.diagbot.entity;
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import javax.validation.constraints.NotBlank;
+ * @time: 2021/6/10 19:16
+public class AnesthesiaConfig {
+ * 医院id
+ private Long hospitalId;
+ * 医院科室名称
+ @Excel(name = "医院麻醉名称", width = 40, orderNum = "1", isImportField = "true")
+ @NotBlank(message = "请输入医院麻醉名称")
+ private String hisName;
+ * 标准科室名称
+ @Excel(name = "标准麻醉名称", width = 40, orderNum = "2", isImportField = "true")
+ @NotBlank(message = "请输入标准麻醉名称")
+ private String uniqueName;
+ * 是否匹配(0-未匹配、1-已匹配)
+ @Excel(name = "是否匹配", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1", "_null"}, isImportField = "true")
+ private Integer isMatch;
+ * 数据来源(1-标准词、2-同义词、3-编码、4-历史数据、5-相似词、99-数据迁移)
+ @Excel(name = "数据来源", width = 20, orderNum = "5", replace = { "标准词_1", "同义词_2", "编码_3", "历史数据_4", "相似词_5", "数据迁移_99", "_null" }, isImportField = "true")
@@ -1,13 +1,11 @@
package com.diagbot.entity;
import cn.afterturn.easypoi.excel.annotation.Excel;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
import com.diagbot.util.StringUtil;
import javax.validation.constraints.NotBlank;
-import java.io.Serializable;
import java.util.Date;
import java.util.Objects;
@@ -19,15 +17,12 @@ import java.util.Objects;
* @author zhaops
* @since 2020-08-12
-@TableName("tran_dept_config")
-public class DeptConfig implements Serializable {
- private static final long serialVersionUID = 1L;
+public class DeptConfig {
* 主键
- @TableId(value = "id", type = IdType.INPUT)
@@ -83,96 +78,19 @@ public class DeptConfig implements Serializable {
* 对应项编码
- //@Excel(name = "对应项编码", width = 40, orderNum = "3")
- private String uniqueCode;
- public Long getId() {
- return id;
- }
- public void setId(Long id) {
- this.id = id;
- public String getIsDeleted() {
- return isDeleted;
- public void setIsDeleted(String isDeleted) {
- this.isDeleted = isDeleted;
- public Date getGmtCreate() {
- return gmtCreate;
- public void setGmtCreate(Date gmtCreate) {
- this.gmtCreate = gmtCreate;
- public Date getGmtModified() {
- return gmtModified;
- public void setGmtModified(Date gmtModified) {
- this.gmtModified = gmtModified;
- public String getCreator() {
- return creator;
- public void setCreator(String creator) {
- this.creator = creator;
- public String getModifier() {
- return modifier;
- public void setModifier(String modifier) {
- this.modifier = modifier;
- public Long getHospitalId() {
- return hospitalId;
- public void setHospitalId(Long hospitalId) {
- this.hospitalId = hospitalId;
- public String getHisName() {
- return hisName;
- public void setHisName(String hisName) {
- this.hisName = hisName;
- public String getHisCode() {
- return hisCode;
- public void setHisCode(String hisCode) {
- this.hisCode = hisCode;
- public String getUniqueName() {
- return uniqueName;
- public void setUniqueName(String uniqueName) {
- this.uniqueName = uniqueName;
- public String getUniqueCode() {
- return uniqueCode;
+ @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1", "_null" }, isImportField = "true")
- public void setUniqueCode(String uniqueCode) {
- this.uniqueCode = uniqueCode;
+ @Excel(name = "数据来源【不填、标准词、同义词、编码、历史数据、相似词】", width = 20, orderNum = "5", replace = { "标准词_1", "同义词_2", "编码_3", "历史数据_4", "相似词_5", "数据迁移_99", "_null" }, isImportField = "true")
public String toString() {
@@ -187,7 +105,7 @@ public class DeptConfig implements Serializable {
", hisName=" + hisName +
", hisCode=" + hisCode +
", uniqueName=" + uniqueName +
- ", uniqueCode=" + uniqueCode +
+ ", code=" + code +
"}";
@@ -204,21 +122,22 @@ public class DeptConfig implements Serializable {
&& Objects.equals(isDeleted, deptConfig.isDeleted)
&& Objects.equals(hospitalId, deptConfig.hospitalId)
&& Objects.equals(hisName, deptConfig.hisName)
- //&& Objects.equals(hisCode, deptConfig.hisCode)
+ && Objects.equals(hisCode, deptConfig.hisCode)
&& Objects.equals(uniqueName, deptConfig.uniqueName)
- && Objects.equals(uniqueCode, deptConfig.uniqueCode);
+ && Objects.equals(code, deptConfig.code);
public int hashCode() {
- return Objects.hash(id, isDeleted, hospitalId, hisName, uniqueName, uniqueCode);
+ return Objects.hash(id, isDeleted, hospitalId, hisName, hisCode, uniqueName, code);
public static boolean nonNull(DeptConfig o) {
return !(o == null
|| (o.hospitalId == null
&& StringUtil.isBlank(o.hisName)
+ && StringUtil.isBlank(o.hisCode)
&& StringUtil.isBlank(o.uniqueName)
- && StringUtil.isBlank(o.uniqueCode)));
+ && StringUtil.isBlank(o.code)));
* @since 2020-07-28
-@TableName("tran_disease_config")
-public class DiseaseConfig implements Serializable {
+public class DiseaseConfig {
@@ -78,87 +73,19 @@ public class DiseaseConfig implements Serializable {
* ICD-10编码
@Excel(name = "ICD-10编码", width = 40, orderNum = "2", isImportField = "true")
- private String icdCode;
- public String getIcdCode() {
- return icdCode;
- public void setIcdCode(String icdCode) {
- this.icdCode = icdCode;
@@ -172,7 +99,9 @@ public class DiseaseConfig implements Serializable {
", hospitalId=" + hospitalId +
- ", icdCode=" + icdCode +
+ ", isMatch=" + isMatch +
+ ", source=" + source +
@@ -190,12 +119,12 @@ public class DiseaseConfig implements Serializable {
&& Objects.equals(hospitalId, diseaseConfig.hospitalId)
&& Objects.equals(hisName, diseaseConfig.hisName)
&& Objects.equals(uniqueName, diseaseConfig.uniqueName)
- && Objects.equals(icdCode, diseaseConfig.icdCode);
+ && Objects.equals(code, diseaseConfig.code);
- return Objects.hash(id, isDeleted, hospitalId, hisName, uniqueName, icdCode);
+ return Objects.hash(id, isDeleted, hospitalId, hisName, uniqueName, code);
public static boolean nonNull(DiseaseConfig o) {
@@ -203,6 +132,6 @@ public class DiseaseConfig implements Serializable {
- && StringUtil.isBlank(o.icdCode)));
@@ -1,17 +1,10 @@
-import com.baomidou.mybatisplus.annotation.FieldStrategy;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.diagbot.util.StringUtil;
-import java.util.Objects;
* <p>
@@ -21,15 +14,11 @@ import java.util.Objects;
-@TableName("tran_drug_config")
-public class DrugConfig implements Serializable {
+public class DrugConfig {
@@ -67,7 +56,6 @@ public class DrugConfig implements Serializable {
@Excel(name = "医院药品名称", width = 40, orderNum = "1", isImportField = "true")
@NotBlank(message = "请输入医院药品名称")
- //@Size(max = 80, min = 1,message = "医院药品名称长度需要在1-80字符长度之间")
private String hisName;
@@ -75,156 +63,31 @@ public class DrugConfig implements Serializable {
@Excel(name = "标准药品名称", width = 40, orderNum = "2", isImportField = "true")
@NotBlank(message = "请输入标准药品名称")
- //@Size(max = 80, min = 1,message = "标准药品名称长度需要在1-80字符长度之间")
private String uniqueName;
* 标准编码
* 剂型
@Excel(name = "药品剂型", width = 60, orderNum = "3", isImportField = "true")
- @TableField(updateStrategy = FieldStrategy.IGNORED)
private String form;
- public String getForm() {
- return form;
- public void setForm(String form) {
- this.form = form;
- @Override
- public String toString() {
- return "DrugConfig{" +
- "id=" + id +
- ", isDeleted=" + isDeleted +
- ", gmtCreate=" + gmtCreate +
- ", gmtModified=" + gmtModified +
- ", creator=" + creator +
- ", modifier=" + modifier +
- ", hospitalId=" + hospitalId +
- ", hisName=" + hisName +
- ", uniqueName=" + uniqueName +
- ", form=" + form +
- "}";
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- if (o == null || getClass() != o.getClass()) {
- return false;
- DrugConfig drugConfig = (DrugConfig) o;
- return Objects.equals(id, drugConfig.id)
- && Objects.equals(isDeleted, drugConfig.isDeleted)
- && Objects.equals(hospitalId, drugConfig.hospitalId)
- && Objects.equals(hisName, drugConfig.hisName)
- && Objects.equals(form, drugConfig.form)
- && Objects.equals(uniqueName, drugConfig.uniqueName)
- && Objects.equals(uniqueCode, drugConfig.uniqueCode);
- public int hashCode() {
- return Objects.hash(id, isDeleted, hospitalId, hisName, form, uniqueName, uniqueCode);
- public static boolean nonNull(DrugConfig o) {
- return !(o == null
- || (o.hospitalId == null
- && StringUtil.isBlank(o.hisName)
- && StringUtil.isBlank(o.uniqueName)
- && StringUtil.isBlank(o.uniqueCode)
- && StringUtil.isBlank(o.form)));
+ @Excel(name = "国药准字", width = 40, orderNum = "4", isImportField = "true")
+ @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "5", replace = { "未匹配_0", "已匹配_1", "_null" }, isImportField = "true")
+ @Excel(name = "数据来源【不填、标准词、同义词、编码、历史数据、相似词、国药准字】", width = 20, orderNum = "6", replace = { "标准词_1", "同义词_2", "编码_3", "历史数据_4", "相似词_5", "国药准字_6", "数据迁移_99", "_null" }, isImportField = "true")
@@ -0,0 +1,153 @@
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+ * 基础规则关联表
+ * @since 2021-07-15
+public class KlDiagnoseBaseRelation implements Serializable {
+ @TableId(value = "id", type = IdType.AUTO)
+ * 是否删除,N:未删除,Y:删除
+ private String isDeleted;
+ * 创建人,0表示无创建人值
+ private String creator;
+ * 修改人,如果为0则表示纪录未修改
+ * diagnose_base_id
+ private Long diagnoseBaseId;
+ * concept_id
+ private Long conceptId;
+ * 排序号
+ private Integer orderNo;
+ public Long getId() {
+ return id;
+ public void setId(Long id) {
+ this.id = id;
+ public String getIsDeleted() {
+ return isDeleted;
+ public void setIsDeleted(String isDeleted) {
+ this.isDeleted = isDeleted;
+ public Date getGmtCreate() {
+ return gmtCreate;
+ public void setGmtCreate(Date gmtCreate) {
+ this.gmtCreate = gmtCreate;
+ public Date getGmtModified() {
+ return gmtModified;
+ public void setGmtModified(Date gmtModified) {
+ this.gmtModified = gmtModified;
+ public String getCreator() {
+ return creator;
+ public void setCreator(String creator) {
+ this.creator = creator;
+ public String getModifier() {
+ return modifier;
+ public void setModifier(String modifier) {
+ this.modifier = modifier;
+ public Long getDiagnoseBaseId() {
+ return diagnoseBaseId;
+ public void setDiagnoseBaseId(Long diagnoseBaseId) {
+ this.diagnoseBaseId = diagnoseBaseId;
+ public Long getConceptId() {
+ return conceptId;
+ public void setConceptId(Long conceptId) {
+ this.conceptId = conceptId;
+ public Integer getOrderNo() {
+ return orderNo;
+ public void setOrderNo(Integer orderNo) {
+ this.orderNo = orderNo;
+ public String toString() {
+ return "KlDiagnoseBaseRelation{" +
+ "id=" + id +
+ ", isDeleted=" + isDeleted +
+ ", gmtCreate=" + gmtCreate +
+ ", gmtModified=" + gmtModified +
+ ", creator=" + creator +
+ ", modifier=" + modifier +
+ ", diagnoseBaseId=" + diagnoseBaseId +
+ ", conceptId=" + conceptId +
+ ", orderNo=" + orderNo +
+ "}";
@@ -11,8 +11,8 @@ import java.util.Date;
* 规则条件表
* </p>
*
- * @author zhaops
- * @since 2021-03-01
+ * @since 2021-07-27
public class KlRuleCondition implements Serializable {
@@ -50,7 +50,7 @@ public class KlRuleCondition implements Serializable {
private String modifier;
- * 提示概念id
+ * 规则主表id
private Long ruleId;
@@ -60,10 +60,15 @@ public class KlRuleCondition implements Serializable {
private Integer groupType;
+ * 基础规则id
private Long ruleBaseId;
+ * 附加信息
+ private String msg;
public Long getId() {
return id;
@@ -71,6 +76,7 @@ public class KlRuleCondition implements Serializable {
public void setId(Long id) {
this.id = id;
public String getIsDeleted() {
return isDeleted;
@@ -78,6 +84,7 @@ public class KlRuleCondition implements Serializable {
public void setIsDeleted(String isDeleted) {
this.isDeleted = isDeleted;
public Date getGmtCreate() {
return gmtCreate;
@@ -85,6 +92,7 @@ public class KlRuleCondition implements Serializable {
public void setGmtCreate(Date gmtCreate) {
this.gmtCreate = gmtCreate;
public Date getGmtModified() {
return gmtModified;
@@ -92,6 +100,7 @@ public class KlRuleCondition implements Serializable {
public void setGmtModified(Date gmtModified) {
this.gmtModified = gmtModified;
public String getCreator() {
return creator;
@@ -99,6 +108,7 @@ public class KlRuleCondition implements Serializable {
public void setCreator(String creator) {
this.creator = creator;
public String getModifier() {
return modifier;
@@ -106,6 +116,7 @@ public class KlRuleCondition implements Serializable {
public void setModifier(String modifier) {
this.modifier = modifier;
public Long getRuleId() {
return ruleId;
@@ -113,6 +124,7 @@ public class KlRuleCondition implements Serializable {
public void setRuleId(Long ruleId) {
this.ruleId = ruleId;
public Integer getGroupType() {
return groupType;
@@ -120,6 +132,7 @@ public class KlRuleCondition implements Serializable {
public void setGroupType(Integer groupType) {
this.groupType = groupType;
public Long getRuleBaseId() {
return ruleBaseId;
@@ -128,18 +141,27 @@ public class KlRuleCondition implements Serializable {
this.ruleBaseId = ruleBaseId;
+ public String getMsg() {
+ return msg;
+ public void setMsg(String msg) {
+ this.msg = msg;
return "KlRuleCondition{" +
- ", ruleId=" + ruleId +
- ", groupType=" + groupType +
- ", ruleBaseId=" + ruleBaseId +
+ ", ruleId=" + ruleId +
+ ", groupType=" + groupType +
+ ", ruleBaseId=" + ruleBaseId +
+ ", msg=" + msg +
@@ -2,15 +2,12 @@ package com.diagbot.entity;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
-import lombok.Data;
@@ -22,16 +19,12 @@ import java.util.Objects;
-@Data
-@TableName("tran_lis_config")
-public class LisConfig implements Serializable {
+public class LisConfig {
@@ -89,95 +82,19 @@ public class LisConfig implements Serializable {
* 对应项目编码
//@Excel(name = "对应项目编码", width = 40, orderNum = "3")
- public String getHisDetailName() {
- return hisDetailName;
- public void setHisDetailName(String hisDetailName) {
- this.hisDetailName = hisDetailName;
@@ -192,7 +109,7 @@ public class LisConfig implements Serializable {
", hisDetailName=" + hisDetailName +
@@ -211,12 +128,12 @@ public class LisConfig implements Serializable {
&& Objects.equals(hisName, lisConfig.hisName)
&& Objects.equals(hisDetailName, lisConfig.hisDetailName)
&& Objects.equals(uniqueName, lisConfig.uniqueName)
- && Objects.equals(uniqueCode, lisConfig.uniqueCode);
+ && Objects.equals(code, lisConfig.code);
- return Objects.hash(id, isDeleted, hospitalId, hisName, hisDetailName, uniqueName, uniqueCode);
+ return Objects.hash(id, isDeleted, hospitalId, hisName, hisDetailName, uniqueName, code);
public static boolean nonNull(LisConfig o) {
@@ -225,6 +142,6 @@ public class LisConfig implements Serializable {
&& StringUtil.isBlank(o.hisDetailName)
@@ -0,0 +1,304 @@
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.diagbot.util.StringUtil;
+import lombok.EqualsAndHashCode;
+import java.util.Objects;
+ * 医学术语映射表
+ * @author zhaops
+ * @since 2021-06-09
+@EqualsAndHashCode
+@TableName("tran_mapping_config")
+public class MappingConfig implements Serializable {
+ * 医学术语类型( 1-检验套餐、2-检验细项、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、10-量表、11-护理、12-中医疾病、13-中医证候、14-麻醉)
+ * 医院术语名称
+ * 医院术语编码
+ private String hisCode;
+ * 医院术语细项名称(检验细项)
+ @TableField(updateStrategy = FieldStrategy.IGNORED)
+ private String hisDetailName;
+ * 医学标准术语id
+ public Long getHospitalId() {
+ return hospitalId;
+ public void setHospitalId(Long hospitalId) {
+ this.hospitalId = hospitalId;
+ public Integer getType() {
+ return type;
+ public void setType(Integer type) {
+ this.type = type;
+ public String getHisName() {
+ return hisName;
+ public void setHisName(String hisName) {
+ this.hisName = hisName;
+ public String getHisCode() {
+ return hisCode;
+ public void setHisCode(String hisCode) {
+ this.hisCode = hisCode;
+ public String getHisDetailName() {
+ return hisDetailName;
+ public void setHisDetailName(String hisDetailName) {
+ this.hisDetailName = hisDetailName;
+ public Long getFormConceptId() {
+ return formConceptId;
+ public void setFormConceptId(Long formConceptId) {
+ this.formConceptId = formConceptId;
+ public Integer getIsMatch() {
+ return isMatch;
+ public void setIsMatch(Integer isMatch) {
+ this.isMatch = isMatch;
+ public Integer getSource() {
+ return source;
+ public void setSource(Integer source) {
+ this.source = source;
+ public String getRemark() {
+ return remark;
+ public void setRemark(String remark) {
+ this.remark = remark;
+ return "MappingConfig{" +
+ ", hospitalId=" + hospitalId +
+ ", type=" + type +
+ ", hisName=" + hisName +
+ ", hisCode=" + hisCode +
+ ", hisDetailName=" + hisDetailName +
+ ", formConceptId=" + formConceptId +
+ ", remark=" + remark +
+ /*@Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ MappingConfig mappingConfig = (MappingConfig) o;
+ return Objects.equals(id, mappingConfig.id)
+ && Objects.equals(isDeleted, mappingConfig.isDeleted)
+ && Objects.equals(hospitalId, mappingConfig.hospitalId)
+ && Objects.equals(type, mappingConfig.type)
+ && Objects.equals(hisName, mappingConfig.hisName)
+ && Objects.equals(hisCode, mappingConfig.hisCode)
+ && Objects.equals(hisDetailName, mappingConfig.hisDetailName)
+ && Objects.equals(conceptId, mappingConfig.conceptId)
+ && Objects.equals(formConceptId, mappingConfig.formConceptId)
+ && Objects.equals(isMatch, mappingConfig.isMatch)
+ //&& Objects.equals(source, mappingConfig.source)
+ ;
+ public int hashCode() {
+ return Objects.hash(id, isDeleted, hospitalId, type, hisName, hisCode, hisDetailName, conceptId, formConceptId, isMatch);
+ }*/
+ public static boolean nonNull(MappingConfig o) {
+ return !(o == null
+ || (o.hospitalId == null
+ && o.type == null
+ && StringUtil.isBlank(o.hisName)
+ && StringUtil.isBlank(o.hisDetailName)
+ && o.conceptId == null
+ && o.formConceptId == null
+ && o.isMatch == null
+ && o.source == null));
* @since 2021-04-26
-@TableName("tran_nurse_config")
-public class NurseConfig implements Serializable {
+public class NurseConfig{
- @TableId(value = "id", type = IdType.AUTO)
@@ -77,87 +72,19 @@ public class NurseConfig implements Serializable {
@@ -171,7 +98,7 @@ public class NurseConfig implements Serializable {
@@ -189,12 +116,12 @@ public class NurseConfig implements Serializable {
&& Objects.equals(hospitalId, nurseConfig.hospitalId)
&& Objects.equals(hisName, nurseConfig.hisName)
&& Objects.equals(uniqueName, nurseConfig.uniqueName)
- && Objects.equals(uniqueCode, nurseConfig.uniqueCode);
+ && Objects.equals(code, nurseConfig.code);
public static boolean nonNull(NurseConfig o) {
@@ -202,6 +129,6 @@ public class NurseConfig implements Serializable {
-@TableName("tran_operation_config")
-public class OperationConfig implements Serializable {
+public class OperationConfig{
@@ -77,88 +72,21 @@ public class OperationConfig implements Serializable {
- //@Excel(name = "对应项编码", width = 40, orderNum = "2")
+ @Excel(name = "手术和操作代码", width = 40, orderNum = "2", isImportField = "true")
+ @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1", "_null"}, isImportField = "true")
@@ -172,7 +100,7 @@ public class OperationConfig implements Serializable {
@@ -190,12 +118,12 @@ public class OperationConfig implements Serializable {
&& Objects.equals(hospitalId, operationConfig.hospitalId)
&& Objects.equals(hisName, operationConfig.hisName)
&& Objects.equals(uniqueName, operationConfig.uniqueName)
- && Objects.equals(uniqueCode, operationConfig.uniqueCode);
+ && Objects.equals(code, operationConfig.code);
public static boolean nonNull(OperationConfig o) {
@@ -203,6 +131,6 @@ public class OperationConfig implements Serializable {
@@ -1,10 +1,9 @@
import java.io.Serializable;
@@ -19,15 +18,12 @@ import java.util.Objects;
-@TableName("tran_pacs_config")
public class PacsConfig implements Serializable {
@@ -78,87 +74,20 @@ public class PacsConfig implements Serializable {
//@Excel(name = "对应项编码", width = 40, orderNum = "2")
@@ -172,7 +101,7 @@ public class PacsConfig implements Serializable {
@@ -190,12 +119,12 @@ public class PacsConfig implements Serializable {
&& Objects.equals(hospitalId, pacsConfig.hospitalId)
&& Objects.equals(hisName, pacsConfig.hisName)
&& Objects.equals(uniqueName, pacsConfig.uniqueName)
- && Objects.equals(uniqueCode, pacsConfig.uniqueCode);
+ && Objects.equals(code, pacsConfig.code);
public static boolean nonNull(PacsConfig o) {
@@ -203,6 +132,6 @@ public class PacsConfig implements Serializable {
* @since 2021-04-13
-@TableName("tran_scale_config")
-public class ScaleConfig implements Serializable {
+public class ScaleConfig{
@@ -77,87 +72,20 @@ public class ScaleConfig implements Serializable {
@@ -171,7 +99,7 @@ public class ScaleConfig implements Serializable {
@@ -189,12 +117,12 @@ public class ScaleConfig implements Serializable {
&& Objects.equals(hospitalId, scaleConfig.hospitalId)
&& Objects.equals(hisName, scaleConfig.hisName)
&& Objects.equals(uniqueName, scaleConfig.uniqueName)
- && Objects.equals(uniqueCode, scaleConfig.uniqueCode);
+ && Objects.equals(code, scaleConfig.code);
public static boolean nonNull(ScaleConfig o) {
@@ -202,6 +130,6 @@ public class ScaleConfig implements Serializable {
* @since 2021-05-13
-@TableName("tran_tcmdisease_config")
-public class TcmdiseaseConfig implements Serializable {
+public class TcmdiseaseConfig{
@@ -78,87 +73,19 @@ public class TcmdiseaseConfig implements Serializable {
@Excel(name = "中医疾病代码", width = 40, orderNum = "2", isImportField = "true")
@@ -172,7 +99,7 @@ public class TcmdiseaseConfig implements Serializable {
@@ -190,12 +117,12 @@ public class TcmdiseaseConfig implements Serializable {
&& Objects.equals(hospitalId, tcmdiseaseConfig.hospitalId)
&& Objects.equals(hisName, tcmdiseaseConfig.hisName)
&& Objects.equals(uniqueName, tcmdiseaseConfig.uniqueName)
- && Objects.equals(uniqueCode, tcmdiseaseConfig.uniqueCode);
+ && Objects.equals(code, tcmdiseaseConfig.code);
public static boolean nonNull(TcmdiseaseConfig o) {
@@ -203,6 +130,6 @@ public class TcmdiseaseConfig implements Serializable {
-@TableName("tran_tcmsyndrome_config")
-public class TcmsyndromeConfig implements Serializable {
+public class TcmsyndromeConfig {
@@ -78,87 +73,19 @@ public class TcmsyndromeConfig implements Serializable {
@Excel(name = "中医证候代码", width = 40, orderNum = "2", isImportField = "true")
@@ -172,7 +99,7 @@ public class TcmsyndromeConfig implements Serializable {
@@ -190,12 +117,12 @@ public class TcmsyndromeConfig implements Serializable {
&& Objects.equals(hospitalId, tcmsyndromeConfig.hospitalId)
&& Objects.equals(hisName, tcmsyndromeConfig.hisName)
&& Objects.equals(uniqueName, tcmsyndromeConfig.uniqueName)
- && Objects.equals(uniqueCode, tcmsyndromeConfig.uniqueCode);
+ && Objects.equals(code, tcmsyndromeConfig.code);
public static boolean nonNull(TcmsyndromeConfig o) {
@@ -203,6 +130,6 @@ public class TcmsyndromeConfig implements Serializable {
@@ -0,0 +1,73 @@
+ * @since 2021-10-09
+public class TranHospitalRelation implements Serializable {
+ * 父医院id
* @since 2020-08-31
-@TableName("tran_transfusion_config")
-public class TransfusionConfig implements Serializable {
+public class TransfusionConfig {
@@ -78,87 +73,19 @@ public class TransfusionConfig implements Serializable {
@@ -172,7 +99,7 @@ public class TransfusionConfig implements Serializable {
@@ -190,12 +117,12 @@ public class TransfusionConfig implements Serializable {
&& Objects.equals(hospitalId, transfusionConfig.hospitalId)
&& Objects.equals(hisName, transfusionConfig.hisName)
&& Objects.equals(uniqueName, transfusionConfig.uniqueName)
- && Objects.equals(uniqueCode, transfusionConfig.uniqueCode);
+ && Objects.equals(code, transfusionConfig.code);
public static boolean nonNull(TransfusionConfig o) {
@@ -203,6 +130,6 @@ public class TransfusionConfig implements Serializable {
@@ -0,0 +1,23 @@
+package com.diagbot.entity.wrapper;
+import com.diagbot.entity.AnesthesiaConfig;
+import lombok.ToString;
+ * @time: 2021/9/22 15:13
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class AnesthesiaConfigWrapper extends AnesthesiaConfig {
+ * 医院诊断名称
+ @Excel(name = "标准术语状态", width = 40, replace = { "禁用_0", "启用_1", "_null" }, orderNum = "99")
@@ -0,0 +1,24 @@
+import com.diagbot.entity.DeptConfig;
+ * @time: 2021/9/22 14:53
+public class DeptConfigWrapper extends DeptConfig {
+ @Excel(name = "标准术语状态", width = 40, orderNum = "99")
+import com.diagbot.entity.DiseaseConfig;
+ * @time: 2021/9/22 15:00
+public class DiseaseConfigWrapper extends DiseaseConfig {
@@ -0,0 +1,28 @@
+import com.diagbot.entity.DrugConfig;
+ * @time: 2021/9/22 15:02
+public class DrugConfigWrapper extends DrugConfig {
+ @Excel(name = "标准剂型状态", width = 40, replace = { "禁用_0", "启用_1", "_null" }, orderNum = "100")
+ private Integer formStatus;
+import com.diagbot.entity.LisConfig;
+ * @time: 2021/9/22 15:09
+public class LisConfigWrapper extends LisConfig {
@@ -0,0 +1,58 @@
+ * @time: 2021/6/10 19:27
+public class MappingConfigWrapper extends MappingConfig {
+ /* @Override
+ MappingConfigWrapper mappingConfigWrapper = (MappingConfigWrapper) o;
+ return super.equals(o)
+ && Objects.equals(uniqueName, mappingConfigWrapper.uniqueName)
+ && Objects.equals(form, mappingConfigWrapper.form)
+ && Objects.equals(code, mappingConfigWrapper.code);
+ return Objects.hash(uniqueName, form, code) + super.hashCode();
+ public static boolean nonNull(MappingConfigWrapper o) {
+ || (StringUtil.isBlank(o.uniqueName)
+ && o.status == null
+ && StringUtil.isBlank(o.form)
+ && o.formStatus == null
+ && StringUtil.isBlank(o.code)
+ && StringUtil.isBlank(o.approval)))
+ || MappingConfig.nonNull(o);
+import com.diagbot.entity.NurseConfig;
+ * @time: 2021/9/22 15:12
+public class NurseConfigWrapper extends NurseConfig {
+import com.diagbot.entity.OperationConfig;
+ * @time: 2021/9/22 15:08
+public class OperationConfigWrapper extends OperationConfig {
+import com.diagbot.entity.PacsConfig;
+ * @time: 2021/9/22 15:10
+public class PacsConfigWrapper extends PacsConfig {
+import com.diagbot.entity.ScaleConfig;
+ * @time: 2021/9/22 15:15
+public class ScaleConfigWrapper extends ScaleConfig {
+import com.diagbot.entity.TcmdiseaseConfig;
+ * @time: 2021/9/22 15:17
+public class TcmdiseaseConfigWrapper extends TcmdiseaseConfig {
+import com.diagbot.entity.TcmsyndromeConfig;
+ * @time: 2021/9/22 15:18
+public class TcmsyndromeConfigWrapper extends TcmsyndromeConfig {
+import com.diagbot.entity.TransfusionConfig;
+public class TransfusionConfigWrapper extends TransfusionConfig {
@@ -17,10 +17,14 @@ public enum ConceptTypeEnum implements KeyedNamed {
Operation(6, "手术和操作"),
Dept(7, "科室"),
Transfusion(8, "输血"),
+ Symptom(9,"症状"),
+ //PacsSubName(9, "检查子项"),
Scale(10, "量表"),
Nurse(11, "护理"),
Tcmdisease(12,"中医疾病"),
- Tcmsyndrome(13,"中医证候");
+ Tcmsyndrome(13,"中医证候"),
+ Anesthesia(14, "麻醉"),
+ Form(15, "药品剂型");
private int key;
@@ -48,6 +48,27 @@ public enum LexiconEnum implements KeyedNamed {
SymptomClass(305,"症状类别"),
OperationClass(306,"手术和操作类别"),
DisSysType(307,"疾病系统分类"),
+ DiseaseCollection(308,"疾病集合"),
+ MedicineCollection(309,"药品通用名集合"),
+ FormCollection(310,"药品剂型集合"),
+ SymptomCollection(311,"症状集合"),
+ VitalCollection(312,"体格检查项目集合"),
+ VitalResultCollection(313,"体格检查结果集合"),
+ OperationCollection(314,"手术和操作集合"),
+ LisNameCollection(315,"实验室检查套餐集合"),
+ PacsNameCollection(316,"辅助检查项目集合"),
+ PacsSubNameCollection(317,"辅助检查子项目集合"),
+ PacsDescribeCollection(318,"辅助检查描述集合"),
+ PacsResultCollection(319,"辅助检查结果集合"),
+ AnesthesiaCollection(320,"麻醉集合"),
+ DeptCollection(321,"科室集合"),
+ FoodCollection(322,"食物集合"),
+ AllergenCollection(323,"其他过敏原集合"),
+ DeviceCollection(324,"医疗器械及物品集合"),
+ PartCollection(325,"部位集合"),
+ TcmdiseaseCollection(326,"中医疾病集合"),
+ TcmsyndromeCollection(327,"中医证候集合"),
+ InducementCollection(328,"诱因集合"),
ICD10ClassNode(400,"ICD10疾病类别根节点"),
DeptDiseaseNode(401,"科室疾病类别根节点"),
MedChemClassNode(402,"药品化学物质类别根节点"),
@@ -58,7 +79,8 @@ public enum LexiconEnum implements KeyedNamed {
OperationClassNode(407,"手术和操作类别根节点"),
LisClassNode(408,"实验室检查类别根节点"),
PacsClassNode(409,"辅助检查类别根节点"),
- Age(410,"年龄");
+ Age(410,"年龄"),
+ Law(130,"政策法规");
@@ -0,0 +1,67 @@
+package com.diagbot.enums;
+import com.diagbot.core.KeyedNamed;
+ * @time: 2021/6/15 13:20
+public enum MatchSourceEnum implements KeyedNamed {
+ StandWord(1, "标准词"),
+ SynonymsWord(2, "同义词"),
+ Code(3,"编码"),
+ History(4,"历史数据"),
+ SimilarWord(5,"相似词"),
+ Approval(6,"国药准字");
+ @Setter
+ private int key;
+ MatchSourceEnum(int key, String name) {
+ this.key = key;
+ this.name = name;
+ public static MatchSourceEnum getEnum(int key) {
+ for (MatchSourceEnum item : MatchSourceEnum.values()) {
+ if (item.key == key) {
+ return item;
+ public static MatchSourceEnum getEnum(String name) {
+ if (item.name.equals(name)) {
+ public static String getName(int key) {
+ MatchSourceEnum item = getEnum(key);
+ return item != null ? item.name : null;
+ public static Integer getKey(String name) {
+ MatchSourceEnum item = getEnum(name);
+ return item != null ? item.key : null;
+ public int getKey() {
+ return key;
+ public String getName() {
+ return name;
@@ -30,7 +30,7 @@ public enum ServiceErrorCode implements ErrorCode {
public static ServiceErrorCode codeOf(String code) {
for (ServiceErrorCode state : values()) {
- if (state.getCode() == code) {
+ if (state.getCode().equals(code)) {
return state;
@@ -1,584 +0,0 @@
-package com.diagbot.facade;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.diagbot.client.CdssCoreClient;
-import com.diagbot.dto.HosRelationNumDTO;
-import com.diagbot.entity.DeptConfig;
-import com.diagbot.enums.ConceptTypeEnum;
-import com.diagbot.enums.IsDeleteEnum;
-import com.diagbot.exception.CommonErrorCode;
-import com.diagbot.exception.CommonException;
-import com.diagbot.service.DeptConfigService;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.ExcelUtils;
-import com.diagbot.util.ListUtil;
-import com.diagbot.util.RespDTOUtil;
-import com.diagbot.util.UserUtils;
-import com.diagbot.vo.ConceptVO;
-import com.diagbot.vo.DeptConfigListVO;
-import com.diagbot.vo.DeptConfigPageVO;
-import com.diagbot.vo.HosRelationNumPageVO;
-import com.diagbot.vo.HospitalIdVO;
-import com.diagbot.vo.IdListVO;
-import com.diagbot.vo.IdVO;
-import com.google.common.collect.Lists;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import org.springframework.web.multipart.MultipartFile;
-import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-/**
- * @Description:
- * @Author:zhaops
- * @time: 2020/8/12 14:25
-@Component
-public class DeptConfigFacade {
- @Autowired
- private DeptConfigService deptConfigService;
- private CdssCoreClient cdssCoreClient;
- * 判断是否已存在
- *
- * @param deptConfig
- * @return
- public Boolean isExistRecord(DeptConfig deptConfig) {
- QueryWrapper<DeptConfig> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
- .eq("hospital_id", deptConfig.getHospitalId())
- .eq("his_name", deptConfig.getHisName())
- .eq("unique_name", deptConfig.getUniqueName());
- /* if (StringUtil.isNotBlank(deptConfig.getHisCode())) {
- queryWrapper.eq("his_code", deptConfig.getHisCode());
- } else {
- queryWrapper.and(i -> i.isNull("his_code")
- .or()
- .eq("his_code", ""));
- }*/
- DeptConfig oldRecord = deptConfigService.getOne(queryWrapper, false);
- if (deptConfig.getId() == null
- && oldRecord != null) {
- throw new CommonException(CommonErrorCode.IS_EXISTS, "该条关联已存在,无法保存");
- if (deptConfig.getId() != null
- && oldRecord != null
- && !deptConfig.getId().equals(oldRecord.getId())) {
- * 保存记录-单条
- public Boolean saveOrUpdateRecord(DeptConfig deptConfig) {
- String userId = UserUtils.getCurrentPrincipleID();
- Date now = DateUtil.now();
- deptConfig.setModifier(userId);
- deptConfig.setGmtModified(now);
- /*if (StringUtil.isNotBlank(deptConfig.getHisCode())) {
- //新增数据
- if (deptConfig.getId() == null) {
- deptConfig.setCreator(userId);
- deptConfig.setGmtCreate(now);
- if (deptConfig.getIsDeleted() == null) {
- deptConfig.setIsDeleted(IsDeleteEnum.N.getKey());
- deptConfigService.saveOrUpdate(deptConfig);
- * 保存记录-批量
- * @param deptConfigListVO
- public Boolean saveOrUpdateRecords(DeptConfigListVO deptConfigListVO) {
- if (ListUtil.isEmpty(deptConfigListVO.getDeptConfigList())) {
- return saveOrUpdateRecords(deptConfigListVO.getDeptConfigList());
- * 批量保存
- * @param deptConfigList
- public Boolean saveOrUpdateRecords(List<DeptConfig> deptConfigList) {
- if (ListUtil.isEmpty(deptConfigList)) {
- //数据不完整的不保存
- //过滤外部名称或公表名为空的数据
- deptConfigList = deptConfigList
- .stream()
- .filter(i -> i.getHospitalId() != null)
- .filter(i -> StringUtil.isNotBlank(i.getHisName()))
- .filter(i -> StringUtil.isNotBlank(i.getUniqueName()))
- .collect(Collectors.toList());
- Long hospitalId = deptConfigList.get(0).getHospitalId();
- // 验证数据是否已存在,已存在的先删除
- // 没id的删除重新插入,有id的更新
- List<Long> deleteIds = Lists.newLinkedList();
- Map<String, Map<String, List<Long>>> configMap
- = getConfigMap(hospitalId, null, null);
- deptConfigList.forEach(deptConfig -> {
- if (configMap.containsKey(deptConfig.getHisName())
- && ListUtil.isNotEmpty(configMap.get(deptConfig.getHisName()).get(deptConfig.getUniqueName()))) {
- deleteIds.addAll(configMap.get(deptConfig.getHisName()).get(deptConfig.getUniqueName()));
- });
- //删除已存在映射关系
- IdListVO idListVO = new IdListVO();
- idListVO.setIds(deleteIds);
- deleteRecords(idListVO);
- deptConfigService.saveOrUpdateBatch(deptConfigList);
- * 删除记录-单条
- * @param idVO
- public Boolean deleteRecord(IdVO idVO) {
- UpdateWrapper<DeptConfig> updateWrapper = new UpdateWrapper<>();
- updateWrapper.eq("id", idVO.getId())
- .set("is_deleted", IsDeleteEnum.Y.getKey());
- deptConfigService.removeById(idVO.getId());
- * 删除记录-批量
- * @param idListVO
- public Boolean deleteRecords(IdListVO idListVO) {
- if (ListUtil.isEmpty(idListVO.getIds())) {
- updateWrapper.in("id", idListVO.getIds())
- deptConfigService.removeByIds(idListVO.getIds());
- * 分页查询
- * @param deptConfigPageVO
- public IPage<DeptConfig> getPage(DeptConfigPageVO deptConfigPageVO) {
- return deptConfigService.getPage(deptConfigPageVO);
- * 数据导入
- * @param file
- * @param hospitalIdVO
- public void importExcel(MultipartFile file, HospitalIdVO hospitalIdVO) {
- List<DeptConfig> deptConfigList = ExcelUtils.importExcel(file, 0, 1, DeptConfig.class);
- if (ListUtil.isNotEmpty(deptConfigList)) {
- importExcelRecords(deptConfigList, hospitalIdVO);
- throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "校验失败,导入数据不能为空");
- public Boolean importExcelRecords(List<DeptConfig> deptConfigList, HospitalIdVO hospitalIdVO) {
- Long hospitalId = hospitalIdVO.getHospitalId();
- //1、数据完整性校验
- //2、去除前后空格
- //过滤空数据,保留重复数据,方便计行
- deptConfigList = deptConfigList.stream()
- .filter(DeptConfig::nonNull)
- deptConfig.setHospitalId(hospitalIdVO.getHospitalId());
- List<String> emptyNumList = Lists.newLinkedList();
- for (int i = 0; i < deptConfigList.size(); i++) {
- if (StringUtil.isBlank(deptConfigList.get(i).getHisName())
- || StringUtil.isBlank(deptConfigList.get(i).getUniqueName())) {
- emptyNumList.add(String.valueOf(i + 2));
- if (StringUtil.isNotBlank(deptConfigList.get(i).getHisName())) {
- deptConfigList.get(i).setHisName(deptConfigList.get(i).getHisName().trim());
- if (StringUtil.isNotBlank(deptConfigList.get(i).getHisCode())) {
- deptConfigList.get(i).setHisCode(deptConfigList.get(i).getHisCode().trim());
- if (StringUtil.isNotBlank(deptConfigList.get(i).getUniqueName())) {
- deptConfigList.get(i).setUniqueName(deptConfigList.get(i).getUniqueName().trim());
- if (StringUtil.isNotBlank(deptConfigList.get(i).getUniqueCode())) {
- deptConfigList.get(i).setUniqueCode(deptConfigList.get(i).getUniqueCode().trim());
- deptConfigList.get(i).setUniqueCode(null);
- if (ListUtil.isNotEmpty(emptyNumList)) {
- throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "以下行数(不计入空行)存在不完整数据:"
- + emptyNumList.stream().collect(Collectors.joining("、"))
- + "。导入取消,请修改后再试。\n");
- synchronized (this) {
- = getConfigMap(Long.valueOf(hospitalId), null, null);
- deptConfig.setHospitalId(hospitalId);
- //标准术语校验
- List<String> errorNumList = Lists.newLinkedList();
- List<String> uniqueNames = deptConfigList.stream()
- .map(i -> i.getUniqueName())
- .distinct()
- ConceptVO conceptVO = new ConceptVO();
- conceptVO.setNames(uniqueNames);
- conceptVO.setType(ConceptTypeEnum.Dept.getKey());
- RespDTO<List<IndexBatchDTO>> respDTO = cdssCoreClient.getConceptNames(conceptVO);
- RespDTOUtil.respNGDealCover(respDTO, "标准术语校验失败");
- List<String> names = respDTO.data.stream().map(IndexBatchDTO::getName).collect(Collectors.toList());
- if (!names.contains(deptConfigList.get(i).getUniqueName())) {
- errorNumList.add(String.valueOf(i + 2));
- if (ListUtil.isNotEmpty(errorNumList)) {
- throw new CommonException(CommonErrorCode.PARAM_IS_NULL,
- "以下行数(不计空行)标准术语在数据库中不存在:"
- + errorNumList.stream().collect(Collectors.joining("、"))
- + "。导入取消,请修改后再试。");
- //重复数据过滤
- * 获取映射关系-公表名
- * @param hospitalId
- * @param hisNames
- * @param uniqueNames
- public Map<String, Map<String, List<Long>>> getConfigMap(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
- Map<String, Map<String, List<Long>>> retMap = new HashMap<>();
- .eq("hospital_id", hospitalId);
- if (ListUtil.isNotEmpty(hisNames)) {
- queryWrapper.in("his_name", hisNames);
- if (ListUtil.isNotEmpty(uniqueNames)) {
- queryWrapper.in("unique_name", uniqueNames);
- List<DeptConfig> records = deptConfigService.list(queryWrapper);
- if (ListUtil.isEmpty(records)) {
- return retMap;
- Map<String, List<DeptConfig>> configMap = EntityUtil.makeEntityListMap(records, "hisName");
- for (Map.Entry<String, List<DeptConfig>> entry : configMap.entrySet()) {
- if (ListUtil.isNotEmpty(entry.getValue())) {
- Map<String, List<DeptConfig>> subMap = EntityUtil.makeEntityListMap(entry.getValue(), "uniqueName");
- Map<String, List<Long>> subIdMap = new HashMap<>();
- for (Map.Entry<String, List<DeptConfig>> subEntry : subMap.entrySet()) {
- subIdMap.put(subEntry.getKey(), subEntry.getValue().stream().map(i -> i.getId()).distinct().collect(Collectors.toList()));
- retMap.put(entry.getKey(), subIdMap);
- * 数据导出
- * @param response
- public void exportExcel(HttpServletResponse response, HospitalIdVO hospitalIdVO) {
- .eq("hospital_id", hospitalIdVO.getHospitalId())
- .orderByDesc("gmt_modified");
- String fileName = "科室映射.xls";
- ExcelUtils.exportExcel(records, null, "sheet1", DeptConfig.class, fileName, response, 12.8f);
- * 各医院映射关系数列表
- * @param hosRelationNumPageVO
- public IPage<HosRelationNumDTO> getRelationNumPage(HosRelationNumPageVO hosRelationNumPageVO) {
- return deptConfigService.getRelationNumPage(hosRelationNumPageVO);
- * 数据导入模板导出
- public void exportExcelModule(HttpServletResponse response) {
- String fileName = "科室映射模板.xls";
- ExcelUtils.exportExcel(new ArrayList<>(), null, "sheet1", DeptConfig.class, fileName, response, 12.8f);
- * 导入数据预匹配
- public void precDataMatch(MultipartFile file, HttpServletResponse response) {
- List<DeptConfig> originList = ExcelUtils.importExcel(file, 0, 1, DeptConfig.class);
- List<DeptConfig> retList = dataProcess(originList);
- String fileName = "科室关联数据(预匹配).xls";
- ExcelUtils.exportExcel(retList, null, "sheet1", DeptConfig.class, fileName, response, 12.8f);
- * 导入数据验证
- public Boolean dataVerify(MultipartFile file) {
- * 数据处理
- * @param originList
- public List<DeptConfig> dataProcess(List<DeptConfig> originList) {
- List<DeptConfig> retList = Lists.newLinkedList();
- List<String> hisNameList = originList.stream().map(i -> i.getHisName()).distinct().collect(Collectors.toList());
- Map<String, List<DeptConfig>> allMap = getAll(hisNameList);
- if (ListUtil.isEmpty(originList)) {
- return retList;
- //去除空行
- originList = originList.stream().filter(DeptConfig::nonNull).collect(Collectors.toList());
- //去除空格
- originList.forEach(item -> {
- item.setHisName(item.getHisName().trim());
- //获取标准术语
- List<String> precUniqueName = Lists.newArrayList();
- if (allMap != null) {
- for (Map.Entry<String, List<DeptConfig>> entry : allMap.entrySet()) {
- precUniqueName.addAll(entry.getValue().stream().map(i -> i.getUniqueName()).collect(Collectors.toList()));
- precUniqueName = precUniqueName.stream().distinct().collect(Collectors.toList());
- conceptVO.setNames(precUniqueName);
- List<String> uniqueNames = respDTO.data.stream().map(IndexBatchDTO::getName).collect(Collectors.toList());
- if (ListUtil.isNotEmpty(originList)) {
- for (DeptConfig originItem : originList) {
- if (allMap.containsKey(originItem.getHisName())) {
- List<DeptConfig> items = allMap.get(originItem.getHisName());
- boolean flag = false;
- for (DeptConfig item : items) {
- if (uniqueNames.contains(item.getUniqueName())) {
- item.setHisCode(originItem.getHisCode());
- retList.add(item);
- flag = true;
- if (!flag) {
- retList.add(originItem);
- retList = retList.stream()
- * 获取所有医院映射数据
- public Map<String, List<DeptConfig>> getAll(List<String> hisNameList) {
- Map<String, List<DeptConfig>> retMap = new HashMap<>();
- if (ListUtil.isNotEmpty(hisNameList)) {
- queryWrapper.in("his_name", hisNameList);
- records.forEach(record -> {
- record.setHospitalId(null);
- record.setId(null);
- record.setUniqueCode(StringUtils.isBlank(record.getUniqueCode()) ? "" : record.getUniqueCode());
- records = records
- .filter(record -> record.getIsDeleted().equals(IsDeleteEnum.N.getKey()))
- retMap = EntityUtil.makeEntityListMap(records, "hisName");
- * 查找指定医院映射关系
- public List<DeptConfig> getListByHospitalId(Long hospitalId) {
- return deptConfigService.list(queryWrapper);
@@ -1,601 +0,0 @@
-import com.diagbot.entity.DiseaseConfig;
-import com.diagbot.service.DiseaseConfigService;
-import com.diagbot.vo.DiseaseConfigListVO;
-import com.diagbot.vo.DiseaseConfigPageVO;
- * @time: 2020/7/29 15:05
-public class DiseaseConfigFacade {
- private DiseaseConfigService diseaseConfigService;
- * @param diseaseConfig
- public Boolean isExistRecord(DiseaseConfig diseaseConfig) {
- QueryWrapper<DiseaseConfig> queryWrapper = new QueryWrapper<>();
- .eq("hospital_id", diseaseConfig.getHospitalId())
- .eq("his_name", diseaseConfig.getHisName())
- .eq("unique_name", diseaseConfig.getUniqueName());
- DiseaseConfig oldRecord = diseaseConfigService.getOne(queryWrapper, false);
- if (diseaseConfig.getId() == null
- if (diseaseConfig.getId() != null
- && !diseaseConfig.getId().equals(oldRecord.getId())) {
- public Boolean saveOrUpdateRecord(DiseaseConfig diseaseConfig) {
- diseaseConfig.setModifier(userId);
- diseaseConfig.setGmtModified(now);
- if (diseaseConfig.getId() == null) {
- diseaseConfig.setCreator(userId);
- diseaseConfig.setGmtCreate(now);
- if (diseaseConfig.getIsDeleted() == null) {
- diseaseConfig.setIsDeleted(IsDeleteEnum.N.getKey());
- diseaseConfigService.saveOrUpdate(diseaseConfig);
- * @param diseaseConfigListVO
- public Boolean saveOrUpdateRecords(DiseaseConfigListVO diseaseConfigListVO) {
- if (ListUtil.isEmpty(diseaseConfigListVO.getDiseaseConfigList())) {
- return saveOrUpdateRecords(diseaseConfigListVO.getDiseaseConfigList());
- * @param diseaseConfigList
- public Boolean saveOrUpdateRecords(List<DiseaseConfig> diseaseConfigList) {
- if (ListUtil.isEmpty(diseaseConfigList)) {
- diseaseConfigList = diseaseConfigList
- Long hospitalId = diseaseConfigList.get(0).getHospitalId();
- diseaseConfigList.forEach(diseaseConfig -> {
- if (configMap.containsKey(diseaseConfig.getHisName())
- && ListUtil.isNotEmpty(configMap.get(diseaseConfig.getHisName()).get(diseaseConfig.getUniqueName()))) {
- deleteIds.addAll(configMap.get(diseaseConfig.getHisName()).get(diseaseConfig.getUniqueName()));
- diseaseConfigService.saveOrUpdateBatch(diseaseConfigList);
- diseaseConfigService.removeById(idVO.getId());
- diseaseConfigService.removeByIds(idListVO.getIds());
- * @param diseaseConfigPageVO
- public IPage<DiseaseConfig> getPage(DiseaseConfigPageVO diseaseConfigPageVO) {
- return diseaseConfigService.getPage(diseaseConfigPageVO);
- List<DiseaseConfig> diseaseConfigList = ExcelUtils.importExcel(file, 0, 1, DiseaseConfig.class);
- if (ListUtil.isNotEmpty(diseaseConfigList)) {
- importExcelRecords(diseaseConfigList, hospitalIdVO);
- public Boolean importExcelRecords(List<DiseaseConfig> diseaseConfigList, HospitalIdVO hospitalIdVO) {
- diseaseConfigList = diseaseConfigList.stream()
- .filter(DiseaseConfig::nonNull)
- diseaseConfig.setHospitalId(hospitalIdVO.getHospitalId());
- for (int i = 0; i < diseaseConfigList.size(); i++) {
- if (StringUtil.isBlank(diseaseConfigList.get(i).getHisName())
- || StringUtil.isBlank(diseaseConfigList.get(i).getUniqueName())) {
- if (StringUtil.isNotBlank(diseaseConfigList.get(i).getHisName())) {
- diseaseConfigList.get(i).setHisName(diseaseConfigList.get(i).getHisName().trim());
- if (StringUtil.isNotBlank(diseaseConfigList.get(i).getUniqueName())) {
- diseaseConfigList.get(i).setUniqueName(diseaseConfigList.get(i).getUniqueName().trim());
- if (StringUtil.isNotBlank(diseaseConfigList.get(i).getIcdCode())) {
- diseaseConfigList.get(i).setIcdCode(diseaseConfigList.get(i).getIcdCode().trim());
- diseaseConfigList.get(i).setIcdCode(null);
- diseaseConfig.setHospitalId(Long.valueOf(hospitalId));
- List<String> uniqueNames = diseaseConfigList.stream()
- conceptVO.setType(ConceptTypeEnum.Disease.getKey());
- if (!names.contains(diseaseConfigList.get(i).getUniqueName())) {
- List<DiseaseConfig> records = diseaseConfigService.list(queryWrapper);
- Map<String, List<DiseaseConfig>> configMap = EntityUtil.makeEntityListMap(records, "hisName");
- for (Map.Entry<String, List<DiseaseConfig>> entry : configMap.entrySet()) {
- Map<String, List<DiseaseConfig>> subMap = EntityUtil.makeEntityListMap(entry.getValue(), "uniqueName");
- for (Map.Entry<String, List<DiseaseConfig>> subEntry : subMap.entrySet()) {
- public Map<String, Map<String, List<Long>>> getUniqueConfigMap(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
- Map<String, List<DiseaseConfig>> configMap = EntityUtil.makeEntityListMap(records, "uniqueName");
- Map<String, List<DiseaseConfig>> subMap = EntityUtil.makeEntityListMap(entry.getValue(), "hisName");
- String fileName = "疾病映射.xls";
- ExcelUtils.exportExcel(records, null, "sheet1", DiseaseConfig.class, fileName, response, 12.8f);
- return diseaseConfigService.getRelationNumPage(hosRelationNumPageVO);
- String fileName = "疾病映射模板.xls";
- ExcelUtils.exportExcel(new ArrayList<>(), null, "sheet1", DiseaseConfig.class, fileName, response, 12.8f);
- List<DiseaseConfig> originList = ExcelUtils.importExcel(file, 0, 1, DiseaseConfig.class);
- List<DiseaseConfig> retList = dataProcess(originList);
- String fileName = "诊断关联数据(预匹配).xls";
- ExcelUtils.exportExcel(retList, null, "sheet1", DiseaseConfig.class, fileName, response, 12.8f);
- public List<DiseaseConfig> dataProcess(List<DiseaseConfig> originList) {
- List<DiseaseConfig> retList = Lists.newLinkedList();
- Map<String, List<DiseaseConfig>> allMap = getAll(hisNameList);
- originList = originList.stream().filter(DiseaseConfig::nonNull).collect(Collectors.toList());
- for (Map.Entry<String, List<DiseaseConfig>> entry : allMap.entrySet()) {
- List<IndexBatchDTO> uniqueNameList = respDTO.data;
- Map<String, IndexBatchDTO> uniqueMap = uniqueNameList.stream().collect(Collectors.toMap(IndexBatchDTO::getName, v -> v));
- //List<String> uniqueNames = respDTO.data.stream().map(IndexBatchDTO::getName).collect(Collectors.toList());
- for (DiseaseConfig originItem : originList) {
- List<DiseaseConfig> items = allMap.get(originItem.getHisName());
- for (DiseaseConfig item : items) {
- if (uniqueMap.containsKey(item.getUniqueName())) {
- item.setIcdCode(uniqueMap.get(item.getUniqueName()).getCode());
- public Map<String, List<DiseaseConfig>> getAll(List<String> hisNameList) {
- Map<String, List<DiseaseConfig>> retMap = new HashMap<>();
- record.setIcdCode(StringUtils.isBlank(record.getIcdCode()) ? null : record.getIcdCode());
- public List<DiseaseConfig> getListByHospitalId(Long hospitalId) {
- return diseaseConfigService.list(queryWrapper);
@@ -1,858 +0,0 @@
-import com.diagbot.entity.DrugConfig;
-import com.diagbot.service.DrugConfigService;
-import com.diagbot.vo.DrugConfigListVO;
-import com.diagbot.vo.DrugConfigPageVO;
- * @time: 2020/7/29 15:04
-public class DrugConfigFacade {
- private DrugConfigService drugConfigService;
- private DictionaryFacade dictionaryFacade;
- * @param drugConfig
- public Boolean isExistRecord(DrugConfig drugConfig) {
- QueryWrapper<DrugConfig> queryWrapper = new QueryWrapper<>();
- .eq("hospital_id", drugConfig.getHospitalId())
- .eq("his_name", drugConfig.getHisName())
- .eq("unique_name", drugConfig.getUniqueName());
- if (StringUtil.isBlank(drugConfig.getForm())) {
- queryWrapper.and(i -> i.isNull("form")
- .eq("form", ""));
- queryWrapper.eq("form", drugConfig.getForm());
- DrugConfig oldRecord = drugConfigService.getOne(queryWrapper, false);
- if (drugConfig.getId() == null
- if (drugConfig.getId() != null
- && !drugConfig.getId().equals(oldRecord.getId())) {
- public Boolean saveOrUpdateRecord(DrugConfig drugConfig) {
- drugConfig.setModifier(userId);
- drugConfig.setGmtModified(now);
- if (drugConfig.getId() == null) {
- drugConfig.setCreator(userId);
- drugConfig.setGmtCreate(now);
- if (drugConfig.getIsDeleted() == null) {
- drugConfig.setIsDeleted(IsDeleteEnum.N.getKey());
- drugConfigService.saveOrUpdate(drugConfig);
- * @param drugConfigListVO
- public Boolean saveOrUpdateRecords(DrugConfigListVO drugConfigListVO) {
- if (ListUtil.isEmpty(drugConfigListVO.getDrugConfigList())) {
- return saveOrUpdateRecords(drugConfigListVO.getDrugConfigList());
- * @param drugConfigList
- public Boolean saveOrUpdateRecords(List<DrugConfig> drugConfigList) {
- if (ListUtil.isEmpty(drugConfigList)) {
- drugConfigList = drugConfigList
- Long hospitalId = drugConfigList.get(0).getHospitalId();
- List<String> hisNames = drugConfigList
- .map(i -> i.getHisName())
- List<String> uniqueNames = drugConfigList
- Map<String, Map<String, Map<String, List<Long>>>> configMap
- = getConfigMap(hospitalId, hisNames, uniqueNames);
- drugConfigList.forEach(drugConfig -> {
- drugConfig.setHospitalId(Long.valueOf(hospitalId));
- String form = StringUtil.isBlank(drugConfig.getForm()) ? "" : drugConfig.getForm();
- if (configMap.get(drugConfig.getHisName()) != null
- && configMap.get(drugConfig.getHisName()).get(form) != null
- && ListUtil.isNotEmpty(configMap.get(drugConfig.getHisName()).get(form).get(drugConfig.getUniqueName()))) {
- deleteIds.addAll(configMap.get(drugConfig.getHisName()).get(form).get(drugConfig.getUniqueName()));
- drugConfigService.saveOrUpdateBatch(drugConfigList);
- UpdateWrapper<DrugConfig> updateWrapper = new UpdateWrapper<>();
- drugConfigService.removeById(idVO.getId());
- drugConfigService.removeByIds(idListVO.getIds());
- * @param drugConfigPageVO
- public IPage<DrugConfig> getPage(DrugConfigPageVO drugConfigPageVO) {
- return drugConfigService.getPage(drugConfigPageVO);
- List<DrugConfig> drugConfigList = ExcelUtils.importExcel(file, 1, 1, DrugConfig.class);
- if (ListUtil.isNotEmpty(drugConfigList)) {
- importExcelRecords(drugConfigList, hospitalIdVO);
- public Boolean importExcelRecords(List<DrugConfig> drugConfigList,HospitalIdVO hospitalIdVO) {
- drugConfigList = drugConfigList.stream()
- .filter(DrugConfig::nonNull)
- drugConfig.setHospitalId(hospitalIdVO.getHospitalId());
- //药品剂型
- List<DictionaryInfoDTO> dicTypeMappingList = dictionaryFacade.getListByGroupType(9);
- List<String> formList = dicTypeMappingList.stream()
- .filter(i -> StringUtil.isNotBlank(i.getName()))
- .map(i -> i.getName())
- List<String> formErrNumList = Lists.newLinkedList();
- for (int i = 0; i < drugConfigList.size(); i++) {
- if (StringUtil.isBlank(drugConfigList.get(i).getHisName())
- || StringUtil.isBlank(drugConfigList.get(i).getUniqueName())) {
- emptyNumList.add(String.valueOf(i + 3));
- if (StringUtil.isNotBlank(drugConfigList.get(i).getHisName())) {
- drugConfigList.get(i).setHisName(drugConfigList.get(i).getHisName().trim());
- if (StringUtil.isNotBlank(drugConfigList.get(i).getUniqueName())) {
- drugConfigList.get(i).setUniqueName(drugConfigList.get(i).getUniqueName().trim());
- if (StringUtil.isNotBlank(drugConfigList.get(i).getForm())) {
- if (!formList.contains(drugConfigList.get(i).getForm())) {
- formErrNumList.add(String.valueOf(i + 3));
- drugConfigList.get(i).setForm(drugConfigList.get(i).getForm().trim());
- if (StringUtil.isNotBlank(drugConfigList.get(i).getUniqueCode())) {
- drugConfigList.get(i).setUniqueCode(drugConfigList.get(i).getUniqueCode().trim());
- drugConfigList.get(i).setUniqueCode(null);
- if (ListUtil.isNotEmpty(formErrNumList)) {
- throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "以下行数(不计入空行)药品剂型与数据库药品剂型不匹配:"
- + formErrNumList.stream().collect(Collectors.joining("、"))
- = getConfigMap(Long.valueOf(hospitalId), hisNames, uniqueNames);
- conceptVO.setType(ConceptTypeEnum.Drug.getKey());
- if (!names.contains(drugConfigList.get(i).getUniqueName())) {
- * @return Map<hisName,Map<form,Map<uniqueName,id>>>
- public Map<String, Map<String,Map<String, List<Long>>>> getConfigMap(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
- Map<String, Map<String, Map<String, List<Long>>>> retMap = new HashMap<>();
- List<DrugConfig> records = drugConfigService.list(queryWrapper);
- Map<String, List<DrugConfig>> hisNameMap = EntityUtil.makeEntityListMap(records, "hisName");
- for (Map.Entry<String, List<DrugConfig>> entry : hisNameMap.entrySet()) {
- Map<String, Map<String, List<Long>>> formMap = new HashMap<>();
- entry.getValue().forEach(i -> {
- if (StringUtil.isBlank(i.getForm())) {
- i.setForm("");
- Map<String, List<DrugConfig>> subMap
- = EntityUtil.makeEntityListMap(entry.getValue(), "form");
- for (Map.Entry<String, List<DrugConfig>> subEntry : subMap.entrySet()) {
- if (ListUtil.isNotEmpty(subEntry.getValue())) {
- Map<String, List<DrugConfig>> thirdMap = EntityUtil.makeEntityListMap(subEntry.getValue(), "uniqueName");
- Map<String, List<Long>> idMap = new HashMap<>();
- for (Map.Entry<String, List<DrugConfig>> thirdEntry : thirdMap.entrySet()) {
- idMap.put(thirdEntry.getKey(), thirdEntry.getValue().stream().map(i -> i.getId()).distinct().collect(Collectors.toList()));
- formMap.put(subEntry.getKey(), idMap);
- retMap.put(entry.getKey(), formMap);
- * @return Map<uniqueName,Map<form,Map<hisName,List<id>>>>
- public Map<String, Map<String,Map<String, List<Long>>>> getUniqueFormConfigMap(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
- if (StringUtil.isBlank(record.getForm())) {
- record.setForm("");
- Map<String, List<DrugConfig>> uniqueNameMap = EntityUtil.makeEntityListMap(records, "uniqueName");
- for (Map.Entry<String, List<DrugConfig>> entry : uniqueNameMap.entrySet()) {
- Map<String, Map<String, List<Long>>> subMap = new HashMap<>();
- Map<String, List<DrugConfig>> hisNameMap
- for (Map.Entry<String, List<DrugConfig>> hisEntry : hisNameMap.entrySet()) {
- if (ListUtil.isNotEmpty(hisEntry.getValue())) {
- Map<String, List<DrugConfig>> thirdMap = EntityUtil.makeEntityListMap(hisEntry.getValue(), "hisName");
- subMap.put(hisEntry.getKey(), idMap);
- retMap.put(entry.getKey(), subMap);
- * @return Map<uniqueName,Map<hisName,Map<form,List<id>>>>
- public Map<String, Map<String,Map<String, List<Long>>>> getUniqueConfigMap(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
- = EntityUtil.makeEntityListMap(entry.getValue(), "hisName");
- Map<String, List<DrugConfig>> thirdMap = EntityUtil.makeEntityListMap(hisEntry.getValue(), "form");
- * @return Map<hisName,Map<uniqueName,id>>
- public Map<String, Map<String,Long>> getConfigMapWithoutForm(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
- Map<String, Map<String, Long>> retMap = new HashMap<>();
- = EntityUtil.makeEntityListMap(records, "hisName");
- retMap.put(entry.getKey(),
- EntityUtil.makeMapWithKeyValue(entry.getValue(), "uniqueName", "id"));
- * 获取映射关系
- * Map<uniqueName,Map<hisName,id>>
- public Map<String,Map<String,Long>> getUniqueNameConfigMapWithoutForm(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
- records.forEach(i -> {
- Map<String, List<DrugConfig>> uniqueNameMap
- = EntityUtil.makeEntityListMap(records, "uniqueName");
- EntityUtil.makeMapWithKeyValue(entry.getValue(), "hisName", "id"));
- String fileName = "药品映射.xls";
- ExcelUtils.exportExcel(records, getFrom(), "sheet1", DrugConfig.class, fileName, response, 12.8f);
- return drugConfigService.getRelationNumPage(hosRelationNumPageVO);
- String fileName = "药品映射模板.xls";
- ExcelUtils.exportExcel(new ArrayList<>(), getFrom(), "sheet1", DrugConfig.class, fileName, response, 12.8f);
- * 剂型说明
- private String getFrom() {
- String from = "药品模板——药品剂型填写说明[不填";
- if (ListUtil.isNotEmpty(formList)) {
- for (String s : formList) {
- if (StringUtil.isNotBlank(s)) {
- from += "、" + s;
- from += "]";
- return from;
- public void precDataMatch(MultipartFile file,HttpServletResponse response) {
- List<DrugConfig> originList = ExcelUtils.importExcel(file, 1, 1, DrugConfig.class);
- List<DrugConfig> retList = dataProcess(originList);
- String fileName = "药品关联数据(预匹配).xls";
- ExcelUtils.exportExcel(retList, getFrom(), "sheet1", DrugConfig.class, fileName, response, 12.8f);
- public List<DrugConfig> dataProcess(List<DrugConfig> originList) {
- List<DrugConfig> retList = Lists.newLinkedList();
- Map<String, List<DrugConfig>> allMap = getAll(hisNameList);
- originList = originList.stream().filter(DrugConfig::nonNull).collect(Collectors.toList());
- for (Map.Entry<String, List<DrugConfig>> entry : allMap.entrySet()) {
- for (DrugConfig originItem : originList) {
- List<DrugConfig> items = allMap.get(originItem.getHisName());
- for (DrugConfig item : items) {
- if (!formList.contains(item.getForm())) {
- item.setForm("");
- if (!formList.contains(originItem.getForm())) {
- originItem.setForm("");
- public Map<String,List<DrugConfig>> getAll(List<String> hisNameList) {
- Map<String, List<DrugConfig>> retMap = new HashMap<>();
- record.setForm(StringUtils.isBlank(record.getForm()) ? null : record.getForm());
- public List<DrugConfig> getListByHospitalId(Long hospitalId) {
- return drugConfigService.list(queryWrapper);
@@ -4,53 +4,44 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.diagbot.dto.HospitalInfoDTO;
+import com.diagbot.dto.HospitalInfoGetDTO;
+import com.diagbot.dto.HospitalInfoPageDTO;
+import com.diagbot.dto.HospitalRelationDTO;
+import com.diagbot.dto.HospitalRelationErrorDTO;
import com.diagbot.entity.HospitalInfo;
-import com.diagbot.entity.LisConfig;
-import com.diagbot.entity.NurseConfig;
-import com.diagbot.entity.OperationConfig;
-import com.diagbot.entity.PacsConfig;
import com.diagbot.entity.Plan;
-import com.diagbot.entity.ScaleConfig;
-import com.diagbot.entity.TcmdiseaseConfig;
-import com.diagbot.entity.TcmsyndromeConfig;
-import com.diagbot.entity.TransfusionConfig;
+import com.diagbot.entity.TranHospitalRelation;
import com.diagbot.enums.IsDeleteEnum;
import com.diagbot.exception.CommonErrorCode;
import com.diagbot.exception.CommonException;
import com.diagbot.service.HospitalInfoService;
-import com.diagbot.service.LisConfigService;
-import com.diagbot.service.NurseConfigService;
-import com.diagbot.service.OperationConfigService;
-import com.diagbot.service.PacsConfigService;
-import com.diagbot.service.ScaleConfigService;
-import com.diagbot.service.TcmdiseaseConfigService;
-import com.diagbot.service.TcmsyndromeConfigService;
-import com.diagbot.service.TransfusionConfigService;
+import com.diagbot.service.TranHospitalRelationService;
import com.diagbot.service.impl.HospitalInfoServiceImpl;
import com.diagbot.util.BeanUtil;
import com.diagbot.util.Cn2SpellUtil;
import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
import com.diagbot.util.ListUtil;
import com.diagbot.util.UserUtils;
import com.diagbot.vo.ChangeStatusVO;
+import com.diagbot.vo.HospitalInfoGetVO;
import com.diagbot.vo.HospitalInfoListVO;
import com.diagbot.vo.HospitalInfoPageVO;
+import com.diagbot.vo.HospitalInfoSaveVO;
import com.diagbot.vo.HospitalSaveVO;
import com.diagbot.vo.IdListVO;
import com.diagbot.vo.IdVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -66,29 +57,12 @@ public class HospitalInfoFacade extends HospitalInfoServiceImpl {
@Qualifier("hospitalInfoServiceImpl")
private HospitalInfoService hospitalInfoService;
@Autowired
- private LisConfigService lisConfigService;
- private OperationConfigService operationConfigService;
- private PacsConfigService pacsConfigService;
- private TransfusionConfigService transfusionConfigService;
- private ScaleConfigService scaleConfigService;
- private NurseConfigService nurseConfigService;
- private TcmdiseaseConfigService tcmdiseaseConfigService;
- private TcmsyndromeConfigService tcmsyndromeConfigService;
+ private MappingConfigFacade mappingConfigFacade;
private PlanFacade planFacade;
+ @Autowired
+ @Qualifier("tranHospitalRelationServiceImpl")
+ TranHospitalRelationService tranHospitalRelationService;
public List<HospitalInfoDTO> getHospitalInfo() {
QueryWrapper<HospitalInfo> hospitalInfo = new QueryWrapper<>();
@@ -99,47 +73,53 @@ public class HospitalInfoFacade extends HospitalInfoServiceImpl {
return data;
+ * 根据ID获取医院信息
+ * @param hospitalInfoGetVO
+ public HospitalInfoGetDTO getById(HospitalInfoGetVO hospitalInfoGetVO) {
+ HospitalInfo hospitalInfo = this.getOne(new QueryWrapper<HospitalInfo>()
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
+ .eq("id", hospitalInfoGetVO.getId()), false);
+ if (hospitalInfo == null) {
+ throw new CommonException(CommonErrorCode.NOT_EXISTS, "数据不存在");
+ HospitalInfoGetDTO hospitalInfoGetDTO = new HospitalInfoGetDTO();
+ BeanUtil.copyProperties(hospitalInfo, hospitalInfoGetDTO);
+ List<TranHospitalRelation> relationList = tranHospitalRelationService.list(new QueryWrapper<TranHospitalRelation>()
+ .eq("hospital_id", hospitalInfoGetVO.getId()));
+ List<HospitalRelationDTO> hospitalRelationDTOS = BeanUtil.listCopyTo(relationList, HospitalRelationDTO.class);
+ hospitalInfoGetDTO.setHospitalRelationDTOList(hospitalRelationDTOS);
+ return hospitalInfoGetDTO;
* 保存记录-单条
- * @param hospitalInfo
+ * @param hospitalInfoSaveVO
- public Boolean saveOrUpdateRecord(HospitalInfo hospitalInfo) {
+ public HospitalRelationErrorDTO saveOrUpdateRecord(HospitalInfoSaveVO hospitalInfoSaveVO) {
+ HospitalRelationErrorDTO res = new HospitalRelationErrorDTO(); // 返回类
String userId = UserUtils.getCurrentPrincipleID();
+ HospitalInfo hospitalInfo = new HospitalInfo();
+ BeanUtil.copyProperties(hospitalInfoSaveVO, hospitalInfo);
Date now = DateUtil.now();
hospitalInfo.setModifier(userId);
hospitalInfo.setGmtModified(now);
- QueryWrapper<HospitalInfo> queryWrapper = new QueryWrapper<>();
if (StringUtil.isNotBlank(hospitalInfo.getName())) {
- queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
- queryWrapper.eq("name", hospitalInfo.getName());
- HospitalInfo oldRecord = this.getOne(queryWrapper, false);
- if (hospitalInfo.getId() == null
- throw new CommonException(CommonErrorCode.IS_EXISTS, "该医院名称已存在");
- if (hospitalInfo.getId() != null
- && !hospitalInfo.getId().equals(oldRecord.getId())) {
+ HospitalInfo oldRecord = this.getOne(new QueryWrapper<HospitalInfo>()
+ .eq("name", hospitalInfo.getName())
+ .ne("id", hospitalInfo.getId() == null ? -999 : hospitalInfo.getId()), false);
+ if (oldRecord != null) {
throw new CommonException(CommonErrorCode.IS_EXISTS, "该医院名称已存在");
- /*if (StringUtil.isNotBlank(hospitalInfo.getCode())) {
- queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("code", hospitalInfo.getCode());
- throw new CommonException(CommonErrorCode.IS_EXISTS, "该医院编码已存在");
//新增数据
if (hospitalInfo.getId() == null) {
@@ -150,11 +130,57 @@ public class HospitalInfoFacade extends HospitalInfoServiceImpl {
if (StringUtil.isBlank(hospitalInfo.getSpell())) {
hospitalInfo.setSpell(Cn2SpellUtil.converterToFirstSpell(hospitalInfo.getName()));
- if (hospitalInfo.getIsDeleted() == null) {
- hospitalInfo.setIsDeleted(IsDeleteEnum.N.getKey());
this.saveOrUpdate(hospitalInfo);
+ List<TranHospitalRelation> saveRelationList = Lists.newArrayList();
+ // 获取子医院
+ List<HospitalRelationVO> hospitalRelationVOList = hospitalInfoSaveVO.getHospitalRelationVOList();
+ // 校验name+code唯一性
+ List<TranHospitalRelation> tranHospitalRelationList = tranHospitalRelationService.list(new QueryWrapper<TranHospitalRelation>()
+ );
+ Map<String, Long> relationMap = tranHospitalRelationList.stream().collect(Collectors.toMap(k -> k.getName() + "_" + k.getCode(), v -> v.getHospitalId(), (v1, v2) -> (v2), LinkedHashMap::new));
+ List<String> keyExist = Lists.newArrayList(); // 避免重复数据返回
+ List<String> keyAll = Lists.newArrayList(); // 当前医院所有key
+ List<HospitalRelationVO> errorOther = Lists.newArrayList(); // 与其他医院重复
+ List<HospitalRelationVO> errorCurrent = Lists.newArrayList(); // 当前医院重复
+ for (HospitalRelationVO hospitalRelationVO : hospitalRelationVOList) {
+ // 联合key
+ String unionKey = hospitalRelationVO.getName() + "_" + hospitalRelationVO.getCode();
+ // 判断当前医院重复
+ if (keyAll.contains(unionKey)) {
+ errorCurrent.add(hospitalRelationVO);
+ // 判断与其他医院重复
+ Long hospitalId = relationMap.get(unionKey);
+ if (hospitalId != null && !hospitalId.equals(hospitalInfo.getId()) && !keyExist.contains(unionKey)) {
+ errorOther.add(hospitalRelationVO);
+ keyExist.add(unionKey);
+ } else {
+ TranHospitalRelation tranHospitalRelation = new TranHospitalRelation();
+ BeanUtil.copyProperties(hospitalRelationVO, tranHospitalRelation);
+ tranHospitalRelation.setHospitalId(hospitalInfo.getId());
+ tranHospitalRelation.setCreator(userId);
+ tranHospitalRelation.setModifier(userId);
+ tranHospitalRelation.setGmtCreate(now);
+ tranHospitalRelation.setGmtModified(now);
+ saveRelationList.add(tranHospitalRelation);
+ // 有错误,直接返回
+ if (ListUtil.isNotEmpty(errorOther) || ListUtil.isNotEmpty(errorCurrent)) {
+ res.setErrorOther(errorOther);
+ res.setErrorCurrent(errorCurrent);
+ return res;
+ // 先删除子医院关联表
+ tranHospitalRelationService.remove(new QueryWrapper<TranHospitalRelation>().eq("hospital_id", hospitalInfo.getId()));
+ // 插入子医院关联表
+ tranHospitalRelationService.saveBatch(saveRelationList);
@@ -190,7 +216,8 @@ public class HospitalInfoFacade extends HospitalInfoServiceImpl {
public Boolean deleteRecord(IdVO idVO) {
- HospitalInfo hospitalInfo = hospitalInfoService.getById(idVO.getId());
+ Long id = idVO.getId();
+ HospitalInfo hospitalInfo = hospitalInfoService.getById(id);
if (hospitalInfo == null) {
throw new CommonException(CommonErrorCode.NOT_EXISTS, "数据不存在");
@@ -198,97 +225,37 @@ public class HospitalInfoFacade extends HospitalInfoServiceImpl {
throw new CommonException(CommonErrorCode.NOT_EXISTS, "数据已删除");
- //校验关联数据
- List<DeptConfig> deptConfigList
- = deptConfigService.list(new QueryWrapper<DeptConfig>()
+ List<MappingConfig> mappingConfigList
+ = mappingConfigFacade.list(new QueryWrapper<MappingConfig>()
.eq("is_deleted", IsDeleteEnum.N.getKey())
- .eq("hospital_id", idVO.getId()));
- throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该医院存在关联数据,无法删除");
- List<DiseaseConfig> diseaseConfigList
- = diseaseConfigService.list(new QueryWrapper<DiseaseConfig>()
- .eq("is_deleted", IsDeleteEnum.N.getKey())
- List<DrugConfig> drugConfigList
- = drugConfigService.list(new QueryWrapper<DrugConfig>()
- List<LisConfig> lisConfigList
- = lisConfigService.list(new QueryWrapper<LisConfig>()
- if (ListUtil.isNotEmpty(lisConfigList)) {
- List<OperationConfig> operationConfigList
- = operationConfigService.list(new QueryWrapper<OperationConfig>()
- if (ListUtil.isNotEmpty(operationConfigList)) {
- List<PacsConfig> pacsConfigList
- = pacsConfigService.list(new QueryWrapper<PacsConfig>()
- if (ListUtil.isNotEmpty(pacsConfigList)) {
- List<TransfusionConfig> transfusionConfigList
- = transfusionConfigService.list(new QueryWrapper<TransfusionConfig>()
- if (ListUtil.isNotEmpty(transfusionConfigList)) {
- List<ScaleConfig> scaleConfigList
- = scaleConfigService.list(new QueryWrapper<ScaleConfig>()
- if (ListUtil.isNotEmpty(scaleConfigList)) {
- List<NurseConfig> nurseConfigList
- = nurseConfigService.list(new QueryWrapper<NurseConfig>()
- if (ListUtil.isNotEmpty(nurseConfigList)) {
- List<TcmdiseaseConfig> tcmdiseaseConfigList
- = tcmdiseaseConfigService.list(new QueryWrapper<TcmdiseaseConfig>()
- if (ListUtil.isNotEmpty(tcmdiseaseConfigList)) {
- List<TcmsyndromeConfig> tcmsyndromeConfigList
- = tcmsyndromeConfigService.list(new QueryWrapper<TcmsyndromeConfig>()
- if (ListUtil.isNotEmpty(tcmsyndromeConfigList)) {
+ .eq("hospital_id", id));
+ if (ListUtil.isNotEmpty(mappingConfigList)) {
throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该医院存在关联数据,无法删除");
List<Plan> planList
= planFacade.list(new QueryWrapper<Plan>()
if (ListUtil.isNotEmpty(planList)) {
+ int count = tranHospitalRelationService.count(new QueryWrapper<TranHospitalRelation>()
+ if (count > 0) {
+ throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该医院存在关联医院,无法删除");
+ // 主表逻辑删除
hospitalInfo.setIsDeleted(IsDeleteEnum.Y.getKey());
hospitalInfoService.updateById(hospitalInfo);
+ // 关联表物理删除
+ tranHospitalRelationService.remove(new QueryWrapper<TranHospitalRelation>()
return true;
@@ -325,9 +292,24 @@ public class HospitalInfoFacade extends HospitalInfoServiceImpl {
* @param hospitalInfoPageVO
- public IPage<DiseaseConfig> getPage(HospitalInfoPageVO hospitalInfoPageVO) {
- return hospitalInfoService.getPage(hospitalInfoPageVO);
+ public IPage<HospitalInfoPageDTO> getPageFac(HospitalInfoPageVO hospitalInfoPageVO) {
+ IPage<HospitalInfoPageDTO> page = hospitalInfoService.getPage(hospitalInfoPageVO);
+ List<HospitalInfoPageDTO> records = page.getRecords();
+ if (ListUtil.isNotEmpty(records)) {
+ List<Long> idList = records.stream().map(r -> r.getId()).collect(Collectors.toList());
+ .in("hospital_id", idList)
+ Map<Long, List<TranHospitalRelation>> hospitalIdMap = EntityUtil.makeEntityListMap(relationList, "hospital_id");
+ for (HospitalInfoPageDTO hospitalInfoPageDTO : records) {
+ List<TranHospitalRelation> tranHospitalRelationList = hospitalIdMap.get(hospitalInfoPageDTO.getId());
+ if (ListUtil.isNotEmpty(tranHospitalRelationList)) {
+ hospitalInfoPageDTO.setSonHospital(tranHospitalRelationList.stream().map(r -> r.getName()).collect(Collectors.joining(",")));
+ return page;
@@ -0,0 +1,404 @@
+package com.diagbot.facade;
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.client.UserServiceClient;
+import com.diagbot.dto.ConceptCollectionDTO;
+import com.diagbot.dto.ConceptCollectionMatchDTO;
+import com.diagbot.dto.DictionaryInfoDTO;
+import com.diagbot.entity.KlConcept;
+import com.diagbot.entity.KlLibraryInfo;
+import com.diagbot.entity.KlRelation;
+import com.diagbot.entity.KlRelationOrder;
+import com.diagbot.entity.KlRule;
+import com.diagbot.entity.KlRuleBase;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.LexiconEnum;
+import com.diagbot.enums.StatusEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.service.KlRelationOrderService;
+import com.diagbot.service.KlRelationService;
+import com.diagbot.service.KlRuleConditionService;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.RespDTOUtil;
+import com.diagbot.util.UserUtils;
+import com.diagbot.vo.ConceptCollectionPageVO;
+import com.diagbot.vo.ConceptCollectionSaveVO;
+import com.diagbot.vo.ConceptCollectionVO;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.stream.Collectors;
+ * @time: 2021/8/5 17:25
+public class KlConceptCollectionFacade {
+ KlConceptFacade klConceptFacade;
+ KlLibraryInfoFacade klLibraryInfoFacade;
+ @Qualifier("klRelationServiceImpl")
+ KlRelationService klRelationService;
+ KlRelationFacade klRelationFacade;
+ @Qualifier("klRelationOrderServiceImpl")
+ KlRelationOrderService klRelationOrderService;
+ KlRelationOrderFacade klRelationOrderFacade;
+ KlDictionaryInfoFacade klDictionaryInfoFacade;
+ KlRuleFacade klRuleFacade;
+ KlRuleBaseFacade klRuleBaseFacade;
+ KlRuleConditionService klRuleConditionService;
+ UserServiceClient userServiceClient;
+ * 获取术语集合列表
+ * @param conceptCollectionPageVO
+ public IPage<ConceptCollectionDTO> getConceptCollectionPage(ConceptCollectionPageVO conceptCollectionPageVO) {
+ if (conceptCollectionPageVO.getCollectionLibType() == null
+ || conceptCollectionPageVO.getCollectionLibType().equals(0)) {
+ conceptCollectionPageVO.setCollectionLibType(null);
+ IPage<ConceptCollectionDTO> page = klRelationFacade.getConceptCollectionPage(conceptCollectionPageVO);
+ List<ConceptCollectionDTO> records = page.getRecords();
+ List<String> userIds = records.stream().map(ConceptCollectionDTO::getModifier)
+ .distinct()
+ .collect(Collectors.toList());
+ if (ListUtil.isEmpty(userIds)) {
+ RespDTO<Map<String, String>> userRespDTO = userServiceClient.getUserInfoByIds(userIds);
+ if (RespDTOUtil.respIsNG(userRespDTO)) {
+ Map<String, String> userMap = userRespDTO.data;
+ records.forEach(record -> {
+ if (userMap.containsKey(record.getModifier())) {
+ record.setModifier(userMap.get(record.getModifier()));
+ record.setModifier("");
+ });
+ page.setRecords(records);
+ * 保存(新增和修改)
+ * @param conceptCollectionSaveVO
+ @DSTransactional
+ public Boolean saveOrUpdateRecord(ConceptCollectionSaveVO conceptCollectionSaveVO) {
+ Map<Long, List<DictionaryInfoDTO>> allDictionaryMap = klDictionaryInfoFacade.getListByGroupType();
+ List<DictionaryInfoDTO> dictionary = allDictionaryMap.get(61L);
+ Map<String, String> dictionaryMap
+ = dictionary.stream().collect(Collectors.toMap(DictionaryInfoDTO::getName, DictionaryInfoDTO::getVal));
+ if (null == conceptCollectionSaveVO.getCollectionId()) {
+ throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "术语集合不允许为空,保存失败");
+ if (ListUtil.isEmpty(conceptCollectionSaveVO.getConcepts())) {
+ throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "保存失败,关联术语不能为空");
+ KlConcept collection = klConceptFacade.getById(conceptCollectionSaveVO.getCollectionId());
+ if (null == collection) {
+ throw new CommonException(CommonErrorCode.NOT_EXISTS, "术语集合不存在,保存失败");
+ } else if (collection.getStatus().equals(StatusEnum.Disable.getKey())) {
+ throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "集合已禁用,保存失败");
+ } else if (!collection.getLibName().equals(conceptCollectionSaveVO.getCollectionLibName())) {
+ throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "术语集合名称不允许修改,保存失败");
+ //校验术语集合和基础术语类型是否对应
+ String dicVal = dictionaryMap.get(LexiconEnum.getName(conceptCollectionSaveVO.getCollectionLibType()));
+ if (StringUtils.isBlank(dicVal)) {
+ throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "术语集合和基础术语关联字典未维护,请维护字典");
+ Integer conceptLibType = Integer.valueOf(dicVal.split("-")[2]);
+ for (ConceptCollectionBaseVO concept : conceptCollectionSaveVO.concepts) {
+ if (!concept.getConceptLibType().equals(conceptLibType)) {
+ throw new CommonException(CommonErrorCode.PARAM_IS_NULL,
+ "集合【" + LexiconEnum.getName(conceptCollectionSaveVO.getCollectionLibType())
+ + "】和基础术语【" + LexiconEnum.getName(conceptLibType) + "】不是对应关系,保存失败");
+ //检验基础术语是否存在
+ //过滤已禁用基础术语
+ List<Long> conceptIds = conceptCollectionSaveVO.concepts.stream()
+ .map(ConceptCollectionBaseVO::getConceptId)
+ List<KlConcept> concepts = klConceptFacade.list(new QueryWrapper<KlConcept>()
+ //.eq("status", StatusEnum.Enable.getKey())
+ .in("id", conceptIds));
+ if (ListUtil.isEmpty(concepts)) {
+ throw new CommonException(CommonErrorCode.NOT_EXISTS, "保存失败,基础术语不存在");
+ for (KlConcept concept : concepts) {
+ if (concept.getStatus().equals(StatusEnum.Disable.getKey())) {
+ throw new CommonException(CommonErrorCode.NOT_EXISTS, "保存失败,存在已禁用基础术语");
+ List<Long> saveConceptIds = concepts.stream().map(KlConcept::getId).collect(Collectors.toList());
+ //删除已有记录
+ List<KlRelation> relationList = klRelationFacade.list(new QueryWrapper<KlRelation>()
+ .eq("start_id", collection.getId())
+ .eq("relation_id", 600));
+ if (ListUtil.isNotEmpty(relationList)) {
+ List<Long> tRelationIds = relationList.stream().map(KlRelation::getId).collect(Collectors.toList());
+ //删除管理记录
+ klRelationFacade.remove(new QueryWrapper<KlRelation>()
+ klRelationOrderFacade.remove(new QueryWrapper<KlRelationOrder>()
+ .in("t_relation_id", tRelationIds));
+ //保存
+ Date now = new Date();
+ String useId = UserUtils.getCurrentPrincipleID();
+ List<KlRelation> saveList = Lists.newLinkedList();
+ if (!saveConceptIds.contains(concept.getConceptId())) {
+ continue;
+ KlRelation klRelation = new KlRelation();
+ klRelation.setStartId(collection.getId());
+ klRelation.setEndId(concept.getConceptId());
+ klRelation.setRelationId(600);
+ klRelation.setCreator(useId);
+ klRelation.setModifier(useId);
+ klRelation.setGmtCreate(now);
+ klRelation.setGmtModified(now);
+ saveList.add(klRelation);
+ klRelationService.saveOrUpdateBatch(saveList);
+ List<KlRelationOrder> saveOrderList = Lists.newLinkedList();
+ Integer orderNo = 1;
+ for (KlRelation klRelation : saveList) {
+ KlRelationOrder klRelationOrder = new KlRelationOrder();
+ klRelationOrder.settRelationId(klRelation.getId());
+ klRelationOrder.setOrderNo(orderNo++);
+ klRelationOrder.setCreator(useId);
+ klRelationOrder.setModifier(useId);
+ klRelationOrder.setGmtCreate(now);
+ klRelationOrder.setGmtModified(now);
+ saveOrderList.add(klRelationOrder);
+ klRelationOrderService.saveOrUpdateBatch(saveOrderList);
+ * 根据术语集合id获取集合相关信息
+ public ConceptCollectionSaveVO getRecordById(IdVO idVO) {
+ ConceptCollectionSaveVO retItem = new ConceptCollectionSaveVO();
+ KlConcept collection = klConceptFacade.getById(idVO.getId());
+ retItem.setCollectionId(idVO.getId());
+ retItem.setCollectionLibName(collection.getLibName());
+ retItem.setCollectionLibType(collection.getLibType());
+ //remark
+ KlLibraryInfo libraryInfo = klLibraryInfoFacade.getOne(new QueryWrapper<KlLibraryInfo>()
+ .eq("concept_id", collection.getId())
+ .eq("is_concept", 1));
+ if (null != libraryInfo) {
+ retItem.setCollectionRemark(libraryInfo.getRemark());
+ .eq("start_id", idVO.getId())
+ if (ListUtil.isEmpty(relationList)) {
+ return retItem;
+ Map<Long, KlRelation> relationMap = relationList.stream().collect(Collectors.toMap(KlRelation::getId, v -> v));
+ List<Long> conceptIds = relationList.stream().map(KlRelation::getEndId).collect(Collectors.toList());
+ List<Long> relationIds = relationList.stream().map(KlRelation::getId).collect(Collectors.toList());
+ List<KlRelationOrder> relationOrderList = klRelationOrderFacade.list(new QueryWrapper<KlRelationOrder>()
+ .in("t_relation_id", relationIds)
+ .orderByAsc("order_no"));
+ List<KlConcept> conceptList = klConceptFacade.list(new QueryWrapper<KlConcept>()
+ .eq("status", StatusEnum.Enable.getKey())
+ Map<Long, KlConcept> conceptMap = conceptList.stream().collect(Collectors.toMap(KlConcept::getId, v -> v));
+ List<ConceptCollectionBaseVO> subConceptList = Lists.newLinkedList();
+ if (ListUtil.isNotEmpty(relationOrderList)) {
+ for (KlRelationOrder order : relationOrderList) {
+ KlConcept concept = conceptMap.get(relationMap.get(order.gettRelationId()).getEndId());
+ if (null != concept) {
+ ConceptCollectionBaseVO conceptVO = new ConceptCollectionBaseVO();
+ conceptVO.setConceptId(concept.getId());
+ conceptVO.setConceptLibName(concept.getLibName());
+ conceptVO.setConceptLibType(concept.getLibType());
+ subConceptList.add(conceptVO);
+ for (KlConcept concept : conceptList) {
+ retItem.setConcepts(subConceptList);
+ * 删除术语集合关联关系
+ public Boolean deleteById(IdVO idVO) {
+ throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "术语集合不存在");
+ //校验术语集合是否被使用
+ List<KlRule> ruleList = klRuleFacade.list(new QueryWrapper<KlRule>()
+ .eq("concept_id", collection.getId()));
+ if (ListUtil.isNotEmpty(ruleList)) {
+ throw new CommonException(CommonErrorCode.FAIL, "删除失败,【" + collection.getLibName() + "】已在规则中使用");
+ List<KlRuleBase> baseRuleList = klRuleBaseFacade.list(new QueryWrapper<KlRuleBase>()
+ if (ListUtil.isNotEmpty(baseRuleList)) {
+ klRelationFacade.remove(new QueryWrapper<KlRelation>().in("id", relationIds));
+ klRelationOrderFacade.remove(new QueryWrapper<KlRelationOrder>().in("t_relation_id", relationIds));
+ * 批量校验标准术语是否存在
+ * @param conceptCollectionVO
+ public ConceptCollectionMatchDTO collectionMatch(ConceptCollectionVO conceptCollectionVO) {
+ ConceptCollectionMatchDTO retDTO = new ConceptCollectionMatchDTO();
+ List<String> conceptNames = Arrays.stream(conceptCollectionVO.getConceptLibNames().trim().split("\\\n"))
+ .filter(i -> StringUtils.isNotBlank(i))
+ .map(i -> i.trim())
+ if (ListUtil.isEmpty(conceptNames)) {
+ return retDTO;
+ List<KlConcept> klConceptList = klConceptFacade.list(new QueryWrapper<KlConcept>()
+ .eq("lib_type", conceptCollectionVO.getConceptLibType())
+ .in("lib_name", conceptNames));
+ Map<String, KlConcept> klConceptMap = new HashMap<>();
+ if (ListUtil.isNotEmpty(klConceptList)) {
+ klConceptMap = klConceptList.stream().collect(Collectors.toMap(KlConcept::getLibName, v -> v));
+ List<ConceptCollectionBaseVO> matchList = Lists.newLinkedList();
+ List<ConceptCollectionBaseVO> unMatchList = Lists.newLinkedList();
+ List<ConceptCollectionBaseVO> disableList = Lists.newLinkedList();
+ for (String name : conceptNames) {
+ ConceptCollectionBaseVO baseVO = new ConceptCollectionBaseVO();
+ baseVO.setConceptLibName(name);
+ baseVO.setConceptLibType(conceptCollectionVO.getConceptLibType());
+ if (klConceptMap.containsKey(name)) {
+ KlConcept baseConcept = klConceptMap.get(name);
+ baseVO.setConceptId(baseConcept.getId());
+ if (baseConcept.getStatus().equals(StatusEnum.Enable.getKey())) {
+ matchList.add(baseVO);
+ disableList.add(baseVO);
+ unMatchList.add(baseVO);
+ retDTO.setMatchList(matchList);
+ retDTO.setUnMatchList(unMatchList);
+ retDTO.setDisableList(disableList);
@@ -3,6 +3,7 @@ package com.diagbot.facade;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.client.CdssCoreClient;
import com.diagbot.client.UserServiceClient;
import com.diagbot.dto.GetAllForRelationDTO;
import com.diagbot.dto.KlConceptAllDTO;
@@ -16,6 +17,7 @@ import com.diagbot.entity.KlConceptCommon;
import com.diagbot.entity.KlConceptStatic;
import com.diagbot.entity.KlDiagnose;
import com.diagbot.entity.KlDiagnoseBase;
+import com.diagbot.entity.KlDiagnoseBaseRelation;
import com.diagbot.entity.KlDrugMapping;
import com.diagbot.entity.KlLexicon;
import com.diagbot.entity.KlLibraryInfo;
@@ -36,17 +38,7 @@ import com.diagbot.util.ListUtil;
import com.diagbot.util.RespDTOUtil;
-import com.diagbot.vo.ConceptRelationVO;
-import com.diagbot.vo.GetAllForRelationVO;
-import com.diagbot.vo.KlConceptAllVO;
-import com.diagbot.vo.KlConceptClearVO;
-import com.diagbot.vo.KlConceptInfoVO;
-import com.diagbot.vo.KlConceptSatarOrdisaVO;
-import com.diagbot.vo.KlConceptSaveSubVO;
-import com.diagbot.vo.KlConceptSaveVO;
-import com.diagbot.vo.KlLibraryInfoVO;
-import com.diagbot.vo.SearchConceptVO;
-import com.diagbot.vo.SearchVO;
+import com.diagbot.vo.*;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import org.apache.commons.lang3.StringUtils;
@@ -70,6 +62,8 @@ public class KlConceptFacade extends KlConceptServiceImpl {
private UserServiceClient userServiceClient;
+ private CdssCoreClient cdssCoreClient;
private KlLibraryInfoFacade klLibraryInfoFacade;
private KlConceptCommonFacade klConceptCommonFacade;
@@ -92,6 +86,8 @@ public class KlConceptFacade extends KlConceptServiceImpl {
KlDiagnoseBaseFacade klDiagnoseBaseFacade;
+ KlDiagnoseBaseRelationFacade klDiagnoseBaseRelationFacade;
KlDrugFacade klDrugFacade;
KlSymptomFacade klSymptomFacade;
@@ -426,6 +422,7 @@ public class KlConceptFacade extends KlConceptServiceImpl {
.eq(getAllForRelationVO.getTypeId() != null, "lib_type", getAllForRelationVO.getTypeId())
.eq("status", StatusEnum.Enable.getKey())
.notIn(ListUtil.isNotEmpty(getAllForRelationVO.getExcludedConceptIds()), "id", getAllForRelationVO.getExcludedConceptIds())
+ .last("limit 100")
);
// retList = BeanUtil.listCopyTo(conceptList, GetAllForRelationDTO.class);
if (ListUtil.isNotEmpty(conceptList)) {
@@ -450,7 +447,10 @@ public class KlConceptFacade extends KlConceptServiceImpl {
public List<GetAllForRelationDTO> searchConceptByNameAndLibType(SearchConceptVO searchConceptVO) {
- List<GetAllForRelationDTO> getAllForRelationDTOS = Lists.newArrayList();
+ RespDTO<List<GetAllForRelationDTO>> relationDTORespDTO = cdssCoreClient.searchConcept(searchConceptVO);
+ RespDTOUtil.respNGDeal(relationDTORespDTO, "查询术语失败");
+ return relationDTORespDTO.data;
+ /*List<GetAllForRelationDTO> getAllForRelationDTOS = Lists.newArrayList();
String name = searchConceptVO.getName();
Integer libType = searchConceptVO.getLibType();
List<Long> excludedConceptIds = searchConceptVO.getExcludedConceptIds();
@@ -472,7 +472,7 @@ public class KlConceptFacade extends KlConceptServiceImpl {
}).collect(Collectors.toList());
- return getAllForRelationDTOS;
+ return getAllForRelationDTOS;*/
@@ -482,7 +482,12 @@ public class KlConceptFacade extends KlConceptServiceImpl {
public List<GetAllForRelationDTO> searchConceptByNameAndLibType(SearchVO SearchVO) {
+ SearchConceptVO searchConceptVO = new SearchConceptVO();
+ BeanUtil.copyProperties(SearchVO,searchConceptVO);
List<Long> excludedConceptIds = SearchVO.getExcludedConceptIds();
List<KlConcept> conceptList = this.list(new QueryWrapper<KlConcept>()
@@ -500,7 +505,19 @@ public class KlConceptFacade extends KlConceptServiceImpl {
return getAllForRelationDTO;
+ public List<GetAllForRelationDTO> addConceptClass(SearchConceptVO searchConceptVO) {
+ RespDTO<List<GetAllForRelationDTO>> relationDTORespDTO = cdssCoreClient.addConceptClass(searchConceptVO);
+ RespDTOUtil.respNGDeal(relationDTORespDTO, "术语集合新增失败");
+ public List<GetAllForRelationDTO> searchConceptRuleClass(SearchConceptVO searchConceptVO) {
+ RespDTO<List<GetAllForRelationDTO>> relationDTORespDTO = cdssCoreClient.searchConceptRuleClass(searchConceptVO);
+ RespDTOUtil.respNGDeal(relationDTORespDTO, "查询规则维护术语查询术语失败");
@@ -538,7 +555,7 @@ public class KlConceptFacade extends KlConceptServiceImpl {
int sum = this.count(new QueryWrapper<KlConcept>().eq("is_deleted", IsDeleteEnum.N.getKey())
.eq("id", klConceptSatarOrdisaVO.getConceptId()));
if (sum == 0) {
- throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该数据已不存!");
+ throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该数据已不存在!");
if (status == StatusEnum.Disable.getKey()) {
//kl_concept_static 静态信息
@@ -579,10 +596,11 @@ public class KlConceptFacade extends KlConceptServiceImpl {
if (diagnosesum > 0) {
throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该医学标准术语与诊断依据维护存在关系!");
- //kl_diagnose_base
- int diagnoseBasesum = klDiagnoseBaseFacade.count(new QueryWrapper<KlDiagnoseBase>().eq("is_deleted", IsDeleteEnum.N.getKey())
+ //kl_diagnose_base_relation
+ int diagnoseBaseRelationsum = klDiagnoseBaseRelationFacade.count(new QueryWrapper<KlDiagnoseBaseRelation>()
.eq("concept_id", klConceptSatarOrdisaVO.getConceptId()));
- if (diagnoseBasesum > 0) {
+ if (diagnoseBaseRelationsum > 0) {
throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该医学标准术语与诊断依据维护明细存在关系!");
//kl_drug_mapping
@@ -665,4 +683,10 @@ public class KlConceptFacade extends KlConceptServiceImpl {
param.setPerson(person);
return param;
+ public List<GetAllForRelationDTO> searchCollectionConceptFac(SearchCollectionConceptVO searchCollectionConceptVO) {
+ RespDTO<List<GetAllForRelationDTO>> relationDTORespDTO = cdssCoreClient.searchCollectionConcept(searchCollectionConceptVO);
+ RespDTOUtil.respNGDeal(relationDTORespDTO, "在集合业务中,搜索术语失败");
@@ -14,6 +14,8 @@ import com.diagbot.entity.KlConceptDetail;
import com.diagbot.enums.StatusEnum;
import com.diagbot.service.impl.KlConceptStaticServiceImpl;
@@ -61,6 +63,8 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
RespDTO<List<StaticKnowledgeIndexDTO>> respDTO = cdssCoreClient.staticKnowledgeIndex(staticKnowledgeIndexVO);
if (RespDTOUtil.respIsOK(respDTO)) {
retList = respDTO.data;
+ throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, respDTO.msg);
if (staticKnowledgeIndexVO.getHasInfo() != null && staticKnowledgeIndexVO.getHasInfo().equals(1)) {
@@ -82,6 +86,8 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
RespDTO<StaticKnowledgeDTO> respDTO = cdssCoreClient.getStaticKnowledge(staticKnowledgeVO);
staticKnowledgeDTO = respDTO.data;
return staticKnowledgeDTO;
@@ -97,6 +103,8 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
RespDTO<Page<KlConceptStaticDTO>> respDTO = cdssCoreClient.getPage(klConceptStaticPageVO);
page = respDTO.data;
List<KlConceptStaticDTO> records = page.getRecords();
List<String> userIds = records.stream().map(KlConceptStaticDTO::getModifier)
@@ -132,6 +140,8 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
RespDTO<Boolean> respDTO = cdssCoreClient.saveOrUpdateRecord(klConceptStaticVO);
success = respDTO.data;
return success;
@@ -150,6 +160,8 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
RespDTO<Boolean> respDTO = cdssCoreClient.changeStatus(changeStatusVO);
@@ -165,6 +177,8 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
RespDTO<KlConceptStaticDTO> respDTO = cdssCoreClient.getRecordById(idVO);
klConceptStaticDTO = respDTO.data;
return klConceptStaticDTO;
@@ -180,6 +194,8 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
RespDTO<Boolean> respDTO = cdssCoreClient.isExist(klConceptStaticVO);
exist = respDTO.data;
return exist;
@@ -0,0 +1,13 @@
+import com.diagbot.service.impl.KlDiagnoseBaseRelationServiceImpl;
+ * @time: 2021/7/15 13:50
+public class KlDiagnoseBaseRelationFacade extends KlDiagnoseBaseRelationServiceImpl {
@@ -4,10 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.diagbot.dto.RelationDTO;
import com.diagbot.dto.TreeAllDTO;
import com.diagbot.dto.TreeDTO;
-import com.diagbot.entity.CommonParam;
-import com.diagbot.entity.KlRelation;
-import com.diagbot.entity.KlRelationOrder;
-import com.diagbot.entity.KlVitalResult;
+import com.diagbot.entity.*;
import com.diagbot.enums.RelationLibTypeEnum;
import com.diagbot.service.KlRelationOrderService;
import com.diagbot.service.KlRelationService;
@@ -16,11 +14,7 @@ import com.diagbot.service.impl.KlRelationServiceImpl;
import com.diagbot.util.EntityUtil;
-import com.diagbot.vo.KlDiseaseVO;
-import com.diagbot.vo.KlSymptomVO;
-import com.diagbot.vo.KlVitalResultVO;
-import com.diagbot.vo.RelationVO;
-import com.diagbot.vo.TreeVO;
@@ -80,7 +74,7 @@ public class KlRelationFacade extends KlRelationServiceImpl {
List<RelationDTO> root = this.getRelations(relationVO);
TreeAllDTO treeAllDTO = new TreeAllDTO();
treeAllDTO.setTypes(types);
+ TreeDTO treeDTO = new TreeDTO();
if (ListUtil.isNotEmpty(root)) {
RelationVO relationVO2 = new RelationVO();
relationVO2.setSType(pList.get(index)[2]);
@@ -89,7 +83,7 @@ public class KlRelationFacade extends KlRelationServiceImpl {
List<RelationDTO> sub = this.getRelations(relationVO2);
Map<Long, List<RelationDTO>> map = EntityUtil.makeEntityListMap(sub, "sId");
- TreeDTO treeDTO = new TreeDTO();
treeDTO.setId(root.get(0).getSId());
treeDTO.setName(root.get(0).getSName());
for (RelationDTO relationDTO : root) {
@@ -107,8 +101,18 @@ public class KlRelationFacade extends KlRelationServiceImpl {
treeDTO.getNextTree().add(treeDTO2);
- treeAllDTO.setTreeDTO(treeDTO);
+ }else {
+ List<KlConcept> klConcepts = klConceptFacade.list(new QueryWrapper<KlConcept>()
+ .eq("lib_type", types.get(0)));
+ if(ListUtil.isNotEmpty(klConcepts)){
+ treeDTO.setId(klConcepts.get(0).getId());
+ treeDTO.setName(klConcepts.get(0).getLibName());
+ treeAllDTO.setTreeDTO(treeDTO);
return treeAllDTO;
@@ -1,712 +0,0 @@
-import com.diagbot.vo.LisConfigListVO;
-import com.diagbot.vo.LisConfigPageVO;
- * @time: 2020/7/29 15:03
-public class LisConfigFacade{
- * @param lisConfig
- public Boolean isExistRecord(LisConfig lisConfig) {
- QueryWrapper<LisConfig> queryWrapper = new QueryWrapper<>();
- .eq("hospital_id", lisConfig.getHospitalId())
- .eq("his_name", lisConfig.getHisName())
- .eq("unique_name", lisConfig.getUniqueName());
- if (StringUtil.isBlank(lisConfig.getHisDetailName())) {
- queryWrapper.and(i -> i.isNull("his_detail_name")
- .eq("his_detail_name", ""));
- queryWrapper
- .eq("his_detail_name", lisConfig.getHisDetailName());
- LisConfig oldRecord = lisConfigService.getOne(queryWrapper, false);
- if (lisConfig.getId() == null
- if (lisConfig.getId() != null
- && !lisConfig.getId().equals(oldRecord.getId())) {
- public Boolean saveOrUpdateRecord(LisConfig lisConfig) {
- lisConfig.setModifier(userId);
- lisConfig.setGmtModified(now);
- if (lisConfig.getId() == null) {
- lisConfig.setCreator(userId);
- lisConfig.setGmtCreate(now);
- if (lisConfig.getIsDeleted() == null) {
- lisConfig.setIsDeleted(IsDeleteEnum.N.getKey());
- lisConfigService.saveOrUpdate(lisConfig);
- * @param lisConfigListVO
- public Boolean saveOrUpdateRecords(LisConfigListVO lisConfigListVO) {
- if (ListUtil.isEmpty(lisConfigListVO.getLisConfigList())) {
- return saveOrUpdateRecords(lisConfigListVO.getLisConfigList());
- * @param lisConfigList
- public Boolean saveOrUpdateRecords(List<LisConfig> lisConfigList) {
- if (ListUtil.isEmpty(lisConfigList)) {
- //过滤套餐或公表名为空的数据,hospitalId不允许为空
- lisConfigList = lisConfigList
- Long hosptialId = lisConfigList.get(0).getHospitalId();
- = getConfigMap(hosptialId, null, null);
- lisConfigList.forEach(lisConfig -> {
- if (configMap.containsKey(lisConfig.getHisName())) {
- if (lisConfig.getHisDetailName() == null
- && configMap.get(lisConfig.getHisName()).containsKey("")) {
- if (ListUtil.isNotEmpty(configMap.get(lisConfig.getHisName()).get("").get(lisConfig.getUniqueName()))) {
- deleteIds.addAll(configMap.get(lisConfig.getHisName()).get("").get(lisConfig.getUniqueName()));
- } else if (configMap.get(lisConfig.getHisName()).containsKey(lisConfig.getHisDetailName())) {
- if (ListUtil.isNotEmpty(configMap.get(lisConfig.getHisName()).get(lisConfig.getHisDetailName()).get(lisConfig.getUniqueName()))) {
- deleteIds.addAll(configMap
- .get(lisConfig.getHisName())
- .get(lisConfig.getHisDetailName())
- .get(lisConfig.getUniqueName()));
- lisConfigService.saveOrUpdateBatch(lisConfigList);
- UpdateWrapper<LisConfig> updateWrapper = new UpdateWrapper<>();
- lisConfigService.removeById(idVO.getId());
- lisConfigService.removeByIds(idListVO.getIds());
- * @param lisConfigPageVO
- public IPage<LisConfig> getPage(LisConfigPageVO lisConfigPageVO) {
- return lisConfigService.getPage(lisConfigPageVO);
- //从Excel读取数据
- List<LisConfig> lisConfigList = ExcelUtils.importExcel(file, 0, 1, LisConfig.class);
- importExcelRecords(lisConfigList, hospitalIdVO);
- public Boolean importExcelRecords(List<LisConfig> lisConfigList,HospitalIdVO hospitalIdVO) {
- lisConfigList = lisConfigList.stream()
- .filter(LisConfig::nonNull)
- lisConfig.setHospitalId(hospitalIdVO.getHospitalId());
- for (int i = 0; i < lisConfigList.size(); i++) {
- if (StringUtil.isBlank(lisConfigList.get(i).getHisName())
- || StringUtil.isBlank(lisConfigList.get(i).getUniqueName())) {
- if (StringUtil.isNotBlank(lisConfigList.get(i).getHisName())) {
- lisConfigList.get(i).setHisName(lisConfigList.get(i).getHisName().trim());
- if (StringUtil.isNotBlank(lisConfigList.get(i).getHisDetailName())) {
- lisConfigList.get(i).setHisDetailName(lisConfigList.get(i).getHisDetailName().trim());
- if (StringUtil.isNotBlank(lisConfigList.get(i).getUniqueName())) {
- lisConfigList.get(i).setUniqueName(lisConfigList.get(i).getUniqueName().trim());
- if (StringUtil.isNotBlank(lisConfigList.get(i).getUniqueCode())) {
- lisConfigList.get(i).setUniqueCode(lisConfigList.get(i).getUniqueCode().trim());
- lisConfigList.get(i).setUniqueCode(null);
- List<String> hisNames = lisConfigList
- List<String> uniqueNames = lisConfigList
- lisConfig.setHospitalId(Long.valueOf(hospitalId));
- conceptVO.setType(ConceptTypeEnum.LisPack.getKey());
- RespDTO<List<IndexBatchDTO>> respLisPackDTO = cdssCoreClient.getConceptNames(conceptVO);
- RespDTOUtil.respNGDealCover(respLisPackDTO, "标准术语校验失败");
- List<String> lisPackNames = respLisPackDTO.data.stream().map(IndexBatchDTO::getName).collect(Collectors.toList());
- conceptVO.setType(ConceptTypeEnum.Lis.getKey());
- RespDTO<List<IndexBatchDTO>> respLisDTO = cdssCoreClient.getConceptNames(conceptVO);
- RespDTOUtil.respNGDealCover(respLisDTO, "标准术语校验失败");
- List<String> lisNames = respLisDTO.data.stream().map(IndexBatchDTO::getName).collect(Collectors.toList());
- if (StringUtil.isBlank(lisConfigList.get(i).getHisDetailName())) {
- //检验套餐对应套餐
- if (!lisPackNames.contains(lisConfigList.get(i).getUniqueName())) {
- //检验细项对应细项
- if (!lisNames.contains(lisConfigList.get(i).getUniqueName())) {
- * 获取映射关系-id
- * Map<hisName,Map<hisDetailName,Map<uniqueName,List<id>>>>
- public Map<String, Map<String, Map<String, List<Long>>>> getConfigMap(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
- List<LisConfig> records = lisConfigService.list(queryWrapper);
- records.forEach(lisConfig -> {
- if (lisConfig.getHisDetailName() == null) {
- lisConfig.setHisDetailName("");
- Map<String, List<LisConfig>> hisNameMap = EntityUtil.makeEntityListMap(records, "hisName");
- for (Map.Entry<String, List<LisConfig>> entry : hisNameMap.entrySet()) {
- Map<String, Map<String, List<Long>>> detailNameMap = new HashMap<>();
- //his名称映射到标准词,1:n
- Map<String, List<LisConfig>> hisDetailNameMap
- = EntityUtil.makeEntityListMap(entry.getValue(), "hisDetailName");
- for (Map.Entry<String, List<LisConfig>> detailEntry : hisDetailNameMap.entrySet()) {
- if (ListUtil.isNotEmpty(detailEntry.getValue())) {
- Map<String, List<LisConfig>> thirdMap = EntityUtil.makeEntityListMap(detailEntry.getValue(), "uniqueName");
- for (Map.Entry<String, List<LisConfig>> thirdEntry : thirdMap.entrySet()) {
- detailNameMap.put(detailEntry.getKey(), idMap);
- retMap.put(entry.getKey(), detailNameMap);
- * Map<uniqueName,Map<hisName,Map<hisDetailName,List<id>>>>
- public Map<String, Map<String, Map<String, List<Long>>>> getUniqueConfigMap(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
- Map<String, List<LisConfig>> uniqueNameMap = EntityUtil.makeEntityListMap(records, "uniqueName");
- for (Map.Entry<String, List<LisConfig>> entry : uniqueNameMap.entrySet()) {
- Map<String, List<LisConfig>> hisName
- for (Map.Entry<String, List<LisConfig>> hisEntry : hisName.entrySet()) {
- Map<String, List<LisConfig>> thirdMap = EntityUtil.makeEntityListMap(hisEntry.getValue(), "hisDetailName");
- String fileName = "检验映射.xls";
- ExcelUtils.exportExcel(records, null, "sheet1", LisConfig.class, fileName, response, 12.8f);
- return lisConfigService.getRelationNumPage(hosRelationNumPageVO);
- String fileName = "检验映射模板.xls";
- ExcelUtils.exportExcel(new ArrayList<>(), null, "sheet1", LisConfig.class, fileName, response, 12.8f);
- List<LisConfig> originList = ExcelUtils.importExcel(file, 0, 1, LisConfig.class);
- List<LisConfig> retList = dataProcess(originList);
- String fileName = "检验关联数据(预匹配).xls";
- ExcelUtils.exportExcel(retList, null, "sheet1", LisConfig.class, fileName, response, 12.8f);
- public List<LisConfig> dataProcess(List<LisConfig> originList) {
- List<LisConfig> retList = Lists.newLinkedList();
- Map<String, Map<String, List<LisConfig>>> allMap = getAll(hisNameList);
- originList = originList.stream().filter(LisConfig::nonNull).collect(Collectors.toList());
- if(StringUtil.isNotBlank(item.getHisDetailName())) {
- item.setHisDetailName(item.getHisDetailName().trim());
- for (Map.Entry<String, Map<String, List<LisConfig>>> entry : allMap.entrySet()) {
- for (Map.Entry<String, List<LisConfig>> subEntry : entry.getValue().entrySet()) {
- precUniqueName.addAll(subEntry.getValue().stream().map(i -> i.getUniqueName()).collect(Collectors.toList()));
- for (LisConfig originItem : originList) {
- if (StringUtils.isBlank(originItem.getHisDetailName())) {
- originItem.setHisDetailName("");
- if (allMap.containsKey(originItem.getHisName())
- && allMap.get(originItem.getHisName()).containsKey(originItem.getHisDetailName())) {
- List<LisConfig> items = allMap.get(originItem.getHisName()).get(originItem.getHisDetailName());
- for (LisConfig item : items) {
- if (lisPackNames.contains(item.getUniqueName())
- || lisNames.contains(item.getUniqueName())) {
- public Map<String,Map<String,List<LisConfig>>> getAll(List<String> hisNameList) {
- Map<String, Map<String, List<LisConfig>>> retMap = new HashMap<>();
- record.setHisDetailName(StringUtils.isBlank(record.getHisDetailName()) ? "" : record.getHisDetailName());
- EntityUtil.makeEntityListMap(entry.getValue(), "hisDetailName"));
- public List<LisConfig> getListByHospitalId(Long hospitalId) {
- return lisConfigService.list(queryWrapper);
@@ -0,0 +1,734 @@
+import com.diagbot.dto.IndexBatchDTO;
+import com.diagbot.entity.wrapper.AnesthesiaConfigWrapper;
+import com.diagbot.entity.wrapper.DeptConfigWrapper;
+import com.diagbot.entity.wrapper.DiseaseConfigWrapper;
+import com.diagbot.entity.wrapper.DrugConfigWrapper;
+import com.diagbot.entity.wrapper.LisConfigWrapper;
+import com.diagbot.entity.wrapper.NurseConfigWrapper;
+import com.diagbot.entity.wrapper.OperationConfigWrapper;
+import com.diagbot.entity.wrapper.PacsConfigWrapper;
+import com.diagbot.entity.wrapper.ScaleConfigWrapper;
+import com.diagbot.entity.wrapper.TcmdiseaseConfigWrapper;
+import com.diagbot.entity.wrapper.TcmsyndromeConfigWrapper;
+import com.diagbot.entity.wrapper.TransfusionConfigWrapper;
+import com.diagbot.enums.ConceptTypeEnum;
+import com.diagbot.enums.MatchSourceEnum;
+import com.diagbot.service.impl.MappingConfigServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.ExcelUtils;
+import com.diagbot.vo.ConceptVO;
+import java.util.ArrayList;
+import java.util.Collection;
+ * @time: 2021/6/9 14:19
+public class MappingConfigFacade extends MappingConfigServiceImpl {
+ private CdssClient cdssClient;
+ private DictionaryFacade dictionaryFacade;
+ * 导出文件
+ * @param extFileName
+ * @param mode 1:模板导出、2:关联关系
+ public void exportExcel(HttpServletResponse response, List<?> list, Integer type, String extFileName, Integer mode) {
+ String fileName = extFileName + ".xls";
+ switch (type) {
+ case 1:
+ fileName = "检验" + fileName;
+ if (mode.equals(1)) {
+ List<LisConfig> lisConfigList = BeanUtil.listCopyTo(list, LisConfig.class);
+ ExcelUtils.exportExcel(lisConfigList, null, "sheet1", LisConfig.class, fileName, response, 12.8f);
+ } else if (mode.equals(2)) {
+ List<LisConfigWrapper> lisConfigList = BeanUtil.listCopyTo(list, LisConfigWrapper.class);
+ ExcelUtils.exportExcel(lisConfigList, null, "sheet1", LisConfigWrapper.class, fileName, response, 12.8f);
+ break;
+ case 3:
+ fileName = "检查" + fileName;
+ List<PacsConfig> pacsConfigList = BeanUtil.listCopyTo(list, PacsConfig.class);
+ ExcelUtils.exportExcel(pacsConfigList, null, "sheet1", PacsConfig.class, fileName, response, 12.8f);
+ List<PacsConfigWrapper> pacsConfigWrapperList = BeanUtil.listCopyTo(list, PacsConfigWrapper.class);
+ ExcelUtils.exportExcel(pacsConfigWrapperList, null, "sheet1", PacsConfigWrapper.class, fileName, response, 12.8f);
+ case 4:
+ fileName = "诊断" + fileName;
+ List<DiseaseConfig> diseaseConfigList = BeanUtil.listCopyTo(list, DiseaseConfig.class);
+ ExcelUtils.exportExcel(diseaseConfigList, null, "sheet1", DiseaseConfig.class, fileName, response, 12.8f);
+ List<DiseaseConfigWrapper> diseaseConfigList = BeanUtil.listCopyTo(list, DiseaseConfigWrapper.class);
+ ExcelUtils.exportExcel(diseaseConfigList, null, "sheet1", DiseaseConfigWrapper.class, fileName, response, 12.8f);
+ case 5:
+ fileName = "药品" + fileName;
+ List<DrugConfig> drugConfigList = BeanUtil.listCopyTo(list, DrugConfig.class);
+ ExcelUtils.exportExcel(drugConfigList, getForm(), "sheet1", DrugConfig.class, fileName, response, 12.8f);
+ List<DrugConfigWrapper> drugConfigList = BeanUtil.listCopyTo(list, DrugConfigWrapper.class);
+ ExcelUtils.exportExcel(drugConfigList, getForm(), "sheet1", DrugConfigWrapper.class, fileName, response, 12.8f);
+ case 6:
+ fileName = "手术和操作" + fileName;
+ List<OperationConfig> operationConfigList = BeanUtil.listCopyTo(list, OperationConfig.class);
+ ExcelUtils.exportExcel(operationConfigList, null, "sheet1", OperationConfig.class, fileName, response, 12.8f);
+ List<OperationConfigWrapper> operationConfigList = BeanUtil.listCopyTo(list, OperationConfigWrapper.class);
+ ExcelUtils.exportExcel(operationConfigList, null, "sheet1", OperationConfigWrapper.class, fileName, response, 12.8f);
+ case 7:
+ fileName = "科室" + fileName;
+ List<DeptConfig> deptConfigList = BeanUtil.listCopyTo(list, DeptConfig.class);
+ ExcelUtils.exportExcel(deptConfigList, null, "sheet1", DeptConfig.class, fileName, response, 12.8f);
+ List<DeptConfigWrapper> deptConfigList = BeanUtil.listCopyTo(list, DeptConfigWrapper.class);
+ ExcelUtils.exportExcel(deptConfigList, null, "sheet1", DeptConfigWrapper.class, fileName, response, 12.8f);
+ case 8:
+ fileName = "输血" + fileName;
+ List<TransfusionConfig> transfusionConfigList = BeanUtil.listCopyTo(list, TransfusionConfig.class);
+ ExcelUtils.exportExcel(transfusionConfigList, null, "sheet1", TransfusionConfig.class, fileName, response, 12.8f);
+ List<TransfusionConfigWrapper> transfusionConfigList = BeanUtil.listCopyTo(list, TransfusionConfigWrapper.class);
+ ExcelUtils.exportExcel(transfusionConfigList, null, "sheet1", TransfusionConfigWrapper.class, fileName, response, 12.8f);
+ case 10:
+ fileName = "量表" + fileName;
+ List<ScaleConfig> scaleConfigList = BeanUtil.listCopyTo(list, ScaleConfig.class);
+ ExcelUtils.exportExcel(scaleConfigList, null, "sheet1", ScaleConfig.class, fileName, response, 12.8f);
+ List<ScaleConfigWrapper> scaleConfigList = BeanUtil.listCopyTo(list, ScaleConfigWrapper.class);
+ ExcelUtils.exportExcel(scaleConfigList, null, "sheet1", ScaleConfigWrapper.class, fileName, response, 12.8f);
+ case 11:
+ fileName = "护理" + fileName;
+ List<NurseConfig> nurseConfigList = BeanUtil.listCopyTo(list, NurseConfig.class);
+ ExcelUtils.exportExcel(nurseConfigList, null, "sheet1", NurseConfig.class, fileName, response, 12.8f);
+ List<NurseConfigWrapper> nurseConfigList = BeanUtil.listCopyTo(list, NurseConfigWrapper.class);
+ ExcelUtils.exportExcel(nurseConfigList, null, "sheet1", NurseConfigWrapper.class, fileName, response, 12.8f);
+ case 12:
+ fileName = "中医疾病" + fileName;
+ List<TcmdiseaseConfig> tcmdiseaseConfigList = BeanUtil.listCopyTo(list, TcmdiseaseConfig.class);
+ ExcelUtils.exportExcel(tcmdiseaseConfigList, null, "sheet1", TcmdiseaseConfig.class, fileName, response, 12.8f);
+ List<TcmdiseaseConfigWrapper> tcmdiseaseConfigList = BeanUtil.listCopyTo(list, TcmdiseaseConfigWrapper.class);
+ ExcelUtils.exportExcel(tcmdiseaseConfigList, null, "sheet1", TcmdiseaseConfigWrapper.class, fileName, response, 12.8f);
+ case 13:
+ fileName = "中医证候" + fileName;
+ List<TcmsyndromeConfig> tcmsyndromeConfigList = BeanUtil.listCopyTo(list, TcmsyndromeConfig.class);
+ ExcelUtils.exportExcel(tcmsyndromeConfigList, null, "sheet1", TcmsyndromeConfig.class, fileName, response, 12.8f);
+ List<TcmsyndromeConfigWrapper> tcmsyndromeConfigList = BeanUtil.listCopyTo(list, TcmsyndromeConfigWrapper.class);
+ ExcelUtils.exportExcel(tcmsyndromeConfigList, null, "sheet1", TcmsyndromeConfigWrapper.class, fileName, response, 12.8f);
+ case 14:
+ fileName = "麻醉" + fileName;
+ List<AnesthesiaConfig> anesthesiaConfigList = BeanUtil.listCopyTo(list, AnesthesiaConfig.class);
+ ExcelUtils.exportExcel(anesthesiaConfigList, null, "sheet1", AnesthesiaConfig.class, fileName, response, 12.8f);
+ List<AnesthesiaConfigWrapper> anesthesiaConfigList = BeanUtil.listCopyTo(list, AnesthesiaConfigWrapper.class);
+ ExcelUtils.exportExcel(anesthesiaConfigList, null, "sheet1", AnesthesiaConfigWrapper.class, fileName, response, 12.8f);
+ default:
+ * 剂型说明
+ private String getForm() {
+ String form = "药品模板——药品剂型填写说明[不填";
+ //药品剂型
+ List<DictionaryInfoDTO> dicTypeMappingList = dictionaryFacade.getListByGroupType(9);
+ if (ListUtil.isNotEmpty(dicTypeMappingList)) {
+ String formList = dicTypeMappingList.stream()
+ .filter(i -> StringUtil.isNotBlank(i.getName()))
+ .map(i -> i.getName())
+ .collect(Collectors.joining("、"));
+ if (StringUtil.isNotBlank(formList)) {
+ form += "、" + formList;
+ form += "]";
+ return form;
+ public IPage<MappingConfigWrapper> getPage(MappingConfigPageVO mappingConfigPageVO) {
+ Page<MappingConfigWrapper> page = null;
+ RespDTO<Page<MappingConfigWrapper>> respDTO = cdssClient.getPage(mappingConfigPageVO);
+ if (RespDTOUtil.respIsOK(respDTO)) {
+ page = respDTO.data;
+ * 导入模板下载
+ public void exportExcelModule(HttpServletResponse response, MappingConfigVO mappingConfigVO) {
+ exportExcel(response, new ArrayList<>(), mappingConfigVO.getType(), "导入模板", 1);
+ * 数据导出
+ public void exportExcel(HttpServletResponse response, MappingConfigPageVO mappingConfigPageVO) {
+ RespDTO<List<MappingConfigWrapper>> respDTO = cdssClient.exportExcel_remote(mappingConfigPageVO);
+ exportExcel(response, respDTO.data, mappingConfigPageVO.getType(), "映射", 2);
+ * 导入数据预匹配校验
+ public Boolean dataVerify(MultipartFile file, Integer type) {
+ RespDTO<Boolean> respDTO = cdssClient.dataVerify(file, type);
+ return respDTO.data;
+ * 导入数据预匹配
+ public void precDataMatch(MultipartFile file, Integer type, HttpServletResponse response) {
+ RespDTO<List<MappingConfigWrapper>> respDTO = cdssClient.precDataMatch_remote(file, type);
+ exportExcel(response, respDTO.data, type, "关联数据(预匹配)", 1);
+ public Boolean importExcelDataVerify(MultipartFile file, Long hospitalId, Integer type, String userId) {
+ if (StringUtil.isBlank(userId)) {
+ userId = UserUtils.getCurrentPrincipleID();
+ RespDTO<Boolean> respDTO = cdssClient.importExcelDataVerify(file, hospitalId, type, userId);
+ if (respDTO.code.equals(CommonErrorCode.NOT_EXISTS.getCode())) {
+ throw new CommonException(CommonErrorCode.NOT_EXISTS, respDTO.msg);
+ public void importExcel(HttpServletResponse response, MultipartFile file, Long hospitalId, Integer type, String userId) {
+ RespDTO<List<MappingConfigWrapper>> respDTO = cdssClient.importExcel_remote(file, hospitalId, type, userId);
+ if (ListUtil.isNotEmpty(respDTO.data)) {
+ exportExcel(response, respDTO.data, type, "标准词校验错误(含非标和禁用)", 1);
+ * 删除记录-单条
+ public Boolean deleteRecord(IdVO idVO) {
+ RespDTO<Boolean> respDTO = cdssClient.deleteRecord(idVO);
+ * 删除记录-批量
+ public Boolean deleteRecords(IdListVO idListVO) {
+ RespDTO<Boolean> respDTO = cdssClient.deleteRecords(idListVO);
+ * 获取记录-单条
+ public MappingConfigWrapper getRecord(IdVO idVO) {
+ RespDTO<MappingConfigWrapper> respDTO = cdssClient.getRecord(idVO);
+ * 查询已关联关系
+ public List<MappingConfigWrapper> getRelatedMapping(MappingConfigVO mappingConfigVO) {
+ RespDTO<List<MappingConfigWrapper>> respDTO = cdssClient.getRelatedMapping(mappingConfigVO);
+ * 判断是否已存在
+ public Boolean isExistRecord(MappingConfig mappingConfig) {
+ RespDTO<Boolean> respDTO = cdssClient.isExistRecord(mappingConfig);
+ * 保存记录-单条
+ public Boolean saveOrUpdateRecord(MappingConfig mappingConfig) {
+ String userId = UserUtils.getCurrentPrincipleID();
+ mappingConfig.setModifier(userId);
+ mappingConfig.setCreator(userId);
+ RespDTO<Boolean> respDTO = cdssClient.saveOrUpdateRecord(mappingConfig);
+ * 根据医院名称分组-返回id
+ * @param hisNames
+ public Map<String, Map<String, Map<Long, List<Long>>>> groupByHisNameWithId(List<String> hisNames, Integer type, Long hospitalId) {
+ Map<String, Map<String, Map<Long, List<Long>>>> retMap = new HashMap<>();
+ QueryWrapper<MappingConfig> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+ .eq("is_match", 1)
+ .eq("type", type);
+ if (hospitalId != null) {
+ queryWrapper.eq("hospital_id", hospitalId);
+ if (ListUtil.isNotEmpty(hisNames)) {
+ queryWrapper.in("his_name", hisNames);
+ List<MappingConfig> list = this.list(queryWrapper);
+ if (ListUtil.isEmpty(list)) {
+ return retMap;
+ for (MappingConfig item : list) {
+ if (StringUtil.isBlank(item.getHisDetailName())) {
+ item.setHisDetailName("");
+ item.setId(null);
+ item.setHospitalId(null);
+ list = list.stream().distinct().collect(Collectors.toList());
+ Map<String, List<MappingConfig>> hisMap = list.stream()
+ .filter(i -> StringUtil.isNotBlank(i.getHisName()))
+ .collect(Collectors.groupingBy(MappingConfig::getHisName));
+ for (Map.Entry<String, List<MappingConfig>> entry : hisMap.entrySet()) {
+ Map<String, Map<Long, List<Long>>> subMap = new HashMap<>();
+ Map<String, List<MappingConfig>> detailMap = entry.getValue().stream()
+ .collect(Collectors.groupingBy(MappingConfig::getHisDetailName));
+ for (Map.Entry<String, List<MappingConfig>> subEntry : detailMap.entrySet()) {
+ subMap.put(subEntry.getKey(),
+ subEntry.getValue()
+ .stream()
+ .collect(Collectors.groupingBy(MappingConfig::getConceptId,
+ Collectors.mapping(MappingConfig::getFormConceptId, Collectors.toList()))));
+ retMap.put(entry.getKey(), subMap);
+ * 根据医院名称分组-返回名称
+ * @param status 标准术语启用禁用标志
+ public Map<String, Map<String, Map<String, List<String>>>> groupByHisNameWithName(List<String> hisNames, Integer type, Long hospitalId, Integer status) {
+ Map<String, Map<String, Map<String, List<String>>>> retMap = new HashMap<>();
+ Map<String, Map<String, Map<Long, List<Long>>>> idMap = groupByHisNameWithId(hisNames, type, hospitalId);
+ //conceptIds
+ List<Long> ids = idMap.values()
+ .flatMap(i -> i.values().stream())
+ .map(i -> i.keySet())
+ .flatMap(Collection::stream)
+ .filter(i -> i != null)
+ //formConceptId
+ ids.addAll(idMap.values()
+ .collect(Collectors.toList()));
+ ConceptVO conceptVO = new ConceptVO();
+ conceptVO.setSource(-1);
+ conceptVO.setType(type);
+ conceptVO.setIds(ids);
+ conceptVO.setStatus(status);
+ RespDTO<List<IndexBatchDTO>> respDTO = cdssCoreClient.getConceptNames(conceptVO);
+ RespDTOUtil.respNGDealCover(respDTO, "标准术语校验失败");
+ List<IndexBatchDTO> indexList = respDTO.data;
+ if (ListUtil.isNotEmpty(indexList)) {
+ Map<Long, String> idNameMap
+ = indexList.stream().collect(Collectors.toMap(IndexBatchDTO::getId, IndexBatchDTO::getName));
+ for (Map.Entry<String, Map<String, Map<Long, List<Long>>>> entry : idMap.entrySet()) {
+ Map<String, Map<String, List<String>>> subMap = new HashMap<>();
+ for (Map.Entry<String, Map<Long, List<Long>>> subEntry : entry.getValue().entrySet()) {
+ Map<String, List<String>> thirdMap = new HashMap<>();
+ for (Map.Entry<Long, List<Long>> thirdEntry : subEntry.getValue().entrySet()) {
+ List<Long> formConceptIds = thirdEntry.getValue();
+ List<String> forms = Lists.newArrayList();
+ if (ListUtil.isNotEmpty(formConceptIds)) {
+ for (Long formConceptId : formConceptIds) {
+ if (formConceptId == null) {
+ forms.add("");
+ if (idNameMap.containsKey(formConceptId)) {
+ forms.add(idNameMap.get(formConceptId));
+ forms = forms.stream().distinct().collect(Collectors.toList());
+ if (idNameMap.containsKey(thirdEntry.getKey())) {
+ thirdMap.put(idNameMap.get(thirdEntry.getKey()), forms);
+ } /*else {
+ thirdMap.put("", Lists.newLinkedList());
+ subMap.put(subEntry.getKey(), thirdMap);
+ if (subMap != null && subMap.size() > 0) {
+ * 根据标准名称分组-返回名称
+ * @param uniqueNames
+ * @return uniqueName, form, hisName, hisDetailName
+ public Map<String, Map<String, Map<String, List<String>>>> groupByUniqueNameWithName(List<String> uniqueNames, Integer type, Long hospitalId) {
+ List<Long> conceptIds = Lists.newArrayList();
+ RespDTO<List<IndexBatchDTO>> respDTO = null;
+ List<IndexBatchDTO> indexList = Lists.newArrayList();
+ if (ListUtil.isNotEmpty(uniqueNames)) {
+ conceptVO.setNames(uniqueNames);
+ conceptVO.setSource(MatchSourceEnum.StandWord.getKey());
+ respDTO = cdssCoreClient.getConceptNames(conceptVO);
+ indexList.addAll(respDTO.data);
+ if (type.equals(ConceptTypeEnum.LisPack.getKey())) {
+ conceptVO.setType(ConceptTypeEnum.Lis.getKey());
+ conceptIds = indexList.stream().map(IndexBatchDTO::getId).distinct().collect(Collectors.toList());
+ if (ListUtil.isNotEmpty(conceptIds)) {
+ queryWrapper.in("concept_id", conceptIds);
+ List<MappingConfigWrapper> wrapperList = BeanUtil.listCopyTo(list, MappingConfigWrapper.class);
+ wrapperList = addNames(wrapperList);
+ wrapperList.forEach(item -> {
+ if (StringUtil.isBlank(item.getForm())) {
+ item.setForm("");
+ Map<String, List<MappingConfigWrapper>> map = wrapperList.stream()
+ .filter(i -> StringUtil.isNotBlank(i.getUniqueName()))
+ .collect(Collectors.groupingBy(MappingConfigWrapper::getUniqueName));
+ for (Map.Entry<String, List<MappingConfigWrapper>> entry : map.entrySet()) {
+ Map<String, List<MappingConfigWrapper>> formMap
+ = entry.getValue().stream().collect(Collectors.groupingBy(MappingConfigWrapper::getForm));
+ for (Map.Entry<String, List<MappingConfigWrapper>> subEntry : formMap.entrySet()) {
+ subMap.put(subEntry.getKey(), subEntry.getValue().stream().collect(Collectors.groupingBy(MappingConfigWrapper::getHisName,
+ Collectors.mapping(MappingConfigWrapper::getHisDetailName, Collectors.toList()))));
+ * 返回结果添加标准术语,药品剂型
+ * @param list
+ public List<MappingConfigWrapper> addNames(List<MappingConfigWrapper> list) {
+ return list;
+ List<Long> ids = Lists.newArrayList();
+ ids.addAll(list.stream()
+ .filter(i -> i.getConceptId() != null)
+ .map(MappingConfigWrapper::getConceptId)
+ .filter(i -> i.getFormConceptId() != null)
+ .map(MappingConfigWrapper::getFormConceptId)
+ System.out.println(ids.stream().map(i -> String.valueOf(i)).collect(Collectors.joining(",")));
+ Map<Long, IndexBatchDTO> conceptMap
+ = respDTO.data.stream().collect(Collectors.toMap(IndexBatchDTO::getId, v -> v));
+ for (MappingConfigWrapper record : list) {
+ if (record.getConceptId() != null && conceptMap.containsKey(record.getConceptId())) {
+ record.setUniqueName(conceptMap.get(record.getConceptId()).getName());
+ record.setCode(conceptMap.get(record.getConceptId()).getCode());
+ if (record.getFormConceptId() != null && conceptMap.containsKey(record.getFormConceptId())) {
+ record.setForm(conceptMap.get(record.getFormConceptId()).getName());
+ * 查找指定医院映射关系
+ public List<MappingConfigWrapper> getListByHospitalIdAndType(Long hospitalId, Integer type) {
+ .eq("hospital_id", hospitalId)
+ List<MappingConfigWrapper> retList = BeanUtil.listCopyTo(list, MappingConfigWrapper.class);
+ addNames(retList);
+ return retList;
@@ -9,6 +9,7 @@ import com.diagbot.entity.KlConcept;
import com.diagbot.entity.KlRuleBase;
import com.diagbot.entity.ResultRule;
import com.diagbot.enums.ConEnum;
import com.diagbot.enums.LexiconEnum;
import com.diagbot.enums.RuleBaseTypeEnum;
@@ -56,17 +57,7 @@ public class MedRuleConvertFacade {
private KlRuleBaseFacade klRuleBaseFacade;
- private LisConfigFacade lisConfigFacade;
- private PacsConfigFacade pacsConfigFacade;
- private DrugConfigFacade drugConfigFacade;
- private DiseaseConfigFacade diseaseConfigFacade;
- private OperationConfigFacade operationConfigFacade;
- private TransfusionConfigFacade transfusionConfigFacade;
* 开单规则处理
@@ -133,12 +124,18 @@ public class MedRuleConvertFacade {
return retList;
- Map<String, Map<String, Map<String, List<Long>>>> lisConfigMap = lisConfigFacade.getUniqueConfigMap(hospitalId, null, null);
- Map<String, Map<String, List<Long>>> pacsConfigMap = pacsConfigFacade.getUniqueConfigMap(hospitalId, null, null);
- Map<String, Map<String, Map<String, List<Long>>>> drugConfigMap = drugConfigFacade.getUniqueFormConfigMap(hospitalId, null, null);
- Map<String, Map<String, List<Long>>> diseaseConfigMap = diseaseConfigFacade.getUniqueConfigMap(hospitalId, null, null);
- Map<String, Map<String, List<Long>>> operationConfigMap = operationConfigFacade.getUniqueConfigMap(hospitalId, null, null);
- Map<String, Map<String, List<Long>>> transfusionConfigMap = transfusionConfigFacade.getUniqueConfigMap(hospitalId, null, null);
+ Map<String, Map<String, Map<String, List<String>>>> lisConfigMap
+ = mappingConfigFacade.groupByUniqueNameWithName(null, ConceptTypeEnum.LisPack.getKey(), hospitalId);
+ Map<String, Map<String, Map<String, List<String>>>> pacsConfigMap
+ = mappingConfigFacade.groupByUniqueNameWithName(null, ConceptTypeEnum.Pacs.getKey(), hospitalId);
+ Map<String, Map<String, Map<String, List<String>>>> drugConfigMap
+ = mappingConfigFacade.groupByUniqueNameWithName(null, ConceptTypeEnum.Drug.getKey(), hospitalId);
+ Map<String, Map<String, Map<String, List<String>>>> diseaseConfigMap
+ = mappingConfigFacade.groupByUniqueNameWithName(null, ConceptTypeEnum.Disease.getKey(), hospitalId);
+ Map<String, Map<String, Map<String, List<String>>>> operationConfigMap
+ = mappingConfigFacade.groupByUniqueNameWithName(null, ConceptTypeEnum.Operation.getKey(), hospitalId);
+ Map<String, Map<String, Map<String, List<String>>>> transfusionConfigMap
+ = mappingConfigFacade.groupByUniqueNameWithName(null, ConceptTypeEnum.Transfusion.getKey(), hospitalId);
//高危手术结果去重
if (caseId.equals(6L)) {
@@ -925,7 +922,9 @@ public class MedRuleConvertFacade {
* @param type
- public List<ResultRule> getMappingResult(ResultRule result, Map<String, Map<String, List<Long>>> configMap, Integer type) {
+ public List<ResultRule> getMappingResult(ResultRule result,
+ Map<String, Map<String, Map<String, List<String>>>> configMap,
+ Integer type) {
List<ResultRule> retList = Lists.newLinkedList();
if (configMap == null || configMap.size() == 0) {
result.setSuccess(0);
@@ -945,7 +944,7 @@ public class MedRuleConvertFacade {
List<String> hisNames = configMap.containsKey(keyName)
- ? new ArrayList<>(configMap.get(keyName).keySet())
+ ? configMap.get(keyName).get("").keySet().stream().collect(Collectors.toList())
: new ArrayList<>();
if (ListUtil.isNotEmpty(hisNames)) {
for (String hisName : hisNames) {
@@ -977,7 +976,7 @@ public class MedRuleConvertFacade {
public List<ResultRule> getMappingResult_medicine(ResultRule result,
- Map<String, Map<String, Map<String, List<Long>>>> configMap,
Integer type, Integer ruleType) {
@@ -998,7 +997,7 @@ public class MedRuleConvertFacade {
if (ruleType.equals(RuleTypeEnum.HighRisk.getKey())) {
- Map<String, Map<String, List<Long>>> formMap = configMap.containsKey(keyName)
+ Map<String, Map<String, List<String>>> formMap = configMap.containsKey(keyName)
? configMap.get(keyName)
: new HashMap<>();
if (formMap.size() > 0) {
@@ -1072,7 +1071,7 @@ public class MedRuleConvertFacade {
- public List<ResultRule> getMappingResult_lis(ResultRule result, Map<String, Map<String, Map<String, List<Long>>>> configMap, Integer type) {
+ public List<ResultRule> getMappingResult_lis(ResultRule result, Map<String, Map<String, Map<String, List<String>>>> configMap, Integer type) {
@@ -1091,7 +1090,7 @@ public class MedRuleConvertFacade {
keyName = result.getRuleBaseLibName();
- Map<String, Map<String, List<Long>>> subConfigMap = configMap.get(keyName);
+ Map<String, Map<String, List<String>>> subConfigMap = configMap.get(keyName);
if (subConfigMap == null || subConfigMap.size() == 0) {
if (type.equals(1)) {
@@ -1103,8 +1102,8 @@ public class MedRuleConvertFacade {
- for (Map.Entry<String, Map<String, List<Long>>> subEntry : subConfigMap.entrySet()) {
- subEntry.getValue().keySet().forEach(detailName -> {
+ for (Map.Entry<String, List<String>> subEntry : subConfigMap.get("").entrySet()) {
+ subEntry.getValue().forEach(detailName -> {
ResultRule bmResult = new ResultRule();
BeanUtil.copyProperties(result, bmResult);
@@ -1863,7 +1862,7 @@ public class MedRuleConvertFacade {
* @param max
- public BigDecimal random(BigDecimal min, BigDecimal max, Boolean minBoundary, Boolean maxBoundary,Integer accuracy) {
+ public BigDecimal random(BigDecimal min, BigDecimal max, Boolean minBoundary, Boolean maxBoundary, Integer accuracy) {
if (min == null) {
min = BigDecimal.ZERO;
@@ -267,7 +267,7 @@ public class MedSearchDataFacade {
Lis lis = new Lis();
if (hospitalId < 0) {
lis.setName(result.getRuleBaseLibName());
- lis.setDetailName("");
+ lis.setDetailName(result.getRuleBaseLibName());
} else {
lis.setName(result.getRuleBaseHisName());
lis.setDetailName(result.getRuleBaseHisDetailName());
@@ -1,605 +0,0 @@
-import com.diagbot.vo.NurseConfigListVO;
-import com.diagbot.vo.NurseConfigPageVO;
- * @time: 2021/4/26 13:32
-public class NurseConfigFacade {
- * @param nurseConfig
- public Boolean isExistRecord(NurseConfig nurseConfig) {
- QueryWrapper<NurseConfig> queryWrapper = new QueryWrapper<>();
- .eq("hospital_id", nurseConfig.getHospitalId())
- .eq("his_name", nurseConfig.getHisName())
- .eq("unique_name", nurseConfig.getUniqueName());
- NurseConfig oldRecord = nurseConfigService.getOne(queryWrapper, false);
- if (nurseConfig.getId() == null
- if (nurseConfig.getId() != null
- && !nurseConfig.getId().equals(oldRecord.getId())) {
- public Boolean saveOrUpdateRecord(NurseConfig nurseConfig) {
- nurseConfig.setModifier(userId);
- nurseConfig.setGmtModified(now);
- if (nurseConfig.getId() == null) {
- nurseConfig.setCreator(userId);
- nurseConfig.setGmtCreate(now);
- if (nurseConfig.getIsDeleted() == null) {
- nurseConfig.setIsDeleted(IsDeleteEnum.N.getKey());
- nurseConfigService.saveOrUpdate(nurseConfig);
- * @param nurseConfigListVO
- public Boolean saveOrUpdateRecords(NurseConfigListVO nurseConfigListVO) {
- if (ListUtil.isEmpty(nurseConfigListVO.getNurseConfigList())) {
- return saveOrUpdateRecords(nurseConfigListVO.getNurseConfigList());
- * @param nurseConfigList
- public Boolean saveOrUpdateRecords(List<NurseConfig> nurseConfigList) {
- if (ListUtil.isEmpty(nurseConfigList)) {
- nurseConfigList = nurseConfigList
- Long hospitalId = nurseConfigList.get(0).getHospitalId();
- nurseConfigList.forEach(nurseConfig -> {
- if (configMap.containsKey(nurseConfig.getHisName())
- && ListUtil.isNotEmpty(configMap.get(nurseConfig.getHisName()).get(nurseConfig.getUniqueName()))) {
- deleteIds.addAll(configMap.get(nurseConfig.getHisName()).get(nurseConfig.getUniqueName()));
- nurseConfigService.saveOrUpdateBatch(nurseConfigList);
- UpdateWrapper<NurseConfig> updateWrapper = new UpdateWrapper<>();
- nurseConfigService.removeById(idVO.getId());
- nurseConfigService.removeByIds(idListVO.getIds());
- * @param nurseConfigPageVO
- public IPage<NurseConfig> getPage(NurseConfigPageVO nurseConfigPageVO) {
- return nurseConfigService.getPage(nurseConfigPageVO);
- List<NurseConfig> nurseConfigList = ExcelUtils.importExcel(file, 0, 1, NurseConfig.class);
- importExcelRecords(nurseConfigList, hospitalIdVO);
- public Boolean importExcelRecords(List<NurseConfig> nurseConfigList, HospitalIdVO hospitalIdVO) {
- nurseConfigList = nurseConfigList.stream()
- .filter(NurseConfig::nonNull)
- nurseConfig.setHospitalId(hospitalIdVO.getHospitalId());
- for (int i = 0; i < nurseConfigList.size(); i++) {
- if (StringUtil.isBlank(nurseConfigList.get(i).getHisName())
- || StringUtil.isBlank(nurseConfigList.get(i).getUniqueName())) {
- if (StringUtil.isNotBlank(nurseConfigList.get(i).getHisName())) {
- nurseConfigList.get(i).setHisName(nurseConfigList.get(i).getHisName().trim());
- if (StringUtil.isNotBlank(nurseConfigList.get(i).getUniqueName())) {
- nurseConfigList.get(i).setUniqueName(nurseConfigList.get(i).getUniqueName().trim());
- if (StringUtil.isNotBlank(nurseConfigList.get(i).getUniqueCode())) {
- nurseConfigList.get(i).setUniqueCode(nurseConfigList.get(i).getUniqueCode().trim());
- nurseConfigList.get(i).setUniqueCode(null);
- nurseConfig.setHospitalId(Long.valueOf(hospitalId));
- List<String> uniqueNames = nurseConfigList.stream()
- conceptVO.setType(ConceptTypeEnum.Nurse.getKey());
- if (!names.contains(nurseConfigList.get(i).getUniqueName())) {
- List<NurseConfig> records = nurseConfigService.list(queryWrapper);
- Map<String, List<NurseConfig>> configMap = EntityUtil.makeEntityListMap(records, "hisName");
- for (Map.Entry<String, List<NurseConfig>> entry : configMap.entrySet()) {
- Map<String, List<NurseConfig>> subMap = EntityUtil.makeEntityListMap(entry.getValue(), "uniqueName");
- for (Map.Entry<String, List<NurseConfig>> subEntry : subMap.entrySet()) {
- Map<String, List<NurseConfig>> configMap = EntityUtil.makeEntityListMap(records, "uniqueName");
- Map<String, List<NurseConfig>> subMap = EntityUtil.makeEntityListMap(entry.getValue(), "hisName");
- String fileName = "护理映射.xls";
- ExcelUtils.exportExcel(records, null, "sheet1", NurseConfig.class, fileName, response, 12.8f);
- return nurseConfigService.getRelationNumPage(hosRelationNumPageVO);
- String fileName = "护理映射模板.xls";
- ExcelUtils.exportExcel(new ArrayList<>(), null, "sheet1", NurseConfig.class, fileName, response, 12.8f);
- List<NurseConfig> originList = ExcelUtils.importExcel(file, 0, 1, NurseConfig.class);
- List<NurseConfig> retList = dataProcess(originList);
- String fileName = "护理关联数据(预匹配).xls";
- ExcelUtils.exportExcel(retList, null, "sheet1", NurseConfig.class, fileName, response, 12.8f);
- public List<NurseConfig> dataProcess(List<NurseConfig> originList) {
- List<NurseConfig> retList = Lists.newLinkedList();
- Map<String, List<NurseConfig>> allMap = getAll(hisNameList);
- originList = originList.stream().filter(NurseConfig::nonNull).collect(Collectors.toList());
- for (Map.Entry<String, List<NurseConfig>> entry : allMap.entrySet()) {
- for (NurseConfig originItem : originList) {
- List<NurseConfig> items = allMap.get(originItem.getHisName());
- for (NurseConfig item : items) {
- public Map<String, List<NurseConfig>> getAll(List<String> hisNameList) {
- Map<String, List<NurseConfig>> retMap = new HashMap<>();
- public List<NurseConfig> getListByHospitalId(Long hospitalId) {
- return nurseConfigService.list(queryWrapper);
-import com.diagbot.vo.OperationConfigListVO;
-import com.diagbot.vo.OperationConfigPageVO;
-public class OperationConfigFacade {
- * @param operationConfig
- public Boolean isExistRecord(OperationConfig operationConfig) {
- QueryWrapper<OperationConfig> queryWrapper = new QueryWrapper<>();
- .eq("hospital_id", operationConfig.getHospitalId())
- .eq("his_name", operationConfig.getHisName())
- .eq("unique_name", operationConfig.getUniqueName());
- OperationConfig oldRecord = operationConfigService.getOne(queryWrapper, false);
- if (operationConfig.getId() == null
- if (operationConfig.getId() != null
- && !operationConfig.getId().equals(oldRecord.getId())) {
- public Boolean saveOrUpdateRecord(OperationConfig operationConfig) {
- operationConfig.setModifier(userId);
- operationConfig.setGmtModified(now);
- if (operationConfig.getId() == null) {
- operationConfig.setCreator(userId);
- operationConfig.setGmtCreate(now);
- if (operationConfig.getIsDeleted() == null) {
- operationConfig.setIsDeleted(IsDeleteEnum.N.getKey());
- operationConfigService.saveOrUpdate(operationConfig);
- * @param operationConfigListVO
- public Boolean saveOrUpdateRecords(OperationConfigListVO operationConfigListVO) {
- if (ListUtil.isEmpty(operationConfigListVO.getOperationConfigList())) {
- return saveOrUpdateRecords(operationConfigListVO.getOperationConfigList());
- * @param operationConfigList
- public Boolean saveOrUpdateRecords(List<OperationConfig> operationConfigList) {
- if (ListUtil.isEmpty(operationConfigList)) {
- operationConfigList = operationConfigList
- Long hospitalId = operationConfigList.get(0).getHospitalId();
- operationConfigList.forEach(operationConfig -> {
- if (configMap.containsKey(operationConfig.getHisName())
- && ListUtil.isNotEmpty(configMap.get(operationConfig.getHisName()).get(operationConfig.getUniqueName()))) {
- deleteIds.addAll(configMap.get(operationConfig.getHisName()).get(operationConfig.getUniqueName()));
- operationConfigService.saveOrUpdateBatch(operationConfigList);
- UpdateWrapper<OperationConfig> updateWrapper = new UpdateWrapper<>();
- operationConfigService.removeById(idVO.getId());
- operationConfigService.removeByIds(idListVO.getIds());
- * @param operationConfigPageVO
- public IPage<OperationConfig> getPage(OperationConfigPageVO operationConfigPageVO) {
- return operationConfigService.getPage(operationConfigPageVO);
- List<OperationConfig> operationConfigList = ExcelUtils.importExcel(file, 0, 1, OperationConfig.class);
- importExcelRecords(operationConfigList, hospitalIdVO);
- public Boolean importExcelRecords(List<OperationConfig> operationConfigList, HospitalIdVO hospitalIdVO) {
- operationConfigList = operationConfigList.stream()
- .filter(OperationConfig::nonNull)
- operationConfig.setHospitalId(hospitalIdVO.getHospitalId());
- for (int i = 0; i < operationConfigList.size(); i++) {
- if (StringUtil.isBlank(operationConfigList.get(i).getHisName())
- || StringUtil.isBlank(operationConfigList.get(i).getUniqueName())) {
- if (StringUtil.isNotBlank(operationConfigList.get(i).getHisName())) {
- operationConfigList.get(i).setHisName(operationConfigList.get(i).getHisName().trim());
- if (StringUtil.isNotBlank(operationConfigList.get(i).getUniqueName())) {
- operationConfigList.get(i).setUniqueName(operationConfigList.get(i).getUniqueName().trim());
- if (StringUtil.isNotBlank(operationConfigList.get(i).getUniqueCode())) {
- operationConfigList.get(i).setUniqueCode(operationConfigList.get(i).getUniqueCode().trim());
- operationConfigList.get(i).setUniqueCode(null);
- operationConfig.setHospitalId(Long.valueOf(hospitalId));
- List<String> uniqueNames = operationConfigList.stream()
- conceptVO.setType(ConceptTypeEnum.Operation.getKey());
- if (!names.contains(operationConfigList.get(i).getUniqueName())) {
- List<OperationConfig> records = operationConfigService.list(queryWrapper);
- Map<String, List<OperationConfig>> configMap = EntityUtil.makeEntityListMap(records, "hisName");
- for (Map.Entry<String, List<OperationConfig>> entry : configMap.entrySet()) {
- Map<String, List<OperationConfig>> subMap = EntityUtil.makeEntityListMap(entry.getValue(), "uniqueName");
- for (Map.Entry<String, List<OperationConfig>> subEntry : subMap.entrySet()) {
- Map<String, List<OperationConfig>> configMap = EntityUtil.makeEntityListMap(records, "uniqueName");
- Map<String, List<OperationConfig>> subMap = EntityUtil.makeEntityListMap(entry.getValue(), "hisName");
- String fileName = "手术映射.xls";
- ExcelUtils.exportExcel(records, null, "sheet1", OperationConfig.class, fileName, response, 12.8f);
- return operationConfigService.getRelationNumPage(hosRelationNumPageVO);
- String fileName = "手术映射模板.xls";
- ExcelUtils.exportExcel(new ArrayList<>(), null, "sheet1", OperationConfig.class, fileName, response, 12.8f);
- List<OperationConfig> originList = ExcelUtils.importExcel(file, 0, 1, OperationConfig.class);
- List<OperationConfig> retList = dataProcess(originList);
- String fileName = "手术和操作关联数据(预匹配).xls";
- ExcelUtils.exportExcel(retList, null, "sheet1", OperationConfig.class, fileName, response, 12.8f);
- public List<OperationConfig> dataProcess(List<OperationConfig> originList) {
- List<OperationConfig> retList = Lists.newLinkedList();
- Map<String, List<OperationConfig>> allMap = getAll(hisNameList);
- originList = originList.stream().filter(OperationConfig::nonNull).collect(Collectors.toList());
- for (Map.Entry<String, List<OperationConfig>> entry : allMap.entrySet()) {
- for (OperationConfig originItem : originList) {
- List<OperationConfig> items = allMap.get(originItem.getHisName());
- for (OperationConfig item : items) {
- public Map<String, List<OperationConfig>> getAll(List<String> hisNameList) {
- Map<String, List<OperationConfig>> retMap = new HashMap<>();
- public List<OperationConfig> getListByHospitalId(Long hospitalId) {
- return operationConfigService.list(queryWrapper);
@@ -1,603 +0,0 @@
-import com.diagbot.vo.PacsConfigListVO;
-import com.diagbot.vo.PacsConfigPageVO;
-public class PacsConfigFacade {
- * @param pacsConfig
- public Boolean isExistRecord(PacsConfig pacsConfig) {
- QueryWrapper<PacsConfig> queryWrapper = new QueryWrapper<>();
- .eq("hospital_id", pacsConfig.getHospitalId())
- .eq("his_name", pacsConfig.getHisName())
- .eq("unique_name", pacsConfig.getUniqueName());
- PacsConfig oldRecord = pacsConfigService.getOne(queryWrapper, false);
- if (pacsConfig.getId() == null
- if (pacsConfig.getId() != null
- && !pacsConfig.getId().equals(oldRecord.getId())) {
- public Boolean saveOrUpdateRecord(PacsConfig pacsConfig) {
- pacsConfig.setModifier(userId);
- pacsConfig.setGmtModified(now);
- if (pacsConfig.getId() == null) {
- pacsConfig.setCreator(userId);
- pacsConfig.setGmtCreate(now);
- if (pacsConfig.getIsDeleted() == null) {
- pacsConfig.setIsDeleted(IsDeleteEnum.N.getKey());
- pacsConfigService.saveOrUpdate(pacsConfig);
- * @param pacsConfigListVO
- public Boolean saveOrUpdateRecords(PacsConfigListVO pacsConfigListVO) {
- if (ListUtil.isEmpty(pacsConfigListVO.getPacsConfigList())) {
- return saveOrUpdateRecords(pacsConfigListVO.getPacsConfigList());
- * @param pacsConfigList
- public Boolean saveOrUpdateRecords(List<PacsConfig> pacsConfigList) {
- if (ListUtil.isEmpty(pacsConfigList)) {
- pacsConfigList = pacsConfigList
- Long hospitalId = pacsConfigList.get(0).getHospitalId();
- pacsConfigList.forEach(pacsConfig -> {
- if (configMap.containsKey(pacsConfig.getHisName())
- && ListUtil.isNotEmpty(configMap.get(pacsConfig.getHisName()).get(pacsConfig.getUniqueName()))) {
- deleteIds.addAll(configMap.get(pacsConfig.getHisName()).get(pacsConfig.getUniqueName()));
- pacsConfigService.saveOrUpdateBatch(pacsConfigList);
- UpdateWrapper<PacsConfig> updateWrapper = new UpdateWrapper<>();
- pacsConfigService.removeById(idVO.getId());
- pacsConfigService.removeByIds(idListVO.getIds());
- * @param pacsConfigPageVO
- public IPage<PacsConfig> getPage(PacsConfigPageVO pacsConfigPageVO) {
- return pacsConfigService.getPage(pacsConfigPageVO);
- List<PacsConfig> pacsConfigList = ExcelUtils.importExcel(file, 0, 1, PacsConfig.class);
- importExcelRecords(pacsConfigList, hospitalIdVO);
- public Boolean importExcelRecords(List<PacsConfig> pacsConfigList, HospitalIdVO hospitalIdVO) {
- pacsConfigList = pacsConfigList.stream()
- .filter(PacsConfig::nonNull)
- pacsConfig.setHospitalId(hospitalIdVO.getHospitalId());
- for (int i = 0; i < pacsConfigList.size(); i++) {
- if (StringUtil.isBlank(pacsConfigList.get(i).getHisName())
- || StringUtil.isBlank(pacsConfigList.get(i).getUniqueName())) {
- if (StringUtil.isNotBlank(pacsConfigList.get(i).getHisName())) {
- pacsConfigList.get(i).setHisName(pacsConfigList.get(i).getHisName().trim());
- if (StringUtil.isNotBlank(pacsConfigList.get(i).getUniqueName())) {
- pacsConfigList.get(i).setUniqueName(pacsConfigList.get(i).getUniqueName().trim());
- if (StringUtil.isNotBlank(pacsConfigList.get(i).getUniqueCode())) {
- pacsConfigList.get(i).setUniqueCode(pacsConfigList.get(i).getUniqueCode().trim());
- pacsConfigList.get(i).setUniqueCode(null);
- pacsConfig.setHospitalId(Long.valueOf(hospitalId));
- List<String> uniqueNames = pacsConfigList.stream()
- conceptVO.setType(ConceptTypeEnum.Pacs.getKey());
- if (!names.contains(pacsConfigList.get(i).getUniqueName())) {
- List<PacsConfig> records = pacsConfigService.list(queryWrapper);
- Map<String, List<PacsConfig>> configMap = EntityUtil.makeEntityListMap(records, "hisName");
- for (Map.Entry<String, List<PacsConfig>> entry : configMap.entrySet()) {
- Map<String, List<PacsConfig>> subMap = EntityUtil.makeEntityListMap(entry.getValue(), "uniqueName");
- for (Map.Entry<String, List<PacsConfig>> subEntry : subMap.entrySet()) {
- Map<String, List<PacsConfig>> configMap = EntityUtil.makeEntityListMap(records, "uniqueName");
- Map<String, List<PacsConfig>> subMap = EntityUtil.makeEntityListMap(entry.getValue(), "hisName");
- String fileName = "检查映射.xls";
- ExcelUtils.exportExcel(records, null, "sheet1", PacsConfig.class, fileName, response, 12.8f);
- return pacsConfigService.getRelationNumPage(hosRelationNumPageVO);
- String fileName = "检查映射模板.xls";
- ExcelUtils.exportExcel(new ArrayList<>(), null, "sheet1", PacsConfig.class, fileName, response, 12.8f);
- List<PacsConfig> originList = ExcelUtils.importExcel(file, 0, 1, PacsConfig.class);
- List<PacsConfig> retList = dataProcess(originList);
- String fileName = "检查关联数据(预匹配).xls";
- ExcelUtils.exportExcel(retList, null, "sheet1", PacsConfig.class, fileName, response, 12.8f);
- public List<PacsConfig> dataProcess(List<PacsConfig> originList) {
- List<PacsConfig> retList = Lists.newLinkedList();
- Map<String, List<PacsConfig>> allMap = getAll(hisNameList);
- originList = originList.stream().filter(PacsConfig::nonNull).collect(Collectors.toList());
- for (Map.Entry<String, List<PacsConfig>> entry : allMap.entrySet()) {
- for (PacsConfig originItem : originList) {
- List<PacsConfig> items = allMap.get(originItem.getHisName());
- for (PacsConfig item : items) {
- public Map<String, List<PacsConfig>> getAll(List<String> hisNameList) {
- Map<String, List<PacsConfig>> retMap = new HashMap<>();
- public List<PacsConfig> getListByHospitalId(Long hospitalId) {
- return pacsConfigService.list(queryWrapper);
@@ -80,9 +80,12 @@ public class RelationContactFacade extends KlRelationServiceImpl {
- List<KlRelation> relationList = this.list(new QueryWrapper<KlRelation>()
- .in("start_id", sids)
- .eq("relation_id", rid));
+ List<KlRelation> relationList = Lists.newArrayList();
+ if(ListUtil.isNotEmpty(sids)){
+ relationList = this.list(new QueryWrapper<KlRelation>()
+ .in("start_id", sids)
+ .eq("relation_id", rid));
List<Long> ids = relationList.stream().map(x -> x.getId()).collect(Collectors.toList());
//先删除
if (ListUtil.isNotEmpty(ids)) {
@@ -23,6 +23,7 @@ import com.diagbot.entity.ResultStaticKnowledge;
import com.diagbot.enums.ConceptTypeEnum;
@@ -71,15 +72,7 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
private KlConceptStaticFacade klConceptStaticFacade;
private RunningInfoFacade runningInfoFacade;
@@ -150,7 +143,8 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
// 已存在数据
- Map<String, Map<String, Map<String, List<Long>>>> hisConfigMap = lisConfigFacade.getConfigMap(Long.valueOf(hospitalId), null, null);
+ Map<String, Map<String, Map<String, List<String>>>> hisConfigMap
+ = mappingConfigFacade.groupByHisNameWithName(null, ConceptTypeEnum.LisPack.getKey(), Long.valueOf(hospitalId), StatusEnum.Enable.getKey());
//术语映射
for (LisConfig config : lisConfigList) {
@@ -168,7 +162,7 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
result.setHisDetailName(config.getHisDetailName());
if (hisConfigMap.containsKey(result.getHisName())
&& hisConfigMap.get(result.getHisName()).containsKey(result.getHisDetailName())) {
- Map<String, List<Long>> subMap = hisConfigMap.get(result.getHisName()).get(result.getHisDetailName());
+ Map<String, List<String>> subMap = hisConfigMap.get(result.getHisName()).get(result.getHisDetailName());
if (subMap != null && subMap.size() > 0) {
for (String subKey : subMap.keySet()) {
ResultStaticKnowledge subResult = new ResultStaticKnowledge();
@@ -196,6 +190,7 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
.map(i -> i.getName())
.collect(Collectors.toList());
ConceptVO conceptVO = new ConceptVO();
conceptVO.setNames(uniqueNames);
conceptVO.setType(ConceptTypeEnum.LisPack.getKey());
RespDTO<List<IndexBatchDTO>> respLisPackDTO = cdssCoreClient.getConceptNames(conceptVO);
@@ -350,7 +345,8 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
- Map<String, Map<String, List<Long>>> hisConfigMap = pacsConfigFacade.getConfigMap(Long.valueOf(hospitalId), null, null);
+ = mappingConfigFacade.groupByHisNameWithName(null, ConceptTypeEnum.Pacs.getKey(), Long.valueOf(hospitalId), StatusEnum.Enable.getKey());
for (PacsConfig config : pacsConfigList) {
ResultStaticKnowledge result = new ResultStaticKnowledge();
@@ -366,7 +362,7 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
result.setHisName(config.getHisName());
if (hisConfigMap.containsKey(result.getHisName())) {
- Map<String, List<Long>> subMap = hisConfigMap.get(result.getHisName());
+ Map<String, List<String>> subMap = hisConfigMap.get(result.getHisName()).get("");
@@ -394,6 +390,7 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
.distinct()
conceptVO.setType(ConceptTypeEnum.Pacs.getKey());
RespDTO<List<IndexBatchDTO>> respDTO = cdssCoreClient.getConceptNames(conceptVO);
@@ -540,7 +537,8 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
- Map<String, Map<String, Long>> hisConfigMap = drugConfigFacade.getConfigMapWithoutForm(Long.valueOf(hospitalId), null, null);
+ = mappingConfigFacade.groupByHisNameWithName(null, ConceptTypeEnum.Drug.getKey(), Long.valueOf(hospitalId), StatusEnum.Enable.getKey());
for (DrugConfig config : drugConfigList) {
@@ -557,7 +555,7 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
- Map<String, Long> subMap = hisConfigMap.get(result.getHisName());
@@ -585,6 +583,7 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
conceptVO.setType(ConceptTypeEnum.Drug.getKey());
@@ -696,7 +695,9 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
- Map<String, Map<String, List<Long>>> hisConfigMap = diseaseConfigFacade.getConfigMap(Long.valueOf(hospitalId), null, null);
+ = mappingConfigFacade.groupByHisNameWithName(null, ConceptTypeEnum.Disease.getKey(), Long.valueOf(hospitalId), StatusEnum.Enable.getKey());
+ //Map<String, Map<String, List<Long>>> hisConfigMap = diseaseConfigFacade.getConfigMap(Long.valueOf(hospitalId), null, null);
for (DiseaseConfig config : diseaseConfigList) {
@@ -713,7 +714,7 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
@@ -741,6 +742,7 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
conceptVO.setType(ConceptTypeEnum.Disease.getKey());
@@ -767,7 +769,7 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
infoList = Lists.newLinkedList();
List<String> diseaseStaticNames = infoList.stream()
- .filter(i -> i.getLibName().equals(LexiconEnum.Disease.getKey()))
+ .filter(i -> i.getLibType().equals(LexiconEnum.Disease.getKey()))
.map(i -> i.getLibName())
@@ -852,7 +854,9 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
- Map<String, Map<String, List<Long>>> hisConfigMap = operationConfigFacade.getConfigMap(Long.valueOf(hospitalId), null, null);
+ = mappingConfigFacade.groupByHisNameWithName(null, ConceptTypeEnum.Operation.getKey(), Long.valueOf(hospitalId), StatusEnum.Enable.getKey());
+ //Map<String, Map<String, List<Long>>> hisConfigMap = operationConfigFacade.getConfigMap(Long.valueOf(hospitalId), null, null);
for (OperationConfig config : operationConfigList) {
@@ -869,7 +873,7 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
@@ -897,6 +901,7 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
conceptVO.setType(ConceptTypeEnum.Operation.getKey());
@@ -1,6 +1,9 @@
package com.diagbot.facade;
import com.diagbot.aggregate.RuleTestAggregate;
import com.diagbot.dto.RuleDTO;
import com.diagbot.entity.DiseaseConfig;
import com.diagbot.entity.DrugConfig;
@@ -8,12 +11,18 @@ import com.diagbot.entity.LisConfig;
import com.diagbot.entity.OperationConfig;
import com.diagbot.entity.PacsConfig;
import com.diagbot.entity.TransfusionConfig;
import com.diagbot.util.ExcelUtils;
import com.diagbot.vo.HospitalIdVO;
import com.diagbot.vo.RuleTestVO;
import com.diagbot.vo.RuleVO;
import io.github.lvyahui8.spring.aggregate.facade.DataBeanAggregateQueryFacade;
@@ -31,23 +40,15 @@ import java.util.stream.Collectors;
@Component
public class RuleTestFacade {
private RuleTestAggregate ruleTestAggregate;
private DataBeanAggregateQueryFacade dataBeanAggregateQueryFacade;
private KlRuleFacade klRuleFacade;
@@ -242,33 +243,88 @@ public class RuleTestFacade {
List<RuleDTO> list = klRuleFacade.getRules(new RuleVO());
- List<LisConfig> lisConfigList = lisConfigFacade.getListByHospitalId(hospitalId);
- List<PacsConfig> pacsConfigList = pacsConfigFacade.getListByHospitalId(hospitalId);
- List<DrugConfig> drugConfigList = drugConfigFacade.getListByHospitalId(hospitalId);
- List<DiseaseConfig> diseaseConfigList = diseaseConfigFacade.getListByHospitalId(hospitalId);
- List<OperationConfig> operationConfigList = operationConfigFacade.getListByHospitalId(hospitalId);
- List<TransfusionConfig> transfusionConfigList = transfusionConfigFacade.getListByHospitalId(hospitalId);
+ List<MappingConfigWrapper> lisConfigList = mappingConfigFacade.getListByHospitalIdAndType(hospitalId, ConceptTypeEnum.LisPack.getKey());
+ List<MappingConfigWrapper> pacsConfigList = mappingConfigFacade.getListByHospitalIdAndType(hospitalId, ConceptTypeEnum.Pacs.getKey());
+ List<MappingConfigWrapper> drugConfigList = mappingConfigFacade.getListByHospitalIdAndType(hospitalId, ConceptTypeEnum.Drug.getKey());
+ List<MappingConfigWrapper> diseaseConfigList = mappingConfigFacade.getListByHospitalIdAndType(hospitalId, ConceptTypeEnum.Disease.getKey());
+ List<MappingConfigWrapper> operationConfigList = mappingConfigFacade.getListByHospitalIdAndType(hospitalId, ConceptTypeEnum.Operation.getKey());
+ List<MappingConfigWrapper> transfusionConfigList = mappingConfigFacade.getListByHospitalIdAndType(hospitalId, ConceptTypeEnum.Transfusion.getKey());
//诊断映射关系
+ //Map<String, Map<String, List<Long>>> diseaseConfigMap = diseaseConfigFacade.getUniqueConfigMap(hospitalId, null, null);
+ Map<String, List<Long>> usedMap = unUsedMappingFacade.usedConceptIds(list);
+ List<Long> lisIds = usedMap.get("lis");
+ List<Long> pacsIds = usedMap.get("pacs");
+ List<Long> diseaseIds = usedMap.get("disease");
+ List<Long> drugIds = usedMap.get("drug");
+ List<Long> operationIds = usedMap.get("operation");
+ List<Long> transfusionIds = usedMap.get("transfusion");
- Map<String, List<String>> usedMap = unUsedMappingFacade.usedNames(list);
+ List<String> lisNames = Lists.newLinkedList();
+ List<String> pacsNames = Lists.newLinkedList();
+ List<String> diseaseNames = Lists.newLinkedList();
+ List<String> drugNames = Lists.newLinkedList();
+ List<String> operationNames = Lists.newLinkedList();
+ List<String> transfusionNames = Lists.newLinkedList();
+ conceptVO.setIds(lisIds);
+ lisNames = respDTO.data.stream().map(IndexBatchDTO::getName).distinct().collect(Collectors.toList());
+ conceptVO.setIds(pacsIds);
+ pacsNames = respDTO.data.stream().map(IndexBatchDTO::getName).distinct().collect(Collectors.toList());
+ conceptVO.setIds(diseaseIds);
+ diseaseNames = respDTO.data.stream().map(IndexBatchDTO::getName).distinct().collect(Collectors.toList());
+ conceptVO.setIds(drugIds);
+ drugNames = respDTO.data.stream().map(IndexBatchDTO::getName).distinct().collect(Collectors.toList());
+ conceptVO.setIds(operationIds);
+ operationNames = respDTO.data.stream().map(IndexBatchDTO::getName).distinct().collect(Collectors.toList());
+ conceptVO.setIds(transfusionIds);
+ transfusionNames = respDTO.data.stream().map(IndexBatchDTO::getName).distinct().collect(Collectors.toList());
- List<String> lisNames = usedMap.get("lis");
- List<String> pacsNames = usedMap.get("pacs");
- List<String> diseaseNames = usedMap.get("disease");
- List<String> drugNames = usedMap.get("drug");
- List<String> operationNames = usedMap.get("operation");
- List<String> transfusionNames = usedMap.get("transfusion");
diseaseNames.addAll(diseaseConfigMap.keySet().stream().filter(i -> i.contains("流产")).collect(Collectors.toList()));
- List<LisConfig> unUsedLisConfigs = unUsedMappingFacade.unUsedMapping(lisConfigList, lisNames);
- List<PacsConfig> unUsedPacsConfigs = unUsedMappingFacade.unUsedMapping(pacsConfigList, pacsNames);
- List<DiseaseConfig> unUsedDiseaseConfigs = unUsedMappingFacade.unUsedMapping(diseaseConfigList, diseaseNames);
- List<DrugConfig> unUsedDrugConfigs = unUsedMappingFacade.unUsedMapping(drugConfigList, drugNames);
- List<OperationConfig> unUsedOperationConfig = unUsedMappingFacade.unUsedMapping(operationConfigList, operationNames);
- List<TransfusionConfig> unUsedTransfusionConfigs = unUsedMappingFacade.unUsedMapping(transfusionConfigList, transfusionNames);
+ List<LisConfig> unUsedLisConfigs
+ = BeanUtil.listCopyTo(unUsedMappingFacade.unUsedMapping(lisConfigList, lisNames), LisConfig.class);
+ List<PacsConfig> unUsedPacsConfigs
+ = BeanUtil.listCopyTo(unUsedMappingFacade.unUsedMapping(pacsConfigList, pacsNames), PacsConfig.class);
+ List<DiseaseConfig> unUsedDiseaseConfigs
+ = BeanUtil.listCopyTo(unUsedMappingFacade.unUsedMapping(diseaseConfigList, diseaseNames), DiseaseConfig.class);
+ List<DrugConfig> unUsedDrugConfigs
+ = BeanUtil.listCopyTo(unUsedMappingFacade.unUsedMapping(drugConfigList, drugNames), DrugConfig.class);
+ List<OperationConfig> unUsedOperationConfig
+ = BeanUtil.listCopyTo(unUsedMappingFacade.unUsedMapping(operationConfigList, operationNames), OperationConfig.class);
+ List<TransfusionConfig> unUsedTransfusionConfigs
+ = BeanUtil.listCopyTo(unUsedMappingFacade.unUsedMapping(transfusionConfigList, transfusionNames), TransfusionConfig.class);
String fileName = "规则未使用的映射关系.xls";
Map<String, Map<Class<?>, List<?>>> map = new HashMap<>();
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.diagbot.entity.CaseInfo;
import com.diagbot.entity.RunningInfo;
import com.diagbot.service.CaseInfoService;
import com.diagbot.service.RunningInfoService;
import com.diagbot.service.impl.RunningInfoServiceImpl;
@@ -12,6 +13,7 @@ import com.diagbot.util.EntityUtil;
import com.diagbot.vo.RunningInfoVO;
+import com.diagbot.vo.RunningStatusVO;
@@ -21,6 +23,7 @@ import java.util.Date;
import java.util.LinkedHashMap;
@@ -122,4 +125,30 @@ public class RunningInfoFacade extends RunningInfoServiceImpl {
});
return retMap;
+ * 自动化测试执行状态
+ * @param runningStatusVO
+ public Boolean getRunningStatus(RunningStatusVO runningStatusVO) {
+ List<CaseInfo> caseList = caseInfoService.list(new QueryWrapper<CaseInfo>()
+ .eq("case_group", runningStatusVO.getCaseGroup()));
+ if (ListUtil.isEmpty(caseList)) {
+ List<Long> caseIds = caseList.stream().map(CaseInfo::getId).distinct().collect(Collectors.toList());
+ List<RunningInfo> list = runningInfoService.list(new QueryWrapper<RunningInfo>()
+ .in("case_id", caseIds)
+ .eq("status", StatusEnum.Enable.getKey()));
-import com.diagbot.vo.ScaleConfigListVO;
-import com.diagbot.vo.ScaleConfigPageVO;
- * @time: 2021/4/13 16:15
-public class ScaleConfigFacade {
- * @param scaleConfig
- public Boolean isExistRecord(ScaleConfig scaleConfig) {
- QueryWrapper<ScaleConfig> queryWrapper = new QueryWrapper<>();
- .eq("hospital_id", scaleConfig.getHospitalId())
- .eq("his_name", scaleConfig.getHisName())
- .eq("unique_name", scaleConfig.getUniqueName());
- ScaleConfig oldRecord = scaleConfigService.getOne(queryWrapper, false);
- if (scaleConfig.getId() == null
- if (scaleConfig.getId() != null
- && !scaleConfig.getId().equals(oldRecord.getId())) {
- public Boolean saveOrUpdateRecord(ScaleConfig scaleConfig) {
- scaleConfig.setModifier(userId);
- scaleConfig.setGmtModified(now);
- if (scaleConfig.getId() == null) {
- scaleConfig.setCreator(userId);
- scaleConfig.setGmtCreate(now);
- if (scaleConfig.getIsDeleted() == null) {
- scaleConfig.setIsDeleted(IsDeleteEnum.N.getKey());
- scaleConfigService.saveOrUpdate(scaleConfig);
- * @param scaleConfigListVO
- public Boolean saveOrUpdateRecords(ScaleConfigListVO scaleConfigListVO) {
- if (ListUtil.isEmpty(scaleConfigListVO.getScaleConfigList())) {
- return saveOrUpdateRecords(scaleConfigListVO.getScaleConfigList());
- * @param scaleConfigList
- public Boolean saveOrUpdateRecords(List<ScaleConfig> scaleConfigList) {
- if (ListUtil.isEmpty(scaleConfigList)) {
- scaleConfigList = scaleConfigList
- Long hospitalId = scaleConfigList.get(0).getHospitalId();
- scaleConfigList.forEach(scaleConfig -> {
- if (configMap.containsKey(scaleConfig.getHisName())
- && ListUtil.isNotEmpty(configMap.get(scaleConfig.getHisName()).get(scaleConfig.getUniqueName()))) {
- deleteIds.addAll(configMap.get(scaleConfig.getHisName()).get(scaleConfig.getUniqueName()));
- scaleConfigService.saveOrUpdateBatch(scaleConfigList);
- UpdateWrapper<ScaleConfig> updateWrapper = new UpdateWrapper<>();
- scaleConfigService.removeById(idVO.getId());
- scaleConfigService.removeByIds(idListVO.getIds());
- * @param scaleConfigPageVO
- public IPage<ScaleConfig> getPage(ScaleConfigPageVO scaleConfigPageVO) {
- return scaleConfigService.getPage(scaleConfigPageVO);
- List<ScaleConfig> scaleConfigList = ExcelUtils.importExcel(file, 0, 1, ScaleConfig.class);
- importExcelRecords(scaleConfigList, hospitalIdVO);
- public Boolean importExcelRecords(List<ScaleConfig> scaleConfigList, HospitalIdVO hospitalIdVO) {
- scaleConfigList = scaleConfigList.stream()
- .filter(ScaleConfig::nonNull)
- scaleConfig.setHospitalId(hospitalIdVO.getHospitalId());
- for (int i = 0; i < scaleConfigList.size(); i++) {
- if (StringUtil.isBlank(scaleConfigList.get(i).getHisName())
- || StringUtil.isBlank(scaleConfigList.get(i).getUniqueName())) {
- if (StringUtil.isNotBlank(scaleConfigList.get(i).getHisName())) {
- scaleConfigList.get(i).setHisName(scaleConfigList.get(i).getHisName().trim());
- if (StringUtil.isNotBlank(scaleConfigList.get(i).getUniqueName())) {
- scaleConfigList.get(i).setUniqueName(scaleConfigList.get(i).getUniqueName().trim());
- if (StringUtil.isNotBlank(scaleConfigList.get(i).getUniqueCode())) {
- scaleConfigList.get(i).setUniqueCode(scaleConfigList.get(i).getUniqueCode().trim());
- scaleConfigList.get(i).setUniqueCode(null);
- scaleConfig.setHospitalId(Long.valueOf(hospitalId));
- List<String> uniqueNames = scaleConfigList.stream()
- conceptVO.setType(ConceptTypeEnum.Scale.getKey());
- if (!names.contains(scaleConfigList.get(i).getUniqueName())) {
- List<ScaleConfig> records = scaleConfigService.list(queryWrapper);
- Map<String, List<ScaleConfig>> configMap = EntityUtil.makeEntityListMap(records, "hisName");
- for (Map.Entry<String, List<ScaleConfig>> entry : configMap.entrySet()) {
- Map<String, List<ScaleConfig>> subMap = EntityUtil.makeEntityListMap(entry.getValue(), "uniqueName");
- for (Map.Entry<String, List<ScaleConfig>> subEntry : subMap.entrySet()) {
- Map<String, List<ScaleConfig>> configMap = EntityUtil.makeEntityListMap(records, "uniqueName");
- Map<String, List<ScaleConfig>> subMap = EntityUtil.makeEntityListMap(entry.getValue(), "hisName");
- String fileName = "量表映射.xls";
- ExcelUtils.exportExcel(records, null, "sheet1", ScaleConfig.class, fileName, response, 12.8f);
- return scaleConfigService.getRelationNumPage(hosRelationNumPageVO);
- String fileName = "量表映射模板.xls";
- ExcelUtils.exportExcel(new ArrayList<>(), null, "sheet1", ScaleConfig.class, fileName, response, 12.8f);
- List<ScaleConfig> originList = ExcelUtils.importExcel(file, 0, 1, ScaleConfig.class);
- List<ScaleConfig> retList = dataProcess(originList);
- String fileName = "量表关联数据(预匹配).xls";
- ExcelUtils.exportExcel(retList, null, "sheet1", ScaleConfig.class, fileName, response, 12.8f);
- public List<ScaleConfig> dataProcess(List<ScaleConfig> originList) {
- List<ScaleConfig> retList = Lists.newLinkedList();
- Map<String, List<ScaleConfig>> allMap = getAll(hisNameList);
- originList = originList.stream().filter(ScaleConfig::nonNull).collect(Collectors.toList());
- for (Map.Entry<String, List<ScaleConfig>> entry : allMap.entrySet()) {
- for (ScaleConfig originItem : originList) {
- List<ScaleConfig> items = allMap.get(originItem.getHisName());
- for (ScaleConfig item : items) {
- public Map<String, List<ScaleConfig>> getAll(List<String> hisNameList) {
- Map<String, List<ScaleConfig>> retMap = new HashMap<>();
- public List<ScaleConfig> getListByHospitalId(Long hospitalId) {
- return scaleConfigService.list(queryWrapper);
@@ -1,597 +0,0 @@
-import com.diagbot.vo.TcmdiseaseConfigListVO;
-import com.diagbot.vo.TcmdiseaseConfigPageVO;
- * @time: 2021/5/14 11:04
-public class TcmdiseaseConfigFacade {
- * @param tcmdiseaseConfig
- public Boolean isExistRecord(TcmdiseaseConfig tcmdiseaseConfig) {
- QueryWrapper<TcmdiseaseConfig> queryWrapper = new QueryWrapper<>();
- .eq("hospital_id", tcmdiseaseConfig.getHospitalId())
- .eq("his_name", tcmdiseaseConfig.getHisName())
- .eq("unique_name", tcmdiseaseConfig.getUniqueName());
- TcmdiseaseConfig oldRecord = tcmdiseaseConfigService.getOne(queryWrapper, false);
- if (tcmdiseaseConfig.getId() == null
- if (tcmdiseaseConfig.getId() != null
- && !tcmdiseaseConfig.getId().equals(oldRecord.getId())) {
- public Boolean saveOrUpdateRecord(TcmdiseaseConfig tcmdiseaseConfig) {
- tcmdiseaseConfig.setModifier(userId);
- tcmdiseaseConfig.setGmtModified(now);
- if (tcmdiseaseConfig.getId() == null) {
- tcmdiseaseConfig.setCreator(userId);
- tcmdiseaseConfig.setGmtCreate(now);
- if (tcmdiseaseConfig.getIsDeleted() == null) {
- tcmdiseaseConfig.setIsDeleted(IsDeleteEnum.N.getKey());
- tcmdiseaseConfigService.saveOrUpdate(tcmdiseaseConfig);
- * @param tcmdiseaseConfigListVO
- public Boolean saveOrUpdateRecords(TcmdiseaseConfigListVO tcmdiseaseConfigListVO) {
- if (ListUtil.isEmpty(tcmdiseaseConfigListVO.getTcmdiseaseConfigList())) {
- return saveOrUpdateRecords(tcmdiseaseConfigListVO.getTcmdiseaseConfigList());
- * @param tcmdiseaseConfigList
- public Boolean saveOrUpdateRecords(List<TcmdiseaseConfig> tcmdiseaseConfigList) {
- if (ListUtil.isEmpty(tcmdiseaseConfigList)) {
- tcmdiseaseConfigList = tcmdiseaseConfigList
- Long hospitalId = tcmdiseaseConfigList.get(0).getHospitalId();
- tcmdiseaseConfigList.forEach(tcmdiseaseConfig -> {
- if (configMap.containsKey(tcmdiseaseConfig.getHisName())
- && ListUtil.isNotEmpty(configMap.get(tcmdiseaseConfig.getHisName()).get(tcmdiseaseConfig.getUniqueName()))) {
- deleteIds.addAll(configMap.get(tcmdiseaseConfig.getHisName()).get(tcmdiseaseConfig.getUniqueName()));
- tcmdiseaseConfigService.saveOrUpdateBatch(tcmdiseaseConfigList);
- tcmdiseaseConfigService.removeById(idVO.getId());
- tcmdiseaseConfigService.removeByIds(idListVO.getIds());
- * @param tcmdiseaseConfigPageVO
- public IPage<TcmdiseaseConfig> getPage(TcmdiseaseConfigPageVO tcmdiseaseConfigPageVO) {
- return tcmdiseaseConfigService.getPage(tcmdiseaseConfigPageVO);
- List<TcmdiseaseConfig> tcmdiseaseConfigList = ExcelUtils.importExcel(file, 0, 1, TcmdiseaseConfig.class);
- importExcelRecords(tcmdiseaseConfigList, hospitalIdVO);
- public Boolean importExcelRecords(List<TcmdiseaseConfig> tcmdiseaseConfigList, HospitalIdVO hospitalIdVO) {
- tcmdiseaseConfigList = tcmdiseaseConfigList.stream()
- .filter(TcmdiseaseConfig::nonNull)
- tcmdiseaseConfig.setHospitalId(hospitalIdVO.getHospitalId());
- for (int i = 0; i < tcmdiseaseConfigList.size(); i++) {
- if (StringUtil.isBlank(tcmdiseaseConfigList.get(i).getHisName())
- || StringUtil.isBlank(tcmdiseaseConfigList.get(i).getUniqueName())) {
- if (StringUtil.isNotBlank(tcmdiseaseConfigList.get(i).getHisName())) {
- tcmdiseaseConfigList.get(i).setHisName(tcmdiseaseConfigList.get(i).getHisName().trim());
- if (StringUtil.isNotBlank(tcmdiseaseConfigList.get(i).getUniqueName())) {
- tcmdiseaseConfigList.get(i).setUniqueName(tcmdiseaseConfigList.get(i).getUniqueName().trim());
- if (StringUtil.isNotBlank(tcmdiseaseConfigList.get(i).getUniqueCode())) {
- tcmdiseaseConfigList.get(i).setUniqueCode(tcmdiseaseConfigList.get(i).getUniqueCode().trim());
- tcmdiseaseConfigList.get(i).setUniqueCode(null);
- tcmdiseaseConfig.setHospitalId(Long.valueOf(hospitalId));
- List<String> uniqueNames = tcmdiseaseConfigList.stream()
- conceptVO.setType(ConceptTypeEnum.Tcmdisease.getKey());
- if (!names.contains(tcmdiseaseConfigList.get(i).getUniqueName())) {
- List<TcmdiseaseConfig> records = tcmdiseaseConfigService.list(queryWrapper);
- Map<String, List<TcmdiseaseConfig>> configMap = EntityUtil.makeEntityListMap(records, "hisName");
- for (Map.Entry<String, List<TcmdiseaseConfig>> entry : configMap.entrySet()) {
- Map<String, List<TcmdiseaseConfig>> subMap = EntityUtil.makeEntityListMap(entry.getValue(), "uniqueName");
- for (Map.Entry<String, List<TcmdiseaseConfig>> subEntry : subMap.entrySet()) {
- Map<String, List<TcmdiseaseConfig>> configMap = EntityUtil.makeEntityListMap(records, "uniqueName");
- Map<String, List<TcmdiseaseConfig>> subMap = EntityUtil.makeEntityListMap(entry.getValue(), "hisName");
- String fileName = "中医疾病映射.xls";
- ExcelUtils.exportExcel(records, null, "sheet1", TcmdiseaseConfig.class, fileName, response, 12.8f);
- return tcmdiseaseConfigService.getRelationNumPage(hosRelationNumPageVO);
- String fileName = "中医疾病映射模板.xls";
- ExcelUtils.exportExcel(new ArrayList<>(), null, "sheet1", TcmdiseaseConfig.class, fileName, response, 12.8f);
- List<TcmdiseaseConfig> originList = ExcelUtils.importExcel(file, 0, 1, TcmdiseaseConfig.class);
- List<TcmdiseaseConfig> retList = dataProcess(originList);
- String fileName = "中医疾病关联数据(预匹配).xls";
- ExcelUtils.exportExcel(retList, null, "sheet1", TcmdiseaseConfig.class, fileName, response, 12.8f);
- public List<TcmdiseaseConfig> dataProcess(List<TcmdiseaseConfig> originList) {
- List<TcmdiseaseConfig> retList = Lists.newLinkedList();
- Map<String, List<TcmdiseaseConfig>> allMap = getAll(hisNameList);
- originList = originList.stream().filter(TcmdiseaseConfig::nonNull).collect(Collectors.toList());
- for (Map.Entry<String, List<TcmdiseaseConfig>> entry : allMap.entrySet()) {
- for (TcmdiseaseConfig originItem : originList) {
- List<TcmdiseaseConfig> items = allMap.get(originItem.getHisName());
- for (TcmdiseaseConfig item : items) {
- item.setUniqueCode(uniqueMap.get(item.getUniqueName()).getCode());
- public Map<String, List<TcmdiseaseConfig>> getAll(List<String> hisNameList) {
- Map<String, List<TcmdiseaseConfig>> retMap = new HashMap<>();
- record.setUniqueCode(StringUtils.isBlank(record.getUniqueCode()) ? null : record.getUniqueName());
- public List<TcmdiseaseConfig> getListByHospitalId(Long hospitalId) {
- return tcmdiseaseConfigService.list(queryWrapper);
-import com.diagbot.vo.TcmsyndromeConfigListVO;
-import com.diagbot.vo.TcmsyndromeConfigPageVO;
-public class TcmsyndromeConfigFacade {
- * @param tcmsyndromeConfig
- public Boolean isExistRecord(TcmsyndromeConfig tcmsyndromeConfig) {
- QueryWrapper<TcmsyndromeConfig> queryWrapper = new QueryWrapper<>();
- .eq("hospital_id", tcmsyndromeConfig.getHospitalId())
- .eq("his_name", tcmsyndromeConfig.getHisName())
- .eq("unique_name", tcmsyndromeConfig.getUniqueName());
- TcmsyndromeConfig oldRecord = tcmsyndromeConfigService.getOne(queryWrapper, false);
- if (tcmsyndromeConfig.getId() == null
- if (tcmsyndromeConfig.getId() != null
- && !tcmsyndromeConfig.getId().equals(oldRecord.getId())) {
- public Boolean saveOrUpdateRecord(TcmsyndromeConfig tcmsyndromeConfig) {
- tcmsyndromeConfig.setModifier(userId);
- tcmsyndromeConfig.setGmtModified(now);
- if (tcmsyndromeConfig.getId() == null) {
- tcmsyndromeConfig.setCreator(userId);
- tcmsyndromeConfig.setGmtCreate(now);
- if (tcmsyndromeConfig.getIsDeleted() == null) {
- tcmsyndromeConfig.setIsDeleted(IsDeleteEnum.N.getKey());
- tcmsyndromeConfigService.saveOrUpdate(tcmsyndromeConfig);
- * @param tcmsyndromeConfigListVO
- public Boolean saveOrUpdateRecords(TcmsyndromeConfigListVO tcmsyndromeConfigListVO) {
- if (ListUtil.isEmpty(tcmsyndromeConfigListVO.getTcmsyndromeConfigList())) {
- return saveOrUpdateRecords(tcmsyndromeConfigListVO.getTcmsyndromeConfigList());
- * @param tcmsyndromeConfigList
- public Boolean saveOrUpdateRecords(List<TcmsyndromeConfig> tcmsyndromeConfigList) {
- if (ListUtil.isEmpty(tcmsyndromeConfigList)) {
- tcmsyndromeConfigList = tcmsyndromeConfigList
- Long hospitalId = tcmsyndromeConfigList.get(0).getHospitalId();
- tcmsyndromeConfigList.forEach(tcmsyndromeConfig -> {
- if (configMap.containsKey(tcmsyndromeConfig.getHisName())
- && ListUtil.isNotEmpty(configMap.get(tcmsyndromeConfig.getHisName()).get(tcmsyndromeConfig.getUniqueName()))) {
- deleteIds.addAll(configMap.get(tcmsyndromeConfig.getHisName()).get(tcmsyndromeConfig.getUniqueName()));
- tcmsyndromeConfigService.saveOrUpdateBatch(tcmsyndromeConfigList);
- tcmsyndromeConfigService.removeById(idVO.getId());
- tcmsyndromeConfigService.removeByIds(idListVO.getIds());
- * @param tcmsyndromeConfigPageVO
- public IPage<TcmsyndromeConfig> getPage(TcmsyndromeConfigPageVO tcmsyndromeConfigPageVO) {
- return tcmsyndromeConfigService.getPage(tcmsyndromeConfigPageVO);
- List<TcmsyndromeConfig> tcmsyndromeConfigList = ExcelUtils.importExcel(file, 0, 1, TcmsyndromeConfig.class);
- importExcelRecords(tcmsyndromeConfigList, hospitalIdVO);
- public Boolean importExcelRecords(List<TcmsyndromeConfig> tcmsyndromeConfigList, HospitalIdVO hospitalIdVO) {
- tcmsyndromeConfigList = tcmsyndromeConfigList.stream()
- .filter(TcmsyndromeConfig::nonNull)
- tcmsyndromeConfig.setHospitalId(hospitalIdVO.getHospitalId());
- for (int i = 0; i < tcmsyndromeConfigList.size(); i++) {
- if (StringUtil.isBlank(tcmsyndromeConfigList.get(i).getHisName())
- || StringUtil.isBlank(tcmsyndromeConfigList.get(i).getUniqueName())) {
- if (StringUtil.isNotBlank(tcmsyndromeConfigList.get(i).getHisName())) {
- tcmsyndromeConfigList.get(i).setHisName(tcmsyndromeConfigList.get(i).getHisName().trim());
- if (StringUtil.isNotBlank(tcmsyndromeConfigList.get(i).getUniqueName())) {
- tcmsyndromeConfigList.get(i).setUniqueName(tcmsyndromeConfigList.get(i).getUniqueName().trim());
- if (StringUtil.isNotBlank(tcmsyndromeConfigList.get(i).getUniqueCode())) {
- tcmsyndromeConfigList.get(i).setUniqueCode(tcmsyndromeConfigList.get(i).getUniqueCode().trim());
- tcmsyndromeConfigList.get(i).setUniqueCode(null);
- tcmsyndromeConfig.setHospitalId(Long.valueOf(hospitalId));
- List<String> uniqueNames = tcmsyndromeConfigList.stream()
- conceptVO.setType(ConceptTypeEnum.Tcmsyndrome.getKey());
- if (!names.contains(tcmsyndromeConfigList.get(i).getUniqueName())) {
- List<TcmsyndromeConfig> records = tcmsyndromeConfigService.list(queryWrapper);
- Map<String, List<TcmsyndromeConfig>> configMap = EntityUtil.makeEntityListMap(records, "hisName");
- for (Map.Entry<String, List<TcmsyndromeConfig>> entry : configMap.entrySet()) {
- Map<String, List<TcmsyndromeConfig>> subMap = EntityUtil.makeEntityListMap(entry.getValue(), "uniqueName");
- for (Map.Entry<String, List<TcmsyndromeConfig>> subEntry : subMap.entrySet()) {
- Map<String, List<TcmsyndromeConfig>> configMap = EntityUtil.makeEntityListMap(records, "uniqueName");
- Map<String, List<TcmsyndromeConfig>> subMap = EntityUtil.makeEntityListMap(entry.getValue(), "hisName");
- String fileName = "中医证候映射.xls";
- ExcelUtils.exportExcel(records, null, "sheet1", TcmsyndromeConfig.class, fileName, response, 12.8f);
- return tcmsyndromeConfigService.getRelationNumPage(hosRelationNumPageVO);
- String fileName = "中医证候映射模板.xls";
- ExcelUtils.exportExcel(new ArrayList<>(), null, "sheet1", TcmsyndromeConfig.class, fileName, response, 12.8f);
- List<TcmsyndromeConfig> originList = ExcelUtils.importExcel(file, 0, 1, TcmsyndromeConfig.class);
- List<TcmsyndromeConfig> retList = dataProcess(originList);
- String fileName = "中医证候关联数据(预匹配).xls";
- ExcelUtils.exportExcel(retList, null, "sheet1", TcmsyndromeConfig.class, fileName, response, 12.8f);
- public List<TcmsyndromeConfig> dataProcess(List<TcmsyndromeConfig> originList) {
- List<TcmsyndromeConfig> retList = Lists.newLinkedList();
- Map<String, List<TcmsyndromeConfig>> allMap = getAll(hisNameList);
- originList = originList.stream().filter(TcmsyndromeConfig::nonNull).collect(Collectors.toList());
- for (Map.Entry<String, List<TcmsyndromeConfig>> entry : allMap.entrySet()) {
- for (TcmsyndromeConfig originItem : originList) {
- List<TcmsyndromeConfig> items = allMap.get(originItem.getHisName());
- for (TcmsyndromeConfig item : items) {
- public Map<String, List<TcmsyndromeConfig>> getAll(List<String> hisNameList) {
- Map<String, List<TcmsyndromeConfig>> retMap = new HashMap<>();
- public List<TcmsyndromeConfig> getListByHospitalId(Long hospitalId) {
- return tcmsyndromeConfigService.list(queryWrapper);
+import com.diagbot.dto.TermConceptDTO;
+import com.diagbot.vo.TermMatchingVO;
+ * @date 2021-06-15 16:46
+public class TermMatchingFacade {
+ CdssCoreClient cdssCoreClient;
+ public List<TermConceptDTO> getTermMatchingAll(TermMatchingVO termMatchingVO) {
+ RespDTO<List<TermConceptDTO>> termMatching = cdssCoreClient.getTermMatching(termMatchingVO);
+ RespDTOUtil.respNGDealCover(termMatching, "术语匹配搜索失败");
+ return termMatching.data;
@@ -0,0 +1,14 @@
+import com.diagbot.service.impl.TranHospitalRelationServiceImpl;
+ * @date 2020-07-29 11:08
+public class TranHospitalRelationFacade extends TranHospitalRelationServiceImpl {
@@ -1,604 +0,0 @@
-import com.diagbot.vo.TransfusionConfigListVO;
-import com.diagbot.vo.TransfusionConfigPageVO;
- * @time: 2020/9/1 11:03
-public class TransfusionConfigFacade {
- * @param transfusionConfig
- public Boolean isExistRecord(TransfusionConfig transfusionConfig) {
- QueryWrapper<TransfusionConfig> queryWrapper = new QueryWrapper<>();
- .eq("hospital_id", transfusionConfig.getHospitalId())
- .eq("his_name", transfusionConfig.getHisName())
- .eq("unique_name", transfusionConfig.getUniqueName());
- TransfusionConfig oldRecord = transfusionConfigService.getOne(queryWrapper, false);
- if (transfusionConfig.getId() == null
- if (transfusionConfig.getId() != null
- && !transfusionConfig.getId().equals(oldRecord.getId())) {
- public Boolean saveOrUpdateRecord(TransfusionConfig transfusionConfig) {
- transfusionConfig.setModifier(userId);
- transfusionConfig.setGmtModified(now);
- if (transfusionConfig.getId() == null) {
- transfusionConfig.setCreator(userId);
- transfusionConfig.setGmtCreate(now);
- if (transfusionConfig.getIsDeleted() == null) {
- transfusionConfig.setIsDeleted(IsDeleteEnum.N.getKey());
- transfusionConfigService.saveOrUpdate(transfusionConfig);
- * @param transfusionConfigListVO
- public Boolean saveOrUpdateRecords(TransfusionConfigListVO transfusionConfigListVO) {
- if (ListUtil.isEmpty(transfusionConfigListVO.getTransfusionConfigList())) {
- return saveOrUpdateRecords(transfusionConfigListVO.getTransfusionConfigList());
- * @param transfusionConfigList
- public Boolean saveOrUpdateRecords(List<TransfusionConfig> transfusionConfigList) {
- if (ListUtil.isEmpty(transfusionConfigList)) {
- transfusionConfigList = transfusionConfigList
- Long hospitalId = transfusionConfigList.get(0).getHospitalId();
- transfusionConfigList.forEach(transfusionConfig -> {
- if (configMap.containsKey(transfusionConfig.getHisName())
- && ListUtil.isNotEmpty(configMap.get(transfusionConfig.getHisName()).get(transfusionConfig.getUniqueName()))) {
- deleteIds.addAll(configMap.get(transfusionConfig.getHisName()).get(transfusionConfig.getUniqueName()));
- transfusionConfigService.saveOrUpdateBatch(transfusionConfigList);
- UpdateWrapper<TransfusionConfig> updateWrapper = new UpdateWrapper<>();
- transfusionConfigService.removeById(idVO.getId());
- transfusionConfigService.removeByIds(idListVO.getIds());
- * @param transfusionConfigPageVO
- public IPage<TransfusionConfig> getPage(TransfusionConfigPageVO transfusionConfigPageVO) {
- return transfusionConfigService.getPage(transfusionConfigPageVO);
- List<TransfusionConfig> transfusionConfigList = ExcelUtils.importExcel(file, 0, 1, TransfusionConfig.class);
- importExcelRecords(transfusionConfigList, hospitalIdVO);
- public Boolean importExcelRecords(List<TransfusionConfig> transfusionConfigList, HospitalIdVO hospitalIdVO) {
- transfusionConfigList = transfusionConfigList.stream()
- .filter(TransfusionConfig::nonNull)
- transfusionConfig.setHospitalId(hospitalIdVO.getHospitalId());
- for (int i = 0; i < transfusionConfigList.size(); i++) {
- if (StringUtil.isBlank(transfusionConfigList.get(i).getHisName())
- || StringUtil.isBlank(transfusionConfigList.get(i).getUniqueName())) {
- if (StringUtil.isNotBlank(transfusionConfigList.get(i).getHisName())) {
- transfusionConfigList.get(i).setHisName(transfusionConfigList.get(i).getHisName().trim());
- if (StringUtil.isNotBlank(transfusionConfigList.get(i).getUniqueName())) {
- transfusionConfigList.get(i).setUniqueName(transfusionConfigList.get(i).getUniqueName().trim());
- if (StringUtil.isNotBlank(transfusionConfigList.get(i).getUniqueCode())) {
- transfusionConfigList.get(i).setUniqueCode(transfusionConfigList.get(i).getUniqueCode().trim());
- transfusionConfigList.get(i).setUniqueCode(null);
- transfusionConfig.setHospitalId(Long.valueOf(hospitalId));
- List<String> uniqueNames = transfusionConfigList.stream()
- conceptVO.setType(ConceptTypeEnum.Transfusion.getKey());
- if (!names.contains(transfusionConfigList.get(i).getUniqueName())) {
- List<TransfusionConfig> records = transfusionConfigService.list(queryWrapper);
- Map<String, List<TransfusionConfig>> configMap = EntityUtil.makeEntityListMap(records, "hisName");
- for (Map.Entry<String, List<TransfusionConfig>> entry : configMap.entrySet()) {
- Map<String, List<TransfusionConfig>> subMap = EntityUtil.makeEntityListMap(entry.getValue(), "uniqueName");
- for (Map.Entry<String, List<TransfusionConfig>> subEntry : subMap.entrySet()) {
- Map<String, List<TransfusionConfig>> configMap = EntityUtil.makeEntityListMap(records, "uniqueName");
- Map<String, List<TransfusionConfig>> subMap = EntityUtil.makeEntityListMap(entry.getValue(), "hisName");
- String fileName = "输血映射.xls";
- ExcelUtils.exportExcel(records, null, "sheet1", TransfusionConfig.class, fileName, response, 12.8f);
- return transfusionConfigService.getRelationNumPage(hosRelationNumPageVO);
- String fileName = "输血映射模板.xls";
- ExcelUtils.exportExcel(new ArrayList<>(), null, "sheet1", TransfusionConfig.class, fileName, response, 12.8f);
- List<TransfusionConfig> originList = ExcelUtils.importExcel(file, 0, 1, TransfusionConfig.class);
- List<TransfusionConfig> retList = dataProcess(originList);
- String fileName = "输血关联数据(预匹配).xls";
- ExcelUtils.exportExcel(retList, null, "sheet1", TransfusionConfig.class, fileName, response, 12.8f);
- public List<TransfusionConfig> dataProcess(List<TransfusionConfig> originList) {
- List<TransfusionConfig> retList = Lists.newLinkedList();
- Map<String, List<TransfusionConfig>> allMap = getAll(hisNameList);
- originList = originList.stream().filter(TransfusionConfig::nonNull).collect(Collectors.toList());
- for (Map.Entry<String, List<TransfusionConfig>> entry : allMap.entrySet()) {
- for (TransfusionConfig originItem : originList) {
- List<TransfusionConfig> items = allMap.get(originItem.getHisName());
- for (TransfusionConfig item : items) {
- public Map<String, List<TransfusionConfig>> getAll(List<String> hisNameList) {
- Map<String, List<TransfusionConfig>> retMap = new HashMap<>();
- public List<TransfusionConfig> getListByHospitalId(Long hospitalId) {
- return transfusionConfigService.list(queryWrapper);
@@ -1,17 +1,12 @@
-import com.alibaba.fastjson.JSONObject;
import com.diagbot.dto.MedClassMedDTO;
-import com.diagbot.entity.ResultRule;
-import com.diagbot.enums.GraphLabelEnum;
-import com.diagbot.enums.StatusEnum;
@@ -19,7 +14,6 @@ import org.springframework.stereotype.Component;
import java.util.HashMap;
-import java.util.Set;
@@ -59,6 +53,7 @@ public class UnUsedMappingFacade {
* 规则包含术语
* @param list
@@ -169,4 +164,118 @@ public class UnUsedMappingFacade {
retMap.put("transfusion", transfusionNames);
+ * 规则包含术语
+ public Map<String, List<Long>> usedConceptIds(List<RuleDTO> list) {
+ Map<String, List<Long>> retMap = new HashMap<>();
+ List<Long> lisIds = list.stream()
+ .filter(i -> i.getRuleLibType().equals(LexiconEnum.LisName.getKey()) || i.getRuleLibType().equals(LexiconEnum.LisSubName.getKey()))
+ .map(RuleDTO::getRuleConceptId)
+ lisIds.addAll(list.stream()
+ .filter(i -> i.getHasSubCond() != null && i.getHasSubCond().equals(1) && (i.getRuleBaseLibType().equals(LexiconEnum.LisName.getKey()) || i.getRuleBaseLibType().equals(LexiconEnum.LisSubName.getKey())))
+ .map(RuleDTO::getRuleBaseConceptId)
+ lisIds = lisIds.stream().distinct().collect(Collectors.toList());
+ List<Long> pacsIds = list.stream()
+ .filter(i -> i.getRuleLibType().equals(LexiconEnum.PacsName.getKey()) || i.getRuleLibType().equals(LexiconEnum.PacsSubName.getKey()))
+ pacsIds.addAll(list.stream()
+ .filter(i -> i.getHasSubCond() != null && i.getHasSubCond().equals(1) && (i.getRuleBaseLibType().equals(LexiconEnum.PacsName.getKey()) || i.getRuleBaseLibType().equals(LexiconEnum.PacsSubName.getKey())))
+ pacsIds = pacsIds.stream().distinct().collect(Collectors.toList());
+ List<Long> diseaseIds = list.stream()
+ .filter(i -> i.getRuleLibType().equals(LexiconEnum.Disease.getKey()))
+ diseaseIds.addAll(list.stream()
+ .filter(i -> i.getHasSubCond() != null && i.getHasSubCond().equals(1) && (i.getRuleBaseLibType().equals(LexiconEnum.Disease.getKey())))
+ diseaseIds = diseaseIds.stream().distinct().collect(Collectors.toList());
+ //药品分类转换
+ List<MedClassMedDTO> medClassMedList = klRelationFacade.getMedClassMedList();
+ Map<String, List<String>> medClassMedMap =
+ medClassMedList.stream().collect(Collectors.groupingBy(MedClassMedDTO::getMedClassLibName,
+ HashMap::new,
+ Collectors.mapping(MedClassMedDTO::getMedLibName, Collectors.toList())));
+ List<RuleDTO> medList = Lists.newLinkedList();
+ for (RuleDTO result : list) {
+ if (result.getHasSubCond() != null && result.getHasSubCond().equals(1)) {
+ if (result.getRuleBaseLibType().equals(LexiconEnum.MedChemClass.getKey())
+ || result.getRuleBaseLibType().equals(LexiconEnum.MedZhiLiaoClass.getKey())
+ || result.getRuleBaseLibType().equals(LexiconEnum.MedYaoLiClass.getKey())) {
+ List<String> medicines = medClassMedMap.get(result.getRuleBaseLibName());
+ if (ListUtil.isNotEmpty(medicines)) {
+ for (String med : medicines) {
+ RuleDTO medResult = new RuleDTO();
+ BeanUtil.copyProperties(result, medResult);
+ medResult.setRuleBaseLibName(med);
+ medResult.setRuleBaseLibType(LexiconEnum.Medicine.getKey());
+ medResult.setRuleBaseLibTypeName(LexiconEnum.Medicine.getName());
+ medList.add(medResult);
+ medList.add(result);
+ List<Long> drugIds = medList.stream()
+ .filter(i -> i.getRuleLibType().equals(LexiconEnum.Medicine.getKey()))
+ drugIds.addAll(medList.stream()
+ .filter(i -> i.getHasSubCond() != null && i.getHasSubCond().equals(1) && (i.getRuleBaseLibType().equals(LexiconEnum.Medicine.getKey())))
+ drugIds = drugIds.stream().distinct().collect(Collectors.toList());
+ List<Long> operationIds = list.stream()
+ .filter(i -> i.getRuleLibType().equals(LexiconEnum.Operation.getKey()))
+ operationIds.addAll(list.stream()
+ .filter(i -> i.getHasSubCond() != null && i.getHasSubCond().equals(1) && (i.getRuleBaseLibType().equals(LexiconEnum.Operation.getKey())))
+ operationIds = operationIds.stream().distinct().collect(Collectors.toList());
+ List<Long> transfusionIds = list.stream()
+ .filter(i -> i.getRuleLibType().equals(LexiconEnum.Transfusion.getKey()))
+ transfusionIds.addAll(list.stream()
+ .filter(i -> i.getHasSubCond() != null && i.getHasSubCond().equals(1) && (i.getRuleBaseLibType().equals(LexiconEnum.Transfusion.getKey())))
+ transfusionIds = transfusionIds.stream().distinct().collect(Collectors.toList());
+ retMap.put("lis", lisIds);
+ retMap.put("pacs", pacsIds);
+ retMap.put("disease", diseaseIds);
+ retMap.put("drug", drugIds);
+ retMap.put("operation", operationIds);
+ retMap.put("transfusion", transfusionIds);
@@ -1,35 +0,0 @@
-package com.diagbot.mapper;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Param;
- * <p>
- * 科室映射表 Mapper 接口
- * </p>
- * @since 2020-08-12
-public interface DeptConfigMapper extends BaseMapper<DeptConfig> {
- IPage<DeptConfig> getPage(@Param("deptConfigPageVO") DeptConfigPageVO deptConfigPageVO);
- IPage<HosRelationNumDTO> getRelationNumPage(@Param("hosRelationNumPageVO") HosRelationNumPageVO hosRelationNumPageVO);
@@ -1,36 +0,0 @@
- * 诊断映射表 Mapper 接口
- * @since 2020-07-28
-public interface DiseaseConfigMapper extends BaseMapper<DiseaseConfig> {
- IPage<DiseaseConfig> getPage(@Param("diseaseConfigPageVO") DiseaseConfigPageVO diseaseConfigPageVO);
- * 药品映射表 Mapper 接口
-public interface DrugConfigMapper extends BaseMapper<DrugConfig> {
- IPage<DrugConfig> getPage(@Param("drugConfigPageVO") DrugConfigPageVO drugConfigPageVO);
@@ -3,7 +3,7 @@ package com.diagbot.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.diagbot.dto.ConceptMappingDTO;
import org.apache.ibatis.annotations.Param;
@@ -23,7 +23,7 @@ public interface HospitalInfoMapper extends BaseMapper<HospitalInfo> {
- IPage<DiseaseConfig> getPage(@Param("hospitalInfoPageVO") HospitalInfoPageVO hospitalInfoPageVO);
+ IPage<HospitalInfoPageDTO> getPage(@Param("hospitalInfoPageVO") HospitalInfoPageVO hospitalInfoPageVO);
* 获取术语映射统计列表
@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+ * 基础规则关联表 Mapper 接口
+public interface KlDiagnoseBaseRelationMapper extends BaseMapper<KlDiagnoseBaseRelation> {
@@ -1,11 +1,14 @@
package com.diagbot.mapper;
import com.diagbot.dto.RelationNameDTO;
import com.diagbot.dto.RelationNodeDTO;
import com.diagbot.entity.KlRelation;
import com.diagbot.vo.DisNameFindVO;
import com.diagbot.vo.KlRelationVO;
import com.diagbot.vo.RelationVO;
@@ -26,13 +29,15 @@ import java.util.List;
* @since 2021-03-01
public interface KlRelationMapper extends BaseMapper<KlRelation> {
- List<RelationNodeDTO> getRelationNodeDTOs(@Param(value="conceptId")Long conceptId, @Param(value="relationId")Long relationId, @Param(value="endTypeId")Long endTypeId);
+ List<RelationNodeDTO> getRelationNodeDTOs(@Param(value = "conceptId") Long conceptId, @Param(value = "relationId") Long relationId, @Param(value = "endTypeId") Long endTypeId);
List<MedClassMedDTO> getMedClassMedList();
List<RelationDTO> getRelations(RelationVO relationVO);
- List<RelationNameDTO> getRelationNameDTOs(@Param(value="conceptIds")List<Long> conceptIds,@Param(value="relationId")Integer relationId);
+ List<RelationNameDTO> getRelationNameDTOs(@Param(value = "conceptIds") List<Long> conceptIds, @Param(value = "relationId") Integer relationId);
List<GetAllForRelationDTO> findDisNameAll(DisNameFindVO disNameFindVO);
+ IPage<ConceptCollectionDTO> getConceptCollectionPage(@Param("conceptCollectionPageVO") ConceptCollectionPageVO conceptCollectionPageVO);
- * 化验公表映射 Mapper 接口
-public interface LisConfigMapper extends BaseMapper<LisConfig> {
- IPage<LisConfig> getPage(@Param("lisConfigPageVO") LisConfigPageVO lisConfigPageVO);
@@ -0,0 +1,15 @@
+ * 医学术语映射表 Mapper 接口
+public interface MappingConfigMapper extends BaseMapper<MappingConfig> {
- * 护理映射表 Mapper 接口
- * @since 2021-04-26
-public interface NurseConfigMapper extends BaseMapper<NurseConfig> {
- IPage<NurseConfig> getPage(@Param("nurseConfigPageVO") NurseConfigPageVO nurseConfigPageVO);
- * 手术映射表 Mapper 接口
-public interface OperationConfigMapper extends BaseMapper<OperationConfig> {
- IPage<OperationConfig> getPage(@Param("operationConfigPageVO") OperationConfigPageVO operationConfigPageVO);
- * 检查公表映射 Mapper 接口
-public interface PacsConfigMapper extends BaseMapper<PacsConfig> {
- IPage<PacsConfig> getPage(@Param("pacsConfigPageVO") PacsConfigPageVO pacsConfigPageVO);
@@ -1,37 +0,0 @@
- * 量表映射表 Mapper 接口
- * @since 2021-04-13
-public interface ScaleConfigMapper extends BaseMapper<ScaleConfig> {
- IPage<ScaleConfig> getPage(@Param("scaleConfigPageVO") ScaleConfigPageVO scaleConfigPageVO);