⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 opendicom.m

📁 matlab数字信号处理工具箱
💻 M
📖 第 1 页 / 共 2 页
字号:
		elseif (TAG==hex2dec('00181069')),
			[VAL,c] = fread(HDR.FILE.FID,[1,LEN],'uchar');
			HDR.DICOM.TriggerTimeOffset = char(VAL);
		elseif (TAG==hex2dec('0018106a')),
			[VAL,c] = fread(HDR.FILE.FID,[1,LEN],'uchar');
			HDR.DICOM.SyncTrigger = char(VAL);
		elseif (TAG==hex2dec('0018106c')),
			[VAL,c] = fread(HDR.FILE.FID,[1,LEN],'uchar');
			HDR.DICOM.SyncChannel = char(VAL);
		elseif (TAG==hex2dec('0018106e')),
			[VAL,c] = fread(HDR.FILE.FID,[1,LEN],'uchar');
			HDR.DICOM.TriggerSamplePosition = char(VAL);
		elseif (TAG==hex2dec('00181800')),
			[VAL,c] = fread(HDR.FILE.FID,[1,LEN],'uchar');
			HDR.DICOM.AcqTimeSynchronized = char(VAL);
		elseif (TAG==hex2dec('00181801')),
			[VAL,c] = fread(HDR.FILE.FID,[1,LEN],'uchar');
			HDR.DICOM.TimeSource = char(VAL);
		elseif (TAG==hex2dec('00181802')),
			[VAL,c] = fread(HDR.FILE.FID,[1,LEN],'uchar');
			HDR.DICOM.TimeDistributionProtocol = char(VAL);
		elseif (TAG==hex2dec('00181810')),
			[VAL,c] = fread(HDR.FILE.FID,[1,LEN],'uchar');
			HDR.DICOM.AcqTimestamp = char(VAL);

		elseif (TAG==hex2dec('0020000d')),
			[VAL,c] = fread(HDR.FILE.FID,1,'uint8');
			HDR.DICOM.StudyInstanceUID = char(VAL);
		elseif (TAG==hex2dec('0020000e')),
			[VAL,c] = fread(HDR.FILE.FID,1,'uint8');
			HDR.DICOM.SeriesInstanceUID = char(VAL);
		elseif (TAG==hex2dec('00200010')),
			[VAL,c] = fread(HDR.FILE.FID,1,'uint8');
			HDR.DICOM.StudyID = char(VAL);
		elseif (TAG==hex2dec('00200011')),
			[VAL,c] = fread(HDR.FILE.FID,1,'uint8');
			HDR.DICOM.SeriesNumber = char(VAL);
		elseif (TAG==hex2dec('00200012')),
			[VAL,c] = fread(HDR.FILE.FID,1,'uint8');
			HDR.DICOM.AcquisitionNumber = char(VAL);
		elseif (TAG==hex2dec('00200013')),
			[VAL,c] = fread(HDR.FILE.FID,1,'uint8');
			HDR.DICOM.InstanceNumber = char(VAL);
		elseif (TAG==hex2dec('00200019')),
			[VAL,c] = fread(HDR.FILE.FID,1,'uint8');
			HDR.DICOM.ItemNumber = char(VAL);
		elseif (TAG==hex2dec('00200054')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.DICOM.TAG00200054 = VAL';

		elseif (TAG==hex2dec('00200200')),
			[VAL,c] = fread(HDR.FILE.FID,1,'uint8');
			HDR.DICOM.SychronizationFrame = char(VAL);

		elseif (TAG==hex2dec('00280010')),
			[VAL,c] = fread(HDR.FILE.FID,1,'uint16');
			HDR.DICOM.Rows = VAL;
		elseif (TAG==hex2dec('00280011')),
			[VAL,c] = fread(HDR.FILE.FID,1,'uint16');
			HDR.DICOM.Columns = VAL;
		elseif (TAG==hex2dec('00280012')),
			[VAL,c] = fread(HDR.FILE.FID,1,'uint16');
			HDR.DICOM.Planes = VAL;
		elseif (TAG==hex2dec('00280030')),
			[VAL,c] = fread(HDR.FILE.FID,1,'uint16');
			HDR.DICOM.PixelSpacing = VAL;
		elseif (TAG==hex2dec('00280100')),
			[VAL,c] = fread(HDR.FILE.FID,1,'uint16');
			HDR.DICOM.BitsAllocated = VAL;
		elseif (TAG==hex2dec('00280101')),
			[VAL,c] = fread(HDR.FILE.FID,1,'uint16');
			HDR.DICOM.BitsStored = VAL;
		elseif (TAG==hex2dec('00280102')),
			[VAL,c] = fread(HDR.FILE.FID,1,'uint16');
			HDR.DICOM.HighBit = VAL;
		elseif (TAG==hex2dec('00280103')),
			[VAL,c] = fread(HDR.FILE.FID,1,'uint16');
			HDR.DICOM.PixelRepresentation = VAL;

		elseif (TAG==hex2dec('003a0004')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.DICOM.WaveformOriginality = char(VAL); 
		elseif (TAG==hex2dec('003a0005')),	% waveform data
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.NS = VAL; 
		elseif (TAG==hex2dec('003a0010')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.SPR = VAL; 
		elseif (TAG==hex2dec('003a001a')),	% waveform data
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.SampleRate = VAL; 


		elseif (TAG==hex2dec('003a0020')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.DICOM.MultiplexGroupLabel = VAL; 
		elseif (TAG==hex2dec('003a0200')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.DICOM.ChannelDefinitionSequence = VAL; 
		elseif (TAG==hex2dec('003a0202')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.DICOM.ChannelNumber = VAL; 
		elseif (TAG==hex2dec('003a0203')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.DICOM.ChannelLabel = char(VAL); 
		elseif (TAG==hex2dec('003a0205')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.DICOM.ChannelStatus = char(VAL); 
		elseif (TAG==hex2dec('003a0208')),	% waveform data
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.DICOM.ChannelSource = VAL; 
		elseif (TAG==hex2dec('003a0209')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.DICOM.ChannelSourceModifiersSequence = VAL; 
		elseif (TAG==hex2dec('003a020a')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.DICOM.SourceWaveformSequence = VAL; 
		elseif (TAG==hex2dec('003a020c')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.DICOM.ChannelDerivationDescription = VAL; 
		elseif (TAG==hex2dec('003a0210')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.DICOM.Sensitivity = VAL; 
		elseif (TAG==hex2dec('003a0211')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.DICOM.SensitivityUnits = VAL; 
		elseif (TAG==hex2dec('003a0212')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.DICOM.ChannelSensitivityCorrectionFactor = char(VAL); 
		elseif (TAG==hex2dec('003a0213')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.DICOM.ChannelBaseline = VAL; 
		elseif (TAG==hex2dec('003a0214')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.DICOM.ChannelTimeSkew = VAL; 
		elseif (TAG==hex2dec('003a0215')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.DICOM.ChannelSampleSkew = VAL; 
		elseif (TAG==hex2dec('003a0218')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.DICOM.ChannelOffset = VAL; 
		elseif (TAG==hex2dec('003a021a')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.SampleRate = VAL; 

		elseif (TAG==hex2dec('003a0220')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.Filter.LowFreq = VAL; 
		elseif (TAG==hex2dec('003a0221')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.Filter.HiFreq = VAL; 
		elseif (TAG==hex2dec('003a0222')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.Filter.NotchF = VAL; 
		elseif (TAG==hex2dec('003a0223')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.Filter.NotchB = VAL; 

		elseif (TAG==hex2dec('00400055')),
			[VAL,c] = fread(HDR.FILE.FID,LEN/2,'uint16');
			HDR.DICOM.AcquisitionContextModule = VAL;
		elseif (TAG==hex2dec('0040A043')),
			[VAL,c] = fread(HDR.FILE.FID,LEN/2,'uint16');
			HDR.DICOM.WaveformAnnotationModule = VAL;

		elseif (TAG==hex2dec('0040a0b0')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.DICOM.ReferencedWaveformChannel = VAL;
		elseif (TAG==hex2dec('0040a130')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.DICOM.TemporalRangeType = VAL;
		elseif (TAG==hex2dec('0040a132')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.DICOM.ReferencedSamplePosition = VAL;
		elseif (TAG==hex2dec('0040a138')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.DICOM.ReferencedTimeOffset = VAL;
		elseif (TAG==hex2dec('0040a13a')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.DICOM.ReferencedDataTime = VAL;
		elseif (TAG==hex2dec('0040a180')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.DICOM.AnnoationGroupName = char(VAL);
		elseif (TAG==hex2dec('0040a195')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.DICOM.ConceptNameCodeSequenceModifier = VAL;
		elseif (TAG==hex2dec('0040B020')),
			[VAL,c] = fread(HDR.FILE.FID,LEN/2,'uint16');
			HDR.DICOM.WaveformAnnotationSequence = VAL;

		elseif (TAG==hex2dec('20330008'))
			%[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			[VAL,c] = fread(HDR.FILE.FID,LEN/2,'int16');
			HDR.DICOM.TAG20330008=VAL';
		elseif (TAG==hex2dec('42000000'))
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.DICOM.TAG42000000=VAL';

		elseif (TAG==hex2dec('54000010')),	% waveform data
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			'54000010',
		elseif (TAG==hex2dec('54000100')),
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.DICOM.WaveFormSequence = VAL; 
			'54000100',
		elseif (TAG==hex2dec('54000110')),	% channel minimum
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.PhysMin = VAL;
		elseif (TAG==hex2dec('54000112')),	% channel maximum
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.PhysMax = VAL;
		elseif (TAG==hex2dec('54001004')),	% waveform bits allocation
			[HDR.bits,c] = fread(HDR.FILE.FID,LEN,'uint8');
		elseif (TAG==hex2dec('54001006')),	% waveform bits allocation
			[HDR.WaveformSampleInterpretation,c] = fread(HDR.FILE.FID,LEN,'uint8');
		elseif (TAG==hex2dec('54000100A')),	% padding
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.DICOM.PaddingValue = VAL;
		elseif (TAG==hex2dec('54001010')),	% waveform data element
			[VAL,c] = fread(HDR.FILE.FID,LEN/2,'uint16');
			HDR.Data= VAL;

		elseif (TAG==hex2dec('7FE00010'))
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
			HDR.DICOM.TAG7fe00010=VAL';
		elseif (TAG==hex2dec('FFFEE000'))
			LEN = fread(HDR.FILE.FID,1,'uint32');
			if LEN~=hex2dec('FFFFFFFF')
				VAL = fread(HDR.FILE.FID,LEN,'uchar');
			else
				VAL = fread(HDR.FILE.FID,1,'uint32');
			end;
		else
			[VAL,c] = fread(HDR.FILE.FID,LEN,'uint8');
%			char(VAL'),
		end;	

        end;
		
	
	if isfield(HDR.DICOM,'StudyDate') & isfield(HDR.DICOM,'StudyTime'),
		tmp = char(repmat(32,[1,20]));
		tmp([1:4,6,7,9,10]) = HDR.DICOM.StudyDate;
		tmp([12,13,15,16,18,19]) = HDR.DICOM.StudyTime(1:6);
		HDR.T0 = str2double(tmp);
	end;
	if isfield(HDR.DICOM,'Modality') & strcmp(HDR.DICOM.Modality(1:3),'ECG')
		tmp = char(repmat(32,[1,20]));
		tmp([1:4,6,7,9,10]) = HDR.DICOM.ContentDate;
		tmp([12,13,15,16,18,19]) = HDR.DICOM.ContentTime(1:6);
		HDR.T0 = str2double(tmp);
		HDR.TYPE = 'DICOM-ECG';
	end;

        fclose(HDR.FILE.FID);
end;        

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -