function anonScanS = defineAnonScan()
%
% function anonScanS = defineAnonScan()
%
% Defines the anonymous scan data structure. The fields containing PHI have
% been left out by default. In order to leave out additional fields, remove
% them from the list below. 
%
% The following three operations are allowed per field of the input data structure:
% 1. Keep the value as is: listed as 'keep' in the list below.
% 2. Allow only the specific values: permitted values listed within a cell array. 
%    If no match is found, a default anonymous string will be inserted.
% 3. Insert dummy date: listed as 'date' in the list below. Date will be
%    replaced by a dummy value of 11/11/1111.
%
% APA, 1/11/2018

anonScanInfoS = struct( ...
    'imageNumber', 'keep', ...
    'imageType', {{'CT SCAN'}}, ...                 
    'scanType', {{'TRANSVERSE'}}, ...
    'CTOffset', 'keep', ...
    'rescaleSlope', 'keep', ...
    'rescaleIntercept', 'keep', ...
    'scaleSlope', 'keep', ...
    'scaleIntercept', 'keep', ...
    'grid1Units', 'keep', ...
    'grid2Units','keep', ...
    'numberRepresentation', {{'TWO''S COMPLEMENT INTEGER'}}, ...
    'bytesPerPixel','keep', ...
    'numberOfDimensions','keep', ...
    'sizeOfDimension1', 'keep', ...
    'sizeOfDimension2', 'keep', ...
    'zValue', 'keep', ...
    'imageOrientationPatient', 'keep', ...
    'patientPosition', 'keep', ...
    'xOffset','keep', ...
    'yOffset','keep', ...
    'CTAir','keep',...
    'CTWater','keep',...
    'sliceThickness', 'keep', ...     
    'scannerType', {{'GE MEDICAL SYSTEMS'}}, ...
    'headInOut', {{'In','Out'}}, ...
    'positionInScan', {{'HFS', 'HFP', 'FFS', 'FFP'}}, ...        
    'bValue', 'keep', ...
    'scanDate', 'date', ...
	'CTScale', 'keep', ...
    'transferProtocol', {{'DICOM'}}, ...
    'LRflippedToMatchPACS', 'keep', ...
    'APflippedToMatchPACS', 'keep', ...
    'SIflippedToMatchPACS', 'keep', ...
    'voxelThickness', 'keep' ...
        );
    
anonUniformScanInfoS = struct( ...
    'sliceNumSup', 'keep', ...
    'sliceNumInf', 'keep', ...
    'supInfScansCreated', 'keep', ...
    'minCTValue', 'keep', ...
    'maxCTValue', 'keep', ...
    'sliceThickness', 'keep', ...
    'bytesPerPixel', 'keep', ...
    'grid1Units', 'keep', ...
    'grid2Units', 'keep', ...
    'numberRepresentation', {{'TWO''S COMPLEMENT INTEGER'}}, ...
    'sizeOfDimension1', 'keep', ...
    'sizeOfDimension2', 'keep', ...
    'LRflippedToMatchPACS', 'keep', ...
    'APflippedToMatchPACS', 'keep', ...
    'SIflippedToMatchPACS', 'keep', ...
    'xOffset', 'keep', ...
    'yOffset', 'keep', ...
    'CTAir', 'keep', ...
    'CTWater', 'keep', ...
    'firstZValue', 'keep' ...    
        );

             
anonScanS = struct( ...
    'scanArray', 'keep', ...
    'scanType', {{'CT','MR','PET','US','SPECT'}}, ...
    'scanInfo', anonScanInfoS, ...
    'uniformScanInfo', anonUniformScanInfoS, ...
    'scanArraySuperior', 'keep', ...
    'scanArrayInferior', 'keep', ...
    'transM', 'keep', ...
    'scanUID', 'keep', ...
    'assocDeformUID', 'keep', ...
    'assocTextureUID', 'keep');

