feat: Add White Labelling, Hanging Protocols, and tons of Extensions / Mode fixes
* modified * new files in existing extensions/libraries/modes * fixed bugs and tests * Clean up * fix: viewport display fixed * Fixed configs for deployment * Removed unnecessary files and functions * Fixed default HP module * Added white labelling * Fixed hash routing * Removed unnecessary routers Co-authored-by: Alireza Sedghi <ar.sedghi@gmail.com>
This commit is contained in:
1 parent
0db81b30f3
commit
99b8dc4759
93 files changed
+3825
-1293
No files matched your search
@@ -189,7 +189,7 @@ class MetadataProvider {
|
||||
metadata = {
|
||||
modality: instance.Modality,
|
||||
seriesInstanceUID: instance.SeriesInstanceUID,
|
||||
seriesNumber: instance.SeriesNumber,
|
||||
seriesNumber: getNumberValues(instance.SeriesNumber),
|
||||
studyInstanceUID: instance.StudyInstanceUID,
|
||||
seriesDate,
|
||||
seriesTime,
|
||||
@@ -197,9 +197,9 @@ class MetadataProvider {
|
||||
break;
|
||||
case WADO_IMAGE_LOADER_TAGS.PATIENT_STUDY_MODULE:
|
||||
metadata = {
|
||||
patientAge: instance.PatientAge,
|
||||
patientSize: instance.PatientSize,
|
||||
patientWeight: instance.PatientWeight,
|
||||
patientAge: getNumberValues(instance.PatientAge),
|
||||
patientSize: getNumberValues(instance.PatientSize),
|
||||
patientWeight: getNumberValues(instance.PatientWeight),
|
||||
};
|
||||
break;
|
||||
case WADO_IMAGE_LOADER_TAGS.IMAGE_PLANE_MODULE:
|
||||
@@ -228,51 +228,53 @@ class MetadataProvider {
|
||||
|
||||
metadata = {
|
||||
frameOfReferenceUID: instance.FrameOfReferenceUID,
|
||||
rows: instance.Rows,
|
||||
columns: instance.Columns,
|
||||
imageOrientationPatient: ImageOrientationPatient,
|
||||
rowCosines,
|
||||
columnCosines,
|
||||
imagePositionPatient: instance.ImagePositionPatient,
|
||||
sliceThickness: instance.SliceThickness,
|
||||
sliceLocation: instance.SliceLocation,
|
||||
pixelSpacing: PixelSpacing,
|
||||
rowPixelSpacing,
|
||||
columnPixelSpacing,
|
||||
rows: getNumberValues(instance.Rows),
|
||||
columns: getNumberValues(instance.Columns),
|
||||
imageOrientationPatient: getNumberValues(ImageOrientationPatient),
|
||||
rowCosines: getNumberValues(rowCosines),
|
||||
columnCosines: getNumberValues(columnCosines),
|
||||
imagePositionPatient: getNumberValues(instance.ImagePositionPatient),
|
||||
sliceThickness: getNumberValues(instance.SliceThickness),
|
||||
sliceLocation: getNumberValues(instance.SliceLocation),
|
||||
pixelSpacing: getNumberValues(PixelSpacing),
|
||||
rowPixelSpacing: getNumberValues(rowPixelSpacing),
|
||||
columnPixelSpacing: getNumberValues(columnPixelSpacing),
|
||||
};
|
||||
break;
|
||||
case WADO_IMAGE_LOADER_TAGS.IMAGE_PIXEL_MODULE:
|
||||
metadata = {
|
||||
samplesPerPixel: instance.SamplesPerPixel,
|
||||
photometricInterpretation: instance.PhotometricInterpretation,
|
||||
rows: instance.Rows,
|
||||
columns: instance.Columns,
|
||||
bitsAllocated: instance.BitsAllocated,
|
||||
bitsStored: instance.BitsStored,
|
||||
highBit: instance.HighBit,
|
||||
pixelRepresentation: instance.PixelRepresentation,
|
||||
planarConfiguration: instance.PlanarConfiguration,
|
||||
pixelAspectRatio: instance.PixelAspectRatio,
|
||||
smallestPixelValue: instance.SmallestPixelValue,
|
||||
largestPixelValue: instance.LargestPixelValue,
|
||||
samplesPerPixel: getNumberValues(instance.SamplesPerPixel),
|
||||
photometricInterpretation: getNumberValues(instance.PhotometricInterpretation),
|
||||
rows: getNumberValues(instance.Rows),
|
||||
columns: getNumberValues(instance.Columns),
|
||||
bitsAllocated: getNumberValues(instance.BitsAllocated),
|
||||
bitsStored: getNumberValues(instance.BitsStored),
|
||||
highBit: getNumberValues(instance.HighBit),
|
||||
pixelRepresentation: getNumberValues(instance.PixelRepresentation),
|
||||
planarConfiguration: getNumberValues(instance.PlanarConfiguration),
|
||||
pixelAspectRatio: getNumberValues(instance.PixelAspectRatio),
|
||||
smallestPixelValue: getNumberValues(instance.SmallestPixelValue),
|
||||
largestPixelValue: getNumberValues(instance.LargestPixelValue),
|
||||
redPaletteColorLookupTableDescriptor:
|
||||
instance.RedPaletteColorLookupTableDescriptor,
|
||||
getNumberValues(instance.RedPaletteColorLookupTableDescriptor),
|
||||
greenPaletteColorLookupTableDescriptor:
|
||||
instance.GreenPaletteColorLookupTableDescriptor,
|
||||
getNumberValues(instance.GreenPaletteColorLookupTableDescriptor),
|
||||
bluePaletteColorLookupTableDescriptor:
|
||||
instance.BluePaletteColorLookupTableDescriptor,
|
||||
getNumberValues(instance.BluePaletteColorLookupTableDescriptor),
|
||||
redPaletteColorLookupTableData:
|
||||
instance.RedPaletteColorLookupTableData,
|
||||
getNumberValues(instance.RedPaletteColorLookupTableData),
|
||||
greenPaletteColorLookupTableData:
|
||||
instance.GreenPaletteColorLookupTableData,
|
||||
getNumberValues(instance.GreenPaletteColorLookupTableData),
|
||||
bluePaletteColorLookupTableData:
|
||||
instance.BluePaletteColorLookupTableData,
|
||||
getNumberValues(instance.BluePaletteColorLookupTableData),
|
||||
};
|
||||
|
||||
break;
|
||||
case WADO_IMAGE_LOADER_TAGS.VOI_LUT_MODULE:
|
||||
const { WindowCenter, WindowWidth } = instance;
|
||||
|
||||
if (WindowCenter === undefined || WindowWidth === undefined) {
|
||||
return;
|
||||
}
|
||||
const windowCenter = Array.isArray(WindowCenter)
|
||||
? WindowCenter
|
||||
: [WindowCenter];
|
||||
@@ -281,15 +283,20 @@ class MetadataProvider {
|
||||
: [WindowWidth];
|
||||
|
||||
metadata = {
|
||||
windowCenter,
|
||||
windowWidth,
|
||||
windowCenter: getNumberValues(windowCenter),
|
||||
windowWidth: getNumberValues(windowWidth),
|
||||
};
|
||||
|
||||
break;
|
||||
case WADO_IMAGE_LOADER_TAGS.MODALITY_LUT_MODULE:
|
||||
const { RescaleIntercept, RescaleSlope } = instance;
|
||||
if (RescaleIntercept === undefined || RescaleSlope === undefined) {
|
||||
return;
|
||||
}
|
||||
|
||||
metadata = {
|
||||
rescaleIntercept: instance.RescaleIntercept,
|
||||
rescaleSlope: instance.RescaleSlope,
|
||||
rescaleIntercept: getNumberValues(instance.RescaleIntercept),
|
||||
rescaleSlope: getNumberValues(instance.RescaleSlope),
|
||||
rescaleType: instance.RescaleType,
|
||||
};
|
||||
break;
|
||||
@@ -401,7 +408,7 @@ class MetadataProvider {
|
||||
case WADO_IMAGE_LOADER_TAGS.GENERAL_IMAGE_MODULE:
|
||||
metadata = {
|
||||
sopInstanceUid: instance.SOPInstanceUID,
|
||||
instanceNumber: instance.InstanceNumber,
|
||||
instanceNumber: getNumberValues(instance.InstanceNumber),
|
||||
lossyImageCompression: instance.LossyImageCompression,
|
||||
lossyImageCompressionRatio: instance.LossyImageCompressionRatio,
|
||||
lossyImageCompressionMethod: instance.LossyImageCompressionMethod,
|
||||
@@ -457,6 +464,31 @@ class MetadataProvider {
|
||||
|
||||
const metadataProvider = new MetadataProvider();
|
||||
|
||||
|
||||
/**
|
||||
* Returns the values as an array of javascript numbers
|
||||
*
|
||||
* @param element - The javascript object for the specified element in the metadata
|
||||
* @returns {*}
|
||||
*/
|
||||
function getNumberValues(element) {
|
||||
if (!element) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (Array.isArray(element)) {
|
||||
const values = [];
|
||||
for (let i = 0; i < element.length; i++) {
|
||||
values.push(parseFloat(element[i]));
|
||||
}
|
||||
return values;
|
||||
}
|
||||
|
||||
return parseFloat(element)
|
||||
}
|
||||
|
||||
|
||||
|
||||
export default metadataProvider;
|
||||
|
||||
const WADO_IMAGE_LOADER_TAGS = {
|
||||
@@ -479,3 +511,4 @@ const WADO_IMAGE_LOADER_TAGS = {
|
||||
};
|
||||
|
||||
const INSTANCE = 'instance';
|
||||
const DICOMWEB = 'dicomweb';
|
||||
Reference in new issue
Block a user