Patent Publication Number: US-2022223278-A1

Title: Processing generated sensor data associated with lymphedema device usage

Description:
RELATED APPLICATIONS 
     This application claims priority to U.S. Provisional Application No. 63/137,481, filed on Jan. 14, 2021 and titled, “Processing Generated Sensor Data Associated with Lymphedema Device Usage,” which is hereby incorporated by reference in its entirety. 
    
    
     TECHNICAL FIELD 
     The present disclosure relates to systems and methods for processing generated sensor data of a lymphedema device. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       To easily identify the discussion of any particular element or act, the most significant digit or digits in a reference number refer to the figure number in which that element is first introduced. 
         FIG. 1  illustrates an exemplary environment for processing generated sensor data of a lymphedema device. 
         FIG. 2  illustrates an exemplary embodiment of a system for providing intermittent compression of muscles within an extremity of an individual for the enhancement of blood and/or lymph flow in the extremity to prevent lymphedema. 
         FIG. 3  illustrates a flowchart of a method for processing generated sensor data of a lymphedema device, in accordance with one embodiment. 
         FIG. 4  illustrates an example computer architecture that facilitates operation of the principles described herein. 
     
    
    
     DETAILED DESCRIPTION 
     Lymphedema occurs when a blockage of lymph fluid limits appropriate draining of such fluids. Lymphedema may be caused by the removal of, or damage to, an individual&#39;s lymph nodes (e.g., during cancer treatment). Initially, lymphedema results in swelling. Over time, serious conditions may develop to include fibrosis (hardening and thickening of the skin), restricted range of motion of an affected limb, lymphangitis (infection of lymph vessels, cellulitis (bacterial infection of the skin), and lymphangiosarcoma (soft tissue cancer), among other conditions. 
     The development of the above described conditions may be reduced by taking the following actions: 1. Using a lymphedema device that is configured to provide intermittent compression of a limb; 2. Walking (or ambulation) and appropriate exercise after an injury or surgery (potentially while using a lymphedema device); and 3. Rest during recovery (e.g., from surgery, radiation treatment, and so forth). These actions may improve blood flow and the speed at which wounds heal. Failure to take such action may put individuals at higher risk for both infection and lymphedema. As such, the principles described herein may facilitate the provision of intermittent compression to a limb of a patient for the enhancement of blood and lymph flow while also providing intelligent processing of generated sensor data associated with use of, and/or the user of, the lymphedema device. 
       FIG. 1  illustrates an example environment  100  for generating and processing sensor data associated with use of a lymphedema device. As shown,  FIG. 1  includes lymphedema device  102 , mobile device  110 , medical provider servers(s)  112 , and network  114 . The lymphedema device  102  is configured to provide intermittent compression of muscles within an extremity (e.g., an arm or leg) of an individual for the enhancement of blood and/or lymph flow in the extremity to prevent lymphedema, as well as sensor data generation and processing. 
     For instance,  FIG. 2  illustrates an example embodiment  200  of the lymphedema device  102 . As shown,  FIG. 2  includes a lymphedema device  202 . In some embodiments, the lymphedema device  202  may comprise a mobile lymphedema device. In other embodiments, the lymphedema device  102  may comprise a stationary lymphedema device. In addition, the example of the lymphedema device  202  provided in  FIG. 2  serves only as an example of a lymphedema device and should not be construed as a limitation to the application of the present invention. In particular, the principles described herein may be practiced with any type of lymphedema device. For instance, the lymphedema device  102  may comprise a device that can be used with the legs and/or arms of an individual. In another example, the lymphedema device  102  may include a jacket or shirt that can be placed on the upper body and particularly, the arms of an individual, for providing intermittent compression to one or more arms of the individual. 
     As shown in  FIG. 2 , the lymphedema device  202  comprises two main components, configurable pants  204  and a controller  206 . The configurable pants  204  may be configured to be worn on the legs of an individual. In addition, the configurable pants  204  may include components configured to operate the device, including, but not limited to, a power supply, a mechanism(s) for performing intermittent compression of the device (e.g., an energy generating mechanism, an actuator, at least one pressing element, and so forth), an on/off switch, a force regulator for regulating the force exerted on one or more given muscles, and a rate regulator for regulating the frequency of intermittent compressions, as well as sensors, communication systems, and so forth. While not shown in  FIG. 2 , the configurable pants  204  may also be adjustable to allow for conforming to various sizes of limbs or extremities. 
     The controller  206  may comprise any applicable type of device that is configured to allow a user to control the lymphedema device  202  (and the configurable pants  204 ). For instance, the controller  206  may allow for turning on the lymphedema device  202  to thereby provide intermittent compression to the extremities of an individual. Furthermore, the controller  206  may be configured to provide granular control associated with providing intermittent compression for preventing lymphedema, including, but not limited to, a length of intervals of intermittent compression (e.g., an hour of intermittent compression, 30 minutes of intermittent compression, and so forth), an amount of force/pressure corresponding to each intermittent compression, a length of time of compression corresponding to each intermittent compression, a length of time between each intermittent compression, portions of the extremities that are to receive intermittent compressions (e.g., calves, quadriceps muscles, hamstring muscles, etc.), and so forth. 
     As illustrated in  FIG. 2 , the controller  206  may be coupled to the configurable pants  204  via connection  208 . In some embodiments, the connection  208  may comprise a direct electrical coupling of the controller  206  to the configurable pants  204 . In other embodiments, the connection  208  may comprise a wireless coupling of the controller  206  to the configurable pants  204  via any applicable wireless standard (e.g., Bluetooth® technology, Wi-Fi technology, and so forth). 
     Returning to  FIG. 1 , the lymphedema device  102  may also be at least partially embodied, for example, by computing system  400 , as further described with respect to  FIG. 4 . The lymphedema device  102  may comprise any type of computer system, including any combination of hardware and/or software that is configured to provide intermittent compression of muscles within an extremity of an individual for the enhancement of blood and/or lymph flow in the extremity to prevent lymphedema, as well as sensor data generation and processing. 
     As shown, the lymphedema device  102  may include various engines, functional blocks, and components, including (as examples) a sensor(s)  104 , a sensor data processing engine  106 , a database  116 , and a communication engine  108 , each of which may also include additional engines, functional blocks, and components. The various engines, components, and/or functional blocks of the lymphedema device  102  may be implemented on a single computer system, or may be implemented as a distributed computer system that includes elements resident in a cloud environment, and/or that implement aspects of cloud computing (i.e., at least one of the various illustrated engines may be implemented locally, while at least one other engine may be implemented remotely). In addition, the various engines, functional blocks, and/or components of the lymphedema device  102  may be implemented as software, hardware, or a combination of software and hardware. 
     Notably, the configuration of the lymphedema device  102  illustrated in  FIG. 1  is shown only for exemplary purposes. As such, the lymphedema device  102  may include more or less than the engines, functional blocks, and/or components illustrated in  FIG. 1 . Although not explicitly illustrated, the various engines of the lymphedema device  102  may access and/or utilize a processor and memory, such as the processor(s) processors(s)  402  and the memory  404  of  FIG. 4 , as needed, to perform their various functions. 
     As briefly introduced, the lymphedema device  102  includes the sensor(s)  104 , the sensor data processing engine  106 , the database  116 , and the communication engine  108 . The sensor(s)  104  may comprise one or more sensors configured to generate sensor data associated with a user of the device (or potentially associated with an environment of the user). For instance, at least one of the one or more sensors may comprise an on/off switch that is configured to generate use data indicating when the lymphedema device  102  is in operation (i.e., providing intermittent compression of the lymphedema device  102 ). Such use data may further indicate the days in which the lymphedema device  102  was in use and the duration of time during which the device was in use during the indicated days. 
     In some embodiments, a temperature sensor may be utilized in conjunction with the on/off switch to ensure that the lymphedema device  102  is currently in use by an individual rather than simply being in an operative state. More specifically, the temperature sensor may generate temperature data when the lymphedema device  102  is an operative state, which temperature data may indicate whether or not the device is being worn/used by an individual (i.e., the generated temperature data comprises a temperature that would be indicative of an individual&#39;s skin temperature when wearing the device). 
     In another example, the sensor(s)  104  may include one or more of a pedometer, an accelerometer, and a gyroscope that are configured to, in combination or alone, generate ambulation (or walking) data when an individual walks while using the lymphedema device  102 . For instance, ambulation data may include an amount of time (e.g., seconds, minutes, hours, and so forth) or a distance (e.g., steps, feet, meters, kilometers, miles, and so forth) the individual walked during use of the lymphedema device  102 . 
     Alternatively, or additionally, the sensor(s)  104  may include one or more of a skin temperature sensor, a gyroscope, an accelerometer, an ambient temperature sensor, an audio sensor, a pressure sensor, a blood pressure sensor, a blood-oxygen sensor, a glucometer, and so forth. It should be noted that the types of sensors listed herein are not meant to be limiting in any way, as the principles described herein may be utilized with any type of sensor or environmental data. 
     Furthermore, while the sensor(s)  104  is illustrated as being located within the lymphedema device  102 , one or more sensors may be located outside of, or remote to, the lymphedema device  102 . In such embodiments, the one or more sensors located outside of the lymphedema device  102  may be configured to communicate with the lymphedema device  102  (e.g., by providing sensor data to the lymphedema device  102  via communication engine  108 ). In an example, the lymphedema device  102  may utilize sensor data generated by the mobile device  110 . In a specific example, the mobile device  110  may generate movement data from a global positioning system apparatus and/or a gyroscope, which movement data may be shared with the lymphedema device  102  via its communication engine  108 . The lymphedema device  102  may then process such sensor data (e.g., movement data) using the sensor data processing engine  106 , as further described herein. In other examples, the lymphedema device  102  may utilize sensor data from standalone sensor devices (e.g., pulse oximeters, blood pressure cuffs, thermometer, international normalized ration (INR) test device, and so forth). 
     As briefly described, the lymphedema device  102  also includes the sensor data processing engine  106 . The sensor data processing engine  106  may be configured to process and analyze generated sensor data. For instance, the sensor data processing engine  106  may process use data to determine a duration of use (i.e., how long the lymphedema device  102  was used) for any given day. In addition, the sensor data processing engine  106  may process use data to determine an average daily usage amount or a median daily usage amount for a given time period (e.g., average daily usage amount of 4 hours over the last 3 weeks, median daily usage of 3.5 hours over the last 30 days, and so forth). Similarly, the sensor data processing engine  106  may process ambulation data to determine an average daily ambulation amount or a median daily ambulation amount for a given time period (e.g., average daily ambulation amount of 30 minutes over the last 3 weeks, median daily usage of 20 minutes over the last 30 days, and so forth). 
     In addition, the sensor data processing engine  106  may analyze sensor data in light of protocols or rules. For instance, a user of the lymphedema device  102  may have been given a protocol to use the device for a particular amount of time each day (e.g., 2 hours, 3 hours, 4 hours, and so forth), as well as a total duration (e.g., 5 hours a day for 30 days, 4 hours a day for 6 weeks, and so forth). Based on such protocol, the sensor data processing engine  106  may analyze associated sensor data (i.e., generated use data, in this case) to determine whether the user of the device is using the device according to provided protocols. 
     In another example, the sensor data processing engine  106  may analyze generated temperature sensor data in relation to one or more rules regarding appropriate/safe skin temperature of a user of the device. As such, the sensor data processing engine  106  may determine whether a current temperature of a user&#39;s skin is unsafe or potentially indicative of a health issue (e.g., lymphedema, infection, and so forth). 
     In another example, the sensor data processing engine  106  may process generated ambulation data in relation to one or more protocols or rules. For instance, a user of the lymphedema device  102  may have been given a protocol to walk while using the device for a particular amount of time each day (e.g., 20 minutes, 30 minutes, 1 hour, 2 hours, and so forth). Based on such protocol, the sensor data processing engine  106  may analyze associated sensor data (i.e., generated ambulation data, in this case) to determine whether the user of the device is walking while using the device according to provided protocols. Notably, while various examples of processing by the sensor data processing engine  106  are discussed herein, these examples are not meant to be limiting but rather act as examples of the capabilities of sensor data processing engine  106 . 
     In addition, the sensor data processing engine  106  may be configured to perform one or more actions based on processed sensor data. For instance, using the protocol example above, the sensor data processing engine  106  may generate an alert to be sent to a medical professional regarding a high temperature reading, an average lymphedema device usage below corresponding usage protocols, an average ambulation below corresponding ambulation protocols, and so forth. Such an alert may be sent via the communication engine  108 , which is further described herein. 
     In another example, the sensor data processing engine  106  may process usage data to thereby determine that a user of the device is short of the corresponding usage protocol for a given day or averaging less usage per day than a corresponding usage protocol. In such an example, the sensor data processing engine  106  may generate an alert to be sent to the user regarding low usage and/or the corresponding usage protocol. For instance, the sensor data processing engine  106  may generate such an alert, which may then be sent to a device of the user (e.g., the mobile device  110 ). 
     In yet another example, the sensor data processing engine  106  may process ambulation data to thereby determine that a user of the device is short of the corresponding ambulation protocol for a given day or averaging less ambulation per day than a corresponding ambulation protocol. In such an example, the sensor data processing engine  106  may generate an alert to be sent to the user regarding low ambulation and/or the corresponding ambulation protocol. For instance, the sensor data processing engine  106  may generate such an alert, which may then be sent to a device of the user (e.g., the mobile device  110 ). 
     While the sensor data processing engine  106  is illustrated as being located within the lymphedema device  102 , in some embodiments, part or all of the sensor data processing engine  106  may be located outside of the lymphedema device  102 . For instance, in such embodiments, the mobile device  110  and/or the medical provider servers(s)  112  may be configured to receive data from lymphedema device  102  and process such data (e.g., analyze usage data in relation to given protocols), as further described herein. 
     The sensor data processing engine  106  may receive or pull both sensor data and protocols/rules from the database  116 . Accordingly, the database  116  may be configured to store both generated sensor data and any associated protocols/rules regardless of the original source of such data or protocols/rules (e.g., regardless of whether any given sensor data was generated by lymphedema device  102  or received at the lymphedema device  102  from an outside device such as the mobile device  110 ). Protocols and rules may be provided by medical professionals (e.g., physicians, nurse practitioners, and so forth) to the lymphedema device  102  directly or via the medical provider servers(s)  112  or mobile device  110 . 
     Additionally, or alternatively, protocols and/or rules may comprise default protocols/rules based on a type of injury of the user. For instance, a particular type of cancer surgery/treatment may have an associated first protocol/rule, a knee replacement may have an associated second protocol/rule (which may be the same as, or different from, the first protocol/rule), a tibia fracture may have an associated third protocol/rule (which may be the same as, or different from, the first and second protocol/rule), and so forth. In such cases, the database may have a number of possible injuries that are each correlated to one or more protocols/rules. In such embodiments, upon input of a particular injury, the lymphedema device  102  may be configured to identify a particular default protocol/rule associated with the inputted injury. Notably, the database  116  may comprise any type of computer-readable storage media as further described with respect to  FIG. 4 . 
     Data, including but not limited to generated sensor data, data processed by the sensor data processing engine  106  (e.g., average daily lymphedema device usage), received sensor data, received protocols/rules, and alert data, may be transmitted and/or received by the communication engine  108 . The communication engine  108  may comprise any type of communication system that allows the lymphedema device  102  to communicate with the mobile device  110 , network  114 , and/or medical provider servers(s)  112  over wired or wireless connections. Notably, such communication systems are also further described with respect to communication channels  408  and the network  410  in  FIG. 4 . In an example, the communication engine  108  may comprise Bluetooth technology, Wi-Fi technology, and so forth. 
     As illustrated in  FIG. 1 , the environment  100  also includes the mobile device  110 . The mobile device  110  may also be embodied, for example, by the computing system  400 , as further described with respect to  FIG. 4 . The mobile device  110  may comprise any type of computer system that is configured to communicate with, utilize the functionality of, and provide additional functionality to the lymphedema device  102  and the medical provider servers(s)  112 , which are described further herein. In an example, the mobile device  110  may comprise a smartphone, a tablet, or a laptop. In addition, the following description of functionality of the mobile device  110  may be at least partially facilitated via a software application of the mobile device  110 . 
     As briefly described, the mobile device  110  may be configured to communicate with, utilize the functionality of, and provide additional functionality to the lymphedema device  102  and the medical provider servers(s)  112 . For instance, in some embodiments, the mobile device  110  may generate sensor data and provide the generated sensor data to the lymphedema device  102  for further processing (i.e., by the sensor data processing engine  106 ). In an example, the mobile device  110  may generate usage data. In particular, the lymphedema device  102  may communicate with the mobile device  110  (e.g., via Bluetooth, via Wi-Fi, and so forth) when the lymphedema device  102  has been turned on. In such cases, the mobile device  110  may generate the usage data and provide the generated usage data to the lymphedema device  102  for further processing by the sensor data processing engine  106 . 
     In another example, the mobile device  110  may generate ambulation data (e.g., via a pedometer, an accelerometer, and/or gyroscope of the mobile device  110 ). In particular, the mobile device  110  may send the generated ambulation data to the lymphedema device  102  (e.g., via Bluetooth, via Wi-Fi, and so forth). In such cases, the mobile device  110  may generate the ambulation data and provide the generated ambulation data to the lymphedema device  102  for further processing by the sensor data processing engine  106 . 
     In other embodiments, the mobile device  110  may generate data and process some or all of the data in a similar manner to the sensor data processing engine  106  (e.g., analyzing the data to determine a daily average ambulation time, analyzing the data in relation to protocols, and so forth). In other embodiments, the mobile device  110  may generate data (e.g., usage data, ambulation data, and so forth) and provide it to the medical provider servers(s)  112  for further processing. In yet other embodiments, the mobile device  110  may receive sensor data from the lymphedema device  102  and process the data or transmit the data to the medical provider servers(s)  112  for further processing. 
     As briefly described, the environment  100  also includes the medical provider servers(s)  112 . The medical provider servers(s)  112  may also be embodied, for example, by the computing system  400 , as further described with respect to  FIG. 4 . The medical provider servers(s)  112  may comprise any type of computer system, including any combination of hardware and/or software, that is configured to receive sensor data from the lymphedema device  102  and the mobile device  110 , receive processed sensor data from the lymphedema device  102  and the mobile device  110 , process received sensor data from the lymphedema device  102  and the mobile device  110 , provide processed sensor data (and/or alerts) to the lymphedema device  102 , the mobile device  110 , and computing systems associated with medical professionals, receive protocols/rules from computing systems associated with medical professionals, and provide received protocols/rules to the lymphedema device  102  and the mobile device  110 . In particular, the medical provider servers(s)  112  may be implemented on a single computer system, or may be implemented as a distributed computer system that includes elements resident in a cloud environment, and/or that implement aspects of cloud computing. 
     Accordingly, in an example, the medical provider servers(s)  112  may receive sensor data from the lymphedema device  102  or the mobile device  110  and process the received sensor data similar to the sensor data processing engine  106  (e.g., processing the received sensor data to determine average daily ambulation, median daily ambulation, and so forth). The medical provider servers(s)  112  may then be configured to provide the processed data to the mobile device  110  or the lymphedema device  102 . In addition, in response to processing such sensor data, the medical provider servers(s)  112  may also be configured to perform one or more actions (e.g., send an alert to the mobile device  110  or lymphedema device  102  reminding a user to walk while using the lymphedema device  102  or to use the device more frequently when it is determined that the user is not using the device according to given protocols/rules). 
     In another example, whether processed by the lymphedema device  102 , the mobile device  110 , or the medical provider servers(s)  112 , the medical provider servers(s)  112  may be configured to provide processed sensor data to a medical professional (e.g., a physician, a nurse practitioner, a nurse, and so forth). For instance, such a medical professional may utilize a computing system (e.g., the computing system  400 ) to access processed data that indicates whether a user (e.g., a patient of the medical professional of the lymphedema device  102 ) is using the lymphedema device  102  in accordance with one or more provided protocols (e.g., walking enough during use, using enough, and so forth). Similarly, a medical professional may provide protocols or rules (e.g., a number of minutes per day that a user is to be walking while using the lymphedema device  102 ) to the medical provider servers(s)  112 , which protocols or rules may then be (sent to and/or) utilized by the lymphedema device  102 , the mobile device  110 , or the medical provider servers(s)  112  to process generated sensor data in relation to such protocols or rules. 
     As shown,  FIG. 1  also includes the network  114 , which may be configured to provide facilitate communication between the various entities of the environment  100  (e.g., the lymphedema device  102 , the mobile device  110 , and the medical provider servers(s)  112 ). In particular, the network  114  may be embodied by the network  410 , as further described herein. 
       FIG. 3  illustrates a flowchart of a method  300  for processing generated sensor data of a lymphedema device. In block  302 , the method  300  identifies use of the lymphedema device corresponding to a user. For instance, an on/off switch may be utilized to determine that the lymphedema device  102  is in use. In another example, both an on/off switch of the lymphedema device  102  and confirmation by the mobile device  110  may be utilized to ensure the device is in use. 
     In block  304 , the method  300  generates sensor data associated with the user&#39;s identified use of the lymphedema device. At least some of the generated sensor data comprises use data associated with a duration of use of the lymphedema device by the user. In particular, such use data may be associated with time such that an amount of time of usage during any given day may be analyzed or determined. In addition to the use data, the lymphedema device  102  and/or the mobile device  110 /other standalone sensor generating devices may generate other types of data including ambulation, temperature, blood pressure, oxygen levels, and so forth. 
     In block  306 , the method  300  processes a protocol associated with use of the lymphedema device. For example, the lymphedema device  102  may utilize a default protocol for an inputted injury, both of which may be stored at the database  116 . In another example, a protocol may be provided by a medical professional via the medical provider servers(s)  112 . 
     In block  308 , the method  300  correlates the generated use data and the protocol associated with use of the lymphedema device. For instance, the sensor data processing engine  106  of the lymphedema device  102 , the mobile device  110 , or the medical provider servers(s)  112  may process the generated sensor data (i.e., use data) in relation to an applicable protocol. More specifically, such processing may result in determining whether the generated sensor data meets the applicable protocol (e.g., did the patient use the lymphedema device  102  as often for a given day, or on average during an entire duration of use of the device, as the protocol indicated). 
     In block  310 , the method  300 , based on correlating the generated use data and the protocol, generates an alert associated with the generated use data and the protocol. In an example, the lymphedema device  102 , the mobile device  110 , and/or the medical provider servers(s)  112  may generate an alert based on processed sensor data regarding any action items (e.g., the lymphedema device  102  is to be used more often, the patient is to seek medical attention based on a current skin temperature of the patient that indicates infection or lymphedema, and so forth). 
     Some general discussion of a computing system will now be described with respect to  FIG. 4 . Computing systems are now increasingly taking a wide variety of forms. Computing systems may, for example, be handheld devices, appliances, laptop computers, desktop computers, mainframes, distributed computing systems, datacenters, or even devices that have not conventionally been considered a computing system, such as wearables (e.g., glasses, smart watches, and so forth). In this description and in the claims, the term “computing system” is defined broadly as including any device or system (or combination thereof) that includes at least one physical and tangible processor, and a physical and tangible memory capable of having thereon computer-executable instructions that may be executed by a processor. The memory may take any form and may depend on the nature and form of the computing system. A computing system may be distributed over a network environment and may include multiple constituent computing systems. 
     As illustrated in  FIG. 4 , in its most basic configuration, a computing system  400  typically includes at least one hardware processing unit  102  (or processors(s)  402  and memory  404 . The memory  404  may be physical system memory, which may be volatile, non-volatile, or some combination of the two. The term “memory” may also be used herein to refer to non-volatile mass storage such as physical storage media. If the computing system is distributed, the processing, memory and/or storage capability may be distributed as well. 
     The computing system  400  also has thereon multiple structures often referred to as an “executable component.” For instance, the memory  404  of the computing system  400  is illustrated as including executable component  406 . The term “executable component” is the name for a structure that is well understood to one of ordinary skill in the art in the field of computing as being a structure that can be software, hardware, or a combination thereof. For instance, when implemented in software, one of ordinary skill in the art would understand that the structure of an executable component may include software objects, routines, methods, and so forth, that may be executed on the computing system, whether such an executable component exists in the heap of a computing system, or whether the executable component exists on computer-readable storage media. 
     In such a case, one of ordinary skill in the art will recognize that the structure of the executable component exists on a computer-readable medium such that, when interpreted by one or more processors of a computing system (e.g., by a processor thread), the computing system is caused to perform a function. Such structure may be computer-readable directly by the processors (as is the case if the executable component is binary). Alternatively, the structure may be configured to be interpretable and/or compiled (whether in a single stage or in multiple stages) so as to generate such binary that is directly interpretable by the processors. Such an understanding of example structures of an executable component is well within the understanding of one of ordinary skill in the art of computing when using the term “executable component”. 
     The term “executable component” is also well understood by one of ordinary skill as including structures that are implemented exclusively or near-exclusively in hardware, such as within a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), or any other specialized circuit. Accordingly, the term “executable component” is a term for a structure that is well understood by those of ordinary skill in the art of computing, whether implemented in software, hardware, or a combination. In this description, the terms “component”, “service”, “engine”, “module”, “control”, or the like may also be used. As used in this description and in the case, these terms (whether expressed with or without a modifying clause) are also intended to be synonymous with the term “executable component”, and thus also have a structure that is well understood by those of ordinary skill in the art of computing. 
     In the description that follows, embodiments are described with reference to acts that are performed by one or more computing systems. If such acts are implemented in software, one or more processors (of the associated computing system that performs the act) direct the operation of the computing system in response to having executed computer-executable instructions that constitute an executable component. For example, such computer-executable instructions may be embodied on one or more computer-readable media that form a computer program product. An example of such an operation involves the manipulation of data. 
     The computer-executable instructions (and the manipulated data) may be stored in the memory  404  of the computing system  400 . Computing system  400  may also contain communication channels  408  that allow the computing system  400  to communicate with other computing systems over, for example, network  410 . 
     While not all computing systems require a user interface, in some embodiments, the computing system  400  includes a user interface  412  for use in interfacing with a user. The user interface  412  may include output  414  (or output mechanism(s)  114 ) as well as input  416  (or input mechanism(s)  116 ). The principles described herein are not limited to the precise type of output  414  or type of input  416  as such will depend on the nature of the device. However, output  414  might include, for instance, speakers, displays, tactile output, holograms and so forth. Examples of input  416  might include, for instance, microphones, touchscreens, holograms, cameras, keyboards, mouse of other pointer input, sensors of any type, and so forth. 
     Embodiments described herein may comprise or utilize a special purpose or general-purpose computing system including computer hardware, such as, for example, one or more processors and system memory, as discussed in greater detail below. Embodiments described herein also include physical and other computer-readable media for carrying or storing computer-executable instructions and/or data structures. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computing system. Computer-readable media that store computer-executable instructions are physical storage media. Computer-readable media that carry computer-executable instructions are transmission media. Thus, by way of example, and not limitation, embodiments of the invention can comprise at least two distinctly different kinds of computer-readable media: storage media and transmission media. 
     Computer-readable storage media includes RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other physical and tangible storage medium which can be used to store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computing system. 
     A “network” (e.g., the network  410 ) is defined as one or more data links that enable the transport of electronic data between computing systems and/or modules and/or other electronic devices. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computing system, the computing system properly views the connection as a transmission medium. Transmissions media can include a network and/or data links which can be used to carry desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computing system. Combinations of the above should also be included within the scope of computer-readable media. 
     Further, upon reaching various computing system components, program code means in the form of computer-executable instructions or data structures can be transferred automatically from transmission media to storage media (or vice versa). For example, computer-executable instructions or data structures received over a network or data link can be buffered in RAM within a network interface module (e.g., a “NIC”), and then eventually transferred to computing system RAM and/or to less volatile storage media at a computing system. Thus, it should be understood that storage media can be included in computing system components that also (or even primarily) utilize transmission media. 
     Computer-executable instructions comprise, for example, instructions and data which, when executed at a processor, cause a general purpose computing system, special purpose computing system, or special purpose processing device to perform a certain function or group of functions. Alternatively, or in addition, the computer-executable instructions may configure the computing system to perform a certain function or group of functions. The computer executable instructions may be, for example, binaries or even instructions that undergo some translation (such as compilation) before direct execution by the processors, such as intermediate format instructions such as assembly language, or even source code. 
     Those skilled in the art will appreciate that the invention may be practiced in network computing environments with many types of computing system configurations, including, personal computers, desktop computers, laptop computers, message processors, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, mobile telephones, PDAs, pagers, routers, switches, datacenters, wearables (such as glasses) and the like. The invention may also be practiced in distributed system environments where local and remote computing systems, which are linked (either by hardwired data links, wireless data links, or by a combination of hardwired and wireless data links) through a network, both perform tasks. In a distributed system environment, program modules may be located in both local and remote memory storage devices. 
     Those skilled in the art will also appreciate that the invention may be practiced in a cloud computing environment. Cloud computing environments may be distributed, although this is not required. When distributed, cloud computing environments may be distributed internationally within an organization and/or have components possessed across multiple organizations. In this description and the following claims, “cloud computing” is defined as a model for enabling on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services). The definition of “cloud computing” is not limited to any of the other numerous advantages that can be obtained from such a model when properly deployed. 
     Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the described features or acts described above, or the order of the acts described above. Rather, the described features and acts are disclosed as example forms of implementing the claims. 
     The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.