US20090271214A1 - Rules engine framework - Google Patents
Rules engine framework Download PDFInfo
- Publication number
- US20090271214A1 US20090271214A1 US12/257,782 US25778208A US2009271214A1 US 20090271214 A1 US20090271214 A1 US 20090271214A1 US 25778208 A US25778208 A US 25778208A US 2009271214 A1 US2009271214 A1 US 2009271214A1
- Authority
- US
- United States
- Prior art keywords
- rules
- custom
- rule
- healthcare
- rules engine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0637—Strategic management or analysis, e.g. setting a goal or target of an organisation; Planning actions based on goals; Analysis or evaluation of effectiveness of goals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/08—Insurance
Definitions
- the United States Medicaid program was enacted in 1965 to provide a medical assistance program for individuals and families with low incomes.
- the Medicaid program comprises three main entities—the patients, the healthcare providers, and the agency administering the plan (i.e., the payer).
- the Medicaid program is financed through joint federal and state funding.
- the Medicaid program is administered by each state according to an approved state plan.
- the specifics of the Medicaid program differ from state to state. Differences may include covered healthcare procedures, allowable procedure costs, and patient eligibility criteria.
- the state administrators of the Medicaid program are required to have a Medicaid management information system (MMIS) that provides for mechanized and/or computerized Medicaid claims processing.
- MMIS Medicaid management information system
- Recently, the Medicaid information technology architecture (MITA) has been promulgated by the U.S. government to provide a blueprint and a set of standards that individual states are to follow in administering the Medicaid program and for developing the next generation MMIS.
- an apparatus comprising a computer system and an integrated development environment application.
- the integrated development environment application When executed on the computer system, the integrated development environment application promotes defining a plurality of rules based on a plurality of generic templates and automatically incorporating input value validation based on a type of a left hand variable into the rules.
- the rules when executed by a healthcare management information system rules engine, promote enrollment of health care providers and healthcare system members and processing of healthcare claims.
- a method of processing a healthcare claim comprises composing a rule from at least one of a generic template, system parameters custom template, a system list custom template, and a valid values custom template.
- the method also comprises invoking a business process function to process a healthcare claim and the business process invoking the rule to be processed by a rules engine.
- the method also comprises the rules engine returning the result of processing the rule in a rule return object and the business process approving payment the healthcare claim based on the rule return object.
- a system comprising a computer system and a rules engine framework.
- the rules engine framework When executed on the computer system, the rules engine framework promotes composing a plurality of rules. Each rule is composed at least in part from a left hand variable associated with a right hand input by an operator.
- the rules engine builder also automatically incorporates into the rules input value validation of the right hand input operand based on the type of the left hand variable. At least some of the rules are composed based on at least one of a generic template, system list custom template, a system parameters custom template, and a valid values custom template.
- the rules engine builder also builds a healthcare management information system rules engine based at least in part on a plurality of custom providers.
- the healthcare management information system rules engine promotes enrollment of health care providers and patients and promotes healthcare claims processing.
- FIG. 1 is a schematic diagram of a rules engine framework according to an embodiment of the disclosure.
- FIG. 2 is a flowchart of a method according to an embodiment of the disclosure.
- FIG. 3 is a schematic diagram of an exemplary general-purpose computer system suitable for implementing the several embodiments of the disclosure.
- a rules engine framework provides additional functionality and ease of use to a commercial-off-the-shelf (COTS) rules engine application.
- the rules engine application may comprise various support tools including an integrated development environment (IDE) tool for defining and pre-processing rules as well as a rules engine.
- IDE integrated development environment
- the rules engine is a computer executable program that processes rules.
- rules engines may be pluggable and/or reusable software components that execute rules that have been externalized from application code.
- the rules define business rules and/or business logic that may change frequently.
- the rules may be precompiled into a binary format, (.adb format), which may be stored in random access memory for rapid access and execution by a rules engine.
- the framework extends the functionality provided by the COTS rules engine application in a number of ways.
- the framework extends the COTS rules engine by providing a set of generic templates that may be used to define a condition portion of a rule comprising a condition to be evaluated and an action to be performed if the condition evaluates to TRUE.
- the generic templates identify the association and/or operation to be performed between a left hand variable and a right hand input of a condition.
- the left hand variable may be referred to as a left hand operand and the right hand input may be referred to as a right hand operand.
- the left hand variable may correspond to or identify an input field of an interface, for example a claim processing interface.
- Generic templates are a piece or snippet of code that can be combined together with operands and/or other generic templates to define a rule.
- Custom templates are a special case of generic templates that are custom developed as part of the rules engine framework to provide functionality not provided by the COTS rules engine application.
- a system parameter custom template is provided that promotes convenient definition of value constraints, for example a maximum annual patient charge for a specific procedure.
- a valid values custom template promotes convenient identification of valid values for input fields, for example valid values for place of service code.
- a systems list custom template is provided that promotes convenient groupings of valid values.
- the use of the generic templates of the present disclosure may substantially ease the burden of subject matter experts (SMEs) defining new rules.
- SMEs subject matter experts
- the rules engine framework further comprises a plurality of custom providers that extend the COTS rules engine application including a database custom provider, an array object custom provider, and a display name custom provider.
- the database custom provider promotes retrieval of two columns values from the database.
- the array object custom provider promotes retrieval of all of the elements of an array in one operation, which may be useful, for example, when checking status of each of a plurality of common elements such as the presence or absence of 32 teeth in a patient.
- the display name custom provider promotes the use and/or display of data value labels in a consistent format. For example, the display name custom provider causes the label “Last Name” to be displayed with a particular data set, as opposed to code-driven labels, such as “lname,” “lastname,” or “last_name.”
- the rules engine framework may be provided as an extension of the COTS IDE tool that executes on a computer system.
- the rules engine framework may also be provided as an associated rules repository.
- the rules repository stores the defined rules and other artifacts and objects created by using the integrated development environment application.
- the rules engine executes on a process server computer system in cooperation and coordination with a business process and the compiled rules.
- the business process may be invoked to perform a business level operation, for example process a submitted claim.
- the business process may invoke the rules engine to perform decision logic encapsulated in the form of rules definitions, for example to validate a portion of an input screen and/or a portion of a claim.
- the business process and rules engine cooperatively provide at least a portion of a healthcare management information system.
- the rules engine and the business process need not execute on the same computer system.
- a user of the healthcare management information system may interact with the business process and rules engine by entering information and selecting actions from a user interface presented at a workstation communicatively coupled to the process server computer system.
- the business process may promote enrolling healthcare providers into the healthcare system, for example enrolling physicians, therapists, hospitals, minor emergency medical centers, and other healthcare providers.
- the business process may also promote enrolling healthcare recipients and/or patients.
- the business process may promote receiving and processing claims from enrolled healthcare providers for services provided to enrolled healthcare recipients.
- a function of the business process may be invoked by the user of the workstation, for example process a claim for healthcare services.
- the business process may process this claim by invoking a series of rules and/or a rule flow on the rules engine.
- the use of rules to provide automated processing may have the advantage of allowing for the rapid creation, modification, and deployment of rules with respect to processing based on specifically designed computer programs.
- the processing of the claim may involve the rules engine executing a sequence of rules that validate the enrollment of the healthcare provider, validate the enrollment of the healthcare recipient, determine a coverage status of the subject procedure, determine a maximum coverage amount, initiate a funds deposit to pay the claim to the healthcare provider, and/or other healthcare processing actions.
- the system 100 comprises a computer system 102 , a network 104 , a developer workstation 106 , and a rules repository 108 .
- the computer system 102 may contain and/or execute an IDE application 110 used to compose a plurality of rules and to compile the rules into a form suitable for run-time execution.
- the IDE application 110 may comprise a rule editor 112 , a rules engine framework 113 , and a rule compiler 118 .
- the rules engine framework 113 comprises a generic template framework 114 , an input value validation component 116 , and a plurality of custom providers 117 .
- the rules engine framework 113 may also be considered to further comprise the rules repository 108 .
- the generic template framework 114 comprises a plurality of generic templates (not shown) and a plurality of custom templates 115 .
- the rules engine framework 113 is a novel extension of the IDE application 110 as delivered as a COTS computer application.
- the system 100 may further include a process server 140 and a plurality of workstations 142 .
- the process server 140 may comprise at least one business process 144 , a rules engine 146 , and a plurality of compiled rules 148 .
- the rules engine 146 may be a pluggable and/or reusable software component and executes rules that are defined using the IDE application 110 , in part using the rules engine framework 113 .
- the process server 140 provides at least a portion of the Enterprise function, for example at least a portion of a healthcare management information system, to users of the workstations 142 .
- the computer system 102 , the developer workstation 106 , the process server 140 , and the workstations 142 may be implemented as general-purpose computer systems, which are discussed in detail hereinafter.
- one or more of the computer system 102 , the developer workstation 106 , the process server 140 , and the workstations 142 may be combined and/or distributed in space.
- the computer system 102 may be located at a central location and one or more developer workstations 106 may log into the computer system 102 and/or establish an editing session from one or more remote locations.
- the IDE application 110 may be executed on a plurality of computer systems 102 , which each execute a developer workstation 106 .
- the process server 140 may be located at a central location and one or more workstations 142 may log into the process server 140 , for example from a plurality of remote locations corresponding to different healthcare management information system offices located in population centers distributed throughout a state.
- a plurality of process servers 140 may be located at different offices located in population centers distributed throughout a state and each of the process servers 140 may execute on one or more workstations 142 .
- the IDE application 110 may include some portions of a COTS rules engine tool.
- the COTS rules engine tool may be customized and/or extended, for example extended by including the rules engine framework 113 , to provide functionality and convenience otherwise not provided by the COTS rules engine tool.
- a Fair Isaac BLAZE ADVISOR COTS rules engine package may be encapsulated in the system 100 .
- the IDE application 110 builds on, extends, or encapsulates a rules management application (RMA) portion of the BLAZE ADVISOR COTS.
- RMA rules management application
- the IDE application 110 extends the RMA by providing the rules engine framework 113 that comprises the generic template framework 114 that may be used to compose rules, the input validation component 116 that promotes automatically providing input validation for the rules defined using the IDE application 110 , and the custom providers 117 that extend the capabilities of the COTS rules engine 146 .
- the generic template framework 114 comprises a plurality of custom templates 115 .
- the rule editor 112 may be executed, for example from the developer workstation 106 or some other workstation, to compose rules, rule sets, and rule flows.
- a rule may define a condition linked to a decision action that is performed if the condition evaluates TRUE.
- the condition comprises a left hand variable associated with a right hand input by a template.
- the template may be referred to as an operator, the left hand variable may be referred to as a left hand operand, and the right hand input may be referred to as a right hand operand.
- the decision actions may be used by the business process 144 to make a decision whether to further process a claim, to approve payment of a claim, to reject a claim, or to mark a claim as suspended due to one or more exceptions associated with the claim.
- the decision actions may be used by the business process 144 to make a decision in registering a new patient and/or healthcare system member in the healthcare information system, registering a new healthcare provider in the healthcare information system, authorizing a procedure, and/or other actions.
- a healthcare provider may be a physician, a doctor's office, a hospital, a minor emergency care center, a physical therapist, and other facilities.
- the action of the business process 144 approving payment of a claim may be conditioned on the rules engine 146 successfully executing a rule that checks that a right hand input being an integer value greater than a threshold value associated with or defined by the left hand variable.
- the left hand variable may represent claimant age and the right hand input may be the age of the subject claimant.
- a rule set may comprise an ordered sequence of rules.
- a rule flow may comprise an ordered sequence of rule sets.
- Rules may be defined, for example, to promote healthcare providers to enroll in a healthcare information system, to promote patients and/or healthcare system members to enroll in a healthcare information system, to promote processing healthcare claims, and other healthcare information system processing.
- the rules may promote determining eligible procedures and/or codes, determining allowable procedure costs, and determining patient eligibility.
- the rules engine 146 may be said to promote enrollment of healthcare providers and healthcare system members and processing of healthcare claims.
- the rules engine 146 may promote enrollment of health care providers and patients in a state operated Medicaid program and promote Medicaid claims processing.
- the right hand input may be constrained to being an integer value.
- the right hand input may be constrained to being an integer value in a specific range of values, for example if the left hand variable represents age of a senior citizen, the right hand input may be constrained to being an integer value in the range from 60 to 130, which may be referred to as checking for an appropriate age for a senior citizen.
- the left hand variable represents the age of anyone
- the right hand input may be constrained to be an integer value in the range from zero to 130, which may be referred to as checking for an appropriate age for a human being.
- the right hand input may be constrained to being a capital “M,” a capital “F.” a lower case “m,” and a lower case “f,” where either “M” or “m” indicates a male and either “F” or “f” indicates a female.
- These constraints may be imposed during execution of the rules engine 146 .
- the rules engine 146 may return a rules return object that is associated with exception codes, indicating the rule did not evaluate successfully.
- the business process 144 takes action based on the rules return object and on the exception codes.
- the templates may be selected using the rule editor 112 from the generic templates 114 to define rules, for example to define conditions comprising a left hand variable associated with a right hand input by a template and/or operator.
- the generic templates 114 may be referred to as generic operators.
- a user interface associated with the rule editor 112 for example a graphical user interface exported to the developer workstation 106 , may provide drop-down menus listing the generic templates 114 .
- the generic templates 114 have been defined and/or customized to extend the native constructs of the IDE application 110 to promote ease and convenience of composing rules and for enhancing the complexity of expression that may be achieved using rules.
- the custom templates 115 have been defined to provide further specialized rules definition expressiveness.
- custom templates 115 include list operators such as IN LIST and NOT IN LIST. Other examples of the custom templates 115 include system parameters, system lists, and valid values.
- the IDE application 110 may be modified to add additional custom templates 115 , for example by an administrator modifying and/or configuring the IDE application 110 software.
- custom templates may exist.
- a system parameter custom template may be provided to define value constraints.
- the system parameter custom templates may be used to define any constraints within the claims processing framework, such as a maximum annual patient charge for a specific procedure, a maximum allowable amount for a specific procedure, and so forth.
- a valid values custom template may be provided to identify valid values for input fields.
- the valid values custom template may be used to verify the values for the place of service performance are valid.
- a systems list custom template may be provided that promotes convenient groupings of valid values.
- the systems list custom template may define the valid values for given circumstances. For example, system lists may be created for different types of professional services, such as dental services and medical services.
- valid values may be used to identify standard valid code values and descriptions for many MMIS fields.
- MMIS fields with valid values are place of service, procedure modifier, and category of service.
- Place of service has many valid values, some of which might be 03 for school, 04 for homeless shelter, 11 for office, 12 for home, and 32 for nursing facility.
- System lists are used to define different groupings of valid values.
- One system list may be created to define all of the possible valid value codes for place of service.
- a second system list may be created for valid places of service for a type of claim, such as an 837 professional claim.
- a third system list may be created for valid places of service for yet another type of claim, such as an 837 dental claim.
- a fourth system list may be created for valid places of service for yet another type of claim, such as 837 institutional claims. All of the codes in the second, third and fourth system lists may also be in the first system list. Some, but not all, of the codes in the system list for place of service in the 837 professional claim are also in the system list for place of service in the 837 dental claim. Conversely, some places of service in an 837 dental claim may not be valid in an 837 professional claim.
- system list 1026 may include all the place of service codes in the Enterprise, and may only contain two valid codes: 11 (Office), and 32 (Nursing Facility).
- Another system list 1083 may include the valid place of service codes for dental claims, and may only contain one valid code: 11 (Office).
- a web portal user interface might use system list 1026 to ensure that any valid place of service code can be associated with a procedure code in the reference subsystem.
- a claims processing business rule might use system list 1083 to post an exception if the place of service in a dental claim is not valid.
- the database custom provider promotes retrieval of two or more columns values from the database. Retrieval of two ore more columns may allow the rules to be executed faster and/or more efficiently.
- the array object custom provider promotes retrieval of all of the elements of an array in one operation. Such may be useful when checking the status of multiple data elements from a single array to validate a rule. For example, when processing a claim for dental fillings, it may be desirable to check whether the patient has had the filled teeth removed in a prior procedure.
- the display name custom provider promotes the use and/or display of data value labels in a consistent format.
- the display name custom provider causes the label “Last Name” to be displayed with a particular data set, as opposed to code-driven labels, such as “lname,” “lastname,” or “last_name.”
- the display name custom provider may comprise a table that cross-references the desired display labels (e.g. “Last Name”) with the data labels encountered in the code (e.g. “lname,” “lastname,” or “last_name”).
- the display name custom provider may over-right the data labels in the code with the display name labels, or may simply access the table and convert the data labels prior to display the labels to the user.
- the input value validation component 116 automatically provides an input value validation code that validates input values associated with the right hand input with respect to a type of the left hand variable of the rule.
- rules, rule sets, and rule flows may be composed by non-computer programmer personnel, for example by SMEs in the business logic of the Enterprise application, such as healthcare information system SMEs.
- the condition of a first rule may be defined to comprise a left hand variable for medical board certification authority, a right hand input for receiving the medical board certification authority under which a specific physician is licensed to practice medicine, and the operator may be the IN LIST custom template.
- the action associated with the condition of the first rule may be continue registration process.
- the condition of a second rule may be defined to comprise a left hand variable for years of licensed practice, a right hand input for receiving the years of practice of the specific physician, and the operator may be GREATER THAN.
- the action associated with the condition of the second rule may be to approve registration of the subject physician.
- the first rule and the second rule may be associated in a rule flow wherein the first rule must succeed or evaluate TRUE before processing the second rule and then, if the second rule evaluates TRUE, the end action is to return a rule return object with no exceptions. In the case that no exceptions are associated with the rule return object, the business process 144 may approve registration or enrollment of the subject physician in the healthcare information system.
- each rule may be stored as a separate file in the rules repository 108 .
- a plurality of rules that form a rule group may be stored together in a file.
- the rules repository 108 may be implemented as a database, for example a relational database, an object-oriented database, or another type of database.
- the rules repository 108 may be implemented as a datastore, for example, a flat file system, a directory based file system, or other kind of datastore.
- the rules engine 146 may execute the rules directly out of the rules repository 108 , run-time advantages may be obtained by compiling or otherwise processing the rules, rule sets, and rule flows using the rule compiler 118 into the compiled rules 148 .
- the rules may be compiled and stored as compiled rules in the rules repository 108 .
- the compiled rules may then be retrieved from the rules repository 108 and loaded into random access memory or other local memory of the process server 140 , represented in FIG. 1 as the compiled rules 148 , when the process server 140 boots or as one or more of the business process 144 and/or the rules engine 146 are initialized.
- the compiled rules 148 may be formatted according to the ADB format.
- This ADB format is a kind of binary format that the rules engine 146 loads into local memory of the process server 140 , for example random access memory (RAM), when the rules engine 146 initializes.
- the rules engine 146 may execute more quickly and efficiently when accessing rules for processing out of the local memory of the process server 140 than when accessing rules out of files stored in a secondary storage device, for example the rules repository 108 .
- the process server 140 may be accessed by the workstations 142 to perform a variety of operations.
- the workstations 142 may invoke functions of a healthcare information system, for example processing Medicaid claims.
- Invoking the functions of the healthcare information system may involve invoking a procedure of the business process 144 , and performing the invoked procedure of the business process 144 may involve the business process 144 invoking the execution of one of the compiled rules 148 by the rules engine 146 .
- the system 100 promotes rapid revision and deployment of changes of the rules.
- the system 100 may provide a MMIS.
- the system 100 may promote simple procedures for modifying rules in response to changes in federal regulations and/or changes in state Medicaid policy.
- the system 100 may promote rapid deployment of the rule changes, for example by compiling rules into ADB format and transferring to the compiled rules 148 .
- rule updates may occur two or three times per year.
- the system 100 has clear utility in concurrently maintaining a plurality of different healthcare management information systems, for example different Medicaid information systems for different states.
- Different rules defined by the compiled rules 148 may apply in each of the different states using the common business process 144 and rules engine 146 . Additionally, rules in the different states may change at different times in response to local legislation or administrative mandates.
- picking a system list in constructing a rule can be performed as follows.
- the rule to be composed is “If the claim line item place of service is not a valid value, then post exception code 1093.”
- a system list for place of service may be accessed to define the second operand of the condition for the rule. For example, a menu drop-down list that is associated with the second operand may be displayed, from which “system list” may be selected.
- a drop-down list that is associated with the selection of “system list” is then displayed, from which “reference” may be selected.
- a drop-down list that is associated with “reference” is displayed, from which “dental claims places of service” may be selected. This selects the system list for valid dental claim places of service as the second operand.
- picking a valid value in constructing a rule can be performed as follows.
- the rule to be composed is “If the claim line item place of service is equal to the valid value for office and the claim line item category of service is physician services, then perform physician pricing.”
- “claim line item place of service” has been defined as the first operand of the first condition of the rule
- “equal to” has been defined as the operator of the first condition of the rule
- that the second condition has been defined as “the claim line item category of service is physician services”
- “perform physician pricing” has been defined as the action of the rule.
- a valid value for place of service can be accessed to define the second operand of the first condition.
- a menu drop-down list that is associated with the second operand is displayed, from which “valid value” may be selected.
- a drop-down list that is associated with the selection of “valid value” is displayed, from which “reference” may be selected.
- a drop-down list that is associated with the selection of “reference” is displayed, from which “all places of service” may be selected.
- a drop-down list that is associated with the selection of “all places of service” may be displayed, from which “office” may be selected. This selects the valid value for the second operand of the first condition of the rule.
- a rule is composed based on selecting one of the generic templates 114 , for example one of the custom templates.
- the rule composition may also identify a left hand variable and a right hand input, wherein the left hand variable is related to the right hand input by the selected one of the generic templates 114 .
- a left hand variable may be the claimant age
- the right hand input may be the age of a subject claimant
- the generic template 114 selected may be GREATER THAN.
- input value validation is automatically incorporated into the rule. For example, using the rule editor 112 , the input value validation component 116 is invoked during rule composition to build input validation into the rule.
- the right hand input for claimant age may be constrained by the input validation built into the rule to be an integer value.
- the process 200 loops back to block 204 . If no more rules are to be composed, the process 200 proceeds to block 216 .
- the rules may be compiled into a format that is suitable for efficient run-time processing by the rules engine 146 , for example into the Fair Isaac ADB binary format.
- the business 144 process is invoked to process a healthcare claim, for example to approve payment of a claim submitted from the workstation 142 .
- the business process 144 invokes the rules engine 146 to process a rule associated with the business process 144 processing the claim.
- the rules engine 146 processes the rule, for example invoking the rule from the compiled rules 148 with the input provided by the business process 144 .
- the rules engine 146 returns a rule return object to the business process 144 that indicates the result of processing the rule.
- the business process completes, for example approving payment the claim based on the rule return object.
- rules engines may be pluggable software components that execute rules that have been externalized from application code.
- the rules define business rules and/or business logic that may change frequently.
- rules may be defined by nonprogrammers and may be provided to the rules engine in the form of data or data files.
- Using a rules engine to provide business rules to an application may reduce time to market and reduce total cost of ownership, with reference to the alternative of encoding the business logic in high level programming language code.
- FIG. 3 illustrates a typical, general-purpose computer system suitable for implementing one or more embodiments disclosed herein.
- the computer system 380 includes a processor 382 (which may be referred to as a central processor unit or CPU) that is in communication with memory devices including secondary storage 384 , read only memory (ROM) 386 , RAM 388 , input/output (I/O) devices 390 , and network connectivity devices 392 .
- the processor 382 may be implemented as one or more CPU chips.
- the secondary storage 384 is typically comprised of one or more disk drives or tape drives and is used for non-volatile storage of data and as an over-flow data storage device if RAM 388 is not large enough to hold all working data. Secondary storage 384 may be used to store programs that are loaded into RAM 388 when such programs are selected for execution.
- the ROM 386 is used to store instructions and perhaps data that are read during program execution. ROM 386 is a non-volatile memory device, which typically has a small memory capacity relative to the larger memory capacity of secondary storage 384 .
- the RAM 388 is used to store volatile data and perhaps to store instructions. Access to both ROM 386 and RAM 388 is typically faster than to secondary storage 384 .
- I/O devices 390 may include printers, video monitors, liquid crystal displays (LCDs), touch screen displays, keyboards, keypads, switches, dials, mice, track balls, voice recognizers, card readers, paper tape readers, or other well-known input devices.
- LCDs liquid crystal displays
- touch screen displays keyboards, keypads, switches, dials, mice, track balls, voice recognizers, card readers, paper tape readers, or other well-known input devices.
- the network connectivity devices 392 may take the form of modems, modem banks, Ethernet cards, universal serial bus (USB) interface cards, serial interfaces, token ring cards, fiber distributed data interface (FDDI) cards, wireless local area network (WLAN) cards, radio transceiver cards such as code division multiple access (CDMA), global system for mobile communications (GSM), and/or worldwide interoperability for microwave access (WiMAX) radio transceiver cards, and other well-known network devices.
- These network connectivity devices 392 may enable the processor 382 to communicate with an Internet or one or more intranets. With such a network connection, it is contemplated that the processor 382 might receive information from the network, or might output information to the network in the course of performing the above-described method steps. Such information, which is often represented as a sequence of instructions to be executed using processor 382 , may be received from and outputted to the network, for example, in the form of a computer data signal embodied in a carrier wave.
- Such information may be received from and outputted to the network, for example, in the form of a computer data baseband signal or signal embodied in a carrier wave.
- the baseband signal or signal embodied in the carrier wave generated by the network connectivity devices 392 may propagate in or on the surface of electrical conductors, in coaxial cables, in waveguides, in optical media, for example optical fiber, or in the air or free space.
- the information contained in the baseband signal or signal embedded in the carrier wave may be ordered according to different sequences, as may be desirable for either processing or generating the information or transmitting or receiving the information.
- the baseband signal or signal embedded in the carrier wave, or other types of signals currently used or hereafter developed, referred to herein as the transmission medium may be generated according to several methods well known to one skilled in the art.
- the processor 382 executes instructions, codes, computer programs, scripts which it accesses from hard disk, floppy disk, optical disk (these various disk based systems may all be considered secondary storage 384 ), ROM 386 , RAM 388 , or the network connectivity devices 392 . While only one processor 382 is shown, multiple processors may be present. Thus, while instructions may be discussed as executed by a processor 382 , the instructions may be executed simultaneously, serially, or otherwise executed by one or multiple processors 382 .
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Marketing (AREA)
- General Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- Educational Administration (AREA)
- Tourism & Hospitality (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Development Economics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Game Theory and Decision Science (AREA)
- Technology Law (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
- Medical Treatment And Welfare Office Work (AREA)
Abstract
Description
- This application claims priority to U.S. Provisional Application Ser. No. 61/048,810 filed Apr. 29, 2008, and entitled “MMIS Health Enterprise Solution,” by Jack Devos, et al., which is incorporated herein by reference for all purposes.
- Not applicable.
- Not applicable.
- The United States Medicaid program was enacted in 1965 to provide a medical assistance program for individuals and families with low incomes. The Medicaid program comprises three main entities—the patients, the healthcare providers, and the agency administering the plan (i.e., the payer). The Medicaid program is financed through joint federal and state funding. The Medicaid program is administered by each state according to an approved state plan. The specifics of the Medicaid program differ from state to state. Differences may include covered healthcare procedures, allowable procedure costs, and patient eligibility criteria. The state administrators of the Medicaid program are required to have a Medicaid management information system (MMIS) that provides for mechanized and/or computerized Medicaid claims processing. Recently, the Medicaid information technology architecture (MITA) has been promulgated by the U.S. government to provide a blueprint and a set of standards that individual states are to follow in administering the Medicaid program and for developing the next generation MMIS.
- In an embodiment, an apparatus is disclosed. The apparatus comprises a computer system and an integrated development environment application. When executed on the computer system, the integrated development environment application promotes defining a plurality of rules based on a plurality of generic templates and automatically incorporating input value validation based on a type of a left hand variable into the rules. The rules, when executed by a healthcare management information system rules engine, promote enrollment of health care providers and healthcare system members and processing of healthcare claims.
- In another embodiment, a method of processing a healthcare claim is disclosed. The method comprises composing a rule from at least one of a generic template, system parameters custom template, a system list custom template, and a valid values custom template. The method also comprises invoking a business process function to process a healthcare claim and the business process invoking the rule to be processed by a rules engine. The method also comprises the rules engine returning the result of processing the rule in a rule return object and the business process approving payment the healthcare claim based on the rule return object.
- In another embodiment, a system is disclosed. The system comprises a computer system and a rules engine framework. When executed on the computer system, the rules engine framework promotes composing a plurality of rules. Each rule is composed at least in part from a left hand variable associated with a right hand input by an operator. The rules engine builder also automatically incorporates into the rules input value validation of the right hand input operand based on the type of the left hand variable. At least some of the rules are composed based on at least one of a generic template, system list custom template, a system parameters custom template, and a valid values custom template. The rules engine builder also builds a healthcare management information system rules engine based at least in part on a plurality of custom providers. The healthcare management information system rules engine promotes enrollment of health care providers and patients and promotes healthcare claims processing.
- These and other features will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings and claims.
- For a more complete understanding of the present disclosure, reference is now made to the following brief description, taken in connection with the accompanying drawings and detailed description, wherein like reference numerals represent like parts.
-
FIG. 1 is a schematic diagram of a rules engine framework according to an embodiment of the disclosure. -
FIG. 2 is a flowchart of a method according to an embodiment of the disclosure. -
FIG. 3 is a schematic diagram of an exemplary general-purpose computer system suitable for implementing the several embodiments of the disclosure. - It should be understood at the outset that although illustrative implementations of one or more embodiments are illustrated below, the disclosed systems and methods may be implemented using any number of techniques, whether currently known or in existence. The disclosure should in no way be limited to the illustrative implementations, drawings, and techniques illustrated below, but may be modified within the scope of the appended claims along with their full scope of equivalents.
- A rules engine framework is disclosed. In an embodiment, the rules engine framework provides additional functionality and ease of use to a commercial-off-the-shelf (COTS) rules engine application. The rules engine application may comprise various support tools including an integrated development environment (IDE) tool for defining and pre-processing rules as well as a rules engine. The rules engine is a computer executable program that processes rules. Generally speaking, rules engines may be pluggable and/or reusable software components that execute rules that have been externalized from application code. The rules define business rules and/or business logic that may change frequently. The rules may be precompiled into a binary format, (.adb format), which may be stored in random access memory for rapid access and execution by a rules engine.
- The framework extends the functionality provided by the COTS rules engine application in a number of ways. For example, the framework extends the COTS rules engine by providing a set of generic templates that may be used to define a condition portion of a rule comprising a condition to be evaluated and an action to be performed if the condition evaluates to TRUE. The generic templates identify the association and/or operation to be performed between a left hand variable and a right hand input of a condition. In some contexts, the left hand variable may be referred to as a left hand operand and the right hand input may be referred to as a right hand operand. The left hand variable may correspond to or identify an input field of an interface, for example a claim processing interface. Generic templates are a piece or snippet of code that can be combined together with operands and/or other generic templates to define a rule. Custom templates are a special case of generic templates that are custom developed as part of the rules engine framework to provide functionality not provided by the COTS rules engine application. A system parameter custom template is provided that promotes convenient definition of value constraints, for example a maximum annual patient charge for a specific procedure. A valid values custom template promotes convenient identification of valid values for input fields, for example valid values for place of service code. A systems list custom template is provided that promotes convenient groupings of valid values. The use of the generic templates of the present disclosure may substantially ease the burden of subject matter experts (SMEs) defining new rules.
- The rules engine framework further comprises a plurality of custom providers that extend the COTS rules engine application including a database custom provider, an array object custom provider, and a display name custom provider. The database custom provider promotes retrieval of two columns values from the database. The array object custom provider promotes retrieval of all of the elements of an array in one operation, which may be useful, for example, when checking status of each of a plurality of common elements such as the presence or absence of 32 teeth in a patient. The display name custom provider promotes the use and/or display of data value labels in a consistent format. For example, the display name custom provider causes the label “Last Name” to be displayed with a particular data set, as opposed to code-driven labels, such as “lname,” “lastname,” or “last_name.”
- In an embodiment, the rules engine framework may be provided as an extension of the COTS IDE tool that executes on a computer system. The rules engine framework may also be provided as an associated rules repository. The rules repository stores the defined rules and other artifacts and objects created by using the integrated development environment application.
- In an embodiment, the rules engine executes on a process server computer system in cooperation and coordination with a business process and the compiled rules. The business process may be invoked to perform a business level operation, for example process a submitted claim. In processing the business level operation, the business process may invoke the rules engine to perform decision logic encapsulated in the form of rules definitions, for example to validate a portion of an input screen and/or a portion of a claim. In an embodiment, the business process and rules engine cooperatively provide at least a portion of a healthcare management information system. In an embodiment, the rules engine and the business process need not execute on the same computer system. A user of the healthcare management information system may interact with the business process and rules engine by entering information and selecting actions from a user interface presented at a workstation communicatively coupled to the process server computer system. The business process may promote enrolling healthcare providers into the healthcare system, for example enrolling physicians, therapists, hospitals, minor emergency medical centers, and other healthcare providers. The business process may also promote enrolling healthcare recipients and/or patients. The business process may promote receiving and processing claims from enrolled healthcare providers for services provided to enrolled healthcare recipients.
- A function of the business process may be invoked by the user of the workstation, for example process a claim for healthcare services. The business process may process this claim by invoking a series of rules and/or a rule flow on the rules engine. The use of rules to provide automated processing may have the advantage of allowing for the rapid creation, modification, and deployment of rules with respect to processing based on specifically designed computer programs. The processing of the claim may involve the rules engine executing a sequence of rules that validate the enrollment of the healthcare provider, validate the enrollment of the healthcare recipient, determine a coverage status of the subject procedure, determine a maximum coverage amount, initiate a funds deposit to pay the claim to the healthcare provider, and/or other healthcare processing actions.
- Turning now to
FIG. 1 , asystem 100 that includes a rules engine framework is discussed. Thesystem 100 comprises acomputer system 102, anetwork 104, adeveloper workstation 106, and arules repository 108. Thecomputer system 102 may contain and/or execute anIDE application 110 used to compose a plurality of rules and to compile the rules into a form suitable for run-time execution. TheIDE application 110 may comprise arule editor 112, arules engine framework 113, and arule compiler 118. Therules engine framework 113 comprises ageneric template framework 114, an inputvalue validation component 116, and a plurality ofcustom providers 117. In some contexts, therules engine framework 113 may also be considered to further comprise therules repository 108. Thegeneric template framework 114 comprises a plurality of generic templates (not shown) and a plurality ofcustom templates 115. Therules engine framework 113 is a novel extension of theIDE application 110 as delivered as a COTS computer application. - The
system 100 may further include aprocess server 140 and a plurality ofworkstations 142. Theprocess server 140 may comprise at least onebusiness process 144, arules engine 146, and a plurality of compiledrules 148. Therules engine 146 may be a pluggable and/or reusable software component and executes rules that are defined using theIDE application 110, in part using therules engine framework 113. Theprocess server 140 provides at least a portion of the Enterprise function, for example at least a portion of a healthcare management information system, to users of theworkstations 142. - The
computer system 102, thedeveloper workstation 106, theprocess server 140, and theworkstations 142 may be implemented as general-purpose computer systems, which are discussed in detail hereinafter. In an embodiment, one or more of thecomputer system 102, thedeveloper workstation 106, theprocess server 140, and theworkstations 142 may be combined and/or distributed in space. For example, in an embodiment, thecomputer system 102 may be located at a central location and one ormore developer workstations 106 may log into thecomputer system 102 and/or establish an editing session from one or more remote locations. Alternatively, theIDE application 110 may be executed on a plurality ofcomputer systems 102, which each execute adeveloper workstation 106. Similarly, theprocess server 140 may be located at a central location and one ormore workstations 142 may log into theprocess server 140, for example from a plurality of remote locations corresponding to different healthcare management information system offices located in population centers distributed throughout a state. Alternatively, a plurality ofprocess servers 140 may be located at different offices located in population centers distributed throughout a state and each of theprocess servers 140 may execute on one ormore workstations 142. - The
IDE application 110 may include some portions of a COTS rules engine tool. The COTS rules engine tool may be customized and/or extended, for example extended by including therules engine framework 113, to provide functionality and convenience otherwise not provided by the COTS rules engine tool. In an embodiment, a Fair Isaac BLAZE ADVISOR COTS rules engine package may be encapsulated in thesystem 100. In an embodiment, theIDE application 110 builds on, extends, or encapsulates a rules management application (RMA) portion of the BLAZE ADVISOR COTS. For example, theIDE application 110 extends the RMA by providing therules engine framework 113 that comprises thegeneric template framework 114 that may be used to compose rules, theinput validation component 116 that promotes automatically providing input validation for the rules defined using theIDE application 110, and thecustom providers 117 that extend the capabilities of the COTS rulesengine 146. As a further extension of the RMA, thegeneric template framework 114 comprises a plurality ofcustom templates 115. - The
rule editor 112 may be executed, for example from thedeveloper workstation 106 or some other workstation, to compose rules, rule sets, and rule flows. In an embodiment, a rule may define a condition linked to a decision action that is performed if the condition evaluates TRUE. The condition comprises a left hand variable associated with a right hand input by a template. The template may be referred to as an operator, the left hand variable may be referred to as a left hand operand, and the right hand input may be referred to as a right hand operand. The decision actions may be used by thebusiness process 144 to make a decision whether to further process a claim, to approve payment of a claim, to reject a claim, or to mark a claim as suspended due to one or more exceptions associated with the claim. The decision actions may be used by thebusiness process 144 to make a decision in registering a new patient and/or healthcare system member in the healthcare information system, registering a new healthcare provider in the healthcare information system, authorizing a procedure, and/or other actions. A healthcare provider may be a physician, a doctor's office, a hospital, a minor emergency care center, a physical therapist, and other facilities. The action of thebusiness process 144 approving payment of a claim, for example, may be conditioned on therules engine 146 successfully executing a rule that checks that a right hand input being an integer value greater than a threshold value associated with or defined by the left hand variable. In another example, the left hand variable may represent claimant age and the right hand input may be the age of the subject claimant. - In an embodiment, a rule set may comprise an ordered sequence of rules. In an embodiment, a rule flow may comprise an ordered sequence of rule sets. Rules may be defined, for example, to promote healthcare providers to enroll in a healthcare information system, to promote patients and/or healthcare system members to enroll in a healthcare information system, to promote processing healthcare claims, and other healthcare information system processing. The rules may promote determining eligible procedures and/or codes, determining allowable procedure costs, and determining patient eligibility. By processing the rules, the
rules engine 146 may be said to promote enrollment of healthcare providers and healthcare system members and processing of healthcare claims. In an embodiment, therules engine 146 may promote enrollment of health care providers and patients in a state operated Medicaid program and promote Medicaid claims processing. - There may be constraints imposed on the values that can be provided to the right hand side input, based on the left hand variable. For example, if the left hand variable represents age, the right hand input may be constrained to being an integer value. Depending upon the specific rule, the right hand input may be constrained to being an integer value in a specific range of values, for example if the left hand variable represents age of a senior citizen, the right hand input may be constrained to being an integer value in the range from 60 to 130, which may be referred to as checking for an appropriate age for a senior citizen. Alternatively, if the left hand variable represents the age of anyone, the right hand input may be constrained to be an integer value in the range from zero to 130, which may be referred to as checking for an appropriate age for a human being. As another example, if the left hand variable represents sex of a patient, the right hand input may be constrained to being a capital “M,” a capital “F.” a lower case “m,” and a lower case “f,” where either “M” or “m” indicates a male and either “F” or “f” indicates a female. These constraints may be imposed during execution of the
rules engine 146. When the constraints are not satisfied, therules engine 146 may return a rules return object that is associated with exception codes, indicating the rule did not evaluate successfully. Thebusiness process 144 takes action based on the rules return object and on the exception codes. - The templates, including
custom templates 115, may be selected using therule editor 112 from thegeneric templates 114 to define rules, for example to define conditions comprising a left hand variable associated with a right hand input by a template and/or operator. In some contexts, thegeneric templates 114 may be referred to as generic operators. A user interface associated with therule editor 112, for example a graphical user interface exported to thedeveloper workstation 106, may provide drop-down menus listing thegeneric templates 114. Thegeneric templates 114 have been defined and/or customized to extend the native constructs of theIDE application 110 to promote ease and convenience of composing rules and for enhancing the complexity of expression that may be achieved using rules. Thecustom templates 115 have been defined to provide further specialized rules definition expressiveness. Some examples of thecustom templates 115 include list operators such as IN LIST and NOT IN LIST. Other examples of thecustom templates 115 include system parameters, system lists, and valid values. TheIDE application 110 may be modified to addadditional custom templates 115, for example by an administrator modifying and/or configuring theIDE application 110 software. - Various types of custom templates may exist. For example, a system parameter custom template may be provided to define value constraints. The system parameter custom templates may be used to define any constraints within the claims processing framework, such as a maximum annual patient charge for a specific procedure, a maximum allowable amount for a specific procedure, and so forth. In addition, a valid values custom template may be provided to identify valid values for input fields. For example, the valid values custom template may be used to verify the values for the place of service performance are valid. Finally, a systems list custom template may be provided that promotes convenient groupings of valid values. The systems list custom template may define the valid values for given circumstances. For example, system lists may be created for different types of professional services, such as dental services and medical services.
- More specifically, valid values may be used to identify standard valid code values and descriptions for many MMIS fields. Examples of MMIS fields with valid values are place of service, procedure modifier, and category of service. Place of service has many valid values, some of which might be 03 for school, 04 for homeless shelter, 11 for office, 12 for home, and 32 for nursing facility. System lists are used to define different groupings of valid values. One system list may be created to define all of the possible valid value codes for place of service. A second system list may be created for valid places of service for a type of claim, such as an 837 professional claim. A third system list may be created for valid places of service for yet another type of claim, such as an 837 dental claim. A fourth system list may be created for valid places of service for yet another type of claim, such as 837 institutional claims. All of the codes in the second, third and fourth system lists may also be in the first system list. Some, but not all, of the codes in the system list for place of service in the 837 professional claim are also in the system list for place of service in the 837 dental claim. Conversely, some places of service in an 837 dental claim may not be valid in an 837 professional claim. In a specific example, system list 1026 may include all the place of service codes in the Enterprise, and may only contain two valid codes: 11 (Office), and 32 (Nursing Facility). Another system list 1083 may include the valid place of service codes for dental claims, and may only contain one valid code: 11 (Office). A web portal user interface might use system list 1026 to ensure that any valid place of service code can be associated with a procedure code in the reference subsystem. Similarly, a claims processing business rule might use system list 1083 to post an exception if the place of service in a dental claim is not valid.
- Various types of custom providers that extend the COTS rules engine application may exist. For example, the database custom provider promotes retrieval of two or more columns values from the database. Retrieval of two ore more columns may allow the rules to be executed faster and/or more efficiently. In addition, the array object custom provider promotes retrieval of all of the elements of an array in one operation. Such may be useful when checking the status of multiple data elements from a single array to validate a rule. For example, when processing a claim for dental fillings, it may be desirable to check whether the patient has had the filled teeth removed in a prior procedure. Finally, the display name custom provider promotes the use and/or display of data value labels in a consistent format. For example, the display name custom provider causes the label “Last Name” to be displayed with a particular data set, as opposed to code-driven labels, such as “lname,” “lastname,” or “last_name.” The display name custom provider may comprise a table that cross-references the desired display labels (e.g. “Last Name”) with the data labels encountered in the code (e.g. “lname,” “lastname,” or “last_name”). The display name custom provider may over-right the data labels in the code with the display name labels, or may simply access the table and convert the data labels prior to display the labels to the user.
- As the rule is composed using the
rule editor 112, the inputvalue validation component 116 automatically provides an input value validation code that validates input values associated with the right hand input with respect to a type of the left hand variable of the rule. Using therule editor 112, rules, rule sets, and rule flows may be composed by non-computer programmer personnel, for example by SMEs in the business logic of the Enterprise application, such as healthcare information system SMEs. For example, the condition of a first rule may be defined to comprise a left hand variable for medical board certification authority, a right hand input for receiving the medical board certification authority under which a specific physician is licensed to practice medicine, and the operator may be the IN LIST custom template. The action associated with the condition of the first rule may be continue registration process. The condition of a second rule may be defined to comprise a left hand variable for years of licensed practice, a right hand input for receiving the years of practice of the specific physician, and the operator may be GREATER THAN. The action associated with the condition of the second rule may be to approve registration of the subject physician. The first rule and the second rule may be associated in a rule flow wherein the first rule must succeed or evaluate TRUE before processing the second rule and then, if the second rule evaluates TRUE, the end action is to return a rule return object with no exceptions. In the case that no exceptions are associated with the rule return object, thebusiness process 144 may approve registration or enrollment of the subject physician in the healthcare information system. - As the rules, rule sets, and rule flows are composed using the
rule editor 112, they may be stored in therules repository 108. In an embodiment, each rule may be stored as a separate file in therules repository 108. In another embodiment, however, a plurality of rules that form a rule group may be stored together in a file. In an embodiment, therules repository 108 may be implemented as a database, for example a relational database, an object-oriented database, or another type of database. In an embodiment, therules repository 108 may be implemented as a datastore, for example, a flat file system, a directory based file system, or other kind of datastore. - While the
rules engine 146 may execute the rules directly out of therules repository 108, run-time advantages may be obtained by compiling or otherwise processing the rules, rule sets, and rule flows using therule compiler 118 into the compiled rules 148. In an embodiment, the rules may be compiled and stored as compiled rules in therules repository 108. The compiled rules may then be retrieved from therules repository 108 and loaded into random access memory or other local memory of theprocess server 140, represented inFIG. 1 as the compiledrules 148, when theprocess server 140 boots or as one or more of thebusiness process 144 and/or therules engine 146 are initialized. In an embodiment, the compiledrules 148 may be formatted according to the ADB format. This ADB format is a kind of binary format that therules engine 146 loads into local memory of theprocess server 140, for example random access memory (RAM), when therules engine 146 initializes. Therules engine 146 may execute more quickly and efficiently when accessing rules for processing out of the local memory of theprocess server 140 than when accessing rules out of files stored in a secondary storage device, for example therules repository 108. When deployed for service, theprocess server 140 may be accessed by theworkstations 142 to perform a variety of operations. In an embodiment, theworkstations 142 may invoke functions of a healthcare information system, for example processing Medicaid claims. Invoking the functions of the healthcare information system may involve invoking a procedure of thebusiness process 144, and performing the invoked procedure of thebusiness process 144 may involve thebusiness process 144 invoking the execution of one of the compiledrules 148 by therules engine 146. - The
system 100 promotes rapid revision and deployment of changes of the rules. In an exemplary embodiment, thesystem 100 may provide a MMIS. Thesystem 100 may promote simple procedures for modifying rules in response to changes in federal regulations and/or changes in state Medicaid policy. Thesystem 100 may promote rapid deployment of the rule changes, for example by compiling rules into ADB format and transferring to the compiled rules 148. In some state MMIS systems, rule updates may occur two or three times per year. Thesystem 100 has clear utility in concurrently maintaining a plurality of different healthcare management information systems, for example different Medicaid information systems for different states. Different rules defined by the compiledrules 148 may apply in each of the different states using thecommon business process 144 andrules engine 146. Additionally, rules in the different states may change at different times in response to local legislation or administrative mandates. Some examples of composing rules using theIDE 110 are described below. - In an embodiment, picking a system list in constructing a rule can be performed as follows. Suppose the rule to be composed is “If the claim line item place of service is not a valid value, then post exception code 1093.” Assume that “dental claim line item place of service” has been defined as the first operand of the condition of the rule, that “not in” has been defined as the operator of the condition of the rule, and that “post exception code 1093” has been defined as the action of the rule. A system list for place of service may be accessed to define the second operand of the condition for the rule. For example, a menu drop-down list that is associated with the second operand may be displayed, from which “system list” may be selected. A drop-down list that is associated with the selection of “system list” is then displayed, from which “reference” may be selected. Next, a drop-down list that is associated with “reference” is displayed, from which “dental claims places of service” may be selected. This selects the system list for valid dental claim places of service as the second operand.
- In an embodiment, picking a valid value in constructing a rule can be performed as follows. Suppose the rule to be composed is “If the claim line item place of service is equal to the valid value for office and the claim line item category of service is physician services, then perform physician pricing.” Assume that “claim line item place of service” has been defined as the first operand of the first condition of the rule, that “equal to” has been defined as the operator of the first condition of the rule, that the second condition has been defined as “the claim line item category of service is physician services,” and that “perform physician pricing” has been defined as the action of the rule. A valid value for place of service can be accessed to define the second operand of the first condition. For example, a menu drop-down list that is associated with the second operand is displayed, from which “valid value” may be selected. A drop-down list that is associated with the selection of “valid value” is displayed, from which “reference” may be selected. Next, a drop-down list that is associated with the selection of “reference” is displayed, from which “all places of service” may be selected. Finally, a drop-down list that is associated with the selection of “all places of service” may be displayed, from which “office” may be selected. This selects the valid value for the second operand of the first condition of the rule.
- Turning now to
FIG. 2 , amethod 200 is described. Atblock 204, a rule is composed based on selecting one of thegeneric templates 114, for example one of the custom templates. The rule composition may also identify a left hand variable and a right hand input, wherein the left hand variable is related to the right hand input by the selected one of thegeneric templates 114. For example, a left hand variable may be the claimant age, the right hand input may be the age of a subject claimant, and thegeneric template 114 selected may be GREATER THAN. Atblock 208, input value validation is automatically incorporated into the rule. For example, using therule editor 112, the inputvalue validation component 116 is invoked during rule composition to build input validation into the rule. For example, the right hand input for claimant age may be constrained by the input validation built into the rule to be an integer value. Atblock 212, if more rules are to be composed, theprocess 200 loops back to block 204. If no more rules are to be composed, theprocess 200 proceeds to block 216. Atblock 216, the rules may be compiled into a format that is suitable for efficient run-time processing by therules engine 146, for example into the Fair Isaac ADB binary format. - At
block 220, thebusiness 144 process is invoked to process a healthcare claim, for example to approve payment of a claim submitted from theworkstation 142. Atblock 224, thebusiness process 144 invokes therules engine 146 to process a rule associated with thebusiness process 144 processing the claim. Atblock 228, therules engine 146 processes the rule, for example invoking the rule from the compiledrules 148 with the input provided by thebusiness process 144. Therules engine 146 returns a rule return object to thebusiness process 144 that indicates the result of processing the rule. Atblock 232 the business process completes, for example approving payment the claim based on the rule return object. - As described above, rules engines may be pluggable software components that execute rules that have been externalized from application code. The rules define business rules and/or business logic that may change frequently. Typically, rules may be defined by nonprogrammers and may be provided to the rules engine in the form of data or data files. Using a rules engine to provide business rules to an application may reduce time to market and reduce total cost of ownership, with reference to the alternative of encoding the business logic in high level programming language code.
- Some aspects of the
system 100 described above may be implemented on any general-purpose computer with sufficient processing power, memory resources, and network throughput capability to handle the necessary workload placed upon it. For example, thecomputer system 102, thedeveloper workstation 106, theprocess server 140, and theworkstation 142 each may be implemented as a general-purpose computer system.FIG. 3 illustrates a typical, general-purpose computer system suitable for implementing one or more embodiments disclosed herein. Thecomputer system 380 includes a processor 382 (which may be referred to as a central processor unit or CPU) that is in communication with memory devices includingsecondary storage 384, read only memory (ROM) 386,RAM 388, input/output (I/O)devices 390, andnetwork connectivity devices 392. Theprocessor 382 may be implemented as one or more CPU chips. - The
secondary storage 384 is typically comprised of one or more disk drives or tape drives and is used for non-volatile storage of data and as an over-flow data storage device ifRAM 388 is not large enough to hold all working data.Secondary storage 384 may be used to store programs that are loaded intoRAM 388 when such programs are selected for execution. TheROM 386 is used to store instructions and perhaps data that are read during program execution.ROM 386 is a non-volatile memory device, which typically has a small memory capacity relative to the larger memory capacity ofsecondary storage 384. TheRAM 388 is used to store volatile data and perhaps to store instructions. Access to bothROM 386 andRAM 388 is typically faster than tosecondary storage 384. - I/
O devices 390 may include printers, video monitors, liquid crystal displays (LCDs), touch screen displays, keyboards, keypads, switches, dials, mice, track balls, voice recognizers, card readers, paper tape readers, or other well-known input devices. - The
network connectivity devices 392 may take the form of modems, modem banks, Ethernet cards, universal serial bus (USB) interface cards, serial interfaces, token ring cards, fiber distributed data interface (FDDI) cards, wireless local area network (WLAN) cards, radio transceiver cards such as code division multiple access (CDMA), global system for mobile communications (GSM), and/or worldwide interoperability for microwave access (WiMAX) radio transceiver cards, and other well-known network devices. Thesenetwork connectivity devices 392 may enable theprocessor 382 to communicate with an Internet or one or more intranets. With such a network connection, it is contemplated that theprocessor 382 might receive information from the network, or might output information to the network in the course of performing the above-described method steps. Such information, which is often represented as a sequence of instructions to be executed usingprocessor 382, may be received from and outputted to the network, for example, in the form of a computer data signal embodied in a carrier wave. - Such information, which may include data or instructions to be executed using
processor 382 for example, may be received from and outputted to the network, for example, in the form of a computer data baseband signal or signal embodied in a carrier wave. The baseband signal or signal embodied in the carrier wave generated by thenetwork connectivity devices 392 may propagate in or on the surface of electrical conductors, in coaxial cables, in waveguides, in optical media, for example optical fiber, or in the air or free space. The information contained in the baseband signal or signal embedded in the carrier wave may be ordered according to different sequences, as may be desirable for either processing or generating the information or transmitting or receiving the information. The baseband signal or signal embedded in the carrier wave, or other types of signals currently used or hereafter developed, referred to herein as the transmission medium, may be generated according to several methods well known to one skilled in the art. - The
processor 382 executes instructions, codes, computer programs, scripts which it accesses from hard disk, floppy disk, optical disk (these various disk based systems may all be considered secondary storage 384),ROM 386,RAM 388, or thenetwork connectivity devices 392. While only oneprocessor 382 is shown, multiple processors may be present. Thus, while instructions may be discussed as executed by aprocessor 382, the instructions may be executed simultaneously, serially, or otherwise executed by one ormultiple processors 382. - While several embodiments have been provided in the present disclosure, it should be understood that the disclosed systems and methods might be embodied in many other specific forms without departing from the spirit or scope of the present disclosure. The present examples are to be considered as illustrative and not restrictive, and the intention is not to be limited to the details given herein. For example, the various elements or components may be combined or integrated in another system or certain features may be omitted or not implemented.
- In addition, techniques, systems, subsystems, and methods described and illustrated in the various embodiments as discrete or separate may be combined or integrated with other systems, modules, techniques, or methods without departing from the scope of the present disclosure. Other items shown or discussed as directly coupled or communicating with each other may be indirectly coupled or communicating through some interface, device, or intermediate component, whether electrically, mechanically, or otherwise. Other examples of changes, substitutions, and alterations are ascertainable by one skilled in the art and could be made without departing from the spirit and scope disclosed herein.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/257,782 US20090271214A1 (en) | 2008-04-29 | 2008-10-24 | Rules engine framework |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US4881008P | 2008-04-29 | 2008-04-29 | |
US12/257,782 US20090271214A1 (en) | 2008-04-29 | 2008-10-24 | Rules engine framework |
Publications (1)
Publication Number | Publication Date |
---|---|
US20090271214A1 true US20090271214A1 (en) | 2009-10-29 |
Family
ID=41215889
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/257,782 Abandoned US20090271214A1 (en) | 2008-04-29 | 2008-10-24 | Rules engine framework |
US12/323,707 Abandoned US20090271351A1 (en) | 2008-04-29 | 2008-11-26 | Rules engine test harness |
US12/416,746 Active 2030-01-23 US8103683B2 (en) | 2008-04-29 | 2009-04-01 | Converting between software objects |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/323,707 Abandoned US20090271351A1 (en) | 2008-04-29 | 2008-11-26 | Rules engine test harness |
US12/416,746 Active 2030-01-23 US8103683B2 (en) | 2008-04-29 | 2009-04-01 | Converting between software objects |
Country Status (1)
Country | Link |
---|---|
US (3) | US20090271214A1 (en) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090271351A1 (en) * | 2008-04-29 | 2009-10-29 | Affiliated Computer Services, Inc. | Rules engine test harness |
US20110055801A1 (en) * | 2009-09-03 | 2011-03-03 | Von Unwerth Catherine D | Industry standards modeling systems and methods |
US8429391B2 (en) | 2010-04-16 | 2013-04-23 | Micron Technology, Inc. | Boot partitions in memory devices and systems |
US8494997B2 (en) | 2010-07-20 | 2013-07-23 | Samuel W. Bellamy, III | System and method for validation of transaction data |
US8505047B2 (en) | 2010-11-20 | 2013-08-06 | Motorola Solutions, Inc. | Method and system for policy-based re-broadcast video on demand service |
US8660861B2 (en) | 2012-01-24 | 2014-02-25 | Fmr Llc | Allocation of financial incentives for employee wellness programs |
US20140122518A1 (en) * | 2012-10-29 | 2014-05-01 | Hewlett-Packard Development Company, L.P. | Codeless array validation |
US20150160938A1 (en) * | 2013-12-10 | 2015-06-11 | Fmr Llc | Automation in rule engine in an integration development environment |
CN110209575A (en) * | 2019-05-20 | 2019-09-06 | 深圳壹账通智能科技有限公司 | Test document generation method, device, electronic equipment and storage medium |
US10621523B1 (en) * | 2012-05-09 | 2020-04-14 | Parvinder CHADHA | Computer methods and computer systems for facilitating business rule generation and validation |
CN113176995A (en) * | 2021-04-28 | 2021-07-27 | 平安银行股份有限公司 | Interface testing method, device, equipment and medium based on testing scene |
WO2023205678A1 (en) * | 2022-04-19 | 2023-10-26 | Tencent America LLC | Tools for conformance of network-based media processing (nbmp) documents and entities |
US11989661B1 (en) * | 2023-07-24 | 2024-05-21 | Morgan Stanley Services Group Inc. | Dynamic rules for rules engines |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7836346B1 (en) * | 2007-06-11 | 2010-11-16 | Oracle America, Inc. | Method and system for analyzing software test results |
US10102091B2 (en) | 2008-06-04 | 2018-10-16 | Oracle International Corporation | System and method for supporting a testing framework for an event processing system using multiple input event streams |
US10140196B2 (en) | 2008-06-04 | 2018-11-27 | Oracle International Corporation | System and method for configuring a sliding window for testing an event processing system based on a system time |
US8458204B2 (en) * | 2009-09-22 | 2013-06-04 | Siemens Product Lifecycle Management Software Inc. | System and method for customized file comparison |
DE102010021382A1 (en) * | 2010-05-25 | 2011-12-01 | Abb Ag | Method and system for generating an integration model |
EP2681680A4 (en) | 2011-03-03 | 2014-05-07 | Hewlett Packard Development Co | Testing integrated business systems |
US8893087B2 (en) * | 2011-08-08 | 2014-11-18 | Ca, Inc. | Automating functionality test cases |
US8621074B2 (en) | 2012-04-27 | 2013-12-31 | Xerox Business Services, Llc | Intelligent work load manager |
US9990598B2 (en) * | 2013-02-15 | 2018-06-05 | Allscripts Software, Llc | Apparatuses, systems, and methods for providing a rules engine system |
US20150032907A1 (en) * | 2013-07-26 | 2015-01-29 | Alcatel-Lucent Canada, Inc. | Universal adapter with context-bound translation for application adaptation layer |
FR3018118B1 (en) * | 2014-02-28 | 2016-04-29 | Airbus Helicopters | METHOD FOR TESTING AN ELECTRONIC SYSTEM |
US10146678B2 (en) | 2014-05-15 | 2018-12-04 | Oracle International Corporation | Test bundling and batching optimizations |
US20150331875A1 (en) * | 2014-05-16 | 2015-11-19 | Syntel, Inc. | System and method for validating integrated data recasting objects |
US11080178B2 (en) | 2018-12-28 | 2021-08-03 | Paypal, Inc. | Rules testing framework |
CN110674047B (en) * | 2019-09-26 | 2023-06-27 | 北京字节跳动网络技术有限公司 | Software testing method and device and electronic equipment |
US11645195B1 (en) * | 2020-02-18 | 2023-05-09 | Wells Fargo Bank, N.A. | Auto-decisioning test interface and test database for bypassing functionalities of decision engines and simulating return values |
CN111552645B (en) * | 2020-04-29 | 2023-05-12 | 周赟 | Open type safety compliance penetration test system |
CN112015636A (en) * | 2020-07-14 | 2020-12-01 | 北京淇瑀信息科技有限公司 | Decision engine testing method and device based on support vector machine and electronic equipment |
US20220138089A1 (en) * | 2020-10-30 | 2022-05-05 | EMC IP Holding Company LLC | Smart test executor |
CN112182044A (en) * | 2020-11-10 | 2021-01-05 | 平安普惠企业管理有限公司 | Rule engine testing method and device and computer equipment |
CN112445461B (en) * | 2020-11-13 | 2024-06-25 | 中信银行股份有限公司 | Business rule generation method and device, electronic equipment and readable storage medium |
CN116340187B (en) * | 2023-05-25 | 2023-08-15 | 建信金融科技有限责任公司 | Rule engine migration test method and device, electronic equipment and storage medium |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7013284B2 (en) * | 1999-05-04 | 2006-03-14 | Accenture Llp | Component based interface to handle tasks during claim processing |
US20070157155A1 (en) * | 2005-12-30 | 2007-07-05 | Peters Eric C | System and method for software generation and execution |
US20090271351A1 (en) * | 2008-04-29 | 2009-10-29 | Affiliated Computer Services, Inc. | Rules engine test harness |
US7617240B2 (en) * | 1999-05-04 | 2009-11-10 | Accenture Llp | Component based task handling during claim processing |
Family Cites Families (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6283761B1 (en) * | 1992-09-08 | 2001-09-04 | Raymond Anthony Joao | Apparatus and method for processing and/or for providing healthcare information and/or healthcare-related information |
US5786816A (en) * | 1995-10-20 | 1998-07-28 | Araxsys, Inc. | Method and apparatus for graphical user interface-based and variable result healthcare plan |
US6039688A (en) * | 1996-11-01 | 2000-03-21 | Salus Media Inc. | Therapeutic behavior modification program, compliance monitoring and feedback system |
US5881219A (en) * | 1996-12-26 | 1999-03-09 | International Business Machines Corporation | Random reliability engine for testing distributed environments |
US6047284A (en) * | 1997-05-14 | 2000-04-04 | Portal Software, Inc. | Method and apparatus for object oriented storage and retrieval of data from a relational database |
US6915265B1 (en) * | 1997-10-29 | 2005-07-05 | Janice Johnson | Method and system for consolidating and distributing information |
US6343271B1 (en) * | 1998-07-17 | 2002-01-29 | P5 E.Health Services, Inc. | Electronic creation, submission, adjudication, and payment of health insurance claims |
US6429882B1 (en) * | 1999-03-15 | 2002-08-06 | Sun Microsystems, Inc. | User interface component |
US6934934B1 (en) * | 1999-08-30 | 2005-08-23 | Empirix Inc. | Method and system for software object testing |
US7720691B2 (en) * | 2000-10-11 | 2010-05-18 | Healthtrio Llc | System for communication of health care data |
US20020091968A1 (en) * | 2001-01-08 | 2002-07-11 | Donald Moreaux | Object-oriented data driven software GUI automated test harness |
US6931429B2 (en) * | 2001-04-27 | 2005-08-16 | Left Gate Holdings, Inc. | Adaptable wireless proximity networking |
WO2002097571A2 (en) * | 2001-05-29 | 2002-12-05 | Becton, Dickinson And Company | Health care management system and method |
US6865573B1 (en) * | 2001-07-27 | 2005-03-08 | Oracle International Corporation | Data mining application programming interface |
US7917895B2 (en) * | 2001-07-27 | 2011-03-29 | Smartesoft, Inc. | Automated software testing and validation system |
US6986125B2 (en) * | 2001-08-01 | 2006-01-10 | International Business Machines Corporation | Method and apparatus for testing and evaluating a software component using an abstraction matrix |
US6917944B1 (en) * | 2001-08-30 | 2005-07-12 | Cisco Technology, Inc. | Method and apparatus for configuring access to a plurality of data repositories |
US20030069760A1 (en) * | 2001-10-04 | 2003-04-10 | Arthur Gelber | System and method for processing and pre-adjudicating patient benefit claims |
US6993748B2 (en) * | 2001-10-26 | 2006-01-31 | Capital One Financial Corporation | Systems and methods for table driven automation testing of software programs |
US20030233253A1 (en) * | 2002-04-30 | 2003-12-18 | Peth Thomas C. | Point-of-care clinical documentation software system and associated methods |
US20040078228A1 (en) * | 2002-05-31 | 2004-04-22 | Fitzgerald David | System for monitoring healthcare patient encounter related information |
WO2004086198A2 (en) * | 2003-03-24 | 2004-10-07 | Siebel Systems, Inc. | Common common object |
US7657442B2 (en) * | 2003-07-08 | 2010-02-02 | Richard Merkin | Health care administration method |
US20050144529A1 (en) * | 2003-10-01 | 2005-06-30 | Helmut Gotz | Method for defined derivation of software tests from use cases |
JP2007535723A (en) * | 2003-11-04 | 2007-12-06 | キンバリー クラーク ワールドワイド インコーポレイテッド | A test tool including an automatic multidimensional traceability matrix for implementing and verifying a composite software system |
US7480894B2 (en) * | 2004-02-20 | 2009-01-20 | International Business Machines Corporation | Method and system for retaining formal data model descriptions between server-side and browser-side javascript objects |
US20050209893A1 (en) * | 2004-03-18 | 2005-09-22 | Nahra John S | System and method for identifying and servicing medically uninsured persons |
US7039628B2 (en) * | 2004-04-21 | 2006-05-02 | Logan Jr Carmen | Portable health care history information system |
US20060052965A1 (en) * | 2004-08-13 | 2006-03-09 | International Business Machines Corporation | Event driven testing method, system and program product |
US20080312951A1 (en) * | 2004-08-25 | 2008-12-18 | Berd Herpichboehm | Method for Optimizing Design Delivery and Implementation of Innovative Products in Healthcare |
US7756882B2 (en) * | 2004-10-01 | 2010-07-13 | Microsoft Corporation | Method and apparatus for elegant mapping between data models |
WO2006050056A2 (en) * | 2004-10-29 | 2006-05-11 | Upstream Software, Inc. | Transaction network |
US20060129992A1 (en) * | 2004-11-10 | 2006-06-15 | Oberholtzer Brian K | Software test and performance monitoring system |
US20060143050A1 (en) * | 2004-12-27 | 2006-06-29 | The Trizetto Group, Inc. | Healthcare management system using patient profile data |
US7440955B2 (en) * | 2005-01-14 | 2008-10-21 | Im2, Inc | Method and system to compare data objects |
EP1708099A1 (en) * | 2005-03-29 | 2006-10-04 | BRITISH TELECOMMUNICATIONS public limited company | Schema matching |
US20060224719A1 (en) * | 2005-03-30 | 2006-10-05 | Integrated Informatics, Inc. | Operator simulator and non-invasive interface engine |
US20070006037A1 (en) * | 2005-06-29 | 2007-01-04 | Microsoft Corporation | Automated test case result analyzer |
US7747569B2 (en) * | 2006-09-22 | 2010-06-29 | Raytheon Company | Systems, methods, and language for selection and retrieval of information from databases |
US7870412B2 (en) * | 2006-09-28 | 2011-01-11 | Oracle International Corporation | Passing client or server instructions via synchronized data objects |
US20080097789A1 (en) * | 2006-10-24 | 2008-04-24 | Huffer Robert L | Quality Management Of Patient Data For Health Care Providers |
US7656802B2 (en) * | 2006-11-14 | 2010-02-02 | International Business Machines Corporation | Simulating services on demand |
US20080275729A1 (en) * | 2007-04-09 | 2008-11-06 | Nina Mithi Taggart | System and method for population health management |
-
2008
- 2008-10-24 US US12/257,782 patent/US20090271214A1/en not_active Abandoned
- 2008-11-26 US US12/323,707 patent/US20090271351A1/en not_active Abandoned
-
2009
- 2009-04-01 US US12/416,746 patent/US8103683B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7013284B2 (en) * | 1999-05-04 | 2006-03-14 | Accenture Llp | Component based interface to handle tasks during claim processing |
US7617240B2 (en) * | 1999-05-04 | 2009-11-10 | Accenture Llp | Component based task handling during claim processing |
US20070157155A1 (en) * | 2005-12-30 | 2007-07-05 | Peters Eric C | System and method for software generation and execution |
US20090271351A1 (en) * | 2008-04-29 | 2009-10-29 | Affiliated Computer Services, Inc. | Rules engine test harness |
Non-Patent Citations (5)
Title |
---|
Definition, "define" as downloaded from Google on 9/15/2016 * |
Definition, "promote" as downloaded from Googel on 9/15/2016 * |
Definition, "promotes" as downloaded from Google on 9/2/2015 * |
Defintion, "identify" as downloaded from Google on 9/15/2016 * |
Lunsford, Dale L., "Tutorial 1, Introduction to Tables, Forms, and Menus." 12/2007 as downloaded from acme.highpoint.edu/`dlunsfor/isdoctor/ * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090271351A1 (en) * | 2008-04-29 | 2009-10-29 | Affiliated Computer Services, Inc. | Rules engine test harness |
US20110055801A1 (en) * | 2009-09-03 | 2011-03-03 | Von Unwerth Catherine D | Industry standards modeling systems and methods |
US8762703B2 (en) | 2010-04-16 | 2014-06-24 | Micron Technology, Inc. | Boot partitions in memory devices and systems |
US8429391B2 (en) | 2010-04-16 | 2013-04-23 | Micron Technology, Inc. | Boot partitions in memory devices and systems |
US9342371B2 (en) | 2010-04-16 | 2016-05-17 | Micron Technology, Inc. | Boot partitions in memory devices and systems |
US8494997B2 (en) | 2010-07-20 | 2013-07-23 | Samuel W. Bellamy, III | System and method for validation of transaction data |
US8505047B2 (en) | 2010-11-20 | 2013-08-06 | Motorola Solutions, Inc. | Method and system for policy-based re-broadcast video on demand service |
US8660861B2 (en) | 2012-01-24 | 2014-02-25 | Fmr Llc | Allocation of financial incentives for employee wellness programs |
US10621523B1 (en) * | 2012-05-09 | 2020-04-14 | Parvinder CHADHA | Computer methods and computer systems for facilitating business rule generation and validation |
US20140122518A1 (en) * | 2012-10-29 | 2014-05-01 | Hewlett-Packard Development Company, L.P. | Codeless array validation |
US20150160938A1 (en) * | 2013-12-10 | 2015-06-11 | Fmr Llc | Automation in rule engine in an integration development environment |
CN110209575A (en) * | 2019-05-20 | 2019-09-06 | 深圳壹账通智能科技有限公司 | Test document generation method, device, electronic equipment and storage medium |
CN113176995A (en) * | 2021-04-28 | 2021-07-27 | 平安银行股份有限公司 | Interface testing method, device, equipment and medium based on testing scene |
WO2023205678A1 (en) * | 2022-04-19 | 2023-10-26 | Tencent America LLC | Tools for conformance of network-based media processing (nbmp) documents and entities |
US11989661B1 (en) * | 2023-07-24 | 2024-05-21 | Morgan Stanley Services Group Inc. | Dynamic rules for rules engines |
Also Published As
Publication number | Publication date |
---|---|
US8103683B2 (en) | 2012-01-24 |
US20090271426A1 (en) | 2009-10-29 |
US20090271351A1 (en) | 2009-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20090271214A1 (en) | Rules engine framework | |
Stead et al. | Integration and beyond: linking information from disparate sources and into workflow | |
CN107895286B (en) | Claim amount determining method and device, storage medium and electronic equipment | |
US10607733B2 (en) | System and method for ensuring medical benefit claim payment neutrality between different disease classification codes | |
US20050102170A1 (en) | System for processing transaction data | |
JP4959655B2 (en) | High performance rule engine | |
CN113508439A (en) | Providing personalized healthcare information and treatment recommendations | |
WO2011087919A2 (en) | Software development and distribution workflow employing meta-object time stamping | |
US20140114673A1 (en) | Mapping a care plan template to a case model | |
Asare et al. | Conformance checking: Workflow of hospitals and workflow of open-source EMRs | |
Monda et al. | Data integrity module for data quality assurance within an e-health system in sub-Saharan Africa | |
Atanasovski et al. | On defining a model driven architecture for an enterprise e-health system | |
Sutcliffe | The CADE-26 automated theorem proving system competition–CASC-26 | |
Highfield et al. | Interactive web-based portals to improve patient navigation and connect patients with primary care and specialty services in underserved communities | |
US20160321124A1 (en) | Request processing system that maps errors to corresponding data sources | |
WO2011103523A1 (en) | Clinical payment network system and methods | |
CN111124394A (en) | Form configuration method and device based on metadata, equipment and medium | |
US7831442B1 (en) | System and method for minimizing edits for medical insurance claims processing | |
Neira et al. | Extraction of data from a hospital information system to perform process mining | |
US20220375556A1 (en) | Method and system for electronic medical record creation and medical billing | |
Aron et al. | Disaggregating the differential impact of healthcare IT in complex care delivery: Insights from field research in chronic care | |
Ismail et al. | Dental service system into blockchain environment | |
US20220171919A1 (en) | Methods and system for recording user inputs when interacting with a user interface | |
Pasieka et al. | Design automated medical information and analytical management system for large and medium-sized organizations | |
Gichoya et al. | Proving value in radiology: experience developing and implementing a shareable open source registry platform driven by radiology workflow |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: AFFILIATED COMPUTER SERVICES, INC., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KANDASAMY, UMA MAHESWARI;GALLOWAY, NEIL;DATLA, KRISHNAM RAJU B;REEL/FRAME:021736/0351 Effective date: 20081020 |
|
AS | Assignment |
Owner name: AFFILIATED COMPUTER SERVICES, LLC, TEXAS Free format text: CHANGE OF NAME;ASSIGNOR:AFFILIATED COMPUTER SERVICES, INC.;REEL/FRAME:028994/0743 Effective date: 20111216 |
|
AS | Assignment |
Owner name: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT, NEW YORK Free format text: SECURITY AGREEMENT;ASSIGNORS:XEROX COMMERCIAL SOLUTIONS, LLC (F/K/A ACS COMMERCIAL SOLUTIONS, INC.);XEROX STATE & LOCAL SOLUTIONS, INC. (F/K/A ACS STATE AND LOCAL SOLUTIONS, INC.);RSA MEDICAL LLC;AND OTHERS;REEL/FRAME:040905/0458 Effective date: 20161207 Owner name: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT Free format text: SECURITY AGREEMENT;ASSIGNORS:XEROX COMMERCIAL SOLUTIONS, LLC (F/K/A ACS COMMERCIAL SOLUTIONS, INC.);XEROX STATE & LOCAL SOLUTIONS, INC. (F/K/A ACS STATE AND LOCAL SOLUTIONS, INC.);RSA MEDICAL LLC;AND OTHERS;REEL/FRAME:040905/0458 Effective date: 20161207 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: CONDUENT HEALTH ASSESSMENTS, LLC, NEW JERSEY Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:057969/0180 Effective date: 20211015 Owner name: CONDUENT CASUALTY CLAIMS SOLUTIONS, LLC, NEW JERSEY Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:057969/0180 Effective date: 20211015 Owner name: CONDUENT BUSINESS SOLUTIONS, LLC, NEW JERSEY Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:057969/0180 Effective date: 20211015 Owner name: CONDUENT COMMERCIAL SOLUTIONS, LLC, NEW JERSEY Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:057969/0180 Effective date: 20211015 Owner name: ADVECTIS, INC., GEORGIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:057969/0180 Effective date: 20211015 Owner name: CONDUENT TRANSPORT SOLUTIONS, INC., NEW JERSEY Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:057969/0180 Effective date: 20211015 Owner name: CONDUENT STATE & LOCAL SOLUTIONS, INC., NEW JERSEY Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:057969/0180 Effective date: 20211015 Owner name: CONDUENT BUSINESS SERVICES, LLC, NEW JERSEY Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:057969/0180 Effective date: 20211015 |