From efa18aeb1d23fafa5de12157300ee8a550804c1f Mon Sep 17 00:00:00 2001 From: Bruno Alves de Faria Date: Tue, 17 Jan 2017 16:40:51 -0200 Subject: [PATCH] LT-92: Displaying global nonconformities warnings --- .../measurementTable/measurementTable.html | 7 +++++ .../measurementTable/measurementTable.js | 25 ++++++++++++++-- .../measurementTable/measurementTable.styl | 29 +++++++++++++++++++ .../measurementTableRow.js | 9 +++--- .../measurementTableWarningsDialog.html | 2 +- .../client/conformance/ConformanceCriteria.js | 20 ++++++------- .../client/conformance/CriteriaEvaluator.js | 6 ++-- 7 files changed, 77 insertions(+), 21 deletions(-) diff --git a/Packages/ohif-measurements/client/components/measurementTable/measurementTable.html b/Packages/ohif-measurements/client/components/measurementTable/measurementTable.html index 280cc3f1e..3884c0b3c 100644 --- a/Packages/ohif-measurements/client/components/measurementTable/measurementTable.html +++ b/Packages/ohif-measurements/client/components/measurementTable/measurementTable.html @@ -6,6 +6,13 @@ {{/if}}
+ {{#if hasWarnings}} +
+ + + +
+ {{/if}} {{#each timepoint in this.timepoints.get}} {{>measurementTableTimepointHeader (clone this timepoint)}} {{/each}} diff --git a/Packages/ohif-measurements/client/components/measurementTable/measurementTable.js b/Packages/ohif-measurements/client/components/measurementTable/measurementTable.js index 706001c09..ce110781f 100644 --- a/Packages/ohif-measurements/client/components/measurementTable/measurementTable.js +++ b/Packages/ohif-measurements/client/components/measurementTable/measurementTable.js @@ -1,6 +1,7 @@ -import { OHIF } from 'meteor/ohif:core'; import { Template } from 'meteor/templating'; import { ReactiveVar } from 'meteor/reactive-var'; +import { _ } from 'meteor/underscore'; +import { OHIF } from 'meteor/ohif:core'; Template.measurementTable.onCreated(() => { const instance = Template.instance(); @@ -18,7 +19,7 @@ Template.measurementTable.onCreated(() => { timepoints = []; } else if (tableLayout === 'key') { timepoints = instance.data.timepointApi.key(); - } else { + } else { timepoints = instance.data.timepointApi.currentAndPrior(); } @@ -49,6 +50,10 @@ Template.measurementTable.onRendered(() => { }); Template.measurementTable.helpers({ + hasWarnings() { + return Template.instance().data.conformanceCriteria.nonconformities.get(); + }, + buttonGroupData() { const instance = Template.instance(); return { @@ -63,3 +68,19 @@ Template.measurementTable.helpers({ }; } }); + +Template.measurementTable.events({ + 'click .warning-status'(event, instance) { + const nonconformities = instance.data.conformanceCriteria.nonconformities.get(); + const messages = []; + _.each(nonconformities, nonconformity => messages.push(nonconformity.message)); + + OHIF.ui.showDialog('measurementTableWarningsDialog', { + messages, + position: { + x: event.clientX, + y: event.clientY + } + }); + } +}); diff --git a/Packages/ohif-measurements/client/components/measurementTable/measurementTable.styl b/Packages/ohif-measurements/client/components/measurementTable/measurementTable.styl index c0cd8f19b..dd516d699 100644 --- a/Packages/ohif-measurements/client/components/measurementTable/measurementTable.styl +++ b/Packages/ohif-measurements/client/components/measurementTable/measurementTable.styl @@ -8,6 +8,35 @@ .measurementTableTimepointHeaderRow display: flex padding: 2px 2px 0 44px + position: relative + + .warning-status + theme('border', '2px solid $uiYellow') + border-radius: 16px + cursor: pointer + height: 32px + left: 0 + margin: 4px 6px + position: absolute + top: 0 + transition(border-color 0.3s ease) + width: 32px + + &:hover + theme('border-color', '$hoverColor') + + svg + theme('fill', '$hoverColor') + + svg + theme('fill', '$uiYellow') + height: 20px + left: 50% + position: absolute + top: 2px + transform(translateX(-50%) scale(0.9)) + transition(all 0.3s ease) + width: 22px .measurementTableLayoutChanger margin: 0 auto diff --git a/Packages/ohif-measurements/client/components/measurementTable/measurementTableRow/measurementTableRow.js b/Packages/ohif-measurements/client/components/measurementTable/measurementTableRow/measurementTableRow.js index b964e7453..1e5691193 100644 --- a/Packages/ohif-measurements/client/components/measurementTable/measurementTableRow/measurementTableRow.js +++ b/Packages/ohif-measurements/client/components/measurementTable/measurementTableRow/measurementTableRow.js @@ -9,11 +9,11 @@ Template.measurementTableRow.onCreated(() => { const measurementTypeId = instance.data.rowItem.measurementTypeId; const measurementNumber = instance.data.rowItem.measurementNumber; const groupedNonConformities = instance.data.conformanceCriteria.groupedNonConformities.get() || {}; - const nonConformitiesByMeasurementTypeId = groupedNonConformities[measurementTypeId] || {}; - const nonConformitiesByMeasurementNumbers = nonConformitiesByMeasurementTypeId.measurementNumbers || {}; - const nonConformitiesByMeasurementNumber = nonConformitiesByMeasurementNumbers[measurementNumber] || {}; + const nonconformitiesByMeasurementTypeId = groupedNonConformities[measurementTypeId] || {}; + const nonconformitiesByMeasurementNumbers = nonconformitiesByMeasurementTypeId.measurementNumbers || {}; + const nonconformitiesByMeasurementNumber = nonconformitiesByMeasurementNumbers[measurementNumber] || {}; - return nonConformitiesByMeasurementNumber.messages || []; + return nonconformitiesByMeasurementNumber.messages || []; }; }); @@ -27,7 +27,6 @@ Template.measurementTableRow.events({ 'click .measurementRowSidebar .warning-icon'(event, instance) { event.stopPropagation(); OHIF.ui.showDialog('measurementTableWarningsDialog', { - title: 'Criteria Nonconformities', messages: instance.getWarningMessages(), position: { x: event.clientX, diff --git a/Packages/ohif-measurements/client/components/measurementTable/measurementTableWarnings/measurementTableWarningsDialog.html b/Packages/ohif-measurements/client/components/measurementTable/measurementTableWarnings/measurementTableWarningsDialog.html index 285938c68..64c7c602d 100644 --- a/Packages/ohif-measurements/client/components/measurementTable/measurementTableWarnings/measurementTableWarningsDialog.html +++ b/Packages/ohif-measurements/client/components/measurementTable/measurementTableWarnings/measurementTableWarningsDialog.html @@ -1,5 +1,5 @@