An apparatus for providing an expert systems toolkit implementing diagnostic weighting, comprising:
- a memory for storing data;
- a computer coupled to said memory and having a video display and an input device;
- a program in execution by said computer for controlling operations thereof for receiving user input defining one or more analysis rules to be applied to user specified data from said memory, and for controlling said computer to receive and store user data defining a unique diagnostic statement associated with each true result of each said analysis rule, each said diagnostic statement comprised of a user defined alphanumeric text string, and for controlling said computer to receive user input defining a subjective mathematical statement associated with each said analysis rule, each said subjective mathematical statement being comprised of a user programmable combination of mathematical functions, and each said mathematical statement to be executed only when said associated analysis rule returns a true result, said subjective mathematical statement operating on user specified data from said memory and outputting a numeric result in the form of a weighting number, and for controlling said computer to receive user input controlling which of said analysis rules is to be applied to said data, and for applying said analysis rules so designated to the data in said memory designated by said user and returning a true or false result depending upon the state of the data to which the analysis rule was applied, and for each true result returned by an analysis rule, controlling said computer to store in a file in said memory the diagnostic statement associated with each true result as a diagnostic in a diagnostic database and the corresponding weighting number from the corresponding mathematical statement, and for controlling said computer to receive and store in said memory user input defining one or more expert tests, each expert test comprising a user defined logic statement to be applied to one or more diagnostics selected by user input from the diagnostics stored in said diagnostic database, each said expert test also including an associated user programmable subjective weighting mathematical statement, each said subjective weighting mathematical statement being comprised of a user programmable combination of mathematical functions to be applied to the weighting numbers associated with the diagnostics combined by the logic statement of said expert test, at least one said mathematical function designed to select the maximum of all the weighting numbers associated with diagnostics combined by the corresponding expert test logic statement, and at least one said mathematical function designed to select the minimum of all the weighting numbers associated with the diagnostics combined by the associated expert test logic statement, said logic statement of each said expert test comprised of logical operators from any logic set such as predicate logic or Boolean logic including at least the AND, OR and NOT functions, each said expert test returning either a true or false result, and for controlling said computer to receive user input defining a super diagnostic statement in the form of an alphanumeric string associated with each true result of one of said expert tests, and for controlling said computer to receive user input defining which of said expert tests to execute and for executing the expert tests so designated, and for controlling said computer to store as a super diagnostic in a super diagnostic file in said memory the super diagnostic statement associated with any true result returned by any said expert test in addition to the numeric result of the associated weighting mathematical statement.