Skip to content

Commit 76ca6f5

Browse files
ahlaughlandAndrew Laughland
and
Andrew Laughland
authored
feat(nm): Nuclear medicine normalizer (#384)
* Adds NM normalizer * Working NM normalizer allows for saving SEG to file. * feat(normalizers): Add NM normalizer to allow creation of Nuclear Medicine segmentations --------- Co-authored-by: Andrew Laughland <[email protected]>
1 parent fcbd9cc commit 76ca6f5

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

Diff for: src/DicomMetaDictionary.js

+1
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,7 @@ class DicomMetaDictionary {
357357
// Subset of those listed at:
358358
// http://dicom.nema.org/medical/dicom/current/output/html/part04.html#sect_B.5
359359
DicomMetaDictionary.sopClassNamesByUID = {
360+
"1.2.840.10008.5.1.4.1.1.20": "NMImage",
360361
"1.2.840.10008.5.1.4.1.1.2": "CTImage",
361362
"1.2.840.10008.5.1.4.1.1.2.1": "EnhancedCTImage",
362363
"1.2.840.10008.5.1.4.1.1.2.2": "LegacyConvertedEnhancedCTImage",

Diff for: src/normalizers.js

+12
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ class Normalizer {
3434
sopClassUID = sopClassUID.replace(/[^0-9.]/g, ""); // TODO: clean all VRs as part of normalizing
3535
let toUID = DicomMetaDictionary.sopClassUIDsByName;
3636
let sopClassUIDMap = {};
37+
sopClassUIDMap[toUID.NMImage] = NMImageNormalizer;
3738
sopClassUIDMap[toUID.CTImage] = CTImageNormalizer;
3839
sopClassUIDMap[toUID.ParametricMapStorage] = PMImageNormalizer;
3940
sopClassUIDMap[toUID.MRImage] = MRImageNormalizer;
@@ -56,6 +57,7 @@ class Normalizer {
5657
static isMultiframeSOPClassUID(sopClassUID) {
5758
const toUID = DicomMetaDictionary.sopClassUIDsByName;
5859
const multiframeSOPClasses = [
60+
toUID.NMImage,
5961
toUID.EnhancedMRImage,
6062
toUID.LegacyConvertedEnhancedMRImage,
6163
toUID.EnhancedCTImage,
@@ -475,6 +477,15 @@ class EnhancedUSVolumeNormalizer extends ImageNormalizer {
475477
super.normalize();
476478
}
477479
}
480+
class NMImageNormalizer extends ImageNormalizer {
481+
normalize() {
482+
super.normalize();
483+
// TODO: provide option at export to swap in LegacyConverted UID
484+
let toUID = DicomMetaDictionary.sopClassUIDsByName;
485+
486+
this.dataset.SOPClassUID = toUID.NMImage;
487+
}
488+
}
478489

479490
class CTImageNormalizer extends ImageNormalizer {
480491
normalize() {
@@ -526,6 +537,7 @@ export { MRImageNormalizer };
526537
export { EnhancedCTImageNormalizer };
527538
export { EnhancedMRImageNormalizer };
528539
export { EnhancedUSVolumeNormalizer };
540+
export { NMImageNormalizer };
529541
export { CTImageNormalizer };
530542
export { PETImageNormalizer };
531543
export { SEGImageNormalizer };

0 commit comments

Comments
 (0)