|
@@ -208,6 +208,7 @@ public class YiZhuLuRuServer {
|
|
|
* @param param 数据
|
|
|
* @return 返回提示
|
|
|
*/
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public ResultVo<Map<String, Object>> confirmOrders(XinZhenYiZhu param) {
|
|
|
QueryWrapper<?> qw = new QueryWrapper<>();
|
|
|
qw.eq("a.inpatient_no", param.getInpatientNo()).eq("a.admiss_times", param.getAdmissTimes());
|
|
@@ -217,15 +218,29 @@ public class YiZhuLuRuServer {
|
|
|
if (ListUtil.isBlank(yiZhuList)) {
|
|
|
return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "没有需要确认的医嘱.");
|
|
|
}
|
|
|
+ // 药品 code
|
|
|
Set<String> yaoPingCode = new HashSet<>();
|
|
|
// 项目的 code
|
|
|
Set<String> xiangMuCode = new HashSet<>();
|
|
|
+ // 出院带药需要生成药单
|
|
|
+ Map<String, List<XinZhenYzActOrder>> takeTheMedicineList = new HashMap<>(Capacity.TWO);
|
|
|
+
|
|
|
for (XinZhenYzActOrder item : yiZhuList) {
|
|
|
if (ITEM.equals(item.getSerial())) {
|
|
|
xiangMuCode.add(item.getOrderCode());
|
|
|
} else {
|
|
|
yaoPingCode.add(item.getOrderCode().trim() + item.getSerial().trim());
|
|
|
}
|
|
|
+ // 费用标志为 4 的就是出院带药
|
|
|
+ if ("4".equals(item.getSelfBuy())) {
|
|
|
+ if (takeTheMedicineList.containsKey(item.getGroupNo())) {
|
|
|
+ takeTheMedicineList.get(item.getGroupNo()).add(item);
|
|
|
+ } else {
|
|
|
+ List<XinZhenYzActOrder> temp = new ArrayList<>();
|
|
|
+ temp.add(item);
|
|
|
+ takeTheMedicineList.put(item.getGroupNo(), temp);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
String userCode = TokenUtil.getTokenUserId();
|
|
|
// 获取医生开药品的权限
|
|
@@ -252,7 +267,6 @@ public class YiZhuLuRuServer {
|
|
|
excludeOrders = item.getStartTime();
|
|
|
orderNo = item.getActOrderNo();
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
confirmOrderInformation.add(item.getActOrderNo());
|
|
@@ -272,17 +286,27 @@ public class YiZhuLuRuServer {
|
|
|
if (excludeOrders != null) {
|
|
|
int count = dao.thereAreUnexecutedOrders(param.getInpatientNo(), param.getAdmissTimes(), orderNo);
|
|
|
if (count > 0) {
|
|
|
- return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "有未确认和未执行的医嘱,无法确认。");
|
|
|
+ return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "有未确认和未执行的医嘱,无法确认全排斥医嘱。");
|
|
|
}
|
|
|
dao.stopOrder(param.getInpatientNo(), param.getAdmissTimes(), excludeOrders, userCode);
|
|
|
}
|
|
|
-
|
|
|
+ // TODO 出院带药的问题
|
|
|
+// dischargeMedicineList(takeTheMedicineList, huanZheXinXi);
|
|
|
dao.confirmOrders(confirmOrderInformation, TokenUtil.getTokenUserId(), param.getInpatientNo(), param.getAdmissTimes());
|
|
|
-
|
|
|
log.info("确认的医嘱:{}", JSON.toJSONString(yiZhuList));
|
|
|
return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION);
|
|
|
}
|
|
|
|
|
|
+ private void dischargeMedicineList(Map<String, List<XinZhenYzActOrder>> map, XinZhenYiZhu huanZheXinXi) {
|
|
|
+ log.info("出院带药药单:{}", JSON.toJSONString(map));
|
|
|
+ String userCode = TokenUtil.getTokenUserId();
|
|
|
+ for (Map.Entry<String, List<XinZhenYzActOrder>> entry : map.entrySet()) {
|
|
|
+ Integer pageNo = publicServer.getTheDrugListNo();
|
|
|
+ dao.summarySheetOfDrugs(pageNo, huanZheXinXi, userCode, entry.getKey());
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 录入单条医嘱 新的 下面的保存医嘱的都无效了
|
|
@@ -399,6 +423,7 @@ public class YiZhuLuRuServer {
|
|
|
|
|
|
param.getList().forEach(item -> {
|
|
|
String key = item.getParentNo() != null ? item.getParentNo().stripTrailingZeros().toPlainString() : "";
|
|
|
+ item.setGroupNo(param.getGroupNo());
|
|
|
if (StringUtil.notBlank(key)) {
|
|
|
if (fatherAndSonDoctorSAdvice.containsKey(key)) {
|
|
|
item.setParentNo(fatherAndSonDoctorSAdvice.get(key).getActOrderNo());
|
|
@@ -722,6 +747,7 @@ public class YiZhuLuRuServer {
|
|
|
* @param param 医嘱数据
|
|
|
* @return 返回错误提示或者别的
|
|
|
*/
|
|
|
+ @Deprecated
|
|
|
public ResultVo<Map<String, Object>> saveTheDoctorSOrder(XinZhenYiZhu param) {
|
|
|
log.info("上传数据:{}", JSON.toJSONStringWithDateFormat(param, DateUtil.DEFAULT_PATTERN));
|
|
|
// 获取医生开药品的权限
|
|
@@ -892,7 +918,7 @@ public class YiZhuLuRuServer {
|
|
|
}
|
|
|
|
|
|
private Map<String, Object> checkData(XinZhenYzActOrder item, Map<String, XinZhenYzActOrder> drug, Map<String, List<XinZhenYzActOrder>> project, XinZhenYiZhu huanZheXinXi, Integer 医生级别) {
|
|
|
- Boolean 严格校验 = huanZheXinXi != null;
|
|
|
+ boolean 严格校验 = huanZheXinXi != null;
|
|
|
List<String> 错误信息 = new ArrayList<>();
|
|
|
List<String> 警告信息 = new ArrayList<>();
|
|
|
|
|
@@ -940,7 +966,7 @@ public class YiZhuLuRuServer {
|
|
|
if (item.getYyfs() == null) {
|
|
|
错误信息.add("请填写抗菌药物医嘱附注信息录入");
|
|
|
} else if (item.getYyfs() == 1 || item.getYyfs() == 2) {
|
|
|
- if (item.getSsqk() == null || item.getYyfs() == null) {
|
|
|
+ if (item.getSsqk() == null) {
|
|
|
错误信息.add("当用药方式为 1 或 2 时,手术切口和用药时间不能为空");
|
|
|
}
|
|
|
}
|