Fixing measurement delete action

This commit is contained in:
Bruno Alves de Faria 2017-10-26 14:40:00 -02:00
parent 20a355054d
commit efa7d48da1
8 changed files with 82 additions and 75 deletions

View File

@ -1,5 +1,6 @@
<template name="measurementTable"> <template name="measurementTable">
<div id="measurementTableContainer"> <div id="measurementTableContainer" class="flex-v">
<div class="measurementTableHeader">
{{#if this.timepoints.get.length}} {{#if this.timepoints.get.length}}
<div class="measurementTableLayoutChanger viewerRoundedButtonGroup"> <div class="measurementTableLayoutChanger viewerRoundedButtonGroup">
{{>roundedButtonGroup buttonGroupData}} {{>roundedButtonGroup buttonGroupData}}
@ -18,6 +19,9 @@
{{/each}} {{/each}}
<!-- TODO: Add header for cross-sectional / non-longitudinal data --> <!-- TODO: Add header for cross-sectional / non-longitudinal data -->
</div> </div>
</div>
{{#scrollArea class='measurementTableView flex-grow fit' scrollStep=63}}
{{>measurementTableView (clone this)}} {{>measurementTableView (clone this)}}
{{/scrollArea}}
</div> </div>
</template> </template>

View File

@ -1,16 +1,20 @@
<template name="measurementTableHUD"> <template name="measurementTableHUD">
<div id="measurementTableHUD" class="{{hudHidden}}"> <div id="measurementTableHUD" class="{{hudHidden}}">
<div class="flex-v full-height">
<div class="header"> <div class="header">
<span>Measurements</span> <span>Measurements</span>
<svg class="buttonClose"> <svg class="buttonClose">
<use xlink:href={{absoluteUrl "packages/ohif_viewerbase/assets/icons.svg#icon-ui-close"}}></use> <use xlink:href={{absoluteUrl "packages/ohif_viewerbase/assets/icons.svg#icon-ui-close"}}></use>
</svg> </svg>
</div> </div>
{{>measurementTableView (clone this)}} {{#scrollArea class='measurementTableView flex-grow fit' scrollStep=63}}
{{>measurementTableView (clone this isHud=true)}}
{{/scrollArea}}
<div class="footer"> <div class="footer">
{{#each toolbarButton in toolbarButtons}} {{#each toolbarButton in toolbarButtons}}
{{>toolbarSectionButton toolbarButton}} {{>toolbarSectionButton toolbarButton}}
{{/each}} {{/each}}
</div> </div>
</div> </div>
</div>
</template> </template>

View File

@ -16,7 +16,7 @@ $borderColor = rgba(77, 99, 110, 0.81)
width: 318px width: 318px
z-index: 10000 z-index: 10000
.measurementTableView.scrollArea .measurementTableView .scrollable
margin-left: 0 margin-left: 0
padding-left: 0 padding-left: 0
@ -42,17 +42,14 @@ $borderColor = rgba(77, 99, 110, 0.81)
top: 20px top: 20px
width: 14px width: 14px
.measurementTableView.scrollArea .measurementTableView
height: calc(100% - 55px - 70px) height: calc(100% - 55px - 70px)
padding-bottom: 20px padding-bottom: 20px
.footer .footer
theme('background', '$uiGrayDarkest') theme('background', '$uiGrayDarkest')
border-top: $uiBorderThickness solid $borderColor border-top: $uiBorderThickness solid $borderColor
width: 100%
height: 70px height: 70px
position: absolute
bottom: 0
padding: 10px padding: 10px
.toolbarSectionButton .toolbarSectionButton

View File

@ -65,6 +65,7 @@ Template.measurementTableRow.events({
'click .js-delete'(event, instance) { 'click .js-delete'(event, instance) {
const dialogSettings = { const dialogSettings = {
class: 'themed',
title: 'Delete measurements', title: 'Delete measurements',
message: 'Are you sure you want to delete the measurement across all timepoints?', message: 'Are you sure you want to delete the measurement across all timepoints?',
position: { position: {

View File

@ -93,9 +93,15 @@ Template.measurementTableTimepointCell.events({
if (keyCode === keys.DELETE || keyCode === keys.BACKSPACE || (keyCode === keys.D && event.ctrlKey === true)) { if (keyCode === keys.DELETE || keyCode === keys.BACKSPACE || (keyCode === keys.D && event.ctrlKey === true)) {
const timepointId = instance.data.timepointId; const timepointId = instance.data.timepointId;
const offset = $(event.currentTarget).offset();
const dialogSettings = { const dialogSettings = {
class: 'themed',
title: 'Delete measurements', title: 'Delete measurements',
message: 'Are you sure you want to delete this measurement?' message: 'Are you sure you want to delete this measurement?',
position: {
x: offset.left,
y: offset.top
}
}; };
OHIF.ui.showDialog('dialogConfirm', dialogSettings).then(() => { OHIF.ui.showDialog('dialogConfirm', dialogSettings).then(() => {

View File

@ -1,5 +1,4 @@
<template name="measurementTableView"> <template name="measurementTableView">
<div class="measurementTableView scrollArea">
{{#let config=measurementConfiguration groups=measurementGroups.get}} {{#let config=measurementConfiguration groups=measurementGroups.get}}
{{#each measurementGroup in groups}} {{#each measurementGroup in groups}}
{{! #if hasMeasurements measurementGroup.toolGroup.id}} {{! #if hasMeasurements measurementGroup.toolGroup.id}}
@ -30,10 +29,11 @@
{{/let}} {{/let}}
{{/each}} {{/each}}
{{/let}} {{/let}}
{{#unless this.isHud}}
{{#if or (hasMeasurements 'targets') (hasMeasurements 'nonTargets')}} {{#if or (hasMeasurements 'targets') (hasMeasurements 'nonTargets')}}
<div class="report-area"> <div class="report-area">
<div class="btn btn-sm js-pdf">Generate Report</div> <div class="btn btn-sm js-pdf">Generate Report</div>
</div> </div>
{{/if}} {{/if}}
</div> {{/unless}}
</template> </template>

View File

@ -1,17 +1,6 @@
@import "{ohif:design}/app" @import "{ohif:design}/app"
.measurementTableView.scrollArea .measurementTableView
// height: calc(100% - 105px)
height: calc(100% - 50px)
overflow-x: hidden
overflow-y: auto
margin-right: -36px
padding-right: 36px
-webkit-overflow-scrolling: touch
-ms-overflow-style: none
&::-webkit-scrollbar
display: none
.report-area .report-area
theme('background-color', '$uiGrayDarker') theme('background-color', '$uiGrayDarker')

View File

@ -5,6 +5,12 @@ OHIF.measurements.syncMeasurementAndToolData = measurement => {
OHIF.log.info('syncMeasurementAndToolData'); OHIF.log.info('syncMeasurementAndToolData');
const toolState = cornerstoneTools.globalImageIdSpecificToolStateManager.saveToolState(); const toolState = cornerstoneTools.globalImageIdSpecificToolStateManager.saveToolState();
// Stop here if the metadata for the measurement's study is not loaded yet
const { studyInstanceUid } = measurement;
const metadata = OHIF.viewer.StudyMetadataList.findBy({ studyInstanceUid });
if (!metadata) return;
const imageId = OHIF.viewerbase.getImageIdForImagePath(measurement.imagePath); const imageId = OHIF.viewerbase.getImageIdForImagePath(measurement.imagePath);
const toolType = measurement.toolType; const toolType = measurement.toolType;