*******************************************************************************
*    BioCTS for ANSI/NIST-ITL Machine Readable Tables (BioCTS_AN_MRT_CLI.exe) *
*******************************************************************************

CLI Syntax: 
  BioCTS_AN_MRT_CLI.exe [flags]

Overview:
  
  Input: (Optional - If no input is specified, the default settings are used.) 
  - AN MRT Configuration file: Specifies a set of MRT configurations, including
    the location of all MRT documents. 
	Default: "configurations.xml"
  - Configuration Name(s): The name or names of one or more configurations 
    contained in the configurations file, indicating those to be tested.
	Default: all configurations in the configurations file.
  - Source Path: The path to an ANSI/NIST-ITL transaction to be tested or a 
    path to a directory containing ANSI/NIST-ITL transactions to be tested.
	Default: ../appdir/testfiles
  
  Processing: 
  - Parses the configurations file and generates a list of configurations.
  - Logs configuration errors.
  - Reads in the list of files (transactions) to be tested.
  - Tests input files against the specified configuration(s).
  
  Output: 
  - Summary of discovered configurations and error logs if errors are present. 
  - Log files containing results of the conformance testing for each input 
    file for each configuration selected.
  - A summary log of all files tested for each configuration
  - Individual summary logs for each of the files tested.

Default settings (no flags or parameters specified):

For Conformance Results:
  -Reads and tests all transactions located in the default
   test files directory located at:
   ../appdir/testfiles
  -All results are written to files in the default results directory 
   under a time-stamped folder. Text results are written to "Text Output"
   and XML results are written to "XML Output". For every configuration
   being tested, a directory of the configuration name is placed in the 
   output directory, which contains the result logs. Finally, a 
   "Summary Output" directory is created to hold the overall results
   summary (_BatchResultsSummary.txt) and a listing of results for each
   individual file. For example:
   ../appdir/resultsdir/[timestamp]/Text Output/[configname]/txname.txt
   ../appdir/resultsdir/[timestamp]/XML Output/[configname]/txname.txt
   ../appdir/resultsdir/[timestamp]/Summary Output/_BatchResultsSummary.txt
   ../appdir/resultsdir/[timestamp]/Summary Output/file_ResultsSummary.txt
  -The default resultsdir name is BioCTS_AN_MRT_CLI_Conformance_Results
  -configname is the name of the individual configuration
  -The results directory default is opened on creation.

For MRT settings:
  -Reads from the "configurations.xml" file in the default configurations 
   directory at:
   ../appdir/configurations/default/configurations.xml
  -All output is written to files in the default output directory at:
   ../appdir/logdir/_SummaryLog_[configfilename]_[timestamp].txt
   ../appdir/logdir/_ErrorLog_[configfilename]_[timestamp].txt
  -The default logdir name is BioCTS_AN_MRT_CLI_Configuration_Logs
  -configfilename is the name of the AN MRT configuration file.
  -All ouput files are opened on creation.
  -The summary and errors are not displayed in the console.

Flags:
Flags are optional; when flags are not present the default settings are used. 
Note: quotes are recommended for parameters so that spaces in paths and names 
are accounted for properly. Optional parameters are shown in parentheses.

General Flags:

  -help        
        Displays this help file.
  -h        
        Displays this help file.
  -q  
        Quiet output. No output files or directories are opened after creation.

Conformance Flags:
 
  -tpath "filePath"
        Path to a transaction file. Flag must be followed by a file path. This
		flag may be repeated as many times as desired.
  -tdir "directoryPath"
        Path to a directory containing transactions. Flag must be followed by a 
        directory path.
  -rdir "directoryPath"
        Specify output directory path for the test results. Flag must be 
        followed by a directory path.
  -tconfig "configurationName" 
        Test configuration to test transaction against. Only the configuration 
        with the same name as the configurationName parameter will be used for 
        testing.(Note: this flag may be repeated to specify additional 
        configurations). 
        Values for "configurationName" are case-sensitive and must match the
        value of the config's name attribute in the configurations file. All 
        invalid values are ignored.
  -tprompt 
        Prompts for Conformance Flags after loading all MRT settings and then
        tests for conformance. The prompts will continue until "exit" is 
        specified. All other Conformance Flags submitted with -tprompt are 
        ignored. When prompted, only Conformance Flags are valid. Previously 
        entered MRT Flags will be respected.
  -qr
        Quiet results output. Output summary directory is not opened after 
        creation.
  -f    Force conformance testing. If errors are detected in the MRT files,
        conformance is disabled by default. This flag forces conformance 
		testing for MRT files with errors.
  -notext
        The text result logs are not output to a file.
  -noxml
        The xml result logs are not output to a file.
  -norsum
        The results summary log is not output to a file.


MRT Flags:

  -configpath "filePath"
        Path to the configuration file. Flag must be followed by a file 
        path.
  -logdir "directoryPath"
        Specify output directory path for summary and errors. Flag must be 
        followed by a directory path.
  -spath "filePath"
        Specify output file path for summary only. Flag must be followed by 
        a valid filepath.
  -epath "filePath"
        Specify output file path for errors only. Flag must be followed by a 
        valid filepath.
  -nolog
        No output is logged to files.
  -noslog
        The summary is not logged to a file.
  -noelog
        The errors are not output to a file.
  -notime
        No timestamp is added to the output file names.
  -nostime
        No timestamp is added to the summary file name.
  -noetime
        No timestamp is added to the error log file name.
  -qs
        Quiet summary output. Output summary file is not opened after creation.
  -qe
        Quiet errors output. Output errors file is not opened after creation.
  -qp
        Quiet progress output. Processing messages not shown in console.
  -cout
        Console output. Summary and errors are shown in the console.
  -couts
        Console summary. Summary is shown in the console.
  -coute
        Console errors. Errors are shown in the console.
  -eoshort
        Error options: shorten file paths of error locations in error reports.
  -soc "configurationName" 
        Summary options: configurations to output. This option is used to limit 
        the output of the summary file. By specifying this flag, only the 
        configuration with the same name as the configurationName parameter 
        will be reported in the summary file (Note: this flag may be repeated 
        to specify additional configurations). 
        Values for "configurationName" are case-sensitive and must match the
        value of the config's name attribute in the configurations file.
  -sod "documentTypeList"
        Summary options: documents to output. This option requires a 
        comma-separated list of document types to be specified, which limits 
        the document types that will be reported for all configurations. The
        default option is to output all document types.
        Valid values for "documentTypeList" are (case insensitive):
        FieldDefinitions, LookupCodes, RecordTypeDesc, TOTRecords, 
        TOTFields, TOTFieldDetails, knownErrors, fixes.
  -socd "configurationName" "documentTypeList"
        Summary options: configurations to output and documents to output. 
        This options is the same as -soc, but also requires a 
        comma-separated list of document types to be specified, which limits 
        the document types that will be reported for the specified
        configuration.
        Note: this restricts the output to the specified documents for the 
        configuration, regardless of whether or not -sod is used.
        See -sod and -soc for valid values for "configurationName" and 
        "documentTypeList".
  -soh
        Summary options: Report update history in summary file (false by
        default). 
        This option displays an update history for the contents of
        configurations when they are updated by child configurations.This
        applies to all configurations.
  -sohc "configurationName"
        Summary options: Report update history in summary file for the specified 
        configuration. Note: this option does not automatically turn on output
        for the specified configuration; -soc or -socd must be used to specify 
        that the summary should report the configuration contents (unless all
        configurations are being reported, which is the default option).
  -sono
        Summary options: no configuration output.
        Do not report configurations contents in the summary (false by default).
        This option limits the summary output so that it does not report
        configuration contents, such as document and element details. The
        summary will still provide an overview of the configurations document
        and the relationship among configurations.
                
Examples: 

Valid Syntax:
  BioCTS_AN_MRT_CLI.exe 
  BioCTS_AN_MRT_CLI.exe [flags]

  Default:
        BioCTS_AN_MRT_CLI.exe
        Application expects "configurations.xml" file in the application 
        directory and at least one test transaction in the default transactions 
        directory. See default settings.         

  User-specified test transaction directory:
         BioCTS_AN_MRT_CLI.exe -tdir "C:\BioCTS_AN_MRT\testtransactions"

  User-specified MRT Configuartion:
         BioCTS_AN_MRT_CLI.exe -configpath C:\ANMRT_Configs\config.xml
  
  Quiet all output:
         BioCTS_AN_MRT_CLI.exe -q

  User-specified configuration to test transactions against:
         BioCTS_AN_MRT_CLI.exe -tconfig "an2011"

  User-specified configurations to test transactions against:
         BioCTS_AN_MRT_CLI.exe -tconfig "an2011" -tconfig "an2013na"
 
  Prompt for Conformance Settings:
         BioCTS_AN_MRT_CLI.exe -tprompt
         
         Please enter the conformance testing option flags, or hit enter for 
         default settings. To exit, enter "exit".
         
         -tconfg "an2011" 

         Please enter the conformance testing option flags, or hit enter for 
         default settings. To exit, enter "exit".

         exit
         
