| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 | function [moutput,type,label,PatientPositionCODE]=dicomrt_checkinput(minput,force)% dicomrt_checkinput(minput,force)%% Check the validity of the input variable.% Returns the input variable, type, label and patient orientation.%% minput is the input dataset% force is a parameter which force, if existing and different from 0, the function to check %    for PatientPosition.%% See also: dicomrt_loaddose, dicomrt_loadct, dicomrt_loadmcdose%% Copyright (C) 2002 Emiliano Spezi (emiliano.spezi@physics.org) % Check number of argumenterror(nargchk(1,2,nargin))if nargin==1    force=0;endif iscell(minput) == 1 & size(minput,1) == 3 % OK accepted input    try         header=minput{1,1}{1};    catch        header=minput{1,1};    end    modality=header.Modality;    if isequal(modality,'CT') % CT data        type='ct';        label='CT units [Houns]';        PatientPositionCODE=dicomrt_getPatientPosition(header);        moutput=minput;    elseif isequal(modality,'RTSTRUCT') % VOI data        type='voi';        label='VOI';        PatientPositionCODE=-1; % N/A        moutput=minput;    elseif isequal(modality,'RTPLAN') % TPS or MC dose        RTPLabel=header.RTPlanLabel;        if strfind(RTPLabel,'-MCDOSE');             % this is a MC DOSE            if iscell(minput{2,1}) == 1 % this is a MC dose and contains segments contribution                disp('Input variable is a MC dose containing segments contribution. Adding segment''s dose');                totaldose=dicomrt_addmcdose(minput{2,1}); %add segments' contribution in a 3D minput                moutput=minput;                moutput{2,1}=totaldose;            else                moutput=minput;            end            type='mc';            label='MC dose map [Gy]';            PatientPositionCODE=dicomrt_getPatientPosition(header);        elseif strfind(RTPLabel,'-DDIFF');             % this is a dose difference            moutput=minput;            type='ddiff';            label='Dose difference';            PatientPositionCODE=dicomrt_getPatientPosition(header);        elseif strfind(RTPLabel,'-DRATIO');             % this is a dose ratio            moutput=minput;            type='dratio';            label='Dose ratio';            PatientPositionCODE=dicomrt_getPatientPosition(header);        else            % this is a TPS DOSE            moutput=minput;            type='RTPLAN';            label='RTPLAN dose map [Gy]';            PatientPositionCODE=dicomrt_getPatientPosition(header);        end    endelseif isnumeric(minput)==1 % this is a simple 3D matrix    moutput=minput;    type='other';    label=[inputname(1),' matrix'];    if force==0        warning('dicomrt_checkinput: The input variable is a 3D matrix. Unable to determine Patient Position.');        PatientPosition=input('dicomrt_checkinput: Please specify Patient Position: HFS(default),FFS,HFP,FFP: ','s');        if isempty(PatientPosition)==1            PatientPosition='HFS';        end                if strcmpi(PatientPosition, 'HFS')            PatientPositionCODE = 1;        elseif strcmpi(PatientPosition, 'FFS')            PatientPositionCODE = 2;        elseif strcmpi(PatientPosition, 'HFP')            PatientPositionCODE = 3;        elseif strcmpi(PatientPosition, 'FFP')            PatientPositionCODE = 4;        end    endelse    error('dicomrt_checkinput: Input matrix does not have a supported format. Exit now !');end
 |