📄 opendicom.m
字号:
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 + -