This disclosure relates generally to matching patients with health care providers, and particularly to a personalized, multi-dimensional health care provider matching service that ranks and selects the best matched health care providers for a patient according to the patient's medical conditions and preferences for treatment.
Patient care empowered by digital computing can reduce inefficiencies in health care delivery, improve access, reduce costs, increase quality, and provide more personalized and precise patient care. One important aspect of personalized health care is finding competent health care providers for a given patient according to the patient's medical conditions and preferences for treatment. Behavioral health is one area in particular where it has been difficult or impossible for patients to find the right psychiatrist or therapist.
Unfortunately, there are several drawbacks with currently existing methods for patients to find suitable health care providers. Patients can, for example, search online and through other sources for health care providers that match both their medical conditions and preferences for treatment. However, the amount of information available to them and difficulty in understanding the information can be overwhelming, which consequently results in reduced quality of patient care and many patients simply going untreated. There are also some existing methods to automatically assign health care providers to a patient, but these do not consider various factors that may directly affect outcome of a treatment, such as the patient's preferences for treatment, including types of health care providers and types of drugs preferred by the patient. Such drawbacks are especially prominent in matching competent behavioral health care providers with patients having a need for treatment because such patients often have personal preferences for types of treatment and may only respond positively to their preferred treatment. Thus, again many patients get poorly matched treatment or ultimately go untreated.
A personalized multi-dimensional health care provider matching service is provided to rank and select the best matched health care providers for a patient across multiple dimensions according to the patient's medical conditions and preferences for treatment. Each medical condition of the patient represents a dimension; additional medical conditions of the patient represent additional dimensions in which to rank the providers for the patient. Other factors, such as cost of treatment, location distance from a provider, can also represent dimensions. The provider matching service measures a provider's level of competency for treating a medical condition, e.g., based on the provider's drug prescription patterns in treating the medical condition compared against a reference practice standard (e.g., UpToDate® or First DataBank recommendation for treating the medical condition). The provider matching service ranks multiple providers based on their levels of competency in terms of treating the same medical condition.
Each medical condition may have one or more treatment options, e.g., medication, psychotherapy and both. The provider matching service ranks the providers across the multiple medical conditions/treatment needs of a patient, where the rankings of the providers represent the providers' competency across multiple medical dimensions or labels that describe the characteristics of the providers across multiple non-medical dimensions such as in cost and location distance dimensions. In one embodiment, the provider matching service accesses a patient's needs across different medical conditions and applies different weights to different corresponding dimensions in ranking the providers. The different weights assigned to different dimensions are based on the severity of each medication condition applicable to the patient's needs. The provider matching service selects one or more providers best matched to the patient based on the providers' multi-dimensional rankings. The multi-dimensional ranking is performed dynamically at the time that patient data is submitted. Each dimensional ranking is unique and customized to each individual patient. Thus, the provider matching service provides a scalable, multiple-objective algorithm to match the unique needs of the patient to the unique strengths of the provider.
The provider matching service also provides a user friendly service to a patient such that the patient can easily find best matched providers according to his/her medical conditions and preferences for treatment. For example, a patient may use a client device, e.g., a mobile phone, laptop or personal computer, which executes a provider matching application provided by the provider matching service, to input his/her medical conditions and preferences for treatment and to request providers that best match his/her medical needs. The provider matching service receives such a request from a client device of a patient, searches the providers in a provider database, and selects one or more providers that best match the patient's need based on the providers' multi-dimensional rankings. The provider matching service instructs the patient's client device to present the selected providers in a user friendly way, such as by including providers' contact information, web links to the providers' profiles and offices, etc.
For purposes of simplicity and the description of one embodiment, the provider matching service is described herein with reference to behavioral health providers, such as psychiatrists, with respect to medical conditions and treatments in the behavioral health space, but no limitation on the types of providers and medical conditions are intended by this simplicity. Thus, the operations described herein for ranking behavioral health care providers can be applied to any other types of health care providers, e.g., various different physicians, hospitals, skilled nursing facilities, and ambulatory surgical centers.
Similarly, for simplicity, the operations described herein for ranking health care providers with references to multiple dimensions represented by medical conditions, but no limitations on the dimension representations are intended by this simplicity. For example, the dimensions can be represented by non-medical conditions, such as cost of treatment and location distance from a provider. The health care providers can be ranked across multiple medical dimensions, non-medication dimensions or the combination of both. For example, the health care providers can be ranked across multiple medical dimensions based on the providers' competency for treading the medical conditions; the health care providers can also be ranked across multiple non-competency based dimensions represented by characteristics of the providers in treating their patients.
The figures depict various embodiments of the invention for purposes of illustration only. One skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of the invention described herein.
A client device, e.g., 110A, is an electronic device used by a patient to perform functions such as requesting best matched health providers based on the patient's medical conditions and preferences for treatment, executing software applications, consuming digital content, browsing websites hosted by web servers on the network 120, downloading files, and the like. For example, the client device 110 may be a mobile device, a tablet, a notebook, a desktop computer, or a portable computer. The client device 110 includes interfaces with a display device on which the user may view webpages, videos and other content. In addition, the client device 110 provides a user interface (UI), such as physical and/or on-screen buttons with which the user may interact with the client device 110 to perform functions such as viewing, selecting, and consuming digital content such as digital medical records, webpages, photos, videos and other content.
In one embodiment, the client device 110 has a software application module 112 (e.g., 112A for client device 110A and 112N for client device 110N) for executing a provider matching software application configured to find best matched health care providers for a patient based on the patient's medical conditions and preferences for treatment. The software application is executed to provide a patient's input, such as the patient's medical conditions and preferences for treatment, to the provider matching service 140 to request health care providers that match his/her medical conditions and preferences for treatment, and to receive matched providers' information from the provider matching service 140. For example, upon executing the software application installed in the client device 110, the software application module 112 communicates with the provider matching service 140 to send a request for health care providers for a patient using the client device 110. The user of the client device 110 (e.g., the patient herself or himself, or family, friends, caregivers, practitioners, hospitals, a health care service, a skilled nursing facility, an ambulatory surgical center, and some combination thereof) can request health care providers for the patient based on the patient's medical conditions and preferences for treatment. Upon receiving the matched providers' information from the provider matching service 140, the software application module 112 presents the providers' information in an intuitive and user friendly way, e.g., showing the location of an identified provider on a map next to the provider's contact information and web link.
The software application module 112 can be similarly installed and executed on computing devices associated with additional caregivers, family members, friends, qualified practitioners, hospitals, health care services, skilled nursing facilities, and ambulatory surgical centers that have been granted permission to participate in using the provider matching service on behalf of the patient. The software application module 112 can be a standalone application that a patient downloads and uses on a client device 110, or can be integrated into an employee health plan or wellness program at a company at which the patient is employed. In the latter case, the company may also have a software application installed on company devices through which a benefits team can interact with and manage this benefit for employees. Similarly providers can have software applications installed on their devices or devices associated with their healthcare facility that allow providers to track their patients.
The software application module 112 presents a user friendly interface for guiding a patient to find the best matched health care provider using the provider matching application executed on the client device 110.
In addition to allowing a patient to indicate his/her mental health condition (as shown in
All the information obtained from the above steps shown through
Turning back to
The external source 130 provides information that facilitates the multi-dimensional ranking of providers performed by the provider matching service 140. In one embodiment, the external source 130 includes one or more databases storing information about health providers (e.g., National Provider Identifier (NPI) provided by National Plan & Provider Enumeration System (NPPES), U.S. physician prescribing data (i.e., drugs prescription) provided by First DataBank, Medicare Part D and IMS HEALTH™, patient statistics and evidence-based therapies provided by online resources such as UpToDate®, SK&A, LEXISNEXIS®, and web crawling. The database of the external source 130 may also store medical practice standards (e.g., prescribing guidelines of consensus practice recommendations for different treatments and medication different medical conditions). In some embodiments, the information collected from the external source 130 is collected each time a ranking of providers is conducted and is utilized in that ranking. In other embodiments, the provider matching service 140 builds up one or more of its own databases (e.g., see
The database of the external source 130 or local database of the provider matching service 140 storing data collected from the external source 130 may also store disqualifying events associated with health care providers. Examples of disqualifying events associated with health care providers include that the provider's license to practice has been revoked, that there has been a disciplinary action against the provider, that the provider has retired from practice, and that the provider is currently not accepting new patients. The provider matching service 140 uses the disqualifying events to filter out providers that are not qualified to treat the patient prior to the multi-dimensional ranking.
The external source 130 or local database of the provider matching service storing data collected from the external source 130 may also include historical health data of a patient (e.g., a patient's electronic medical records, or EMRs) from various health record sources (e.g., hospital records, records at the patient's family doctors, or manually inputted data related to the patient's health by the patient's caretakers). The historical health data of a user describes a global view of the user's lifestyle and wellness.
The provider matching service 140 processes the patient input data (e.g., medical conditions and treatment preferences) and provider data from the external source 130 or local database, and provides provider matching results based on the analysis of the patient data from the user input, provider data from the external source 130, and the patient's historical health data from the external source 130 to the client device 110 for display. The health provider matching service 140 is further described below and with reference to
The personalized health care provider matching service 140 ranks and selects the best matched health care providers for a patient across multiple dimensions according to the patient's medical conditions and treatment preferences. Each medical condition of the patient represents a dimension; additional medical conditions of the patient represent additional dimensions to rank the providers for the patient. Each medical condition may have one or more treatment options, e.g., medication, psychotherapy or both. The provider matching service 140 ranks the providers across the multiple medical conditions/treatment needs of a patient, where the rankings of the providers represent the providers' competency across multiple dimensions.
In the embodiment illustrated in
The database-1142 stores data received from the external source 160. The received data includes provider data, medication data, guideline data and disqualifying events associated with the providers. The provider data includes the information associated with the providers (e.g., NPI, medication prescription data, expertise, provider profile, provider locations, and contact information). The medication data includes the information associated with prescribing of medications (e.g., drug description, side effects, drug composition, different types of medication associated with different medication conditions, place of production, and price). The guideline data includes data associated with practice standards (e.g., prescribing guidelines of consensus practice recommendations for different treatments and medications prescribed for different medical conditions). The disqualifying events include information that disqualifies a provider for treating a patient. Examples of disqualifying events include a revoked license, a disciplinary action, retirement from practice and an indication that the provider is not accepting new patients. In some embodiments, this provider database is a proprietary database of providers and information about them collected from public and private sources (e.g., web and social data) used to profile the competency of providers based on what the providers actually do (e.g., what types of conditions they treat, what medications they prescribe, how often they prescribe medications versus psychotherapy or other treatments, etc.) as opposed to what the providers claim to do.
The database-2143 stores patient input data received from the client device 110. The received patient input data may include a patient's medical conditions and treatment preferences. The patient input data may also include the patient's medical records, patient's demographic information (e.g., age, gender, ethnicity), patient's drug prescription(s) and consumption information for that drug prescription (e.g., whether the patient adhered to the medication regimen prescribed).
The database-3144 stores health survey data collected from patient screening (e.g., as shown in
The interface module 146 facilitates the communication among the client device 110, the provider matching service 140, and the external source 130. In one embodiment, the interface module 146 interacts with the client devices 110 to receive patient input data and stores the received patient input data in the database-2143. The interface module 146 also provides the received patient input data to the analysis module 148 and the matching module 200 for further processing. Upon receiving matched providers' information, the interface module 146 instructs the software application module 112 of the client device 110 to display the matched providers' information. In another embodiment, the interface module 146 provides software updates, such as feature updates and security patches, to the software application module 112 of the client device 110 for smooth and secure operation of the provider matching software application on the client device 110.
In another example, the interface module 146 receives information from the external source 130, and stores the received information in the database-1142. The interface module 146 also provides the received information to the matching module 200 for ranking providers in one or multiple dimensions.
The analysis module 148 analyzes patient input data for generating pre-conditions of provider matching. In one embodiment, the pre-conditions include the patient's medical conditions and constraints based on the patient's treatment preferences. Each of the patient's medical conditions represents one dimension in ranking the providers by the matching module 200. For example, provider matching for a patient currently experiencing following medical conditions, depression, anxiety, alcohol/substance abuse, ADHD, bipolar, and psychosis can find providers for each medical condition (i.e., a single dimension matching) and for a combination of multiple conditions (e.g., a two-dimensional matching for treating depression and anxiety). In one embodiment, the analysis module 148 determines the patient's medical conditions through a health survey presented to the user (e.g., as shown in
The analysis module 148 determines constraints based on the patient's treatment preferences (as shown in
The matching module 200 selects the best matched providers for a patient based on the analysis data of the patient from the analysis module 146. The matching module 200 filters out disqualified providers and analyzes the remaining provides based on the patient's medical conditions and treatment preferences. Based on the analysis, the matching module 200 ranks the remaining providers and determines the best matched providers for the patient. Similarly, the matching module 200 may rank the providers in a multi-dimensional space, where the dimensions are represented by non-medical condition type of factors, such as cost of treatment and location distance from a provider. The matching module 200 is further explained in conjunction with description of
The recommendation module 150 generates recommendations associated with best matched providers for a patient based on the patient's medical conditions and preferences. In one embodiment, the recommendation module 152 generates recommendations based on the matching data obtained from the matching module 200. The recommendation module 152 can provide a list of matched providers as the recommendations. The list of the matched providers includes information associated with each matched provider, e.g., contact information, location, NPI number, gender, new patient acceptance status, availability, related medical conditions and treatments that the provider handles, language, education, work experience, and other suitable information related to the matched providers. In some embodiments, the recommendation module 150 also generates instructions on how to present the matching data from the matching module 200 and recommendations, and provides the presentation instructions associated with matching data and recommendations to the client device 110 for display to the patient.
In response to the recommendations provided by the recommendation module 150, the patient may select a provider to provide treatment. The patient can schedule an appointment with the provider separately or through the provider matching service 140 that connects the patient and provider. In some embodiments, the provider matching service 140 includes or is integrated with a health concierge service that not only generates recommendations but helps to manage the relationship between the patient and provider. In these embodiments, the recommendation module 150 may schedule an appointment for the patient with the provider and provider a confirmation to both parties of the appointment scheduled. For example, the provider matching service 140 could provide confirmation to the patient in the patient user interface or by sending a message (e.g., text message, email, instant message, etc.) to the patient. If there is rescheduling that must occur or if there are any other details associated with the appointment that need to be managed, the recommendation module/concierge service can coordinate and manage these details such that there is minimal effort on the side of the patient and provider, thereby increasing the likelihood that the patient will ultimately make it to the appointment and get the needed treatment. The recommendation module 150 also sends reminders to the patient near to or on the day of the appointment to increase the chances that the appointment is not missed.
The tracking module 152 tracks patient responses to a treatment provided by a health care provider matched by the matching module 200. For example, the tracking module 152 monitors outcome of a treatment and evaluates the patient's medical condition before and after the treatment. If the tracking data shows the patient's medical condition is getting worse, the tracking module 152 may instruct the recommendation module 150 to recommend patient consulting to the provider that provided the treatment. In some embodiments, the tracking module 152 may report the patient's medication condition post treatment to the matching module 200 to find a new provider to treat the patient's worsened medical condition. The tracking module 152 can also contact the patient regularly to monitor the outcome of the treatment, including calling or sending messages to the patient or contacting the patient through the patient user interface, sending follow up questions to the patient regarding quality of treatment and patient satisfaction, connecting the patient with a coach to provide encouragement and answer questions, among other mechanisms for monitoring the patient.
In some embodiments, the tracking module 152 tracks recommended providers' performance and evaluates providers' performance based on tracking data. A provider's performance includes outcome of the treatment and the patient's feedback about the treatment. Based on the evaluation, the tracking module 152 may generate adjustment factors associated with the provider's performance and provides the adjustment factors to the matching module 200 for adjusting the provider's ranking. For example, if the provider has good performance (e.g., the medical condition of the patient becomes better), the ranking of the provider is increased by applying the adjustment factor in favor of the provider's ranking. If the provider has bad performance (e.g., the medical condition of the patient becomes worse after the treatment), the ranking of the provider is decreased by applying the adjustment factor to negatively affect the provider's ranking.
The filter module 210 filters out disqualified health care providers based on constraints generated from a patient's treatment preferences and based on disqualifying events associated with providers. A disqualified health care provider is not included in the provider matching process for the patient. In one embodiment, the filter module 210 retrieves a patient's treatment preferences from the database-2143 and disqualifying events associated with providers from the database-1142. The filter module 210 uses the patient's treatment preferences and disqualifying events to filter out providers that are not qualified to treat the patient prior to the provider matching process.
The medication analysis module 220 measures providers' levels of competency for treating each medical condition of a patient, e.g., based on the providers' drug prescription patterns in treating the medical condition against a reference practice standard (e.g., NPPES recommendation for treating the medical condition). Medication prescription patterns by different providers provide a way to differentiate the providers against the reference standard for the medication prescription. Typically, each medical condition has a different number of treatments. Taking behavioral health conditions as an example, each behavioral health condition has a different set of N line treatments, where each line treatment is represented by a line of medications and a competent provider prescribes the appropriate first line medications before the second line medications. The medication analysis module 220 can rank the providers based on their levels of competency in treating a medical condition of the patient. In one embodiment, a provider's competency in treating a behavioral health condition is measured in terms of (1) diversity of medication prescription by the provider for each line of treatment, (2) concentration of medication prescription by the provider for each line of treatment; and (3) differences among the lines of treatments by the provider.
First, the medication analysis module 220 analyzes the diversity of medication prescriptions by one type of health provider (e.g., psychiatrists, internal medicine and general practice) for each line of treatments. The diversity of medication prescriptions by a provider describes how many different types of medications the provider prescribed, and the level of diversity of medication prescription of a provider is directly associated with the level of sophistication of the provider in prescribing medications for treating a medical condition. For example, a provider that has more variation in the medications she prescribes to treat a condition is determined by the system to have a higher level of sophistication in treating that condition than a provider that has less variation or fewer different medications prescribed. The provider having more medication diversity is assumed to be better skilled at tailoring the drug regimen to the particular condition and patient.
Turning now to
The medication analysis module 220 generates single-dimensional rankings of the psychiatrists in treating the behavioral health condition of the patient based on the scores. The region-4348, which is larger than the median value, is assigned lowest score, e.g., 0, which indicates the highest level of sophistication of medication prescription, and psychiatrists whose medication prescription patterns are similar to the distribution shown in region-4348 will get higher rankings than other psychiatrists whose medication prescription patterns correspond to the distributions shown in other 3 regions. The region-3346, which is close to the median value, is assigned a higher score than the region-4348, but a lower score than the region-1342 and the region-2344, and psychiatrists whose medication prescription patterns are similar to the distribution shown in region-3346 will get next higher rankings. The region-2344, which is far from the median value, is assigned a higher score than the region-3246, and the region-1342 has the highest score than other three regions; psychiatrists whose medication prescription patterns are similar to the distribution shown in region-2344 and the region-1342 will get penalized in their rankings compared to the psychiatrists associated with the region-4348 and the region-3346, and the psychiatrists associated with the region-1342 are automatically disqualified for treating the behavioral health condition being analyzed. Same or similar methods can be applied to all other relevant health care providers, as well as other lines of treatments.
Next, the medication analysis module 220 analyzes concentration of medication prescription by one type of health care providers (e.g., psychiatrist) for each line of treatment. The concentration of medication prescription describes the percentage of each type of medication prescribed by a health care provider among the total number of medications prescribed by a provider. Generally, a provider who constantly prescribes only one or two types of medications for treating a medical condition should have lower rankings; similarly, a provider who constantly prescribes in high percentage across each type of medications for treating a medical condition also should have lower rankings. The medication analysis module 220 uses the analysis of the concentration of medication prescription to exclude providers who prescribed medications with concentration patterns in two extremes described above.
The medication analysis module 220 further analyzes the differences among the lines of treatments for each type of health care provider. The differences can be used to derive volume and adherence to medication treatments by the providers. In one embodiment, the lines of treatments are set up such that competent providers for treating a given medical condition should prescribe the appropriate first line medications before the second line medications, and competent providers should have a population of patients under treatment that reflect decreasing frequency of use across lines of medications with experts most utilizing the later lines of treatment. In other words, assuming that a provider's prescribed medications are divided into three lines, a competent provider should prescribe the medications in terms of medication volumes in the following orders: first line>second line>third line.
The medication analysis module 220 may apply the analysis described above for each medical conditions of a patient and generates one-dimensional rankings of providers in treating the corresponding medical condition of the patient. Similarly, the medication analysis module 220 may apply the analysis described above for each type of provider in treating a given medical condition a patient, and generates one-dimensional rankings of providers in treating the medical condition of the patient. Furthermore, the medication analysis module 220 may apply the analysis described above to rank providers based on factors such as cost of average medication treatments for each medication by the providers.
The N-dimension ranking module 230 of the matching module 200 ranks the health care providers associated with the patient's medication conditions and treatment preferences in N dimension. Each medical condition of the patient represents a dimension in the matching process; and each medical condition has one or more treatment options, e.g., medication and psychotherapy. Using the examples shown in
In one embodiment, the N-dimension ranking module 230 utilizes a multi-objective optimization method, e.g., Pareto frontier method, to rank providers for all the medical conditions associated with the patient. The ranking module 230 applies the Pareto frontier algorithm to all dimensions simultaneously and generates rankings of the providers in the dimensions. The N-dimension ranking module 230 creates a ranking map in N-dimensions based on the rankings in all dimensions. The ranking map is a data structure for representing the rankings in the dimensions being evaluated, and any suitable data structure known to those of ordinary skill in the art can be used for representing the rankings. Using the example above, the ranking module 230 can rank the providers in 12 dimensions using the Pareto frontier method and generates a ranking map in 12 dimensions. The ranking in each dimension is relative and independent; a given provider's rank is determined by the number of other providers better than and the number of providers worse than the given provider; Provider A is better than Provider B if and only if Provider A is better than Provider B in every dimension.
In one embodiment, the N-dimension ranking module 230 provides information indicating how many other providers are better than a given provider in a dimension.
In some embodiments, providers can be selected based on severity level of each medical condition the patient is currently experiencing. For example, if a patient has severe anxiety and mild depression, then the providers with higher rankings in treating anxiety are preferred than the providers with lower rankings in the treating anxiety. Using the two-dimensional ranking map shown in
The matching module 200 can access a patient's needs across different medical conditions and applies different weights to different corresponding dimensions in ranking the providers. In some embodiments, the matching module 200 applies weight factors to adjust the ranking in a single dimension and in multiple dimensions. For example, in generating rankings in a single dimension, the medication analysis module 220 of the ranking module 230 identifies the most common medication prescribing pattern for each line of medications, penalizes providers who prescribe too few medications or too much of a single medication, and also penalizes providers who prescribe more second line medications than the first line medications. The weights applied by the medication analysis module 220 in the single dimensional ranking are reflected by the amount of penalty applied in the ranking process.
The weight factors may vary depending on a patient's medical conditions. For example, the weight factors are based on the tracking data from the tracking module 152, as discussed earlier. For another example, the weight factors are also based on the severity level of each medical condition the patient experiencing from the analysis module 146. For a patient having severe anxiety and mild depression, providers with more treatment sophistication treating anxiety would be ranked higher. Other patient level weighting strategies can be considered by the matching module 200 in ranking providers for a patient. For example, the matching module 200 may give higher weights to medical conditions which have more functional or quality of life impairment.
The provider matching service 140 receives 510 patient data of a given patient and health care provider data. The patient data includes current medical conditions of the patient and the patient's preferences for treatment. The health care provider data includes information describing the providers, their medication prescribing patterns, and disqualifying events. The provider matching service 140 analyzes 520 received data to determine the patient's medical conditions. For example, the provider matching service 140 determines how many medical conditions the patient is currently experiencing and the severity of each medical condition. Each medical condition of the patient represents a dimension in ranking the providers for the patient. The provider matching service 140 filters out 530 disqualified providers based on the disqualifying events and the patient's preferences for treatment. The provider matching service 140 analyzes 540 medication and treatment data associated with the providers in multiple dimensions determined by the combination of the patient's medical conditions and preferences for treatment. The provider matching service 140 ranks 550 the providers in the multiple dimensions. The provider matching service 140 provides 560 one or more best matched providers to the patient based on the ranking. The provider matching service 140 tracks 570 patient responses to the medication and treatment provided by a best matched provider and provides tracking data to adjust the ranking of the providers. The provider matching service 140 repeats the steps of 510 to 570 in real time and continuously as long as the provider matching service 140 is used.
The foregoing description of the embodiments of the invention has been presented for the purpose of illustration; it is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Persons skilled in the relevant art can appreciate that many modifications and variations are possible in light of the above disclosure.
Some portions of this description describe the embodiments of the invention in terms of algorithms and symbolic representations of operations on information. These algorithmic descriptions and representations are commonly used by those skilled in the data processing arts to convey the substance of their work effectively to others skilled in the art. These operations, while described functionally, computationally, or logically, are understood to be implemented by computer programs or equivalent electrical circuits, microcode, or the like. Furthermore, it has also proven convenient at times, to refer to these arrangements of operations as modules, without loss of generality. The described operations and their associated modules may be embodied in software, firmware, hardware, or any combinations thereof.
Any of the steps, operations, or processes described herein may be performed or implemented with one or more hardware or software modules, alone or in combination with other devices. In one embodiment, a software module is implemented with a computer program product comprising a computer-readable medium containing computer program code, which can be executed by a computer processor for performing any or all of the steps, operations, or processes described.
Embodiments of the invention may also relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, and/or it may comprise a general-purpose computing device selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a nontransitory, tangible computer readable storage medium, or any type of media suitable for storing electronic instructions, which may be coupled to a computer system bus. Furthermore, any computing systems referred to in the specification may include a single processor or may be architectures employing multiple processor designs for increased computing capability.
Embodiments of the invention may also relate to a product that is produced by a computing process described herein. Such a product may comprise information resulting from a computing process, where the information is stored on a nontransitory, tangible computer readable storage medium and may include any embodiment of a computer program product or other data combination described herein.
Finally, the language used in the specification has been principally selected for readability and instructional purposes, and it may not have been selected to delineate or circumscribe the inventive subject matter. It is therefore intended that the scope of the invention be limited not by this detailed description, but rather by any claims that issue on an application based hereon. Accordingly, the disclosure of the embodiments of the invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.