Lesion Tracker Redesign so far
This commit is contained in:
1 parent
b247e89d8b
commit
a9a4f3f82b
109 files changed
+2972
-936
No files matched your search
+2
-1
@@ -1,5 +1,6 @@
|
||||
<template name="imageThumbnail">
|
||||
<div class="imageThumbnail">
|
||||
<div class="imageThumbnailCanvas"></div>
|
||||
<div class="imageThumbnailLoadingIndicator thumbnailLoadingIndicator">
|
||||
<p>Loading {{percentComplete}}</p>
|
||||
</div>
|
||||
@@ -7,4 +8,4 @@
|
||||
<p>Error</p>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
@@ -1,6 +1,6 @@
|
||||
Template.imageThumbnail.onRendered(function() {
|
||||
var instance = this.data.stack.instances[0];
|
||||
var element = this.find('.imageThumbnail');
|
||||
var element = this.find('.imageThumbnailCanvas');
|
||||
|
||||
cornerstone.disable(element);
|
||||
$(element).find('canvas').remove();
|
||||
@@ -12,7 +12,7 @@ Template.imageThumbnail.onRendered(function() {
|
||||
var elem = $(element);
|
||||
elem.find('.imageThumbnailLoadingIndicator').css('display', 'block');
|
||||
|
||||
var thumbnailIndex = $('.imageThumbnail').index(element);
|
||||
var thumbnailIndex = $('.imageThumbnailCanvas').index(element);
|
||||
ThumbnailLoading[thumbnailIndex] = imageId;
|
||||
|
||||
this.data.thumbnailIndex = thumbnailIndex;
|
||||
|
||||
+26
-6
@@ -1,10 +1,30 @@
|
||||
@import "{design}/app"
|
||||
|
||||
.thumbnailEntry.active .imageThumbnail
|
||||
border-color: $activeColor
|
||||
box-shadow: none
|
||||
transition($sidebarTransition)
|
||||
|
||||
.imageThumbnail
|
||||
width: 90px
|
||||
height: 90px
|
||||
background-color: black
|
||||
background-color: $primaryBackgroundColor
|
||||
border: 5px solid transparent
|
||||
border-radius: 12px
|
||||
box-shadow: inset 0 0 0 1px $uiBorderColorDark
|
||||
height: 135px
|
||||
margin: 0 auto
|
||||
padding 1px 7px
|
||||
position: relative
|
||||
|
||||
transition($sidebarTransition)
|
||||
width: 217px
|
||||
|
||||
&:hover
|
||||
border-color: $hoverColor
|
||||
box-shadow: none
|
||||
|
||||
.imageThumbnailCanvas
|
||||
height: 100%
|
||||
overflow: hidden
|
||||
|
||||
.thumbnailLoadingIndicator
|
||||
display: none
|
||||
pointer-events: none
|
||||
@@ -17,7 +37,7 @@
|
||||
bottom: 0
|
||||
margin: auto
|
||||
position: absolute
|
||||
|
||||
|
||||
p
|
||||
text-align: center
|
||||
font-size: 10pt
|
||||
font-size: 10pt
|
||||
+20
-4
@@ -1,6 +1,22 @@
|
||||
<template name="thumbnailEntry">
|
||||
<div class="thumbnailEntry">
|
||||
{{ >imageThumbnail }}
|
||||
<div class='seriesDescription noselect'>{{seriesDescription}}</div>
|
||||
<div class="thumbnailEntry m-t-1 m-b-2" data-uid="{{this.stack.seriesInstanceUid}}">
|
||||
<div class="p-x-1">
|
||||
{{>imageThumbnail}}
|
||||
</div>
|
||||
<div class="seriesDetails noselect m-a-1">
|
||||
<div class="seriesDescription">
|
||||
{{this.stack.seriesDescription}}
|
||||
</div>
|
||||
<div class="seriesInformation">
|
||||
<div class="seriesInformationIcons">
|
||||
<strong>S:</strong>
|
||||
<div></div>
|
||||
</div>
|
||||
<div class="seriesInformationNumbers">
|
||||
<div>{{this.stack.seriesNumber}}</div>
|
||||
<div>{{this.stack.instances.length}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
+18
-13
@@ -24,7 +24,7 @@ function thumbnailDragStartHandler(e, data) {
|
||||
// Identify the current study and series index from the thumbnail's DOM position
|
||||
var targetThumbnail = e.currentTarget;
|
||||
var imageThumbnail = $(targetThumbnail);
|
||||
|
||||
|
||||
// Store this data for use during drag and drop
|
||||
OHIF.viewer.dragAndDropData = data;
|
||||
|
||||
@@ -32,7 +32,7 @@ function thumbnailDragStartHandler(e, data) {
|
||||
var targetId = targetThumbnail.id + 'DragClone';
|
||||
var clone = cloneElement(targetThumbnail, targetId);
|
||||
clone.classList.add('imageThumbnailClone');
|
||||
|
||||
|
||||
// Set pointerEvents to pass through the clone DOM element
|
||||
// This is necessary in order to identify what is below it
|
||||
// when using document.elementFromPoint
|
||||
@@ -40,7 +40,7 @@ function thumbnailDragStartHandler(e, data) {
|
||||
|
||||
// Append the clone to the parent of the target
|
||||
targetThumbnail.parentNode.appendChild(clone);
|
||||
|
||||
|
||||
// Set the cursor x and y positions from the current touch/mouse coordinates
|
||||
// Handle touchStart cases
|
||||
if (e.type === 'touchstart') {
|
||||
@@ -61,7 +61,7 @@ function thumbnailDragStartHandler(e, data) {
|
||||
|
||||
// This block gets the current position of the touch/mouse
|
||||
// relative to the thumbnail itself
|
||||
//
|
||||
//
|
||||
// i.e. Where did the user grab it from?
|
||||
var position = imageThumbnail.position();
|
||||
var left = position.left;
|
||||
@@ -70,7 +70,7 @@ function thumbnailDragStartHandler(e, data) {
|
||||
// This difference is saved for later so the element movement looks normal
|
||||
diffX = cursorX - left;
|
||||
diffY = cursorY - top;
|
||||
|
||||
|
||||
// This sets the default style properties of the cloned element so it is
|
||||
// ready to be dragged around the page
|
||||
$(clone).css({
|
||||
@@ -103,7 +103,7 @@ function thumbnailDragHandler(e, target) {
|
||||
'z-index': 100,
|
||||
visibility: 'visible'
|
||||
});
|
||||
|
||||
|
||||
// Identify the element below the current cursor position
|
||||
var elemBelow = document.elementFromPoint(cursorX + diffX, cursorY + diffY);
|
||||
|
||||
@@ -156,7 +156,7 @@ function thumbnailDragEndHandler(e, target) {
|
||||
|
||||
// Remove any current faded effects on viewports
|
||||
$('.imageViewerViewport canvas').removeClass('faded');
|
||||
|
||||
|
||||
// If none exists, stop here
|
||||
if (!elemBelow) {
|
||||
return;
|
||||
@@ -186,8 +186,19 @@ function thumbnailDragEndHandler(e, target) {
|
||||
|
||||
var viewportIndex = $('.imageViewerViewport').index(element);
|
||||
|
||||
// Removes active class from previous selected series in viewport
|
||||
const previousUid = layoutManager.viewportData[viewportIndex].seriesInstanceUid;
|
||||
if (previousUid) {
|
||||
$(`.thumbnailEntry[data-uid="${previousUid}"]`).removeClass('active');
|
||||
}
|
||||
|
||||
// Rerender the viewport using the drag and drop data
|
||||
layoutManager.rerenderViewportWithNewSeries(viewportIndex, OHIF.viewer.dragAndDropData);
|
||||
|
||||
// Set active state for dragged thumbnail entry
|
||||
const newUid = OHIF.viewer.dragAndDropData.seriesInstanceUid
|
||||
$(`.thumbnailEntry[data-uid="${newUid}"]`).addClass('active');
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -213,9 +224,3 @@ Template.thumbnailEntry.events({
|
||||
thumbnailDragEndHandler(e, e.currentTarget);
|
||||
}
|
||||
});
|
||||
|
||||
Template.thumbnailEntry.helpers({
|
||||
seriesDescription: function() {
|
||||
return this.stack.seriesDescription || '';
|
||||
}
|
||||
});
|
||||
+61
-19
@@ -1,24 +1,66 @@
|
||||
@import "{design}/app"
|
||||
|
||||
$seriesCountBackgroundColor = #678696
|
||||
|
||||
.thumbnailEntry
|
||||
width: 105px
|
||||
padding: 5px
|
||||
background-color: black
|
||||
border: 1px solid #424242
|
||||
margin: 0 auto
|
||||
cursor: copy
|
||||
cursor: -webkit-grab
|
||||
cursor: -moz-grab
|
||||
|
||||
.seriesDescription
|
||||
text-align: center
|
||||
color: #555
|
||||
display: table
|
||||
margin: 0 auto
|
||||
font-family: Roboto
|
||||
|
||||
.seriesDetails
|
||||
color: $textPrimaryColor
|
||||
font-size: 14px
|
||||
line-height: 1.3em
|
||||
min-height: 36px
|
||||
position: relative
|
||||
word-wrap: break-word
|
||||
|
||||
&:hover
|
||||
background-color: white
|
||||
|
||||
&.active
|
||||
background-color: #424242
|
||||
border-color: #4e4e4e
|
||||
|
||||
.seriesDescription
|
||||
color: white
|
||||
|
||||
.seriesDescription
|
||||
margin-right: 54px
|
||||
|
||||
.seriesInformation
|
||||
position: absolute
|
||||
right: 0
|
||||
top: 0
|
||||
|
||||
.seriesInformationNumbers
|
||||
.seriesInformationIcons
|
||||
margin-right: 4px
|
||||
|
||||
.seriesInformationNumbers
|
||||
color: $textSecondaryColor
|
||||
float: left
|
||||
font-size: 12px
|
||||
|
||||
.seriesInformationIcons
|
||||
float: left
|
||||
text-align: right
|
||||
|
||||
strong
|
||||
color: $activeColor
|
||||
font-size: 10px
|
||||
// TODO: [design] try to find out what is the font-weight for Roboto-Black
|
||||
font-weight: 500
|
||||
|
||||
div
|
||||
background-color: $seriesCountBackgroundColor
|
||||
margin-top: 6px
|
||||
position: relative
|
||||
|
||||
&:after
|
||||
background-color: $activeColor
|
||||
box-shadow: 1px 1px rgba(0, 0, 0, .115)
|
||||
left: -5px
|
||||
position: absolute
|
||||
top: -5px
|
||||
|
||||
&
|
||||
&:after
|
||||
border: 1px solid $primaryBackgroundColor
|
||||
content: ''
|
||||
display: block
|
||||
height: 11px
|
||||
width: 11px
|
||||
+2
@@ -21,6 +21,8 @@ function loadSeriesIntoViewport(data, templateData) {
|
||||
// The viewport index is often used to store information about a viewport element
|
||||
var element = data.element;
|
||||
var viewportIndex = $('.imageViewerViewport').index(element);
|
||||
|
||||
layoutManager = layoutManager || window.layoutManager;
|
||||
layoutManager.viewportData[viewportIndex].viewportIndex = viewportIndex;
|
||||
|
||||
// Get the contentID of the current worklist tab, if the viewport is running
|
||||
|
||||
+4
-1
@@ -2,7 +2,10 @@
|
||||
width: 100%
|
||||
height: 100%
|
||||
background-color: black
|
||||
|
||||
|
||||
// Prevent the blue outline in Chrome when a viewport is selected
|
||||
outline: 0 !important;
|
||||
|
||||
// Prevents the entire page from getting larger
|
||||
// when the magnify tool is near the sides/corners of the page
|
||||
overflow: hidden
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
.imageViewerViewportOverlay
|
||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif
|
||||
font-size: 13px
|
||||
font-size: 18px
|
||||
color: #979797
|
||||
line-height: 18px
|
||||
line-height: 1.4
|
||||
display: none // Shown when an image is loaded
|
||||
|
||||
.dicomTag
|
||||
|
||||
@@ -22,9 +22,9 @@ createStacks = function(study) {
|
||||
}
|
||||
|
||||
// Don't display thumbnails for non-image modalities
|
||||
// All imaging modalities must have a valid value for sopClassUid or rows
|
||||
// All imaging modalities must have a valid value for rows (or columns)
|
||||
var anInstance = series.instances[0];
|
||||
if (!anInstance || (!isImage(anInstance.sopClassUid) && !anInstance.rows)) {
|
||||
if (!anInstance || !anInstance.rows) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
Template.registerHelper('choose', function() {
|
||||
let result;
|
||||
_.each(_.initial(arguments, 1), function(value) {
|
||||
return value && (result = value);
|
||||
});
|
||||
return result;
|
||||
});
|
||||
|
||||
Template.registerHelper('bool', function(value) {
|
||||
return !!value;
|
||||
});
|
||||
|
||||
Template.registerHelper('equals', function(a, b) {
|
||||
return a === b;
|
||||
});
|
||||
|
||||
Template.registerHelper('not', function(value) {
|
||||
return !value;
|
||||
});
|
||||
|
||||
Template.registerHelper('and', function() {
|
||||
let result = true;
|
||||
_.each(_.initial(arguments, 1), function(value) {
|
||||
return value || (result = false);
|
||||
});
|
||||
return result;
|
||||
});
|
||||
|
||||
Template.registerHelper('or', function() {
|
||||
let result = false;
|
||||
_.each(_.initial(arguments, 1), function(value) {
|
||||
return value && (result = true);
|
||||
});
|
||||
return result;
|
||||
});
|
||||
@@ -1,59 +0,0 @@
|
||||
/**
|
||||
* Checks whether dicom files with specified SOP Class UID have image data
|
||||
* @param {string} sopClassUid - SOP Class UID to be checked
|
||||
* @returns {boolean} - true if it has image data
|
||||
*/
|
||||
isImage = function(sopClassUid) {
|
||||
if (sopClassUid == sopClassDictionary.ComputedRadiographyImageStorage
|
||||
|| sopClassUid == sopClassDictionary.DigitalXRayImageStorageForPresentation
|
||||
|| sopClassUid == sopClassDictionary.DigitalXRayImageStorageForProcessing
|
||||
|| sopClassUid == sopClassDictionary.DigitalMammographyXRayImageStorageForPresentation
|
||||
|| sopClassUid == sopClassDictionary.DigitalMammographyXRayImageStorageForProcessing
|
||||
|| sopClassUid == sopClassDictionary.DigitalIntraOralXRayImageStorageForPresentation
|
||||
|| sopClassUid == sopClassDictionary.DigitalIntraOralXRayImageStorageForProcessing
|
||||
|| sopClassUid == sopClassDictionary.CTImageStorage
|
||||
|| sopClassUid == sopClassDictionary.EnhancedCTImageStorage
|
||||
|| sopClassUid == sopClassDictionary.LegacyConvertedEnhancedCTImageStorage
|
||||
|| sopClassUid == sopClassDictionary.UltrasoundMultiframeImageStorage
|
||||
|| sopClassUid == sopClassDictionary.MRImageStorage
|
||||
|| sopClassUid == sopClassDictionary.EnhancedMRImageStorage
|
||||
|| sopClassUid == sopClassDictionary.EnhancedMRColorImageStorage
|
||||
|| sopClassUid == sopClassDictionary.LegacyConvertedEnhancedMRImageStorage
|
||||
|| sopClassUid == sopClassDictionary.UltrasoundImageStorage
|
||||
|| sopClassUid == sopClassDictionary.SecondaryCaptureImageStorage
|
||||
|| sopClassUid == sopClassDictionary.MultiframeSingleBitSecondaryCaptureImageStorage
|
||||
|| sopClassUid == sopClassDictionary.MultiframeGrayscaleByteSecondaryCaptureImageStorage
|
||||
|| sopClassUid == sopClassDictionary.MultiframeGrayscaleWordSecondaryCaptureImageStorage
|
||||
|| sopClassUid == sopClassDictionary.MultiframeTrueColorSecondaryCaptureImageStorage
|
||||
|| sopClassUid == sopClassDictionary.XRayAngiographicImageStorage
|
||||
|| sopClassUid == sopClassDictionary.EnhancedXAImageStorage
|
||||
|| sopClassUid == sopClassDictionary.XRayRadiofluoroscopicImageStorage
|
||||
|| sopClassUid == sopClassDictionary.EnhancedXRFImageStorage
|
||||
|| sopClassUid == sopClassDictionary.XRay3DAngiographicImageStorage
|
||||
|| sopClassUid == sopClassDictionary.XRay3DCraniofacialImageStorage
|
||||
|| sopClassUid == sopClassDictionary.BreastTomosynthesisImageStorage
|
||||
|| sopClassUid == sopClassDictionary.BreastProjectionXRayImageStorageForPresentation
|
||||
|| sopClassUid == sopClassDictionary.BreastProjectionXRayImageStorageForProcessing
|
||||
|| sopClassUid == sopClassDictionary.IntravascularOpticalCoherenceTomographyImageStorageForPresentation
|
||||
|| sopClassUid == sopClassDictionary.IntravascularOpticalCoherenceTomographyImageStorageForProcessing
|
||||
|| sopClassUid == sopClassDictionary.NuclearMedicineImageStorage
|
||||
|| sopClassUid == sopClassDictionary.VLEndoscopicImageStorage
|
||||
|| sopClassUid == sopClassDictionary.VideoEndoscopicImageStorage
|
||||
|| sopClassUid == sopClassDictionary.VLMicroscopicImageStorage
|
||||
|| sopClassUid == sopClassDictionary.VideoMicroscopicImageStorage
|
||||
|| sopClassUid == sopClassDictionary.VLSlideCoordinatesMicroscopicImageStorage
|
||||
|| sopClassUid == sopClassDictionary.VLPhotographicImageStorage
|
||||
|| sopClassUid == sopClassDictionary.VideoPhotographicImageStorage
|
||||
|| sopClassUid == sopClassDictionary.OphthalmicPhotography8BitImageStorage
|
||||
|| sopClassUid == sopClassDictionary.OphthalmicPhotography16BitImageStorage
|
||||
|| sopClassUid == sopClassDictionary.OphthalmicTomographyImageStorage
|
||||
|| sopClassUid == sopClassDictionary.VLWholeSlideMicroscopyImageStorage
|
||||
|| sopClassUid == sopClassDictionary.PositronEmissionTomographyImageStorage
|
||||
|| sopClassUid == sopClassDictionary.EnhancedPETImageStorage
|
||||
|| sopClassUid == sopClassDictionary.LegacyConvertedEnhancedPETImageStorage
|
||||
|| sopClassUid == sopClassDictionary.RTImageStorage) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
@@ -1,115 +0,0 @@
|
||||
sopClassDictionary = {
|
||||
ComputedRadiographyImageStorage: "1.2.840.10008.5.1.4.1.1.1",
|
||||
DigitalXRayImageStorageForPresentation: "1.2.840.10008.5.1.4.1.1.1.1",
|
||||
DigitalXRayImageStorageForProcessing: "1.2.840.10008.5.1.4.1.1.1.1.1",
|
||||
DigitalMammographyXRayImageStorageForPresentation: "1.2.840.10008.5.1.4.1.1.1.2",
|
||||
DigitalMammographyXRayImageStorageForProcessing: "1.2.840.10008.5.1.4.1.1.1.2.1",
|
||||
DigitalIntraOralXRayImageStorageForPresentation: "1.2.840.10008.5.1.4.1.1.1.3",
|
||||
DigitalIntraOralXRayImageStorageForProcessing: "1.2.840.10008.5.1.4.1.1.1.3.1",
|
||||
CTImageStorage: "1.2.840.10008.5.1.4.1.1.2",
|
||||
EnhancedCTImageStorage: "1.2.840.10008.5.1.4.1.1.2.1",
|
||||
LegacyConvertedEnhancedCTImageStorage: "1.2.840.10008.5.1.4.1.1.2.2",
|
||||
UltrasoundMultiframeImageStorage: "1.2.840.10008.5.1.4.1.1.3.1",
|
||||
MRImageStorage: "1.2.840.10008.5.1.4.1.1.4",
|
||||
EnhancedMRImageStorage: "1.2.840.10008.5.1.4.1.1.4.1",
|
||||
MRSpectroscopyStorage: "1.2.840.10008.5.1.4.1.1.4.2",
|
||||
EnhancedMRColorImageStorage: "1.2.840.10008.5.1.4.1.1.4.3",
|
||||
LegacyConvertedEnhancedMRImageStorage: "1.2.840.10008.5.1.4.1.1.4.4",
|
||||
UltrasoundImageStorage: "1.2.840.10008.5.1.4.1.1.6.1",
|
||||
EnhancedUSVolumeStorage: "1.2.840.10008.5.1.4.1.1.6.2",
|
||||
SecondaryCaptureImageStorage: "1.2.840.10008.5.1.4.1.1.7",
|
||||
MultiframeSingleBitSecondaryCaptureImageStorage: "1.2.840.10008.5.1.4.1.1.7.1",
|
||||
MultiframeGrayscaleByteSecondaryCaptureImageStorage: "1.2.840.10008.5.1.4.1.1.7.2",
|
||||
MultiframeGrayscaleWordSecondaryCaptureImageStorage: "1.2.840.10008.5.1.4.1.1.7.3",
|
||||
MultiframeTrueColorSecondaryCaptureImageStorage: "1.2.840.10008.5.1.4.1.1.7.4",
|
||||
Sop12LeadECGWaveformStorage: "1.2.840.10008.5.1.4.1.1.9.1.1",
|
||||
GeneralECGWaveformStorage: "1.2.840.10008.5.1.4.1.1.9.1.2",
|
||||
AmbulatoryECGWaveformStorage: "1.2.840.10008.5.1.4.1.1.9.1.3",
|
||||
HemodynamicWaveformStorage: "1.2.840.10008.5.1.4.1.1.9.2.1",
|
||||
CardiacElectrophysiologyWaveformStorage: "1.2.840.10008.5.1.4.1.1.9.3.1",
|
||||
BasicVoiceAudioWaveformStorage: "1.2.840.10008.5.1.4.1.1.9.4.1",
|
||||
GeneralAudioWaveformStorage: "1.2.840.10008.5.1.4.1.1.9.4.2",
|
||||
ArterialPulseWaveformStorage: "1.2.840.10008.5.1.4.1.1.9.5.1",
|
||||
RespiratoryWaveformStorage: "1.2.840.10008.5.1.4.1.1.9.6.1",
|
||||
GrayscaleSoftcopyPresentationStateStorage: "1.2.840.10008.5.1.4.1.1.11.1",
|
||||
ColorSoftcopyPresentationStateStorage: "1.2.840.10008.5.1.4.1.1.11.2",
|
||||
PseudoColorSoftcopyPresentationStateStorage: "1.2.840.10008.5.1.4.1.1.11.3",
|
||||
BlendingSoftcopyPresentationStateStorage: "1.2.840.10008.5.1.4.1.1.11.4",
|
||||
XAXRFGrayscaleSoftcopyPresentationStateStorage: "1.2.840.10008.5.1.4.1.1.11.5",
|
||||
XRayAngiographicImageStorage: "1.2.840.10008.5.1.4.1.1.12.1",
|
||||
EnhancedXAImageStorage: "1.2.840.10008.5.1.4.1.1.12.1.1",
|
||||
XRayRadiofluoroscopicImageStorage: "1.2.840.10008.5.1.4.1.1.12.2",
|
||||
EnhancedXRFImageStorage: "1.2.840.10008.5.1.4.1.1.12.2.1",
|
||||
XRay3DAngiographicImageStorage: "1.2.840.10008.5.1.4.1.1.13.1.1",
|
||||
XRay3DCraniofacialImageStorage: "1.2.840.10008.5.1.4.1.1.13.1.2",
|
||||
BreastTomosynthesisImageStorage: "1.2.840.10008.5.1.4.1.1.13.1.3",
|
||||
BreastProjectionXRayImageStorageForPresentation: "1.2.840.10008.5.1.4.1.1.13.1.4",
|
||||
BreastProjectionXRayImageStorageForProcessing: "1.2.840.10008.5.1.4.1.1.13.1.5",
|
||||
IntravascularOpticalCoherenceTomographyImageStorageForPresentation: "1.2.840.10008.5.1.4.1.1.14.1",
|
||||
IntravascularOpticalCoherenceTomographyImageStorageForProcessing: "1.2.840.10008.5.1.4.1.1.14.2",
|
||||
NuclearMedicineImageStorage: "1.2.840.10008.5.1.4.1.1.20",
|
||||
RawDataStorage: "1.2.840.10008.5.1.4.1.1.66",
|
||||
SpatialRegistrationStorage: "1.2.840.10008.5.1.4.1.1.66.1",
|
||||
SpatialFiducialsStorage: "1.2.840.10008.5.1.4.1.1.66.2",
|
||||
DeformableSpatialRegistrationStorage: "1.2.840.10008.5.1.4.1.1.66.3",
|
||||
SegmentationStorage: "1.2.840.10008.5.1.4.1.1.66.4",
|
||||
SurfaceSegmentationStorage: "1.2.840.10008.5.1.4.1.1.66.5",
|
||||
RealWorldValueMappingStorage: "1.2.840.10008.5.1.4.1.1.67",
|
||||
SurfaceScanMeshStorage: "1.2.840.10008.5.1.4.1.1.68.1",
|
||||
SurfaceScanPointCloudStorage: "1.2.840.10008.5.1.4.1.1.68.2",
|
||||
VLEndoscopicImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.1",
|
||||
VideoEndoscopicImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.1.1",
|
||||
VLMicroscopicImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.2",
|
||||
VideoMicroscopicImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.2.1",
|
||||
VLSlideCoordinatesMicroscopicImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.3",
|
||||
VLPhotographicImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.4",
|
||||
VideoPhotographicImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.4.1",
|
||||
OphthalmicPhotography8BitImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.5.1",
|
||||
OphthalmicPhotography16BitImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.5.2",
|
||||
StereometricRelationshipStorage: "1.2.840.10008.5.1.4.1.1.77.1.5.3",
|
||||
OphthalmicTomographyImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.5.4",
|
||||
VLWholeSlideMicroscopyImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.6",
|
||||
LensometryMeasurementsStorage: "1.2.840.10008.5.1.4.1.1.78.1",
|
||||
AutorefractionMeasurementsStorage: "1.2.840.10008.5.1.4.1.1.78.2",
|
||||
KeratometryMeasurementsStorage: "1.2.840.10008.5.1.4.1.1.78.3",
|
||||
SubjectiveRefractionMeasurementsStorage: "1.2.840.10008.5.1.4.1.1.78.4",
|
||||
VisualAcuityMeasurementsStorage: "1.2.840.10008.5.1.4.1.1.78.5",
|
||||
SpectaclePrescriptionReportStorage: "1.2.840.10008.5.1.4.1.1.78.6",
|
||||
OphthalmicAxialMeasurementsStorage: "1.2.840.10008.5.1.4.1.1.78.7",
|
||||
IntraocularLensCalculationsStorage: "1.2.840.10008.5.1.4.1.1.78.8",
|
||||
MacularGridThicknessandVolumeReport: "1.2.840.10008.5.1.4.1.1.79.1",
|
||||
OphthalmicVisualFieldStaticPerimetryMeasurementsStorage: "1.2.840.10008.5.1.4.1.1.80.1",
|
||||
OphthalmicThicknessMapStorage: "1.2.840.10008.5.1.4.1.1.81.1",
|
||||
CornealTopographyMapStorage: "1.2.840.10008.5.1.4.1.1.82.1",
|
||||
BasicTextSR: "1.2.840.10008.5.1.4.1.1.88.11",
|
||||
EnhancedSR: "1.2.840.10008.5.1.4.1.1.88.22",
|
||||
ComprehensiveSR: "1.2.840.10008.5.1.4.1.1.88.33",
|
||||
Comprehensive3DSR: "1.2.840.10008.5.1.4.1.1.88.34",
|
||||
ProcedureLog: "1.2.840.10008.5.1.4.1.1.88.40",
|
||||
MammographyCADSR: "1.2.840.10008.5.1.4.1.1.88.50",
|
||||
KeyObjectSelection: "1.2.840.10008.5.1.4.1.1.88.59",
|
||||
ChestCADSR: "1.2.840.10008.5.1.4.1.1.88.65",
|
||||
XRayRadiationDoseSR: "1.2.840.10008.5.1.4.1.1.88.67",
|
||||
RadiopharmaceuticalRadiationDoseSR: "1.2.840.10008.5.1.4.1.1.88.68",
|
||||
ColonCADSR: "1.2.840.10008.5.1.4.1.1.88.69",
|
||||
ImplantationPlanSRDocumentStorage: "1.2.840.10008.5.1.4.1.1.88.70",
|
||||
EncapsulatedPDFStorage: "1.2.840.10008.5.1.4.1.1.104.1",
|
||||
EncapsulatedCDAStorage: "1.2.840.10008.5.1.4.1.1.104.2",
|
||||
PositronEmissionTomographyImageStorage: "1.2.840.10008.5.1.4.1.1.128",
|
||||
EnhancedPETImageStorage: "1.2.840.10008.5.1.4.1.1.130",
|
||||
LegacyConvertedEnhancedPETImageStorage: "1.2.840.10008.5.1.4.1.1.128.1",
|
||||
BasicStructuredDisplayStorage: "1.2.840.10008.5.1.4.1.1.131",
|
||||
RTImageStorage: "1.2.840.10008.5.1.4.1.1.481.1",
|
||||
RTDoseStorage: "1.2.840.10008.5.1.4.1.1.481.2",
|
||||
RTStructureSetStorage: "1.2.840.10008.5.1.4.1.1.481.3",
|
||||
RTBeamsTreatmentRecordStorage: "1.2.840.10008.5.1.4.1.1.481.4",
|
||||
RTPlanStorage: "1.2.840.10008.5.1.4.1.1.481.5",
|
||||
RTBrachyTreatmentRecordStorage: "1.2.840.10008.5.1.4.1.1.481.6",
|
||||
RTTreatmentSummaryRecordStorage: "1.2.840.10008.5.1.4.1.1.481.7",
|
||||
RTIonPlanStorage: "1.2.840.10008.5.1.4.1.1.481.8",
|
||||
RTIonBeamsTreatmentRecordStorage: "1.2.840.10008.5.1.4.1.1.481.9",
|
||||
RTBeamsDeliveryInstructionStorage: "1.2.840.10008.5.1.4.34.7",
|
||||
GenericImplantTemplateStorage: "1.2.840.10008.5.1.4.43.1",
|
||||
ImplantAssemblyTemplateStorage: "1.2.840.10008.5.1.4.44.1",
|
||||
ImplantTemplateGroupStorage: "1.2.840.10008.5.1.4.45.1"
|
||||
};
|
||||
@@ -13,9 +13,9 @@ Package.onUse(function(api) {
|
||||
api.use('jquery');
|
||||
api.use('stylus');
|
||||
api.use('practicalmeteor:loglevel');
|
||||
api.use('momentjs:moment');
|
||||
|
||||
api.use('momentjs:moment');
|
||||
api.use('validatejs');
|
||||
api.use('design');
|
||||
|
||||
// Our custom packages
|
||||
api.use('cornerstone');
|
||||
@@ -133,8 +133,6 @@ Package.onUse(function(api) {
|
||||
//api.addFiles('lib/validators.js', 'client');
|
||||
api.addFiles('lib/instanceClassSpecificViewport.js', 'client');
|
||||
api.addFiles('lib/setMammogramViewportAlignment.js', 'client');
|
||||
api.addFiles('lib/isImage.js', 'client');
|
||||
api.addFiles('lib/sopClassDictionary.js', 'client');
|
||||
|
||||
api.export('resizeViewportElements', 'client');
|
||||
api.export('handleResize', 'client');
|
||||
@@ -158,8 +156,6 @@ Package.onUse(function(api) {
|
||||
api.export('getInstanceClassDefaultViewport', 'client');
|
||||
api.export('showConfirmDialog', 'client');
|
||||
api.export('applyWLPreset', 'client');
|
||||
api.export('isImage', 'client');
|
||||
api.export('sopClassDictionary', 'client');
|
||||
|
||||
// Export the ValidateJS Library with our added validators
|
||||
//api.export('validate', 'client');
|
||||
@@ -177,6 +173,7 @@ Package.onUse(function(api) {
|
||||
|
||||
// UI Helpers
|
||||
api.addFiles('lib/helpers/formatDA.js', 'client');
|
||||
api.addFiles('lib/helpers/logical.js', 'client');
|
||||
api.addFiles('lib/helpers/formatJSDate.js', 'client');
|
||||
api.addFiles('lib/helpers/jsDateFromNow.js', 'client');
|
||||
api.addFiles('lib/helpers/formatNumberPrecision.js', 'client');
|
||||
@@ -205,4 +202,3 @@ Package.onUse(function(api) {
|
||||
api.addFiles('server/collections.js', 'server');
|
||||
api.export('StudyImportStatus', [ 'client', 'server' ]);
|
||||
});
|
||||
|
||||
Reference in new issue
Block a user