package org.msh.tb; import org.jboss.seam.annotations.Name; import org.msh.tb.entities.Substance; import org.msh.utils.EntityQuery; import java.util.List; @Name("substances") public class SubstancesQuery extends EntityQuery { private static final long serialVersionUID = -5768778841232894814L; private String filter; private List prevTBsubstances; private List dstSubstances; @Override public String getEjbql() { String s = "from Substance s where s.workspace.id = #{defaultWorkspace.id} "; if (filter != null) s = s.concat(filter); return s; } @Override public String getOrder() { String s = super.getOrder(); if (s == null) return "s.abbrevName"; else return s; } @Override protected String getCountEjbql() { return "select count(*) from Substance s where workspace.id = #{defaultWorkspace.id}"; } public void prepareDstForm() { filter = "and s.dstResultForm = true"; setOrder("s.prevTreatmentOrder"); refresh(); } public void preparePrevTreatmentForm() { filter = "and s.prevTreatmentForm = true"; setOrder("s.prevTreatmentOrder"); refresh(); } public List getDstSubstances() { if (dstSubstances == null) { prepareDstForm(); dstSubstances = getResultList(); } return dstSubstances; } public List getPrevTBsubstances() { if (prevTBsubstances == null) { preparePrevTreatmentForm(); prevTBsubstances = getResultList(); } return prevTBsubstances; } }