diff --git a/.idea/MarsCodeWorkspaceAppSettings.xml b/.idea/MarsCodeWorkspaceAppSettings.xml
deleted file mode 100644
index 81f2d8c..0000000
--- a/.idea/MarsCodeWorkspaceAppSettings.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/blood_bus/src/main/java/com/czblood/bus/constants/BloodApplyStatusConstants.java b/blood_bus/src/main/java/com/czblood/bus/constants/BloodApplyStatusConstants.java
new file mode 100644
index 0000000..9ea8d85
--- /dev/null
+++ b/blood_bus/src/main/java/com/czblood/bus/constants/BloodApplyStatusConstants.java
@@ -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 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 values() {
+ return ALL_STATUS_LIST;
+ }
+}
diff --git a/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApplyApproval.java b/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApplyApproval.java
index 86faa33..c9c6ba3 100644
--- a/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApplyApproval.java
+++ b/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApplyApproval.java
@@ -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;
diff --git a/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApplyCausalis.java b/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApplyCausalis.java
index e225c16..4911bdb 100644
--- a/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApplyCausalis.java
+++ b/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApplyCausalis.java
@@ -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;
diff --git a/blood_bus/src/main/resources/mapper/XkTransfuseApplyApprovalMapper.xml b/blood_bus/src/main/resources/mapper/XkTransfuseApplyApprovalMapper.xml
index 7b06847..76aa432 100644
--- a/blood_bus/src/main/resources/mapper/XkTransfuseApplyApprovalMapper.xml
+++ b/blood_bus/src/main/resources/mapper/XkTransfuseApplyApprovalMapper.xml
@@ -18,7 +18,7 @@
#{Medical_CheckTime},
#{ApplyLevel},
#{Flag},
- #{billNo}
+ #{bill_no}
)
@@ -30,8 +30,8 @@
Medical_CheckTime = #{Medical_CheckTime},
ApplyLevel = #{ApplyLevel},
Flag = #{Flag},
- bill_no = #{Bill_No}
- where bill_no = #{Bill_No}
+ bill_no = #{bill_no}
+ where bill_no = #{bill_no}
delete from xk_transfuse_apply_approval where bill_no = #{billNo}
diff --git a/blood_bus/src/main/resources/mapper/XkTransfuseApplyCausalisMapper.xml b/blood_bus/src/main/resources/mapper/XkTransfuseApplyCausalisMapper.xml
index 4edcb07..9b2640e 100644
--- a/blood_bus/src/main/resources/mapper/XkTransfuseApplyCausalisMapper.xml
+++ b/blood_bus/src/main/resources/mapper/XkTransfuseApplyCausalisMapper.xml
@@ -4,7 +4,7 @@
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})
update xk_transfuse_apply_causalis
@@ -22,13 +22,13 @@
where Bill_No = #{bill_no} and Causalis_Code = #{Causalis_Code}
- 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}
\ 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 483fb55..2bce0b1 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
@@ -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);
+ }
+
}
diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/pojo/ClosedLoopStatus.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/pojo/ClosedLoopStatus.java
new file mode 100644
index 0000000..e3c9086
--- /dev/null
+++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/pojo/ClosedLoopStatus.java
@@ -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;
+}
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 ca77ed1..3232206 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
@@ -33,4 +33,6 @@ public interface TransfuseApplyService {
Result cancelApply(CancelApplyVO cancelApplyVO);
Result invokeEMR(String beinhosId);
+
+ Result bloodCloseLoop(String billNo);
}
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 8be9fe0..5a181f2 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,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 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 applyStatusList = BloodApplyStatusConstants.values();
+ XkTransfuseApply xkTransfuseApply = xkTransfuseApplyMapper.queryOne(billNo);
+ List 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);
+ }
+
}
diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/impl/TransfuseApprovalServiceImpl.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/impl/TransfuseApprovalServiceImpl.java
index 73f227b..90cfb6e 100644
--- a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/impl/TransfuseApprovalServiceImpl.java
+++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/impl/TransfuseApprovalServiceImpl.java
@@ -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");
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 2d94be2..d41d0a7 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
@@ -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);
}