Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java =================================================================== diff -u -r19721 -r19893 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 19721) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 19893) @@ -269,10 +269,44 @@ /** * 检查此灭菌记录是否有植入物,有则返回true,否则返回false - * @param sterilizationRecord + * @param sterilizationRecord 灭菌记录对象 * @return */ private boolean checkIncludeImplant(SterilizationRecord sterilizationRecord) { + Collection allTousseInstances = getAllTousseBySterilizationRecord(sterilizationRecord); + for (TousseInstance tousseInstance : allTousseInstances) { + TousseDefinition td = tousseInstance.getTousseDefinition(); + if (td.getIncludeImplant() == 0) { //包含植入物 + return true; + } + } + return false; + } + + /** + * 检查此灭菌记录是否有外来器械包,有则返回true,否则返回false。 + * @param sterilizationRecord 灭菌记录对象 + * @return + */ + private boolean checkIncludeForeignTousse(SterilizationRecord sterilizationRecord) { + Collection allTousseInstances = getAllTousseBySterilizationRecord(sterilizationRecord); + for (TousseInstance tousseInstance : allTousseInstances) { + TousseDefinition td = tousseInstance.getTousseDefinition(); + if (TousseDefinition.PACKAGE_TYPE_FOREIGN.equals(td.getTousseType()) + || TousseDefinition.PACKAGE_TYPE_SPLIT.equals(td.getTousseType())) { //外来器械包 + return true; + } + } + return false; + } + + /** + * 获取指定灭菌记录的所有器械包,包括直接隶属的器械包和在篮筐里的器械包. + * @param sterilizationRecord 灭菌记录对象 + * @return + */ + private Collection getAllTousseBySterilizationRecord( + SterilizationRecord sterilizationRecord) { Collection allTousseInstances = CollectionUtils.emptyCollection(); //所有器械包,包括直接隶属的器械包和在篮筐里的器械包 allTousseInstances = CollectionUtils @@ -283,14 +317,7 @@ allTousseInstances = CollectionUtils .union(allTousseInstances, reviewedBasket.getTousseInstances(objectDao)); } - - for (TousseInstance tousseInstance : allTousseInstances) { - TousseDefinition td = tousseInstance.getTousseDefinition(); - if (td.getIncludeImplant() == 0) { //包含植入物 - return true; - } - } - return false; + return allTousseInstances; } @Override @@ -442,22 +469,16 @@ Integer frequency = sterilizationRecord.getFrequency(); //炉次 if (StringUtils.isNotBlank(biologicalMonitoringDisplay)) { - String[] biologicalMonitoringDisplayArray = biologicalMonitoringDisplay.split(";"); String flag = SterilizationRecord.MONITOR_RESULT_NO; - for (String temp : biologicalMonitoringDisplayArray) { - if (Sterilizer.BIOLOGICALMONITORINGDISPLAY_QUALIFIED.equals(temp)) { - flag = SterilizationRecord.MONITOR_RESULT_QUALIFIED; - } else if (Sterilizer.BIOLOGICALMONITORINGDISPLAY_OTHER.equals(temp)) { - if (checkIncludeImplant(sterilizationRecord)) { //此灭菌记录包含植入物 - flag = SterilizationRecord.MONITOR_RESULT_QUALIFIED; - } else { - flag = SterilizationRecord.MONITOR_RESULT_NO; - } - } - } + biologicalMonitoringDisplay = String.format(";%s;", biologicalMonitoringDisplay); - if (StringUtils.contains(biologicalMonitoringDisplay, Sterilizer.BIOLOGICALMONITORINGDISPLAY_FIRSTQUALIFIED) - && frequency == 1) { + if ((StringUtils.contains(biologicalMonitoringDisplay, String.format(";%s;", Sterilizer.BIOLOGICALMONITORINGDISPLAY_FIRSTQUALIFIED)) + && frequency == 1) + || (StringUtils.contains(biologicalMonitoringDisplay, String.format(";%s;", Sterilizer.BIOLOGICALMONITORINGDISPLAY_IMPLANT_QUALIFIED)) + && checkIncludeImplant(sterilizationRecord)) + ||(StringUtils.contains(biologicalMonitoringDisplay, String.format(";%s;", Sterilizer.BIOLOGICALMONITORINGDISPLAY_FOREIGN_TOUSSE_QUALIFIED)) + && checkIncludeForeignTousse(sterilizationRecord)) + ||(StringUtils.contains(biologicalMonitoringDisplay, String.format(";%s;", Sterilizer.BIOLOGICALMONITORINGDISPLAY_QUALIFIED)))) { flag = SterilizationRecord.MONITOR_RESULT_QUALIFIED; } Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/sterilizer/sterilizerView.jsp =================================================================== diff -u -r17150 -r19893 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/sterilizer/sterilizerView.jsp (.../sterilizerView.jsp) (revision 17150) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/sterilizer/sterilizerView.jsp (.../sterilizerView.jsp) (revision 19893) @@ -2,6 +2,7 @@ <%@page import="com.forgon.systemsetting.service.HttpOptionManager"%> <%@ page contentType="text/html; charset=UTF-8"%> <%@ include file="/common/taglibs.jsp"%> +<%@page import="com.forgon.disinfectsystem.entity.basedatamanager.sterilizer.Sterilizer"%> @@ -44,6 +45,10 @@