From 40062e2e9dfccea07cac9bdf7f6a6b4644ac0009 Mon Sep 17 00:00:00 2001 From: Erik Ziegler Date: Fri, 1 Jul 2016 17:51:09 +0200 Subject: [PATCH] LT-253: Added Collection to store Additional Findings in the database. Set up some form components that store temporary UI state --- LesionTracker/.meteor/versions | 3 + Packages/cornerstone/package.js | 2 +- Packages/design/package.js | 2 +- Packages/hangingprotocols/package.js | 2 +- Packages/lesiontracker/both/collections.js | 7 ++ .../both/schema/additionalFinding.js | 58 +++++++++++++ .../additionalFindings.html} | 52 ++++------- .../additionalFindings/additionalFindings.js | 82 +++++++++++++++++ .../additionalFindings.styl} | 48 +++++++++- .../additionalMeasurements.js | 87 ------------------- .../radioOptionGroup/radioOptionGroup.html | 16 ---- .../radioOptionGroup/radioOptionGroup.js | 15 ---- .../radioOptionGroup/radioOptionGroup.styl | 20 ----- .../flexboxLayout/flexboxLayout.html | 6 +- .../components/flexboxLayout/flexboxLayout.js | 2 +- .../flexboxLayout/flexboxLayout.styl | 2 +- .../toolbarSection/toolbarSection.html | 24 +---- .../client/components/viewer/viewer.js | 1 + Packages/lesiontracker/package.js | 22 +++-- Packages/lesiontracker/server/collections.js | 11 ++- .../components/helpBlock/helpBlock.html | 7 ++ .../client/components/helpBlock/helpBlock.js | 10 +++ .../radioOptionGroup/radioOptionGroup.html | 22 +++++ .../radioOptionGroup/radioOptionGroup.js | 40 +++++++++ .../components/select2Input/select2Input.html | 22 +++++ .../components/select2Input/select2Input.js | 80 +++++++++++++++++ .../components/selectInput/selectInput.html | 23 +++++ .../components/selectInput/selectInput.js | 38 ++++++++ .../client/helpers/equals.js | 10 +++ .../client/helpers/getSchema.js | 14 +++ .../client/helpers/isInvalidKey.js | 19 ++++ .../client/helpers/stateDataWithKey.js | 28 ++++++ Packages/reactive-form-controls/package.js | 35 ++++++++ Packages/validatejs/package.js | 3 +- Packages/viewerbase/package.js | 2 +- 35 files changed, 599 insertions(+), 216 deletions(-) create mode 100644 Packages/lesiontracker/both/schema/additionalFinding.js rename Packages/lesiontracker/client/components/{additionalMeasurements/additionalMeasurements.html => additionalFindings/additionalFindings.html} (53%) create mode 100644 Packages/lesiontracker/client/components/additionalFindings/additionalFindings.js rename Packages/lesiontracker/client/components/{additionalMeasurements/additionalMeasurements.styl => additionalFindings/additionalFindings.styl} (59%) delete mode 100644 Packages/lesiontracker/client/components/additionalMeasurements/additionalMeasurements.js delete mode 100644 Packages/lesiontracker/client/components/additionalMeasurements/radioOptionGroup/radioOptionGroup.html delete mode 100644 Packages/lesiontracker/client/components/additionalMeasurements/radioOptionGroup/radioOptionGroup.js delete mode 100644 Packages/lesiontracker/client/components/additionalMeasurements/radioOptionGroup/radioOptionGroup.styl create mode 100644 Packages/reactive-form-controls/client/components/helpBlock/helpBlock.html create mode 100644 Packages/reactive-form-controls/client/components/helpBlock/helpBlock.js create mode 100644 Packages/reactive-form-controls/client/components/radioOptionGroup/radioOptionGroup.html create mode 100644 Packages/reactive-form-controls/client/components/radioOptionGroup/radioOptionGroup.js create mode 100644 Packages/reactive-form-controls/client/components/select2Input/select2Input.html create mode 100644 Packages/reactive-form-controls/client/components/select2Input/select2Input.js create mode 100644 Packages/reactive-form-controls/client/components/selectInput/selectInput.html create mode 100644 Packages/reactive-form-controls/client/components/selectInput/selectInput.js create mode 100644 Packages/reactive-form-controls/client/helpers/equals.js create mode 100644 Packages/reactive-form-controls/client/helpers/getSchema.js create mode 100644 Packages/reactive-form-controls/client/helpers/isInvalidKey.js create mode 100644 Packages/reactive-form-controls/client/helpers/stateDataWithKey.js create mode 100755 Packages/reactive-form-controls/package.js diff --git a/LesionTracker/.meteor/versions b/LesionTracker/.meteor/versions index 5e415f22b..3045839db 100644 --- a/LesionTracker/.meteor/versions +++ b/LesionTracker/.meteor/versions @@ -1,5 +1,6 @@ accounts-base@1.2.8 accounts-password@1.1.13 +aldeed:simple-schema@1.5.3 aldeed:template-extension@4.0.0 allow-deny@1.0.5 anti:gagarin@0.4.11 @@ -70,6 +71,7 @@ lesiontracker@0.0.1 livedata@1.0.18 localstorage@1.0.11 logging@1.0.14 +mdg:validation-error@0.5.1 meteor@1.1.16 meteor-base@1.0.4 meteor-platform@1.2.6 @@ -97,6 +99,7 @@ promise@0.7.3 random@1.0.10 rate-limit@1.0.5 reactive-dict@1.1.8 +reactive-form-controls@0.0.1 reactive-var@1.0.10 reload@1.1.10 retry@1.0.8 diff --git a/Packages/cornerstone/package.js b/Packages/cornerstone/package.js index a63763939..d084bce88 100644 --- a/Packages/cornerstone/package.js +++ b/Packages/cornerstone/package.js @@ -5,7 +5,7 @@ Package.describe({ }); Package.onUse(function(api) { - api.versionsFrom('1.2.0.2'); + api.versionsFrom('1.3.4.1'); api.use('jquery'); api.use('dicomweb'); diff --git a/Packages/design/package.js b/Packages/design/package.js index af9943905..7d150992e 100644 --- a/Packages/design/package.js +++ b/Packages/design/package.js @@ -5,7 +5,7 @@ Package.describe({ }); Package.onUse(function(api) { - api.versionsFrom('1.2.1'); + api.versionsFrom('1.3.4.1'); api.use('ecmascript'); api.use('standard-app-packages'); diff --git a/Packages/hangingprotocols/package.js b/Packages/hangingprotocols/package.js index af1bbca66..bf0dbe908 100755 --- a/Packages/hangingprotocols/package.js +++ b/Packages/hangingprotocols/package.js @@ -5,7 +5,7 @@ Package.describe({ }); Package.onUse(function(api) { - api.versionsFrom('1.2.1'); + api.versionsFrom('1.3.4.1'); api.use('standard-app-packages'); api.use('ecmascript'); diff --git a/Packages/lesiontracker/both/collections.js b/Packages/lesiontracker/both/collections.js index 12cd17f08..d443a427d 100644 --- a/Packages/lesiontracker/both/collections.js +++ b/Packages/lesiontracker/both/collections.js @@ -1,7 +1,14 @@ Timepoints = new Meteor.Collection('timepoints'); Studies = new Meteor.Collection('studies'); Measurements = new Meteor.Collection('measurements'); + +// ImageMeasurements describe temporary measurements that aren't +// specifically listed in the Lesion Table ImageMeasurements = new Meteor.Collection('imageMeasurements'); +// Additional Findings stores details from the Additional Findings +// panel, and represents items such as data quality, +AdditionalFindings = new Meteor.Collection('additionalFindings'); + WorklistSubscriptions = ['studies', 'timepoints']; Reviewers = new Meteor.Collection('reviewers'); diff --git a/Packages/lesiontracker/both/schema/additionalFinding.js b/Packages/lesiontracker/both/schema/additionalFinding.js new file mode 100644 index 000000000..3175b4d63 --- /dev/null +++ b/Packages/lesiontracker/both/schema/additionalFinding.js @@ -0,0 +1,58 @@ +import { SimpleSchema } from 'meteor/aldeed:simple-schema'; + +SimpleSchema.extendOptions({ + allowedSelect2Values: Match.Optional(Array), +}); + +export const AdditionalFinding = new SimpleSchema({ + measurableDisease: { + type: String, + label: 'Measurable Disease', + allowedValues: ['Present', 'Absent'], + defaultValue: 'Absent', + optional: true + }, + // TODO: Add check so that the value cannot be None & something other region + regionsOfMetastaticDisease: { + type: [String], + label: 'Regions of Metastatic Disease', + allowedSelect2Values: ['None', 'Lymph Node'], // allowedValues doesn't seem show up in the Schema since this is an Array. There may be a better way to do this + defaultValue: ['None'], + optional: true + }, + tracerRelatedToMetastaticDisease: { + type: String, + label: 'Tracer Related to Metastatic Disease?', + allowedValues: ['Yes', 'No'], + defaultValue: 'Yes', + optional: true + }, + numberOfBoneLesions: { + type: String, + label: 'Number of Bone Lesions', + allowedValues: ['0', '1-2', '2-4', '>5'], + defaultValue: '0', + optional: true + }, + acceptableImageQuality: { + type: String, + label: 'Acceptable Image Quality', + allowedValues: ['Yes', 'No'], + defaultValue: 'Yes', + optional: true + }, + adequateAnatomicalCoverage: { + type: String, + label: 'Adequate Anatomical Coverage', + allowedValues: ['Yes', 'No'], + defaultValue: 'Yes', + optional: true + }, + presenceOfContrast: { + type: String, + label: 'Presence of Contrast', + allowedValues: ['Yes', 'No'], + defaultValue: 'Yes', + optional: true + } +}); diff --git a/Packages/lesiontracker/client/components/additionalMeasurements/additionalMeasurements.html b/Packages/lesiontracker/client/components/additionalFindings/additionalFindings.html similarity index 53% rename from Packages/lesiontracker/client/components/additionalMeasurements/additionalMeasurements.html rename to Packages/lesiontracker/client/components/additionalFindings/additionalFindings.html index f0972d025..1f7c4c61e 100644 --- a/Packages/lesiontracker/client/components/additionalMeasurements/additionalMeasurements.html +++ b/Packages/lesiontracker/client/components/additionalFindings/additionalFindings.html @@ -1,48 +1,34 @@ -