From 6b78e7c00e87fa3b7b47f062f0bfcdc093b535bc Mon Sep 17 00:00:00 2001 From: Kelvin Chow Date: Thu, 21 Nov 2024 23:09:13 -0700 Subject: [PATCH] Allow mrd2dicom for datasets without an MRD header --- mrd2dicom.py | 43 ++++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/mrd2dicom.py b/mrd2dicom.py index 07d0a44..a060230 100644 --- a/mrd2dicom.py +++ b/mrd2dicom.py @@ -88,6 +88,8 @@ def main(args): xml_header = dset.read_xml_header() xml_header = xml_header.decode("utf-8") mrdHead = ismrmrd.xsd.CreateFromDocument(xml_header) + else: + mrdHead = ismrmrd.xsd.ismrmrdHeader() filesWritten = 0 for group in groups: @@ -156,25 +158,28 @@ def main(args): print("Error setting header information from MRD header's measurementInformation section") try: - # print("---------- Old -------------------------") - # print("mrdHead.acquisitionSystemInformation.systemVendor : %s" % mrdHead.acquisitionSystemInformation.systemVendor ) - # print("mrdHead.acquisitionSystemInformation.systemModel : %s" % mrdHead.acquisitionSystemInformation.systemModel ) - # print("mrdHead.acquisitionSystemInformation.systemFieldStrength_T: %s" % mrdHead.acquisitionSystemInformation.systemFieldStrength_T ) - # print("mrdHead.acquisitionSystemInformation.institutionName : %s" % mrdHead.acquisitionSystemInformation.institutionName ) - # print("mrdHead.acquisitionSystemInformation.stationName : %s" % mrdHead.acquisitionSystemInformation.stationName ) - - if mrdHead.acquisitionSystemInformation.systemVendor is not None: dicomDset.Manufacturer = mrdHead.acquisitionSystemInformation.systemVendor - if mrdHead.acquisitionSystemInformation.systemModel is not None: dicomDset.ManufacturerModelName = mrdHead.acquisitionSystemInformation.systemModel - if mrdHead.acquisitionSystemInformation.systemFieldStrength_T is not None: dicomDset.MagneticFieldStrength = mrdHead.acquisitionSystemInformation.systemFieldStrength_T - if mrdHead.acquisitionSystemInformation.institutionName is not None: dicomDset.InstitutionName = mrdHead.acquisitionSystemInformation.institutionName - if mrdHead.acquisitionSystemInformation.stationName is not None: dicomDset.StationName = mrdHead.acquisitionSystemInformation.stationName - - # print("---------- New -------------------------") - # print("mrdHead.acquisitionSystemInformation.systemVendor : %s" % mrdHead.acquisitionSystemInformation.systemVendor ) - # print("mrdHead.acquisitionSystemInformation.systemModel : %s" % mrdHead.acquisitionSystemInformation.systemModel ) - # print("mrdHead.acquisitionSystemInformation.systemFieldStrength_T: %s" % mrdHead.acquisitionSystemInformation.systemFieldStrength_T ) - # print("mrdHead.acquisitionSystemInformation.institutionName : %s" % mrdHead.acquisitionSystemInformation.institutionName ) - # print("mrdHead.acquisitionSystemInformation.stationName : %s" % mrdHead.acquisitionSystemInformation.stationName ) + if mrdHead.acquisitionSystemInformation is None: + pass + else: + # print("---------- Old -------------------------") + # print("mrdHead.acquisitionSystemInformation.systemVendor : %s" % mrdHead.acquisitionSystemInformation.systemVendor ) + # print("mrdHead.acquisitionSystemInformation.systemModel : %s" % mrdHead.acquisitionSystemInformation.systemModel ) + # print("mrdHead.acquisitionSystemInformation.systemFieldStrength_T: %s" % mrdHead.acquisitionSystemInformation.systemFieldStrength_T ) + # print("mrdHead.acquisitionSystemInformation.institutionName : %s" % mrdHead.acquisitionSystemInformation.institutionName ) + # print("mrdHead.acquisitionSystemInformation.stationName : %s" % mrdHead.acquisitionSystemInformation.stationName ) + + if mrdHead.acquisitionSystemInformation.systemVendor is not None: dicomDset.Manufacturer = mrdHead.acquisitionSystemInformation.systemVendor + if mrdHead.acquisitionSystemInformation.systemModel is not None: dicomDset.ManufacturerModelName = mrdHead.acquisitionSystemInformation.systemModel + if mrdHead.acquisitionSystemInformation.systemFieldStrength_T is not None: dicomDset.MagneticFieldStrength = mrdHead.acquisitionSystemInformation.systemFieldStrength_T + if mrdHead.acquisitionSystemInformation.institutionName is not None: dicomDset.InstitutionName = mrdHead.acquisitionSystemInformation.institutionName + if mrdHead.acquisitionSystemInformation.stationName is not None: dicomDset.StationName = mrdHead.acquisitionSystemInformation.stationName + + # print("---------- New -------------------------") + # print("mrdHead.acquisitionSystemInformation.systemVendor : %s" % mrdHead.acquisitionSystemInformation.systemVendor ) + # print("mrdHead.acquisitionSystemInformation.systemModel : %s" % mrdHead.acquisitionSystemInformation.systemModel ) + # print("mrdHead.acquisitionSystemInformation.systemFieldStrength_T: %s" % mrdHead.acquisitionSystemInformation.systemFieldStrength_T ) + # print("mrdHead.acquisitionSystemInformation.institutionName : %s" % mrdHead.acquisitionSystemInformation.institutionName ) + # print("mrdHead.acquisitionSystemInformation.stationName : %s" % mrdHead.acquisitionSystemInformation.stationName ) except: print("Error setting header information from MRD header's acquisitionSystemInformation section")