U.S. patent application number 10/867636 was filed with the patent office on 2004-11-25 for apparatus for and method of administering a decision procedure.
Invention is credited to Karpf, Ronald S..
Application Number | 20040236981 10/867636 |
Document ID | / |
Family ID | 21892798 |
Filed Date | 2004-11-25 |
United States Patent
Application |
20040236981 |
Kind Code |
A1 |
Karpf, Ronald S. |
November 25, 2004 |
Apparatus for and method of administering a decision procedure
Abstract
A computer system for performing an interactive assessment of
the risk of an event, has a computer monitor to present to a user
of the system a series of questions and potential responses, and a
keyboard or other device to select a response to the question. The
system can administer complex inverted tree type decision
algorithms, in which the questions that are presented to the user,
depend upon the response to the previous question, and an
assessment of the risk of an event is presented to the user
whenever they reach the terminus point in the decision tree. The
risk assessment algorithm is data driven and a risk assessment is
defined by entries in a file, which is available over a network.
The system provides options so each user may view the path through
the sequence of questions and answers, and interact with the risk
assessment, in a manner customized for their own interactive
session.
Inventors: |
Karpf, Ronald S.;
(Gaithersburg, MD) |
Correspondence
Address: |
DICKSTEIN SHAPIRO MORIN & OSHINSKY LLP
2101 L STREET NW
WASHINGTON
DC
20037-1526
US
|
Family ID: |
21892798 |
Appl. No.: |
10/867636 |
Filed: |
June 16, 2004 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
10867636 |
Jun 16, 2004 |
|
|
|
10350089 |
Jan 24, 2003 |
|
|
|
10350089 |
Jan 24, 2003 |
|
|
|
09987132 |
Nov 13, 2001 |
|
|
|
09987132 |
Nov 13, 2001 |
|
|
|
09037165 |
Mar 9, 1998 |
|
|
|
6334192 |
|
|
|
|
Current U.S.
Class: |
714/1 |
Current CPC
Class: |
Y10S 128/92 20130101;
G16H 10/20 20180101; G09B 7/00 20130101; G16H 50/20 20180101; G16H
50/50 20180101; G16H 50/30 20180101; Y10S 128/924 20130101 |
Class at
Publication: |
714/001 |
International
Class: |
H02H 003/05 |
Claims
1-22. (cancelled)
23. A method of displaying an interactive decision structure, the
method comprising the steps of: (a) controlling an amount of
information regarding the decision structure that is to be
visualized; (b) receiving interactive responses corresponding to
the decision structure visualized; and (c) displaying at least a
portion of the decision structure based on said controlling step
(a) and the interactive responses received in said receiving step
(b).
24. The method of displaying as recited in claim 23, the method
further comprising the step of: (d) highlighting a decision path
through the decision structure based on the received interactive
responses.
25. The method of displaying as recited in claim 23, wherein the
decision structure comprises a series of questions and potential
responses associated with each question; wherein said receiving
step (b) comprises the step of allowing a user to input a response
to a given question; and wherein said displaying step (c) redraws
the displayed portion of the decision structure based on the
response input by the user.
26. The method of displaying as recited in claim 25, wherein the
decision structure comprises a predetermined sequence of questions,
wherein individual questions are sequentially displayed as part of
the decision structure after each interactive response received in
said receiving step (b).
27. The method of displaying as recited in claim 25, wherein the
decision structure permits interactive responses to different
questions to lead to the same subsequent question in the decision
path.
28. The method of displaying as recited in claim 25, wherein the
decision structure may be alternatively displayed in a text mode
and a tree mode.
29. The method of displaying as recited in claim 28, wherein, when
the decision structure is displayed in a text mode, a series of
questions and associated responses are displayed in full text.
30. The method of displaying as recited in claim 28, wherein, when
the decision structure is displayed in a tree mode, a series of
question blocks representing questions are arranged in an inverted
tree structure connected by lines representing associated responses
to respective questions.
31. The method of displaying as recited in claim 30, wherein, in a
tree mode, said controlling step (a) comprises the step of
inputting preference data from a user to control the number of
levels that are to be displayed above and below a current question
block as the displayed portion of the decision structure; and
wherein the decision structure represents an assessment of a risk
of an event occurring.
32. The method of displaying as recited in claim 24, wherein said
highlighting step (d) comprises: highlighting a border of a current
question in the decision structure; and displaying the decision
path using heavy weighted lines relative to the remaining lines of
the portion of the decision structure displayed.
33. A computer system for administering a decision procedure, the
computer system comprising: a first computer having a monitor,
wherein said first computer administers a decision procedure to a
user; and a second computer, wherein said second computer transfers
to said first computer a decision procedure definition file that
defines the decision procedure to be administered by the client
program at said first computer; wherein a program executed on said
first computer comprises the steps of: (i) visually displaying on
the monitor at least a portion of the decision procedure as an
inverted tree structure; (ii) allowing the user to input responses
to said first computer; and (iii) updating the decision procedure
to reflect the most recent response by the user.
34. The computer system as recited in claim 33, further comprising
a computer network, wherein both said first and second computers
are coupled to said computer network, and wherein said second
computer transfers the decision procedure definition file to said
first computer over said computer network using a hypertext
transfer protocol (HTTP).
35. The computer system as recited in claim 34, wherein a
non-persistent connection is initiated between said first and
second computers until the definition file is transferred to said
first computer.
36. The computer system as recited in claim 33, wherein the
decision procedure is a self-administrated risk assessment based on
a series of questions and responses to such questions.
37. The computer system as recited in claim 36, wherein the risk
assessment is a medical risk assessment for predicting whether a
patient admitted to an emergency room with chest pain has a risk of
presenting myocardial infarction.
38. The computer system as recited in claim 36, wherein the
definition file includes: (a) a description of the risk that is
being assessed; (b) text of each question in the risk assessment;
(c) identification of the first question in said risk assessment;
(d) text of the allowable responses associated with each question;
and (e) action to be taken in response to a question during the
risk assessment, wherein the action is either the specification of
a subsequent question to be displayed or that the risk assessment
is completed.
39. The computer system as recited in claim 33, wherein said second
computer is a network server comprising a mass storage device for
storing a plurality of decision procedure definition files, and
wherein said first computer is one of a plurality of client
computers requesting a selected one of the plurality of decision
procedure definition files stored in the mass storage device.
40. A method of using a computer system to administer an
assessment, wherein a user inputs a request to initiate
administration of the assessment, a local search for an assessment
definition file is made, an assessment definition file is retrieved
from a remote location if the definition file is not found in the
local search, administration of the assessment is begun with
display of a question, receipt of user input response associated
with the question, and display of one of a series of questions is
made based on user input responses to a previous question until the
series of questions terminates, and an assessment value is output
associated with the termination of the series of questions.
41. The method recited in claim 40, wherein the administered
assessment categorizes the user as belonging to a group based on
the input responses received from the user during administration of
the assessment.
42. The method recited in claim 41, wherein the administered
assessment value indicates a risk of occurrence of an event
associated with membership in the group.
43. A method of updating a risk assessment algorithm made available
to users, the method comprising: maintaining at least one risk
assessment definition on a server node of a computer network;
providing access to the server for use in administering a risk
assessment; and replacing the at least one risk assessment
definition with a new definition and making the new definition
immediately available in all subsequent risk assessments.
Description
[0001] This application is a continuation of U.S. Utility patent
application No. 09/037,165 (Attorney Docket No. K1625.0001/P001),
filed on Mar. 9, 1998, which is incorporated herein by reference in
its entirety.
BACKGROUND
[0002] The means to administer a risk assessment have not kept pace
with the increasingly complex risk assessment rules that are the
result of extensive research and analysis. Particularly in the area
of health, data that is collected with the goal of understanding
the factors associated with a medical condition, from expensive
well-planned epidemiological research studies, may have been
analyzed by means of logistic regression, regression trees,
discriminant analyses, or other sophisticated statistical
methodologies, that result in extremely complicated rules to assess
risk. Such rules are too complex to be readily applied.
[0003] The changing face of health care is, among other things,
forcing people to take more responsibility for their own health,
and assessing personal risk is an important facet. We see more
instances of simple health assessments printed in newspapers, and
magazines. By necessity these personal risk assessments must be
easy for the reader to apply, since usage rates for complex
assessments are low, and error rates are high. The typical personal
assessment may require answering a simple set of questions, adding
up a point total, and then assessing risk according to the range in
which the point total falls. Such simple assessments are about at
the level of complexity that can be typically handled without undue
chance of error. The problem with such simple assessments is that
they are by necessity simplifications from more detailed studies,
and subsequently lack the precision of the studies from which they
are taken. The tradeoff is that to be usable, they have to be
simplified.
[0004] Even sophisticated users may have difficulty performing a
complex risk assessment. The research paper "A computer protocol to
predict myocardial infarction in emergency department patients with
chest pain", published in the New England Journal of Medicine, Mar.
31, 1988, Vol 318, pages 797-803, presents a risk assessment that
can be used by emergency room medical personnel for triage of
patients with symptoms of chest pain. The analysis and procedure is
presented without any suggestion for a means by which it may be
operationally used in the emergency room. The complexity of the
decision rule, possibly requiring the answering of up to 8
questions, and the severity of the consequences should a mistake
occur, mandate a careful approach to the means by which the rule is
implemented. An embodiment of the invention can be an important
element in standard operation procedure by which this rule is
applied in the emergency room.
SUMMARY
[0005] In accordance with an embodiment of the invention, a
computer system is provided as an easy means for a user to invoke
and perform an interactive risk assessment. A feature of the
embodiment is the ease with which extremely complex risk assessment
algorithms can be administered. This means that users will have
access to, and be able to self administer risk assessments from
research studies without having to be concerned with the
complexities of the methodologies and implementation. Also risk
assessments will no longer have to be simplified in order to be
usable. An embodiment of the invention includes administering an
interactive risk assessment, which poses one question at a time,
recording responses, and presenting to the user either the assessed
risk, or the next portion of the risk assessment algorithm that
they are to respond to. Also, the risk assessment program has the
means to present the risk assessment in a multiplicity of formats,
and with customization options to let the user proceed in a manner
that they find most useful.
[0006] An embodiment of the invention provides a system that is
able to administer complex decision rules. This includes inverted
tree type decision structures in which the path of questions is
dependent and determined by the responses to prior questions. Such
structures have been heretofore unavailable for personal risk
assessments because of their complexity.
[0007] Embodiments of the invention provide for the wide
availability of the system, the ease with which the risk assessment
algorithm may be updated and maintained, as well as the scope of
risk algorithms that can be available to users. Where the
assessment is data driven from a risk assessment definition
maintained on a server node of a computer network, all computers
that have access to the server can be used to administer a risk
assessment. Update of the risk assessment, as more current
algorithms become available is achieved by replacing the risk
assessment definition with the new definition and are immediately
available in all subsequent risk assessments. Also, since any risk
assessment that can be defined according to the structure of the
risk definition file can be administered by the program, and this
structure is general enough to accommodate a wide variety or risk
decision structures, a large number of different risk assessments
can be maintained in a central location on the same server and made
available to users.
[0008] In an embodiment of the invention, all these risk
assessments are now administered in a similar way, so once the user
can successfully master the administration of any risk assessment,
they have the skills to administer all others.
[0009] In accordance with an embodiment of the invention, an
exemplary system is provided having a client program running on a
client node of a computer network, and a server program running on
server nodes of a computer network. As a response to a request from
the client program for a risk assessment definition, the server can
send a response to the client program, that has sufficient
information to fully describe the risk assessment that is to be
administered. The system can thus be data driven, and can
administer any risk assessment that conforms to the structure and
criteria of the risk definition file. Each risk definition is
easily updateable by replacing the risk definition file with a new
file that describes an updated risk assessment decision rule.
[0010] The system is capable of presenting in a fashion usable to
even novice users, even the most complex risk assessments involving
deeply nested decision paths, and paths in which the questions that
are asked at any level are dependent upon the answers to previous
questions, and can implement complicated mathematical risk
assessment formulas, in which the values for parameters are
provided by the responses to questions presented during the risk
assessment.
[0011] The user interface of the risk assessment program may be
event driven, and carefully guides the user through the intricate
risk assessment by presenting a series of questions to which the
user in turn responds. At the end of a series of questions the risk
assessment is presented to the user. The interaction between the
user and the risk assessment client program includes not just the
ability to respond to questions on the screen, but also provide
means for the user to customize the screen presentation in a manner
consistent with their personal comfort level. A multiplicity of
display modes are available, and the user may choose the display
mode with which they are most comfortable, and during the risk
assessment switch between display mode. Also, the degree of detail
about the previously answered questions and subsequent questions
that are displayed is controlled by the user.
BRIEF DESCRIPTION OF THE DRAWINGS
[0012] The accompanying drawings, which are incorporated in and
constitute a part of the specification, illustrate an embodiment of
the invention, and together with the detailed description of the
embodiments, serve to explain the invention.
[0013] FIG. 1 is a block diagram of an exemplary system in
accordance with a preferred embodiment of the invention.
[0014] FIG. 2 is a block diagram of client program of FIG. 1.
[0015] FIG. 3 is a block diagram of the server program of FIG.
1.
[0016] FIG. 4 is an example of risk assessment decision rule.
[0017] FIG. 5 is a file format for the risk definition file.
[0018] FIG. 6 is an example of the contents of the risk
definition.
[0019] FIG. 7 is a data structure for maintaining information to
administer and display an inverted tree decision rule.
[0020] FIG. 8 is an example of a risk assessment screen showing the
initial display of the risk assessment decision rule in tree
display format.
[0021] FIG. 9 is an example of a risk assessment screen showing a
customized view of the risk assessment tree display.
[0022] FIG. 10 is an example of a risk assessment screen showing
the display in tree display format at the conclusion of a risk
assessment.
[0023] FIG. 11 is an example of a risk assessment screen showing
the display in text display format at the end of a risk
assessment.
[0024] FIG. 12 is a state diagram describing the operation of the
client and server programs.
[0025] FIG. 13 displays the client/server program message
protocols.
[0026] FIG. 14 is a state table describing the operation of the
server program.
[0027] FIG. 15 is a state table describing the operation of the
client program.
DETAILED DESCRIPTION
[0028] References will now be made in detail to embodiments of the
invention, examples of which are illustrated in the accompanying
drawings. Wherever possible, the same reference numbers will be
used throughout the drawings to refer to the same or like
parts.
[0029] A risk assessment may be a set of steps that is used to
assess the risk of an event. The risk assessment may be presented
quantitatively as in the expected number of deaths per 100,000
population, or may be qualitative resulting in an assessment such
as `High risk` of acute myocardial infarction.
[0030] A risktree-client program may refer to a computer program
running on a computer attached to a computer network, and is a
client-node on the computer network. All interactions by the user
to perform the risk assessment take place between the user and the
risktree-client program.
[0031] A risktree-server program may refer to a computer program
running on a computer attached to a computer network, and is a
server-node on the computer network. The risktree-server program
responds to requests from a risktree-client program for the
information to administer a risk assessment by sending all the
information that is required for the risktree-client to administer
the risk assessment.
[0032] A risk definition or risk definition file may refer to the
information that is maintained on the risktree-server, and which
provides sufficient information for the risktree-client to fully
administer a risk assessment.
[0033] This system can accommodate risk assessment decision rules
that follow a complex inverted tree decision structure. An inverted
tree decision structure starts with a single initial question to
which the user may respond. Depending on the user's response, the
risk assessment may terminate with an assessment of the risk or may
proceed to another question to which the user must respond, with
this process continuing until the decision procedure terminates
with sufficient information to calculate and present the risk
assessment. Importantly, each `next` question in the risk
assessment depends only on the response to the previous question,
and different questions may be asked depending on the different
responses to a question.
[0034] In accordance with an embodiment of the invention, a
computer system is provided having an interactive risk assessment
of an event occurring. The system partitions the operation of the
system between a risktree-client program which is the program that
the user interacts with to perform the risk assessment, and a
risktree-server program that stores and provides the risk
definition file that defines the risk assessment. The
risktree-client program administers a risk assessment that is
defined entirely by the information in the risk definition file. In
this exemplary system, all communication between the
risktree-client and risktree-server use a non-persistent network
connection maintained only for the duration of the transaction.
[0035] FIG. 1 is a block diagram of an exemplary system of an
embodiment of the invention. A system 100 of FIG. 1 illustrates the
risktree-client computer 101, the risktree-service computer 102,
and the network interface 103 over which they establish a
connection. In this exemplary system, the network interface
protocol that is used is the industry standard network protocol
TCP/IP.
[0036] FIG. 2. is a block diagram of the risktree-client computer
101. In this exemplary system, the system 200 consists of a
computer monitor 201, a computer 110, a computer mouse 230, and a
computer keyboard 220. The computer 210 includes a memory 213 and a
processor (CPU) 214, a mass storage device 216, and a network
interface card (NIC) 215. Monitor 201, the computer mouse 230, and
computer keyboard 220, are connected to computer 210 in a manner
known to persons of ordinary skill in the art.
[0037] Computer 210 preferably is a Dell OptiPlex XMT, the keyboard
220 is a Dell Quietkey, and monitor 201 a Dell Ultrascan 17XE , all
manufactured by the Dell Corporation of Austin, Tex. The NIC 215,
is an Intel EtherExpress 16, 16-bit ISA ethernet Adapter card
manufactured by the Intel Corporation of Santa Clara, Calif. The
computer mouse 230, is a Microsoft System Mouse, manufactured by
the Microsoft Corporation of Redmond, Wash.
[0038] In this exemplary system, computer 210 is executing under
Microsoft Windows 95. The client program is written in a computer
language called Microsoft Visual Basic using the Microsoft Visual
Basic Version 5.0. This application development tool is from the
Microsoft Corporation of Redmond, Wash. Other systems and
embodiments may use other hardware and software components.
[0039] FIG. 3. is a block diagram of the risktree-server computer
102. In the exemplary system, the system 300 consists of a computer
monitor 301, a computer 310, a computer mouse 330, and a computer
keyboard 320. The computer 310 includes a memory 313 and a
processor (CPU) 314, a mass storage device 316, and a network
interface card (NIC) 315. Monitor 301, the computer mouse 330, and
computer keyboard 320, are connected to computer 310 in a manner
known to persons of ordinary skill in the art.
[0040] Computer 310 preferably is a Dell OptiPlex XMT, the keyboard
320 is a Dell Quietkey, and monitor 301 a Dell Ultrascan 17XE , all
manufactured by the Dell Corporation of Austin, Tex. The NIC 315,
is an Intel EtherExpress 16, 16-bit ISA ethernet Adapter card
manufactured by the Intel Corporation of Santa Clara, Calif. The
computer mouse 330, is a Microsoft System Mouse, manufactured by
the Microsoft Corporation of Redmond, Wash.
[0041] In this exemplary system, computer 310 is executing under
Microsoft Windows NT Server 4.0, and is running the Microsoft
Internet Information Server, both manufactured by the Microsoft
Corporation of Redmond, Wash. Other systems and embodiments may use
other hardware and software components. The risk definition files
are stored on the risk-server and are accessed by the
risktree-client using the industry standard hypertext transport
protocol.
[0042] FIG. 4. is a specific example 400 of a complicated inverted
tree risk assessment decision rule that the system can handle. The
system is not limited to this specific risk assessment, and the
example is only used as it will be useful in explaining the
operation of an embodiment of the invention. This example is taken
from an article `A computer protocol to predict myocardial
infarction in emergency department patients with chest pain`, by L.
Goldman et. al., published in the New England Journal of Medicine,
Volume 318, Number 13, on Mar. 31, 1988, pages 797-803. The article
presents a risk assessment rule for predicting whether a patient
admitted to an emergency room with chest pain has a low or high
risk for the presence of myocardial infarction. It is a complicated
inverted tree decision rule that is difficult to administer without
assistance from some kind of tool.
[0043] The first question in the decision rule 401, asks the
question `ST elevation or Q waves in 2 or more leads, not known to
be old?.` If the answer to this question is Yes 402, then the risk
assessment is over and there is a `Hi` risk 403 that the patient
has had a myocardial infarction. If however, the answer is `No` 404
then the risk assessment proceeds by asking the next question 405
`Chest pain began more than 48 hours ago?.` If the answer to this
question is `Yes` 406, then the risk assessment proceeds to the
question 407 `ST-T changes of ischemia or strain, not known to be
old?` If the response to this question is `No` 408, then the risk
assessment is over and there is a `Lo` risk 409 that the patient
has had a myocardial infarction. If the answer however to question
407 is `Yes` 410, then the risk assessment is terminated by
categorizing the patient as having a `Hi` risk 411 of having had a
myocardial infarction.
[0044] If the answer to question 405 is `No` 412, then the risk
assessment proceeds by asking the question 413 `Prior history of
angina or MI?`, and may proceed through as many as 5 more levels of
questions before arriving at the assessment of risk.
[0045] All subsequent questions in the risk assessment are
operationally evaluated during the process of performing the risk
assessment in a manner analogous to that described above. If the
user has arrived at the bottom of a branch of the risk assessment
tree, then the risk assessment has been completed and the risk can
be evaluated and reported. If the user is not at the bottom of the
tree then the question has to be considered by the user, and a
selection made from the valid responses.
[0046] FIG. 5 shows the data structure 500 of the risk definition
file that describes the risk definition that is maintained on the
risktree-server 300 of FIG. 3. Every risk assessment that can be
defined according to this structure can be displayed and
administered by the risktree-client program. The first eight
records 501 of the risk definition provide information about the
type of risk assessment. All subsequent records 502 after the
eighth record have a similar format and filly describe the content
and structure of the questions and responses for the risk
assessment, and have one record for each node of the decision
rule.
[0047] Record one 511 of the risk definition file provides a
definition of the risk that is to be assessed. The second record
512 provides the authoritative reference for the risk assessment.
Record three 513 is the network location of the risk definition
file, and in the case of this exemplary system is the Uniform
Resource Location (URL) providing the internet address of the risk
definition file. The fourth record 514 provides the maximum depth
of the tree structure. This information is used by the
risktree-client to display and store the risk definition. The fifth
record 515 gives the risk units that will be displayed with the
risk assessment. For instance, if the risk assessment calculates a
mortality value, the risk units might be `per 100,000
population.
[0048] Since risk assessments may pertain to life threatening
decisions or other important decisions, record six 516 and record
seven 517 provide dates that bound a period of time during which it
is valid to use the decision rule. Record six 516 provides a start
date in month-day-year format after which the decision rule may be
used, and record seven 517 provides an end date in month-day-year
format after which the risk assessment should not be used. The
eighth record 518 provides an internet E-mail address as a contact
for further information or questions about the specific risk
assessment.
[0049] Following the eighth record are a set of records called
node-descriptor records 519 that all have the same format and
describe the nodes of the inverted tree structure, the relationship
between the nodes, and the associated risk. There will be one entry
for each node. In the example FIG. 4. 400 of an inverted tree
structure for an assessment of the risk of myocardial infarction
there are 27 boxes. The risk definition file for that risk
assessment would then have 27 node-descriptor records 519. The risk
definition file corresponds to the rule to assess the risk of
myocardial infarction in FIG. 4, and is presented in FIG. 6.
[0050] There are 3 types of nodes in an inverted tree; a start
node, question/response node, and terminal nodes. A start node is
the first question in the risk assessment, and in the case of FIG.
4, is identified with the question 401 `ST elevation or waves in 2
or more leads, not known to be old?` A question/response node is
one that identifies the prior node or immediate predecessor
question, the response to the prior question that leads to the
node, and the new question associated with the node. In the case of
FIG. 4, box 405 is an example of a question/response node with the
arrow 404 indicating the prior question was 401, the response was
`No` 404, and the new question that will be asked 405 is `Chest
pain began more than 48 hours ago?` A terminal node is one that
identifies the prior node or immediate predecessor question, the
response to the prior question that leads to the terminal node, and
the risk assessment. In the case of FIG. 4, box 403 is an example
of a terminal node with the arrow 402 indicating the prior question
was 401, the response was `Yes` 402, and the risk assessment is
`Hi` 403 risk of myocardial infarction.
[0051] There are 12 fields in the node-descriptor 519 that give all
the information necessary to describe each of the types of nodes in
the inverted tree decision structure. Field `NodeID` 520 provides a
unique identifier for the Node. In the exemplary system the NodeIDs
are numbered sequentially top-down and left-to-right starting at
`1`. The NodeID is in character format and the node with NodeID `1`
is always the start node in the risk assessment. Field `PredNode`
521 provides the NodeID 520 of the prior or predecessor node. In
the case of the start node where there is no predecessor, and this
value is blank. Field NodeName 522 provides a unique name for the
risk description node, and is an alternate identifier to that of
the NodeID 520 by which a node may be uniquely identified. Field
`NodeLevel` 523 gives a numeric value for the level of the node.
The level is the number of questions that the user would have to
respond to, in order to reach the current node. The start node is
at Nodelevel `0`. In FIG. 4, the question in the box 405 is at
Nodelevel `1`, the question in the box 407 is at Nodelevel `2`, and
the risk assessment 403 is at NodeLevel `1`.
[0052] The field `NodePos` 524 provides a numeric value with
vertical positioning information that will be used by the
risktree-client program to give a relative position that the
program will use to display the node. Any 2 nodes with the same
value of NodePos will be displayed with the same vertical alignment
by the risktree-client program. The field `NumAbove` 525 provides a
numeric value with the number of predecessor nodes. For an inverted
tree rule this will always have the value of `1`, though for other
types of decision structures that the system can handle, there may
be more than a single path leading to the current node. In the case
of the start node this value is 0. The field `NumBelow` 526 gives a
numeric value with the number of child nodes. In the case of a
terminal node, this value will be `0`.
[0053] The field `Question` 527 gives the text of the question that
will be asked and is a character value of length up to 255
characters. In FIG. 4 the box 405 asks the question `Chest pain
began more than 48 hours ago?`, and this value is found in the
`Question` field 527. The field `NodeLabel` 528 is a character
value of length up to 32 characters and gives the text of the
response associated with the current node. In FIG. 4 one navigates
to the box 405 by answering `No` to the prior question 401, and in
this example it is this value `No` that is found in the `NodeLabel`
field 528. Field `Risk` 529 contains a character representation of
the risk that will be displayed whenever one reaches a terminal
node. In FIG. 4 box 403 is a terminal node associated with `Hi
risk` risk of myocardial infarction, and it is the value `Hi` that
is found in the field `Risk` 529. When displaying the risk for a
terminal node in FIG. 4, the assessed value, in this case `Hi
risk`, is combined with the `Risk units` field `of myocardial
infarction` to provide the risk assessment that is presented to the
user--`Hi risk of myocardial infarction`. The field `YoungestSib`
530 gives the `NodeID` 520 of the lowest numbered NodeID of all
nodes that have the current node as a predecessor, and the field
`OldestSib` 531 gives the `NodeID` 520 of the highest numbered
NodeID of all nodes that have the current node as a predecessor.
These values are used by the risktree-client to display the paths
between nodes.
[0054] In this exemplary system, the fields `NodeLevel`, `NodePos`,
`NumAbove`, `NumBelow`, `YoungestSib` and `OldestSib` are provided
in the risk definition file, but in other systems and embodiments
they may all be calculated from the fields `NodeID`, and
`PredNode`.
[0055] FIG. 6 is a listing 600 of the risk definition for the
example of the risk assessment to predict myocardial infarction in
emergency department patients with chest pain of FIG. 4. It is to
be understood that the risktree-client can display and administer
any risk assessment, not just the assessment of myocardial
infarction in emergency room department patients with chest pain.
In the risk definition file a caret `{circumflex over ( )}` is used
as a delimiter for records and fields, and can never occur as the
content of an entry in the file.
[0056] The first line 601 `Myocardial infarction in Emergency
Department Patients with Chest Pain` is an example of the Record 1
511 of FIG. 5. This information is displayed in the risk assessment
display 810 of FIG. 8. The second line 602 is an example of the
`Source of the decision rule` 512, and gives the journal reference
from which the risk assessment was coded, or it may be some other
authoritative reference for the risk assessment. The third line 603
is an example of the `Network location of risk definition file` 513
and gives the URL of the Internet resource for the myocardial
infarction risk definition file. The fourth line 604 is an example
of the `Max depth of the risk decision tree` 514, showing that for
the myocardial infarction risk assessment the maximum depth of a
risk assessment is 8 levels of questions and responses. The fifth
line 605 is an example of the `Risk units` 515 showing that for the
myocardial infarction risk assessment the risk assessment will be
displayed with the units `of myocardial infarction` appended to the
assessment. The myocardial infarction risk assessment always
results in a decision that the patient has either `High risk` in
which case the risktree-client displays the assessed risk as `High
risk of myocardial infarction`, or `Low risk` in which case the
risktree-client displays the assessed risk as `Low risk of
myocardial infarction.`
[0057] The sixth line 607 and seventh line 608 are examples of the
dates 516 and 517 that bound the period of time during which the
myocardial infarction risk assessment is valid. It shows a start
date `Jan. 1, 1998` before which the risk assessment should not be
used and an end date of `Dec. 31, 1998` after which this risk
assessment should not be used. If the date on which the risk
assessment is being performed is not within these bounds then the
risktree-client will display a message `Risk assessment out of
date` and will not administer the risk assessment. This feature
assures that the risk assessment must be reassessed on a timely
basis. The eighth line 608 is an example of the `E-mail address`
518, and provides a contact point for more information about the
risk assessment. The information in lines 601, 602, 603, 606,607,
and 608 are displayed in a popup risk assessment information box
that the user may access from the risk assessment display screen of
FIG. 8.
[0058] The information in the set of lines 610, correspond to the
entries that fully define the myocardial infarction risk assessment
of FIG. 4. There are 27 lines in the set, one for each of the 27
boxes in FIG. 4, which represent either a start node,
question/response node, or terminal node risk assessment. Each line
of the set follows the structure of the node-descriptor 519. Line
611 is the start node for the myocardial risk assessment, line 612
a question/response node, and line 613 a terminal risk assessment
node. All of the remaining 24 lines of the set 610 are either
question/response nodes or terminal risk assessment nodes.
[0059] Line 611 describes the first question in the myocardial risk
assessment of FIG. 4. There are 12 entries on this line each
delimited by a caret `{circumflex over ( )}` sign, and correspond
to the structure of the node-descriptor 519. The `NodeID` 520 is
`1` and indicates that this is the start node or first question in
the risk assessment. The `PredNode` 521 is `0` and identifies that
the start node does not have a predecessor--it is the start of the
risk assessment procedure. The `NodeName` 522 is `Node1` and is an
alternative unique identifier for the node. The `NodeLevel` 523 is
`0` since this is the first question of the risk assessment and no
questions have yet been answered. The `NodePos` 524 is `11` and
gives the relative vertical position when the node is displayed on
the risk assessment display screen. Any node with a value of
`NodePos` less than `11` will always be displayed to its left; a
node with a value of `NodePos` equal to `11` will always be
displayed under it, and a node with a value of `NodePos` greater
than 11 will be displayed to its right. The `NumAbove` 525 is `0`
since there are no nodes above the start node, and the `NumBelow`
526 is `2` since there are 2 child nodes 405 and 403 of FIG. 4
which are defined by the lines in the risk definition 612 and 613
respectively. The `Question` 527 entry has the full text of the
question for the corresponding node, in this case `ST elevation or
Q waves in 2 or more leads, not known to be old?.` The `NodeLabel`
528 is blank since this is the first node in the risk assessment.
For every other node it would have the full text of the question
that led to this node from the question identified by `PredNode`
522. For instance for 612 the entry for `Nodelabel` is `No`
indicating that this node followed as the answer to the first
question in the risk assessment. The `Risk` 529 is blank since this
is not a terminal node in the risk assessment. For every terminal
node this field will contain the value of the risk assessment. For
instance, for 613 the entry for `Risk` is `High risk`, indicating
that if the user responded to the first question in the risk
assessment by choosing the response `Yes`, then the risk assessment
would be finished and the patient would be categorized as having a
`High risk of myocardial infarction.` The `YoungestSib` 530 and
`OldestSib` 531 entries are `1` and `1` respectively because this
is the first node in the risk assessment. For 612 the `YoungestSib`
and `OldestSib` values are `2` and `3` indicating the range of
`NodeID's that identify all nodes that are responses to the same
question--in this case that the nodes identified with NodeIDs `2`
and `3` are both responses to the same question in the risk
assessment. The `YoungestSib` and `OldestSib` entries for 613 are
the same as for 612, since both identify nodes that are responses
to the same question.
[0060] FIG. 7 shows the structure 700 of the risktree data
structure that is used by the risktree-client to display and
administer the risk assessment. This data structure is saved in the
computer memory and is specific for each risk definition. In this
exemplary system, the risktree data structure is stored as a
collection object. For the example of the myocardial infarction
risk assessment of FIG. 4, there are 27 entries in the collection,
one for each of the nodes of the myocardial infarction risk
assessment decision tree.
[0061] The first 12 fields of the risktree data structure, `NodeID`
710, `PredNode` 711, `NodeName` 712, `NodeLevel` 713, `NodePos`
714, `NumAbove` 715, `NumBelow` 716, `Question` 717, `NodeLabel`
718, `Risk` 719, `YoungestSib` 720, and `OldestSib` 721' have
exactly the same definition as the first 12 fields 520-531 in the
definition of the node-descriptor 519 for FIG. 5. The values for
these fields are taken directly from the risk definition files and
saved in the collection. In the example of the myocardial risk
assessment of FIG. 4, the nodes in the decision tree, which are
coded as 27 separate records 610 in the risk definition file of
FIG. 6, are saved in the risktree data structure as 27 elements in
the collection.
[0062] The remaining 8 fields of the risktree data structure are
calculated and provide the information that is needed to display
the nodes of the tree in `Tree` display mode. Field `Display` 740
is a boolean field that determines whether a node will be
displayed. In this exemplary system, the nodes that are displayed
depend on the level of the current question and the number of
levels above and below the current question that are to be
displayed. For instance if the risk assessment is at the first
question (level=0), and the user has chosen to display 3 levels
below the current question, then all nodes that have a `NodeLevel`
values of 0, 1, 2, and 3 will be displayed, and any values with a
`NodeLevel` with a value greater than `3` will not be displayed. In
this case, the boolean field `Display` will be set to `True` for
each node that is to be displayed and to `False` for each node that
is not to be displayed. As another example, if the current question
is a node that is at level 3 of the risk assessment decision tree,
and the number of levels to be displayed above the current question
is set to `1`, and the number of levels to be displayed below the
current question is set to `1`, then just the nodes that have a
`NodeLevel` value or 2, 3, or 4 will have their `Display` value set
to true. The values of `Display` are recalculated just prior to
every redrawing of the risk assessment decision tree on the display
monitor. The display is redrawn whenever a response is selected to
a question, or a change is made to either of the values for number
of levels above or below the current node that are to be
displayed.
[0063] For each node, the fields `BtnLeft` 741, `BtnTop` 742,
`BtnWidth` 743, and `BtnHeight` 744 provide the top left, top width
and height of the rectangle that is used to display the associated
node on the display monitor. These values are recalculated just
prior to every redrawing of the risk assessment decision tree on
the display monitor. The values are calculated by taking into
account the size of the display area and the nodes that are to be
displayed. If the number of levels that are to be displayed is
given by `nLevel`, the lowest value for a level that is to be
displayed is given by the value `lLevel`, and the height of the
display area is given by `DisplayHeight`, then the height of the
node rectangle `BtnHeight` value is calculated as
`DisplayHeight`/(2*nLevel). The `BtnTop` value is calculated as
`BtnHeight`/2+2*`BtnHeight`*(`NodeLev- el`-lLevel).
[0064] By scanning the nodes for all levels that are to be
displayed we can find the smallest and largest of the values of
`NodePos`, the vertical positioning of the nodes to be displayed.
These are denoted as `smallPos` and `largePos` respectively, and
then calculate the value `nPos`=`largePos`-`smallPos`+1. If the
width of the display area is given by `DisplayWidth`, then the
width of the node rectangle `BtnWidth` is calculated as
`DisplayWidth`/(2*nPos). The `BtnLeft` value is calculated as
`BtnWidth`/2+2*`BtnWidth`*(`NodePos`-`smallPos`). These values are
also recalculated just prior to every redrawing of the risk
assessment decision tree on the display monitor.
[0065] For each node, the fields `BtnMidPnt` 745 is calculated.
This is the x-coordinate of the vertical line that is drawn above a
node to show the user what question came prior to the current
question, and the x-coordinate of the vertical line that is drawn
below a node to show the user what question(s) follow a response to
the current question. The value for `BtnMidPnt` is calculated as
(`BtnWidth`+`Btnleft`)/2, and is recalculated just prior to every
redrawing of the risk assessment decision tree on the display
monitor.
[0066] For each node, the fields `TextLeft` 746, and `TextTop` 747
provide the top left and top respectively of the text of the
response that is displayed on the display monitor. The response is
positioned just above and to the left of the center of the
rectangle displaying the node. The values are calculated by as
`TextLeft`=`BtnMidPnt`+50, and `TextTop`=`BtnTop`-25. The value is
recalculated just prior to every redrawing of the risk assessment
decision tree on the display monitor.
[0067] These values 741-747 provide sufficient information to
redraw all the lines connecting the nodes in a `Tree` display.
[0068] FIG. 8 shows the main display 800 of the risktree-client at
the beginning of the assessment for the risk of myocardial
infarction in emergency department patients with chest pain, that
was given in FIG. 4 The display shows the screen of the computer
monitor 201 of the risktree-client 200. In this case the current
question is the first question in the risk assessment.
[0069] A title box 810 at the top of the computer monitor of the
risktree-client identifies the type of risk that is being assessed;
`Myocardial Infarction in Emergency Department Patients with Chest
Pain` as given in record 1 of the risk definition file. Three
questions 811, 812, 813 are displayed on the screen. The question
associated with the start node 811 `ST elevation or Q waves in 2 or
more leads, not known to be old?` is at the top of the screen. The
node 812 `Chest pain began more than 48 hours ago?` is a child node
of question 821 associated with the response `No`, and node 813 `Hi
risk` is a terminal node of question 821 associated with the
response `Yes`. The question buttons 811 and 812 are shaded darker
than the terminal node 813 so they may be more readily
distinguished. The question 811 is highlighted with a darker border
to indicate to the user that it is the current question.
[0070] The lines 820 connect the nodes and clearly show the
relationship between the questions displayed on the screen.
Question 821 has no line above it indicating that it is a start
node. The line 821 leads from question 812 and appears to go right
off the screen, indicating that there are more questions below that
have not been displayed. That question 813 does not have a line
leading down to another question indicating that it is a terminal
node.
[0071] The small boxes 831 and 832 are associated with the
responses `No` 835 and `Yes` 836 respectively to question 811. The
screen cursor 840 is pointing directly at the small box and the
boxed text `No` 841 is a popup tooltip text that may contain a more
complete description of response `No` 831 to the associated
question. This tooltip 841 text is only visible when the cursor is
pointing directly in the small box response area.
[0072] Along the left edge of the screen are two icons. The
`Restart` icon 861 will be used to restart the risk evaluation over
at the start node, and the `switch Display Context` icon 862 is
used to switch the risk evaluation to `Text` display, but
maintaining the same position in the risk assessment.
[0073] Along the right edge of the screen are 4 icons which control
the display of the risk tree. The 2 icons near the top right
border, control the number of levels above the current node that
are displayed. Icon 871 will increase by `1` the number of levels
above the current node that are to be displayed, while icon 872
will decrease by `1` the number of levels above the current node
that are to be displayed. The current value for the number of
levels above the current icon that is to be displayed is itself
displayed 873 and cannot have a value less than `0`. The 2 icons
near the bottom right border, control the number of levels below
the current node that are displayed. Icon 876 will increase by 1
the number of levels below the current node that are displayed,
while icon 877 will decrease by 1 the number of levels below the
current node that are to be displayed. The current value for the
number of levels below the current icon that are to be displayed is
itself displayed 878 and cannot have a value less than `1`.
[0074] The user interacts with the risk assessment displayed on the
screen using a mouse, touchscreen or other pointing device. If the
user points and clicks the mouse at the `Restart` icon 861, then
the display will be redrawn to the original display with the start
node as the current node. If the user points and clicks the mouse
at the `switch Display Context` icon 862 then the display will
switch to `Text` mode if it is in `Tree ` mode and `Tree` mode if
it is in `Text` mode. An example of a risk assessment screen in
`Text` mode is given in FIG. 11.
[0075] If the user points the mouse on any of the boxes 811, 812,
or 813 then the text associated with the box is displayed as a
popup tooltip text. For instance, if the user points the mouse at
box 811, then the popup tooltip text will display the full text of
the question in box 811. This is necessary in cases where because
of the number of risk assessment questions that are displayed the
fill text of the question cannot be displayed in the text box. An
example of this is given in FIG. 9. If the user points at the small
response boxes 831, 832 then the associated response is displayed
in a popup tooltip text, and is also necessary for large trees
where the response cannot be fully displayed on the screen. Tooltip
text 841 is an example of response tooltip text when the user
points the mouse cursor in response box 831.
[0076] If the user points and clicks the mouse at question 812 or
at response box 831 then the user is selecting `No` 835 as the
response to the current question 811. This action will cause the
risktree-client to redraw the risk assessment display, identifying
question 812 as the current question and using a heavier width line
to draw the line between questions 811 to 812 to indicate the
question/response path clearly to the user.
[0077] If the user points and clicks the mouse at icon 871 then the
number of levels to be displayed above the current question will be
increased by `1`, the new value displayed 873, and the risk display
redrawn to reflect the new value. If the user points and clicks the
mouse at icon 872, and the number of levels to be displayed above
the current question is greater than `0`, then the number of levels
to be displayed above the current question will be decreased by
`1`, and the new value displayed 873, and the risk display redrawn
to reflect the new value. Similar actions will ensue if one points
and clicks at the icons controlling the number of levels that will
be displayed below the current node. If the user points and clicks
the mouse at icon 878 then the number of levels to be displayed
below the current question will be increased by `1`, the new value
displayed 878, and the risk display redrawn to reflect the new
value. If the user points and clicks the mouse at icon 877, and the
number of levels to be displayed below the current question is
greater than `1`, then the number of levels to be displayed below
the current question will be decreased by `1`, and the new value
displayed 878, and the risk display redrawn to reflect the new
value.
[0078] The set of responses from which a user may choose, are
limited to those responses to the current question. If the user
points and clicks at any other response, a message box `Invalid
selection` is displayed. The user may point and click at any prior
question in the tree to deselect their prior response. The set of
question boxes that the user may return to is limited to those
questions that they have already responded to and are clearly
indicated by their connection with a heavier weight line. If the
user points and clicks at any other question box in the display
then a message box `Invalid selection` is displayed.
[0079] Not shown on FIG. 8 is the popup risk assessment information
box. If the user of the risk assessment points and clicks the mouse
at any place on the display, and clicks with the right mouse
button, then a risk assessment information box is displayed. The
popup risk assessment information box displays information about
the risk assessment and includes the `Definition of the risk to be
assessed` 511, `source of the risk decision rule` 512, `Network
location of risk definition file` 513, `E-mail address` 518, and
the date range 516, 517 that the risk assessment is valid.
[0080] FIG. 9 shows the main display 900 of the risktree-client at
the beginning of the assessment for the risk of myocardial
infarction in emergency department patients with chest pain. The
risk assessment is still at the first questions as in FIG. 8, but
the number of levels to be displayed below the current question has
been set to 8, through the use of the icon 910, resulting in a
display of the entire risk assessment tree. The user interaction
with the display operates the same as described for FIG. 8. The
question boxes 940 is now too small to display the text of the
question, so the user may see the fill text by pointing the mouse
950 at the question box and the popup tooltip text 960 is displayed
with the text of the full question.
[0081] FIG. 10 shows the main display 1000 of the risktree-client
after the user has responded to four questions in the risk
assessment. The `Tree` display mode still has the same
functionality described in FIG. 8. This display has the number of
levels displayed above the current question set to `5` 1001 and the
number of levels displayed below the current question set to `1`
1002. The current node 1010 has a highlighted border to make it
easier to distinguish. Note that the lines 1021 are darker than the
lines 1022. The heavier weight lines show the user clearly the path
that they have taken through the tree to get to the current stage
of the interactive risk assessment.
[0082] In this example the user has responded to the first question
1031 with a `No` 1041; responded to question 1032 with a `No` 1042;
responded to question 1033 with a `Yes` 1043, and responded to
question 1034 with a `Yes` 1044. This takes the user to the end of
the risk assessment at terminal node 1010, and the risk assessment
is displayed in a popup risk box 1050 which displays the result of
the risk assessment `High risk of myocardial infarction` on the
display monitor. When the user responds to the `OK` button 1055,
the risk assessment is redisplayed at the beginning of the risk
assessment as seen in FIG. 8.
[0083] FIG. 11 shows the main display 1100 of the risktree-client
if the user had chosen to perform the risk assessment in `Text`
mode. The display mode `Text` is chosen when the main display is in
`Tree` display mode by pointing and clicking at the `Change Display
Mode` icon 867 of FIG. 8. The display mode `Tree` is chosen when
the main display is in `Text` display mode by pointing and clicking
at the `Change Display Mode` icon 1101 of FIG. 11. In each case,
selecting the `Change Display Mode` icon causes the display mode to
be toggled to the other setting, and the risk assessment display to
be redrawn in the new setting. The risk assessment display of FIG.
11 corresponds to the same stage of the risk assessment as is
displayed in FIG. 10; i.e. both risk assessments have selected the
same responses to all questions.
[0084] A tide box 1102 at the top of the computer monitor of the
risktree-client identifies the type of risk that is being assessed;
`Myocardial Infarction in Emergency Department Patients with Chest
Pain` as given in record 1 of the risk definition file. Along the
left edge of the screen are two icons. The `Restart` icon 1105 will
be used to restart the risk evaluation over at the start node, and
the `switch Display Context` icon 1102 is used to switch the risk
evaluation to `Tree` display mode, but maintaining the same
position in the risk assessment.
[0085] In this example the user has responded to the first question
1120, `ST elevation or Q waves in 2 or more leads, not known to be
old` with a `No` 1130; responded to question 1121 `Chest pain began
more than 48 hours ago?` with a `No` 1131; responded to question
1122 `Prior history of angina or MI?` with a `Yes` 1132, and
responded to question 1123 `ST-T changes of ischemia or strain, not
known to be old?` with a `Yes` 1133. This takes the user to the end
of the risk assessment, and the risk assessment is displayed in the
risk assessment text box 1140 at the bottom of the screen which
displays the result of the risk assessment `High risk of myocardial
infarction` on the display monitor.
[0086] The program displays the user's response to a question by
shading the circle just to the left of the response. The response
to question 1120 `No` 1130 was shaded when the user selected that
response, while the `Yes` response 1135 to question 1120 is left
unshaded.
[0087] The `Text` display mode does not display the tree structure.
Rather, it starts off by displaying only the first question and the
set of valid response. The valid responses are drawn without any
shading indicating that it is the current question and that no
choice has been made. The user may point and click at either of the
valid responses to select that response. In FIG. 11 the valid
responses to the first question 1120 `ST elevation or Q waves in 2
or more leads, not known to be old` are `Yes` 1135, and `No` 1130.
Selecting a response has the effect of redrawing the risk
assessment screen with the selected response shaded and either
adding the next question and its set of valid responses to the
display, or if the risk assessment has reached a terminal node,
displaying the risk assessment in the risk assessment text box
1140.
[0088] Along the right edge of the screen is a single `Prior
Question` icon 1108. Pointing and clicking the mouse at this icon
deselects the last response in the risk assessment and redraws the
display. In the case of FIG. 11, the answer `Yes` 1133 to the
question `ST-T changes of ischemia or strain, not known to be old?`
will be deselected and the display screen redrawn without the
response shading. The user may also deselect prior responses, and
return to any prior question by pointing and clicking at any
displayed question 1120, 1121, 1122, or 1123, in which case the
risk assessment screen will be redisplayed showing the selected
question, all prior questions and their responses, and with none of
the responses to the selected question shaded.
[0089] FIG. 12 is a state diagram 1200 showing the state machines
describing the (1) operation of each of the risktree-client, (2)
risktree-server, and (3) messaging interface between the components
of the system. State tables that provide details of the operation
of the risktree-client, and risktree-server are presented in FIG.
14, and 15, respectively, and details of the message protocols in
FIG. 13.
[0090] FIG. 12 has 3 separate regions. The region labeled
risktree-client 1210 shows the state machine for the operation of
the risktree-client; the region labeled risktree-server 1229 shows
the state machine for the operation of the risktree-server; and the
region labeled `NetworkMessage FIG. 13` 1230 is the network message
interface between the risktree-client and the risktree-server and
is described in detail in FIG. 13. The state machine diagrams show
the different states of the program, and the actions which cause
them to change state. Arrows pointing to-and-from the
NetworkMessage regions show the interprocess communication over the
network between the different components of the system, and in
particular show which states may send/receive network messages.
[0091] The risktree-client state machine 1210 has 7 states. In the
state `START` the program is started and after initialization of
program variables transfers to the state `IDLE`. In state `IDLE`
the risktree client waits for a request from the user. If the
requested action is to end the risk assessment, then the program
transitions to the `END` state and halts execution. If the
requested action is to get a risk definition then the program
checks for the validity of the URL that specifies the risk
definition and if it is valid, transitions to the state
`GET_RISDKDEF` to start the processing to retrieve and parse the
risk definition. If it is an invalid URL then display the message
`Illegal name` and wait in the state `IDLE` for another
request.
[0092] The risk definition file is specified by a URL which gives
the location, either local or on the network for the risk
definition. State `GET_RISKDEF` first checks to see if there is a
copy of the risk assessment on the local machine. If there is copy
of the risk definition file on the local machine, then the file is
retrieved and the program transitions to the state `PARSE_RISKDEF`
to continue processing. If there is not a copy of the risk
definition file on the local machine then (1) format a request for
the risk assessment (2) connect with the risktree-server (3)
request the risk definition (4) wait and retrieve the response from
the risktree-server, and (5) disconnect with the server. If the
response is a risk definition then transition to the state
`PARSE_RISKDEF`, but if the response is an error message then
display the error message and transition to the `IDLE` state. All
network communication for the risktree-client is performed in the
state `GET_RISKDEF`.
[0093] State `PARSE_RISKDEF` parses the risk definition file, saves
all the fields 511-518 in the risk definition file in variables in
the program, as well as the node-descriptor variables for each node
in the risk definition node tree. The maximum depth of the risk
assessment is also set and saved. If there is an error during the
parsing then display the error message `Error in Parse` and
transition to the state `IDLE`, else transition to the state `INIT`
to continue processing.
[0094] In the state `INIT` several variables are initialized that
will be required during each risk assessment session. This includes
setting the display mode to `Tree` and setting the current question
to the first question in the risk assessment. After this
initialization is performed the program transition to state
`ADMIN_RISK` to administer the risk assessment to the user.
[0095] IN the state `ADMIN_RISK` there are 3 types of actions that
cause the program to transfer to another state. The user may
request that the risk assessment be restarted in which case the
program transfers to the state `INIT` to reinitialize the risk
assessment to its initial state. The user may choose to end the
risktree-client, in which case the program transitions to the state
`END` and the program terminates execution, or the user may request
that a new risk assessment be administered in which case the
program transitions to the state `IDLE` so the program can acquire
the risk definition file for the new risk assessment. All other
actions in the `ADMIN_RISK` state result in the program remaining
in the state `ADMIN-RISK`, and relate to the interactions between
the user and the risktree-client as the user responds to questions
and chooses different customization options to assist them in the
risk assessment. The details of these actions will be described in
FIG. 15.
[0096] The risktree-server state machine 1210 has 5 states. In the
state `START` the program is started and after initialization of
program variables transfers to the state `IDLE`. In state `IDLE`
the risktree-server waits for a request for service. The request
may be an operator request to terminate the risktree-server in
which case the program transitions to the state `END` and
terminates execution, or the request may be a network request
message. If the request is a network request then a connection is
established with the requesting program and the request message is
parsed. If the request is for an available risk definition then the
program transitions to the state `SEND_RISKDEF` to retrieve and
send the file, and then terminates the connection and transitions
back to the state `IDLE` to await another request. Any other
request will cause the risktree-server to transition to the state
`SEND_ERROR` to send an error message, and then terminate the
connection and transition back to the state `IDLE to await another
request.
[0097] There are three types of network messages 1230 that are used
to communicate between the client and server portions of the
system. All communication on the client side is performed in the
state `GET_RISKDEF` which sends a request for a file and receives
the response. The communication on the server side is performed in
the `IDLE` state that receives requests, and the `SEND_RISKDEF` and
`SEND_ERROR` state the process and fulfill the request. The network
messages are described in further detail in FIG. 13.
[0098] This exemplary embodiment uses an industry standard ethernet
and an industry standard TCP/IP network protocol for its computer
network. A conversation between the risktree-client and the
risktree-server is implemented by establishing a connection between
the computers over the computer network. To minimize computer
resources to maintain the connection between the risktree-server
and the risktree-client, this exemplary system uses a
non-persistent network connection; i.e., a network connection is
established between the interview-client and the interview-server
only for the length of time necessary to perform a specific
transaction. In the exemplary system the connection is implemented
using the industry standard hypertext transport protocol (http). In
other systems and embodiments the non-persistent connection may be
implemented using another industry standard protocol, or a special
protocol may be implemented specifically to address the operation
of the risk assessment. If either the risktree-client or the
risktree-server program terminates their connection with the other
program, either by design or another reason, such as a network
outage, the other program also terminates its connection state.
[0099] FIG. 13 is a diagram 1300 of the network message protocols
for communications between the risktree-client and the
risktree-server. It shows the risktree-client states on the left
side of the figure and the risktree-server states on the right hand
side of the figure. The messages that are sent from each state of
the risktree-client and their response from the risktree-server are
indicated on the diagram.
[0100] From state `GET_RISKDEF` a request may be made to the
risktree-server for a specific risk definition that the
risktree-server maintains. After the request is sent the
risktree-client waits in the state `GET_RISKDEF` to receive the
response from the risktree-server.
[0101] The risktree-server responds by establishing the connection,
retrieving and parsing the message. If the message is valid and the
risk definition is available then the risktree-server transitions
to state `SEND_RISKDEF` and sends the risk definition file to the
risktree-client.
[0102] If the message is not valid, or the message is valid but the
risk definition is not available, for whatever reason, then the
risktree-server transitions to the state `SEND_ERROR` and sends the
error message to the risktree-client. After the risktree-client
receives the risk definition or an error message from the
risktree-server, the risktree-client terminates the connection with
the risktree-server.
[0103] FIG. 14 is a diagram 1400 with a state table describing the
operation of the risktree-server program. Upon initialization of
the risktree-server it enters the START state 1401, performs
initialization, and transitions to the IDLE state 1402.
[0104] In the IDLE state 1402, the server waits for a request for a
connection from a risktree-client. When a request for a connection
is received the risktree-client establishes the connection with the
risktree-client. If the request is for a risk assessment
definition, then the program transitions to the state SEND_RISKDEF
1403 to fulfill the request. All other request messages are invalid
and the program transitions to the state SEND_ERROR 1404 to send an
error message.
[0105] Termination of the risktree-server occurs in response to a
system or operator request to terminate the execution of the
risktree-server program. During the IDLE state 1402, the
risktree-server can receive a system or operator request to
terminate the risktree-server processing, in which case the program
transitions to the state END 1405, performs shut-down processing,
and terminates the execution of the risktree-server program.
[0106] State SEND_RISKDEF 1403 is used to process a request for a
risk assessment definition. When the program enters this state, a
connection is already established with the risktree-client. The
risktree-server program parses the name of the risk assessment
definition that has been requested, and checks for the availabity
of the risk assessment definition. If the risk assessment
definition is available then it retrieves the file, and transmits
this file to the risktree-client program using the industry
standard hypertext transport protocol. At the successful completion
of the transmission, the connection is terminated by the
risktree-server, and the program transitions back to the state IDLE
1402 to await the next service request. If the risk definition is
not available, then the risktree-server transitions to the state
`SEND_ERROR` 1404.
[0107] State `SEND_ERROR` 1404 is used to indicate that no risk
assessment definition can be provided by the risktree-server. The
risktree-server formats a one line error response message "ERROR-NO
RISK DEFINITION" and transmits the response to the risktree-client
program using the industry standard hypertext transport protocol.
At the successful completion of the transmission, the connection is
terminated by the risktree-server, and the program transitions back
to the state IDLE 1402, to await the next service request.
[0108] State `END` 1405 stops the execution of the risktree-server
program.
[0109] FIG. 15 is a diagram 1500 with a state table describing the
operation of the risktree-server program. Upon initialization of
the risktree-server it enters the START state 1510, performs
initialization, and transitions to the IDLE state 1520.
[0110] In the `IDLE` state 1520, the risktree-client program waits
for a user requested action. The user may either request that the
program be terminated in which case the program transitions to
state `END` for termination processing or the user may request that
a risk assessment be performed by specifying the URL of the risk
definition that is to be administered. The program then validates
the URL of the risk definition. If the URL is a valid resource,
then the program transitions to the state `GET_RISKDEF` to continue
processing. If the URL is invalid then the program displays the
error message `Invalid name` and continues in the `IDLE` state.
[0111] In the `GET_RISKDEF` state 1530, the risktree-client program
first parses the name of the risk definition file from the URL and
checks to see if there is a copy of the risk definition file on the
client machine. If there is then retrieve it and transition to the
state `PARSE_RISKDEF` 1540. If the risk definition is not resident
on the client machine, then (1) format the network request for the
risk definition file (2) connect with the risktree-server (3)
request the risk assessment from the risktree-server, and (4) wait
for a response. When the response is received from the
risktree-server check to see if it is an error message, and if it
is then display the error `No risk definition` to the user and
transition to the state `IDLE`. If the response is the risk
definition file then store it, and transition to the state
`PARSE_RISKDEF` 1550.
[0112] In the state `PARSE_RISKDEF` 1550 parse the risk definition.
If during parsing an error is encountered, then display the error
message `Risk definition error` and transition to the state `IDLE`
1520. If the parse is completed without error, then the values from
the parsing will have been saved in risktree-client program memory,
and will include all the information in the risk definition
structure of FIG. 5, which is saved in the internal data structure
described in FIG. 7. Then the program will transition to the `INIT`
state 1550, to initialize the risk assessment interactive
program.
[0113] In the state `INIT` 1550, the risktree-client is initialized
to the first question in the risk assessment, the risk assessment
displayed to the user, and the interface enabled to accept user
input from the mouse pointing device. The display mode is set to
`Tree` indicating that the initial display mode is `Tree` mode, and
the currentQuestion is set to the `NodeID` 710 of the first node in
the risk assessment decision tree. The value for the number of
levels to be shown above and below the current question are both
set to `1`, and then the risk assessment is displayed to the user.
Then transition to the state `ADMIN_RISK` to begin the interactive
self administered risk assessment.
[0114] State `ADMIN_RISK` 1560 administers the risk assessment to
the user. The program waits until the user interacts with the
interactive risk assessment by pointing and clicking with the mouse
pointing device 230, performs the requested action, and continues
processing. The user can choose to restart the risk assessment by
using the mouse to point and click at the `Restart` icon (861 in
`Tree` mode` and 1105 in `Text mode). This will cause the program
to immediately terminate the current risk assessment and transfer
to the state `INIT` 1550 to reinitialize and restart the risk
assessment. The user can choose to terminate the risk assessment
program in either `Tree` or `Text` display mode, by using the right
mouse button to bring up a context sensitive popup menu and
choosing the `EXIT` option. This will cause the program to
immediately terminate the current risk assessment and transfer to
the state `END` 1590 to terminate the execution of the
risktree-client program.
[0115] In `Tree` display mode, the user controls the number of
levels above and below the current question that are displayed. The
user can choose to `Increase levels shown above` 1574, by pointing
and clicking the mouse at the `Increase levels above` icon 871,
which causes the program to check if the current value is less than
the maximum number of levels and if it is then increase it by `1`,
redraw the risk assessment screen to reflect the new value, and
continue processing in the state `ADMIN_RISK`. The user can choose
to `Decrease levels shown above` 1575, by pointing and clicking the
mouse at the `Decrease levels above` icon 872, which causes the
program to check if the current value is greater than `1`, and if
it is then decrease the parameter by `1`, redraw the risk
assessment screen to reflect the new value, and continue processing
in the state `ADMIN_RISK`. The user can choose to `Increase levels
shown below` 1576, by pointing and clicking the mouse at the
`Increase levels below` icon 877, which causes the program to check
if the current value is less than the maximum number of levels and
if it is then increase it by `1`, redraw the risk assessment screen
to reflect the new value, and continue processing in the state
`ADMIN_RISK`. The user can choose to `Decrease levels shown below`
1577, by pointing and clicking the mouse at the `Decrease levels
below` icon 876, which causes the program to check if the current
value is greater than `1`, and if it is then decrease the parameter
by `1`, redraw the risk assessment screen to reflect the new value,
and continue processing in the state `ADMIN_RISK`.
[0116] The user can choose to `Change display mode` 1578, by
pointing and clicking at the `Toggle display` icon (`Tree` display
mode 867, `Text` display mode 1101). If the display is in `Tree`
mode then the display is redrawn in `Text` mode and the processing
continues in the state `ADMIN_RISK`. If the display is in `Text`
mode then the display is redrawn in `Tree` mode and the processing
continues in the state `ADMIN_RISK`. In `Text` display mode the
user can choose the action `Prior question` 1579, by pointing and
clicking the mouse pointer on the prior question icon 1108 causing
the risk assessment display to be redrawn in `Text` display mode,
with the prior question as designated as the current question, and
then continuing the processing in the state `ADMIN_RISK`.
[0117] In `Tree` display mode, the action `MouseOver Question` icon
1580 is initiated whenever the user moves the position of the mouse
950 over a `Question` icon 940, causing the full text of the
question to be displayed in a popup text box, and which disappears
when the mouse pointer is moved out of the text box.
[0118] Also in `Tree` display mode, the action `MouseOver Response`
icon 1581 is initiated whenever the user moves the position of the
mouse 840 over a `Response` icon 831, causing the full text of the
response to be displayed in a popup text box, and which disappears
when the mouse pointer is moved. In either case the processing
continues in the state `ADMIN_RISK`.
[0119] The user can choose to answer a risk assessment question
1582 by pointing and clicking the mouse (1) on a response icon, or
(2) at a question icon, which causes the selection of the
associated response icon. If the chosen answer is not in a branch
of the current question then display the error message `Illegal
choice`, and continue processing in the state `ADMIN_RISK`. If the
chosen answer is in the branch of the tree of the current question
and the level of the selected response is less than the level of
the current question, then reset the current question, redisplay
the risk assessment, and continue processing in the state
`ADMIN_RISK`. If the chosen answer is in the branch of the tree of
the current question and the level of the selected response is more
than `1` greater than the level of the current question, indicating
the user has skipped a question, then display the error message
`Illegal choice`, and continue processing in the state
`ADMIN_RISK`. In all other cases, set the current question to the
question associated with the selected response. If the current
question is a terminal node of the risk assessment then display the
estimated risk assessment and continue processing by reinitializing
the risk assessment in the state `IDLE`, but if it is not a
terminal node the, display the risk assessment in the current
display mode and continue processing in the state `ADMIN_RISK`.
[0120] The user can choose to run a `New assessment` 1584, in
either `Tree` or `Text` display mode, by using the right mouse
button to bring up a context sensitive popup menu and choosing the
`NEW` option. This will cause the program to immediately terminate
the current risk assessment and transfer to the state `IDLE` 1520
so the user may specify another type of risk assessment to be
administered by the risktree-client program. Another action, in
either `Tree` or `Text display mode, that the user can initiate is
to view the additional `Information `1585` that is provided in the
risk definition file about the risk assessment. This includes the
source of the risk decision rule 512, network location of the risk
definition file 513, date range during which the risk assessment is
valid (516, 517), and an E-mail contact address 518. This
information is accessed by the user by using the right mouse button
to bring up a context sensitive popup menu and choosing the `HELP`
option. This will cause the program to display this information on
the screen with a screen button with the label `Okay` that when
depressed will remove the information screen from the display
monitor, and continue processing in the state `ADMIN_RISK`.
[0121] In the `END` state 1590, the risktree-client terminates
execution of the risktree-client program.
[0122] Other exemplary systems and embodiments of the invention may
use the same principles to implement a system to perform a self
administered interactive risk assessment. In an embodiment there
may be customization options to control the amount of information
that is displayed and the manner in which the risk assessment is
presented. This can be further enhanced with other customization
options that further assist the user to understand and operate the
risk assessment, and other display formats. Also other kinds of
information may be made available to give further explanations of
the questions and responses.
[0123] In other embodiments there may be other means to calculate
the risk. In the exemplary system described above, a risk value is
associated with each terminal node. Other means to calculate the
risk might include summing values based on the response to each
question, and translating that value into a risk when a terminal
node is reached.
[0124] In other exemplary systems and embodiments the risk
assessment decision procedure may follow formats other than that of
an inverted tree. Decision structures in which the sequence of
questions is entirely predetermined and not dependent upon the
response to the prior question, or structures in which responses to
different questions can lead to the same question may be
accommodated by the system.
[0125] In still other embodiments the structure of the risk
definition file may be extended to include other decision
algorithms that may not be able to be coded by the current
scheme.
[0126] In still other embodiments, the system may be used to assign
group membership. The risk assessment process of answering
questions until a terminal node is reached and a risk assigned is
one of deciding that a person belongs in a group based on their
responses to questions, and then giving a risk of occurrence of an
event associated with membership in that group. The system could be
used equally well if the decision at a terminal node is to assign
the person to a group without necessity of inferring a risk
value.
[0127] Other embodiments will be apparent to those skilled in the
art from consideration of the specification and practice of the
invention disclosed herein. It is intended that the specification
and examples be considered as exemplary only, with a true scope of
the invention being indicated by the following claims.
* * * * *