Exemplo n.º 1
0
		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);
		}
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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");
            }
        }
Exemplo n.º 4
0
		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");
			}
		}
Exemplo n.º 5
0
 public PETFusionDisplaySetFactory(PETFusionType fusionType)
 {
     _fusionType = fusionType;
 }
		public PETFusionDisplaySetFactory(PETFusionType fusionType)
		{
			_fusionType = fusionType;
		}