# Patent

## Title
Methods and systems for utilizing prediction models in healthcare

## Abstract

A method for providing decision support includes using a programmed computer to input a regression model specification, and to repeat the input a plurality of times to obtain and store a plurality of regression model specifications. The method further includes using the programmed computer to analyze selected regression model specifications to determine at least one of common variables and functions of common variables, to thereby determine a reduced-redundancy request for input of variables, when a plurality of the stored regression model specifications are selected for use.

## Background
INCORPORATION BY REFERENCE TO ANY PRIORITY APPLICATIONS
Any and all applications for which a foreign or domestic priority claim is identified in the Application Data Sheet as filed with the present application are hereby incorporated by reference under 37 CFR 1.57.
BACKGROUND OF THE INVENTION
Field of the Invention
This invention relates generally to methods and apparatus for providing statistical estimates useful for decision support, including computer networks and software configured to provide such decision support. The methods and apparatus described herein are particularly useful for providing information to health care providers and medical patients, but are not limited to such environments and can be used in a wide variety of fields in which regression analysis or statistical modeling is used as a decision support tool.
This application hereby incorporates by reference in its entirety another application filed on Mar. 6, 2006 by the same inventors as PCT/US06/07849 and entitled “Systems and Methods for Risk Stratification of Patient Populations.”
Description of the Related Art
The past decade of health services research has witnessed an explosion of prognostic models to help physicians understand the risks and benefits of proposed medical therapies. However, the application of such models to clinical practice has been limited by both their complexity and the lack of a practical mechanism for making them available at the time of medical decision-making.
The emergence of the internet and mobile computing devices has created new opportunities for researchers in the health care field to translate their evidence-based predictive models into clinical decision aids. However, a number of barriers continue to prevent researchers from taking advantage of these technologies, including: (1) a requisite expertise in a computer programming language or application development environment; (2) the challenge of creating a system that can adapt to a broad range of clinical practice settings, each with unique device and workflow constraints; (3) the need for a sustainable mechanism for updating predictive models and deploying revisions in a timely fashion; and (4) the difficulty of integrating with existing IT infrastructures and disparate clinical information systems.
Furthermore, both the patient and the attending health care professional should be involved in making clinical health care treatment decisions that affect the patient's desired heath goals and quality of life concerns. These decisions may vary depending upon the patient's age, sex, socioeconomic, demographic, clinical, and genetic or imaging characteristics, which generally affect the relative risk and benefits of outcomes of medical and surgical procedures.
SUMMARY OF THE INVENTION
In one aspect, the present invention provides a machine-readable medium or media having instructions recorded thereon that are configured to instruct a processor to input a regression model specification, and to repeat this input a plurality of times to obtain and store a plurality of regression model specifications. The instructions also are configured to analyze selected regression model specifications to determine at least one of common variables and functions of common variables, to thereby determine a reduced-redundancy request for input of variables, when a plurality of the stored regression model specifications are selected for use.
In another aspect, the present invention provides a method for providing decision support. The method includes using a programmed computer to input a regression model specification, and to repeat the input a plurality of times to obtain and store a plurality of regression model specifications. The method further includes using the programmed computer to analyze selected regression model specifications to determine at least one of common variables and functions of common variables, to thereby determine a reduced-redundancy request for input of variables, when a plurality of the stored regression model specifications are selected for use.
In yet another aspect, the present invention provides a computer network that includes a server computer and a server module. The server computer includes a processor and a memory. The computer network also includes a first client computer, not necessarily different from the server computer. The first client computer includes a first user display device, a first user input device, and a client module. The computer network also includes a second client computer, not necessarily different from the first client computer or the server computer. The second client computer has a second user display device not necessarily different from the first user display device, a second user input device not necessarily different from the first user input device, and a second client module. The server module includes instruction code configured to (a) instruct the processor to communicate common regression models to the first client module and store a regression model specification received from the first client module, (b) to repeat (a) a plurality of times to obtain and store a plurality of the regression model specifications; and, (c) when a plurality of the stored regression model specifications are selected for use, to analyze the selected regression model specifications to determine at least one of common variables and functions of common variables, to thereby determine a reduced-redundancy request for input of variables.
It will thus be appreciated that configurations of the present invention facilitate rapid translation of evidenced-based predictive models into robust tools (for example, web-based tools) capable of providing visual representations of predicted outcomes. When used in a medical environment to provide outcome predictions at the point of patient care; configurations of the present invention can be used to rapidly disseminate the newest knowledge to the clinical setting.
Moreover, outcomes researchers can use configurations of the present invention to create powerful evidence-based tools that deliver decision support at the point of care for diagnostic workups and treatment selection. In the management of acute coronary syndromes (ACS), for example, physicians can get immediate probability estimates for outcomes such as survival, angina frequency, or physical limitation at one year for all possible treatment options, as well as risk-projections for procedural complications.
Some configurations provide a broad assortment of graphical output options that facilitate the sharing of information with patients, thereby allowing physicians and patients to reach a consensus decision regarding therapy that best meets the desires, needs, and expectations of the patient. Some configurations can be or are useful for producing “informed consent” documents and/or documentation of discussion of procedural risks and benefits with patients, and/or for other uses.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a pictorial block diagram of a configuration of a computer network of the present invention.
FIGS. 2A-2B illustrate a block diagram showing the logical structure of an example configuration of a server module.
FIG. 3 is a flow chart illustrating instruction steps provided by some configurations of the server module of FIG. 2 in some configurations of the present invention.
FIGS. 4A, 4B, 4C illustrate an example of a display of a visual selection of parametric regression model forms.
FIG. 5 is an example of a display of an outcome type screen.
FIG. 6 is an example of a display of a parameter name screen.
FIG. 7 is a flow chart illustrating additional instruction steps provided by some configurations of the server module of FIG. 2 in some configurations of the present invention.
FIG. 8 is an example of a display that provides a visual selection of previously stored models.
FIG. 9 is an example of a display requesting parameter data.
FIG. 10 is an example of a result display provided by some configurations of the present invention.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
Technical effects of configurations of the present invention include the generation of visual displays and printed reports useful for decision making in various fields. Thus, In some configurations of the present invention and referring to FIG. 1, a computer network 100 is configured for providing decision support. Decision support computer network 100 may be used, for example, in a medical or clinical health care environment to identify an appropriate regimen for treatment of a medical condition. However, uses for computer network 100 are not limited to the health field. To give but one of many examples, decision support computer network 100 is useful in an advertising environment to determine strategies for marketing products. More generally, computer network 100 is useful in many varied contexts in which statistical regression models can be used to predict outcomes. To provide decision support, some configurations of the present invention are configured to generate outputs, including graphical outputs and patient reports that incorporate such outputs.
In some configurations, computer network 100 comprises a server computer 102 that executes a server module. The server module comprises software instructions recorded on a machine-readable medium or media 104. The machine readable medium or media may comprise, for example, one or more floppy diskettes, CD-ROMs, CD-RWs, DVDs, DVD+Rs, DVD-Rs, DVD+RWs, DVD-RWs, memory devices such as USB memory sticks or other types of memory cards, internal readable and writable memory 106 of any of various kinds, such as internal or external RAM, etc., read-only memory (ROM) 108 of any of various kinds, hard disks, optical drives, and combinations thereof. (As used herein, “media” includes not only “removable” media, but also “non-removable” media such as primary and secondary storage. For example, RAM, ROM, and hard disk drives are included as “media,” as well as the aforementioned types of media.) Server computer 102 can include devices (not specifically illustrated in FIG. 1) for reading removable media, such as a CD-ROM drive, a DVD drive, a floppy disk drive, etc. In many configurations, server computer 102 will comprise at least a readable and writeable memory 106, read-only memory 108 or non-volatile memory of a suitable type, and a processor 110 (e.g., a central processing unit or CPU) which may itself comprise one or more microprocessors, coprocessors, etc. Thus, the term “processor,” as used herein, is not literally restricted to a single CPU. Moreover, server computer 102 may itself comprise a network of one or more computers, as can any other device referred to as a “computer” herein.
Computer network 100 further comprises one or more first client computers 112. In many configurations, it is in communication with server computer 102 via a network 113, for example, the Internet. In many configurations of the present invention, Client computer 112 comprises a first client module comprising software instructions recorded on a machine-readable medium or media 114. In many configurations, client computer 112 further comprises at least a readable and writable memory 116, read-only memory 118, and a processor 120 that may itself comprise one or more microprocessors, coprocessors, etc. First client computer 112 may itself comprise one or more computers in a network. First client computer 112 further comprises a first user display device 122, such as a CRT display, LCD display, plasma display, and/or a hardcopy device such as a printer. First client computer 112 also comprises a first user input device 124, such as a keyboard, a mouse, a touch screen (which may be part of display 122), and/or a trackball, etc. First client computer 112 is not limited to desktop and laptop computers but can include any computing device that can communicate over a network. For example, in some configurations, a first client computer 112 can be a personal digital assistant (PDA) or a wireless telephone with a display screen.
Computer network 100 further comprises one or more second client computers 126. In many configurations, second client computer 126 is in communication with server computer 102 via network 113. Also in many configurations, second client computer 126 comprises a second client module comprising software instructions recorded on a machine-readable medium or media 128. In many configurations, second client computer 126 further comprises at least a readable and writable memory 130, read-only memory 132, and a processor 134 that may itself comprise one or more microprocessors, coprocessors, etc. Second client computer 126 may itself comprise one or more computers in a network. Second client computer 126 further comprises a second user display device 136, such as a CRT display, LCD display, plasma display, and/or a hardcopy device such as a printer. Second client computer 126 also comprises a second user input device 138, such as a keyboard, a mouse, a touch screen (which may be part of display 136), and/or a trackball, etc.
As used herein, software instructions are said to “instruct a computer to display” information even if such information is communicated via a network to another computer for display on a remote display terminal. In this sense code running on a web server instructs a processor executing that code to “display” a web page, even though the code actually instructs the processor to communicate data via a network that allows a browser program to instruct another computer to construct a display of the web page on the display of the other computer. For example, the server module described in the examples presented herein can include a web server and the client modules can comprise web browsers. Also, in some configurations, client computers 112 and 126 comprise laptop, desktop, or mobile computing devices or communication terminals. The broader scope of the phrase “instruct a computer to display” is used because server computer 102 and the one or more client computers 112, 126 need not necessarily be different computers. For example, communication protocols known in the art allow a server software module and a client software module running on a multitasking computer system to communicate with one another on the same computer system, and the same server software module can also communicate with a client software module running on a different computer via a network connection. The examples used herein assume, without loss of generality, that different physical computers and a network are used, as such will be the case in many, but not all, configurations of the present invention.
The terms “display” and “accept” as used in the descriptions herein refer to a suitably programmed computing apparatus “displaying” or “accepting” data, not to a person “displaying” or “accepting” something. A person might, however, view the displayed data on an output device or on a page produced by an output device or supply the accepted data using an input device.
In some configurations of the present invention, a method is provided to provide decision support via software that comprises the server module. Some configurations of the present invention provide server modules that utilize the ASP.NET platform available from Microsoft Corporation, Redmond, Wash. as well as MS Internet Information Services (IIS) and MS SQL Server from Microsoft Corporation for web services and data storage, respectively. A multi-tier system architecture provided in some configurations enables scaling of server module components as needed to meet specific demands of a particular deployment. In addition, a modular design framework is provided in some configurations to facilitate extensibility and incorporation of new functionality via custom modules. In some configurations, the server module is written in C# using the code-behind convention; except for its SQL data access components which are stored procedures written in Transact-SQL. Configurations of the present invention are not limited to implementation using the tools described above. For example, configurations of the present invention can run on the LINUX® operating system (LINUX is a trademark of Linus Torvalds) and be built using a different suite of applications. The selection of an appropriate operating system and suite of applications can be left as a design choice to one of ordinary skill in the art after such a person gains an understanding of the present invention from the present description.
More particularly, and referring to FIGS. 2 and 3, a server module 150 is provided on a machine readable medium or media. In some configurations of the present invention, server module 150 instructs processor 110 to perform a method illustrated by flow chart 200 of FIG. 2. Although the flow charts provided herein are illustrative of configurations of methods used herein, it will be understood that the order of steps shown can be varied from the order illustrated in other configurations of the present invention, that steps illustrated as being separate can be combined (e.g., various displays and requests for data can be combined into a single output screen), and that not all steps illustrated are necessarily required in all configurations.
A technical effect of the present invention is achieved first by a user logging in with appropriate credentials. Server module 150 instructs processor 110 to display, at 202, a visual selection of parametric regression model forms, for example, on a user display device 122. An example of such a display is shown in FIG. 4. In some configurations, access to these features is available only to those with administrative rights.
A Visual Model Editor (VME) is used in some configurations of the present invention to provide the visual selection of parametric regression model forms. A VME is a software application or module that provides a user with a graphical user interface (GUI) that allows the user to build, edit, and visualize statistical models. In some configurations, the GUI includes standard GUI elements such as windows, dialog boxes, menus, drop-down lists, radio-buttons, checkboxes, icons, etc; and the module provides functionality to define and express a statistical model using non-textual user input, such as mouse movements and mouse clicks. In some configurations, the module also provides functionality to input those parts of a model definition that require continuous (non-discrete) numeric values or free text (e.g., input parameter name or displayed text). User interaction with the interface is achieved by one or more methods that may include, for example, pointing and clicking with a mouse, touchpad, or other input device, or typing on a keyboard, or speaking into a microphone and using voice command recognition software. In some configurations, model definitions are imported, either in part in their entirety, from all-text model representations, examples of which include, but are not limited to, Predictive Modeling Markup Language (PMML) documents and other XML-based documents. Some configurations allow imported models to be edited and modified within the VME, stored in a memory of the server computer or elsewhere, and/or re-exported in their original formats and/or other formats.
A general regression model framework is used in some configurations for expressing predictions. The model types can include, for example, linear, generalized linear, cumulative multinomial, generalized multinomial and proportional hazard models, thereby providing coverage for major medical prognostic model types. For example, the selection may include a linear regression model of the form f(x)=β1x1+β2x2+β3x3+ . . . +βηxη as well as intrinsically non-linear forms and forms that are linear in transformed variables, e.g., x1=1 n(y), where y is an input variable. Some configurations provide the ability to implement custom model types using a built-in scripting interface. The visual display of model type is associated with a drop-down list in some configurations, for example, and the visual display of model type changes depending upon the item selected from the drop-down list. In some configurations, the display is a list of parametric regression model forms. In other configurations, the display comprises a rendering of mathematical models on user display device 122.
Model types are defined in terms of a coefficient vector and an optional covariance matrix for calculating confidence intervals. For example, the coefficient vector and covariance matrix are defined as follows:



  
    
      
        Coefficient
        ⁢
        
          
        
        ⁢
        vector
        ⁢
        
          
        
        ⁢
        
          b
          ′
        
      
      =
      
        (
        
          
            b
            
              0
              ·
            
            ′
          
          ⁢
          
            b
            
              1
              ·
            
            ′
          
          ⁢
          
            b
            ′
          
          ⁢
          
            
          
          ⁢
          ...
          ⁢
          
            
          
          ⁢
          
            b
            
              r
              ·
            
            ′
          
        
        )
      
    
    ;
    and
  




  
    Covariance
    ⁢
    
      
    
    ⁢
    
      matrix
      ⁢
      
        
      
      [
      
        
          
            
              ⋁
              
                1
                ·
                1
              
            
          
          
            
              ⋁
              
                1
                ·
                2
              
            
          
          
            ...
          
          
            
              ⋁
              
                1
                ·
                r
                ·
              
            
          
        
        
          
            
              ⋁
              
                2
                -
                1
              
            
          
          
            
              ⋁
              
                2
                ·
                2
                ·
              
            
          
          
            ...
          
          
            
              ⋁
              
                2
                ·
                r
                ·
              
            
          
        
        
          
            ⋮
          
          
            ⋮
          
          
            
              
            
          
          
            ⋮
          
        
        
          
            
              ⋁
              
                r
                ·
                1
                ·
              
            
          
          
            
              ⋁
              
                r
                ·
                2
                ·
              
            
          
          
            ...
          
          
            
              ⋁
              
                r
                ·
                r
                ·
              
            
          
        
      
      ]
    
  




  
    
      
        where
        ⁢
        
          

        
        ⁢
        
          ⋁
          
            i
            ≅
            j
            ≅
          
        
      
      ==
      
        Cov
        ⁡
        
          (
          
            
              b
              
                i
                ·
              
            
            ,
            
              b
              
                j
                ·
              
            
          
          )
        
      
    
    =
    
      [
      
        
          
            
              ⋁
              
                i
                ⁢
                
                  
                
                ⁢
                1
                ⁢
                
                  
                
                ⁢
                j
                ⁢
                
                  
                
                ⁢
                1
              
            
          
          
            
              ⋁
              
                i
                ⁢
                
                  
                
                ⁢
                1
                ⁢
                
                  
                
                ⁢
                j
                ⁢
                
                  
                
                ⁢
                2
              
            
          
          
            ...
          
          
            
              ⋁
              
                i
                ⁢
                
                  
                
                ⁢
                1
                ⁢
                
                  
                
                ⁢
                js
              
            
          
        
        
          
            
              ⋁
              
                
                  i
                  ⁢
                  
                    
                  
                  ⁢
                  2
                
                -
                
                  j
                  ⁢
                  
                    
                  
                  ⁢
                  1
                
              
            
          
          
            
              ⋁
              
                i
                ⁢
                
                  
                
                ⁢
                2
                ⁢
                j
                ⁢
                
                  
                
                ⁢
                1
              
            
          
          
            ...
          
          
            
              ⋁
              
                i
                ⁢
                
                  
                
                ⁢
                2
                ⁢
                j
                ⁢
                
                  
                
                ⁢
                s
              
            
          
        
        
          
            ⋮
          
          
            ⋮
          
          
            ⋮
          
          
            
              
            
          
        
        
          
            
              ⋁
              
                isj
                ⁢
                
                  
                
                ⁢
                1
              
            
          
          
            
              ⋁
              
                isj
                ⁢
                
                  
                
                ⁢
                2
              
            
          
          
            ...
          
          
            
              ⋁
              isjs
            
          
        
      
      ]
    
  



In the definitions above, bi,=(bi1 bi2. . . . bis) is the vector of coefficients associated with the ith predicator in χ, with one coefficient for each state S (except the reference state). Also, vikil=Cov(bikbjl) denotes the covariance between the i•th predictor, kth state) and jth predictor, lth state) coefficients.
The user at client computer 112 enters a selection of a model type (for example, a selection of one of the following model types: linear, generalized linear, cumulative multinomial, generalized, multinomial or proportional hazard model) from a menu. In some configurations, the menu is a “visual” menu. (“Visual” displays and menus include one or more elements such as graphical illustrations, drop-down lists, selection buttons, checklists, etc.) Server computer 102 is programmed with instructions by the server module to accept this selection at step 204. In some configurations, the actual form of mathematical model selected is determined by several user-selected options, all of which comprise the selection accepted by the server module at step 204. In such configurations, the user is, in effect, “building” the mathematical formulae as he or she goes along, as opposed to merely selected a static, pre-defined functional form.
Next, at step 206, instructions in the server module instruct processor 110 to request an outcome type and one or more regression model parameter names and corresponding parameter types, and, in appropriate cases, limits and/or lists of possible input values. Examples of parameter names in a medical or surgical environment could include one or more of, “blood pressure,” “diabetes,” “ejection fraction,” and/or other statically significant parameters. In such an environment, one or more of these names and/or one or more other, different names might be supplied in response to this request. Examples of parameter types that may An example of a possible limit is a range from 0 to 120, which might, for example, be a limiting range appropriate for an “Age” parameter name, and an example of a list of possible input values is “Male, Female” for a “Sex” parameter name. The parameter types and lists of possible input values can be used to select appropriate input formats when the model is used (e.g., a dropdown list for a parameter name having an associated list). The limits can be used to check the “sanity” of input values and to determine an appropriate corrective action when an inappropriate value is entered for a parameter, e.g., the value “250” for “Age.”
In some configurations, the request for model parameters is sent via an XML Web Service for programmatic access. In configurations in which the request is sent via an XML Web Service, the request is not necessarily “displayed” as such. More specifically, a Remote Modeling Service is provided that uses a Web Method entitled “GetModelParameters” that takes, as its argument, a unique model identifier for the model of interest. The GetModelParameters method returns a listing, which may be a complete listing, of parameters required by that model. In some configurations, a GetParametersForRequestedModels accepts a plurality of unique model identifiers as its argument and returns a listing of parameters, without redundancy, of parameters required by those models. Also, in some configurations, the listing is returned together with type and/or validation information for some or all of the parameters required by the model. The entire request is communicated in some configurations over SOAP. Data collected corresponding to the parameters requested and in response to the request is returned to the server, in some configurations, via the XML web service. The returned data is then used for execution in the requested models, and results of the execution are returned to the requesting client over the XML web service.
In some configurations, the instructions for step 206 do instruct the outcome type request and the request for one or more regression model parameter names, etc., to be displayed. An example of an outcome type screen used in some configurations is shown in FIG. 5 and an example of a parameter name screen is shown in FIG. 6. At step 207, some configurations of the present invention also display a visual selection of at least some of the parameter names along with a visual selection of mathematical transforms for each displayed name. The user selects a transform, which can include, for example, logarithms, exponentials, squares, square roots, and other transformations, so that these functions of the values later used for each corresponding variable name are used in the regression equation instead of the variables themselves. In some configurations of the present invention, transformations are rendered on a display screen in a recognizable form, for example, a standard mathematical form. For example, in some configurations, if a power transformation is selected for a parameter, say, the square of “Age,” the display for this transformation is rendered as “Age2” wherever appropriate. In some configurations, scripting of transformations is made available for custom, unique, or complex transformations that are not otherwise provided for selection.
At step 208, these names, parameter types, parameter limits, and/or parameter transforms are accepted by processor 110. At step 210 (which may be combined with step 208), values of the coefficients (and/or other types of values, if needed by the model) for the selected regression model type and outcome are obtained. As used herein, the terms “coefficients” and “coefficient values,” unless otherwise explicitly specified, are intended to include within their scope not only coefficients, but also any constant or other terms that may be necessary for a model. Such terms may include, for example, an intercept term, a mean square error term, and/or a number of degrees of freedom term. Thus, even though model forms are built from “standard components,” in some configurations they may be considered as fluid forms rather than predefined static structures into which coefficient values are simply “dropped.” For example, the number of terms used from a model form may itself be defined by defining the number of degrees of freedom term. In addition, “coefficient” data, as used herein, also includes, unless explicitly stated, data computed “on-the-fly” from one or more parent parameters (e.g., the data is computed as a function of another parameter that is retrieved from a database or requested as input). For example, some configurations allow the specification of or provide automatic recognition of at least some “parent-child” parameter relationships. For example, body mass index (BMI) can be defined as a constant times height divided by the square of the weight of a person. Thus, if one model uses BMI as a variable, and BMI is not available in a database but both height and weight are available, some configurations of the present invention will automatically calculate BMI from height and weight without issuing a separate request for BMI. If, in this example, a previous value of BMI exists for some reason and differs from the automatically calculated value, some configurations of the present invention display an alert icon next to the BMI parameter on the data input form.
In some configurations, the coefficient values are obtained by requesting that the values be input by a user at first client computer 112. In other configurations, these values are obtained by instructions to processor 110 to run a regression analysis on data obtained from a database 140, which may be a local database stored in computer 104 or a database accessible via a network such as network 113. A list comprising the outcome, associated coefficients and accepted names, types, and/or limits for variables are stored in a memory (e.g., memory 106, a secondary storage unit, or even a register of the processor) of server computer 106 for later use at step 212. (The term “later use” is intended to be interpreted broadly and can include, for example, use as part of the running of a stored model at a later date, use as part of a self-contained PDA version of the application, or use by a non-registered user who approached the application through the web to do a ‘one-off’ run of a model.) In some configurations in which a visual selection of mathematical variable transforms has been selected, an indication of the selected mathematical variable transforms and corresponding variable names is also stored in the memory. Some configurations also update J3-weights and covariance matrices that are stored for the model.
In some configurations, derived parameters (for example, “Age Under 65,” which is derived from “Age,” or “BMI,” which is derived from “Height” and “Weight”) are stored, even though not explicitly collected from a user. The storing of “derived” regression model parameters and/or “derived” parameter names, unless otherwise explicitly stated, is considered consistent with and within the scope of “storing an accepted list of one or more regression model parameters and parameter names.”
In some configurations, the procedure represented by flow chart 200 (or by variations thereof such as those described herein) represents the input of a regression model specification for (for example) a specific treatment and a specific outcome. The procedure represented by flow chart 200 (or its variations) can be repeated to add further regression model specifications representing different combinations of variables for different procedures, such as medical or surgical procedures. Some configurations further allow the editing and/or deletion of stored models. The parameters of regression model specifications are also referred to herein as variables and/or functions of variables, such as in regard to steps in which values to the variables or functions of variables are assigned.
Referring next to flow chart 300 of FIG. 7, server module 150 also contains instructions configured to instruct processor 110 to allow a user (usually, but not necessarily different from the user at first client computer 112) at second client computer 126 to log into the server module. The user at second client computer 126 is able to select one or more of the stored regression model specifications, input data for the stored models, run a regression analysis and be presented with results of the regression analysis or analyses. More particularly, at step 302, processor 110 is instructed to display a selection (for example, a visual selection) of previously stored regression model specifications on second user display device 136 by communicating data via network 113 with a program (e.g., a web browser) running on second client computer 126. An example of a display that provides a visual selection of previously stored regression model specifications is shown in FIG. 8. A user at second client computer 126 uses second user input device 138 to indicate a selection of one or more of the displayed regression model specifications, and this selection is communicated to processor 110 via network 113, and processor 110 is instructed to accept this selection at step 304. At step 306, the server module determines common regression module variables (for example, those corresponding to the same parameter name) between the one or more selected, stored regression models so that redundant requests for variables can be eliminated or reduced. The elimination of redundant requests for variables (i.e., requesting the same variable more than once when a plurality of stored regression model specifications is selected by the user) is also referred to herein as a “reduced-redundancy” request for variables. In some configurations, derived values from parent variables are also computed, so that data redundancy (not just model variable redundancy) is reduced or eliminated. For example, if one model requires “Age” as a continuous variable, and another model requires “Age less than 65” as a binary variable, some configurations of the present invention will not render the second parameter (i.e., “Age less than 65”) for input, because it is redundant. Instead, these configurations automatically calculate the value of “Age less than 65” based upon the supplied “Age” value. (In this example, “Age less than 65” is input as a mathematical or other type of expression from which its dependence upon “Age” can be determined rather than as a separate, independent binary variable when the model is defined, so that its dependence upon the variable “Age” can be recognized.)
Thus, at step 308, the server module displays a request or requests for variables that correspond to the selected regression model specifications. An example of such a displayed request is shown in FIG. 9. The server module accepts the collected variable data at 310 (which may also include an identification of a person or object to which the variables apply) and runs the selected regression model specifications. At step 312, results of the selected regression model specifications are displayed. An example of such a display is shown in FIG. 10. The displayed results can also include a representation of a statistical range, such as a visual representation in some configurations. Also in some configurations, at step 314, processor 110 is instructed to use customizable content (for example, letterhead data), previously stored in a memory or database accessible to processor 110 and optionally including return addresses, logos, etc. to print the results or to cause the results to be printed. (Customizable content is not limited to letterhead, need not include the letterhead, and can include, in various configurations, all or any portion or portions of the entire report. By way of non-limiting example, the report can be customized in some configurations to be “informed consent” or similar type of document. An “informed consent” document can, in some configurations, include customization to provide applicable terms under which treatment is provided, disclaimers, and/or signature lines for patients and/or another person or persons authorized to provide consent for treatment. Other types of reports can include signature lines for a patient or his representative or guardian to sign confirming, for example, that the risks involved in undergoing or not undergoing a certain course of treatment have been explained and understood.) The server module can include instructions to print different letterheads (or other types of documents) depending upon credentials (e.g., login information) provided by the current user. Also, in some configurations, instructions to processor 110 at step 316 cause processor 110 to store variables apply in a memory or database (such as memory 104) accessible to processor 110. Instructions in the server module are provided to instruct processor 110 to provide default values for the stored variables when outcome results of the same or different type are requested for that person or object at a different time.
More particularly in some configurations, at runtime, collected model parameters (i.e., user inputs) are serialized into a Predictor Vector:




  
    x
    ′
  
  =
  
    
      (
      
        
          
            
              x
              1
            
          
          
            
              x
              2
            
          
          
            ...
          
          
            
              x
              r
            
          
        
      
      )
    
    =
    
      {
      
        
          
            
              (
              
                1
                ⁢
                
                  z
                  ′
                
              
              )
            
          
          
            Intercept
          
        
        
          
            
              z
              ′
            
          
          
            
              No
              ⁢
              
                
              
              ⁢
              Intercept
            
          
        
      
    
  




where z is the transformed response vector, each of whose elements correspond to a single data item (e.g., systolic blood pressure).
The Linear Predictor is then calculated as

{circumflex over (η)}′=({circumflex over (η)}1{circumflex over (η)}2 . . . {circumflex over (η)}s)=(x′(e1∘b)x′(e2∘b) . . . x′(es∘b)

in which each ei is an extraction vector derived from the appropriate Extraction Matrix:




  E
  =
  
    [
    
      
        
          
            e
            1
            ′
          
        
      
      
        
          
            e
            2
            ′
          
        
      
      
        
          ⋮
        
      
      
        
          
            e
            
              s
              ⁢
              
                
              
            
            ′
          
        
      
    
    ]
  




where each row ei′ identifies the relevant sub-vector of b and the submatrix of V needed to predict the ith independent parameter of the predictand. The extract form of E is dependent on the model type (see Table 1).







TABLE 1







Extraction Matrices











Model Type
Intercept
No Intercept







Linear
11x(r+1)
11xr



Generalized Linear
11x(r+1)
11xr



Cumulative Multinomial 1
[Isxs 1sxr]
[I(s−1x(s−1) 1(sx−1)xr]



 



Generalized Multinomial 1




  [
  
    
      
        I
        sxs
      
      ⁢
      
        
      
      ⁢
      ⋯
      ⁢
      
        
      
      ⁢
      
        I
        sxs
      
    
    
      r
      +
      
        1
        ⁢
        
          
        
        ⁢
        times
      
    
  
  ]








  [
  
    
      
        I
        sxs
      
      ⁢
      
        
      
      ⁢
      ⋯
      ⁢
      
        
      
      ⁢
      
        I
        sxs
      
    
    
      r
      ⁢
      
        
      
      ⁢
      times
    
  
  ]







 



Proportional Hazards
N/A
11xr










In the table above, I denotes the identity matrix (i.e., a matrix with all diagonal entries=1 and all off-diagonal entries=0), and 1 denotes a matrix of all 1s.
The Prediction Vector containing the outcome point-estimate(s) is then given by

{circumflex over (μ)}=g−1({circumflex over (η)}) 

where g−1 is the appropriate inverse link function (see Table 2). The Linear Predictor Variance Vector is given by

{circumflex over (σ)}′2=(x′(e1∘)X X′(es∘V)X. . . X′(es∘V)X)

from which confidence intervals can be calculated as

({circumflex over (μ)}LO,{circumflex over (μ)}HI)=g−1)(({circumflex over (η)}±FV−1(1−α/2)√{square root over ({circumflex over (φ)}2+{circumflex over (σ)}2)})

where Fv−1 is the inverse t-distribution function with v degrees of freedom at confidence level α and {circumflex over (φ)}2 is the mean square error ({circumflex over (φ)}2 defined only for linear models).







TABLE 2





Inverse Link Functions
















Identity
μ = η


Log
μ = eη


Logit
μ = (1 + e−η)−1


Probit
μ = Φ(η)


 


Power




  μ
  =
  
    {
    
      
        
          
            
              η
              
                1
                /
                λ
              
            
          
          
            
              
                if
                ⁢
                
                  
                
                ⁢
                λ
              
              >
              0
            
          
        
      
      
        
          
            
              e
              η
            
          
          
            
              
                if
                ⁢
                
                  
                
                ⁢
                λ
              
              =
              0
            
          
        
      
    
  






 


Complementary log-log
μ = 1 = e−eη


Cumulative logitτ
πi = (1 + eη−1)−1η i = 1, . . . , s


Cumulative probitτ
πi = Φ(ηi)* i = 1, . . . , s


Cumulative
πi = 1 − e−eηi i = 1, . . . , s


complementary log-logτ



 


Generalized Logit




  
    μ
    i
  
  =
  
    {
    
      
        
          
            
              
                e
                
                  η
                  i
                
              
              (
              
                1
                +
                
                  
                    ∑
                    
                      j
                      =
                      1
                    
                    s
                  
                  ⁢
                  
                    e
                    
                      η
                      j
                    
                  
                
              
              )
            
            
              -
              1
            
          
        
        
          
            
              i
              =
              1
            
            ,
            ⋯
            ⁢
            
              
            
            ,
            s
          
        
      
      
        
          
            
              
                1
                +
                
                  
                    ∑
                    
                      j
                      =
                      1
                    
                    s
                  
                  ⁢
                  
                    e
                    
                      η
                      j
                    
                  
                
              
              )
            
            
              -
              1
            
          
        
        
          
            i
            =
            
              s
              +
              1
            
          
        
      
    
  






 


Proportional Hazards
μ = Sjeη


 


τFor multi-state models,




  
    μ
    i
  
  =
  
    {
    
      
        
          
            π
            i
          
        
        
          
            i
            =
            1
          
        
      
      
        
          
            
              π
              i
            
            -
            
              
                ∑
                
                  j
                  =
                  1
                
                
                  i
                  -
                  1
                
              
              ⁢
              
                π
                j
              
            
          
        
        
          
            
              i
              =
              2
            
            ,
            ...
            ⁢
            
              
            
            ,
            s
          
        
      
      
        
          
            1
            =
            
              
                ∑
                
                  j
                  =
                  1
                
                
                  i
                  -
                  1
                
              
              ⁢
              
                π
                j
              
            
          
        
        
          
            i
            =
            
              s
              +
              1
            
          
        
      
    
  









*Φ is the standard normal distribution function






In various configurations of the present invention, model building is greatly facilitated by a visual editing environment that provides dynamic on-screen instructions and rendering of prediction formulae as well as robust validation services. Parameters are identified that are used in a prediction formula. New parameters can be created de novo or selected from an existing parameter library (thereby allowing for standardization of parameter definitions across all models).
Once parameters have been defined, one or more data transformations can be assigned to each. A broad array of built-in transformation types are available to the user, and custom transformation types can be readily defined via scripting, allowing configurations of the present invention to handle a wide range of complex formulae.
Main effects and interaction terms derived from the input parameters and their transformations can be derived in some configurations of the present invention, and regression coefficients for calculating point estimates for outcome of interest and optional covariance estimates can be provided for computing confidence intervals.
Once regression model specifications have been built and deployed, health care providers (or, in other environments, other individuals) can readily access them through an integrated and customizable portal interface using a variety of web-enabled devices. Dynamically generated data entry screens are provided based on the variables required by the selected model(s). For example, in medical environments, data for patients can either be entered de novo or retrieved from a patient information system, which can be readily integrated with existing clinical information systems via XML web services support.
Some configurations of the present invention render model outputs in a variety of graphical and non-graphical formats, including solid bar plots, gradient bar plots, whisker line plots, pie charts, and/or digital LED-style displays, which can be user-selectable. Output from multiple models can be grouped onto a single plot to facilitate inter-model comparisons (for example, stroke risk with angioplasty versus bypass surgery). In addition, some configurations allow a user to customize the output plot style, the selection of models to include in a final output and the display of confidence intervals (when model covariance data has been provided). In various configurations, users can print outcome plots using customizable report templates in order to generate documents such as patient educational materials and informed consent sheets. Also in some configurations, outcomes researchers can customize report and page content using a built-in Microsoft Word®-like interface or by editing HTML code. A feature rich set of portal content modules, including workgroup directories, discussion threads, and document repositories can be provided in server module configurations of the present invention to allow outcomes research groups to easily create, manage, and build their own collaborative web sites.
It will thus be appreciated that configurations of the present invention can be used to handle various aspects of data collection, validation, storage/retrieval, and processing, thereby freeing outcomes researchers from intricacies of programming and networking.
While the invention has been described in terms of various specific embodiments, those skilled in the art will recognize that the invention can be practiced with modification within the spirit and scope of the claims.

## Claims

1. A system, comprising:
a server computer comprising hardware including a processing device;
non-transitory computer readable memory storing a server module, that when executed by the server computer causes the system to perform operations comprising:
accessing sets of predictors associated with respective health outcomes;
determining whether there are variables that may be shared among the sets of predictors;
dynamically generating a patient information request interface based at least in part on the sets of predictors;
wherein the dynamically generated patient information request interface is configured to request patient information corresponding to the sets of predictors, and
the dynamically generated request interface is configured to reduce redundancy in the requested information based at least in part on the determined variables that may be shared among the sets of predictors.

2. The system as defined in claim 1, wherein the dynamically generated interface comprises an interface to a patient information system.

3. The system as defined in claim 1, wherein the dynamically generated interface comprises an interface to a patient information system using an XML web service.

4. The system as defined in claim 1, wherein the dynamically generated interface comprises a visual user interface including user data entry fields.

5. The system as defined in claim 1, wherein the dynamically generated interface comprises fields related to a patient's gender, age, and history of diabetes.

6. The system as defined in claim 1, wherein the system comprises a network interface configured to transmit the dynamically generated patient information request interface over a network to a client computer.

7. The system as defined in claim 1, wherein the determined variables that may be shared among the sets of predictors associated with the respective health outcomes in the first plurality of health outcomes comprises an age variable.

8. A computer-implemented method for generating interfaces configured to receive patient variable data, the method comprising:
accessing, by a computer system, sets of predictors associated with respective health outcomes;
determining whether there are variables that may be shared among the sets of predictors;
dynamically generating, by the computer system, a patient information request interface based at least in part on the sets of predictors;
wherein the dynamically generated patient information request interface is configured to request patient information corresponding to the sets of predictors, and
the dynamically generated request interface is configured by the computer system to reduce redundancy in the requested information based at least in part on the determined variables that may be shared among the sets of predictors.

9. The method as defined in claim 8, wherein the dynamically generated interface retrieves patient information from a patient information system.

10. The method as defined in claim 8, wherein the dynamically generated interface obtains patient information from a patient information system using an XML web service without displaying the patient information request interface.

11. The method as defined in claim 8, wherein the dynamically generated interface is provided for display to a user, and patient information entered by the user is received at the computer system.

12. The method as defined in claim 8, wherein the dynamically generated interface is configured by the computer system to obtain patient information related to a patient's gender, age, and history of diabetes.

13. The method as defined in claim 8, wherein the computer system comprises a server and a network interface configured to transmit the dynamically generated patient information request interface over a network to a client computer.

14. The method as defined in claim 8, wherein a first variable that may be shared among the sets of predictors comprises an age variable.

15. Non-transitory computer readable memory storing instructions, that when executed by a computer system comprising hardware causes the computer system to perform operations comprising:
accessing sets of predictors associated with respective health outcomes;
determining whether there are variables that may be shared among the sets of predictors;
dynamically generating a patient information request interface based at least in part on the sets of predictors;
wherein the dynamically generated patient information request interface is configured to request patient information corresponding to the sets of predictors, and
the dynamically generated request interface is configured to reduce redundancy in the requested information based at least in part on the determined variables that may be shared among the sets of predictors.

16. The non-transitory computer readable memory as defined in claim 15, wherein the dynamically generated interface comprises an interface to a patient information system.

17. The non-transitory computer readable memory as defined in claim 15, wherein the dynamically generated interface comprises an interface to a patient information system using an XML web service.

18. The non-transitory computer readable memory as defined in claim 15, wherein the dynamically generated interface comprises a visual user interface including user data entry fields.

19. The non-transitory computer readable memory as defined in claim 15, wherein the dynamically generated interface comprises fields related to a patient's gender, age, and history of diabetes.

20. The non-transitory computer readable memory as defined in claim 15, wherein the determined variables that may be shared among the sets of predictors associated with the respective health outcomes in the first plurality of health outcomes comprises an age variable.