METHOD AND SYSTEM FOR GENERATING PATIENT PROFILES VIA SOCIAL MEDIA SERVICES

A method and non-transitory computer readable medium for generating patient profiles via a social media service are disclosed. For example, the method receives data from the social media service, extracts one or more attributes from the data from the social media service, classifies the one or more attributes to one or more of a plurality of predefined profile attributes, generates a patient profile based on the one or more attributes that are classified, determines a medical action to be executed based on the patient profile and transmits the medical action to be executed to a health administration server.

The present disclosure relates to generating patient profiles and, more particularly, to a method and a system for generating patient profiles via social media services.

BACKGROUND

Advances in Internet and mobile technologies have changed the way people access, use and share information. For example, social media platforms allow users to document their experiences at various different levels of detail. As a result, social media services have become a popular and convenient platform for users to express their problems, discuss these problems, and seek information and answers to their questions.

However, social media services provide an abundant amount of data. Users may post several messages a day. There may be millions of users per day. Thus, sorting the large amounts of data for relevant information and organizing the data into a format that is useful for a particular application can be very difficult.

SUMMARY

According to aspects illustrated herein, there are provided a method and a non-transitory computer readable medium for generating patient profiles via a social media service. One disclosed feature of the embodiments is a method comprising receiving data from the social media service, extracting one or more attributes from the data from the social media service, classifying the one or more attributes to one or more of a plurality of predefined profile attributes, generating a patient profile based on the one or more attributes that are classified, determining a medical action to be executed based on the patient profile, and transmitting the medical action to be executed to a health administrator server.

Another disclosed feature of the embodiments is a non-transitory computer-readable medium having stored thereon a plurality of instructions, the plurality of instructions including instructions, which when executed by a processor, cause the processor to perform operations comprising receiving data from the social media service, extracting one or more attributes from the data from the social media service, classifying the one or more attributes to one or more of a plurality of predefined profile attributes, generating a patient profile based on the one or more attributes that are classified, determining a medical action to be executed based on the patient profile, and transmitting the medical action to be executed to a health administrator server.

Another disclosed feature of the embodiments is a method for generating patient profiles via a social media service comprising receiving data from the social media service for a plurality of different patients, preprocessing, the data for a plurality of different patients, extracting one or more attributes for each one of the plurality of different patients from the data from the social media service, classifying the one or more attributes or one of a plurality of predefined profile attributes for each one of the plurality of different patients, generating a patient profile for each one of the plurality based on the one or more attributes that are classified, extracting one or more events from the patient profile, classifying the one or more events to one or more of a plurality of predefined profile events, identifying temporal relationships among the one or more events that are classified, creating, by the processor, a timeline based on two or more patient profiles for the each one of the plurality of different patients, generating a disease progression model based on the each one of the plurality of different patients, determining, by the processor, a medical action to be executed based on the each one of the plurality of different patients, and transmitting the medical action to be executed.

DETAILED DESCRIPTION

The present disclosure broadly discloses a method and non-transitory computer-readable medium for generating patient profiles via a social media service. As discussed above, advances in Internet and mobile technologies have changed the way people access, use and share information. As a result, social media services have become a popular and convenient platform for patients to express their problems, discuss these problems, and seek information and answers to their questions. For example, patients can learn about another patient's medical condition, treatment, quality of care, or diagnosis. However, social media services provide an abundant amount of data, thus overloading the patient with information and making the social media information less useful and effective.

Data found on social media services is useful when there is effective communication among patients. Quality of support and information sought by patients increase when communication takes place between two patients who are relatively similar and have gone through a similar medical situation. Currently, patient similarity has not been computed using data generated from social media services. As a result, using patient similarity to recommend patients based on similar experiences has been difficult to develop.

Additionally, disease progression models have been historically based on evidence based guidelines and the results of clinical tests. However, data from social media services has not been used to build disease progression models. Furthermore, using these disease progression models to analyze and understand various stages of disease progression, as well as optimize the quality of treatments for subjects, has been difficult to develop.

Embodiments of the present disclosure provide a novel method for generating patient profiles via a social media service to provide a recommendation to the patient based on the similarity between two or more patients and additionally, to provide a diagnosis and a treatment for subsequent patients based on a disease progression model. As a result, the recommendation provides a group of highly similar patients and helps increase patient-patient interaction for improved communication. As a result, the generated patient profiles can be used for other analytical tasks such as risk stratification, severity alert prediction and remote patient monitoring. The disease progression model can also be used for conditional anomaly detection methods, improving pharmaceutical research and development activity, optimizing treatment, designing clinical guidelines, risk stratification, severity alert prediction, and patient readmission prediction.

FIG. 1illustrates an example system100of the present disclosure. In one embodiment, the system100includes a communications network102, an application server (AS)104having a Patient Engagement Platform (PEP)106and a database (DB)108. In one embodiment, the communications network102may be any type of communications network including, for example, an Internet Protocol (IP) network, a cellular network, a broadband network, and the like. The PEP106is discussed in further detail below inFIG. 2.

In one embodiment, one or more social media services110,112and114may be in communication with the communications network102. For example, the one or more social media services110,112and114may be social media services such as Facebook®, Twitter®, Linkedin®, and the like, where subscribers of the social media services share their experiences. Social media services may also include forums, blogs and other webpages or websites where people share their experiences.

In one embodiment, the system100may include a patient group122having one or more endpoint devices116and118that are in communication with the communications network102. In one embodiment, the patient group122may include one or more subscribers to social media services110,112and114and associated with the endpoint devices116and118. In one embodiment, the patient group122may be based on a similarity index, as discussed in further detail below. In one embodiment, the patient group122may be looking to target particular individuals based on patient profiles generated using social media services110,112and114. The AS104may communicate with the patient group122via endpoint device116or118.

In one embodiment, the system100may include an endpoint device120that is in communication with the communications network102. The endpoint device120may be subscribed to one or more of the social media services110,112and114. Although a single endpoint device120is illustrated inFIG. 1, it should be noted that any number of endpoint devices may subscribe to the one or more social media services110,112and114.

In one embodiment, the AS104and the DB108may be maintained and operated by a third party service provider. For example, the third party service provider may determine medical actions that should be taken for a hospital or health care provider associated with a health administration server (HAS)124. In another embodiment, the AS104and the DB108may be maintained and operated by the same hospital or health care provider as the HAS124.

In one embodiment, the AS104may determine a medical action that is to be executed based on the patient profile, as discussed in further detail below. For example, the AS104may collect data associated with a patient of the endpoint device120from the one or more social media services110,112and114to generate a patient profile, as discussed in further detail below. The AS104may transmit a medical action to the health administration server (HAS)124.

In one embodiment, the medical action may be for the HAS124to send an invitation to the patient associated with the patient profile to join patient group122based on a similarity index score, as discussed below. The invitation may be, but is not limited to, a link, an email, or any medium that may generate a response. In another embodiment, the medical action may be a treatment, a prescription, monitoring a patient due to a possible health risk based on similarity to a patient profile of another patient having the same health risk, and the like.

In one embodiment, the HAS124may be in communication with the AS104via the communications network102. In one embodiment, the HAS124may be operated by an employee of a hospital or a corporate entity associated with the hospital. In another embodiment, the HAS124may be operated by a person or a corporate entity related to the leadership, management, or administration of public health systems, health care systems, or hospitals. In one embodiment, the social media services110,112and114, endpoint devices116,118and120, and health care administration server124may be in communication with communications network102via either a wired or wireless connection.

It should be noted that although three social media services110,112and114are illustrated inFIG. 1, any number of social media services may be deployed. It should be noted that although a single HAS124is illustrated inFIG. 1, any number of health care administration servers may be deployed. It should be noted that although a single patient group122and three endpoint devices116,118and120are illustrated inFIG. 1, any number of patient groups and endpoint devices may be deployed.

It should be noted thatFIG. 1is a block diagram that has been simplified. The system100may include other network elements and access networks that are not shown. For example, the communication network102may include other network elements such as a firewall, border elements, gateways, and the like. The communications network102may also have additional access networks between the social media services110,112and114, the endpoint devices116,118and120and the HAS124, such as for example, a cellular access network, a broadband access network, and the like.

In one embodiment, the AS104may be deployed as a computer illustrated inFIG. 6and described below and configured to perform the functions described herein. In one embodiment, the DB108may store information, such as for example, data generated by social media services110,112and114, locally stored dictionaries, patient profiles that are generated, disease progression models that are generated, and the like.

As noted above, the endpoints116and118in the patient group122and the endpoint120may be subscribers of a social media service110,112and114that provides the data to the AS104having the PEP106. The data may be used to generate a patient profile. The PEP106in the AS104then determines whether to execute a medical action based on the patient profile. In one embodiment, the medical action may be to recommend a patient group122or a patient having a patient profile that is similar to a patient associated with the endpoint device120. In one embodiment, the medical action may include monitoring a patient for a health risk based on similarity to a patient profile of another patient that has the health risk. In one embodiment, the medical action may include predicting the impact of the disease and making a mortality prediction based on the similarity to a patient profile of another patient that has the disease.

In another embodiment, the patient profile may be used to create timelines and generate a disease progression model that can be used to determine a medical action. For example, the disease progression model may help doctors and patients understand various stages of a disease, symptoms, procedures, and repercussions of treatments. One embodiment of the PEP106is illustrated inFIG. 2.

FIG. 2illustrates one example of the PEP106of the present disclosure. In one embodiment, the PEP106may include a patient profile generation engine202, a patient similarity computation engine204, a community recommendation engine206, a patient timeline computation engine208, a patient aggregate graph builder210, and a medical action determination engine212. In one embodiment, the PEP106may be deployed as a modified computer that is improved to perform the functions described herein as illustrated inFIG. 6and discussed below.

In one embodiment, the patient profile generation engine202receives data from the social media service110,112and114. In one embodiment, the data is in free text form and is based on the natural language of the patient. In another embodiment, data is received from posts that are grouped from a given timestamp for a given patient. In one embodiment, data may be extracted from the original post in the social media service110,112and114. For example, these posts may contain details about the problem, mention the medication that the user is taking, list the procedures the user has undergone, or provide personal information about the user's family and financial situation.

In another embodiment, data is received from the original post and related posts in the social media service. For example, other users having experience with a similar problem may reply to an original post and this may trigger further discussion between the users. In one embodiment, the data is received from more than one patient.

In one embodiment, the patient profile generation engine202preprocesses the data from the social media service110,112and114, by performing standard textual clean up steps. For example, all posts from a single user may be aggregated. In another example, the preprocessing may include tokenization, lower-case conversion, removal of stop words, Part-Of-Speech tagging, shallow parsing or chunking. In another embodiment, the patient profile generation engine202preprocesses the data using more than one preprocessing technique. For example, the data may be preprocessed by first performing sentence detection and second by performing rule based tokenization.

In one embodiment, the patient profile generation engine202extracts one or more attributes from the data from social media service110,112and114and classifies this data. For example, data may be classified for one or more attributes using standard dictionary lookup techniques. In one embodiment, the dictionary lookup technique may use the Unified Medical Language System (UMLS), Systematic Nomenclature of Medicine (SNOMED) or RxNORM dictionaries for medical entities annotation. In another embodiment, the dictionary lookup technique may use a standard dictionary, such as Merriam-Webster's, New Oxford American, and the like. In one embodiment, the attribute may be based on the Unified Medical Language System (UMLS). For example, the attribute may be classified into pre-defined attributes, such as diseases/disorders, signs/symptoms, anatomical sites, procedures, or medications. In another embodiment, the attribute may not be based on the UMLS. For example, the attribute may be classified into roman numerals, fractions, whole numbers, letters, symbols, and the like.

In one embodiment, the patient profile generation engine202may classify each attribute. In one embodiment, the patient profile generation engine202may classify each attribute for additional features based on the UMLS. For example, the medications attribute may be classified for additional features, such as dosage, duration, frequency, route, strength or change-status. In another embodiment, the patient profile generation engine202may classify each attribute for additional features that are not based on the UMLS.

An illustration of an example of a patient profile300that is created by the patient profile generation engine202is shown inFIG. 3. The patient profile300may include other attributes, personal information and characteristics that are not shown. In one embodiment, the patient profile300may include the patient's name, age, location, disease, procedure, medication, effected body part or symptoms. The patient profile300may also include specific features for UMLS concepts. For example, medication may include dosage, strength, route or frequency.

In one embodiment, the patient profile generation engine202may generate the patient profile300by aggregating the attributes that are classified. In one embodiment, the PEP106may use the patient profile300for additional analysis that can be used to determine a medical action that should be taken. In one embodiment, the PEP106may use the patient profile300to compute a patient timeline via the patient timeline computation engine208. In another embodiment, the PEP106may use the patient profile300to compute a similarity index via the patient similarity computation engine204.

In one embodiment, the patient similarity computation engine204may compute a similarity index between two patients. For example, when new patient profiles are generated, the patient similarity computation engine204may compute the similarity index between the new patient and one or more existing patients.

In one embodiment, the patient similarity computation engine204may compute the similarity index by counting the number of common features in each patient profile. In one embodiment, the patient similarity computation engine204may calculate the similarity index by first assigning weights to each attribute in each patient profile using a word weightage scheme to capture the important attributes within the posts of social media service110,112and114. Examples of word weighting schemes include term frequency, term frequency-inverse document frequency, and the like. After weights are assigned to each attribute, the patient similarity computation engine204constructs a vector by combining the weights of each attribute. For example, the generated vector is:

where each termnis associated with Wn.
After the data from the patient profile is transformed into a vector, the patient similarity computation engine204may calculate the similarity between two patients by taking the dot product of the weighted profile vectors.

In one embodiment, the patient similarity computation engine204may compute a similarity index between patient profiles and at least one additional patient profile using a cosine similarity distance. The cosine similarity distance determines how similar the vectors are to each other. To determine whether two vectors are similar to one another, a threshold value may be compared against the cosine similarity distance. For example, when the cosine similarity distance is less than the threshold value, the two vectors are similar. When the cosine similarity distance is greater than the threshold value, the vectors are not similar.

In one embodiment, the threshold value may be a predefined angular distance. For example, when the cosine similarity distance is less than the predefined angular distance, the two vectors are similar. When the cosine similarity distance is greater than the predefined angular distance, the two vectors are not similar. The patient similarity computation engine204may not be limited by the number of patient profiles, the number of posts, the number of terms, nor the number of vector representations.

In one embodiment, the community recommendation engine206may determine an additional patient based on the similarity index calculation via the patient similarity computation engine204. The medical action to be executed that is determined by the medical determination engine212may be to instruct the HAS124to send a patient a communication (e.g., email) containing the additional patient's information based on the similarity index calculation. As a result, the patient will have another patient that he or she can communicate with and share experiences with concerning his or her medical condition. The communication is not limited to email and may include any medium for facilitating communications, such as a mailed letter, text message and the like.

In one embodiment, the community recommendation engine206may determine one or more recommended patient groups based on the similarity index calculation via the patient similarity computation engine204. Thus, the medical action to be executed that is determined by the medical determination engine212may be to instruct the HAS124to send an invitation to a patient to join the patient group (e.g., the patient group122) based on the similarity index calculation. As a result, the patient may have a group of patients that he or she can communicate with to obtain information or answers to questions about his or her medical condition.

In one embodiment, the community recommendation engine204may use a clustering algorithm to generate a group of patients having similar patient profiles. For example, clustering algorithms that may be used include k-means, hierarchical, or Balanced Iterative Reducing and Clustering Using Hierarchies (BIRCH). In one embodiment, clusters may be generated using an iterative process to converge centroids with minimum error. For example, the predefined range may be determined by using cosine similarities. In another example, the cosine similarity distance may be used as a baseline for a maximum value. After clusters are generated, the community recommendation engine206may determine an appropriate group to recommend to a patient based on the similarity between the vector associated with the patient and the centroid of the clusters.

In another embodiment, the patient profiles that are generated by the generation engine202may be used to generate one or more timelines. In one embodiment, the patient timeline computation engine208may be used to generate the timelines. In one embodiment, each timeline is presented as a directed acyclic graph (DAG). In one embodiment, attributes that were classified in patient profiles that were generated via patient profile generation engine202may be identified as events. In another embodiment, these events may be annotated using UMLS. In one embodiment, temporal relationships may be identified among events. For example, temporal events may include a date, a time, a year, a duration, or a frequency. In one embodiment, temporal ordering may be in the same ordering as it appears in the text. In one embodiment, timelines are created based on relationships between events and temporal entities. For example, there may be a relationship among clinical events. In another example, there may be a relationship among events and temporal entities. In one embodiment, the patient timeline computation engine208creates a timeline after relationships between events and temporal entities have been determined. In one embodiment, each timeline generated may be a DAG showing the sequence of events in chronological order that have happened during the patient's disease development cycle. In one embodiment, two or more timelines are represented as DAGs and created via the patient timeline computation208. The two or more timelines may be merged via patient aggregate graph builder engine210.

In one embodiment, the aggregate graph builder engine210generates a disease progression model by aggregating two or more timelines of two or more different patient profiles. In one embodiment, each timeline may be a DAG. An example of an illustration of an example of a disease progression model400is illustrated inFIG. 4.

InFIG. 4, the disease progression model400may be a combination of different patient timelines that can show how a disease has progressed, what treatments were administered, how patients responded, and the like.FIG. 4illustrates how four patient timelines402,404,406and409are merged to form the disease progression model400.

In one embodiment, each patient timeline402,404,406and409may include a plurality of nodes4081to408n(herein referred to individually as a node408or collectively as nodes408). The nodes408may represent an event that has occurred (e.g., a disease is diagnosed, a prescription is administered, a procedure is performed, a follow up is conducted, an examination was conducted, and the like). Each node408may be connected by a respective edge4101to410n−1(herein referred to individual as an edge410or collectively as edges410). Each edge410may represent a passing of an amount of time that connects two or more events represented by the nodes408.

For example, the patient timeline402has three nodes408, the patient timeline404has four nodes408, the patient timeline406has six nodes408, and the patient timeline409has six nodes408. In one embodiment, the disease progression model400merges the patient timelines402,404,406and409to combine the experiences of several patients and capture the progression of the disease. For example, common nodes408(e.g., similar events) may be merged. For example, a first patient may have been diagnosed with cancer and a second patient may have been diagnosed with the same type of cancer at a later time. The nodes408that represent these events may be merged together and edges410may each connect to a particular node408that represents the diagnosis of cancer. As a result, two more patient timelines of previous patients can be combined to form the disease progression model400to understand how the disease has progressed among the patients.

It should be noted that the disease progression model may include other features that are not shown and is not limited to toplines, nodes, and edges. The disease progression model is also not limited to a specific number of events nor a specific number of patients.

In one embodiment, the disease progression model that is generated by the aggregate graph builder engine210may be used to determine the medical action that is to be executed by the medical determination engine212. For example, a new patient may have a timeline generated based on his or her patient profile. The timeline of the new patient may then be compared to the disease progression model to determine a particular treatment or medicine to prescribe at a particular time, or progression, of the new patient. In one embodiment, the medical action to be executed that is determined by the medical determination engine212may be to provide a diagnosis or prescribe a treatment for a subsequent patient based on the disease progression model. In another example, the medical action to be executed that is determined by the medical determination engine212may be to provide information to assist patients, practitioners and the public in understanding various stages of disease, its symptoms, procedures patients have followed and repercussions of treatments faced.

FIG. 5illustrates a flowchart of an example method500for generating patient profiles via a social media service. In one embodiment, one or more steps or operations of a method500may be performed by the AS104(e.g., the PEP106) or a computer as illustrated inFIG. 6and discussed below.

At step502the method500begins. At step504, the method500receives data from the social media service. In one embodiment, the data may be received in free text form and may be based on the natural language of the patient. In another embodiment, the data received may be for more than one patient. In one embodiment, data received from each post from the social media service are grouped from a given timestamp for a single patient or multiple patients. For example, where D is the dataset, consisting of K users with R records each, for a group of such R records for user k:

In another embodiment, data may be collected from the original post in the social media service. For example, these posts from social media services may contain details about the problem, mention the medication that the user is taking, list the procedures the user has undergone, or provide personal information about the user's family and financial situation. In another embodiment, data is collected from the original post and related posts in social media service. For example, other users and patients having experience with a similar problem reply to an original post and this triggers further discussion between the patients and users.

In one embodiment, the method500preprocesses the data from the social media service by performing standard textual clean up steps. For example, all posts from a single user may be aggregated. In another example, the preprocessing may include tokenization, lower-case conversion, removal of stop words, Part-Of-Speech tagging, shallow parsing or chunking. In another embodiment, the method preprocesses the data using more than one preprocessing technique. For example, the data may be preprocessed by first performing sentence detection and second performing rule based tokenization.

At step506, the method500may extract one or more attributes from the data from the social media service. At step508, the method500may classify one or more attributes to one or more of a plurality of predefined profile attributes. For example, data may be classified into one or more of the pre-defined attributes using standard dictionary lookup techniques. In one embodiment, the dictionary lookup technique may use the Unified Medical Language System (UMLS), Systematic Nomenclature of Medicine (SNOMED) or RxNORM dictionaries for medical entities annotation. In another embodiment, the dictionary lookup technique may use a standard dictionary, such as Merriam-Webster's, New Oxford American, and the like. In one embodiment, the attribute may be based on the Unified Medical Language System (UMLS). For example, the attribute may be classified into pre-defined attributes, such as diseases/disorders, signs/symptoms, anatomical sites, procedures, or medications.

At step510, the method500generates a patient profile based on the one or more attributes that are classified. In one embodiment, a patient profile generation engine may generate a patient profile by aggregating the attributes that are classified.

At step512, the method500determines a medical action to be executed based on the patient profile. In one embodiment, a medical determination engine may be used to determine the medical action that is to be executed. In one embodiment, the medical action that is to be executed may be to recommend a patient group or a patient via endpoint device based on the patient profile.

In another embodiment, the patient profiles may be used to create timelines, present these timelines as DAGs, and generate a disease progression model. The medical action to be executed that is determined by the medical determination engine may be based on the disease progression model. In one embodiment, the medical action to be executed that is determined by the medical determination engine may be to provide a diagnosis or a treatment based on the disease progression model.

In one embodiment, the medical action to be executed that is determined by the medical determination engine may be monitoring a patient for a health risk based on similarity to a patient profile of another patient that has the health risk. In another embodiment, the medical action to be executed that is determined by the medical determination engine may be to take medical action (e.g., prescribe a particular drug, prescribe a particular therapy, prescribe a particular procedure, and the like) based on a prediction of an impact of a disease on a patient associated with the similarity to a patient profile of another patient that has the disease. For example, this prediction may be to predict mortality. In one embodiment, the medical action to be executed that is determined by the medical determination engine may be to use the similarity to a patient profile of another patient for risk stratification.

At step514, the method500transmits the medical action to be executed to a health administration server. At step516, the method500ends.

As a result, the embodiments of the present disclosure utilize social media data to understand a patient's medical condition, increase patient-to-patient communication for better peer support, and build a disease progression model to better understand a disease. The data is transformed from free formed text into generating patient profiles that can be used to identify the group of people who are similar to a patient's health issues and provide diagnosis and treatment options for subsequent patients.

Furthermore, the embodiments of the present disclosure improve the healthcare industry. For example, social media data is used to understand the patient and help them by recommending similar patients for better interactive communication. Additionally, the present disclosure provides easy information access to the patients and emotional support between patients. Furthermore, the present disclosure provides easy and quick access to care, reduces complications, reduces re-admission and recovery tracking, increases brand promotion and brand monitoring, and identifies high-risk patients. In another example, the disease progression model identifies various stages of the disease and helps doctors, patients and practitioners to better understand a patient's health condition and improve the quality of treatment. Additionally, the disease progression model may also be used for conditional anomaly detection methods, improving pharmaceutical research and development activity, optimizing treatment, and designing clinical guidelines.

FIG. 6depicts a high-level block diagram of a computer that can be transformed to into a machine that is dedicated to perform the functions described herein. Notably, no computer or machine currently exists that performs the functions as described herein. As a result, the embodiments of the present disclosure improve the operation and functioning of the computer to generate a patient profile via a social media service, as disclosed herein.

As depicted inFIG. 6, the computer600comprises one or more hardware processor elements602(e.g., a central processing unit (CPU), a microprocessor, or a multi-core processor), a memory604, e.g., random access memory (RAM) and/or read only memory (ROM), a module605for generating a patient profile via a social media service, and various input/output devices606(e.g., storage devices, including but not limited to, a tape drive, a floppy drive, a hard disk drive or a compact disk drive, a receiver, a transmitter, a speaker, a display, a speech synthesizer, an output port, an input port and a user input device (such as a keyboard, a keypad, a mouse, a microphone and the like)). Although only one processor element is shown, it should be noted that the computer may employ a plurality of processor elements. Furthermore, although only one computer is shown in the figure, if the method(s) as discussed above is implemented in a distributed or parallel manner for a particular illustrative example, i.e., the steps of the above method(s) or the entire method(s) are implemented across multiple or parallel computers, then the computer of this figure is intended to represent each of those multiple computers. Furthermore, one or more hardware processors can be utilized in supporting a virtualized or shared computing environment. The virtualized computing environment may support one or more virtual machines representing computers, servers, or other computing devices. In such virtualized virtual machines, hardware components such as hardware processors and computer-readable storage devices may be virtualized or logically represented.