This description generally relates to disease diagnostics, and particularly to a portable system to perform image-based disease diagnostic tests.
Though many disease diagnostic tests are performed in laboratory settings using benchtop equipment, advances in medical technologies such as microfluidics have enabled users to perform diagnostic tests using smaller-sized and more portable equipment. For example, the hardware required to complete an immunoassay for a diagnostic test can be fit into a handheld device. However, in conventional test processes, trained personnel such as a nurse, physician, or lab technician must analyze the handheld device to determine the test result. Thus, a patient would have to visit a facility such as a healthcare clinic, or the trained personnel would have to visit the patient at the patient's home, for example. Alternatively, the patient can collect a biological sample of the patient (such as a mouth or nostril swab) at the patient's home and mail the biological sample to a laboratory to perform the immunoassay using the biological sample.
The above examples may not provide a quick test result because these processes require travel of person(s) or transportation of some test material. Additionally, in remote areas that have scarce medical resources and personnel, it is especially challenging to perform diagnostic tests using conventional test processes. Developments in telecommunications have helped spur the growth of telemedicine technologies that provide remote diagnosis of patients. However, it is still challenging to perform a point-of-care diagnostic test using a reliable and portable end-to-end system that patients can complete in the comfort of their homes.
A diagnostic system performs disease diagnostic tests (also referred to herein as a “diagnostic test” or a “nucleic acid disease diagnostic test”) using at least an optical property modifying device and a mobile device. A user provides a biological sample from a patient to the optical property modifying device that reacts with an optical property modifying reagent in reaction chambers of the device. For example, the optical property modifying device performs a nucleic acid amplification assay that changes the color of a solution including the biological sample and the optical property modifying reagent in the reaction chambers. The user captures one or more images of the reaction chambers using an optical sensor (e.g., camera) of the mobile device. To help the user align the mobile device to the reaction chambers, the optical property modifying device or a user interface displayed on the mobile device can provide visual markers. The diagnostic system can determine a quality level of the images based on factors such as skew, scale, focusing, shadowing, or white-balancing. The diagnostic system determines whether to select an image for further analysis based on the corresponding quality level.
The diagnostic system analyzes one or more selected images to determine a test result of a disease diagnostic test for the patient. For example, based on known reference information, the diagnostic system matches a color change of the reaction chambers to a particular test result, for instance, positive, negative, or undetermined. The diagnostic system may communicate the test result, as well as instructions for the disease diagnostic test, to the user via the mobile device. The diagnostic system can also provide the test result and relevant metadata to other health care providers such as a physician or a pharmacy to provide suitable treatment if the patient tests positive for a disease.
Thus, the diagnostic system is a point-of-care system that enables patients to conveniently complete disease diagnostic tests at their homes (or other patient locations) without having to leave their homes, mail test material to a lab, or have a health care personnel visit them at their homes. The optical property modifying device, mobile device, and any other required test equipment, such as a swab and collection tube for the biological sample, are all portable. Since the mobile device (or a computer server in communication with the mobile device) performs image analysis to determine the test result, the diagnostic system can provide a quick diagnosis without requiring any input from health care personnel. Further, test results of the diagnostic system are mobile device hardware-independent because the diagnostic system can normalize images captured from different types of mobile devices and optical sensors.
In one embodiment, a method receives at least one image of an optical property modifying device for a nucleic acid disease diagnostic test captured by an optical sensor of a mobile device of a user. The optical property modifying device includes a plurality of reaction chambers on a surface of the optical property modifying device and configured to react a biological sample with an optical property modifying reagent. For each image of the at least one image, the method determines whether the surface of the optical property modifying device is shown in the image based on at least one of a known geometric characteristic and a known color characteristic associated with the surface of the optical property modifying device. The method selects one or more images of the at least one image that are determined to show the surface. The method determines a test result for the nucleic acid disease diagnostic test based at least in part on the one or more images and at least one of the reaction chambers. The method provides the test result for display on an electronic display of the mobile device.
In some embodiments, the method provides the test result, a geographical location of the mobile device, and a timestamp of the geographical location to a computer server, which compiles epidemiological data based on aggregated test results. In some embodiments, the method provides information associated with the test result to a pharmacy to allow the pharmacy to fulfill a prescription for a patient. In some embodiments, the method generates a message including sponsored content based on the test result and provides the message to the mobile device. In some embodiments, the method provides the test result to a health care provider located within a predetermined distance from the patient and provides a recommendation from the health care provider to treat the disease. In some embodiments, the method provides the test result to a computer server of a third party including health information based on aggregated test results for a population of patients. In some embodiments, the sensitivity and specificity of the test results are adjusted to account for geospatial and seasonal variations in disease prevalence.
Since a patient can complete the chemical reaction portion of the disease diagnostic test at home using the optical property modifying device, the diagnostic system and methods described herein do not require a central lab to perform disease diagnostic tests. Further, the diagnostic system may provide test results and related information directly to a pharmacy or other health care providers.
In another embodiment, a non-transitory computer-readable storage medium stores instructions that when executed by a processor causes the processor to execute the above-described method.
Figure (
The figures depict embodiments of the present 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.
The mobile device 110 is an electronic device that includes a diagnostic system 100 to determine test results for disease diagnostic tests performed by users using at least the mobile device 110 (e.g., a smartphone, tablet, laptop computer, etc.) and optical property modifying device 120. Since the mobile device 110 and optical property modifying device 120 are portable, users can perform disease diagnostic tests at the patient's home or any other suitable location outside of health care facilities such as hospitals or central labs for disease diagnostic tests. The diagnostic server 150 is a computer server that can perform some or all functionality of the diagnostic system 100 in some embodiments.
A user of the mobile device 110 interacts with the diagnostic system 100 via a mobile application. The mobile application communicates information from the diagnostic system 100. For example, the mobile application presents instructions or results for a disease diagnostic test on a graphical user interface displayed on an electronic display on the mobile device 110. As another example, the mobile application provides information via audio signals or tactile feedback (e.g., vibrating the mobile device 110). The mobile application running on the mobile device 110 can provide data from sensors of the mobile device 110 the diagnostic system 100. For example, the mobile device 110 includes an optical sensor such as a camera to capture images of the optical property modifying device 120. The mobile device 110 can provide the captured images to the diagnostic system 100 for further processing, which is further described with reference to
The mobile device 110 can communicate with the diagnostic server 150 and health care providers 130 via the network 140, which may comprise any combination of local area and wide area networks employing wired or wireless communication links. In one embodiment, the network 140 uses standard communications technologies and Internet protocols. In some embodiments, all or some of the communication links of the network 140 may be encrypted, for example, to provide a technical safeguard for Health Insurance Portability and Accountability Act (HIPAA) compliance.
The health care provider 130 is a computer server associated a health care provider such as a pharmacy, a central laboratory (e.g., for completing chemical reactions for disease diagnostic tests), a hospital, other types of healthcare facilities, or any other suitable provider of health care services. As an example use case, the diagnostic system 100 provides a disease diagnostic test result of a patient to a pharmacy. Based on the results, the pharmacy determines an appropriate prescription for the patient.
The indicator 250 may be a light-emitting diode (LED) that provides an indication of a status of a disease diagnostic test being performed by the optical property modifying device 120. For example, the indicator 250 provides a red colored light indicating that the test has not yet started, a yellow colored light indicating that the test is in progress, and a green colored light indicating that the test has completed. In other embodiments, the indicator 250 may be another type of indicator different than an LED (e.g., an audio indicator) and the optical property modifying device 120 may include any number of indicators 250 (including zero).
The QR code 260 may be associated with information for a disease diagnostic test such as a type of the test or expiration date of the test. The diagnostic system 100 can determine the information for disease diagnostic test by processing images of the QR code 260 scanned by an optical sensor of the mobile device 110. The QR code 260 can also be another type of code, such as a barcode, or other identifier or machine-readable signature.
In one use case, the optical property modifying device 120 performs a type of disease diagnostic test involving nucleic acid(s), e.g. nucleic acid amplification, using the reaction chambers 240 to determine the presence or amount of a particular genetic target in the biological sample. For example, the optical property modifying device 120 includes an optical property modifying reagent, which is a solution comprising nucleic acid enzymes and primers which specifically a target nucleic acid sequence specific to an organism of interest. The presence or amount of this target nucleic acid sequence within the biological sample may indicate that a patient is infected with a particular pathogen or carries a particular genetic disease. Further, the optical property modifying reagent includes a dye which changes color or fluoresces upon target amplification, resulting in a visible change in the solution's optical properties. Thus, the diagnostic system 100 can analyze the optical properties of the solution of the biological sample and the optical property modifying reagent to determine results of the disease diagnostic test. In some embodiments, the optical property modifying device 120 can perform other tests such as immunoassays or enzyme-linked immunosorbent assays (ELISAs).
An optical property modifying device 120 may perform multiple disease diagnostic tests in parallel or in series. The optical property modifying device 120 shown in the example in
Though not shown in
The collection tube 200 is configured to store a biological sample and includes a cartridge interface 210 and a cap 220. A user can provide a biological sample to the collection tube 200 using a swab, for example. The cap 220 encloses the biological sample in the collection tube 200. A user can attach the collection tube 200 to the optical property modifying device 120 by physically contacting the cartridge interface 210 of the collection tube 200 to the collection tube interface 230 of the optical property modifying device 120. When attached, the collection tube 200 can provide a stored biological sample to the optical property modifying device 120 via the interfaces 210 and 230. Though the collection tube 200 shown in
In an embodiment, a mobile device 285 reads and interprets information (e.g., test results) presented by the electronic display 275 using an onboard camera or another type of sensor. Furthermore, the mobile device 285 may use image recognition processes to determine geometric, color, or other visual attributes of the information presented, e.g., for interpreting a diagnostic result from the optical property modifying device 270. The image recognition processes may include, for example, optical pattern matching or optical character recognition (OCR) algorithms known to one skilled in the art. As shown in
In some embodiments, some or all of the functionality of the diagnostic system 100 may be performed by or implemented on the diagnostic server 150 instead of the mobile device 110. For example, the mobile device 110 acquires images of an optical property modifying device 120 using the image processing engine 320 and provides the images to the diagnostic server 150 for further processing by the image analysis engine 325. The mobile device 110 can receive a test result determined by the diagnostic server 150 and communicate the test result to a user. This may be advantageous because the image analysis engine 325 may require more computational resources relative to the image processing engine 320 or other components of the diagnostic system 100 on the mobile device 110.
The user data store 310 stores information about users of the diagnostic system 100 such as patients who have completed—or will complete—a diagnostic test. The information may include user information such as name, demographics, family data, geographical location, contact information, or physiological data. The information may describe user's medical history such as prescriptions, health conditions, genetic data, visits to health care providers, past or current medical services or interventions received, or previously completed diagnostic tests along with relevant details such as the date that the tests were taken and the test results.
The image processing engine 320 acquires and processes images from a mobile device 110. The image processing engine 320 may implement image processing techniques known to one skilled in the art such as noise reduction using different types of filters, skew correction, resizing, rescaling, rotation, equalization, focusing/sharpening, or edge detection. The image processing engine 320 can determine whether the surface of an optical property modifying device 120 is shown in the image based on various parameters associated with the surface.
A parameter may be a known geometric characteristic of the optical property modifying device 120. For example, the QR code 260 shown in
The image processing engine 320 may transform an acquired image (e.g. translate, skew, scale, or rotate) based on geometric characteristics, or in other words, spatial data of the image determined by the image processing engine 320. Alternatively, the image processing engine 320 may leave the image unchanged but instead transform the coordinates it uses to identify regions of interest for analysis within the image. As an example, a fiducial marker of the optical property modifying device 120 has a reference orientation and/or size. For instance, the QR code 260 shown in
A parameter may also be a known color characteristic of the optical property modifying device 120. For example, the image processing engine 320 has information indicating that the surface (or a fiducial marker) of the optical property modifying device 120 is known to be a certain color(s). As an example use case, the surface of the optical property modifying device 120 is known to have a uniform white color (or approximately white color). However, an image of the optical property modifying device 120 may be tinted with warmer colors (e.g., red) or cooler colors (e.g., blue) depending on lighting conditions when the image was captured. The image processing engine 320 may use white balancing (e.g., color balancing) to determine the lighting conditions of the image and adjust the colors of the image; thus, the image processing engine 320 can properly match the known white color of the surface of the optical property modifying device 120 with the adjusted image. The image processing engine 320 can also use shadowing techniques to remove or otherwise account for shadows in images that may skew the color of certain portions of the images. For instance, the image processing engine 320 measures the uniformity of a known color of the surface of the optical property modifying device 120 to identify shadows in an image.
In some embodiments, the image processing engine 320 continuously monitors images captured by an optical sensor of the mobile device 110. For example, the mobile device 110 displays a live stream of images captured by the optical sensor (e.g., representing the field of view of the optical sensor) to provide a real-time visual guide for a user to align the mobile device 110 with the optical property modifying device 120 being imaged. While monitoring, the image processing engine 320 can determine a quality level of each image. If the quality level of an image meets a threshold level, the image processing engine 320 selects the image for further processing. The image processing engine 320 may determine the quality level and threshold level based on, for instance, the focus, shadowing, white-balancing level, or illumination level of an image.
Further, by adjusting the image using the techniques and parameters described above, the image processing engine 320 can normalize images captured by mobile devices 110 having different technical specifications. This may be advantageous because users may likely have different types of mobile devices 110. For instance, one mobile device has a higher resolution camera with stronger white flash light than another mobile device. By normalizing images captured from these two mobile devices, the image processing engine 320 can effectively process images regardless of the particular specifications of the mobile devices.
The image analysis engine 325 analyzes images acquired and processed by the image processing engine 320. In some embodiments, the image analysis engine 325 analyzes one or more reaction chambers 240 in the image of an optical property modifying device 120. In particular, the image analysis engine 325 determines one or more optical properties of the reaction chambers 240 such as the color, transparency, translucency, opacity, or uniformity of the reaction chambers 240 and/or contents within the reaction chambers 240.
As an example use case, the image analysis engine 325 determines information about the optical properties of the reaction chambers 240, e.g., the average and variance of color of a group of pixels in an image corresponding to each reaction chamber. The image analysis engine 325 may determine the color average and variance (or any other statistical analysis) based on a RGB (red-green-blue) color model, hue-saturation-value (HSV) color model, or any other suitable color model. The image analysis engine 325 identifies these optical properties based on known geometric parameters of the optical property modifying device 120 such as size, shape, orientation, or identifying fiducial marks. For instance, the image analysis engine 325 retrieves a color image (e.g., to use as a reference image) from the test data store 340, identifies the size and orientation of a QR code in the color image, and uses a known size (e.g., 1×1 cm) of the QR code and known relative positions of the five reaction chambers to the QR code (e.g., 2 cm to the right and above, spaced at 1 cm increments) to extract the color average and variance of each reaction chamber.
The image analysis engine 325 can determine test results for a disease diagnostic test by comparing the determined color information of a reaction chamber 240 to reference information that indicates one or more color ranges (e.g., based on the RGB or HSV color model). A color range may correspond to a diagnosis for a disease diagnostic test associated with the reaction chamber 240. Thus, the image analysis engine 325 determines a test result based on the color range within which the determined color of the reaction chamber 240 falls. In other words, the image analysis engine 325 can match color changes of the reaction chambers 240 to a particular test result. For instance, the image analysis engine 325 determines a negative diagnosis of the disease responsive to matching the determined color to a first color range (e.g., yellow to green colors). The image analysis engine 325 determines a positive diagnosis of the disease responsive to matching the determined color to a second color range (e.g., blue to violet colors). The image analysis engine 325 determines an undetermined (e.g., “not available” or “unknown”) diagnosis of the disease responsive to matching the determined color to a third color range (or any colors that do not fall within any specified range).
Alternatively, the image analysis engine 325 can determine a test result based on the distribution and clustering of colors of the individual pixels comprising the image of a reaction chamber 240, rather than a point estimate of color average or variance. For example, the image analysis engine 325 can classify each pixel within the image of reaction chamber 240 as falling within one of the three color ranges described above. If a plurality of pixels falls within the first color range, the image analysis engine 325 determines a negative diagnosis of the disease. If a plurality of pixels falls within the second color range, the image analysis engine 325 determines a positive diagnosis of the disease. If a plurality of pixels falls within the third color range, the image analysis engine 325 determines an undetermined diagnosis of the disease. In this way, the image analysis engine 325 is robust to, for example, black and white pixels representing reflections from chamber edges that are substantially different colors from the solution within the reaction chambers 240 and might confound a point estimate-based approach to determining the color of the solution.
In some embodiments, the image analysis engine 325 determines a severity level of the disease or a confidence level of test result based on the comparing the color information with the reference information. For example, relative to a lighter color, a darker color within a certain color range may indicate that the disease diagnosis is more severe or that there is a greater confidence level. An undetermined test result may occur due to various factors such as a defect in the collection tube 200 or optical property modifying device 120, variation in the captured image, or human error by the user or patient, e.g., contaminating the biological sample provided for the diagnostic test or not waiting long enough (or too long) for a chemical reaction of the diagnostic test to complete.
The image analysis engine 325 may also determine test results further based on information other than analyzed images in some embodiments. For example, the image analysis engine 325 determines test results based on a geographical location and/or timestamp of the diagnostic test. In particular, a certain disease may be more prevalent in a certain geographical region (e.g., an area with a tropical climate or a dry climate) or during a certain time range (e.g., during the summer or winter season). In some embodiments, the performance (e.g., sensitivity vs. specificity) of the test can be adjusted based upon known epidemiological factors such as disease prevalence so that during times of low prevalence, the sensitivity of the test can be decreased to prevent false positive test results.
In some embodiments, the image analysis engine 325 implements defect detection algorithms to analyze an image of an optical property modifying device 120. For example, the image analysis engine 325 identifies bubbles in the reaction chambers 240 of the optical property modifying device 120 or other types of defects such as debris or scratches inside or on the exterior of the reaction chambers 240. Based on the identification of a defect, the image analysis engine 325 may use image processing techniques to remove the defects from the image, e.g., removing a cluster of pixels corresponding to a defect. Thus, the image analysis engine 325 can exclude anomalous color values from the determination of color information (e.g., average and variance), which may improve the accuracy of the corresponding test result.
The diagnostic test engine 330 provides information to and/or receives information from mobile devices 110 and health care providers 130 for disease diagnostic tests. For example, the diagnostic test engine 330 receives data from a mobile device 110 such as images of an optical property modifying device 120 captured by an optical sensor of the mobile device 110 and/or metadata such as the geographical location of the mobile device 110, a timestamp of a captured image, or information describing the optical sensor (e.g., pixel resolution, aperture, or flash). The diagnostic test engine 330 determines information for diagnostic tests (e.g., a type of diagnostic test or a result of the diagnostic test) based on images processed and analyzed by the image processing engine 320 and/or the image analysis engine 325.
The diagnostic test engine 330 may provide instructions for a diagnostic test to the mobile device 110 and provide test results of the diagnostic test to the mobile device 110 or a health care provider 130. The diagnostic test engine 330 can retrieve the instructions for the diagnostic test (e.g., including text, graphics, audio, or other media content) from the test data store 340. Further, the diagnostic test engine 330 can store test results in the test data store 340 or the user data store 310 along with relevant information such as the analyzed images of the optical property modifying device 120 and reaction chambers 240, information about the patient who took the diagnostic test, or a geographical location and/or timestamp associated with the diagnostic test.
In some embodiments, the diagnostic test engine 330 can provide test results and associated metadata to a computer server (e.g., a health care provider 130), which can render epidemiological data based on aggregated test results from multiple mobile devices 110 and a population of patients. The epidemiological data may be organized based on various parameters (e.g., demographics, geographical location, temporal information, or types of diseases) and used to determine risk factors or preventative measures for certain diseases.
In some embodiments, the diagnostic test engine 330 may communicate sponsored content based on test results of diagnostic tests to users via the mobile device 110. For instance, the sponsored content is a content item displayed on a user interface of the mobile device 110. Examples of sponsored content include information from vendors of goods or services that may help treat diseases tested by the diagnostic system 100. For instance, the vendors provide prescription medicines, over-the-counter medicines, physical therapy, rehabilitative services, etc.
In some embodiments, the diagnostic test engine 330 can provide test results to a computer server of a third party, e.g., a health provider or a government health organization such as the Centers for Disease Control and Prevention (CDC). The computer server includes aggregated health information of a population of people, and may organize the health information based on geographical location. Thus, for example, the CDC can use the test results and health information to evaluate the well-being of a population within the government's jurisdiction, e.g., monitoring the spread and prevalence of a disease such as influenza.
In some embodiments, the user interface 465 provides an option for the user to modify, verify/confirm, or cancel the test result, which may be performed before the diagnostic system 100 provides (via the diagnostic test engine 330) the test result to a health care provider 130, for example. If the test result is updated after the test results has been provided the health care provider 130, the diagnostic test engine 330 may automatically provide the updated test result as well. In one embodiment, if the test result is positive, the diagnostic test engine 330 provides a notification for display on the mobile device 110 indicating that a health care provider will be contacted on behalf of the patient regarding the test result. For example, the diagnostic test engine 330 provides the test result to a physician. The diagnostic test engine 330 may receive a recommendation (e.g., taking vitamins or medication) from the physician in response to providing the test result and communicate the recommendation to the user.
As another example, the diagnostic test engine 330 provides the test result to a pharmacy to allow the pharmacy to fulfill a prescription for the patient to treat the disease associated with the test result. The diagnostic test engine 330 may determine a pharmacy that is located nearby the patient (e.g., within a predetermined distance such as a threshold radius of 10 kilometers) based on geographical information, for instance, the location where the diagnostic test was taken or the address of the patient).
In cases where physician consultation is required, the diagnostic server 150 may consult a physician 510 in an automated manner without requiring that the patient specify the physician or manually facilitate this consultation. In some embodiments, one or more physicians 510 are affiliated with the diagnostic server 150. In some embodiments, the diagnostic system 100 may also provide the test results to the physician 510, e.g., in response to a request by the patient. Thus, if the patient 500 visits the physician 510 to seek treatment for the disease, the physician 510 can determine an appropriate treatment based on the test results.
In contrast to the conventional system environment shown in
In one embodiment, the image processing engine 320 receives 610 a set of images of an optical property modifying device 120 for a nucleic acid disease diagnostic test captured by an optical sensor of a mobile device 110. The image processing engine 320 determines 620, for each image in the set, whether the surface of the optical property modifying device 120 is shown in the image. The image processing engine 320 selects 630 one or more images of the set that are determined to show the surface. The image analysis engine 325 determines 640 a test result for the nucleic acid disease diagnostic test based on the one or more images. The diagnostic test engine 330 provides 650 the test result for display on the mobile device 110.
Upon reading this disclosure, those of skill in the art will appreciate still additional alternative structural and functional designs through the disclosed principles herein. Thus, while particular embodiments and applications have been illustrated and described, it is to be understood that the disclosed embodiments are not limited to the precise construction and components disclosed herein. Various modifications, changes and variations, which will be apparent to those skilled in the art, may be made in the arrangement, operation and details of the method and apparatus disclosed herein without departing from the spirit and scope defined in the appended claims.
As used herein any reference to “one embodiment” or “an embodiment” means that a particular element, feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
Some embodiments may be described using the expression “coupled” and “connected” along with their derivatives. For example, some embodiments may be described using the term “coupled” to indicate that two or more elements are in direct physical or electrical contact. The term “coupled,” however, may also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other. The embodiments are not limited in this context unless otherwise explicitly stated.
As used herein, the terms “comprises,” “comprising,” “includes,” “including,” “has,” “having” or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a process, method, article, or apparatus that comprises a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Further, unless expressly stated to the contrary, “or” refers to an inclusive or and not to an exclusive or. For example, a condition A or B is satisfied by any one of the following: A is true (or present) and B is false (or not present), A is false (or not present) and B is true (or present), and both A and B are true (or present).
In addition, use of the “a” or “an” are employed to describe elements and components of the embodiments herein. This is done merely for convenience and to give a general sense of the invention. This description should be read to include one or at least one and the singular also includes the plural unless it is obvious that it is meant otherwise.
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 including a computer-readable non-transitory 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 a product that is produced by a computing process described herein. Such a product may include information resulting from a computing process, where the information is stored on a non-transitory, tangible computer readable storage medium and may include any embodiment of a computer program product or other data combination described herein.
This application is a continuation-in-part of co-pending U.S. patent application Ser. No. 15/481,349, filed Apr. 6, 2017, which is incorporated by reference herein in its entirety for all purposes.
Number | Date | Country | |
---|---|---|---|
Parent | 15481349 | Apr 2017 | US |
Child | 16155829 | US |