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;