public ManchesterTriageProtocolConfigForTriageProtocolAssessmentVo getTriageProtocol(ClinicalProblemRefVo problem) { if (problem == null) return null; StringBuilder query = new StringBuilder(); query.append("SELECT manTriage FROM ManchesterTriageProtocolConfiguration AS manTriage LEFT JOIN manTriage.problem AS problem LEFT JOIN FETCH manTriage.discriminators AS disc LEFT JOIN FETCH disc.discriminator LEFT JOIN manTriage.activeStatus AS status "); query.append(" WHERE problem.id = :PROBLEM AND status.id = :ACTIVE ORDER BY UPPER(manTriage.protocolName) ASC"); ArrayList<String> paramNames = new ArrayList<String>(); ArrayList<Object> paramValues = new ArrayList<Object>(); paramNames.add("PROBLEM"); paramValues.add(problem.getID_ClinicalProblem()); paramNames.add("ACTIVE"); paramValues.add(PreActiveActiveInactiveStatus.ACTIVE.getID()); return ManchesterTriageProtocolConfigForTriageProtocolAssessmentVoAssembler.create((ManchesterTriageProtocolConfiguration) getDomainFactory().findFirst(query.toString(), paramNames, paramValues)); }