输血指征修改,新增输血状态闭环
This commit is contained in:
parent
b11fa37c89
commit
186b154275
7
.idea/MarsCodeWorkspaceAppSettings.xml
generated
7
.idea/MarsCodeWorkspaceAppSettings.xml
generated
@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="com.codeverse.userSettings.MarscodeWorkspaceAppSettingsState">
|
||||
<option name="chatAppRouterInfo" value="chat-session" />
|
||||
<option name="progress" value="0.42" />
|
||||
</component>
|
||||
</project>
|
||||
@ -0,0 +1,31 @@
|
||||
package com.czblood.bus.constants;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class BloodApplyStatusConstants {
|
||||
public static final String BILL_STATUS_OPEN = "开单";
|
||||
public static final String BILL_STATUS_CHECK_DOCTOR = "上级医生审核";
|
||||
public static final String BILL_STATUS_ARCHIATER_CHECK = "科主任审核";
|
||||
public static final String BILL_STATUS_MEDICAL_CHECK = "医务部审核";
|
||||
public static final String BILL_STATUS_BANK_DIRECTOR_CHECK = "输血科审核";
|
||||
public static final String BILL_STATUS_BLOOD_TYPE_CHECK = "血型复核";
|
||||
public static final String BILL_STATUS_MATCH_CHECK = "交叉配血";
|
||||
public static final String BILL_STATUS_OUT_CHECK = "临床发血";
|
||||
|
||||
|
||||
public static final List<String> ALL_STATUS_LIST = Arrays.asList(
|
||||
BILL_STATUS_OPEN,
|
||||
BILL_STATUS_CHECK_DOCTOR,
|
||||
BILL_STATUS_ARCHIATER_CHECK,
|
||||
BILL_STATUS_MEDICAL_CHECK,
|
||||
BILL_STATUS_BANK_DIRECTOR_CHECK,
|
||||
BILL_STATUS_BLOOD_TYPE_CHECK,
|
||||
BILL_STATUS_MATCH_CHECK,
|
||||
BILL_STATUS_OUT_CHECK
|
||||
);
|
||||
|
||||
public static List<String> values() {
|
||||
return ALL_STATUS_LIST;
|
||||
}
|
||||
}
|
||||
@ -14,7 +14,7 @@ import java.util.Date;
|
||||
@NoArgsConstructor
|
||||
@ApiModel("大量用血审批")
|
||||
public class XkTransfuseApplyApproval {
|
||||
private String Bill_No;
|
||||
private String bill_no;
|
||||
private String Archiater;
|
||||
private Date Archiater_CheckTime;
|
||||
private String Medical_Dept;
|
||||
|
||||
@ -12,7 +12,7 @@ import lombok.NoArgsConstructor;
|
||||
@ApiModel("输血指征")
|
||||
public class XkTransfuseApplyCausalis {
|
||||
@ApiModelProperty("输血申请单编号")
|
||||
private String Bill_No;
|
||||
private String bill_no;
|
||||
@ApiModelProperty("医疗机构ID")
|
||||
private String Hos_ID;
|
||||
private Integer SID;
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
<if test="Medical_CheckTime != null ">#{Medical_CheckTime},</if>
|
||||
<if test="ApplyLevel != null and ApplyLevel != ''">#{ApplyLevel},</if>
|
||||
<if test="Flag != null and Flag != ''">#{Flag},</if>
|
||||
#{billNo}
|
||||
#{bill_no}
|
||||
|
||||
)
|
||||
</insert>
|
||||
@ -30,8 +30,8 @@
|
||||
<if test="Medical_CheckTime != null">Medical_CheckTime = #{Medical_CheckTime},</if>
|
||||
<if test="ApplyLevel != null and ApplyLevel != ''">ApplyLevel = #{ApplyLevel},</if>
|
||||
<if test="Flag != null and Flag != ''">Flag = #{Flag},</if>
|
||||
bill_no = #{Bill_No}
|
||||
where bill_no = #{Bill_No}
|
||||
bill_no = #{bill_no}
|
||||
where bill_no = #{bill_no}
|
||||
</update>
|
||||
<delete id="delete">
|
||||
delete from xk_transfuse_apply_approval where bill_no = #{billNo}
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
<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})
|
||||
values (#{bill_no}, #{hos_id}, #{SID}, #{Causalis_Code}, #{Causalis_Type}, #{Causalis_Name}, #{Causalis_Result}, #{Use_Flag}, #{Upload_Flag}, #{Explain})
|
||||
</insert>
|
||||
<update id="update">
|
||||
update xk_transfuse_apply_causalis
|
||||
@ -22,13 +22,13 @@
|
||||
where Bill_No = #{bill_no} and Causalis_Code = #{Causalis_Code}
|
||||
</update>
|
||||
<delete id="deleteByBillNo">
|
||||
delete from xk_transfuse_apply_causalis where Bill_No = #{bill_no} and Hos_ID = #{hos_id}
|
||||
delete from xk_transfuse_apply_causalis where Bill_No = #{billNo} and Hos_ID = #{hos_id}
|
||||
</delete>
|
||||
<select id="queryList" resultType="com.czblood.bus.pojo.XkTransfuseApplyCausalis">
|
||||
select * from xk_transfuse_apply_causalis where Bill_No = #{bill_no} and Hos_ID = #{hos_id}
|
||||
<if test="SID != null">and sid = #{SID}</if>
|
||||
select * from xk_transfuse_apply_causalis where Bill_No = #{Bill_No} and Hos_ID = #{hos_id}
|
||||
<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} and Hos_ID = #{hos_id}
|
||||
select * from xk_transfuse_apply_causalis where Bill_No = #{billNo} and Hos_ID = #{hos_id}
|
||||
</select>
|
||||
</mapper>
|
||||
@ -150,5 +150,11 @@ public class TransfuseApplyController extends BaseController {
|
||||
return transfuseApplyService.invokeEMR(beinhos_id);
|
||||
}
|
||||
|
||||
@ApiOperation("输血申请单状态闭环")
|
||||
@GetMapping("/bloodCloseLoop")
|
||||
public Result bloodCloseLoop(String billNo){
|
||||
return transfuseApplyService.bloodCloseLoop(billNo);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,17 @@
|
||||
package com.czblood.busDoctor.pojo;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class ClosedLoopStatus {
|
||||
private String statusName;
|
||||
private Date occurDate;
|
||||
private String occurName;
|
||||
private String visible;
|
||||
}
|
||||
@ -33,4 +33,6 @@ public interface TransfuseApplyService {
|
||||
Result cancelApply(CancelApplyVO cancelApplyVO);
|
||||
|
||||
Result invokeEMR(String beinhosId);
|
||||
|
||||
Result bloodCloseLoop(String billNo);
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.czblood.busDoctor.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.czblood.bus.constants.BloodApplyStatusConstants;
|
||||
import com.czblood.bus.mapper.*;
|
||||
import com.czblood.bus.pojo.*;
|
||||
import com.czblood.bus.pojo.inter.CancelApplyCheckRequest;
|
||||
@ -11,6 +12,7 @@ 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.ClosedLoopStatus;
|
||||
import com.czblood.busDoctor.pojo.DTO.TransfuseApplyDTO;
|
||||
import com.czblood.busDoctor.pojo.DTO.TransfuseApplyInfoOne;
|
||||
import com.czblood.busDoctor.pojo.VO.*;
|
||||
@ -23,9 +25,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;
|
||||
import java.util.*;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
@ -313,9 +313,10 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService {
|
||||
//xkTransfuseApply.setSend_able("Y");
|
||||
|
||||
//代表新增单据
|
||||
String newBillNo = "";
|
||||
if(billNo == null){
|
||||
//产生申请单编号
|
||||
String newBillNo = bloodBankUtil.produceBillNo("SQD");
|
||||
newBillNo = bloodBankUtil.produceBillNo("SQD");
|
||||
//申请单信息
|
||||
xkTransfuseApply.setBill_no(newBillNo);
|
||||
|
||||
@ -328,7 +329,7 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService {
|
||||
List<XkTransfuseApplyCausalis> xkTransfuseApplyCausalisList = transfuseApplyDTO.getXkTransfuseApplyCausalisList();
|
||||
if(xkTransfuseApplyCausalisList != null && !xkTransfuseApplyCausalisList.isEmpty()){
|
||||
for (XkTransfuseApplyCausalis xkTransfuseApplyCausalis : xkTransfuseApplyCausalisList) {
|
||||
xkTransfuseApplyCausalis.setBill_No(newBillNo);
|
||||
xkTransfuseApplyCausalis.setBill_no(newBillNo);
|
||||
}
|
||||
}
|
||||
//检验项目明细
|
||||
@ -339,16 +340,17 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService {
|
||||
}
|
||||
}
|
||||
//大量用血申请单表
|
||||
xkTransfuseApplyApproval.setBill_No(newBillNo);
|
||||
xkTransfuseApplyApproval.setBill_no(newBillNo);
|
||||
}
|
||||
|
||||
|
||||
transfuseApplyDTO.setXkTransfuseApplyApproval(xkTransfuseApplyApproval);
|
||||
//保存数据
|
||||
transfuseApplyUtil.saveTransfuseApply(transfuseApplyDTO, billNo == null);
|
||||
if(newBillNo.equals("")) newBillNo = billNo;
|
||||
if(code.equals("0")){
|
||||
return new Result("0","保存成功!");
|
||||
return new Result("0","保存成功!",newBillNo);
|
||||
}else{
|
||||
return new Result("1",msg);
|
||||
return new Result("1",msg,newBillNo);
|
||||
}
|
||||
|
||||
}
|
||||
@ -648,4 +650,51 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService {
|
||||
return BloodInterfaceUtil.invokeBloodInterface(invokeHisEmrRequest);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result bloodCloseLoop(String billNo) {
|
||||
List<String> applyStatusList = BloodApplyStatusConstants.values();
|
||||
XkTransfuseApply xkTransfuseApply = xkTransfuseApplyMapper.queryOne(billNo);
|
||||
List<ClosedLoopStatus> closedLoopStatusList = new ArrayList<>();
|
||||
XkTransfuseApplyApproval xkTransfuseApplyApproval = xkTransfuseApplyApprovalMapper.queryOneByBillNo(billNo);
|
||||
for (String statusName : applyStatusList) {
|
||||
//大量用血申请表没有,说明没有科主任审核和医务科审核
|
||||
if((xkTransfuseApplyApproval == null) && (statusName.equals(BloodApplyStatusConstants.BILL_STATUS_ARCHIATER_CHECK) || statusName.equals(BloodApplyStatusConstants.BILL_STATUS_MEDICAL_CHECK))) continue;
|
||||
if(xkTransfuseApplyApproval != null){
|
||||
String applyLevel = xkTransfuseApplyApproval.getApplyLevel();
|
||||
//一级审核也没有科主任和医务科审核
|
||||
if(applyLevel.equals("1") && (statusName.equals(BloodApplyStatusConstants.BILL_STATUS_ARCHIATER_CHECK) || statusName.equals(BloodApplyStatusConstants.BILL_STATUS_MEDICAL_CHECK))) continue;
|
||||
//二级审核没有医务科审核
|
||||
if((applyLevel.equals("2") && (statusName.equals(BloodApplyStatusConstants.BILL_STATUS_MEDICAL_CHECK)))) continue;
|
||||
}
|
||||
ClosedLoopStatus closedLoopStatus = new ClosedLoopStatus();
|
||||
closedLoopStatus.setStatusName(statusName);
|
||||
if(xkTransfuseApply == null) closedLoopStatus.setVisible("N");
|
||||
switch (statusName) {
|
||||
case BloodApplyStatusConstants.BILL_STATUS_OPEN:
|
||||
if(xkTransfuseApply.getApply_medic() != null && !xkTransfuseApply.getApply_medic().equals("")){
|
||||
closedLoopStatus.setOccurName(xkTransfuseApply.getApply_medic());
|
||||
closedLoopStatus.setOccurDate(xkTransfuseApply.getApply_date());
|
||||
closedLoopStatus.setVisible("Y");
|
||||
}
|
||||
break;
|
||||
case BloodApplyStatusConstants.BILL_STATUS_CHECK_DOCTOR:
|
||||
if(xkTransfuseApply.getMedic_check_date() != null){
|
||||
closedLoopStatus.setOccurName(xkTransfuseApply.getCheck_medic());
|
||||
closedLoopStatus.setOccurDate(xkTransfuseApply.getMedic_check_date());
|
||||
closedLoopStatus.setVisible("Y");
|
||||
}
|
||||
break;
|
||||
case BloodApplyStatusConstants.BILL_STATUS_BLOOD_TYPE_CHECK:
|
||||
break;
|
||||
case BloodApplyStatusConstants.BILL_STATUS_MATCH_CHECK:
|
||||
break;
|
||||
case BloodApplyStatusConstants.BILL_STATUS_OUT_CHECK:
|
||||
break;
|
||||
}
|
||||
closedLoopStatusList.add(closedLoopStatus);
|
||||
}
|
||||
|
||||
return new Result("0","获取数据成功",closedLoopStatusList);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -63,7 +63,7 @@ public class TransfuseApprovalServiceImpl implements TransfuseApprovalService {
|
||||
if(applyLevel.equals("2") && flag.equals("Y")) return new Result("1","该申请单已进行科主任核准!");
|
||||
Date currentTimeDate = bloodBankUtil.getCurrentTimeDate();
|
||||
XkTransfuseApplyApproval xkTransfuseApplyApprovalTemp = new XkTransfuseApplyApproval();
|
||||
xkTransfuseApplyApprovalTemp.setBill_No(billNo);
|
||||
xkTransfuseApplyApprovalTemp.setBill_no(billNo);
|
||||
xkTransfuseApplyApprovalTemp.setArchiater( username);
|
||||
xkTransfuseApplyApprovalTemp.setArchiater_CheckTime(currentTimeDate);
|
||||
xkTransfuseApplyApprovalTemp.setFlag("Y");
|
||||
@ -96,7 +96,7 @@ public class TransfuseApprovalServiceImpl implements TransfuseApprovalService {
|
||||
if(!medicalDept.equals("")) return new Result("-1","该申请单已进行医务部审核,无需重复审核!");
|
||||
Date currentTimeDate = bloodBankUtil.getCurrentTimeDate();
|
||||
XkTransfuseApplyApproval xkTransfuseApplyApprovalTemp = new XkTransfuseApplyApproval();
|
||||
xkTransfuseApplyApprovalTemp.setBill_No(billNo);
|
||||
xkTransfuseApplyApprovalTemp.setBill_no(billNo);
|
||||
xkTransfuseApplyApprovalTemp.setMedical_Dept(username);
|
||||
xkTransfuseApplyApprovalTemp.setMedical_CheckTime(currentTimeDate);
|
||||
xkTransfuseApplyApprovalTemp.setFlag("Y");
|
||||
|
||||
@ -99,13 +99,13 @@ public class TransfuseApplyUtil {
|
||||
flag = "N";
|
||||
msg = "申请用血量≥1600ml,需科主任进入临床用血(大量用血审批)页面核准后,再报医务部门在临床用血(大量用血审批)批准!";
|
||||
}
|
||||
XkTransfuseApplyApproval xkTransfuseApplyApproval = null;
|
||||
if(billNo == null){
|
||||
xkTransfuseApplyApproval = new XkTransfuseApplyApproval();
|
||||
}else{
|
||||
xkTransfuseApplyApproval = xkTransfuseApplyApprovalMapper.queryOneByBillNo(billNo);
|
||||
}
|
||||
XkTransfuseApplyApproval xkTransfuseApplyApproval = xkTransfuseApplyApprovalMapper.queryOneByBillNo(billNo);
|
||||
if(xkTransfuseApplyApproval == null) xkTransfuseApplyApproval = new XkTransfuseApplyApproval();
|
||||
|
||||
//有可能第一次判定的时候没有,后面修改的时候发现是大量用血
|
||||
if(billNo != null && !billNo.equals("")){
|
||||
xkTransfuseApplyApproval.setBill_no(billNo);
|
||||
}
|
||||
xkTransfuseApplyApproval.setApplyLevel(applyLev);
|
||||
xkTransfuseApplyApproval.setFlag(flag);
|
||||
|
||||
@ -131,6 +131,7 @@ public class TransfuseApplyUtil {
|
||||
String beinhosId = BloodBankUtil.isBank(xkTransfuseApply.getBeinhos_id());
|
||||
String deptType = BloodBankUtil.isBank(xkTransfuseApply.getDept_Type());
|
||||
String useType = BloodBankUtil.isBank(xkTransfuseApply.getUse_type());
|
||||
String billNo = xkTransfuseApply.getBill_no();
|
||||
//这个返回也是原来的逻辑
|
||||
if(beinhosId.equals("") || deptType.equals("") || useType.equals("") ) return new Result("0","字段没有填完整,无法校验!");
|
||||
XkCausalisSet xkCausalisSet = new XkCausalisSet();
|
||||
@ -291,7 +292,7 @@ public class TransfuseApplyUtil {
|
||||
|
||||
//保存输血指征表
|
||||
if(xkTransfuseApplyCausalisList != null && !xkTransfuseApplyCausalisList.isEmpty()){
|
||||
xkTransfuseApplyCausalisMapper.deleteByBillNo(xkTransfuseApplyCausalisList.get(0).getBill_No());
|
||||
xkTransfuseApplyCausalisMapper.deleteByBillNo(xkTransfuseApplyCausalisList.get(0).getBill_no());
|
||||
for (XkTransfuseApplyCausalis xkTransfuseApplyCausalis : xkTransfuseApplyCausalisList) {
|
||||
xkTransfuseApplyCausalisMapper.insert(xkTransfuseApplyCausalis);
|
||||
}
|
||||
@ -305,7 +306,7 @@ public class TransfuseApplyUtil {
|
||||
|
||||
//大量用血申请单表
|
||||
if(xkTransfuseApplyApproval != null){
|
||||
xkTransfuseApplyApprovalMapper.delete(xkTransfuseApplyApproval.getBill_No());
|
||||
xkTransfuseApplyApprovalMapper.delete(xkTransfuseApplyApproval.getBill_no());
|
||||
xkTransfuseApplyApprovalMapper.insert(xkTransfuseApplyApproval);
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user