public FusionSopDataSource(ISopDataSource realSopDataSource, PETFusionType type, IEnumerable<IDicomAttributeProvider> overlayFrames) { _realSopDataSource = realSopDataSource; _fusionHeaders = new DicomAttributeCollection() {ValidateVrLengths = false, ValidateVrValues = false}; var scEquipment = new ScEquipmentModuleIod(_fusionHeaders); scEquipment.ConversionType = @"WSD"; scEquipment.SecondaryCaptureDeviceManufacturer = @"ClearCanvas Inc."; scEquipment.SecondaryCaptureDeviceManufacturersModelName = ProductInformation.GetName(false, false); scEquipment.SecondaryCaptureDeviceSoftwareVersions = new[] {ProductInformation.GetVersion(true, true, true, true)}; // generate values for the General Image Module _fusionHeaders[DicomTags.ImageType].SetStringValue(@"DERIVED\SECONDARY"); _fusionHeaders[DicomTags.SourceImageSequence].Values = UpdateSourceImageSequence(realSopDataSource, overlayFrames); UpdateDerivationType(type); }
public FusionSopDataSource(ISopDataSource realSopDataSource, PETFusionType type, IEnumerable <IDicomAttributeProvider> overlayFrames) { _realSopDataSource = realSopDataSource; _fusionHeaders = new DicomAttributeCollection(); var scEquipment = new ScEquipmentModuleIod(_fusionHeaders); scEquipment.ConversionType = @"WSD"; scEquipment.SecondaryCaptureDeviceManufacturer = @"ClearCanvas Inc."; scEquipment.SecondaryCaptureDeviceManufacturersModelName = ProductInformation.GetName(false, false); scEquipment.SecondaryCaptureDeviceSoftwareVersions = new[] { ProductInformation.GetVersion(true, true, true, true) }; // generate values for the General Image Module _fusionHeaders[DicomTags.ImageType].SetStringValue(@"DERIVED\SECONDARY"); _fusionHeaders[DicomTags.SourceImageSequence].Values = UpdateSourceImageSequence(realSopDataSource, overlayFrames); UpdateDerivationType(type); }
private void UpdateDerivationType(PETFusionType type) { switch (type) { case PETFusionType.CT: const string ctPetFusion = "PET/CT Fusion (original CT image with a PET overlay frame extracted from a volume)"; _fusionHeaders[DicomTags.ImageComments].SetStringValue(ctPetFusion); _fusionHeaders[DicomTags.DerivationDescription].SetStringValue(ctPetFusion); _fusionHeaders[DicomTags.DerivationCodeSequence].Values = new[] { ImageDerivationContextGroup.SpatiallyRelatedFramesExtractedFromTheVolume.AsDicomSequenceItem() }; break; case PETFusionType.MR: const string mrPetFusion = "PET/MR Fusion (original MR image with a PET overlay frame extracted from a volume)"; _fusionHeaders[DicomTags.ImageComments].SetStringValue(mrPetFusion); _fusionHeaders[DicomTags.DerivationDescription].SetStringValue(mrPetFusion); _fusionHeaders[DicomTags.DerivationCodeSequence].Values = new[] { ImageDerivationContextGroup.SpatiallyRelatedFramesExtractedFromTheVolume.AsDicomSequenceItem() }; break; default: throw new ArgumentOutOfRangeException("type"); } }
private void UpdateDerivationType(PETFusionType type) { switch (type) { case PETFusionType.CT: const string ctPetFusion = "PET/CT Fusion (original CT image with a PET overlay frame extracted from a volume)"; _fusionHeaders[DicomTags.ImageComments].SetStringValue(ctPetFusion); _fusionHeaders[DicomTags.DerivationDescription].SetStringValue(ctPetFusion); _fusionHeaders[DicomTags.DerivationCodeSequence].Values = new[] {ImageDerivationContextGroup.SpatiallyRelatedFramesExtractedFromTheVolume.AsDicomSequenceItem()}; break; case PETFusionType.MR: const string mrPetFusion = "PET/MR Fusion (original MR image with a PET overlay frame extracted from a volume)"; _fusionHeaders[DicomTags.ImageComments].SetStringValue(mrPetFusion); _fusionHeaders[DicomTags.DerivationDescription].SetStringValue(mrPetFusion); _fusionHeaders[DicomTags.DerivationCodeSequence].Values = new[] {ImageDerivationContextGroup.SpatiallyRelatedFramesExtractedFromTheVolume.AsDicomSequenceItem()}; break; default: throw new ArgumentOutOfRangeException("type"); } }
public PETFusionDisplaySetFactory(PETFusionType fusionType) { _fusionType = fusionType; }