|
@@ -43,14 +43,11 @@ public class LisRule {
|
|
public void bill(List<Lis> inputLis, RuleBaseDTO ruleBaseDTO, List<BillMsg> billMsgList, String conType, RuleSimpleDTO ruleSimpleDTO) {
|
|
public void bill(List<Lis> inputLis, RuleBaseDTO ruleBaseDTO, List<BillMsg> billMsgList, String conType, RuleSimpleDTO ruleSimpleDTO) {
|
|
if (ListUtil.isNotEmpty(inputLis) && StringUtil.isNotBlank(ruleBaseDTO.getBaseLibName())) {
|
|
if (ListUtil.isNotEmpty(inputLis) && StringUtil.isNotBlank(ruleBaseDTO.getBaseLibName())) {
|
|
for (Lis lis : inputLis) {
|
|
for (Lis lis : inputLis) {
|
|
- String uniqueName = lis.getUniqueName();
|
|
|
|
- if (StringUtil.isNotBlank(uniqueName) && uniqueName.equals(ruleBaseDTO.getBaseLibName())) {
|
|
|
|
- Map<String, Object> map = CoreUtil.compareLis(ruleBaseDTO, lis);
|
|
|
|
- if ((Boolean) map.get("flag") == true) {
|
|
|
|
- BillMsg commonBillMsg = MsgUtil.getCommonBillMsg(ruleSimpleDTO.getInputName(),
|
|
|
|
- ruleSimpleDTO.getLibName(), (String) map.get("msg"), conType, ruleSimpleDTO.getLibTypeName());
|
|
|
|
- billMsgList.add(commonBillMsg);
|
|
|
|
- }
|
|
|
|
|
|
+ Map<String, Object> map = CoreUtil.compareLis(ruleBaseDTO, lis);
|
|
|
|
+ if (CoreUtil.getMapFlag(map)) {
|
|
|
|
+ BillMsg commonBillMsg = MsgUtil.getCommonBillMsg(ruleSimpleDTO.getInputName(),
|
|
|
|
+ ruleSimpleDTO.getLibName(), (String) map.get("msg"), conType, ruleSimpleDTO.getLibTypeName());
|
|
|
|
+ billMsgList.add(commonBillMsg);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -67,13 +64,10 @@ public class LisRule {
|
|
public void highOperation(List<Lis> inputLis, RuleBaseDTO ruleBaseDTO, List<BillMsg> highRiskList, RuleSimpleDTO ruleSimpleDTO) {
|
|
public void highOperation(List<Lis> inputLis, RuleBaseDTO ruleBaseDTO, List<BillMsg> highRiskList, RuleSimpleDTO ruleSimpleDTO) {
|
|
if (ListUtil.isNotEmpty(inputLis) && StringUtil.isNotBlank(ruleBaseDTO.getBaseLibName())) {
|
|
if (ListUtil.isNotEmpty(inputLis) && StringUtil.isNotBlank(ruleBaseDTO.getBaseLibName())) {
|
|
for (Lis lis : inputLis) {
|
|
for (Lis lis : inputLis) {
|
|
- String uniqueName = lis.getUniqueName();
|
|
|
|
- if (StringUtil.isNotBlank(uniqueName) && uniqueName.equals(ruleBaseDTO.getBaseLibName())) {
|
|
|
|
- Map<String, Object> map = CoreUtil.compareLis(ruleBaseDTO, lis);
|
|
|
|
- if ((Boolean) map.get("flag") == true) {
|
|
|
|
- BillMsg billMsg = MsgUtil.getCommonHighRiskMsg((String) map.get("msg"), ruleSimpleDTO.getInputName(), ruleSimpleDTO.getLibTypeName());
|
|
|
|
- highRiskList.add(billMsg);
|
|
|
|
- }
|
|
|
|
|
|
+ Map<String, Object> map = CoreUtil.compareLis(ruleBaseDTO, lis);
|
|
|
|
+ if (CoreUtil.getMapFlag(map)) {
|
|
|
|
+ BillMsg billMsg = MsgUtil.getCommonHighRiskMsg((String) map.get("msg"), ruleSimpleDTO.getInputName(), ruleSimpleDTO.getLibTypeName());
|
|
|
|
+ highRiskList.add(billMsg);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -99,10 +93,22 @@ public class LisRule {
|
|
switch (LexiconEnum.getEnum(ruleBaseDTO.getBaseLibType())) {
|
|
switch (LexiconEnum.getEnum(ruleBaseDTO.getBaseLibType())) {
|
|
case LisSubName: // 化验细项
|
|
case LisSubName: // 化验细项
|
|
if (ruleBaseDTO.getBaseLibName().equals(lisBean.getUniqueName())) {
|
|
if (ruleBaseDTO.getBaseLibName().equals(lisBean.getUniqueName())) {
|
|
|
|
+ // 化验自身
|
|
map = CoreUtil.compareLis(ruleBaseDTO, lisBean);
|
|
map = CoreUtil.compareLis(ruleBaseDTO, lisBean);
|
|
- if ((Boolean) map.get("flag") == true) {
|
|
|
|
|
|
+ if (CoreUtil.getMapFlag(map)) {
|
|
|
|
+ i++;
|
|
lisOtherDTO.setName((String) map.get("msg"));
|
|
lisOtherDTO.setName((String) map.get("msg"));
|
|
|
|
+ } else {
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ // 其他化验——暂无数据
|
|
|
|
+ map = CoreUtil.compareLis(ruleBaseDTO, wordCrfDTO.getLis());
|
|
|
|
+ if (CoreUtil.getMapFlag(map)) {
|
|
i++;
|
|
i++;
|
|
|
|
+ lisOtherDTO.setLisMsg((List<String>) map.get("msgList"));
|
|
|
|
+ } else {
|
|
|
|
+ break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
@@ -120,7 +126,7 @@ public class LisRule {
|
|
i++;
|
|
i++;
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
- case Medicine:
|
|
|
|
|
|
+ case Medicine: // 药品
|
|
map = commonRule.compareItem(wordCrfDTO.getDrug(), ruleBaseDTO);
|
|
map = commonRule.compareItem(wordCrfDTO.getDrug(), ruleBaseDTO);
|
|
if (CoreUtil.getMapFlag(map)) {
|
|
if (CoreUtil.getMapFlag(map)) {
|
|
lisOtherDTO.setDrugMsg((List<String>)map.get("msgList"));
|
|
lisOtherDTO.setDrugMsg((List<String>)map.get("msgList"));
|
|
@@ -156,7 +162,13 @@ public class LisRule {
|
|
otherList.add(billMsg);
|
|
otherList.add(billMsg);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ // 化验
|
|
|
|
+ if (ListUtil.isNotEmpty(lisOtherDTO.getLisMsg())) {
|
|
|
|
+ for (String str : lisOtherDTO.getLisMsg()) {
|
|
|
|
+ BillMsg billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.lis.getName(), lisOtherDTO.getName(), str, TypeEnum.lis.getName(), lisBean);
|
|
|
|
+ otherList.add(billMsg);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -182,10 +194,22 @@ public class LisRule {
|
|
switch (LexiconEnum.getEnum(ruleBaseDTO.getBaseLibType())) {
|
|
switch (LexiconEnum.getEnum(ruleBaseDTO.getBaseLibType())) {
|
|
case LisSubName: // 化验细项
|
|
case LisSubName: // 化验细项
|
|
if (ruleBaseDTO.getBaseLibName().equals(lisBean.getUniqueName())) {
|
|
if (ruleBaseDTO.getBaseLibName().equals(lisBean.getUniqueName())) {
|
|
|
|
+ // 化验自身
|
|
map = CoreUtil.compareLis(ruleBaseDTO, lisBean);
|
|
map = CoreUtil.compareLis(ruleBaseDTO, lisBean);
|
|
- if ((Boolean) map.get("flag") == true) {
|
|
|
|
- lisOtherDTO.setName((String)map.get("msg"));
|
|
|
|
|
|
+ if (CoreUtil.getMapFlag(map)) {
|
|
i++;
|
|
i++;
|
|
|
|
+ lisOtherDTO.setName((String) map.get("msg"));
|
|
|
|
+ } else {
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ // 其他化验——暂无数据
|
|
|
|
+ map = CoreUtil.compareLis(ruleBaseDTO, wordCrfDTO.getLis());
|
|
|
|
+ if (CoreUtil.getMapFlag(map)) {
|
|
|
|
+ i++;
|
|
|
|
+ lisOtherDTO.setLisMsg((List<String>) map.get("msgList"));
|
|
|
|
+ } else {
|
|
|
|
+ break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
@@ -217,12 +241,15 @@ public class LisRule {
|
|
// 条件全部符合
|
|
// 条件全部符合
|
|
if (i == ruleBaseDTOList.size()) {
|
|
if (i == ruleBaseDTOList.size()) {
|
|
if (StringUtil.isNotBlank(lisOtherDTO.getName())) {
|
|
if (StringUtil.isNotBlank(lisOtherDTO.getName())) {
|
|
- // 化验本身符合,其他不符号
|
|
|
|
- if (ListUtil.isEmpty(lisOtherDTO.getDiseaseMsg()) && ListUtil.isEmpty(lisOtherDTO.getOperationMsg())) {
|
|
|
|
|
|
+ // 化验本身符合,其他不符合
|
|
|
|
+ if (ListUtil.isEmpty(lisOtherDTO.getDiseaseMsg())
|
|
|
|
+ && ListUtil.isEmpty(lisOtherDTO.getOperationMsg())
|
|
|
|
+ && ListUtil.isEmpty(lisOtherDTO.getLisMsg())) {
|
|
BillMsg billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.transfusion.getName(),
|
|
BillMsg billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.transfusion.getName(),
|
|
lisOtherDTO.getName(), msg, TypeEnum.lis.getName(), lisBean);
|
|
lisOtherDTO.getName(), msg, TypeEnum.lis.getName(), lisBean);
|
|
otherList.add(billMsg);
|
|
otherList.add(billMsg);
|
|
} else {
|
|
} else {
|
|
|
|
+ // 诊断
|
|
if (ListUtil.isNotEmpty(lisOtherDTO.getDiseaseMsg())) {
|
|
if (ListUtil.isNotEmpty(lisOtherDTO.getDiseaseMsg())) {
|
|
for (String str : lisOtherDTO.getDiseaseMsg()) {
|
|
for (String str : lisOtherDTO.getDiseaseMsg()) {
|
|
BillMsg billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.transfusion.getName(),
|
|
BillMsg billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.transfusion.getName(),
|
|
@@ -230,6 +257,7 @@ public class LisRule {
|
|
otherList.add(billMsg);
|
|
otherList.add(billMsg);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ // 手术
|
|
if (ListUtil.isNotEmpty(lisOtherDTO.getOperationMsg())) {
|
|
if (ListUtil.isNotEmpty(lisOtherDTO.getOperationMsg())) {
|
|
for (String str : lisOtherDTO.getOperationMsg()) {
|
|
for (String str : lisOtherDTO.getOperationMsg()) {
|
|
BillMsg billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.transfusion.getName(),
|
|
BillMsg billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.transfusion.getName(),
|
|
@@ -237,6 +265,14 @@ public class LisRule {
|
|
otherList.add(billMsg);
|
|
otherList.add(billMsg);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ // 化验化验本身符合,其他不符合
|
|
|
|
+ if (ListUtil.isNotEmpty(lisOtherDTO.getLisMsg())) {
|
|
|
|
+ for (String str : lisOtherDTO.getLisMsg()) {
|
|
|
|
+ BillMsg billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.transfusion.getName(),
|
|
|
|
+ lisOtherDTO.getName() + "," + str, msg, TypeEnum.lis.getName(), lisBean);
|
|
|
|
+ otherList.add(billMsg);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
// // 药品暂未用
|
|
// // 药品暂未用
|
|
// if (ListUtil.isNotEmpty(lisOtherDTO.getDrugMsg())) {
|
|
// if (ListUtil.isNotEmpty(lisOtherDTO.getDrugMsg())) {
|
|
// for (String str : lisOtherDTO.getDrugMsg()) {
|
|
// for (String str : lisOtherDTO.getDrugMsg()) {
|
|
@@ -265,18 +301,17 @@ public class LisRule {
|
|
int i = 0;
|
|
int i = 0;
|
|
for (RuleBaseDTO ruleBaseDTO : ruleBaseDTOList) {
|
|
for (RuleBaseDTO ruleBaseDTO : ruleBaseDTOList) {
|
|
if (LexiconEnum.getEnum(ruleBaseDTO.getBaseLibType()) != null) { // 避免空指针
|
|
if (LexiconEnum.getEnum(ruleBaseDTO.getBaseLibType()) != null) { // 避免空指针
|
|
|
|
+ Map map = null;
|
|
switch (LexiconEnum.getEnum(ruleBaseDTO.getBaseLibType())) {
|
|
switch (LexiconEnum.getEnum(ruleBaseDTO.getBaseLibType())) {
|
|
case LisSubName: // 化验细项
|
|
case LisSubName: // 化验细项
|
|
- if (ruleBaseDTO.getBaseLibName().equals(lisBean.getUniqueName())) {
|
|
|
|
- Map<String, Object> map = CoreUtil.compareLis(ruleBaseDTO, lisBean);
|
|
|
|
- if ((Boolean) map.get("flag") == true) {
|
|
|
|
- i++;
|
|
|
|
- msg = (String) map.get("msg");
|
|
|
|
- }
|
|
|
|
|
|
+ map = CoreUtil.compareLis(ruleBaseDTO, lisBean);
|
|
|
|
+ if ((Boolean) map.get("flag") == true) {
|
|
|
|
+ i++;
|
|
|
|
+ msg = (String) map.get("msg");
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case Group: // 人群
|
|
case Group: // 人群
|
|
- Map map = groupRule.rule(wordCrfDTO, ruleBaseDTO);
|
|
|
|
|
|
+ map = groupRule.rule(wordCrfDTO, ruleBaseDTO);
|
|
if (CoreUtil.getMapFlag(map)) {
|
|
if (CoreUtil.getMapFlag(map)) {
|
|
i++;
|
|
i++;
|
|
}
|
|
}
|