Updated Trial Criteria selection, added groundwork for allowing multiple criteria (LT-188)

This commit is contained in:
Erik Ziegler committed 2016-03-07 13:36:48 +01:00
1 parent 9970b8795b
commit c4ad6b04b5
7 files changed
+175 -133

No files matched your search

@@ -9,58 +9,23 @@
<div class="modal-body">
<div class="row">
<div class="col-md-12">
<h4>Select a Trial Criteria Type</h4>
<label for="recistCriteria" class="trialCriteriaLabel">
<input type="radio" name="trialCriteria" checked="true" id="recistCriteria" value='RECIST' class="trialCriteria"> RECIST 1.1
</label>
<label for="irRCCriteria" class="trialCriteriaLabel">
<input type="radio" name="trialCriteria" id="irRCCriteria" value='irRC' class="trialCriteria"> irRC
</label>
</div>
</div>
<br/>
<div class="row">
<div class="col-md-12">
<h4>Trial Criteria Descriptions</h4>
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="active">
<a href="#RECISTDescription" aria-controls="home" role="tab" data-toggle="tab">RECIST 1.1</a>
</li>
<li role="presentation">
<a href="#irRCDescription" aria-controls="profile" role="tab" data-toggle="tab">irRC</a>
</li>
</ul>
<div class="tab-content">
<div role="tabpanel" class="tab-pane fade in active" id="RECISTDescription">
<h5>Baseline Checks</h5>
<ul>
<li>Extranodal lesions must be >= 10 mm long axis AND >= double the acquisition slice thickness by CT and MR</li>
<li>Extranodal lesions must be >= 20 mm on chest x-ray (although x-rays rarely used for clinical trial assessment)</li>
<li>Nodal lesions must be >= 15 mm short axis AND >= double the acquisition slice thickness by CT and MR</li>
<li>Up to a max of 2 target lesions per organ</li>
<li>Up to a max of 5 target lesions total</li>
<li>Non-targets can only be assessed as 'present'</li>
<li>Target lesions must have measurements (cannot be assessed as CR, UN/NE, EX)</li>
</ul>
<!-- Time Point Measurement Total = Sum of long axis measurements for extranodal target lesion + short axis measurements for nodal lesions</li>-->
</div>
<div role="tabpanel" class="tab-pane fade" id="irRCDescription">
<h5>Baseline Checks</h5>
<ul>
<li>Target lesions must be >= 10 X 10 mm AND >= double the acquisition slice thickness by CT and MR</li>
<li>Up to a max of 5 target lesions per organ</li>
<li>Up to a max of 10 target lesions total</li>
<li>Non-targets can only be assessed as 'present'</li>
<li>Target lesions must have measurements (cannot be assessed as CR, UN/NE, EX)</li>
</ul>
<h5>New Lesion Checks for Follow-ups</h5>
<ul>
<li>New target lesions must be >= 5 X 5 mm AND >= double the acquisition slice thickness by CT and MR</li>
<li>Up to a max of 5 target lesions per organ</li>
<li>Up to a max of 10 target lesions total</li>
</ul>
<!--Time Point Measurement Total = SPD target lesions + SPD new lesions (SPD = sum of product of long axis and short axis diameters)-->
</div>
<h3>Select one or more Trial Criteria types:</h3>
{{ #each trialCriteriaTypes}}
<label for="{{id}}Criteria" class="trialCriteriaLabel">
<!-- TODO: Change to checkbox for multiple criteria !-->
<input type="radio" name="trialCriteria" id="{{id}}Criteria" value='{{id}}' class="trialCriteria" checked={{selected}}>
{{name}}
</label>
{{ /each }}
<div>
<h3>Selected Trial Criteria:</h3>
{{ #each trialCriteriaTypes}}
{{ #if selected }}
<div class="trialCriteriaPanel panel fade in" id="{{id}}Description">
{{> Template.dynamic template=descriptionTemplate }}
</div>
{{ /if }}
{{ /each }}
</div>
</div>
</div>
@@ -1,4 +1,24 @@
Session.setDefault('TrialResponseAssessmentCriteria', 'RECIST');
TrialCriteriaTypes = new Meteor.Collection(null);
TrialCriteriaTypes.insert({
id: 'RECIST',
name: 'RECIST 1.1',
descriptionTemplate: 'recistDescription',
selected: true
});
TrialCriteriaTypes.insert({
id: 'irRC',
name: 'irRC',
descriptionTemplate: 'irRCDescription',
selected: false
});
Template.optionsModal.helpers({
trialCriteriaTypes: function() {
return TrialCriteriaTypes.find();
}
});
Template.optionsModal.events({
/**
@@ -8,16 +28,24 @@ Template.optionsModal.events({
* @param e The 'change' event on the selected radio button
*/
'change input.trialCriteria': function(e) {
// Get the Trial Criteria type that the selected radio button represents
var radioButton = $(e.currentTarget);
var criteriaType = radioButton.val();
var isChecked = e.currentTarget.checked;
// Set this as the current Trial Response Assessment Criteria
// TODO: Update when we have more trial-level support
// (Currently this information is stored in Session, later this will change)
Session.set('TrialResponseAssessmentCriteria', criteriaType);
// Set "Selected" to false for the entire collection
// TODO: Remove this when we allow multiple criteria
TrialCriteriaTypes.update({}, {
$set: {
selected: false
}
}, {
multi: true
});
log.info('Trial Criteria changed to: ' + criteriaType);
// Set the current Criteria in the collection to selected
TrialCriteriaTypes.update(this._id, {
$set: {
selected: isChecked
}
});
},
/**
* When the Clear Study/Timepoint Associations button is clicked, we