diff --git a/blood_bus/src/main/java/com/czblood/bus/cache/OptionCache.java b/blood_bus/src/main/java/com/czblood/bus/cache/OptionCache.java index 71ed673..94bc335 100644 --- a/blood_bus/src/main/java/com/czblood/bus/cache/OptionCache.java +++ b/blood_bus/src/main/java/com/czblood/bus/cache/OptionCache.java @@ -13,39 +13,39 @@ import java.util.Collection; public class OptionCache { /** - * 设置字典缓存 + * 设置参数缓存 * * @param key 参数键 * @param xkParameter 参数值 */ - public static void setDictCache(String key, XkParameter xkParameter) { - removeDictCache( key); + public static void setOptCache(String key, XkParameter xkParameter) { + removeOptCache( key); SpringUtils.getBean(RedisCache.class).setCacheObject(getCacheKey(key), xkParameter); } /** - * 获取字典缓存 + * 获取参数缓存 * * @param key 参数键 - * @return dictDatas 字典数据列表 + * @return 参数值 */ public static XkParameter getOptCache(String key) { return SpringUtils.getBean(RedisCache.class).getCacheObject(getCacheKey(key)); } /** - * 删除指定字典缓存 + * 删除指定参数缓存 * - * @param key 字典键 + * @param key 参数键 */ - public static void removeDictCache(String key) { + public static void removeOptCache(String key) { SpringUtils.getBean(RedisCache.class).deleteObject(getCacheKey(key)); } /** - * 清空字典缓存 + * 清空参数缓存 */ - public static void clearDictCache() { + public static void clearOptCache() { Collection keys = SpringUtils.getBean(RedisCache.class).keys(CacheConstants.XK_PARAMETER_KEY + "*"); SpringUtils.getBean(RedisCache.class).deleteObject(keys); } diff --git a/blood_bus/src/main/java/com/czblood/bus/constants/BloodInterfaceTypeConstants.java b/blood_bus/src/main/java/com/czblood/bus/constants/BloodInterfaceTypeConstants.java index fd81945..3ac4c8a 100644 --- a/blood_bus/src/main/java/com/czblood/bus/constants/BloodInterfaceTypeConstants.java +++ b/blood_bus/src/main/java/com/czblood/bus/constants/BloodInterfaceTypeConstants.java @@ -24,4 +24,8 @@ public class BloodInterfaceTypeConstants { * 使用his接口验证密码 */ public static final String HIS_USE_PASSWORD = "HIS_USE_PASSWORD"; + /** + * 获取lis血型结果 + */ + public static final String GET_TEST_RESULT_BLOOD_TYPE = "GET_TEST_RESULT_BLOOD_TYPE"; } diff --git a/blood_bus/src/main/java/com/czblood/bus/controller/BloodCommonController.java b/blood_bus/src/main/java/com/czblood/bus/controller/BloodCommonController.java index 8f6dd93..597f72f 100644 --- a/blood_bus/src/main/java/com/czblood/bus/controller/BloodCommonController.java +++ b/blood_bus/src/main/java/com/czblood/bus/controller/BloodCommonController.java @@ -2,11 +2,13 @@ package com.czblood.bus.controller; import com.czblood.bus.mapper.XkProTransfuseProjectMapper; import com.czblood.bus.mapper.XkXtwhIllDiagnoseMapper; +import com.czblood.bus.mapper.xtwh.XkXtwhOperationMapper; import com.czblood.bus.pojo.*; import com.czblood.bus.pojo.inter.HisUsePasswordRequest; import com.czblood.bus.pojo.xtwh.XkBloodBreed; import com.czblood.bus.pojo.xtwh.XkDmzd; import com.czblood.bus.pojo.xtwh.XkXtwhIllDiagnose; +import com.czblood.bus.pojo.xtwh.XkXtwhOperation; import com.czblood.bus.utils.BloodBankUtil; import com.czblood.bus.utils.BloodInterfaceUtil; import com.czblood.common.core.controller.BaseController; @@ -14,6 +16,7 @@ import com.czblood.common.core.domain.Result; import com.czblood.common.core.domain.entity.SysUser; import com.czblood.common.core.page.TableDataInfo; import com.czblood.common.utils.SecurityUtils; +import com.czblood.system.mapper.SysUserMapper; import com.czblood.system.util.CommonUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -35,6 +38,10 @@ public class BloodCommonController extends BaseController { CommonUtil commonUtil; @Resource XkXtwhIllDiagnoseMapper xkXtwhIllDiagnoseMapper; + @Resource + XkXtwhOperationMapper xkXtwhOperationMapper; + @Resource + SysUserMapper sysUserMapper; @ApiOperation("获取输血前检验项目") @PostMapping("/queryLisProject") @@ -109,6 +116,22 @@ public class BloodCommonController extends BaseController { return new Result("0","校验成功!"); } + + @ApiOperation("查询手术字典") + @GetMapping("/queryOperation") + public TableDataInfo queryOperation(XkXtwhOperation xkXtwhOperation){ + startPage(); + List xkXtwhOperationList = xkXtwhOperationMapper.queryList(xkXtwhOperation); + return getDataTable(xkXtwhOperationList); + } + + @ApiOperation("获取员工数据") + @GetMapping("/queryUserInfo") + public TableDataInfo queryUserInfo(SysUser sysUser){ + List sysUserList = sysUserMapper.selectUserList(sysUser); + return getDataTable(sysUserList); + } + // @ApiOperation("测试接口") // @GetMapping("/test01") // public Result test01(String billNo){ diff --git a/blood_bus/src/main/java/com/czblood/bus/mapper/xtwh/XkXtwhOperationMapper.java b/blood_bus/src/main/java/com/czblood/bus/mapper/xtwh/XkXtwhOperationMapper.java new file mode 100644 index 0000000..deac271 --- /dev/null +++ b/blood_bus/src/main/java/com/czblood/bus/mapper/xtwh/XkXtwhOperationMapper.java @@ -0,0 +1,9 @@ +package com.czblood.bus.mapper.xtwh; + +import com.czblood.bus.pojo.xtwh.XkXtwhOperation; + +import java.util.List; + +public interface XkXtwhOperationMapper { + List queryList(XkXtwhOperation xkXtwhOperation); +} diff --git a/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApply.java b/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApply.java index 734a162..c06943d 100644 --- a/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApply.java +++ b/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApply.java @@ -148,4 +148,6 @@ public class XkTransfuseApply { private String operation_level; @ApiModelProperty("身份证号") private String card_no; + @ApiModelProperty("是否需要做血型复核(A,B需要,C申请单无交叉配血需求时不做血型复查)") + private String need_check; } diff --git a/blood_bus/src/main/java/com/czblood/bus/pojo/inter/GetTestResultBloodTypeRequest.java b/blood_bus/src/main/java/com/czblood/bus/pojo/inter/GetTestResultBloodTypeRequest.java new file mode 100644 index 0000000..ddb5f90 --- /dev/null +++ b/blood_bus/src/main/java/com/czblood/bus/pojo/inter/GetTestResultBloodTypeRequest.java @@ -0,0 +1,20 @@ +package com.czblood.bus.pojo.inter; + +import cn.hutool.json.JSONUtil; +import com.czblood.bus.constants.BloodInterfaceTypeConstants; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class GetTestResultBloodTypeRequest implements BloodInterfaceType { + private final String method = BloodInterfaceTypeConstants.GET_TEST_RESULT; + private String beinhos_id; + + @Override + public String serializationJson() { + return JSONUtil.toJsonStr( this); + } +} diff --git a/blood_bus/src/main/java/com/czblood/bus/pojo/xtwh/XkXtwhOperation.java b/blood_bus/src/main/java/com/czblood/bus/pojo/xtwh/XkXtwhOperation.java new file mode 100644 index 0000000..ba6f524 --- /dev/null +++ b/blood_bus/src/main/java/com/czblood/bus/pojo/xtwh/XkXtwhOperation.java @@ -0,0 +1,17 @@ +package com.czblood.bus.pojo.xtwh; + +import io.swagger.annotations.Api; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Api(tags = "手术字典") +public class XkXtwhOperation { + private String icd_code; + private String oper_name; + private String oper_level; + private String zjf; +} diff --git a/blood_bus/src/main/java/com/czblood/bus/system/BloodExtInterfaceService.java b/blood_bus/src/main/java/com/czblood/bus/system/BloodExtInterfaceService.java index 63a311a..d05947a 100644 --- a/blood_bus/src/main/java/com/czblood/bus/system/BloodExtInterfaceService.java +++ b/blood_bus/src/main/java/com/czblood/bus/system/BloodExtInterfaceService.java @@ -133,6 +133,12 @@ public class BloodExtInterfaceService implements ExtSystemInterface { sysDept.setStatus(useSign); sysDept.setCreateBy("admin"); sysDept.setCreateTime(bloodBankUtil.getCurrentTimeDate()); + //科室类别,001 临床科室 002 输血科室 + if(xkDmzd.getWordbook_name().contains("输血科")){ + sysDept.setDeptType("002"); + }else{ + sysDept.setDeptType("001"); + } sysDeptMapper.insertDept(sysDept); j++; } diff --git a/blood_bus/src/main/java/com/czblood/bus/utils/BloodBankUtil.java b/blood_bus/src/main/java/com/czblood/bus/utils/BloodBankUtil.java index 57c600e..75a2db8 100644 --- a/blood_bus/src/main/java/com/czblood/bus/utils/BloodBankUtil.java +++ b/blood_bus/src/main/java/com/czblood/bus/utils/BloodBankUtil.java @@ -109,6 +109,7 @@ public class BloodBankUtil { if(parameterCache == null){ XkParameter xkParameter = xkParameterMapper.queryOne(parameterCode); if(xkParameter == null) return ""; + OptionCache.setOptCache(parameterCode, xkParameter); return BloodBankUtil.isBank(xkParameter.getParameter_value()); }else{ return BloodBankUtil.isBank(parameterCache.getParameter_value()); diff --git a/blood_bus/src/main/resources/mapper/xtwh/XkXtwhOperationMapper.xml b/blood_bus/src/main/resources/mapper/xtwh/XkXtwhOperationMapper.xml new file mode 100644 index 0000000..aff9e90 --- /dev/null +++ b/blood_bus/src/main/resources/mapper/xtwh/XkXtwhOperationMapper.xml @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/controller/TransfuseApplyController.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/controller/TransfuseApplyController.java index d992607..f9215ca 100644 --- a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/controller/TransfuseApplyController.java +++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/controller/TransfuseApplyController.java @@ -7,6 +7,7 @@ import com.czblood.bus.pojo.xtwh.XkXtwhIllDiagnose; import com.czblood.busDoctor.pojo.DTO.TransfuseApplyDTO; import com.czblood.busDoctor.pojo.VO.ApplyCheckVO; import com.czblood.busDoctor.pojo.VO.CheckMedicVO; +import com.czblood.busDoctor.pojo.VO.ExplainVO; import com.czblood.busDoctor.pojo.VO.TransfuseApplyVO; import com.czblood.busDoctor.service.TransfuseApplyService; import com.czblood.common.annotation.Log; @@ -118,10 +119,17 @@ public class TransfuseApplyController extends BaseController { } @Log(title = BloodSysLogConstants.LOG_TYPE_TRANSFUSE_APPLY, businessType = BusinessType.CHECK) - @ApiOperation("申请单审核") + @ApiOperation("申请单审核前校验") @PostMapping("/applyCheck") - public Result applyCheck(ApplyCheckVO applyCheckVO){ - return transfuseApplyService.applyCheck(applyCheckVO); + public Result applyPreCheck(ApplyCheckVO applyCheckVO){ + applyCheckVO.setUserId(getUsername()); + return transfuseApplyService.applyPreCheck(applyCheckVO); + } + + @ApiOperation("申请单审核结果填写") + @PostMapping("/checkExplain") + public Result checkExplain(ExplainVO explainVO){ + return transfuseApplyService.checkExplain(explainVO); } diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/controller/TransfuseCheckExplainController.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/controller/TransfuseCheckExplainController.java new file mode 100644 index 0000000..94e7c3d --- /dev/null +++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/controller/TransfuseCheckExplainController.java @@ -0,0 +1,38 @@ +package com.czblood.busDoctor.controller; + +import com.czblood.busDoctor.pojo.VO.ExplainVO; +import com.czblood.busDoctor.service.TransfuseCheckExplainService; +import com.czblood.common.core.domain.Result; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + + +@Api(tags = "审核意见") +@RestController +@RequestMapping("/bus/doctor/checkExplain") +@Slf4j +public class TransfuseCheckExplainController { + + @Resource + TransfuseCheckExplainService transfuseCheckExplainService; + + @ApiOperation("获取输血指征数据") + @GetMapping("/queryCausailsList") + public Result queryCausailsList(String billNo){ + return transfuseCheckExplainService.queryCausailsList(billNo); + } + + @ApiOperation("审核意见") + @PostMapping("/checkExplain") + public Result checkExplain(ExplainVO explainVO){ + return transfuseCheckExplainService.checkExplain(explainVO); + } + +} diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/mapper/TransfuseApplyMapper.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/mapper/TransfuseApplyMapper.java index f8c45f3..3f46a22 100644 --- a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/mapper/TransfuseApplyMapper.java +++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/mapper/TransfuseApplyMapper.java @@ -1,6 +1,7 @@ package com.czblood.busDoctor.mapper; +import com.czblood.bus.pojo.XkCheckBloodtype; import com.czblood.busDoctor.pojo.DTO.TransfuseApplyInfoOne; import com.czblood.busDoctor.pojo.VO.TransfuseApplyVO; import org.apache.ibatis.annotations.Param; @@ -18,4 +19,6 @@ public interface TransfuseApplyMapper { String checkSameBloodType(@Param("beinhos_id") String beinhos_id,@Param("blood_breed") String blood_breed); List> checkSelfBlood(@Param("beinhos_id") String beinhos_id); BigDecimal queryApplyTransTotalNum(@Param("beinhos_id") String beinhos_id,@Param("stime") Date stime, @Param("etime") Date etime,@Param("bloodKindList") List bloodKindList,@Param("billNo") String billNo); + long queryBillStatusCount(String beinhos_id); + XkCheckBloodtype queryCheckDate(String beinhos_id); } diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/mapper/TransfuseCheckExplainMapper.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/mapper/TransfuseCheckExplainMapper.java new file mode 100644 index 0000000..b1b5540 --- /dev/null +++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/mapper/TransfuseCheckExplainMapper.java @@ -0,0 +1,7 @@ +package com.czblood.busDoctor.mapper; + +import com.czblood.bus.pojo.XkCheckBloodtype; + +public interface TransfuseCheckExplainMapper { + XkCheckBloodtype queryCheckDate(String beinhos_id); +} diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/pojo/VO/ApplyCheckVO.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/pojo/VO/ApplyCheckVO.java index b8d6d01..9d10fda 100644 --- a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/pojo/VO/ApplyCheckVO.java +++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/pojo/VO/ApplyCheckVO.java @@ -1,12 +1,23 @@ package com.czblood.busDoctor.pojo.VO; +import com.czblood.busDoctor.pojo.DTO.TransfuseApplyInfoOne; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import javax.validation.constraints.NotBlank; +import java.util.Date; + @Data @AllArgsConstructor @NoArgsConstructor public class ApplyCheckVO { + @NotBlank(message = "单据号不能为空!") private String billNo; + private String userId; + @NotBlank(message = "上级医生不能为空!") + private String checkMedic; + @NotBlank(message = "审核时间不能为空!") + private Date checkDate; + private TransfuseApplyInfoOne transfuseApplyInfoOne; } diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/pojo/VO/ExplainVO.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/pojo/VO/ExplainVO.java new file mode 100644 index 0000000..3b9b438 --- /dev/null +++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/pojo/VO/ExplainVO.java @@ -0,0 +1,26 @@ +package com.czblood.busDoctor.pojo.VO; + +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ExplainVO { + @ApiModelProperty("上次血型复核结果") + private String checkResult; + @ApiModelProperty("审核意见") + private String checkExplain; + @ApiModelProperty("是否需要血型复核") + private String needCheck; + @ApiModelProperty("申请单号") + private String applyNo; + @ApiModelProperty("输血是否合理") + private String validFlag; + @ApiModelProperty("上次血型复核时间") + private String checkDateText; + @ApiModelProperty("申请单类别") + private String billSort; +} diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/TransfuseApplyService.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/TransfuseApplyService.java index f55856a..a45bdfe 100644 --- a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/TransfuseApplyService.java +++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/TransfuseApplyService.java @@ -4,6 +4,7 @@ import com.czblood.bus.pojo.XkTransfuseApply; import com.czblood.busDoctor.pojo.DTO.TransfuseApplyDTO; import com.czblood.busDoctor.pojo.VO.ApplyCheckVO; import com.czblood.busDoctor.pojo.VO.CheckMedicVO; +import com.czblood.busDoctor.pojo.VO.ExplainVO; import com.czblood.busDoctor.pojo.VO.TransfuseApplyVO; import com.czblood.common.core.domain.Result; @@ -26,5 +27,7 @@ public interface TransfuseApplyService { Result applyMedicCheck(CheckMedicVO checkMedicVO); - Result applyCheck(ApplyCheckVO applyCheckVO); + Result applyPreCheck(ApplyCheckVO applyCheckVO); + + Result checkExplain(ExplainVO explainVO); } diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/TransfuseCheckExplainService.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/TransfuseCheckExplainService.java new file mode 100644 index 0000000..0c27116 --- /dev/null +++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/TransfuseCheckExplainService.java @@ -0,0 +1,10 @@ +package com.czblood.busDoctor.service; + +import com.czblood.busDoctor.pojo.VO.ExplainVO; +import com.czblood.common.core.domain.Result; + +public interface TransfuseCheckExplainService { + Result queryCausailsList(String billNo); + + Result checkExplain(ExplainVO explainVO); +} diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/impl/TransfuseApplyServiceImpl.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/impl/TransfuseApplyServiceImpl.java index 8052fc5..9303f33 100644 --- a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/impl/TransfuseApplyServiceImpl.java +++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/impl/TransfuseApplyServiceImpl.java @@ -1,14 +1,18 @@ package com.czblood.busDoctor.service.impl; +import cn.hutool.core.date.DateUtil; import com.czblood.bus.mapper.*; import com.czblood.bus.pojo.*; +import com.czblood.bus.pojo.inter.GetTestResultBloodTypeRequest; import com.czblood.bus.pojo.xtwh.XkDmzd; import com.czblood.bus.utils.BloodBankUtil; +import com.czblood.bus.utils.BloodInterfaceUtil; import com.czblood.busDoctor.mapper.TransfuseApplyMapper; import com.czblood.busDoctor.pojo.DTO.TransfuseApplyDTO; import com.czblood.busDoctor.pojo.DTO.TransfuseApplyInfoOne; import com.czblood.busDoctor.pojo.VO.ApplyCheckVO; import com.czblood.busDoctor.pojo.VO.CheckMedicVO; +import com.czblood.busDoctor.pojo.VO.ExplainVO; import com.czblood.busDoctor.pojo.VO.TransfuseApplyVO; import com.czblood.busDoctor.service.TransfuseApplyService; import com.czblood.busDoctor.utils.TransfuseApplyUtil; @@ -19,6 +23,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.Date; import java.util.List; import java.util.Map; @@ -86,8 +91,8 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService { private Result getTransfuseApplyInfo(XkTransfuseApplyBefore xkTransfuseApplyBefore,XkPatientInfo xkPatientInfo,String userId) { String beinhosId = xkTransfuseApplyBefore.getBeinhos_id(); TransfuseApplyInfoOne transfuseApplyInfoOne = new TransfuseApplyInfoOne(); - XkTransfuseApply xkTransfuseApply = transfuseApplyInfoOne.getXkTransfuseApply(); - XkPatientInfo xkPatientInfoSet = transfuseApplyInfoOne.getXkPatientInfo(); + XkTransfuseApply xkTransfuseApply = new XkTransfuseApply(); + XkPatientInfo xkPatientInfoSet = new XkPatientInfo(); xkTransfuseApply.setBeinhos_id(beinhosId); xkTransfuseApply.setHos_id(xkTransfuseApplyBefore.getHos_id()); xkTransfuseApply.setBeinhos_number(xkPatientInfo.getBeinhos_number()); @@ -124,6 +129,8 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService { xkPatientInfoSet.setPatient_sex(xkPatientInfo.getPatient_sex()); xkPatientInfoSet.setAge(xkPatientInfo.getAge()); xkPatientInfoSet.setApanage(xkPatientInfo.getApanage()); + transfuseApplyInfoOne.setXkTransfuseApply(xkTransfuseApply); + transfuseApplyInfoOne.setXkPatientInfo(xkPatientInfoSet); return new Result("0","操作成功",transfuseApplyInfoOne); } @@ -385,14 +392,17 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService { } /** - * 输血申请单审核 + * 输血申请单审核前校验 * @param applyCheckVO * @return */ @Override - public Result applyCheck(ApplyCheckVO applyCheckVO) { + public Result applyPreCheck(ApplyCheckVO applyCheckVO) { String billNo = applyCheckVO.getBillNo(); + String userId = applyCheckVO.getUserId(); XkTransfuseApply xkTransfuseApply = xkTransfuseApplyMapper.queryOne(billNo); + XkTransfuseApplyApproval xkTransfuseApplyApproval = xkTransfuseApplyApprovalMapper.queryOneByBillNo(billNo); + List xkTransfuseApplyBloodbreedList = xkTransfuseApplyBloodbreedMapper.queryOne(billNo); String billStasus = xkTransfuseApply.getBill_stasus(); switch (billStasus){ case "B": @@ -407,6 +417,101 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService { return new Result("-1","该单据已发血,不允许重复审核!"); } + SysUser userInfo = bloodBankUtil.getUserInfo(userId); + String deptType = userInfo.getDept().getDeptType(); + if(deptType.equals("001")){ + //临床科室,代表上级医生审核 + CheckMedicVO checkMedicVO = new CheckMedicVO(); + checkMedicVO.setBillNo(billNo); + checkMedicVO.setCheckMedic(applyCheckVO.getCheckMedic()); + checkMedicVO.setCheckDate(applyCheckVO.getCheckDate()); + return applyMedicCheck(checkMedicVO); + } + /** + * 下面是输血科审核的逻辑 + */ + String applyType = xkTransfuseApply.getApply_type(); + XkDmzd sqlxDictOne = bloodBankUtil.getDictCacheOne("sqlx", applyType); + String exp2 = BloodBankUtil.isBank(sqlxDictOne.getExp2()); + //是否使用用血审批控制 + String sfsyyxsp = bloodBankUtil.getParameterValue("SFSYYXSP"); + //不是抢救用血的类型,就需要判断是否是大量用血的标准,\ + if(!exp2.equals("Y") && !sfsyyxsp.equals("Y")){ + if(xkTransfuseApplyApproval != null){ + String applyLevel = xkTransfuseApplyApproval.getApplyLevel(); + String flag = BloodBankUtil.isBank(xkTransfuseApplyApproval.getFlag()); + String archiater = xkTransfuseApplyApproval.getArchiater(); + String medicalDept = BloodBankUtil.isBank(xkTransfuseApplyApproval.getMedical_Dept()); + if(applyLevel.equals("2") && flag.equals("N")) return new Result("-1","申请单24小时用血量达到大量用血标准,用血申请还未进行科室主任核准,暂不能审核,请到(大量用血申请)菜单进行审核!"); + + if(applyLevel.equals("3") && flag.equals("N")){ + if(archiater.equals("")){ + return new Result("-1","申请单24小时用血量达到大量用血标准,用血申请还未进行科室主任及医务部核准,暂不能审核,请到(大量用血申请)菜单进行审核!"); + }else if(medicalDept.equals("")){ + return new Result("-1","申请单24小时用血量达到大量用血标准,用血申请还未进行医务部审批,暂不能审核,请到(大量用血申请)菜单进行审核!"); + } + } + } + } + String sqdshpdxx = bloodBankUtil.getParameterValue("SQDSHPDXX"); + if(sqdshpdxx.equals("Y")){ + //调用lis接口,获取血型结果 + GetTestResultBloodTypeRequest getTestResultBloodTypeRequest = new GetTestResultBloodTypeRequest(); + getTestResultBloodTypeRequest.setBeinhos_id(xkTransfuseApply.getBeinhos_id()); + Result result = BloodInterfaceUtil.invokeBloodInterface(getTestResultBloodTypeRequest); + if(!result.getCode().equals("0")) return result; + } + String billSort = transfuseApplyUtil.checkBillSort(xkTransfuseApplyBloodbreedList, xkTransfuseApply.getBeinhos_id()); + ExplainVO explainVO = new ExplainVO(); + explainVO.setCheckResult(xkTransfuseApply.getCheck_explain()); + explainVO.setCheckExplain(xkTransfuseApply.getRemark()); + explainVO.setBillSort(billSort); + explainVO.setApplyNo(xkTransfuseApply.getBill_no()); + explainVO.setValidFlag(xkTransfuseApply.getValid_Flag()); + int i = transfuseApplyMapper.queryXkCheckBloodtypeCount(xkTransfuseApply.getBeinhos_id()); + String msg = ""; + String needCheck = ""; + if(i > 0) msg ="该患者的历史血型复核为亚型,请注意!"; + /** + * 是否需要做血型复核 + */ + //申请单无交叉配血需求时不做血型复查,Y是,N否! + String sqxwpxbzxx = bloodBankUtil.getParameterValue("SQXWPXBZXX"); + if(sqxwpxbzxx.equals("Y") && explainVO.getNeedCheck().equals("A")) explainVO.setNeedCheck("C"); + //上次血型复核时间 + XkCheckBloodtype xkCheckBloodtype = transfuseApplyMapper.queryCheckDate(xkTransfuseApply.getBeinhos_id()); + //上次复核三天前的时间 + Date threeDayBefore = null; + if(xkCheckBloodtype != null){ + Date testDate = xkCheckBloodtype.getTest_date(); + threeDayBefore = DateUtil.offsetDay(xkCheckBloodtype.getTest_date(), 3); + if(testDate != null) explainVO.setCheckDateText("血型复核时间:"+ DateUtil.format(testDate,"yyyy-MM-dd HH:mm:ss")); + } + if(explainVO.getNeedCheck().equals("A") || explainVO.getNeedCheck().equals("B")){ + needCheck = "Y"; //需要做血型复核 + }else{ + needCheck = "N"; //不需要做血型复核 + } + if(explainVO.getNeedCheck().equals("B")){ + if(xkCheckBloodtype == null){ //没有做过血型鉴定的,必须要做 + needCheck = "Y"; + }else if(DateUtil.compare(bloodBankUtil.getCurrentTimeDate(),threeDayBefore) > 0){ //之前做的血型鉴定的结果,超过了三天,也需要重新再做 + needCheck = "Y"; + } + }else{ + needCheck = "N"; + } + explainVO.setNeedCheck(needCheck); + + if(!msg.equals("")){ + return new Result("1",msg,explainVO); + }else{ + return new Result("0","校验成功!",explainVO); + } + } + + @Override + public Result checkExplain(ExplainVO explainVO) { return null; } diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/impl/TransfuseCheckExplainServiceImpl.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/impl/TransfuseCheckExplainServiceImpl.java new file mode 100644 index 0000000..293c714 --- /dev/null +++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/impl/TransfuseCheckExplainServiceImpl.java @@ -0,0 +1,62 @@ +package com.czblood.busDoctor.service.impl; + +import com.czblood.bus.mapper.XkTransfuseApplyCausalisMapper; +import com.czblood.bus.pojo.XkTransfuseApplyCausalis; +import com.czblood.bus.utils.BloodBankUtil; +import com.czblood.busDoctor.pojo.VO.ExplainVO; +import com.czblood.busDoctor.service.TransfuseCheckExplainService; +import com.czblood.common.core.domain.Result; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Service +@Slf4j +public class TransfuseCheckExplainServiceImpl implements TransfuseCheckExplainService { + + @Resource + XkTransfuseApplyCausalisMapper xkTransfuseApplyCausalisMapper; + @Resource + BloodBankUtil bloodBankUtil; + + + @Override + public Result queryCausailsList(String billNo) { + List xkTransfuseApplyCausalisList = xkTransfuseApplyCausalisMapper.queryListByBillNo(billNo); + return new Result("0","查询成功",xkTransfuseApplyCausalisList); + } + + @Override + public Result checkExplain(ExplainVO explainVO) { + String billSort = explainVO.getBillSort(); + String billSortTemp = ""; + String needCheck = explainVO.getNeedCheck(); + if(billSort.equals("A") || billSort.equals("C")){ + if(needCheck.equals("Y")){ + billSortTemp = "A"; + }else{ + billSortTemp = "C"; + } + }else if(billSort.equals("B")){ + if(needCheck.equals("Y")){ + billSortTemp = "B"; + }else{ + billSortTemp = "D"; + } + } + String tmsfzsxshsc = bloodBankUtil.getParameterValue("TMSFZSXSHSC"); + String ixxfh = ""; + if (tmsfzsxshsc.equals("Y")) { + if(needCheck.equals("Y")){ + ixxfh = "1"; + }else{ + ixxfh = "0"; + } + } + return null; + } + + +} diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/utils/TransfuseApplyUtil.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/utils/TransfuseApplyUtil.java index 93505e1..bc2563e 100644 --- a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/utils/TransfuseApplyUtil.java +++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/utils/TransfuseApplyUtil.java @@ -304,4 +304,28 @@ public class TransfuseApplyUtil { xkTransfuseApplyApprovalMapper.insert(xkTransfuseApplyApproval); } + + public String checkBillSort(List xkTransfuseApplyBloodbreedList,String beinhos_id){ + if(xkTransfuseApplyBloodbreedList.isEmpty()) return ""; + //循环取血液品种中的bloodbreed,只要其中有一个需要进行配血,就算需要配血 + boolean isMatch = false; + String sort = ""; + for (XkTransfuseApplyBloodbreed xkTransfuseApplyBloodbreed : xkTransfuseApplyBloodbreedList) { + String bloodBreed = xkTransfuseApplyBloodbreed.getBlood_breed(); + XkBloodBreed xkBloodBreed = xkBloodBreedMapper.queryOne(bloodBreed); + if(xkBloodBreed.getIs_match().equals("Y")) { + isMatch = true; + break; + } + } + long l = transfuseApplyMapper.queryBillStatusCount(beinhos_id); + if(isMatch){ + sort = "B"; + }else if(!isMatch && l > 0){ + sort = "C"; + }else if(!isMatch && l == 0){ + sort = "A"; + } + return sort; + } } diff --git a/blood_bus_doctor/src/main/resources/mapper/TransfuseApplyMapper.xml b/blood_bus_doctor/src/main/resources/mapper/TransfuseApplyMapper.xml index 2d6ebd8..7978813 100644 --- a/blood_bus_doctor/src/main/resources/mapper/TransfuseApplyMapper.xml +++ b/blood_bus_doctor/src/main/resources/mapper/TransfuseApplyMapper.xml @@ -134,7 +134,7 @@ select breed_code from xk_blood_breed where blood_kind ='0004' ) and - t1.bill_no =t2.bill_no; + t1.bill_no =t2.bill_no and t1.hos_id = #{hos_id}; @@ -163,7 +163,7 @@ k.blood_kind =b.blood_breed AND t.blood_breed =k.breed_code AND 'Z' and]]> - a.apply_date Between #{stime} AND #{etime} + a.apply_date Between #{stime} AND #{etime} and a.hos_id = #{hos_id} #{billNo}]]> and k.blood_kind in @@ -172,4 +172,17 @@ + + \ No newline at end of file diff --git a/blood_bus_doctor/src/main/resources/mapper/TransfuseCheckExplainMapper.xml b/blood_bus_doctor/src/main/resources/mapper/TransfuseCheckExplainMapper.xml new file mode 100644 index 0000000..c69ae82 --- /dev/null +++ b/blood_bus_doctor/src/main/resources/mapper/TransfuseCheckExplainMapper.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/blood_common/src/main/java/com/czblood/common/core/domain/entity/SysDept.java b/blood_common/src/main/java/com/czblood/common/core/domain/entity/SysDept.java index 318a8b9..0856269 100644 --- a/blood_common/src/main/java/com/czblood/common/core/domain/entity/SysDept.java +++ b/blood_common/src/main/java/com/czblood/common/core/domain/entity/SysDept.java @@ -58,10 +58,19 @@ public class SysDept extends BaseEntity private String deptCodeOld; private String hos_id; + private String deptType; /** 子部门 */ private List children = new ArrayList(); + public String getDeptType() { + return deptType; + } + + public void setDeptType(String deptType) { + this.deptType = deptType; + } + public String getDeptCodeOld() { return deptCodeOld; } @@ -229,9 +238,10 @@ public class SysDept extends BaseEntity .append("createTime", getCreateTime()) .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) - .append("deptCode", getDeptCode()) - .append("hos_id", getHos_id()) - .append("deptCodeOld", getDeptCodeOld()) + .append("deptCode", getDeptCode()) + .append("hos_id", getHos_id()) + .append("deptCodeOld", getDeptCodeOld()) + .append("deptType", getDeptType()) .toString(); } } diff --git a/blood_system/src/main/resources/mapper/system/SysDeptMapper.xml b/blood_system/src/main/resources/mapper/system/SysDeptMapper.xml index ad92d1c..0270886 100644 --- a/blood_system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/blood_system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -21,11 +21,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time ,d.dept_code,d.hos_id + ,d.dept_type from sys_dept d @@ -65,7 +67,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" @@ -89,6 +91,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" @@ -105,6 +108,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" status, dept_code, create_by, + dept_type, create_time,hos_id )values( #{parentId}, @@ -117,6 +121,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{status}, #{deptCode}, #{createBy}, + #{deptType}, getdate(),#{hos_id} ) @@ -134,7 +139,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" email = #{email}, status = #{status}, update_by = #{updateBy}, - hos_id = #{hos_id}, + hos_id = #{hos_id}, + dept_type = #{deptType}, update_time = getdate() where dept_id = #{deptId} diff --git a/sql/updatedb_blood.sql b/sql/updatedb_blood.sql index bf789d3..6e6ab44 100644 --- a/sql/updatedb_blood.sql +++ b/sql/updatedb_blood.sql @@ -488,3 +488,9 @@ IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_transfuse_a ALTER TABLE xk_transfuse_apply_causalis ADD CONSTRAINT PK_xk_transfuse_apply_causalis PRIMARY KEY CLUSTERED (bill_no,Causalis_Code); END GO + +if not exists(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'sys_dept' AND COLUMN_NAME = 'dept_type') + begin + alter table sys_dept add dept_type varchar(10) + end +go