diff --git a/business/src/main/resources/applicationContext-business.xml b/business/src/main/resources/applicationContext-business.xml index 23c881dea04..8e19f5b364c 100644 --- a/business/src/main/resources/applicationContext-business.xml +++ b/business/src/main/resources/applicationContext-business.xml @@ -17,6 +17,7 @@ + classpath:/portal.properties file:///${PORTAL_HOME}/src/main/resources/portal.properties diff --git a/core/src/main/java/org/mskcc/cbio/portal/dao/DaoCancerStudy.java b/core/src/main/java/org/mskcc/cbio/portal/dao/DaoCancerStudy.java index 097780f1e05..1503f3bccc8 100644 --- a/core/src/main/java/org/mskcc/cbio/portal/dao/DaoCancerStudy.java +++ b/core/src/main/java/org/mskcc/cbio/portal/dao/DaoCancerStudy.java @@ -351,7 +351,6 @@ public static void addCancerStudy(CancerStudy cancerStudy, boolean overwrite) th } setImportDate(cancerStudy.getInternalId()); - reCache(); } /** @@ -362,11 +361,6 @@ public static void addCancerStudy(CancerStudy cancerStudy, boolean overwrite) th */ public static CancerStudy getCancerStudyByInternalId(int internalId) throws DaoException { - if (GlobalProperties.getRecacheStudyAfterUpdate() - && studyNeedsRecaching(null, internalId)) { - System.out.print("Study with internal ID of "+internalId+" updated."); - reCacheAll(System.currentTimeMillis()); - } return byInternalId.get(internalId); } @@ -378,11 +372,6 @@ && studyNeedsRecaching(null, internalId)) { */ public static CancerStudy getCancerStudyByStableId(String stableId) throws DaoException { - if (GlobalProperties.getRecacheStudyAfterUpdate() - && studyNeedsRecaching(stableId)) { - System.out.print("Study "+stableId+" updated."); - reCacheAll(System.currentTimeMillis()); - } return byStableId.get(stableId); } @@ -393,11 +382,6 @@ && studyNeedsRecaching(stableId)) { * @return true if the CancerStudy exists, otherwise false */ public static boolean doesCancerStudyExistByStableId(String cancerStudyStableId) { - if (GlobalProperties.getRecacheStudyAfterUpdate() - && studyNeedsRecaching(cancerStudyStableId)) { - System.out.print("Study "+cancerStudyStableId+" updated."); - reCacheAll(System.currentTimeMillis()); - } return byStableId.containsKey(cancerStudyStableId); } @@ -409,11 +393,6 @@ && studyNeedsRecaching(cancerStudyStableId)) { * @return true if the CancerStudy exists, otherwise false */ public static boolean doesCancerStudyExistByInternalId(int internalCancerStudyId) { - if (GlobalProperties.getRecacheStudyAfterUpdate() - && studyNeedsRecaching(null, internalCancerStudyId)) { - System.out.print("Study with internal ID of "+internalCancerStudyId+" updated."); - reCacheAll(System.currentTimeMillis()); - } return byInternalId.containsKey(internalCancerStudyId); } @@ -423,11 +402,6 @@ && studyNeedsRecaching(null, internalCancerStudyId)) { * @return ArrayList of all CancerStudy Objects. */ public static ArrayList getAllCancerStudies() { - if (GlobalProperties.getRecacheStudyAfterUpdate() - && cacheOutOfSyncWithDb()) { - System.out.print("cache out of sync updated."); - reCacheAll(System.currentTimeMillis()); - } return new ArrayList(byStableId.values()); } @@ -436,11 +410,6 @@ && cacheOutOfSyncWithDb()) { * @return number of cancer studies. */ public static int getCount() { - if (GlobalProperties.getRecacheStudyAfterUpdate() - && cacheOutOfSyncWithDb()) { - System.out.print("cache out of sync updated."); - reCacheAll(System.currentTimeMillis()); - } return byStableId.size(); } @@ -554,7 +523,6 @@ static void deleteCancerStudy(int internalCancerStudyId) throws DaoException { JdbcUtil.closeAll(DaoCancerStudy.class, con, pstmt, rs); } System.out.print("delete a study "+internalCancerStudyId); - reCacheAll(System.currentTimeMillis()); } /** diff --git a/core/src/main/java/org/mskcc/cbio/portal/servlet/CancerStudyView.java b/core/src/main/java/org/mskcc/cbio/portal/servlet/CancerStudyView.java index c777eb53af5..1032dfb0ab7 100644 --- a/core/src/main/java/org/mskcc/cbio/portal/servlet/CancerStudyView.java +++ b/core/src/main/java/org/mskcc/cbio/portal/servlet/CancerStudyView.java @@ -103,11 +103,6 @@ protected void processRequest(HttpServletRequest request, HttpServletResponse re private boolean validate(HttpServletRequest request) throws DaoException { String cancerStudyID = request.getParameter(QueryBuilder.CANCER_STUDY_ID); - - if (DaoCancerStudy.getStatus(cancerStudyID) == DaoCancerStudy.Status.UNAVAILABLE) { - request.setAttribute(ERROR, "The selected cancer study is currently being updated, please try back later."); - return false; - } CancerStudy cancerStudy = DaoCancerStudy .getCancerStudyByStableId(cancerStudyID); diff --git a/core/src/main/java/org/mskcc/cbio/portal/servlet/PatientView.java b/core/src/main/java/org/mskcc/cbio/portal/servlet/PatientView.java index 048a3489a15..2249a3882c4 100644 --- a/core/src/main/java/org/mskcc/cbio/portal/servlet/PatientView.java +++ b/core/src/main/java/org/mskcc/cbio/portal/servlet/PatientView.java @@ -213,11 +213,6 @@ private boolean validate(HttpServletRequest request) throws DaoException { request.setAttribute(ERROR, "Please specify cancer study ID. "); return false; } - - if (cancerStudyUpdating(cancerStudyId)) { - request.setAttribute(ERROR, "The selected cancer study is currently being updated, please try back later."); - return false; - } CancerStudy cancerStudy = DaoCancerStudy.getCancerStudyByStableId(cancerStudyId); if (cancerStudy==null) { @@ -309,11 +304,6 @@ private boolean validate(HttpServletRequest request) throws DaoException { return true; } - private boolean cancerStudyUpdating(String cancerStudyId) throws DaoException - { - return (DaoCancerStudy.getStatus(cancerStudyId) == DaoCancerStudy.Status.UNAVAILABLE); - } - private void sortSampleIds(int cancerStudyId, int patientId, List sampleIds) { if (sampleIds.size()==1) { return; diff --git a/core/src/main/java/org/mskcc/cbio/portal/servlet/QueryBuilder.java b/core/src/main/java/org/mskcc/cbio/portal/servlet/QueryBuilder.java index 541f49c3c73..0eb2214e6af 100644 --- a/core/src/main/java/org/mskcc/cbio/portal/servlet/QueryBuilder.java +++ b/core/src/main/java/org/mskcc/cbio/portal/servlet/QueryBuilder.java @@ -250,8 +250,6 @@ protected void doPost(HttpServletRequest httpServletRequest, httpServletRequest.setAttribute(XDEBUG_OBJECT, xdebug); - checkAndRedirectOnStudyStatus(httpServletRequest, httpServletResponse, cancerTypeId); - boolean errorsExist = validateForm(action, profileList, geneticProfileIdSet, geneList, patientSetId, patientIds, httpServletRequest); if (action != null && action.equals(ACTION_SUBMIT) && (!errorsExist)) { @@ -334,8 +332,6 @@ private void processData(String cancerStudyStableId, HttpServletResponse response, XDebug xdebug) throws IOException, ServletException, DaoException { - checkAndRedirectOnStudyStatus(request, response, cancerStudyStableId); - // parse geneList, written in the OncoPrintSpec language (except for changes by XSS clean) double zScore = ZScoreUtil.getZScore(geneticProfileIdSet, profileList, request); double rppaScore = ZScoreUtil.getRPPAScore(request); @@ -551,13 +547,6 @@ private void outputPlainText(HttpServletResponse response, ProfileData mergedPro writer.close(); } - private void checkAndRedirectOnStudyStatus(HttpServletRequest request, HttpServletResponse response, String cancerStudyId) throws ServletException, IOException, DaoException - { - if (DaoCancerStudy.getStatus(cancerStudyId) == DaoCancerStudy.Status.UNAVAILABLE) { - redirectStudyUnavailable(request, response); - } - } - private void redirectStudyUnavailable(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setAttribute(QueryBuilder.USER_ERROR_MESSAGE, "The selected cancer study is currently being updated, please try back later."); @@ -695,4 +684,4 @@ private void forwardToErrorPage(HttpServletRequest request, HttpServletResponse getServletContext().getRequestDispatcher("/WEB-INF/jsp/error.jsp"); dispatcher.forward(request, response); } -} \ No newline at end of file +} diff --git a/portal/src/main/webapp/WEB-INF/jsp/tumormap/patient_view/clinical_timeline.jsp b/portal/src/main/webapp/WEB-INF/jsp/tumormap/patient_view/clinical_timeline.jsp index cfd573e56fa..f32d6cc41aa 100644 --- a/portal/src/main/webapp/WEB-INF/jsp/tumormap/patient_view/clinical_timeline.jsp +++ b/portal/src/main/webapp/WEB-INF/jsp/tumormap/patient_view/clinical_timeline.jsp @@ -73,15 +73,18 @@ for (var i=0; i0 ? _sequencedSampleIds : _allSampleIds; + obtainDataObject.cnaSampleIds = + _cnaSampleIds.length>0 ? _cnaSampleIds : _allSampleIds; + } //Add new attribute MUTATION COUNT for each case if have any @@ -616,6 +627,8 @@ var StudyViewProxy = (function() { getSampleidToPatientidMap: function(){return obtainDataObject.sampleidToPatientidMap;}, getPatientIdsBySampleIds: getPatientIdsBySampleIds, getSampleIdsByPatientIds: getSampleIdsByPatientIds, + getSequencedSampleIds: function() {return obtainDataObject.sequencedSampleIds;}, + getCnaSampleIds: function() {return obtainDataObject.cnaSampleIds;}, getPatientIds: function () { return Object.keys(patientToSampleMapping); }, diff --git a/portal/src/main/webapp/js/src/study-view/view/StudyViewInitCharts.js b/portal/src/main/webapp/js/src/study-view/view/StudyViewInitCharts.js index aa40bde93d5..271b42b2296 100644 --- a/portal/src/main/webapp/js/src/study-view/view/StudyViewInitCharts.js +++ b/portal/src/main/webapp/js/src/study-view/view/StudyViewInitCharts.js @@ -303,20 +303,24 @@ var StudyViewInitCharts = (function(){ } function initTables() { - var initParams = {data: {attr: [], arr: {}}, numOfCases: numOfCases}; + var initParams = {data: {attr: [], arr: {}}, numberOfSamples: {}}; if(hasMutation) { + var numberOfSequencedSamples = StudyViewProxy.getSequencedSampleIds().length; initParams.data.attr.push({ name: 'mutatedGenes', - displayName: 'Mutated Genes' + displayName: 'Mutated Genes ('+numberOfSequencedSamples+' profiled samples)' }); + initParams.numberOfSamples.numberOfSequencedSamples = numberOfSequencedSamples; } if(hasCNA) { + var numberOfCnaSamples = StudyViewProxy.getCnaSampleIds().length; initParams.data.attr.push({ name: 'cna', - displayName: 'Copy Number Altered Genes' + displayName: 'CNA Genes ('+numberOfCnaSamples+' profiled samples)' }); + initParams.numberOfSamples.numberOfCnaSamples = numberOfCnaSamples; } StudyViewInitTables.init(initParams); diff --git a/portal/src/main/webapp/js/src/study-view/view/StudyViewInitTables.js b/portal/src/main/webapp/js/src/study-view/view/StudyViewInitTables.js index f4f80351b4d..f849b4b0c50 100644 --- a/portal/src/main/webapp/js/src/study-view/view/StudyViewInitTables.js +++ b/portal/src/main/webapp/js/src/study-view/view/StudyViewInitTables.js @@ -85,10 +85,10 @@ var StudyViewInitTables = (function() { _worker.data.getData = function (callback, workerId){ StudyViewProxy.getMutatedGenesData().then( function( data ) { - callback(mutatedGenesData(data, numOfCases), workerId); + callback(mutatedGenesData(data, input.numberOfSamples.numberOfSequencedSamples), workerId); }, function( status ) { - callback(mutatedGenesData(null, numOfCases), workerId); + callback(mutatedGenesData(null, input.numberOfSamples.numberOfSequencedSamples), workerId); console.log( status + ", you fail this time" ); }, function( status ) { @@ -131,10 +131,10 @@ var StudyViewInitTables = (function() { _worker.data.getData = function (callback, workerId){ StudyViewProxy.getCNAData().then( function( data ) { - callback(cnaData(data, numOfCases), workerId); + callback(cnaData(data, input.numberOfSamples.numberOfCnaSamples), workerId); }, function( status ) { - callback(cnaData(null, numOfCases), workerId); + callback(cnaData(null, input.numberOfSamples.numberOfCnaSamples), workerId); console.log( status + ", you fail this time" ); }, function( status ) { @@ -356,6 +356,7 @@ var StudyViewInitTables = (function() { var genes = []; if(data) { + $('#number-of-selected-sequenced-samples').html(numOfCases); for(var i = 0, dataL = data.length; i < dataL; i++){ var datum = {}, caseIds = data[i].caseIds; @@ -390,6 +391,7 @@ var StudyViewInitTables = (function() { var genes = []; if(data) { + $('#number-of-selected-cna-samples').html(numOfCases); for(var i = 0, dataL = data.gene.length; i < dataL; i++){ var datum = {}, _altType = ''; @@ -444,10 +446,12 @@ var StudyViewInitTables = (function() { if (numSelectedCasesL.length !== 0) { switch (worker.opts.name) { case 'mutatedGenes': - worker.data.arr = mutatedGenesData(StudyViewProxy.getMutatedGeneDataBasedOnSampleIds(data.selectedCases), numSelectedCasesL); + var selectedSequencedSamples = _.intersection(StudyViewProxy.getSequencedSampleIds(), data.selectedCases); + worker.data.arr = mutatedGenesData(StudyViewProxy.getMutatedGeneDataBasedOnSampleIds(data.selectedCases), selectedSequencedSamples.length); break; case 'cna': - worker.data.arr = cnaData(StudyViewProxy.getCNABasedOnSampleIds(data.selectedCases), numSelectedCasesL); + var selectedCnaSamples = _.intersection(StudyViewProxy.getCnaSampleIds(), data.selectedCases); + worker.data.arr = cnaData(StudyViewProxy.getCNABasedOnSampleIds(data.selectedCases), selectedCnaSamples.length); break; default: break;