Index: ssts-web/src/main/webapp/disinfectsystem/qualitymonitoring/qualitymonitoringForm.js =================================================================== diff -u -r14446 -r14448 --- ssts-web/src/main/webapp/disinfectsystem/qualitymonitoring/qualitymonitoringForm.js (.../qualitymonitoringForm.js) (revision 14446) +++ ssts-web/src/main/webapp/disinfectsystem/qualitymonitoring/qualitymonitoringForm.js (.../qualitymonitoringForm.js) (revision 14448) @@ -379,11 +379,20 @@ } updateControlStatus(); }else{ - showResult("找不到该条码所对应的器械包实例"); + if(result.message){ + showResult(result.message); + }else{ + showResult("找不到该条码所对应的器械包实例"); + } } }, failure : function(response, options) { - showResult('系统加载出错,请稍候再试'); + var result = Ext.decode(response.responseText); + if(result.message){ + showResult(result.message); + }else{ + showResult('系统加载出错,请稍候再试'); + } } }); } Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java =================================================================== diff -u -r14327 -r14448 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java (.../TousseDefinitionManager.java) (revision 14327) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java (.../TousseDefinitionManager.java) (revision 14448) @@ -239,4 +239,32 @@ * @return */ JSONObject handleUrgentAmountAndAmount(TousseItemVo tousseItemVo); + /** + * 验证供应室是否有配置处理某个名称的器械包 + * @param cssdOrgUnitCode 供应室编码 + * @param cssdOrgUnitName 供应室名称 + * @param tousseType 器械包类型 + * @param tousseName 器械包名称 + */ + public void validateCssdHandleTousses(String cssdOrgUnitCode,String cssdOrgUnitName, + String tousseType,String tousseName); + + /** + * 验证供应室有没有配置一次性物品服务于临床科室 + * @param cssdOrgUnitCode 供应室编码 + * @param cssdOrgUnitName 供应室名称 + * @param applyOrgUnitCode 临床科室编码 + * @param applyOrgUnitName 临床科室名称 + */ + public void validateCssdServiceDeptsForDisposable( + String cssdOrgUnitCode,String cssdOrgUnitName, String applyOrgUnitCode,String applyOrgUnitName); + /** + * 验证供应室有没有配置器械包服务于临床科室 + * @param cssdOrgUnitCode 供应室编码 + * @param cssdOrgUnitName 供应室名称 + * @param applyOrgUnitCode 临床科室编码 + * @param applyOrgUnitName 临床科室名称 + */ + public void validateCssdServiceDeptsForTousse( + String cssdOrgUnitCode,String cssdOrgUnitName, String applyOrgUnitCode,String applyOrgUnitName); } Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java =================================================================== diff -u -r14422 -r14448 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 14422) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 14448) @@ -2094,7 +2094,6 @@ } return 0; } - @Override public JSONObject validateRecyclingApplicationCssdPrivilege( RecyclingApplication application, @@ -2131,51 +2130,72 @@ break; } } - - //1.校验所选处理科室是否配置服务该申请科室(如果申请项里含有器械包,需校验是否配置针对器械包服务该申请科室;同时如果申请项里含有一次性物品,需校验是否配置针对一次性物品服务该申请科室) - if(appliedTousse){ - String sql = " where cssdOrgUnitCode = '" + cssdOrgUnitCode - + "' and clinicOrgUnitCode = '" + applyOrgUnitCode - + "' and tousseType = '" + CssdServiceDepts.TOUSSETYPE_TOUSSE - + "' "; - if(objectDao.getBySql(CssdServiceDepts.class.getSimpleName(), sql) == null){ - String message = application.getHandleDepart() + "未配置"+ - CssdServiceDepts.TOUSSETYPE_TOUSSE + "服务" + application.getDepart(); - return JSONUtil.buildJsonObject(false,message); + try{ + //1.校验所选处理科室是否配置服务该申请科室(如果申请项里含有器械包,需校验是否配置针对器械包服务该申请科室;同时如果申请项里含有一次性物品,需校验是否配置针对一次性物品服务该申请科室) + if(appliedTousse){ + validateCssdServiceDeptsForTousse(cssdOrgUnitCode,application.getHandleDepart(), + applyOrgUnitCode,application.getDepart()); } - } - - if(appliedDiposableGoods){ - String sql = " where cssdOrgUnitCode = '" + cssdOrgUnitCode - + "' and clinicOrgUnitCode = '" + applyOrgUnitCode - + "' and tousseType = '" + CssdServiceDepts.TOUSSETYPE_DIPOSABLEGOODS - + "' "; - if(objectDao.getBySql(CssdServiceDepts.class.getSimpleName(), sql) == null){ - String message = application.getHandleDepart() + "未配置"+ - CssdServiceDepts.TOUSSETYPE_DIPOSABLEGOODS + "服务" + application.getDepart(); - return JSONUtil.buildJsonObject(false,message); + + if(appliedDiposableGoods){ + validateCssdServiceDeptsForDisposable(cssdOrgUnitCode,application.getHandleDepart(), + applyOrgUnitCode,application.getDepart()); } - } - - //2.校验所选处理科室是否配置处理所选的器械包(暂不校验一次性物品) - for(TousseItemVo tousseItemVo : tousseItemVoList){ - if(TousseDefinition.PACKAGE_TYPE_INSIDE.equals(tousseItemVo.getTousseType()) - || TousseDefinition.PACKAGE_TYPE_DRESSING.equals(tousseItemVo.getTousseType()) - || TousseDefinition.PACKAGE_TYPE_DRESSING.equals(tousseItemVo.getTousseType())){ - - String sql = " where orgUnitCode = '" + cssdOrgUnitCode - + "' and tousseName = '" + tousseItemVo.getTousseName() + "' "; - if(objectDao.getBySql(CssdHandleTousses.class.getSimpleName(), sql) == null){ - String message = application.getHandleDepart() + "未配置"+ - "处理" + tousseItemVo.getTousseName(); - return JSONUtil.buildJsonObject(false,message); - } - } + //2.校验所选处理科室是否配置处理所选的器械包(暂不校验一次性物品) + for(TousseItemVo tousseItemVo : tousseItemVoList){ + validateCssdHandleTousses(cssdOrgUnitCode,application.getHandleDepart(), + tousseItemVo.getTousseType(),tousseItemVo.getTousseName()); + } + }catch(Exception ex){ + return JSONUtil.buildJsonObject(false,ex.getMessage()); } return JSONUtil.buildJsonObject(true); } + + public void validateCssdHandleTousses(String cssdOrgUnitCode,String cssdOrgUnitName, + String tousseType,String tousseName) { + if(TousseDefinition.PACKAGE_TYPE_INSIDE.equals(tousseType) + || TousseDefinition.PACKAGE_TYPE_DRESSING.equals(tousseType) + || TousseDefinition.PACKAGE_TYPE_DRESSING.equals(tousseType)){ + + String sql = " where orgUnitCode = '" + cssdOrgUnitCode + + "' and tousseName = '" + tousseName + "' "; + if(objectDao.getBySql(CssdHandleTousses.class.getSimpleName(), sql) == null){ + String message = cssdOrgUnitName + "未配置"+ + "处理" + tousseName; + throw new RuntimeException(message); + } + } + } + + public void validateCssdServiceDeptsForDisposable( + String cssdOrgUnitCode,String cssdOrgUnitName, String applyOrgUnitCode,String applyOrgUnitName) { + String sql = " where cssdOrgUnitCode = '" + cssdOrgUnitCode + + "' and clinicOrgUnitCode = '" + applyOrgUnitCode + + "' and tousseType = '" + CssdServiceDepts.TOUSSETYPE_DIPOSABLEGOODS + + "' "; + if(objectDao.getBySql(CssdServiceDepts.class.getSimpleName(), sql) == null){ + String message = cssdOrgUnitName + "未配置"+ + CssdServiceDepts.TOUSSETYPE_DIPOSABLEGOODS + "服务" + applyOrgUnitName; + throw new RuntimeException(message); + } + } + + public void validateCssdServiceDeptsForTousse( + String cssdOrgUnitCode,String cssdOrgUnitName, String applyOrgUnitCode,String applyOrgUnitName) { + String sql = " where cssdOrgUnitCode = '" + cssdOrgUnitCode + + "' and clinicOrgUnitCode = '" + applyOrgUnitCode + + "' and tousseType = '" + CssdServiceDepts.TOUSSETYPE_TOUSSE + + "' "; + if(objectDao.getBySql(CssdServiceDepts.class.getSimpleName(), sql) == null){ + String message = cssdOrgUnitName + "未配置"+ + CssdServiceDepts.TOUSSETYPE_TOUSSE + "服务" + applyOrgUnitName; + throw new RuntimeException(message); + } + } + @Override public boolean isDisinfection(String goodsName) { boolean isDisinfection = false; Index: ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoringmanager/qualitymonitoringconfig/action/QualityMonitoringConfigAction.java =================================================================== diff -u -r14446 -r14448 --- ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoringmanager/qualitymonitoringconfig/action/QualityMonitoringConfigAction.java (.../QualityMonitoringConfigAction.java) (revision 14446) +++ ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoringmanager/qualitymonitoringconfig/action/QualityMonitoringConfigAction.java (.../QualityMonitoringConfigAction.java) (revision 14448) @@ -25,6 +25,7 @@ import com.forgon.disinfectsystem.entity.qualitymonitoringmanager.qualitymonitoringconfig.QualityMonitoringConfig; import com.forgon.disinfectsystem.entity.qualitymonitoringmanager.qualitymonitoringconfig.QualityMonitoringItem; import com.forgon.disinfectsystem.qualitymonitoringmanager.qualitymonitoringconfig.service.QualityMonitoringConfigManager; +import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseDefinitionManager; import com.forgon.tools.StrutsParamUtils; import com.forgon.tools.StrutsResponseUtils; import com.forgon.tools.hibernate.ObjectDao; @@ -48,6 +49,13 @@ private ObjectDao objectDao; + private TousseDefinitionManager tousseDefinitionManager; + + public void setTousseDefinitionManager( + TousseDefinitionManager tousseDefinitionManager) { + this.tousseDefinitionManager = tousseDefinitionManager; + } + public void setObjectDao(ObjectDao objectDao) { this.objectDao = objectDao; } @@ -246,87 +254,94 @@ String monitoringItem = StrutsParamUtils.getPraramValue( "monitoringItem", ""); JSONObject obj = JSONUtil.buildJsonObject(false); - if (StringUtils.isNotBlank(barcode) - && StringUtils.isNotBlank(monitoringItem)) { - TousseInstance tousseInstance = (TousseInstance) objectDao.getByProperty( - TousseInstance.class.getSimpleName(), "barcode", barcode); - if (tousseInstance != null) { - QualityMonitoringConfig qualityMonitoringConfig = qualityMonitoringConfigManager - .getQualityMonitoringConfigByName(monitoringItem); - String responsiblePerson = ""; - if (qualityMonitoringConfig != null) { - String responsibilityPart = qualityMonitoringConfig - .getResponsibilityPart(); - // 责任人的抓取取决于配置项的配置,如果是装配管理,则拿取装配员,如果是审核打包则拿审核人,如果是灭菌管理则拿灭菌员 - if (StringUtils.isNotBlank(responsibilityPart)) { - // 清洗消毒;装配管理;审核打包;灭菌管理 - /* - * 暂时不处理 清洗消毒 责任人 - * if(responsibilityPart.indexOf(QualityMonitoring - * .QUALITYMONITORING_MODULE_NAME_WASH)!= -1 ){ - * - * } - */ - // 装配管理 - if (responsibilityPart - .indexOf(QualityMonitoring.QUALITYMONITORING_MODULE_NAME_PACKING) != -1) { - responsiblePerson = appendToSourceStrWithTargetStr( - responsiblePerson, - tousseInstance.getOperator()); - } - // 审核打包 - if (responsibilityPart - .indexOf(QualityMonitoring.QUALITYMONITORING_MODULE_NAME_REVIEW) != -1) { - // 去重 - if ((";" + responsiblePerson + ";").indexOf((";" - + tousseInstance.getReviewer() + ";")) == -1) { + try{ + if (StringUtils.isNotBlank(barcode) + && StringUtils.isNotBlank(monitoringItem)) { + TousseInstance tousseInstance = (TousseInstance) objectDao.getByProperty( + TousseInstance.class.getSimpleName(), "barcode", barcode); + if (tousseInstance != null) { + //验证当前科室是否有配置处理对应器械包 + tousseDefinitionManager.validateCssdHandleTousses(AcegiHelper.getCurrentOrgUnitCode(), + AcegiHelper.getCurrentOrgUnitName(), tousseInstance.getTousseDefinition().getTousseType(), + tousseInstance.getTousseName()); + + QualityMonitoringConfig qualityMonitoringConfig = qualityMonitoringConfigManager + .getQualityMonitoringConfigByName(monitoringItem); + String responsiblePerson = ""; + if (qualityMonitoringConfig != null) { + String responsibilityPart = qualityMonitoringConfig + .getResponsibilityPart(); + // 责任人的抓取取决于配置项的配置,如果是装配管理,则拿取装配员,如果是审核打包则拿审核人,如果是灭菌管理则拿灭菌员 + if (StringUtils.isNotBlank(responsibilityPart)) { + // 清洗消毒;装配管理;审核打包;灭菌管理 + /* + * 暂时不处理 清洗消毒 责任人 + * if(responsibilityPart.indexOf(QualityMonitoring + * .QUALITYMONITORING_MODULE_NAME_WASH)!= -1 ){ + * + * } + */ + // 装配管理 + if (responsibilityPart + .indexOf(QualityMonitoring.QUALITYMONITORING_MODULE_NAME_PACKING) != -1) { responsiblePerson = appendToSourceStrWithTargetStr( responsiblePerson, - tousseInstance.getReviewer()); + tousseInstance.getOperator()); } - } - // 灭菌管理 - if (responsibilityPart - .indexOf(QualityMonitoring.QUALITYMONITORING_MODULE_NAME_STERILIZATION) != -1) { - if (tousseInstance.getSterilizationRecord_id() != null && tousseInstance.getSterilizationRecord_id() != 0) { + // 审核打包 + if (responsibilityPart + .indexOf(QualityMonitoring.QUALITYMONITORING_MODULE_NAME_REVIEW) != -1) { // 去重 - String sterilizationUser = tousseInstance.getSterilizationUser(); - - if ((";" + responsiblePerson + ";") - .indexOf((";" + sterilizationUser + ";")) == -1) { + if ((";" + responsiblePerson + ";").indexOf((";" + + tousseInstance.getReviewer() + ";")) == -1) { responsiblePerson = appendToSourceStrWithTargetStr( responsiblePerson, - sterilizationUser); + tousseInstance.getReviewer()); } } + // 灭菌管理 + if (responsibilityPart + .indexOf(QualityMonitoring.QUALITYMONITORING_MODULE_NAME_STERILIZATION) != -1) { + if (tousseInstance.getSterilizationRecord_id() != null && tousseInstance.getSterilizationRecord_id() != 0) { + // 去重 + String sterilizationUser = tousseInstance.getSterilizationUser(); + + if ((";" + responsiblePerson + ";") + .indexOf((";" + sterilizationUser + ";")) == -1) { + responsiblePerson = appendToSourceStrWithTargetStr( + responsiblePerson, + sterilizationUser); + } + } + } } } - } - String tousseType = TousseDefinition.PACKAGE_TYPE_INSIDE; - String isRecycle = Constants.STR_NO; - Long tousseDefinitionId = null; - if (tousseInstance.getTousseDefinition() != null) { - tousseDefinitionId = tousseInstance.getTousseDefinition() - .getId(); - tousseType = tousseInstance.getTousseDefinition().getTousseType(); - isRecycle = tousseInstance.getTousseDefinition().getIsRecycling(); - } + String tousseType = TousseDefinition.PACKAGE_TYPE_INSIDE; + String isRecycle = Constants.STR_NO; + Long tousseDefinitionId = null; + if (tousseInstance.getTousseDefinition() != null) { + tousseDefinitionId = tousseInstance.getTousseDefinition() + .getId(); + tousseType = tousseInstance.getTousseDefinition().getTousseType(); + isRecycle = tousseInstance.getTousseDefinition().getIsRecycling(); + } - String tousseName = tousseInstance.getTousseName(); - - obj.put("success", true); - obj.put("tousseInstanceId", tousseInstance.getId()); - obj.put("tousseName", tousseName); - obj.put("tousseType", tousseType); - obj.put("isRecycle", isRecycle); - obj.put("responsiblePerson", responsiblePerson); - obj.put("tousseDefinitionId", tousseDefinitionId); - obj.put("success", true); + String tousseName = tousseInstance.getTousseName(); + + obj.put("success", true); + obj.put("tousseInstanceId", tousseInstance.getId()); + obj.put("tousseName", tousseName); + obj.put("tousseType", tousseType); + obj.put("isRecycle", isRecycle); + obj.put("responsiblePerson", responsiblePerson); + obj.put("tousseDefinitionId", tousseDefinitionId); + obj.put("success", true); + } } + }catch(Exception ex){ + obj = JSONUtil.buildJsonObject(false, ex.getMessage()); } - StrutsResponseUtils.output(obj); - return null; }