|
@@ -201,6 +201,7 @@ public class YiZhuLuRuServer {
|
|
|
* @param times 次数
|
|
|
* @return 返回父医嘱
|
|
|
*/
|
|
|
+ @Deprecated
|
|
|
public ResultVo<List<XinZhenYzActOrder>> getParentOrders(String patNo, Integer times) {
|
|
|
return ResultVoUtil.success(dao.getParentOrders(patNo, times));
|
|
|
}
|
|
@@ -404,16 +405,13 @@ public class YiZhuLuRuServer {
|
|
|
return ResultVoUtil.fail(ExceptionEnum.ERROR_MESSAGE, "请修改有错误的医嘱。", errorMessageMap);
|
|
|
}
|
|
|
|
|
|
+ // 如果是 子医嘱 的话就拿到父医嘱的频率
|
|
|
if (data.getParentNo() != null) {
|
|
|
- XinZhenYzActOrder parentOrder = dao.getActOrderNoOne(data.getParentNo().stripTrailingZeros().toPlainString());
|
|
|
- if (parentOrder != null) {
|
|
|
- data.setFrequCode(parentOrder.getFrequCode());
|
|
|
+ String frequCode = dao.selectParentNo(data.getParentNo().stripTrailingZeros().toPlainString());
|
|
|
+ if (StringUtil.notBlank(frequCode)) {
|
|
|
+ data.setFrequCode(frequCode);
|
|
|
}
|
|
|
}
|
|
|
- // 删除抗菌药物信息
|
|
|
- dao.deleteAntimicrobialInformation(param.getActOrderNo());
|
|
|
- // 先删除转科在插入
|
|
|
- dao.deleteTransferOrder(param.getActOrderNo());
|
|
|
|
|
|
if (checkData.getPassTheAudit()) {
|
|
|
if (ZK_CODE.equals(data.getOrderCode())) {
|
|
@@ -424,6 +422,8 @@ public class YiZhuLuRuServer {
|
|
|
.setNewWard(data.getZkWardCode())
|
|
|
.setOldWard(huanZheXinXi.getDeptCode())
|
|
|
.setOldDept(huanZheXinXi.getSmallDept());
|
|
|
+ // 先删除转科在插入
|
|
|
+ dao.deleteTransferOrder(param.getActOrderNo());
|
|
|
dao.insertDoctorSOrder(transferData);
|
|
|
}
|
|
|
// 判断是不是抗菌药物
|
|
@@ -435,6 +435,8 @@ public class YiZhuLuRuServer {
|
|
|
kss.setYyfs(data.getYyfs());
|
|
|
kss.setSsqk(data.getSsqk());
|
|
|
kss.setYysj(data.getYysj());
|
|
|
+ // 删除抗菌药物信息
|
|
|
+ dao.deleteAntimicrobialInformation(param.getActOrderNo());
|
|
|
dao.insertAntimicrobialInformation(param.getActOrderNo(),
|
|
|
kss, userCode, param.getInpatientNo(), param.getAdmissTimes());
|
|
|
}
|
|
@@ -442,12 +444,19 @@ public class YiZhuLuRuServer {
|
|
|
|
|
|
dao.deleteOrderNo(param.getActOrderNo());
|
|
|
dao.insertEntryOrder(huanZheXinXi, param.getData(), userCode);
|
|
|
+
|
|
|
+ // 更新授权医生
|
|
|
if (StringUtil.notBlank(param.getData().getSuperiorDoctor())) {
|
|
|
dao.updateAuthorizedDoctor(param.getData().getActOrderNo(), param.getData().getSuperiorDoctor());
|
|
|
}
|
|
|
- if (param.getData().getParentNo() == null) {
|
|
|
+ // 项目不触发
|
|
|
+ if (param.getData().getParentNo() == null && !param.getData().getSerial().equals("00")) {
|
|
|
+ String selectSupplyCode = dao.selectSupplyCode(param.getData().getSupplyCode().trim());
|
|
|
+ if (StringUtil.isBlank(selectSupplyCode)) {
|
|
|
+ selectSupplyCode = "044";
|
|
|
+ }
|
|
|
// 子医嘱跟随父医嘱
|
|
|
- dao.howOftenTheSubPhysicianOrderIsModified(param.getData());
|
|
|
+ dao.howOftenTheSubPhysicianOrderIsModified(param.getData(), selectSupplyCode);
|
|
|
}
|
|
|
|
|
|
QueryWrapper<?> qw = new QueryWrapper<>();
|
|
@@ -658,16 +667,25 @@ public class YiZhuLuRuServer {
|
|
|
return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "存在医嘱时间为空的医嘱请检查。", map);
|
|
|
}
|
|
|
|
|
|
+ private Integer a = 0;
|
|
|
|
|
|
/**
|
|
|
* 获取某一个费用的详细信息
|
|
|
*
|
|
|
- * @param code 编码
|
|
|
- * @param serial 00-项目 01-小包装的药品 99-大包装
|
|
|
+ * @param code 编码
|
|
|
+ * @param serial 00-项目 01-小包装的药品 99-大包装
|
|
|
+ * @param deptCode 科室编码
|
|
|
+ * @param groupNo 药房编码
|
|
|
+ * @param seniorDoctor 授权医生
|
|
|
+ * @param flag 医嘱状态标志
|
|
|
* @return 返回该费用的一些详细信息,以及一些提示信息。
|
|
|
*/
|
|
|
@DS("his")
|
|
|
- public ResultVo<Map<String, Object>> huoQuFeiYongXinXi(String code, String serial, String deptCode, String groupNo, String seniorDoctor) {
|
|
|
+ public ResultVo<Map<String, Object>> huoQuFeiYongXinXi(String code, String serial,
|
|
|
+ String deptCode,
|
|
|
+ String groupNo,
|
|
|
+ String seniorDoctor,
|
|
|
+ String flag) {
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
// 一些提示
|
|
|
List<String> prompt = new ArrayList<>();
|
|
@@ -685,52 +703,78 @@ public class YiZhuLuRuServer {
|
|
|
}
|
|
|
}
|
|
|
if (ListUtil.isBlank(xiangMu)) {
|
|
|
- Integer paiChiYiZhu = dao.shiFouPaiChiYiZhu(code);
|
|
|
- if (paiChiYiZhu != null) {
|
|
|
- switch (paiChiYiZhu) {
|
|
|
- case 1:
|
|
|
- prompt.add("全排斥医嘱");
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- prompt.add("单组排斥医嘱");
|
|
|
- break;
|
|
|
- case 3:
|
|
|
- prompt.add("多组斥医嘱");
|
|
|
- break;
|
|
|
- default:
|
|
|
- break;
|
|
|
+ if (flag.equals("1")) {
|
|
|
+ Integer paiChiYiZhu = dao.shiFouPaiChiYiZhu(code);
|
|
|
+ if (paiChiYiZhu != null) {
|
|
|
+ switch (paiChiYiZhu) {
|
|
|
+ case 1:
|
|
|
+ prompt.add("全排斥医嘱");
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ prompt.add("单组排斥医嘱");
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ prompt.add("多组斥医嘱");
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
- YaoPinXinXi yp = dao.huoQuYaoPin(code.trim() + serial.trim(), groupNo);
|
|
|
- if (StringUtil.notBlank(deptCode)) {
|
|
|
- if (dao.restrictedUseInTheDepartment(code.trim(), deptCode) > 0) {
|
|
|
- return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST, "该药品禁止在患者所在的科室使用。");
|
|
|
+ String key = code.trim() + serial.trim();
|
|
|
+ YaoPinXinXi yp = dao.huoQuYaoPin(key);
|
|
|
+ // 新开的医嘱才需要判断这个
|
|
|
+ if (flag.equals("1")) {
|
|
|
+ if (yp == null) {
|
|
|
+ return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST, "该医嘱下的药品,可能已经被停用了,请联系药剂科。");
|
|
|
}
|
|
|
- }
|
|
|
- if (yp == null) {
|
|
|
- return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST, "该医嘱下的药品,可能已经被停用了,请联系药剂科。");
|
|
|
- }
|
|
|
- yp.setDrugFlag(getDrugFlagByLargeCategories(yp.getCategoriesFlag()));
|
|
|
+ yp.setDrugFlag(getDrugFlagByLargeCategories(yp.getCategoriesFlag()));
|
|
|
|
|
|
- if (yp.getVisibleFlagZy() == 1) {
|
|
|
- return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST, "该药品禁止住院使用。");
|
|
|
- }
|
|
|
- Integer yiShenDengJi = dao.huoQuYiShenDengJi(TokenUtil.getTokenUserId());
|
|
|
- int yiShen = yiShenDengJi == null ? 0 : yiShenDengJi;
|
|
|
+ YaoPinXinXi disable = dao.huoQuJinYongXinXi(key, groupNo);
|
|
|
|
|
|
- int superior = 0;
|
|
|
+ if (disable != null && disable.getVisibleFlagZy() == 1) {
|
|
|
+ return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST, "该药品禁止住院使用。");
|
|
|
+ }
|
|
|
+ if (StringUtil.notBlank(deptCode)) {
|
|
|
+ if (dao.restrictedUseInTheDepartment(code.trim(), deptCode) > 0) {
|
|
|
+ return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST, "该药品禁止在患者所在的科室使用。");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Integer yiShenDengJi = dao.huoQuYiShenDengJi(TokenUtil.getTokenUserId());
|
|
|
+ int yiShen = yiShenDengJi == null ? 0 : yiShenDengJi;
|
|
|
|
|
|
- if (StringUtil.notBlank(seniorDoctor) && !"null".equals(seniorDoctor)) {
|
|
|
- Integer superiorRank = dao.huoQuYiShenDengJi(seniorDoctor);
|
|
|
- superior = superiorRank == null ? 0 : superiorRank;
|
|
|
- }
|
|
|
+ int superior = 0;
|
|
|
|
|
|
- if (yp.getYpLevel() > yiShen && yp.getYpLevel() > superior) {
|
|
|
- permissionPrompt = true;
|
|
|
- }
|
|
|
+ if (StringUtil.notBlank(seniorDoctor) && !"null".equals(seniorDoctor)) {
|
|
|
+ Integer superiorRank = dao.huoQuYiShenDengJi(seniorDoctor);
|
|
|
+ superior = superiorRank == null ? 0 : superiorRank;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (yp.getYpLevel() > yiShen && yp.getYpLevel() > superior) {
|
|
|
+ permissionPrompt = true;
|
|
|
+ }
|
|
|
|
|
|
+ if (yp.getKjywFlag() == 1) {
|
|
|
+ prompt.add("抗菌药物,需填写抗菌药物医嘱附注");
|
|
|
+ }
|
|
|
+ if (yp.getSelfFlagYb() == 1) {
|
|
|
+ prompt.add("该药品医保自费药品,如符合条件请填写记账,不是请填写自费");
|
|
|
+ }
|
|
|
+ if (StringUtil.isBlank(yp.getNationalCode())) {
|
|
|
+ prompt.add("该药品医保没有匹配医保码");
|
|
|
+ } else {
|
|
|
+ prompt.add(String.format("药品医保码为:【%s】", yp.getNationalCode()));
|
|
|
+ }
|
|
|
+ if (disable != null && disable.getStockAmount() != null && BigUtils.bigXiaoYu(disable.getStockAmount(), 10)) {
|
|
|
+ prompt.add(String.format("该药品剩余数量为:【%s】", disable.getStockAmount().stripTrailingZeros().toPlainString()));
|
|
|
+ }
|
|
|
+ if (yp.getPsFlag() == 1) {
|
|
|
+ prompt.add("此药品为皮试药品");
|
|
|
+ map.put("piShi", dao.piShiGeiYaoFangShi());
|
|
|
+ }
|
|
|
+ }
|
|
|
List<YaoPingJiLiang> yaoPingJiLiang = new ArrayList<>();
|
|
|
if (StringUtil.notBlank(yp.getWeighUnit())) {
|
|
|
yaoPingJiLiang.add(new YaoPingJiLiang(yp.getWeighUnit(), yp.getWeighUnitName(), yp.getWeight()));
|
|
@@ -742,24 +786,6 @@ public class YiZhuLuRuServer {
|
|
|
yaoPingJiLiang.add(new YaoPingJiLiang(yp.getPackUnit(), yp.getPackUnitName(), yp.getPackSize()));
|
|
|
}
|
|
|
|
|
|
- if (yp.getKjywFlag() == 1) {
|
|
|
- prompt.add("抗菌药物,需填写抗菌药物医嘱附注");
|
|
|
- }
|
|
|
- if (yp.getSelfFlagYb() == 1) {
|
|
|
- prompt.add("该药品医保自费药品,如符合条件请填写记账,不是请填写自费");
|
|
|
- }
|
|
|
- if (StringUtil.isBlank(yp.getNationalCode())) {
|
|
|
- prompt.add("该药品医保没有匹配医保码");
|
|
|
- } else {
|
|
|
- prompt.add(String.format("药品医保码为:【%s】", yp.getNationalCode()));
|
|
|
- }
|
|
|
- if (yp.getStockAmount() != null && BigUtils.bigXiaoYu(yp.getStockAmount(), 10)) {
|
|
|
- prompt.add(String.format("该药品剩余数量为:【%s】", yp.getStockAmount().stripTrailingZeros().toPlainString()));
|
|
|
- }
|
|
|
- if (yp.getPsFlag() == 1) {
|
|
|
- prompt.add("此药品为皮试药品");
|
|
|
- map.put("piShi", dao.piShiGeiYaoFangShi());
|
|
|
- }
|
|
|
map.put("yaoPingJiLiang", yaoPingJiLiang);
|
|
|
map.put("data", yp);
|
|
|
}
|