From 93c5d6e9e2ee9b9113196fd21ffc57042b585421 Mon Sep 17 00:00:00 2001 From: Andrey Fedorov Date: Tue, 13 Nov 2018 11:16:51 -0500 Subject: [PATCH] ENH: change setting of TrackingIdentifier Use SegmentationType CodeMeaning and SegmentDescription. This help better identify segments in the situatins where the same finding is segmented by different tools/readers. --- labs/pyradiomics-dcm/pyradiomics-dcm.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/labs/pyradiomics-dcm/pyradiomics-dcm.py b/labs/pyradiomics-dcm/pyradiomics-dcm.py index b355852c..74f3a53e 100644 --- a/labs/pyradiomics-dcm/pyradiomics-dcm.py +++ b/labs/pyradiomics-dcm/pyradiomics-dcm.py @@ -117,6 +117,12 @@ def getTrackingUniqueIdentifier(self, segmentNumber): except BaseException: return None + def getSegmentDescription(self, segmentNumber): + try: + return self.dcm.SegmentSequence[segmentNumber].SegmentDescription + except BaseException: + return None + def getSegmentAnatomicLocationCode(self, segmentNumber): try: return self.dcm.SegmentSequence[segmentNumber].AnatomicRegionSequence[0] @@ -508,6 +514,10 @@ def main(): m.m["Measurements"][-1]["TrackingIdentifier"] = segTrackingIdentifier else: m.m["Measurements"][-1]["TrackingIdentifier"] = segmentationType.CodeMeaning + segmentDescription = segmentationMetadataAccessor.getSegmentDescription(int(segmentNumber)-1) + # SegmentDescription is Type 3, and can be missing + if segmentDescription is not None: + m.m["Measurements"][-1]["TrackingIdentifier"] = segmentationType.CodeMeaning+" - "+segmentDescription if segTrackingUniqueIdentifier: m.m["Measurements"][-1]["TrackingUniqueIdentifier"] = segTrackingUniqueIdentifier