Exemplary embodiments of the invention will be described with reference to the accompanying drawings. Like items in the drawings are shown with the same reference numbers. Embodiments of the invention are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings.
In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention and to enable any person skilled in the art to make and use the invention. In some instances, well-known features have not been described in detail to avoid unnecessarily obscuring the present invention. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present invention. Thus, the present invention is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.
Various aspects and features of example embodiments of the invention are described in more detail hereinafter in the following sections: (1) Functional Overview; (2) Diagnosis Algorithms; (3) Implementation; (4) Variations.
One or more embodiments of the invention relate to a computer software medical diagnosis system with which users can interact in order to obtain a medical diagnosis or recommendation. The diagnosis system works by asking the user a series of questions, after which it arrives at a diagnosis, conclusion, or recommendation for the user.
In one or more embodiments of the invention, the user initiates the interaction with the diagnosis system by identifying his or her chief complaint. As used herein, the term “chief complaint” follows the commonly accepted definition of the term among medical professionals, and is synonymous with the terms “primary complaint,” “primary symptom,” and “presenting complaint.” Examples of a chief complaint include “cough” and “fever.”
In one or more embodiments of the invention, after specifying his or her chief complaint, the user answers a series of questions about his or her current symptoms, medical history, identification (age, sex, race), and the like. Those skilled in the art will appreciate that these questions may take other forms, and the invention is not limited to any particular type of question.
In one or more embodiments of the invention, after the user answers a series of questions, the diagnosis system presents him or her with a diagnosis or recommendation.
In one or more embodiments of the invention, the interaction between the user and the diagnosis program emulates a physician-patient relationship, but does not involve a live physician. Instead, the diagnosis software relies on a database of medical information. However, those skilled in the art will appreciate that the user could in fact be a medical professional operating the diagnosis program in the process of diagnosing a patient.
In one or more embodiments of the invention, the medical information takes the form of diagnosis decision trees, herein referred to as “diagnosis algorithms.”
In one or more embodiments of the invention, the user interacts with the diagnosis system over the Internet. The diagnosis system itself runs on a server attached to the Internet, and the user interacts with the server over the World Wide Web through his or her web browser. Those skilled in the art will appreciate that this interaction may take other forms, including a user interacting with the diagnosis system through input/output devices connected directly to the diagnosis system, a user interacting with the diagnosis system on a hand-held computer, and the like. The invention is not limited to a particular medium of interaction.
The diagnosis program just described is now described with reference to a flow diagram 200 of
In one or more embodiments of the invention, the diagnosis algorithms consist of several different types of decision points. Each decision point requires user answers to one or several questions. Example types of decision points, with reference to
Those skilled in the art will appreciate that these decision points may take other forms, and the invention is not limited to any particular diagnosis algorithm decision points.
As described above, in one or more embodiments of the invention, the user interaction with the diagnosis system does not involve a live physician. Thus, the diagnosis algorithms are unable to include decision points that depend on physical findings or lab results. However, the algorithms can determine information about what typically would be physical findings by use of appropriate questions. An example of this innovation is the final question in STEP 410 in
In one or more embodiments of the invention, if a diagnosis algorithm reaches a point at which it requires physical findings or lab results, it terminates with a recommendation that the user see a physician. If the algorithm reaches a point at which the patient would be considered to have a medical emergency, it terminates and directs the patient to see a physician as soon as possible. Examples include TERMINAL 325 in
In one or more embodiments of the invention, the diagnosis algorithms contain diagnosis termination points. Examples include TERMINAL 435 in
In one or more embodiments of the invention, the diagnosis algorithm contains recommendation termination points. Examples include TERMINAL 470 in
In one or more embodiments of the invention, individual diagnosis algorithms may reference other diagnosis algorithms. For example, if the algorithm for the chief complaint of fever algorithm determines that a cough is present, it can specify that the flow of control should jump to the cough algorithm.
In one or more embodiments of the invention, the diagnosis algorithms are stored as XML-structured text in a relational database. However, those skilled in the art will appreciate that the storage format and database may take other forms, including pure text in flatfiles, object-oriented databases, and the like. The invention is not dependent on a specific storage format or mechanism.
In one or more embodiments, the diagnosis system may be implemented on virtually any type of computer regardless of the platform being used.
In one or more embodiments of the invention, the diagnosis system is implemented in an object-oriented programming language.
In one or more embodiments of the invention, there is a distinct separation between the decision points of the diagnosis algorithm and the actual questions asked at those decision points. The questions handle the details of formatting a question and response form and processing the user's answer. The decision points handle the logic of each decision point, each of which may be dependent on the answers to zero, one, or several questions.
In one or more embodiments of the invention, the diagnosis system implementation contains a “question” abstraction to represent interactions with the user. Each question or statement in the program is represented by an instance of the Question class or one of its subclasses.
Those skilled in the art will appreciate that these questions may take other forms, and the invention is not limited to any specific question classes.
In one or more embodiments of the invention, The Question class and its subclasses handle all user interaction. The question instances know how to generate a question and response form in the correct user interface, how to parse the answer, and how to translate the answer into a result that the rest of the diagnosis program can use.
In one or more embodiments of the invention, the question instances generate questions and form responses in Hyper Text Markup Language (HTML).
In one or more embodiments, the Question class and its subclasses support at least the following interfaces:
In one or more embodiments, the question subclasses can support additional interfaces to support non-binary and other special decision points. For example, the AgeQuestion class provides a public method GetAge( ) that can be used by the AgeDecisionNode (discussed below).
In one or more embodiments of the invention, each decision point in a diagnosis algorithm is represented as an instance of the DecisionNode class or one of its subclasses. The types of decision nodes are represented by a class hierarchy. Each DecisionNode instance is associated with one or more questions.
In one or more embodiments, not all decision points are binary. Some decision points have more than two possible branches. Additionally, some decision points have only a single branch (unary), or have no branches at all (terminal).
Those skilled in the art will appreciate that these decision points may take other forms, and the invention is not limited to any specific decision points.
In one or more embodiments of the invention, the representation of each algorithm contains a “root” node, which is the starting point of that algorithm. The representations of the algorithms take the form of directed, acyclic graphs (DAGs). The nodes of the graph are represented by DecisionNode objects and the arcs of the graph are the possible branches from each decision node.
With reference to
In one or more embodiments, a component of the system called the Diagnosis Engine runs the diagnosis. The diagnosis engine runs a depth-first traversal of the diagnosis algorithm, using a “to-visit” stack of decision nodes. Each non-terminal Decision Node pushes one or more Decision Nodes onto the to-visit stack or diagnosis queue. The actual nodes pushed depend on the answers given by the user to the questions associated with the decision node. DecisionNodes that are DiagnosisNodes are pushed onto the diagnosis queue. All others are pushed onto the to-visit stack. The diagnosis queue allows the Diagnosis Engine to collect multiple possible diagnoses to display to the user simultaneously after the algorithm terminates. There are two ways for the traversal to terminate. If a TerminalDecisionNode is reached, the algorithm terminates immediately, even if there are nodes remaining in the to-visit stack. This method of termination allows the algorithm to stop immediately if it detects a medical emergency or decides on a single recommendation or diagnoses. The other method of termination is if the to-visit stack is empty. If the to-visit stack is empty, the diagnoses associated with the DiagnosisNodes in the diagnosis queue are displayed for the user. This method of termination allows multiple possible diagnoses to be displayed for the user.
In one or more embodiments of the invention, the Diagnosis Engine stores the answer to each question. If the same question arises again in the process of diagnosing the patient, which can happen if the execution jumps from one algorithm to another, the Diagnosis Engine skips that question, substituting the previously stored answer instead.
In one or more embodiments of the invention, the Diagnosis Engine can “auto-fill” answers to diagnosis algorithm questions from the user's electronic medical record.
In one or more embodiments of the invention, the Diagnosis Engine maintains a “visited” stack in addition to a “to-visit” stack. This enhancement allows the algorithm to work in reverse, giving the user the option to back-up at any point to a previous decision point.
In one or more embodiments of the invention, the medical database contains “triggers” in addition to diagnosis algorithms. These triggers are checked by the Diagnosis Engine based on the answers to the questions in a diagnosis algorithm, but are independent of any particular diagnosis algorithm. They can be used to catch conditions and emergencies that are categorically true, independent of the chief complaint and algorithm at hand.
This application claims the benefit of U.S. Provisional Application No. 60/829,089 filed Oct. 11, 2006.
Number | Date | Country | |
---|---|---|---|
60829089 | Oct 2006 | US |