diff --git a/LesionTracker/.meteor/.finished-upgraders b/LesionTracker/.meteor/.finished-upgraders index 3e712bc5a..a541808f2 100644 --- a/LesionTracker/.meteor/.finished-upgraders +++ b/LesionTracker/.meteor/.finished-upgraders @@ -13,3 +13,4 @@ notices-for-facebook-graph-api-2 1.3.0-split-minifiers-package 1.3.5-remove-old-dev-bundle-link 1.4.0-remove-old-dev-bundle-link +1.4.1-add-shell-server-package diff --git a/LesionTracker/.meteor/packages b/LesionTracker/.meteor/packages index 9dceea041..7a8c5460b 100644 --- a/LesionTracker/.meteor/packages +++ b/LesionTracker/.meteor/packages @@ -4,18 +4,18 @@ # 'meteor add' and 'meteor remove' will edit this file for you, # but you can also edit it by hand. -npm-bcrypt@0.8.7 +npm-bcrypt@0.9.1 meteor-base@1.0.4 # Packages every Meteor app needs to have mobile-experience@1.0.4 # Packages for a great mobile UX -mongo@1.1.10 # The database Meteor supports right now +mongo@1.1.12 # The database Meteor supports right now blaze-html-templates@1.0.4 # Compile .html files into Meteor Blaze views session@1.1.6 # Client-side reactive dictionary for your app -jquery@1.11.9 # Helpful client-side library +jquery@1.11.9 # Helpful client-side library tracker@1.1.0 # Meteor's client-side reactive programming library -es5-shim@4.6.13 # ECMAScript 5 compatibility for older browsers. -ecmascript@0.5.7 # Enable ECMAScript2015+ syntax in app code +es5-shim@4.6.14 # ECMAScript 5 compatibility for older browsers. +ecmascript@0.5.8 # Enable ECMAScript2015+ syntax in app code clinical:router clinical:extended-api @@ -26,6 +26,8 @@ clinical:fonts clinical:hipaa-audit-log clinical:hipaa-logger +aldeed:simple-schema # Third party package to deal with schemas + design ohif:core @@ -34,15 +36,15 @@ cornerstone worklist viewerbase dicomweb -accounts-base@1.2.9 -accounts-password@1.2.12 +accounts-base@1.2.11 +accounts-password@1.3.0 ian:accounts-ui-bootstrap-3 twbs:bootstrap -http@1.2.8 +http@1.2.9 arsnebula:reactive-promise -promise@0.8.3 -stylus@2.513.4 +promise@0.8.4 +stylus@2.513.5 fortawesome:fontawesome random@1.0.10 reactive-var@1.0.10 @@ -56,11 +58,13 @@ check@1.2.3 aldeed:template-extension@4.0.0 zuuk:stale-session gilbertwat:bootstrap3-daterangepicker -email@1.1.16 +email@1.1.17 peppelg:bootstrap-3-modal simple:reactive-method hangingprotocols fastclick@1.0.12 -standard-minifier-css@1.1.8 -standard-minifier-js@1.1.8 +standard-minifier-css@1.2.0 +standard-minifier-js@1.2.0 johdirr:meteor-git-rev +u2622:persistent-session +shell-server diff --git a/LesionTracker/.meteor/release b/LesionTracker/.meteor/release index c85944c1d..72980bc2f 100644 --- a/LesionTracker/.meteor/release +++ b/LesionTracker/.meteor/release @@ -1 +1 @@ -METEOR@1.4.0.1 +METEOR@1.4.1.1 diff --git a/LesionTracker/.meteor/versions b/LesionTracker/.meteor/versions index 7d4b6c902..23dedb6c0 100644 --- a/LesionTracker/.meteor/versions +++ b/LesionTracker/.meteor/versions @@ -1,21 +1,22 @@ -accounts-base@1.2.9 -accounts-password@1.2.12 +accounts-base@1.2.11 +accounts-password@1.3.0 aldeed:simple-schema@1.5.3 aldeed:template-extension@4.0.0 allow-deny@1.0.5 +amplify@1.0.0 anti:gagarin@0.4.11 anti:i18n@0.4.3 arsnebula:reactive-promise@0.9.1 autoupdate@1.3.11 -babel-compiler@6.9.0 -babel-runtime@0.1.10 +babel-compiler@6.9.1 +babel-runtime@0.1.11 base64@1.0.9 binary-heap@1.0.9 blaze@2.1.8 blaze-html-templates@1.0.4 blaze-tools@1.0.9 boilerplate-generator@1.0.9 -caching-compiler@1.1.6 +caching-compiler@1.1.7 caching-html-compiler@1.0.6 callback-hook@1.0.9 check@1.2.3 @@ -31,23 +32,23 @@ clinical:router-location@2.1.0 clinical:router-middleware-stack@2.1.2 clinical:router-url@2.1.0 clinical:theming@0.4.10 -coffeescript@1.2.3 +coffeescript@1.2.4_1 cornerstone@0.0.1 ddp@1.2.5 -ddp-client@1.3.0 +ddp-client@1.3.1 ddp-common@1.2.6 ddp-rate-limiter@1.0.5 -ddp-server@1.3.9 +ddp-server@1.3.10 deps@1.0.12 design@0.0.1 dicomweb@0.0.1 diff-sequence@1.0.6 dimseservice@0.0.1 -ecmascript@0.5.7 -ecmascript-runtime@0.3.12 +ecmascript@0.5.8 +ecmascript-runtime@0.3.14 ejson@1.0.12 -email@1.1.16 -es5-shim@4.6.13 +email@1.1.17 +es5-shim@4.6.14 fastclick@1.0.12 fortawesome:fontawesome@4.5.0 geojson-utils@1.0.9 @@ -57,7 +58,7 @@ hangingprotocols@0.0.1 hot-code-push@1.0.4 html-tools@1.0.10 htmljs@1.0.10 -http@1.2.8 +http@1.2.9 ian:accounts-ui-bootstrap-3@1.2.89 id-map@1.0.8 insecure@1.0.7 @@ -71,25 +72,25 @@ launch-screen@1.0.12 lesiontracker@0.0.1 livedata@1.0.18 localstorage@1.0.11 -logging@1.1.14 +logging@1.1.15 mdg:validation-error@0.5.1 -meteor@1.2.16 +meteor@1.2.17 meteor-base@1.0.4 meteor-platform@1.2.6 -minifier-css@1.2.13 -minifier-js@1.2.13 +minifier-css@1.2.14 +minifier-js@1.2.14 minimongo@1.0.17 mobile-experience@1.0.4 mobile-status-bar@1.0.12 -modules@0.7.5 -modules-runtime@0.7.5 +modules@0.7.6 +modules-runtime@0.7.6 momentjs:moment@2.14.4 -mongo@1.1.10 +mongo@1.1.12 mongo-id@1.0.5 mrt:moment@2.8.1 -natestrauser:select2@4.0.2 -npm-bcrypt@0.8.7 -npm-mongo@1.5.45 +natestrauser:select2@4.0.3 +npm-bcrypt@0.9.1 +npm-mongo@1.5.49 observe-sequence@1.0.12 ohif:core@0.0.1 ordered-dict@1.0.8 @@ -97,7 +98,7 @@ orthanc-remote@0.0.1 peppelg:bootstrap-3-modal@1.0.4 practicalmeteor:chai@2.1.0_1 practicalmeteor:loglevel@1.2.0_2 -promise@0.8.3 +promise@0.8.4 random@1.0.10 rate-limit@1.0.5 reactive-dict@1.1.8 @@ -109,27 +110,30 @@ rwatts:uuid@0.1.0 service-configuration@1.0.10 session@1.1.6 sha@1.0.8 +shell-server@0.2.1 silentcicero:jszip@0.0.4 simple:reactive-method@1.0.2 spacebars@1.0.12 spacebars-compiler@1.0.12 srp@1.0.9 standard-app-packages@1.0.9 -standard-minifier-css@1.1.8 -standard-minifier-js@1.1.8 -stylus@2.513.4 -templating@1.2.13 +standard-minifier-css@1.2.0 +standard-minifier-js@1.2.0 +stylus@2.513.5 +templating@1.2.14 templating-tools@1.0.4 tracker@1.1.0 twbs:bootstrap@3.3.6 typ:accounts-ldap@1.0.1 typ:ldapjs@0.7.3 +u2622:persistent-session@0.4.4 ui@1.0.11 underscore@1.0.9 url@1.0.10 validatejs@0.0.1 viewerbase@0.0.1 -webapp@1.3.10 +wadoproxy@0.0.1 +webapp@1.3.11 webapp-hashing@1.0.9 worklist@0.0.1 zuuk:stale-session@1.0.8 diff --git a/LesionTracker/client/routes.js b/LesionTracker/client/routes.js index 04516d6d3..3da643097 100644 --- a/LesionTracker/client/routes.js +++ b/LesionTracker/client/routes.js @@ -16,7 +16,8 @@ var data = { 'optionsModal', 'serverInformationModal', 'confirmRemoveTimepointAssociation', - 'lastLoginModal' + 'lastLoginModal', + 'viewSeriesDetailsModal' ] }; diff --git a/OHIFViewer/.meteor/.finished-upgraders b/OHIFViewer/.meteor/.finished-upgraders index 3e712bc5a..a541808f2 100644 --- a/OHIFViewer/.meteor/.finished-upgraders +++ b/OHIFViewer/.meteor/.finished-upgraders @@ -13,3 +13,4 @@ notices-for-facebook-graph-api-2 1.3.0-split-minifiers-package 1.3.5-remove-old-dev-bundle-link 1.4.0-remove-old-dev-bundle-link +1.4.1-add-shell-server-package diff --git a/OHIFViewer/.meteor/packages b/OHIFViewer/.meteor/packages index edd4b466c..69073452a 100644 --- a/OHIFViewer/.meteor/packages +++ b/OHIFViewer/.meteor/packages @@ -5,20 +5,20 @@ # but you can also edit it by hand. twbs:bootstrap -http@1.2.8 +http@1.2.9 arsnebula:reactive-promise -promise@0.8.3 -stylus@2.513.4 +promise@0.8.4 +stylus@2.513.5 fortawesome:fontawesome mrt:moment meteor-base@1.0.4 mobile-experience@1.0.4 -mongo@1.1.10 +mongo@1.1.12 blaze-html-templates@1.0.4 session@1.1.6 jquery@1.11.9 tracker@1.1.0 -logging@1.1.14 +logging@1.1.15 reload@1.1.10 random@1.0.10 ejson@1.0.12 @@ -26,9 +26,10 @@ spacebars@1.0.12 check@1.2.3 cornerstone dicomweb +aldeed:simple-schema # Third party package to deal with schemas design ohif:core -ecmascript@0.5.7 +ecmascript@0.5.8 viewerbase worklist reactive-var@1.0.10 @@ -37,7 +38,10 @@ hangingprotocols reactive-dict@1.1.8 clinical:router fastclick@1.0.12 -standard-minifier-css@1.1.8 -standard-minifier-js@1.1.8 -aldeed:simple-schema +standard-minifier-css@1.2.0 +standard-minifier-js@1.2.0 johdirr:meteor-git-rev +wadoproxy +aldeed:template-extension +peppelg:bootstrap-3-modal +shell-server diff --git a/OHIFViewer/.meteor/release b/OHIFViewer/.meteor/release index c85944c1d..72980bc2f 100644 --- a/OHIFViewer/.meteor/release +++ b/OHIFViewer/.meteor/release @@ -1 +1 @@ -METEOR@1.4.0.1 +METEOR@1.4.1.1 diff --git a/OHIFViewer/.meteor/versions b/OHIFViewer/.meteor/versions index 4bc7a8cbb..6d529819e 100644 --- a/OHIFViewer/.meteor/versions +++ b/OHIFViewer/.meteor/versions @@ -1,16 +1,17 @@ aldeed:simple-schema@1.5.3 +aldeed:template-extension@4.0.0 allow-deny@1.0.5 arsnebula:reactive-promise@0.9.1 autoupdate@1.3.11 -babel-compiler@6.9.0 -babel-runtime@0.1.10 +babel-compiler@6.9.1 +babel-runtime@0.1.11 base64@1.0.9 binary-heap@1.0.9 blaze@2.1.8 blaze-html-templates@1.0.4 blaze-tools@1.0.9 boilerplate-generator@1.0.9 -caching-compiler@1.1.6 +caching-compiler@1.1.7 caching-html-compiler@1.0.6 callback-hook@1.0.9 check@1.2.3 @@ -18,19 +19,19 @@ clinical:router@2.0.19 clinical:router-location@2.1.0 clinical:router-middleware-stack@2.1.2 clinical:router-url@2.1.0 -coffeescript@1.2.3 +coffeescript@1.2.4_1 cornerstone@0.0.1 ddp@1.2.5 -ddp-client@1.3.0 +ddp-client@1.3.1 ddp-common@1.2.6 -ddp-server@1.3.9 +ddp-server@1.3.10 deps@1.0.12 design@0.0.1 dicomweb@0.0.1 diff-sequence@1.0.6 dimseservice@0.0.1 -ecmascript@0.5.7 -ecmascript-runtime@0.3.12 +ecmascript@0.5.8 +ecmascript-runtime@0.3.14 ejson@1.0.12 fastclick@1.0.12 fortawesome:fontawesome@4.5.0 @@ -40,7 +41,7 @@ hangingprotocols@0.0.1 hot-code-push@1.0.4 html-tools@1.0.10 htmljs@1.0.10 -http@1.2.8 +http@1.2.9 id-map@1.0.8 iron:controller@1.0.12 iron:core@1.0.11 @@ -50,31 +51,32 @@ johdirr:meteor-git-rev@0.0.4 jquery@1.11.9 launch-screen@1.0.12 livedata@1.0.18 -logging@1.1.14 -mdg:validation-error@0.2.0 -meteor@1.2.16 +logging@1.1.15 +mdg:validation-error@0.5.1 +meteor@1.2.17 meteor-base@1.0.4 meteor-platform@1.2.6 -minifier-css@1.2.13 -minifier-js@1.2.13 +minifier-css@1.2.14 +minifier-js@1.2.14 minimongo@1.0.17 mobile-experience@1.0.4 mobile-status-bar@1.0.12 -modules@0.7.5 -modules-runtime@0.7.5 +modules@0.7.6 +modules-runtime@0.7.6 momentjs:moment@2.14.4 -mongo@1.1.10 +mongo@1.1.12 mongo-id@1.0.5 mrt:moment@2.8.1 -natestrauser:select2@4.0.2 -npm-mongo@1.5.45 +natestrauser:select2@4.0.3 +npm-mongo@1.5.49 observe-sequence@1.0.12 ohif:core@0.0.1 ordered-dict@1.0.8 orthanc-remote@0.0.1 +peppelg:bootstrap-3-modal@1.0.4 practicalmeteor:chai@2.1.0_1 practicalmeteor:loglevel@1.2.0_2 -promise@0.8.3 +promise@0.8.4 random@1.0.10 reactive-dict@1.1.8 reactive-var@1.0.10 @@ -83,14 +85,15 @@ retry@1.0.8 routepolicy@1.0.11 rwatts:uuid@0.1.0 session@1.1.6 +shell-server@0.2.1 silentcicero:jszip@0.0.4 spacebars@1.0.12 spacebars-compiler@1.0.12 standard-app-packages@1.0.9 -standard-minifier-css@1.1.8 -standard-minifier-js@1.1.8 -stylus@2.513.4 -templating@1.2.13 +standard-minifier-css@1.2.0 +standard-minifier-js@1.2.0 +stylus@2.513.5 +templating@1.2.14 templating-tools@1.0.4 tracker@1.1.0 twbs:bootstrap@3.3.6 @@ -99,6 +102,7 @@ underscore@1.0.9 url@1.0.10 validatejs@0.0.1 viewerbase@0.0.1 -webapp@1.3.10 +wadoproxy@0.0.1 +webapp@1.3.11 webapp-hashing@1.0.9 worklist@0.0.1 diff --git a/OHIFViewer/client/components/flexboxLayout/flexboxLayout.styl b/OHIFViewer/client/components/flexboxLayout/flexboxLayout.styl index 39dbec75d..bc608d9b9 100644 --- a/OHIFViewer/client/components/flexboxLayout/flexboxLayout.styl +++ b/OHIFViewer/client/components/flexboxLayout/flexboxLayout.styl @@ -27,11 +27,11 @@ $lesionsSidebarMenuWidth = 450px transform(translateX(0%)) .sidebar-left - max-width: $studiesSidebarMenuWidth - order: 1 + theme('border-right', '%s solid $uiBorderColor' % $uiBorderThickness) flex: 1 margin-left: - $studiesSidebarMenuWidth - border-right: $uiBorderThickness $uiBorderColor solid + max-width: $studiesSidebarMenuWidth + order: 1 &.sidebar-open margin-left: 0 @@ -62,7 +62,7 @@ $lesionsSidebarMenuWidth = 450px max-width: $lesionsSidebarMenuWidth + 270px &:before - background-color: $uiBorderColor + theme('background-color', '$uiBorderColor') content: '' display: block height: 100% @@ -75,6 +75,6 @@ $lesionsSidebarMenuWidth = 450px margin-right: 0 .studiesListedChanger + theme('border-bottom', '%s solid $uiBorderColor' % $uiBorderThickness) padding: 20px 10px text-align: center - border-bottom: $uiBorderThickness $uiBorderColor solid diff --git a/OHIFViewer/client/components/ohifViewer/ohifViewer.html b/OHIFViewer/client/components/ohifViewer/ohifViewer.html index 1525ea0d7..e0bbad1db 100644 --- a/OHIFViewer/client/components/ohifViewer/ohifViewer.html +++ b/OHIFViewer/client/components/ohifViewer/ohifViewer.html @@ -25,4 +25,5 @@ {{> worklist }} {{> aboutModal }} + {{> viewSeriesDetailsModal }} \ No newline at end of file diff --git a/OHIFViewer/client/components/ohifViewer/ohifViewer.styl b/OHIFViewer/client/components/ohifViewer/ohifViewer.styl index df922b898..a8c2b9261 100644 --- a/OHIFViewer/client/components/ohifViewer/ohifViewer.styl +++ b/OHIFViewer/client/components/ohifViewer/ohifViewer.styl @@ -9,8 +9,8 @@ $expandedHeight = 160px .topBar height: $topBarHeight - color: $textPrimaryColor - background-color: $primaryBackgroundColor + theme('color', '$textPrimaryColor') + theme('background-color', '$primaryBackgroundColor') transition(all 0.5s ease) .brandSection @@ -26,14 +26,14 @@ $expandedHeight = 160px display: inline-block font-family: $logoFontFamily font-weight: $logoFontWeight - color: $textPrimaryColor + theme('color', '$textPrimaryColor') line-height: 30px .studyListLinkSection - border-left: $uiBorderThickness solid $uiBorderColor; - + theme('border-left', '%s solid $uiBorderColor' % $uiBorderThickness) + .btn - color: $textSecondaryColor + theme('color', '$textSecondaryColor') cursor: pointer font-size: 13px font-weight: 500 @@ -41,10 +41,10 @@ $expandedHeight = 160px margin-top: 3px &:hover - color: $hoverColor + theme('color', '$hoverColor') &:active - color: $activeColor + theme('color', '$activeColor') &.studyList background-color: rgba(21, 25, 30, 0.7) @@ -75,5 +75,5 @@ $expandedHeight = 160px .tab-pane .viewerContainer .loadingTextDiv - color: $textSecondaryColor - font-size: 30px \ No newline at end of file + theme('color', '$textSecondaryColor') + font-size: 30px diff --git a/OHIFViewer/client/components/toolbarSection/toolbarSection.styl b/OHIFViewer/client/components/toolbarSection/toolbarSection.styl index 886b938e2..e6ac4b683 100644 --- a/OHIFViewer/client/components/toolbarSection/toolbarSection.styl +++ b/OHIFViewer/client/components/toolbarSection/toolbarSection.styl @@ -1,7 +1,7 @@ @import "{design}/app" .toolbarSection - border-bottom: $uiBorderColor $uiBorderThickness solid + theme('border-bottom', '%s solid $uiBorderColor' % $uiBorderThickness) flex: 0 0 auto height: $toolbarHeight overflow: hidden @@ -11,4 +11,4 @@ width: 100% &.expanded - height: $toolbarHeight + $toolbarDrawerHeight \ No newline at end of file + height: $toolbarHeight + $toolbarDrawerHeight diff --git a/OHIFViewer/client/components/viewer/viewer.styl b/OHIFViewer/client/components/viewer/viewer.styl index e42b65915..6847a00d1 100644 --- a/OHIFViewer/client/components/viewer/viewer.styl +++ b/OHIFViewer/client/components/viewer/viewer.styl @@ -6,5 +6,5 @@ width: 100% .loadingTextDiv - color: $textSecondaryColor + theme('color', '$textSecondaryColor') font-size: 30px diff --git a/Packages/active-entry/package.js b/Packages/active-entry/package.js index 1c549ad7c..8f78f11bc 100755 --- a/Packages/active-entry/package.js +++ b/Packages/active-entry/package.js @@ -26,7 +26,8 @@ Package.onUse(function (api) { api.use([ 'zuuk:stale-session@1.0.8', - 'typ:accounts-ldap' + 'typ:accounts-ldap', + 'random' ], ['client', 'server']); api.addFiles([ diff --git a/Packages/design/components/roundedButtonGroup/roundedButtonGroup.styl b/Packages/design/components/roundedButtonGroup/roundedButtonGroup.styl index 6226a603f..d4d3a9225 100644 --- a/Packages/design/components/roundedButtonGroup/roundedButtonGroup.styl +++ b/Packages/design/components/roundedButtonGroup/roundedButtonGroup.styl @@ -1,7 +1,7 @@ @import "{design}/app" $height = 25px -$textColorActive = #2D2D2D +$textColorButtonActive = #2D2D2D .roundedButtonGroup @@ -15,9 +15,9 @@ $textColorActive = #2D2D2D .roundedButton align-items: center - background-color: $uiGrayDark - border: 2px $uiBorderColorDark solid - color: $textSecondaryColor + theme('background-color', '$uiGrayDark') + theme('border', '2px solid $uiBorderColorDark') + theme('color', '$textSecondaryColor') display: flex font-size: 11px font-weight: 500 @@ -29,19 +29,19 @@ $textColorActive = #2D2D2D transition: transition($sidebarTransition) svg - fill: $defaultColor - stroke: $defaultColor + theme('fill', '$defaultColor') + theme('stroke', '$defaultColor') svg span margin: 0 2px - + i line-height: 15px font-size: 15px .bottomLabel - color: $textSecondaryColor + theme('color', '$textSecondaryColor') font-size: 12px font-weight: 500 line-height: 12px @@ -58,16 +58,16 @@ $textColorActive = #2D2D2D border-top-right-radius: $height &:hover .roundedButton - background-color: $boxBackgroundColor - color: $uiGrayDark + theme('color', '$uiGrayDark') + theme('background-color', '$boxBackgroundColor') &.active .roundedButton - background-color: $activeColor - border-color: $uiBorderColorActive - color: $textColorActive + theme('background-color', '$activeColor') + theme('border-color', '$uiBorderColorActive') + color: $textColorButtonActive &:hover .roundedButton &.active .roundedButton svg - fill: $uiGrayDark - stroke: $uiGrayDark + theme('fill', '$uiGrayDark') + theme('stroke', '$uiGrayDark') diff --git a/Packages/design/package.js b/Packages/design/package.js index 41de0594b..77f3ee544 100644 --- a/Packages/design/package.js +++ b/Packages/design/package.js @@ -18,7 +18,9 @@ Package.onUse(function(api) { 'styles/imports/mixins.styl', 'styles/imports/spacings.styl', 'styles/imports/variables.styl', + 'styles/imports/theming.styl', 'styles/imports/theme-tide.styl', + 'styles/imports/theme-tigerlilly.styl' ], 'client', { isImport: true }); @@ -35,7 +37,8 @@ Package.onUse(function(api) { api.addFiles([ 'styles/components/radio.styl', 'styles/components/select2.styl', - 'styles/components/selectTree.styl' + 'styles/components/selectTree.styl', + 'styles/components/states.styl' ], 'client'); // Rounded Button Group diff --git a/Packages/design/styles/common/global.styl b/Packages/design/styles/common/global.styl index b703af0d1..e5b22e4e6 100644 --- a/Packages/design/styles/common/global.styl +++ b/Packages/design/styles/common/global.styl @@ -2,11 +2,26 @@ html body font-family: 'Roboto', 'OpenSans', 'HelveticaNeue-Light', 'Helvetica Neue Light', 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif - // Try to fix LT-273, need a monitor to test on though. - //text-rendering: optimizeLegibility html hr - border-top: 1px solid $uiBorderColor + theme('border-top', '1px solid $uiBorderColor') + +label.form-group + width: 100% + + &>span.select2 + display: block + width: 100% !important + + span.select2-selection + min-height: 34px + + span.select2-selection__rendered + height: 34px + line-height: 34px + + span.select2-selection__arrow + height: 34px .center-table display: table @@ -32,9 +47,9 @@ html hr .modal-dialog .modal-content - background: $primaryBackgroundColor - border-color: $uiBorderColor - color: $textSecondaryColor + theme('background', '$primaryBackgroundColor') + theme('border-color', '$uiBorderColor') + theme('color', '$textSecondaryColor') .modal-header, .modal-footer - border-color: $uiBorderColor + theme('border-color', '$uiBorderColor') diff --git a/Packages/design/styles/components/radio.styl b/Packages/design/styles/components/radio.styl index 0756f7854..5f0c14970 100644 --- a/Packages/design/styles/components/radio.styl +++ b/Packages/design/styles/components/radio.styl @@ -3,12 +3,12 @@ .group-radio label cursor: pointer - + input height: 0 width: 0 visibility: hidden - + span padding-left: 23px position: relative @@ -23,14 +23,14 @@ top: 50% transform(translateY(-50%)) width: 16px - + input:focus + span:before // TODO: [design] define a outline for the design + theme('box-shadow', '0 0 2px 2px $textSecondaryColor') outline: none - box-shadow: 0 0 2px 2px $textSecondaryColor - + input:checked + span:after - background: $uiBorderColorDark + theme('background', '$uiBorderColorDark') border-radius: 5px content: '' height: 10px diff --git a/Packages/design/styles/components/select2.styl b/Packages/design/styles/components/select2.styl index a1ef36961..6dc188eb1 100644 --- a/Packages/design/styles/components/select2.styl +++ b/Packages/design/styles/components/select2.styl @@ -22,8 +22,8 @@ span.select2.select2-container padding-left: 11px span.select2-selection__arrow + theme('border-left', '1px solid $primaryBackgroundColor') background-color: $gray1 - border-left: 1px solid $primaryBackgroundColor border-top-right-radius: $borderRadius border-bottom-right-radius: $borderRadius right: 0 @@ -42,8 +42,8 @@ span.select2.select2-container placeholder-color($gray4) li.select2-selection__choice + theme('border-color', '$uiGray') background-color: #FFF - border-color: $uiGray border-radius: $borderRadius color: $gray4 font-size: 12px diff --git a/Packages/design/styles/components/selectTree.styl b/Packages/design/styles/components/selectTree.styl index 0dfe25a85..bd4011610 100644 --- a/Packages/design/styles/components/selectTree.styl +++ b/Packages/design/styles/components/selectTree.styl @@ -76,6 +76,7 @@ $gray6 = #303030 display: block margin: 0 padding: 5px + position: relative text-align: center span @@ -85,6 +86,14 @@ $gray6 = #303030 input border-color: $gray5 font-weight: normal + padding-left: 34px + + & ~ i + color: $gray1 + font-size: 18px + left: 16px + position: absolute + top: 37px .tree-breadcrumb line-height: 32px @@ -146,7 +155,6 @@ $gray6 = #303030 &.active box-shadow: 0 0 0 200px white, inset 0 0 0 200px white - position: fixed transition(box-shadow 0.3s ease) z-index: 0 @@ -172,7 +180,7 @@ $gray6 = #303030 border-radius: 5px color: white opacity: 0.9 - padding: 5px 12px 12px + padding: 0 15px 12px position: absolute top: 50% transform(translateY(-50%)) @@ -180,13 +188,21 @@ $gray6 = #303030 h5.title color: $gray5 - font-size: 12px font-weight: normal line-height: 20px - margin: 0 + margin: 12px 0 16px label + cursor: pointer display: block + font-weight: 300 + line-height: 26px + margin: 0 + padding-left: 3px + transition(padding 0.3s ease) + + &:hover + padding-left: 0 .select-tree-root @@ -218,7 +234,7 @@ $gray6 = #303030 .content margin-left: 0 - &.interacted + &.interacted, &.selected .select-tree-common z-index: 1 diff --git a/Packages/design/styles/components/states.styl b/Packages/design/styles/components/states.styl new file mode 100644 index 000000000..1915cdea8 --- /dev/null +++ b/Packages/design/styles/components/states.styl @@ -0,0 +1,29 @@ +@import "{design}/app" + +.state-error + &+.tooltip + + .tooltip-inner + color: white + theme('background-color', '$uiStateErrorBorder') + + &.top .tooltip-arrow + theme('border-top-color', '$uiStateErrorBorder') + &.right .tooltip-arrow + theme('border-right-color', '$uiStateErrorBorder') + &.bottom .tooltip-arrow + theme('border-bottom-color', '$uiStateErrorBorder') + &.left .tooltip-arrow + theme('border-left-color', '$uiStateErrorBorder') + + + &:not(.component-group) + &.form-control, .form-control + theme('background-color', '$uiStateError') + theme('border-color', '$uiStateErrorBorder') + theme('color', '$uiStateErrorText') + + .select2-selection + theme('background-color', '$uiStateError') + theme('border-color', '$uiStateErrorBorder') + theme('color', '$uiStateErrorText') diff --git a/Packages/design/styles/imports/theme-tide.styl b/Packages/design/styles/imports/theme-tide.styl index 7aa395feb..6f7d9d203 100644 --- a/Packages/design/styles/imports/theme-tide.styl +++ b/Packages/design/styles/imports/theme-tide.styl @@ -1,54 +1,34 @@ -// Common pallete -$uiYellow = #E29E4A -$uiSkyBlue = #6FBDE2 +$themes['tide'] = { + // Common pallete + $uiYellow: #E29E4A + $uiSkyBlue: #6FBDE2 -$uiLightGray = #516873 -$uiGray = #263340 -$uiGrayDark = #16202B -$uiGrayDarker = #151A1F -$uiGrayDarkest = #14191E + // State pallete + $uiStateError: #FFCCCC + $uiStateErrorBorder: #993333 + $uiStateErrorText: #661111 -// Interface UI Colors -$defaultColor = #9cd0fe -$hoverColor = #ffffff -$activeColor = #00a4d9 -$uiBorderColor = #436270 -$uiBorderColorDark = #3C5D80 -$uiBorderColorActive = #00a4d9 -$primaryBackgroundColor = #000000 -$boxBackgroundColor = #344a61 -$boxBackgroundColorDark = #22374D + $uiLightGray: #516873 + $uiGray: #263340 + $uiGrayDark: #16202B + $uiGrayDarker: #151A1F + $uiGrayDarkest: #14191E -// Text Colors -$textColorActive = black //#89bae5 -$textPrimaryColor = #ffffff -$textSecondaryColor = #6a8fb1 + // Interface UI Colors + $defaultColor: #9cd0fe + $hoverColor: #ffffff + $activeColor: #00a4d9 + $uiBorderColor: #436270 + $uiBorderColorDark: #3C5D80 + $uiBorderColorActive: #00a4d9 + $primaryBackgroundColor: #000000 + $boxBackgroundColor: #344a61 -// Other Colors -$menuBackgroundColor = #F2F2F2 -$imageSliderColor = #163239 + // Text Colors + $textColorActive: black //#89bae5 + $textPrimaryColor: #ffffff + $textSecondaryColor: #6a8fb1 -// Viewport Settings -$viewportBorderThickness = 1px -$viewportBorderColor = $uiBorderColorDark -$viewportBorderColorHover = $uiBorderColor -$viewportBorderColorActive = $uiBorderColorActive - -// Sizes -$topBarHeight = 40px -$toolbarHeight = 78px -$toolbarDrawerHeight = 62px - -// Thicknesses -$uiBorderThickness = 1px - -// Fonts -$logoFontFamily = "Sanchez" -$logoFontWeight = 300 - -// Transitions -$transitionDuration = 0.3s -$transitionEffect = ease -$sidebarTransition = all $transitionDuration $transitionEffect -$studiesSidebarMenuWidth = 307px -$lesionsSidebarMenuWidth = 323px + // Other Colors + $imageSliderColor: #163239 +} diff --git a/Packages/design/styles/imports/theme-tigerlilly.styl b/Packages/design/styles/imports/theme-tigerlilly.styl index e305a9878..21292a45c 100644 --- a/Packages/design/styles/imports/theme-tigerlilly.styl +++ b/Packages/design/styles/imports/theme-tigerlilly.styl @@ -1,54 +1,34 @@ -// Common pallete -$uiYellow = #E29E4A -$uiSkyBlue = #6FBDE2 +$themes['tigerlilly'] = { + // Common pallete + $uiYellow: #E29E4A + $uiSkyBlue: #6FBDE2 -$uiLightGray = #516873 -$uiGray = #263340 -$uiGrayDark = #16202B -$uiGrayDarker = #151A1F -$uiGrayDarkest = #14191E + // State pallete + $uiStateError: #FFCCCC + $uiStateErrorBorder: #CC6666 + $uiStateErrorText: #661111 -// Interface UI Colors -$defaultColor = #98ceff -$hoverColor = #ffffff -$activeColor = #ff8a3d -$uiBorderColor = #744b71 -$uiBorderColorDark = #744b71 -$uiBorderColorActive = #ff8a3d -$primaryBackgroundColor = #000000 -$boxBackgroundColor = #5b3a59 -$boxBackgroundColorDark = #4b2f40 + $uiLightGray: #516873 + $uiGray: #263340 + $uiGrayDark: #16202B + $uiGrayDarker: #151A1F + $uiGrayDarkest: #14191E -// Text Colors -$textColorActive = #ff8a3d -$textPrimaryColor = #ffffff -$textSecondaryColor = #6a8fb1 + // Interface UI Colors + $defaultColor: #98ceff + $hoverColor: #ffffff + $activeColor: #ff8a3d + $uiBorderColor: #744b71 + $uiBorderColorDark: #744b71 + $uiBorderColorActive: #ff8a3d + $primaryBackgroundColor: #000000 + $boxBackgroundColor: #5b3a59 -// Other Colors -$menuBackgroundColor = #F2F2F2 -$imageSliderColor = #4b2c3c //#163239 + // Text Colors + $textColorActive: black + $textPrimaryColor: #ffffff + $textSecondaryColor: #6a8fb1 -// Viewport Settings -$viewportBorderThickness = 1px -$viewportBorderColor = $uiBorderColorDark -$viewportBorderColorHover = $uiBorderColor -$viewportBorderColorActive = $uiBorderColorActive - -// Sizes -$topBarHeight = 40px -$toolbarHeight = 78px -$toolbarDrawerHeight = 62px - -// Thicknesses -$uiBorderThickness = 1px - -// Fonts -$logoFontFamily = "Sanchez" -$logoFontWeight = 300 - -// Transitions -$transitionDuration = 0.3s -$transitionEffect = ease -$sidebarTransition = all $transitionDuration $transitionEffect -$studiesSidebarMenuWidth = 307px -$lesionsSidebarMenuWidth = 323px \ No newline at end of file + // Other Colors + $imageSliderColor: #4b2c3c //#163239 +} diff --git a/Packages/design/styles/imports/theming.styl b/Packages/design/styles/imports/theming.styl new file mode 100644 index 000000000..68b752750 --- /dev/null +++ b/Packages/design/styles/imports/theming.styl @@ -0,0 +1,32 @@ +$themes = {} +$defaultTheme = 'tide' + +@import "./theme-tide.styl" +@import "./theme-tigerlilly.styl" + +parseSpaceVars($theme, $value) + $valueSplit = split(' ', $value) + $list = '' + pop($list) + for $property in $valueSplit + if ($theme[$property]) + push($list, $theme[$property]) + else + push($list, $property) + join(' ', $list) + +parseCommaVars($theme, $value) + $valueSplit = split(',', $value) + $list = '' + pop($list) + for $sentence in $valueSplit + push($list, parseSpaceVars($theme, $sentence)) + unquote(join(',', $list)) + +theme($property, $value) + / {selector()} + {$property}: parseCommaVars($themes[$defaultTheme], $value) + for $themeName, $theme in $themes + for $selectorPiece in split(',', selector()) + / body.theme-{$themeName} {$selectorPiece} + {$property}: parseCommaVars($theme, $value) diff --git a/Packages/design/styles/imports/variables.styl b/Packages/design/styles/imports/variables.styl index 621d56a85..9a5d3896b 100644 --- a/Packages/design/styles/imports/variables.styl +++ b/Packages/design/styles/imports/variables.styl @@ -1,2 +1,22 @@ -//@import "./theme-tigerlilly.styl" -@import "./theme-tide.styl" \ No newline at end of file +@import "./theming.styl" + +// Sizes +$topBarHeight = 40px +$toolbarHeight = 78px +$toolbarDrawerHeight = 62px +$studiesSidebarMenuWidth = 307px +$lesionsSidebarMenuWidth = 323px + +// Fonts +$logoFontFamily = "Sanchez" +$logoFontWeight = 300 + +// Transitions +$transitionDuration = 0.3s +$transitionEffect = ease +$sidebarTransition = all $transitionDuration $transitionEffect + + +// Thicknesses +$viewportBorderThickness = 1px +$uiBorderThickness = 1px diff --git a/Packages/hangingprotocols/client/components/protocolEditor/protocolEditor.styl b/Packages/hangingprotocols/client/components/protocolEditor/protocolEditor.styl index 6a1061a22..9c5bdb8dc 100644 --- a/Packages/hangingprotocols/client/components/protocolEditor/protocolEditor.styl +++ b/Packages/hangingprotocols/client/components/protocolEditor/protocolEditor.styl @@ -3,12 +3,12 @@ $height = 20px #protocolEditor + theme('background', '$primaryBackgroundColor') height: 100% width: 450px padding: 10px 0 position: absolute top: 0 - background: $primaryBackgroundColor .navigationButtons ul @@ -35,27 +35,27 @@ $height = 20px cursor: pointer text-decoration: none outline: none - background-color: $uiGrayDark - border: 2px $uiBorderColorDark solid - color: $textSecondaryColor + theme('background-color', '$uiGrayDark') + theme('border', '2px solid $uiBorderColorDark') + theme('color', '$textSecondaryColor') transition: transition($sidebarTransition) border-radius: $height &.active a - background-color: $activeColor - border-color: $uiBorderColorActive - color: $textColorActive + theme('background-color', '$activeColor') + theme('border-color', '$uiBorderColorActive') + theme('color', '$textColorActive') transition: transition($sidebarTransition) p h2 h3 h4 - color: $defaultColor + theme('color', '$defaultColor') label ul - color: $defaultColor + theme('color', '$defaultColor') font-weight: 400 label @@ -68,7 +68,7 @@ $height = 20px width: 40% border: none background: #212121 - color: $defaultColor + theme('color', '$defaultColor') text-align: center button.btn @@ -85,11 +85,11 @@ $height = 20px bottom: 0 width: 100% margin-bottom: 0 - background: $uiGrayDarker + theme('background', '$uiGrayDarker') p font-size: 8pt - color: $defaultColor + theme('color', '$defaultColor') margin: 0 10px display: inline-block @@ -107,11 +107,11 @@ $height = 20px #selectProtocol text-align: center - .btn-file + .btn-file position: relative overflow: hidden - - .btn-file input[type=file] + + .btn-file input[type=file] position: absolute top: 0 right: 0 @@ -141,4 +141,4 @@ $height = 20px padding: 40px h3 - color: $defaultColor \ No newline at end of file + theme('color', '$defaultColor') diff --git a/Packages/hangingprotocols/client/components/ruleEntryDialog/ruleEntryDialog.styl b/Packages/hangingprotocols/client/components/ruleEntryDialog/ruleEntryDialog.styl index 51b5164a5..7d7681269 100644 --- a/Packages/hangingprotocols/client/components/ruleEntryDialog/ruleEntryDialog.styl +++ b/Packages/hangingprotocols/client/components/ruleEntryDialog/ruleEntryDialog.styl @@ -1,6 +1,9 @@ @import "{design}/app.styl" .ruleEntryDialog + theme('background', '$uiGrayDarkest') + theme('border', '1px solid $uiBorderColor') + theme('color', '$textSecondaryColor') display: none position: absolute top: 0 @@ -14,12 +17,8 @@ padding: 10px background-color: rgba(255,255,255,1) outline: none - opacity: 0.95 border-radius: 8px - border: 1px solid $uiBorderColor - background: $uiGrayDarkest - color: $textSecondaryColor .dialogContent text-align: center @@ -44,4 +43,4 @@ color: black height: 30px border-radius: 2px - border: 0 \ No newline at end of file + border: 0 diff --git a/Packages/hangingprotocols/client/components/ruleTable/ruleTable.styl b/Packages/hangingprotocols/client/components/ruleTable/ruleTable.styl index 5b92f45cc..0a6f57387 100644 --- a/Packages/hangingprotocols/client/components/ruleTable/ruleTable.styl +++ b/Packages/hangingprotocols/client/components/ruleTable/ruleTable.styl @@ -4,7 +4,7 @@ table.ruleTable thead tr th - color: $defaultColor + theme('color', '$defaultColor') text-align: center th:first-child @@ -13,7 +13,7 @@ table.ruleTable tbody tr td - color: $defaultColor + theme('color', '$defaultColor') text-align: center .failWarning @@ -26,10 +26,10 @@ table.ruleTable transition(all 0.1s ease) &:hover - color: $hoverColor + theme('color', '$hoverColor') &:active - color: $activeColor + theme('color', '$activeColor') td:first-child text-align: left @@ -37,14 +37,14 @@ table.ruleTable .addRuleContainer margin: 10px 0 text-align: center - color: $defaultColor + theme('color', '$defaultColor') .addRule cursor: pointer transition(all 0.1s ease) &:hover - color: $hoverColor + theme('color', '$hoverColor') &:active - color: $activeColor \ No newline at end of file + theme('color', '$activeColor') \ No newline at end of file diff --git a/Packages/hangingprotocols/client/components/settingEntryDialog/settingEntryDialog.styl b/Packages/hangingprotocols/client/components/settingEntryDialog/settingEntryDialog.styl index 31d543b13..be233ff38 100644 --- a/Packages/hangingprotocols/client/components/settingEntryDialog/settingEntryDialog.styl +++ b/Packages/hangingprotocols/client/components/settingEntryDialog/settingEntryDialog.styl @@ -1,6 +1,9 @@ @import "{design}/app.styl" .settingEntryDialog + theme('border', '1px solid $uiBorderColor') + theme('background', '$uiGrayDarkest') + theme('color', '$textSecondaryColor') display: none position: absolute top: 0 @@ -13,12 +16,8 @@ margin: auto padding: 10px outline: none - opacity: 0.95 border-radius: 8px - border: 1px solid $uiBorderColor - background: $uiGrayDarkest - color: $textSecondaryColor .dialogContent text-align: center @@ -43,4 +42,4 @@ color: black height: 30px border-radius: 2px - border: 0 \ No newline at end of file + border: 0 diff --git a/Packages/hangingprotocols/client/components/settingsTable/settingsTable.styl b/Packages/hangingprotocols/client/components/settingsTable/settingsTable.styl index c57ee1895..801b6f7d6 100644 --- a/Packages/hangingprotocols/client/components/settingsTable/settingsTable.styl +++ b/Packages/hangingprotocols/client/components/settingsTable/settingsTable.styl @@ -4,7 +4,7 @@ table.settingsTable thead tr th - color: $defaultColor + theme('color', '$defaultColor') text-align: center th:first-child @@ -15,7 +15,7 @@ table.settingsTable tr td - color: $defaultColor + theme('color', '$defaultColor') text-align: center .editSetting @@ -24,10 +24,10 @@ table.settingsTable transition(all 0.1s ease) &:hover - color: $hoverColor + theme('color', '$hoverColor') &:active - color: $activeColor + theme('color', '$activeColor') td:first-child text-align: left @@ -35,14 +35,14 @@ table.settingsTable .addSettingContainer margin: 10px 0 text-align: center - color: $defaultColor + theme('color', '$defaultColor') .addSetting cursor: pointer transition(all 0.1s ease) &:hover - color: $hoverColor + theme('color', '$hoverColor') &:active - color: $activeColor \ No newline at end of file + theme('color', '$activeColor') \ No newline at end of file diff --git a/Packages/hangingprotocols/client/components/stageDetails/stageDetails.styl b/Packages/hangingprotocols/client/components/stageDetails/stageDetails.styl index e9c6d0190..ea8dc373e 100644 --- a/Packages/hangingprotocols/client/components/stageDetails/stageDetails.styl +++ b/Packages/hangingprotocols/client/components/stageDetails/stageDetails.styl @@ -14,19 +14,19 @@ h3 label - color: $defaultColor + theme('color', '$defaultColor') label margin-right: 10px width: 25% input + theme('background-color', '$boxBackgroundColor')Dark min-width: 50px width: 40% border: none - background: $boxBackgroundColorDark - color: $defaultColor + theme('color', '$defaultColor') text-align: center .stageEditorSection - margin: 30px 0 \ No newline at end of file + margin: 30px 0 diff --git a/Packages/hangingprotocols/client/components/stageSortable/stageSortable.styl b/Packages/hangingprotocols/client/components/stageSortable/stageSortable.styl index c283529ef..e5d24a7a1 100644 --- a/Packages/hangingprotocols/client/components/stageSortable/stageSortable.styl +++ b/Packages/hangingprotocols/client/components/stageSortable/stageSortable.styl @@ -8,14 +8,14 @@ padding: 3px span - color: $defaultColor + theme('color', '$defaultColor') cursor: pointer &:hover - color: $hoverColor + theme('color', '$hoverColor') &.active - color: $activeColor + theme('color', '$activeColor') .sortable-handle cursor: move @@ -36,44 +36,44 @@ .deleteStage cursor: pointer - color: $defaultColor + theme('color', '$defaultColor') transition(all 0.1s ease) &:hover - color: $hoverColor + theme('color', '$hoverColor') &:active - color: $activeColor + theme('color', '$activeColor') .addStage margin: 10px 0 text-align: center - color: $defaultColor + theme('color', '$defaultColor') #addStage transition(all 0.1s ease) &:hover - color: $hoverColor + theme('color', '$hoverColor') &:active - color: $activeColor + theme('color', '$activeColor') .moveStageButtons margin: 10px 0 text-align: center a - color: $defaultColor + theme('color', '$defaultColor') cursor: pointer text-decoration: none transition(all 0.1s ease) &:hover - color: $hoverColor + theme('color', '$hoverColor') &:active - color: $activeColor + theme('color', '$activeColor') &[disabled="true"] opacity: 0.7 diff --git a/Packages/hangingprotocols/client/components/textEntryDialog/textEntryDialog.styl b/Packages/hangingprotocols/client/components/textEntryDialog/textEntryDialog.styl index 8ae55fe18..f64cdb223 100644 --- a/Packages/hangingprotocols/client/components/textEntryDialog/textEntryDialog.styl +++ b/Packages/hangingprotocols/client/components/textEntryDialog/textEntryDialog.styl @@ -1,6 +1,9 @@ @import "{design}/app.styl" .textEntryDialog + theme('border', '1px solid $uiBorderColor') + theme('background', '$uiGrayDarkest') + theme('color', '$textSecondaryColor') display: none position: absolute top: 0 @@ -13,12 +16,8 @@ margin: auto padding: 10px outline: none - opacity: 0.95 border-radius: 8px - border: 1px solid $uiBorderColor - background: $uiGrayDarkest - color: $textSecondaryColor .dialogContent margin-bottom: 10px @@ -36,4 +35,4 @@ color: black height: 30px border-radius: 2px - border: 0 \ No newline at end of file + border: 0 diff --git a/Packages/lesiontracker/both/collections.js b/Packages/lesiontracker/both/collections.js index 4e734d327..c4f742aa4 100644 --- a/Packages/lesiontracker/both/collections.js +++ b/Packages/lesiontracker/both/collections.js @@ -1,5 +1,8 @@ import { Mongo } from 'meteor/mongo'; +// Servers describe the DICOM servers configurations +Servers = new Mongo.Collection('servers'); + Timepoints = new Mongo.Collection('timepoints'); Studies = new Mongo.Collection('studies'); Measurements = new Mongo.Collection('measurements'); @@ -12,6 +15,5 @@ ImageMeasurements = new Mongo.Collection('imageMeasurements'); // panel, and represents items such as data quality, AdditionalFindings = new Mongo.Collection('additionalFindings'); -Servers = new Mongo.Collection('servers'); WorklistSubscriptions = ['studies', 'timepoints']; Reviewers = new Mongo.Collection('reviewers'); diff --git a/Packages/lesiontracker/client/api/timepoint.js b/Packages/lesiontracker/client/api/timepoint.js index 5499da0ee..ac4bd84b5 100644 --- a/Packages/lesiontracker/client/api/timepoint.js +++ b/Packages/lesiontracker/client/api/timepoint.js @@ -26,8 +26,14 @@ class TimepointApi { }); } + // Return the prior timepoint prior() { - const latestDate = this.current().latestDate; + const current = this.current(); + if (!current) { + return; + } + + const latestDate = current.latestDate; return this.timepoints.findOne({ latestDate: { $lt: latestDate @@ -41,9 +47,15 @@ class TimepointApi { // Return only the current and prior Timepoints currentAndPrior() { - let timepoints = [this.current()]; + const timepoints = []; + + const current = this.current(); + if (current) { + timepoints.push(current); + } + const prior = this.prior(); - if (prior) { + if (current && prior && prior._id !== current._id) { timepoints.push(prior); } diff --git a/Packages/lesiontracker/client/components/activeEntry/activeEntrySignIn/activeEntrySignIn.js b/Packages/lesiontracker/client/components/activeEntry/activeEntrySignIn/activeEntrySignIn.js new file mode 100644 index 000000000..0894f4ff8 --- /dev/null +++ b/Packages/lesiontracker/client/components/activeEntry/activeEntrySignIn/activeEntrySignIn.js @@ -0,0 +1,25 @@ +import { Template } from 'meteor/templating'; +import { ActiveEntry } from 'meteor/clinical:active-entry'; + + +Template.entrySignIn.hooks({ + + rendered: function () { + // Create Test Drive button dynamically + let btnTestDrive = $('