/** Returns the <code>AsmDetailQueryBuilder</code> for the ASM query, creating it if necessary. */ private AsmDetailQueryBuilder getQueryAsm() { AsmDetailQueryBuilder queryBuilder = null; if (_queries.get(KEY_ASM) == null) { queryBuilder = new AsmDetailQueryBuilder(); queryBuilder.addColumnAsmId(); _queries.put(KEY_ASM, queryBuilder); getQuerySample().setCreateAsmData(true); } else { queryBuilder = (AsmDetailQueryBuilder) _queries.get(KEY_ASM); } return queryBuilder; }
/** * Populates the full details of the tissue sample data beans specified in the input <code>Map * </code>. One or more columns must be specified before calling this method. The only filters are * the sample IDs that are specified in the <code>Map</code>. * * @param sampleDataBeans a <code>Map</code> of {@link com.ardais.bigr.javabeans.SampleData} data * beans, keyed by the ids of the samples */ public void getDetails(Map sampleDataBeans) { if (sampleDataBeans.isEmpty()) { return; } long tStart = 0; String myClassName = null; if (_perfLog.isDebugEnabled()) { myClassName = ApiFunctions.shortClassName(getClass().getName()); _perfLog.debug(" C: START " + myClassName + ".getDetails"); tStart = System.currentTimeMillis(); } // Create the Maps that will hold the parent data beans. Map asmMap = new HashMap(); Map consentMap = new HashMap(); Map donorMap = new HashMap(); // Iterate over all queries. Iterator queries = _queries.entrySet().iterator(); while (queries.hasNext()) { long tLoopStart = System.currentTimeMillis(); Map.Entry entry = (Map.Entry) queries.next(); String queryKey = (String) entry.getKey(); if (queryKey.equals(KEY_SAMPLE)) { TissueDetailQueryBuilder query = (TissueDetailQueryBuilder) entry.getValue(); query.getDetails(sampleDataBeans); asmMap = query.getAsmData(); } else if (queryKey.equals(KEY_LIMS)) { PathologyEvaluationDetailQueryBuilder query = (PathologyEvaluationDetailQueryBuilder) entry.getValue(); query.getDetailsForSamples(sampleDataBeans); } else if (queryKey.equals(KEY_IMAGES)) { ImageDetailQueryBuilder query = (ImageDetailQueryBuilder) entry.getValue(); query.getDetailsForSamples(sampleDataBeans); } else if (queryKey.equals(KEY_PROJECT)) { ProjectDetailQueryBuilder query = (ProjectDetailQueryBuilder) entry.getValue(); query.getDetailsForSamples(sampleDataBeans); } else if (queryKey.equals(KEY_ORDER)) { OrderDetailQueryBuilder query = (OrderDetailQueryBuilder) entry.getValue(); query.getDetailsForSamples(sampleDataBeans); } else if (queryKey.equals(KEY_SHOPPING_CART)) { ShoppingCartDetailQueryBuilder query = (ShoppingCartDetailQueryBuilder) entry.getValue(); query.getDetailsForSamples(sampleDataBeans); } else if (queryKey.equals(KEY_ASM)) { AsmDetailQueryBuilder query = (AsmDetailQueryBuilder) entry.getValue(); query.getDetails(asmMap); consentMap = query.getConsentData(); } else if (queryKey.equals(KEY_CONSENT)) { ConsentDetailQueryBuilder query = (ConsentDetailQueryBuilder) entry.getValue(); query.getDetails(consentMap); donorMap = query.getDonorData(); } else if (queryKey.equals(KEY_DONOR)) { DonorDetailQueryBuilder query = (DonorDetailQueryBuilder) entry.getValue(); query.getDetails(donorMap); } else if (queryKey.equals(KEY_PATH)) { PathologyReportDetailQueryBuilder query = (PathologyReportDetailQueryBuilder) entry.getValue(); query.getDetailsForConsents(consentMap); } else if (queryKey.equals(KEY_LOGICAL_REPOSITORY)) { LogicalRepositoryDetailQueryBuilder query = (LogicalRepositoryDetailQueryBuilder) entry.getValue(); query.getDetails(sampleDataBeans); } else if (queryKey.equals(KEY_SAMPLE_LOCATION)) { SampleLocationDetailQueryBuilder query = (SampleLocationDetailQueryBuilder) entry.getValue(); query.getDetails(sampleDataBeans); } else if (queryKey.equals(KEY_DIAGNOSTIC)) { DiagnosticTestDetailQueryBuilder query = (DiagnosticTestDetailQueryBuilder) entry.getValue(); query.getDetailsForConsents(consentMap); } else if (queryKey.equals(KEY_SAMPLE_KC)) { KcDetailQueryBuilder query = (KcDetailQueryBuilder) entry.getValue(); query.getDetails(sampleDataBeans); } else if (queryKey.equals(KEY_CONSENT_KC)) { KcDetailQueryBuilder query = (KcDetailQueryBuilder) entry.getValue(); query.getDetails(consentMap); } else if (queryKey.equals(KEY_DONOR_KC)) { KcDetailQueryBuilder query = (KcDetailQueryBuilder) entry.getValue(); query.getDetails(donorMap); } else { throw new ApiException( "Unrecognized query key in ProductDetailQueryBuilder.getDetails:" + queryKey); } if (_perfLog.isDebugEnabled()) { long elapsedTime = System.currentTimeMillis() - tLoopStart; _perfLog.debug(" D: do detail query " + queryKey + " (" + elapsedTime + " ms)"); } } // while next query if (_perfLog.isDebugEnabled()) { long elapsedTime = System.currentTimeMillis() - tStart; _perfLog.debug(" C: END " + myClassName + ".getDetails" + " (" + elapsedTime + " ms)"); } }