输血申请单,保存逻辑,登录单独校验功能
This commit is contained in:
parent
951365061a
commit
f51041a4d8
@ -20,4 +20,8 @@ public class BloodInterfaceTypeConstants {
|
||||
* 输血前评估
|
||||
*/
|
||||
public static final String BEFORE_ASSESS = "BEFORE_ASSESS";
|
||||
/**
|
||||
* 使用his接口验证密码
|
||||
*/
|
||||
public static final String HIS_USE_PASSWORD = "HIS_USE_PASSWORD";
|
||||
}
|
||||
|
||||
@ -1,15 +1,17 @@
|
||||
package com.czblood.bus.controller;
|
||||
|
||||
import com.czblood.bus.mapper.XkProTransfuseProjectMapper;
|
||||
import com.czblood.bus.mapper.XkTransfuseApplyMapper;
|
||||
import com.czblood.bus.mapper.XkXtwhIllDiagnoseMapper;
|
||||
import com.czblood.bus.pojo.XkBloodBreed;
|
||||
import com.czblood.bus.pojo.XkDmzd;
|
||||
import com.czblood.bus.pojo.XkProTransfuseProject;
|
||||
import com.czblood.bus.pojo.XkXtwhIllDiagnose;
|
||||
import com.czblood.bus.pojo.*;
|
||||
import com.czblood.bus.pojo.inter.HisUsePasswordRequest;
|
||||
import com.czblood.bus.utils.BloodBankUtil;
|
||||
import com.czblood.bus.utils.BloodInterfaceUtil;
|
||||
import com.czblood.common.core.controller.BaseController;
|
||||
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.util.CommonUtil;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
@ -81,4 +83,35 @@ public class BloodCommonController extends BaseController {
|
||||
return getDataTable(xkXtwhIllDiagnoseList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验用户名和密码是否成功
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation("校验用户名和密码是否成功")
|
||||
@GetMapping("/checkLoginAffirm")
|
||||
public Result checkLoginAffirm(String userId,String password){
|
||||
String hisUsedpass = bloodBankUtil.getParameterValue("HIS_usedpass");
|
||||
if(hisUsedpass.equals("Y")){
|
||||
//使用his接口验证密码
|
||||
HisUsePasswordRequest hisUsePasswordRequest = new HisUsePasswordRequest();
|
||||
hisUsePasswordRequest.setUserId(userId);
|
||||
hisUsePasswordRequest.setPassword(password);
|
||||
Result result = BloodInterfaceUtil.invokeBloodInterface(hisUsePasswordRequest);
|
||||
if(!result.getCode().equals("0")) return result;
|
||||
}else{
|
||||
//使用本地密码校验
|
||||
SysUser userInfo = bloodBankUtil.getUserInfo(userId);
|
||||
boolean match = SecurityUtils.matchesPassword(password, userInfo.getPassword());
|
||||
if(!match) return new Result("1","密码错误!");
|
||||
}
|
||||
return new Result("0","校验成功!");
|
||||
}
|
||||
|
||||
// @ApiOperation("测试接口")
|
||||
// @GetMapping("/test01")
|
||||
// public Result test01(String billNo){
|
||||
// XkTransfuseApply xkTransfuseApply = xkTransfuseApplyMapper.queryOne(billNo);
|
||||
// return new Result("0","查询成功!",xkTransfuseApply);
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,9 @@
|
||||
package com.czblood.bus.mapper;
|
||||
|
||||
import com.czblood.bus.pojo.XkCausalisSet;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface XkCausalisSetMapper {
|
||||
List<XkCausalisSet> queryList(XkCausalisSet xkCausalisSet);
|
||||
}
|
||||
@ -0,0 +1,9 @@
|
||||
package com.czblood.bus.mapper;
|
||||
|
||||
import com.czblood.bus.pojo.XkCheckBloodtype;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface XkCheckBloodtypeMapper {
|
||||
List<XkCheckBloodtype> queryList(XkCheckBloodtype xkCheckBloodtype);
|
||||
}
|
||||
@ -6,4 +6,7 @@ import java.util.List;
|
||||
|
||||
public interface XkTransfuseApplyCausalisMapper {
|
||||
List<XkTransfuseApplyCausalis> queryList(XkTransfuseApplyCausalis xkTransfuseApplyCausalis);
|
||||
List<XkTransfuseApplyCausalis> queryListByBillNo(String billNo);
|
||||
void deleteByBillNo(String billNo);
|
||||
void insert(XkTransfuseApplyCausalis xkTransfuseApplyCausalis);
|
||||
}
|
||||
|
||||
@ -0,0 +1,45 @@
|
||||
package com.czblood.bus.pojo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@ApiModel("输血指征设置")
|
||||
public class XkCausalisSet {
|
||||
@ApiModelProperty("输血指征代码")
|
||||
private String Causalis_Code;
|
||||
@ApiModelProperty("科室类型,A手术科室,B非手术科室")
|
||||
private String Dept_Type;
|
||||
@ApiModelProperty("判断方式,N人工判断,Y系统判断,W待定")
|
||||
private String Causalis_Type;
|
||||
@ApiModelProperty("血液品种")
|
||||
private String Blood_Breed;
|
||||
@ApiModelProperty("检验项目名称")
|
||||
private String Pro_Name;
|
||||
@ApiModelProperty("检验结果值1")
|
||||
private String Test_Value;
|
||||
@ApiModelProperty("比较表达式,>,<,≥,≤,between")
|
||||
private String Result_Expression;
|
||||
@ApiModelProperty("输血指征名称")
|
||||
private String Causalis_Name;
|
||||
@ApiModelProperty("输血合理性标志,Y合理,N不合理")
|
||||
private String Causalis_Result;
|
||||
@ApiModelProperty("使用标志,Y使用,N不使用")
|
||||
private String Use_Sign;
|
||||
@ApiModelProperty("排序")
|
||||
private Integer Sequence;
|
||||
private Date Last_Modified;
|
||||
@ApiModelProperty("类别,对应字典当中的operatype,nooperatype")
|
||||
private String Use_Type;
|
||||
@ApiModelProperty("补充说明")
|
||||
private String Explain;
|
||||
@ApiModelProperty("检验结果值2")
|
||||
private String Test_Value2;
|
||||
}
|
||||
@ -0,0 +1,40 @@
|
||||
package com.czblood.bus.pojo;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class XkCheckBloodtype {
|
||||
private String bill_no;
|
||||
private String apply_no;
|
||||
private String beinhos_id;
|
||||
private String patient_name;
|
||||
private String dept_id;
|
||||
private String check_abo;
|
||||
private String check_fabo;
|
||||
private String affirm_abo;
|
||||
private String check_rh;
|
||||
private String antibody1;
|
||||
private String antibody2;
|
||||
private String antibody3;
|
||||
private String affirm_antibody;
|
||||
private String proteid_test;
|
||||
private String test_person;
|
||||
private Date test_date;
|
||||
private String check_person;
|
||||
private String input_person;
|
||||
private Date input_date;
|
||||
private String sample_id;
|
||||
private String need_match;
|
||||
private String bill_sort;
|
||||
private String bill_status;
|
||||
private String remark;
|
||||
private String Sub_Blood;
|
||||
private String bz1;
|
||||
private String hos_id;
|
||||
}
|
||||
@ -31,4 +31,5 @@ public class XkDmzd {
|
||||
private String use_sign;
|
||||
private Date last_modified;
|
||||
private String exp5;
|
||||
private String wordbook_code_old;
|
||||
}
|
||||
|
||||
@ -53,4 +53,6 @@ public class XkPatientInfo {
|
||||
private Date last_modified;
|
||||
@ApiModelProperty("住院次数")
|
||||
private String times;
|
||||
@ApiModelProperty("病人唯一ID")
|
||||
private String beinhos_number;
|
||||
}
|
||||
|
||||
@ -27,35 +27,54 @@ public class XkTransfuseApply {
|
||||
@ApiModelProperty("床号")
|
||||
private String patient_bed;
|
||||
private String casehistory_id;
|
||||
@ApiModelProperty("输血史")
|
||||
private String transfuse_history;
|
||||
@ApiModelProperty("输血反应史")
|
||||
private String reaction_history;
|
||||
@ApiModelProperty("妊娠史")
|
||||
private String gestation_history;
|
||||
@ApiModelProperty("分娩史")
|
||||
private String parturition_history;
|
||||
@ApiModelProperty("移植配型史")
|
||||
private String match_history;
|
||||
@ApiModelProperty("器官移植史")
|
||||
private String transplant_history;
|
||||
private String dept_id;
|
||||
@ApiModelProperty("申请时间")
|
||||
private Date apply_date;
|
||||
private String send_person;
|
||||
@ApiModelProperty("收费标志")
|
||||
private String charge_sign;
|
||||
@ApiModelProperty("输入人")
|
||||
private String input_person;
|
||||
@ApiModelProperty("接收时间")
|
||||
private Date receive_date;
|
||||
@ApiModelProperty("主治医师")
|
||||
private String attending_medic;
|
||||
@ApiModelProperty("上级医师")
|
||||
private String treat_medic;
|
||||
@ApiModelProperty("输血指征")
|
||||
private String causalis;
|
||||
@ApiModelProperty("输血科主任")
|
||||
private String bank_director;
|
||||
@ApiModelProperty("医务部负责人")
|
||||
private String medical_affairs;
|
||||
@ApiModelProperty("对应的条码ID")
|
||||
private String sample_id;
|
||||
@ApiModelProperty("采集时间")
|
||||
private Date gather_date;
|
||||
@ApiModelProperty("ABO血型")
|
||||
private String abo_type;
|
||||
@ApiModelProperty("RH血型")
|
||||
private String rh_type;
|
||||
@ApiModelProperty("审核标志")
|
||||
private String check_sign;
|
||||
@ApiModelProperty("审核意见")
|
||||
private String check_explain;
|
||||
@ApiModelProperty("状态")
|
||||
@ApiModelProperty("状态(A=未审核、B=已审核、C=已配血、D=已发血、Z=作废、BD=未补录、W=已补录、F=已复核血型、S=已追加配血、N=审核未通过)")
|
||||
private String bill_stasus;
|
||||
private String bill_type;
|
||||
@ApiModelProperty("申请医生")
|
||||
private String apply_medic;
|
||||
@ApiModelProperty("诊断")
|
||||
private String diagnoses;
|
||||
@ -63,42 +82,70 @@ public class XkTransfuseApply {
|
||||
private String intent;
|
||||
@ApiModelProperty("申请单类型")
|
||||
private String apply_type;
|
||||
@ApiModelProperty("第一次输血时间")
|
||||
private Date use1_date;
|
||||
@ApiModelProperty("第二次输血时间")
|
||||
private Date use2_date;
|
||||
@ApiModelProperty("第三次输血时间")
|
||||
private Date use3_date;
|
||||
private String remark;
|
||||
@ApiModelProperty("预约入库标志(N=否、Y=是)")
|
||||
private String is_plan;
|
||||
@ApiModelProperty("申请单状态类型")
|
||||
@ApiModelProperty("单据类别(A,B,C,D,J)")
|
||||
private String bill_sort;
|
||||
@ApiModelProperty("是否有标本申请")
|
||||
private String sample_sign;
|
||||
@ApiModelProperty("输入科室")
|
||||
private String input_dept;
|
||||
@ApiModelProperty("上级医师审核标志")
|
||||
private String send_able;
|
||||
@ApiModelProperty("上级医师审核时间")
|
||||
private Date medic_check_date;
|
||||
@ApiModelProperty("审核医生")
|
||||
private String check_medic;
|
||||
@ApiModelProperty("是否大量用血(N=否、Y=是)")
|
||||
private String is_large_use;
|
||||
@ApiModelProperty("操作类型(C输血申请,Z自体血申请单,S为输血治疗单)")
|
||||
private String operation_type;
|
||||
@ApiModelProperty("血型复核结果与申请单的血型不一致继续配血标志(N=否、Y=是)")
|
||||
private String bloodcheck_abnor;
|
||||
@ApiModelProperty("当血型复核结果与申请单的血型不一致时,输血申请单是否可以继续进行下一步的流程操作,Y表示可以,N表示不可以")
|
||||
private String abnor_next;
|
||||
@ApiModelProperty("是否同意配血(N=否、Y=是)")
|
||||
private String agreement_ink;
|
||||
private String exp1;
|
||||
private String exp2;
|
||||
private String exp3;
|
||||
private String exp4;
|
||||
@ApiModelProperty("最后修改时间")
|
||||
private Date last_modified;
|
||||
@ApiModelProperty("通知标志")
|
||||
private String notify_sign;
|
||||
@ApiModelProperty("联系手机")
|
||||
private String adm_no;
|
||||
private BigDecimal Use1_Num;
|
||||
private BigDecimal Use2_Num;
|
||||
private BigDecimal Use3_Num;
|
||||
@ApiModelProperty("科室类型(A手术科室,B非手术科室)")
|
||||
private String Dept_Type;
|
||||
private String use_type;
|
||||
@ApiModelProperty("单病种")
|
||||
private String Ill_Code;
|
||||
@ApiModelProperty("手术名称")
|
||||
private String Ops_Name;
|
||||
private String isemergency;
|
||||
@ApiModelProperty("是否合理(不合理N,待定W,合理Y)")
|
||||
private String Valid_Flag;
|
||||
@ApiModelProperty("通知消息确认标志(N=否、Y=是)")
|
||||
private String notice_yn;
|
||||
@ApiModelProperty("his系统申请单号")
|
||||
private String his_SerialNo;
|
||||
@ApiModelProperty("输血评估单")
|
||||
private String assess_bill_no;
|
||||
@ApiModelProperty("手术名称")
|
||||
private String operation_name;
|
||||
@ApiModelProperty("手术级别")
|
||||
private String operation_level;
|
||||
@ApiModelProperty("身份证号")
|
||||
private String card_no;
|
||||
}
|
||||
|
||||
@ -0,0 +1,21 @@
|
||||
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 HisUsePasswordRequest implements BloodInterfaceType {
|
||||
private final String method = BloodInterfaceTypeConstants.HIS_USE_PASSWORD;
|
||||
private String userId;
|
||||
private String password;
|
||||
|
||||
@Override
|
||||
public String serializationJson() {
|
||||
return JSONUtil.toJsonStr(this);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,76 @@
|
||||
package com.czblood.bus.system;
|
||||
|
||||
import com.czblood.bus.mapper.XkDmzdMapper;
|
||||
import com.czblood.bus.pojo.XkDmzd;
|
||||
import com.czblood.common.core.domain.entity.SysDept;
|
||||
import com.czblood.system.mapper.SysDeptMapper;
|
||||
import com.czblood.system.service.impl.SysDeptServiceImpl;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@Service
|
||||
@Primary
|
||||
public class BloodSysDeptServiceImpl extends SysDeptServiceImpl {
|
||||
|
||||
@Resource
|
||||
XkDmzdMapper xkDmzdMapper;
|
||||
@Resource
|
||||
SysDeptMapper sysDeptMapper;
|
||||
|
||||
@Override
|
||||
public int insertDept(SysDept dept) {
|
||||
int i = super.insertDept(dept);
|
||||
if(i <= 0) return i;
|
||||
//兼容逻辑,向输血系统字典表中增加科室信息
|
||||
XkDmzd xkDmzd = new XkDmzd();
|
||||
xkDmzd.setWordbook_sign("ks");
|
||||
xkDmzd.setWordbook_code(dept.getDeptCode());
|
||||
xkDmzd.setWordbook_name(dept.getDeptName());
|
||||
xkDmzd.setUse_sign("Y");
|
||||
xkDmzdMapper.insertXkDmzd(xkDmzd);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改保存部门信息
|
||||
*
|
||||
* @param dept 部门信息
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int updateDept(SysDept dept) {
|
||||
int i = super.updateDept(dept);
|
||||
if(i <= 0) return i;
|
||||
//兼容逻辑,向输血系统字典表中更新科室信息
|
||||
XkDmzd xkDmzd = new XkDmzd();
|
||||
xkDmzd.setWordbook_sign("ks");
|
||||
xkDmzd.setWordbook_code(dept.getDeptCode());
|
||||
xkDmzd.setWordbook_name(dept.getDeptName());
|
||||
xkDmzd.setWordbook_code_old(dept.getDeptCodeOld());
|
||||
xkDmzd.setUse_sign(dept.getStatus().equals("0")?"Y":"N");
|
||||
xkDmzdMapper.updateXkDmzd(xkDmzd);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int deleteDeptById(Long deptId) {
|
||||
int i = super.deleteDeptById(deptId);
|
||||
if(i <= 0) return i;
|
||||
//兼容逻辑,向输血系统字典表中删除科室信息
|
||||
SysDept sysDept = sysDeptMapper.selectDeptById(deptId);
|
||||
if (sysDept == null) return i;
|
||||
XkDmzd xkDmzd = new XkDmzd();
|
||||
xkDmzd.setWordbook_sign("ks");
|
||||
xkDmzd.setWordbook_code(sysDept.getDeptCode());
|
||||
xkDmzd.setWordbook_sign(sysDept.getDelFlag().equals("0")?"Y":"N");
|
||||
xkDmzdMapper.updateXkDmzd(xkDmzd);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -12,6 +12,8 @@ import com.czblood.bus.pojo.XkBloodBreed;
|
||||
import com.czblood.bus.pojo.XkDmzd;
|
||||
import com.czblood.bus.pojo.XkParameter;
|
||||
import com.czblood.common.core.domain.Result;
|
||||
import com.czblood.common.core.domain.entity.SysUser;
|
||||
import com.czblood.system.mapper.SysUserMapper;
|
||||
import com.czblood.system.util.CommonUtil;
|
||||
import org.springframework.data.redis.connection.ReactiveSubscription;
|
||||
import org.springframework.stereotype.Component;
|
||||
@ -36,6 +38,8 @@ public class BloodBankUtil {
|
||||
CommonUtil commonUtil;
|
||||
@Resource
|
||||
XkBloodBreedMapper xkBloodBreedMapper;
|
||||
@Resource
|
||||
SysUserMapper sysUserMapper;
|
||||
|
||||
|
||||
/**
|
||||
@ -94,9 +98,10 @@ public class BloodBankUtil {
|
||||
XkParameter parameterCache = OptionCache.getOptCache(parameterCode);
|
||||
if(parameterCache == null){
|
||||
XkParameter xkParameter = xkParameterMapper.queryOne(parameterCode);
|
||||
return xkParameter.getParameter_value();
|
||||
if(xkParameter == null) return "";
|
||||
return BloodBankUtil.isBank(xkParameter.getParameter_value());
|
||||
}else{
|
||||
return parameterCache.getParameter_value();
|
||||
return BloodBankUtil.isBank(parameterCache.getParameter_value());
|
||||
}
|
||||
}
|
||||
|
||||
@ -141,4 +146,8 @@ public class BloodBankUtil {
|
||||
return commonUtil.getCurrentTimeDate();
|
||||
}
|
||||
|
||||
public SysUser getUserInfo(String userId){
|
||||
return sysUserMapper.selectUserByUserName(userId);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
14
blood_bus/src/main/resources/mapper/XkCausalisSetMapper.xml
Normal file
14
blood_bus/src/main/resources/mapper/XkCausalisSetMapper.xml
Normal file
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
<mapper namespace="com.czblood.bus.mapper.XkCausalisSetMapper">
|
||||
|
||||
<select id="queryList" resultType="com.czblood.bus.pojo.XkCausalisSet">
|
||||
select * from xk_causalis_set
|
||||
<where>
|
||||
<if test="Dept_Type != null and Dept_Type != ''">and Dept_Type = #{Dept_Type}</if>
|
||||
<if test="Blood_Breed != null and Blood_Breed != ''">and Blood_Breed = #{Blood_Breed}</if>
|
||||
<if test="Use_Type != null and Use_Type != ''">and Use_Type = #{Use_Type}</if>
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
||||
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
<mapper namespace="com.czblood.bus.mapper.XkCheckBloodtypeMapper">
|
||||
|
||||
<select id="queryList" resultType="com.czblood.bus.pojo.XkCheckBloodtype">
|
||||
select * from xk_check_bloodtype where hos_id = #{hos_id}
|
||||
<if test="bill_no != null and bill_no != ''">and bill_no = #{bill_no}</if>
|
||||
<if test="apply_no != null and apply_no != ''">and apply_no = #{apply_no}</if>
|
||||
<if test="beinhos_id != null and beinhos_id != ''">and beinhos_id = #{beinhos_id}</if>
|
||||
</select>
|
||||
</mapper>
|
||||
@ -13,7 +13,7 @@
|
||||
<if test="exp5 != null and exp5 != ''">exp5=#{exp5},</if>
|
||||
<if test="remark != null">remark=#{remark},</if>
|
||||
wordbook_code=#{wordbook_code}
|
||||
where wordbook_sign = #{wordbook_sign} and wordbook_code= #{wordbook_code}
|
||||
where wordbook_sign = #{wordbook_sign} and wordbook_code= #{wordbook_code_old}
|
||||
</update>
|
||||
|
||||
<delete id="deleteXkDmzd">
|
||||
|
||||
@ -3,12 +3,9 @@
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
<mapper namespace="com.czblood.bus.mapper.XkTransfuseApplyBeforeMapper">
|
||||
<select id="queryList" resultType="com.czblood.bus.pojo.XkTransfuseApplyBefore">
|
||||
select * from xk_transfuse_apply_before
|
||||
<where>
|
||||
<if test="bill_no != null and bill_no != ''">and bill_no = #{bill_no}</if>
|
||||
<if test="beinhos_id != null and beinhos_id != ''">and beinhos_id = #{beinhos_id}</if>
|
||||
</where>
|
||||
|
||||
select * from xk_transfuse_apply_before where hos_id = #{hos_id}
|
||||
<if test="bill_no != null and bill_no != ''">and bill_no = #{bill_no}</if>
|
||||
<if test="beinhos_id != null and beinhos_id != ''">and beinhos_id = #{beinhos_id}</if>
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
@ -2,8 +2,18 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
<mapper namespace="com.czblood.bus.mapper.XkTransfuseApplyCausalisMapper">
|
||||
<insert id="insert">
|
||||
insert into xk_transfuse_apply_causalis (Bill_No, Hos_ID, SID,Causalis_Code,Causalis_Type,Causalis_Name,Causalis_Result,Use_Flag,Upload_Flag,Explain)
|
||||
values (#{bill_no}, #{hos_id}, #{sid}, #{causalis_code}, #{causalis_type}, #{causalis_name}, #{causalis_result}, #{use_flag}, #{upload_flag}, #{explain})
|
||||
</insert>
|
||||
<delete id="deleteByBillNo">
|
||||
delete from xk_transfuse_apply_causalis where Bill_No = #{bill_no}
|
||||
</delete>
|
||||
<select id="queryList" resultType="com.czblood.bus.pojo.XkTransfuseApplyCausalis">
|
||||
select * from xk_transfuse_apply_causalis where Bill_No = #{bill_no}
|
||||
<if test="SID != null">and sid = #{SID}</if>
|
||||
</select>
|
||||
<select id="queryListByBillNo" resultType="com.czblood.bus.pojo.XkTransfuseApplyCausalis">
|
||||
select * from xk_transfuse_apply_causalis where Bill_No = #{bill_no}
|
||||
</select>
|
||||
</mapper>
|
||||
@ -1,18 +1,15 @@
|
||||
package com.czblood.busDoctor.controller;
|
||||
|
||||
|
||||
import com.czblood.bus.pojo.XkXtwhIllDiagnose;
|
||||
import com.czblood.busDoctor.pojo.DTO.TransfuseApplyDTO;
|
||||
import com.czblood.busDoctor.pojo.VO.TransfuseApplyVO;
|
||||
import com.czblood.busDoctor.service.TransfuseApplyService;
|
||||
import com.czblood.common.core.controller.BaseController;
|
||||
import com.czblood.common.core.domain.Result;
|
||||
import com.czblood.common.core.page.TableDataInfo;
|
||||
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.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@ -40,6 +37,7 @@ public class TransfuseApplyController extends BaseController {
|
||||
@ApiOperation("获取病人信息")
|
||||
@GetMapping("/getPatInfo")
|
||||
public Result getPatInfo(TransfuseApplyVO transfuseApplyVO){
|
||||
transfuseApplyVO.setUser_id(getUsername());
|
||||
return transfuseApplyService.getPatInfo(transfuseApplyVO);
|
||||
}
|
||||
|
||||
@ -55,5 +53,31 @@ public class TransfuseApplyController extends BaseController {
|
||||
return transfuseApplyService.queryApplyOne(billNo);
|
||||
}
|
||||
|
||||
@ApiOperation("保存前校验")
|
||||
@PostMapping("/savePreApplyInfo")
|
||||
public Result savePreApplyInfo(@RequestBody TransfuseApplyDTO transfuseApplyDTO){
|
||||
transfuseApplyDTO.setUserId(getUsername());
|
||||
return transfuseApplyService.savePreApplyInfo(transfuseApplyDTO);
|
||||
}
|
||||
|
||||
@ApiOperation("自体血校验")
|
||||
@GetMapping("/checkSelfBlood")
|
||||
public Result checkSelfBlood(String beinhos_id){
|
||||
return transfuseApplyService.checkSelfBlood(beinhos_id);
|
||||
}
|
||||
|
||||
@ApiOperation("校验是否符合输血指征的规则")
|
||||
@PostMapping("/checkCausalis")
|
||||
public Result checkCausalis(@RequestBody TransfuseApplyDTO transfuseApplyDTO){
|
||||
return transfuseApplyService.checkCausalis(transfuseApplyDTO);
|
||||
}
|
||||
|
||||
@ApiOperation("保存申请单")
|
||||
@PostMapping("/saveApplyInfo")
|
||||
public Result saveApplyInfo(@RequestBody TransfuseApplyDTO transfuseApplyDTO){
|
||||
transfuseApplyDTO.setUserId(getUsername());
|
||||
return transfuseApplyService.saveApplyInfo(transfuseApplyDTO);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.czblood.busDoctor.mapper;
|
||||
|
||||
|
||||
import com.czblood.busDoctor.pojo.DTO.TransfuseApplyInfoOne;
|
||||
import com.czblood.busDoctor.pojo.VO.TransfuseApplyVO;
|
||||
import org.apache.ibatis.annotations.MapKey;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
@ -10,7 +11,9 @@ import java.util.Map;
|
||||
|
||||
public interface TransfuseApplyMapper {
|
||||
List<Map<String,Object>> queryList(TransfuseApplyVO transfuseApplyVO);
|
||||
@MapKey("bill_no")
|
||||
Map<String,Object> queryApplyOne(TransfuseApplyVO transfuseApplyVO);
|
||||
TransfuseApplyInfoOne queryApplyOne(TransfuseApplyVO transfuseApplyVO);
|
||||
List<Map<String,Object>> queryApplyBeforeList(@Param("dept_id") String dept_id,@Param("assess_person") String assess_person);
|
||||
int queryXkCheckBloodtypeCount(@Param("beinhos_id") String beinhos_id);
|
||||
String checkSameBloodType(@Param("beinhos_id") String beinhos_id,@Param("blood_breed") String blood_breed);
|
||||
List<Map<String,Object>> checkSelfBlood(@Param("beinhos_id") String beinhos_id);
|
||||
}
|
||||
|
||||
@ -0,0 +1,14 @@
|
||||
package com.czblood.busDoctor.pojo.DTO;
|
||||
|
||||
import com.czblood.bus.pojo.XkCausalisSet;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class TransfuseApplyCausalisSetDTO {
|
||||
private XkCausalisSet xkCausalisSet;
|
||||
private String testValue;
|
||||
}
|
||||
@ -1,7 +1,7 @@
|
||||
package com.czblood.busDoctor.pojo.DTO;
|
||||
|
||||
import com.czblood.bus.pojo.XkTransfuseApply;
|
||||
import com.czblood.bus.pojo.XkTransfuseApplyBloodbreed;
|
||||
import com.czblood.bus.pojo.XkTransfuseApplyCausalis;
|
||||
import com.czblood.bus.pojo.XkTransfuseApplyTestitem;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
@ -9,18 +9,18 @@ import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class TransfuseApplyDTO {
|
||||
@ApiModelProperty("输血申请单列表信息")
|
||||
private List<Map<String,Object>> transfuseApplyList;
|
||||
@ApiModelProperty("输血申请单信息")
|
||||
private Map<String,Object> transfuseApplyMap;
|
||||
private TransfuseApplyInfoOne transfuseApplyInfoOne;
|
||||
@ApiModelProperty(value = "输血前lis检查项目")
|
||||
private List<XkTransfuseApplyTestitem> xkTransfuseApplyTestitemList;
|
||||
@ApiModelProperty("输血申请单品种列表")
|
||||
private List<XkTransfuseApplyBloodbreed> xkTransfuseApplyBloodbreedList;
|
||||
@ApiModelProperty("输血指征列表")
|
||||
private List<XkTransfuseApplyCausalis> xkTransfuseApplyCausalisList;
|
||||
private String userId;
|
||||
}
|
||||
|
||||
@ -0,0 +1,168 @@
|
||||
package com.czblood.busDoctor.pojo.DTO;
|
||||
|
||||
import com.czblood.bus.pojo.XkTransfuseApply;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class TransfuseApplyInfoOne {
|
||||
@ApiModelProperty("医疗机构ID")
|
||||
private String hos_id;
|
||||
@ApiModelProperty("住院号")
|
||||
@NotBlank(message = "住院号不能为空")
|
||||
private String beinhos_id;
|
||||
@ApiModelProperty("病人姓名")
|
||||
@NotBlank(message = "病人姓名不能为空")
|
||||
private String patient_name;
|
||||
@NotBlank(message = "病人性别不能为空")
|
||||
@ApiModelProperty("病人性别")
|
||||
private String patient_sex;
|
||||
@ApiModelProperty("病人年龄")
|
||||
private String age;
|
||||
@ApiModelProperty("病人生日")
|
||||
private Date patient_birthday;
|
||||
@ApiModelProperty("病人属地")
|
||||
private String apanage;
|
||||
|
||||
@ApiModelProperty("单据号")
|
||||
private String bill_no;
|
||||
@ApiModelProperty("病人唯一号")
|
||||
private String beinhos_number;
|
||||
@ApiModelProperty("病区代码")
|
||||
private String zone_id;
|
||||
@ApiModelProperty("床号")
|
||||
private String patient_bed;
|
||||
private String casehistory_id;
|
||||
@ApiModelProperty("输血史")
|
||||
private String transfuse_history;
|
||||
@ApiModelProperty("输血反应史")
|
||||
private String reaction_history;
|
||||
@ApiModelProperty("妊娠史")
|
||||
private String gestation_history;
|
||||
@ApiModelProperty("分娩史")
|
||||
private String parturition_history;
|
||||
@ApiModelProperty("移植配型史")
|
||||
private String match_history;
|
||||
@ApiModelProperty("器官移植史")
|
||||
private String transplant_history;
|
||||
private String dept_id;
|
||||
@ApiModelProperty("申请时间")
|
||||
private Date apply_date;
|
||||
private String send_person;
|
||||
@ApiModelProperty("收费标志")
|
||||
private String charge_sign;
|
||||
@ApiModelProperty("输入人")
|
||||
private String input_person;
|
||||
@ApiModelProperty("接收时间")
|
||||
private Date receive_date;
|
||||
@ApiModelProperty("主治医师")
|
||||
private String attending_medic;
|
||||
@ApiModelProperty("上级医师")
|
||||
private String treat_medic;
|
||||
@ApiModelProperty("输血指征")
|
||||
private String causalis;
|
||||
@ApiModelProperty("输血科主任")
|
||||
private String bank_director;
|
||||
@ApiModelProperty("医务部负责人")
|
||||
private String medical_affairs;
|
||||
@ApiModelProperty("对应的条码ID")
|
||||
private String sample_id;
|
||||
@ApiModelProperty("采集时间")
|
||||
private Date gather_date;
|
||||
@ApiModelProperty("ABO血型")
|
||||
private String abo_type;
|
||||
@ApiModelProperty("RH血型")
|
||||
private String rh_type;
|
||||
@ApiModelProperty("审核标志")
|
||||
private String check_sign;
|
||||
@ApiModelProperty("审核意见")
|
||||
private String check_explain;
|
||||
@ApiModelProperty("状态(A=未审核、B=已审核、C=已配血、D=已发血、Z=作废、BD=未补录、W=已补录、F=已复核血型、S=已追加配血、N=审核未通过)")
|
||||
private String bill_stasus;
|
||||
private String bill_type;
|
||||
@ApiModelProperty("申请医生")
|
||||
private String apply_medic;
|
||||
@ApiModelProperty("诊断")
|
||||
private String diagnoses;
|
||||
@ApiModelProperty("输血目的")
|
||||
private String intent;
|
||||
@NotBlank(message = "申请单类型不能为空")
|
||||
@ApiModelProperty("申请单类型")
|
||||
private String apply_type;
|
||||
@ApiModelProperty("第一次输血时间")
|
||||
private Date use1_date;
|
||||
@ApiModelProperty("第二次输血时间")
|
||||
private Date use2_date;
|
||||
@ApiModelProperty("第三次输血时间")
|
||||
private Date use3_date;
|
||||
private String remark;
|
||||
@ApiModelProperty("预约入库标志(N=否、Y=是)")
|
||||
private String is_plan;
|
||||
@ApiModelProperty("单据类别(A,B,C,D,J)")
|
||||
private String bill_sort;
|
||||
@ApiModelProperty("是否有标本申请")
|
||||
private String sample_sign;
|
||||
@ApiModelProperty("输入科室")
|
||||
private String input_dept;
|
||||
@ApiModelProperty("上级医师审核标志")
|
||||
private String send_able;
|
||||
@ApiModelProperty("上级医师审核时间")
|
||||
private Date medic_check_date;
|
||||
@ApiModelProperty("审核医生")
|
||||
private String check_medic;
|
||||
@ApiModelProperty("是否大量用血(N=否、Y=是)")
|
||||
private String is_large_use;
|
||||
@ApiModelProperty("操作类型(C输血申请,Z自体血申请单,S为输血治疗单)")
|
||||
private String operation_type;
|
||||
@ApiModelProperty("血型复核结果与申请单的血型不一致继续配血标志(N=否、Y=是)")
|
||||
private String bloodcheck_abnor;
|
||||
@ApiModelProperty("当血型复核结果与申请单的血型不一致时,输血申请单是否可以继续进行下一步的流程操作,Y表示可以,N表示不可以")
|
||||
private String abnor_next;
|
||||
@ApiModelProperty("是否同意配血(N=否、Y=是)")
|
||||
private String agreement_ink;
|
||||
private String exp1;
|
||||
private String exp2;
|
||||
private String exp3;
|
||||
private String exp4;
|
||||
@ApiModelProperty("最后修改时间")
|
||||
private Date last_modified;
|
||||
@ApiModelProperty("通知标志")
|
||||
private String notify_sign;
|
||||
@ApiModelProperty("联系手机")
|
||||
private String adm_no;
|
||||
private BigDecimal Use1_Num;
|
||||
private BigDecimal Use2_Num;
|
||||
private BigDecimal Use3_Num;
|
||||
@ApiModelProperty("科室类型(A手术科室,B非手术科室)")
|
||||
private String Dept_Type;
|
||||
@NotBlank(message = "手术科室必须填写后面的类型")
|
||||
private String use_type;
|
||||
@ApiModelProperty("单病种")
|
||||
private String Ill_Code;
|
||||
@ApiModelProperty("手术名称")
|
||||
private String Ops_Name;
|
||||
private String isemergency;
|
||||
@ApiModelProperty("是否合理(不合理N,待定W,合理Y)")
|
||||
private String Valid_Flag;
|
||||
@ApiModelProperty("通知消息确认标志(N=否、Y=是)")
|
||||
private String notice_yn;
|
||||
@ApiModelProperty("his系统申请单号")
|
||||
private String his_SerialNo;
|
||||
@ApiModelProperty("输血评估单")
|
||||
private String assess_bill_no;
|
||||
@ApiModelProperty("手术名称")
|
||||
private String operation_name;
|
||||
@ApiModelProperty("手术级别")
|
||||
private String operation_level;
|
||||
@ApiModelProperty("身份证号")
|
||||
private String card_no;
|
||||
|
||||
}
|
||||
@ -19,4 +19,6 @@ public class TransfuseApplyVO {
|
||||
private String doctor_code;
|
||||
@ApiModelProperty("查询的单据编号")
|
||||
private String bill_no;
|
||||
@ApiModelProperty("操作用户")
|
||||
private String user_id;
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.czblood.busDoctor.service;
|
||||
|
||||
import com.czblood.bus.pojo.XkTransfuseApply;
|
||||
import com.czblood.busDoctor.pojo.DTO.TransfuseApplyDTO;
|
||||
import com.czblood.busDoctor.pojo.VO.TransfuseApplyVO;
|
||||
import com.czblood.common.core.domain.Result;
|
||||
|
||||
@ -12,4 +13,12 @@ public interface TransfuseApplyService {
|
||||
Result queryApplyOne(String billNo);
|
||||
|
||||
Result queryApplyBeforeList(String dept_id,String assess_person);
|
||||
|
||||
Result savePreApplyInfo(TransfuseApplyDTO transfuseApplyDTO);
|
||||
|
||||
Result checkSelfBlood(String beinhosId);
|
||||
|
||||
Result saveApplyInfo(TransfuseApplyDTO transfuseApplyDTO);
|
||||
|
||||
Result checkCausalis(TransfuseApplyDTO transfuseApplyDTO);
|
||||
}
|
||||
|
||||
@ -1,19 +1,24 @@
|
||||
package com.czblood.busDoctor.service.impl;
|
||||
|
||||
import com.czblood.bus.mapper.XkPatientInfoMapper;
|
||||
import com.czblood.bus.mapper.XkTransfuseApplyBeforeMapper;
|
||||
import com.czblood.bus.mapper.XkTransfuseApplyBloodbreedMapper;
|
||||
import com.czblood.bus.mapper.XkTransfuseApplyTestitemMapper;
|
||||
import com.czblood.bus.mapper.*;
|
||||
import com.czblood.bus.pojo.*;
|
||||
import com.czblood.bus.utils.BloodBankUtil;
|
||||
import com.czblood.bus.utils.BloodInterfaceUtil;
|
||||
import com.czblood.busDoctor.mapper.TransfuseApplyMapper;
|
||||
import com.czblood.busDoctor.pojo.DTO.TransfuseApplyCausalisSetDTO;
|
||||
import com.czblood.busDoctor.pojo.DTO.TransfuseApplyDTO;
|
||||
import com.czblood.busDoctor.pojo.DTO.TransfuseApplyInfoOne;
|
||||
import com.czblood.busDoctor.pojo.VO.TransfuseApplyVO;
|
||||
import com.czblood.busDoctor.service.TransfuseApplyService;
|
||||
import com.czblood.busDoctor.utils.TransfuseApplyUtil;
|
||||
import com.czblood.common.core.domain.Result;
|
||||
import com.czblood.common.core.domain.entity.SysUser;
|
||||
import com.czblood.common.utils.StringUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@ -32,7 +37,14 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService {
|
||||
XkTransfuseApplyBeforeMapper xkTransfuseApplyBeforeMapper;
|
||||
@Resource
|
||||
XkPatientInfoMapper xkPatientInfoMapper;
|
||||
|
||||
@Resource
|
||||
BloodBankUtil bloodBankUtil;
|
||||
@Resource
|
||||
XkProTransfuseProjectMapper xkProTransfuseProjectMapper;
|
||||
@Resource
|
||||
XkTransfuseApplyCausalisMapper xkTransfuseApplyCausalisMapper;
|
||||
@Resource
|
||||
TransfuseApplyUtil transfuseApplyUtil;
|
||||
|
||||
/**
|
||||
* 获取病人信息
|
||||
@ -46,15 +58,67 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService {
|
||||
String billNo = transfuseApplyVO.getBill_no();
|
||||
if (billNo == null || billNo.equals("")) return new Result("-1", "查询的申请单号不能为空!");
|
||||
XkTransfuseApplyBefore xkTransfuseApplyBefore = xkTransfuseApplyBeforeMapper.queryOne(billNo);
|
||||
if (xkTransfuseApplyBefore != null) return new Result("-1", "没有查到对应的输血评估单!");
|
||||
if (xkTransfuseApplyBefore == null) return new Result("-1", "没有查到对应的输血评估单!");
|
||||
String beinhosId = xkTransfuseApplyBefore.getBeinhos_id();
|
||||
XkPatientInfo xkPatientInfo = xkPatientInfoMapper.queryOne(beinhosId);
|
||||
if (xkPatientInfo != null) return new Result("-1"," 没有查到对应的病人信息!");
|
||||
if (xkPatientInfo == null) return new Result("-1"," 没有查到对应的病人信息!");
|
||||
//将输血评估的信息写入到输血申请单
|
||||
XkTransfuseApply xkTransfuseApply = new XkTransfuseApply();
|
||||
xkTransfuseApply.setBeinhos_id(beinhosId);
|
||||
String userId = transfuseApplyVO.getUser_id();
|
||||
Result result = getTransfuseApplyInfo(xkTransfuseApplyBefore,xkPatientInfo,userId);
|
||||
if (!result.getCode().equals("0")) return result;
|
||||
//获取输血前lis检验信息
|
||||
List<XkTransfuseApplyTestitem> xkTransfuseApplyTestitemList = xkTransfuseApplyTestitemMapper.queryList(billNo);
|
||||
int count = transfuseApplyMapper.queryXkCheckBloodtypeCount(beinhosId);
|
||||
String warnMsg = "";
|
||||
String code = "0"; //返回值code
|
||||
if(count > 0) warnMsg = "该患者历史血型复核为亚型,请联系输血科确认!";
|
||||
if(!warnMsg.equals("")) code = "3";
|
||||
TransfuseApplyDTO transfuseApplyDTO = new TransfuseApplyDTO();
|
||||
transfuseApplyDTO.setTransfuseApplyInfoOne((TransfuseApplyInfoOne)result.getData());
|
||||
transfuseApplyDTO.setXkTransfuseApplyTestitemList(xkTransfuseApplyTestitemList);
|
||||
return new Result(code,warnMsg,transfuseApplyDTO);
|
||||
}
|
||||
|
||||
return null;
|
||||
private Result getTransfuseApplyInfo(XkTransfuseApplyBefore xkTransfuseApplyBefore,XkPatientInfo xkPatientInfo,String userId) {
|
||||
String beinhosId = xkTransfuseApplyBefore.getBeinhos_id();
|
||||
TransfuseApplyInfoOne transfuseApplyInfoOne = new TransfuseApplyInfoOne();
|
||||
//XkTransfuseApply xkTransfuseApply = new XkTransfuseApply();
|
||||
transfuseApplyInfoOne.setBeinhos_id(beinhosId);
|
||||
transfuseApplyInfoOne.setHos_id(xkTransfuseApplyBefore.getHos_id());
|
||||
transfuseApplyInfoOne.setBeinhos_number(xkPatientInfo.getBeinhos_number());
|
||||
transfuseApplyInfoOne.setZone_id(xkTransfuseApplyBefore.getZone_id());
|
||||
transfuseApplyInfoOne.setPatient_bed(xkTransfuseApplyBefore.getPatient_bed());
|
||||
transfuseApplyInfoOne.setTransfuse_history(xkPatientInfo.getTransfuse_history());
|
||||
transfuseApplyInfoOne.setReaction_history(xkPatientInfo.getReaction_history());
|
||||
transfuseApplyInfoOne.setGestation_history(xkPatientInfo.getGestation_history());
|
||||
transfuseApplyInfoOne.setParturition_history(xkPatientInfo.getParturition_history());
|
||||
transfuseApplyInfoOne.setMatch_history(xkPatientInfo.getMatch_history());
|
||||
transfuseApplyInfoOne.setTransplant_history(xkPatientInfo.getTransplant_history());
|
||||
transfuseApplyInfoOne.setDept_id(xkTransfuseApplyBefore.getDept_id());
|
||||
transfuseApplyInfoOne.setApply_date(bloodBankUtil.getCurrentTimeDate());
|
||||
transfuseApplyInfoOne.setInput_person(userId);
|
||||
transfuseApplyInfoOne.setAttending_medic(userId);
|
||||
transfuseApplyInfoOne.setTreat_medic(userId);
|
||||
transfuseApplyInfoOne.setAbo_type(xkPatientInfo.getAbo());
|
||||
transfuseApplyInfoOne.setRh_type(xkPatientInfo.getRh());
|
||||
transfuseApplyInfoOne.setBill_stasus("A");
|
||||
transfuseApplyInfoOne.setApply_medic(userId);
|
||||
transfuseApplyInfoOne.setDiagnoses(xkTransfuseApplyBefore.getDiagnoses());
|
||||
transfuseApplyInfoOne.setApply_type("001"); //常规用血
|
||||
transfuseApplyInfoOne.setUse1_date(bloodBankUtil.getCurrentTimeDate());
|
||||
transfuseApplyInfoOne.setSample_sign("N");
|
||||
transfuseApplyInfoOne.setInput_dept(BloodBankUtil.isBank(xkTransfuseApplyBefore.getDept_id()));
|
||||
transfuseApplyInfoOne.setOperation_type("C");
|
||||
transfuseApplyInfoOne.setAgreement_ink("Y");
|
||||
//xkTransfuseApply.setDept_Type(""); //这个前端传吧,而且是必填的
|
||||
transfuseApplyInfoOne.setValid_Flag("Y"); //默认是合理的
|
||||
transfuseApplyInfoOne.setNotice_yn("N");
|
||||
transfuseApplyInfoOne.setAssess_bill_no(xkTransfuseApplyBefore.getBill_no()); //输血评估单号
|
||||
transfuseApplyInfoOne.setPatient_name(xkPatientInfo.getPatient_name());
|
||||
transfuseApplyInfoOne.setPatient_sex(xkPatientInfo.getPatient_sex());
|
||||
transfuseApplyInfoOne.setAge(xkPatientInfo.getAge());
|
||||
transfuseApplyInfoOne.setApanage(xkPatientInfo.getApanage());
|
||||
return new Result("0","操作成功",transfuseApplyInfoOne);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -69,13 +133,15 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService {
|
||||
public Result queryApplyOne(String billNo) {
|
||||
TransfuseApplyVO transfuseApplyVO = new TransfuseApplyVO();
|
||||
transfuseApplyVO.setBill_no(billNo);
|
||||
Map<String, Object> transfuseApplyMap = transfuseApplyMapper.queryApplyOne(transfuseApplyVO);
|
||||
TransfuseApplyInfoOne transfuseApplyInfoOne = transfuseApplyMapper.queryApplyOne(transfuseApplyVO);
|
||||
TransfuseApplyDTO transfuseApplyDTO = new TransfuseApplyDTO();
|
||||
transfuseApplyDTO.setTransfuseApplyMap(transfuseApplyMap);
|
||||
transfuseApplyDTO.setTransfuseApplyInfoOne(transfuseApplyInfoOne);
|
||||
List<XkTransfuseApplyTestitem> xkTransfuseApplyTestitemList = xkTransfuseApplyTestitemMapper.queryList(billNo);
|
||||
transfuseApplyDTO.setXkTransfuseApplyTestitemList(xkTransfuseApplyTestitemList);
|
||||
List<XkTransfuseApplyBloodbreed> xkTransfuseApplyBloodbreedList = xkTransfuseApplyBloodbreedMapper.queryOne(billNo);
|
||||
transfuseApplyDTO.setXkTransfuseApplyBloodbreedList(xkTransfuseApplyBloodbreedList);
|
||||
List<XkTransfuseApplyCausalis> xkTransfuseApplyCausalisList = xkTransfuseApplyCausalisMapper.queryListByBillNo(billNo);
|
||||
transfuseApplyDTO.setXkTransfuseApplyCausalisList(xkTransfuseApplyCausalisList);
|
||||
return new Result("0", "查询成功", transfuseApplyDTO);
|
||||
}
|
||||
|
||||
@ -89,4 +155,139 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService {
|
||||
List<Map<String, Object>> transfuseApplyBeforeList = transfuseApplyMapper.queryApplyBeforeList(dept_id, assess_person);
|
||||
return new Result("0", "查询成功", transfuseApplyBeforeList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result savePreApplyInfo(TransfuseApplyDTO transfuseApplyDTO) {
|
||||
TransfuseApplyInfoOne transfuseApplyInfoOne = transfuseApplyDTO.getTransfuseApplyInfoOne();
|
||||
List<XkTransfuseApplyBloodbreed> xkTransfuseApplyBloodbreedList = transfuseApplyDTO.getXkTransfuseApplyBloodbreedList();
|
||||
List<XkTransfuseApplyTestitem> xkTransfuseApplyTestitemList = transfuseApplyDTO.getXkTransfuseApplyTestitemList();
|
||||
String beinhosId = transfuseApplyInfoOne.getBeinhos_id();
|
||||
String billStasus = transfuseApplyInfoOne.getBill_stasus();
|
||||
switch (billStasus) {
|
||||
case "B":
|
||||
return new Result("-1","该申请单已经审核!");
|
||||
case "C":
|
||||
return new Result("-1","该申请单已经配血!");
|
||||
case "D":
|
||||
return new Result("-1","该申请单已经发血!");
|
||||
case "Z":
|
||||
return new Result("-1","该申请单已经作废!");
|
||||
case "S":
|
||||
return new Result("-1","该申请单正在增加血液!");
|
||||
}
|
||||
String applyType = transfuseApplyInfoOne.getApply_type();
|
||||
if(applyType.contains("手术")){
|
||||
String operationName = transfuseApplyInfoOne.getOperation_name();
|
||||
if(StringUtils.isEmpty(operationName)){
|
||||
return new Result("-1","手术备血必须填写手术名称!");
|
||||
}
|
||||
}
|
||||
XkDmzd dictCacheOne = bloodBankUtil.getDictCacheOne("sqlx", applyType);
|
||||
//没有开启绿色通道的单据类型
|
||||
if(!dictCacheOne.getExp2().equals("Y")){
|
||||
String sfsyzckz = BloodBankUtil.isBank(bloodBankUtil.getParameterValue("SFSYZCKZ"));
|
||||
//开启职称校验
|
||||
if(sfsyzckz.equals("Y")){
|
||||
//申请单的申请医生
|
||||
Result result = checkZC(transfuseApplyInfoOne.getApply_medic());
|
||||
if(!result.getCode().equals("0")) return result;
|
||||
if(Integer.parseInt(result.getData().toString()) < 2) return new Result("-1","申请医师必须具备中级或以上职称,录入的申请医师不具备该职称。");
|
||||
//申请单的上级医师
|
||||
Result result1 = checkZC(transfuseApplyInfoOne.getTreat_medic());
|
||||
if(!result1.getCode().equals("0")) return result1;
|
||||
if(Integer.parseInt(result1.getData().toString()) < 3) return new Result("-1","上级医师必须具备高级职称,录入的上级医师不具备该职称。");
|
||||
XkProTransfuseProject xkProTransfuseProject = new XkProTransfuseProject();
|
||||
xkProTransfuseProject.setNeed("Y");
|
||||
List<XkProTransfuseProject> xkProTransfuseProjectList = xkProTransfuseProjectMapper.queryList(xkProTransfuseProject);
|
||||
//校验检验结果是否为空
|
||||
for (XkTransfuseApplyTestitem xkTransfuseApplyTestitem : xkTransfuseApplyTestitemList) {
|
||||
String itemResult = xkTransfuseApplyTestitem.getItem_result();
|
||||
String itemName = xkTransfuseApplyTestitem.getItem_name();
|
||||
XkProTransfuseProject xkProTransfuseProject2 = xkProTransfuseProjectList.stream().filter(xkProTransfuseProject1 -> xkProTransfuseProject1.getPro_name().equals(itemName)).findFirst().orElse(null);
|
||||
if(xkProTransfuseProject2 != null && StringUtils.isEmpty(itemResult)) return new Result("-1","请输入"+itemName+"的检验结果!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
String agreementInk = BloodBankUtil.isBank(transfuseApplyInfoOne.getAgreement_ink());
|
||||
if(!agreementInk.equals("Y")) return new Result("-1","请先签署输血知情同意书!");
|
||||
String intent = BloodBankUtil.isBank(transfuseApplyInfoOne.getIntent());
|
||||
if(intent.equals("")) return new Result("-1","请填写输血目的!");
|
||||
|
||||
for (XkTransfuseApplyBloodbreed xkTransfuseApplyBloodbreed : xkTransfuseApplyBloodbreedList) {
|
||||
String bloodBreed = xkTransfuseApplyBloodbreed.getBlood_breed();
|
||||
String preBillNo = transfuseApplyMapper.checkSameBloodType(beinhosId, bloodBreed);
|
||||
//申请血型校验
|
||||
String sqxxnfwk = bloodBankUtil.getParameterValue("SQXXNFWK");
|
||||
if(!sqxxnfwk.equals("Y")){
|
||||
//申请血型不能为空
|
||||
if(StringUtils.isEmpty(bloodBreed)) return new Result("-1","请输入申请血型!");
|
||||
}
|
||||
if(!StringUtils.isEmpty(preBillNo)){
|
||||
return new Result("2","当前患者存在相同的血液品种并且未审核的申请单,是否调出此单进行修改?",preBillNo);
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result checkSelfBlood(String beinhosId) {
|
||||
List<Map<String, Object>> mapList = transfuseApplyMapper.checkSelfBlood(beinhosId);
|
||||
String msg = "";
|
||||
for (Map<String, Object> stringObjectMap : mapList) {
|
||||
String breedName = BloodBankUtil.isBank(stringObjectMap.get("breed_name"));
|
||||
String capacity = BloodBankUtil.isBank(stringObjectMap.get("capacity"));
|
||||
String unit = BloodBankUtil.isBank(stringObjectMap.get("unit"));
|
||||
msg = msg + breedName + ":" + capacity + unit + ",";
|
||||
}
|
||||
if(msg.equals("")){
|
||||
return new Result("0","校验通过!");
|
||||
}else{
|
||||
msg = "检测到该病患尚有贮存式自体血未出库,具体如下:" + msg + "是否继续申请血液?";
|
||||
return new Result("2",msg);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存申请单
|
||||
* @param transfuseApplyDTO
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Result saveApplyInfo(TransfuseApplyDTO transfuseApplyDTO) {
|
||||
//前置校验
|
||||
//产生申请单编号
|
||||
//校验是否是大量用血
|
||||
//保存数据
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验是否符合输血指征的规则
|
||||
* @param transfuseApplyDTO
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Result checkCausalis(TransfuseApplyDTO transfuseApplyDTO) {
|
||||
//输血指征处理
|
||||
//输血指征是否输血合理,校验是否符合输血指征的规则
|
||||
//他原来的逻辑,分单据类型了,没搞懂为啥分,先统一校验吧
|
||||
return transfuseApplyUtil.checkCausalis(transfuseApplyDTO);
|
||||
// if(result.getCode().equals("1")){
|
||||
// List<TransfuseApplyCausalisSetDTO> xkCausalisSetRetList = (List<TransfuseApplyCausalisSetDTO>)result.getData();
|
||||
// }
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验医生职称是否符合要求
|
||||
* @return
|
||||
*/
|
||||
public Result checkZC(String userId){
|
||||
SysUser userInfo = bloodBankUtil.getUserInfo(userId);
|
||||
if(userInfo == null) return new Result("-1","用户不存在!");
|
||||
String postname = BloodBankUtil.isBank(userInfo.getPostname());
|
||||
if(postname.equals("")) postname = "0";
|
||||
return new Result("0","",postname);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,14 +1,160 @@
|
||||
package com.czblood.busDoctor.utils;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.czblood.bus.mapper.XkCausalisSetMapper;
|
||||
import com.czblood.bus.pojo.XkCausalisSet;
|
||||
import com.czblood.bus.pojo.XkTransfuseApplyBloodbreed;
|
||||
import com.czblood.bus.pojo.XkTransfuseApplyTestitem;
|
||||
import com.czblood.bus.utils.BloodBankUtil;
|
||||
import com.czblood.busDoctor.pojo.DTO.TransfuseApplyCausalisSetDTO;
|
||||
import com.czblood.busDoctor.pojo.DTO.TransfuseApplyDTO;
|
||||
import com.czblood.busDoctor.pojo.DTO.TransfuseApplyInfoOne;
|
||||
import com.czblood.common.core.domain.Result;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Component
|
||||
public class TransfuseApplyUtil {
|
||||
|
||||
@Resource
|
||||
XkCausalisSetMapper xkCausalisSetMapper;
|
||||
|
||||
/**
|
||||
* 计算大量用血
|
||||
*/
|
||||
public void computeLargeBlood(){
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 输血指征判断是否输血合理
|
||||
* @param transfuseApplyDTO
|
||||
* @return
|
||||
*/
|
||||
public Result checkCausalis(TransfuseApplyDTO transfuseApplyDTO){
|
||||
TransfuseApplyInfoOne transfuseApplyInfoOne = transfuseApplyDTO.getTransfuseApplyInfoOne();
|
||||
List<XkTransfuseApplyBloodbreed> xkTransfuseApplyBloodbreedList = transfuseApplyDTO.getXkTransfuseApplyBloodbreedList();
|
||||
String beinhosId = BloodBankUtil.isBank(transfuseApplyInfoOne.getBeinhos_id());
|
||||
String deptType = BloodBankUtil.isBank(transfuseApplyInfoOne.getDept_Type());
|
||||
String useType = BloodBankUtil.isBank(transfuseApplyInfoOne.getUse_type());
|
||||
String billNo = BloodBankUtil.isBank(transfuseApplyInfoOne.getBill_no());
|
||||
XkCausalisSet xkCausalisSet = new XkCausalisSet();
|
||||
xkCausalisSet.setUse_Sign("Y");
|
||||
xkCausalisSet.setDept_Type(deptType);
|
||||
xkCausalisSet.setUse_Type(useType);
|
||||
List<XkCausalisSet> xkCausalisSetList = xkCausalisSetMapper.queryList(xkCausalisSet);
|
||||
List<TransfuseApplyCausalisSetDTO> xkCausalisSetRetList = new ArrayList<>();
|
||||
//这个返回也是原来的逻辑
|
||||
if(beinhosId.equals("") || deptType.equals("") || useType.equals("") ) return new Result("0","字段没有填完整,无法校验!");
|
||||
List<XkTransfuseApplyTestitem> xkTransfuseApplyTestitemList = transfuseApplyDTO.getXkTransfuseApplyTestitemList();
|
||||
for (XkTransfuseApplyBloodbreed xkTransfuseApplyBloodbreed : xkTransfuseApplyBloodbreedList) {
|
||||
String bloodBreed = BloodBankUtil.isBank(xkTransfuseApplyBloodbreed.getBlood_breed());
|
||||
if(bloodBreed.equals("")) continue;
|
||||
List<XkCausalisSet> collect = xkCausalisSetList.stream().filter(xkCausalisSet1 -> xkCausalisSet1.getBlood_Breed().equals(bloodBreed)).collect(Collectors.toList());
|
||||
//校验输血指征是否合理
|
||||
//这里的写法没有完全按照原来的逻辑来,原来的逻辑太稀碎了,我按照自己的理解写了一个,后面遇到问题再改吧,原来那个逻辑真看不下去
|
||||
for (XkTransfuseApplyTestitem xkTransfuseApplyTestitem : xkTransfuseApplyTestitemList) {
|
||||
String itemName = xkTransfuseApplyTestitem.getItem_name();
|
||||
String itemResult = xkTransfuseApplyTestitem.getItem_result();
|
||||
XkCausalisSet xkCausalisSet2 = calcCausalis(collect, itemName, itemResult);
|
||||
if(xkCausalisSet2 != null){
|
||||
//没有校验通过的,增加数据
|
||||
TransfuseApplyCausalisSetDTO transfuseApplyCausalisSetDTO = new TransfuseApplyCausalisSetDTO();
|
||||
transfuseApplyCausalisSetDTO.setXkCausalisSet(xkCausalisSet2);
|
||||
transfuseApplyCausalisSetDTO.setTestValue(itemResult);
|
||||
xkCausalisSetRetList.add(transfuseApplyCausalisSetDTO);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(xkCausalisSetRetList.isEmpty()){
|
||||
return new Result("0","校验成功!");
|
||||
}else{
|
||||
return new Result("1","校验失败",xkCausalisSetRetList);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public XkCausalisSet calcCausalis(List<XkCausalisSet> xkCausalisSetList, String proName,String testValue){
|
||||
//查找是否包含该指标
|
||||
List<XkCausalisSet> collect = xkCausalisSetList.stream().filter(xkCausalisSet -> xkCausalisSet.getPro_Name().equals(proName)).collect(Collectors.toList());
|
||||
if(collect.isEmpty()) return null;
|
||||
//校验指标是否合理
|
||||
for (XkCausalisSet xkCausalisSet : collect) {
|
||||
String resultExpression = xkCausalisSet.getResult_Expression();
|
||||
String testValueStandard = xkCausalisSet.getTest_Value();
|
||||
String testValueStandard2 = xkCausalisSet.getTest_Value2();
|
||||
if(!StrUtil.isNumeric(testValue)) continue; //不是数字型的不处理
|
||||
if(!StrUtil.isNumeric(testValueStandard)) continue;
|
||||
if(!StrUtil.isNumeric(testValueStandard2)) continue;
|
||||
String causalisResult = xkCausalisSet.getCausalis_Result();
|
||||
if(causalisResult.equals("")) continue;
|
||||
if(causalisResult.equals("Y")){
|
||||
//合理范围,那么不在这个范围内的,代表需要增加说明
|
||||
switch (resultExpression) {
|
||||
case ">":
|
||||
if(Integer.parseInt(testValue) > Integer.parseInt(testValueStandard)) {
|
||||
|
||||
}else{
|
||||
return xkCausalisSet;
|
||||
}
|
||||
break;
|
||||
case "<":
|
||||
if(Integer.parseInt(testValue) < Integer.parseInt(testValueStandard)) {
|
||||
|
||||
}else {
|
||||
return xkCausalisSet;
|
||||
}
|
||||
break;
|
||||
case "≥":
|
||||
if(Integer.parseInt(testValue) >= Integer.parseInt(testValueStandard)) {
|
||||
|
||||
}else{
|
||||
return xkCausalisSet;
|
||||
}
|
||||
break;
|
||||
case "≤":
|
||||
if(Integer.parseInt(testValue) <= Integer.parseInt(testValueStandard)) {
|
||||
|
||||
}else{
|
||||
return xkCausalisSet;
|
||||
}
|
||||
break;
|
||||
case "between":
|
||||
if(Integer.parseInt(testValue) >= Integer.parseInt(testValueStandard) && Integer.parseInt(testValue) <= Integer.parseInt(testValueStandard2)) {
|
||||
|
||||
}else{
|
||||
return xkCausalisSet;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}else{
|
||||
//不合理范围,代表直接返回
|
||||
switch (resultExpression) {
|
||||
case ">":
|
||||
if(Integer.parseInt(testValue) > Integer.parseInt(testValueStandard)) return xkCausalisSet;
|
||||
break;
|
||||
case "<":
|
||||
if(Integer.parseInt(testValue) < Integer.parseInt(testValueStandard)) return xkCausalisSet;
|
||||
break;
|
||||
case "≥":
|
||||
if(Integer.parseInt(testValue) >= Integer.parseInt(testValueStandard)) return xkCausalisSet;
|
||||
break;
|
||||
case "≤":
|
||||
if(Integer.parseInt(testValue) <= Integer.parseInt(testValueStandard)) return xkCausalisSet;
|
||||
break;
|
||||
case "between":
|
||||
if(Integer.parseInt(testValue) >= Integer.parseInt(testValueStandard) && Integer.parseInt(testValue) <= Integer.parseInt(testValueStandard2)) return xkCausalisSet;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -17,13 +17,13 @@
|
||||
from xk_transfuse_apply_bloodbreed x join xk_blood_breed xx on xx.breed_code=x.blood_breed where x.bill_no=xk_transfuse_apply.bill_no FOR XML PATH('') ),2,999) as req_breed
|
||||
FROM xk_patient_info RIGHT OUTER JOIN xk_transfuse_apply ON xk_patient_info.beinhos_id = xk_transfuse_apply.beinhos_id
|
||||
WHERE ( xk_transfuse_apply.operation_type = 'C' OR ISNULL(xk_transfuse_apply.operation_type,'') = '')
|
||||
and xk_transfuse_apply.apply_date > getdate() - #{day}
|
||||
and xk_transfuse_apply.apply_date > getdate() - #{day} and xk_transfuse_apply.hos_id = #{hos_id}
|
||||
<if test="bill_status != null and bill_status != ''">and xk_transfuse_apply.bill_stasus = #{bill_status}</if>
|
||||
<if test="dept_code != null and dept_code != ''">and xk_transfuse_apply.dept_id = #{dept_code}</if>
|
||||
<if test="dept_code != null and dept_code != ''">and (xk_transfuse_apply.dept_id = #{dept_code} or xk_transfuse_apply.input_dept = #{dept_code})</if>
|
||||
<if test="doctor_code != null and doctor_code != ''">and xk_transfuse_apply.apply_medic = #{doctor_code}</if>
|
||||
</select>
|
||||
<select id="queryApplyOne" resultType="java.util.Map">
|
||||
<select id="queryApplyOne" resultType="com.czblood.busDoctor.pojo.DTO.TransfuseApplyInfoOne">
|
||||
SELECT top 1 xk_patient_info.hos_id,
|
||||
xk_patient_info.patient_name,
|
||||
xk_patient_info.age,
|
||||
@ -92,8 +92,9 @@
|
||||
FROM xk_patient_info RIGHT OUTER JOIN xk_transfuse_apply ON xk_patient_info.beinhos_id = xk_transfuse_apply.beinhos_id ,
|
||||
xk_transfuse_apply_bloodbreed
|
||||
WHERE xk_transfuse_apply.bill_no = xk_transfuse_apply_bloodbreed.bill_no AND
|
||||
xk_transfuse_apply.bill_no = #{bill_no}
|
||||
xk_transfuse_apply.bill_no = #{bill_no} and xk_transfuse_apply.hos_id = #{hos_id}
|
||||
</select>
|
||||
|
||||
<select id="queryApplyBeforeList" resultType="java.util.Map">
|
||||
select
|
||||
xk_transfuse_apply_before.bill_no,
|
||||
@ -108,5 +109,50 @@
|
||||
xk_transfuse_apply_before.beinhos_id = xk_patient_info.beinhos_id AND
|
||||
xk_transfuse_apply_before.assess_data>GETDATE() - 1 AND
|
||||
(xk_transfuse_apply_before.dept_id=#{dept_id} or xk_transfuse_apply_before.assess_person=#{assess_person})
|
||||
and xk_transfuse_apply_before.hos_id = #{hos_id}
|
||||
</select>
|
||||
<select id="queryXkCheckBloodtypeCount" resultType="java.lang.Integer">
|
||||
SELECT Count (*) FROM xk_check_bloodtype where hos_id = #{hos_id}
|
||||
<![CDATA[ and isnull( sub_blood , '' ) <> '' ]]>
|
||||
and beinhos_id = #{beinhos_id};
|
||||
</select>
|
||||
<select id="checkSameBloodType" resultType="java.lang.String">
|
||||
select distinct t1.bill_no
|
||||
into :ls_pre_billno
|
||||
from xk_transfuse_apply t1 , xk_transfuse_apply_bloodbreed t2
|
||||
where t1.apply_date in (
|
||||
select max ( apply_date )
|
||||
from xk_transfuse_apply a , xk_transfuse_apply_bloodbreed b , xk_blood_breed d
|
||||
where a.bill_no =b.bill_no and
|
||||
b.blood_breed =d.breed_code and
|
||||
d.blood_kind ='0004' and
|
||||
a.beinhos_id = #{beinhos_id} and
|
||||
b.blood_breed = #{blood_breed} and
|
||||
isnull ( a.check_sign , 'N' ) ='N' and
|
||||
<![CDATA[DATEDIFF ( day , apply_date , GETDATE ( ) ) < 3 ) and]]>
|
||||
t2.blood_breed in (
|
||||
select breed_code
|
||||
from xk_blood_breed
|
||||
where blood_kind ='0004' ) and
|
||||
t1.bill_no =t2.bill_no;
|
||||
</select>
|
||||
<select id="checkSelfBlood" resultType="java.util.Map">
|
||||
SELECT xk_blood_breed.breed_name,
|
||||
sum(xk_blood_info.capacity) as capacity,
|
||||
xk_blood_info.unit
|
||||
FROM xk_blood_breed,
|
||||
xk_blood_info,
|
||||
xk_gather_detail,
|
||||
xk_gather_main,
|
||||
xk_transfuse_apply
|
||||
WHERE ( xk_gather_detail.bill_no = xk_gather_main.bill_no ) and
|
||||
( xk_blood_info.blood_no = xk_gather_detail.blood_no ) and
|
||||
( xk_blood_info.blood_breed = xk_blood_breed.breed_code ) and
|
||||
( xk_gather_main.apply_no = xk_transfuse_apply.bill_no ) and
|
||||
( ( xk_blood_info.blood_sort = 'Z' ) AND
|
||||
( xk_blood_info.blood_status = '1' ) AND
|
||||
( xk_transfuse_apply.beinhos_id = #{beinhos_id} ) )
|
||||
group by xk_blood_breed.breed_name,xk_blood_info.unit
|
||||
|
||||
</select>
|
||||
</mapper>
|
||||
@ -53,13 +53,23 @@ public class SysDept extends BaseEntity
|
||||
/** 父部门名称 */
|
||||
private String parentName;
|
||||
|
||||
@NotNull(message = "部门编码不能为空")
|
||||
private String deptCode;
|
||||
private String deptCodeOld;
|
||||
|
||||
private String hos_id;
|
||||
|
||||
/** 子部门 */
|
||||
private List<SysDept> children = new ArrayList<SysDept>();
|
||||
|
||||
public String getDeptCodeOld() {
|
||||
return deptCodeOld;
|
||||
}
|
||||
|
||||
public void setDeptCodeOld(String deptCodeOld) {
|
||||
this.deptCodeOld = deptCodeOld;
|
||||
}
|
||||
|
||||
public String getHos_id() {
|
||||
return hos_id;
|
||||
}
|
||||
@ -221,6 +231,7 @@ public class SysDept extends BaseEntity
|
||||
.append("updateTime", getUpdateTime())
|
||||
.append("deptCode", getDeptCode())
|
||||
.append("hos_id", getHos_id())
|
||||
.append("deptCodeOld", getDeptCodeOld())
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
|
||||
@ -64,7 +64,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
</select>
|
||||
|
||||
<select id="selectDeptById" parameterType="Long" resultMap="SysDeptResult">
|
||||
select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status,
|
||||
select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status,d.dept_code,d.hos_id,
|
||||
(select dept_name from sys_dept where dept_id = d.parent_id) parent_name
|
||||
from sys_dept d
|
||||
where d.dept_id = #{deptId}
|
||||
|
||||
@ -344,6 +344,21 @@ if not exists(select 1 from dbo.xk_dmzd where wordbook_sign = 'BASE')
|
||||
('nooperatype','急性失血','急性失血','Y'),
|
||||
('nooperatype','新生儿科','新生儿科','Y')
|
||||
|
||||
insert into xk_dmzd(wordbook_sign,wordbook_code,wordbook_name,use_sign) values('BASE','abotype','ABO血型','Y')
|
||||
insert into xk_dmzd(wordbook_sign,wordbook_code,wordbook_name,use_sign) values
|
||||
('abotype','A','A','Y'),
|
||||
('abotype','B','B','Y'),
|
||||
('abotype','O','O','Y'),
|
||||
('abotype','AB','AB','Y'),
|
||||
('abotype','未知','未知','Y')
|
||||
|
||||
|
||||
|
||||
insert into xk_dmzd(wordbook_sign,wordbook_code,wordbook_name,use_sign) values('BASE','rhtype','RH血型','Y')
|
||||
insert into xk_dmzd(wordbook_sign,wordbook_code,wordbook_name,use_sign) values
|
||||
('rhtype','+','+','Y'),
|
||||
('rhtype','-','-','Y'),
|
||||
('rhtype','未知','未知','Y')
|
||||
|
||||
END
|
||||
|
||||
@ -448,3 +463,8 @@ if not exists(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'xk_p
|
||||
end
|
||||
go
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_parameter' AND type = 'PK' )
|
||||
BEGIN
|
||||
ALTER TABLE xk_parameter ADD CONSTRAINT PK_xk_parameter PRIMARY KEY CLUSTERED (parameter_code);
|
||||
END
|
||||
GO
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user