The subject technology addresses deficiencies commonly encountered in hospital care and medical care user and system interfaces with regard to the communication of health-related information for ventilated patients.
Systems and/or strategies for determining priority of patient care (e.g. who to see when and whom to see first) are generally rudimentary, involving isolated human interpretation of equipment/device alarms or time-based patient spot checks. Visual systems for determining status of patients are insufficient and noisy because of the overwhelming volume of information which must be stitched together to determine a clinical action. The ability to determine status of a patient population may be further exacerbated due to an unexpected influx of patients who are in need of similar critical care systems, such as ventilation.
Clinicians such as therapists, nurses and doctors in the healthcare environment today frequently carry mobile phones (e.g. smart phones) or other smart devices (e.g. tablets). Alternatively clinicians may have computers on wheels which are carted around with them or kept in patient areas (e.g. ICUs). Current software and digital applications which reside on these devices for patient monitoring or patient care are often as complex as the devices they are mirroring. For example, a patient vital signs monitoring device which measures heart rate, SpO2, blood pressure, temperature and end-tidal CO2 may contain a large amount of numbers, indices, graphs and data elements which can be overwhelming. A mobile application which provides this same data remotely on a smaller screen may provide some convenience but is equally overwhelming in terms of interpreting data and deciding based on this data what to do with a patient. As another example, a mechanical ventilator contains significantly more data elements, waveforms, trends and information than a patient vitals monitor and provides an even more overwhelming scenario for data interpretation which can be exacerbated if constrained or confined to a mobile environment (i.e. smaller screen or form factor). Listening to alarms or transmitting alarms to mobile devices is equally overwhelming because it does not solve the fundamental audible and visual overload which exists. What is needed is a simplification of care in the noisy healthcare environment which can provide for mobile, visual, actionable insights that enable prioritization, customization and coordination of patient care as well as management of process indicators, equipment maintenance, order management and personnel. Accordingly, the subject technology addresses deficiencies in the current environment for mobile-based clinical insights or the lack thereof.
The subject technology addresses deficiencies commonly encountered in hospital care and medical care involving interpretation of health-related information for ventilated patients by, in part, producing actionable clinical insights and disseminating said actionable clinical insights to caregivers. The subject technology further addresses similar deficiencies in interpretation of data and dissemination of insights related to hospital equipment and devices, cooperation and coordination of care between adjacent clinical specialties (e.g. respiratory therapy, nursing, physicians), time-sensitive patient-care tasks, and quality and process metrics relevant to hospital performance.
According to various implementations, the subject technology includes a communication system configured to communicate health-related information pertaining to ventilated patients. The disclosed communication system includes one or more processors and a memory. The memory includes instructions stored thereon that, when executed by the one or more processors, cause the one or more processors to perform operations for performing a method of communicating health-related messages regarding ventilated patients. The method includes receiving, from a plurality of ventilators, ventilation data including physiological measurements for a plurality of patients currently receiving ventilation from the plurality of ventilators; providing, to a plurality of user devices, a user interface configured to present the plurality of patients for selection by a respective user, receive from the respective user a selection of one or more selected patients of the plurality of patients, and provide, to the respective user, messages relating to the physiological measurements of the selected patients when the physiological measurements of the selected patients meet predetermined criteria; receiving, from a first instance of the user interface operating on a first user device of the plurality of user devices, an indication that a first user authenticated to the user interface selected a first ventilated patient from the plurality of patients; determining, from the received ventilation data, that a first physiological measurement associated with the first ventilated patient satisfies a predetermined threshold or range of values; and responsive to the first physiological measurement of the first ventilated patient satisfying the predetermined threshold or range of values, sending a message pertaining to the first physiological measurement to a the first user device for display by the first instance of the user interface when the first user is authenticated to the first user interface. Other aspects include corresponding systems, apparatuses, and computer program products for implementation of the computer-implemented method.
Further aspects of the subject technology, features, and advantages, as well as the structure and operation of various aspects of the subject technology are described in detail below with reference to accompanying drawings.
Various objects, features, and advantages of the present disclosure can be more fully appreciated with reference to the following detailed description when considered in connection with the following drawings, in which like reference numerals identify like elements. The following drawings are for the purpose of illustration only and are not intended to be limiting of this disclosure, the scope of which is set forth in the claims that follow.
While aspects of the subject technology are described herein with reference to illustrative examples for particular applications, it should be understood that the subject technology is not limited to those particular applications. Those skilled in the art with access to the teachings provided herein will recognize additional modifications, applications, and aspects within the scope thereof and additional fields in which the subject technology would be of significant utility.
The subject technology comprises a computer-enabled communication system, including a visual environment, which enables delivery of health-related messages to mobile devices from a cloud-based or connected analytics platform. Clinical insight messages with regard to ventilated patients are pushed to a user as notifications or messages on a screen and then logged thereafter for subsequent viewing. Users may comprise physicians, nurses, therapists, technicians, engineers, or other individuals that interact with the patients, or healthcare systems, staff, and devices. Delivery of messages through the system enables caregivers to act upon simplified insights distilled from myriad data sources, to coordinate and cooperate with other clinical staff members or users, to prioritize patient care, and to make timely decisions on what care or therapy to provide. Messages may be customized to user care areas or disciplines, user clinical profiles, user hierarchical levels and facility profiles or specifications. Messages may be related to respiratory care, sedation and drug therapy, vital signs, imaging, laboratory results, demographics, disease states, progression of condition, equipment status, and department or hospital metrics. While the term “clinical insight” may refer to information provided within a message transmitted through the system, the term “clinical insight” may be used synonymously with the term “notification” or “message” herein to describe messages transmitted through the disclosed system.
Users of the system may utilize the interface to subscribe to patients admitted to or currently being cared for in a care area. The user interface 10 of
According to some implementations, the system (e.g., a centralized server of the system) may include machine learning algorithms to look for patterns in data and project what steps should be taken with regard to patient care. Clinical insight information may be automatically generated that corresponds to clinical thresholds being reached (e.g., an oxygen level falling below a predetermined percentage), or future events or actions that should be performed. In one example, if an event X occurs, then a message may be pushed to the user device. In some implementations, the system may determine, based on X occurring in the past, that Y will occur at a future time. Depending on the event, the system may identify a future time point, signal a review of data at that specific future time point, and signal a likelihood of an event happening or signal an alert for a patient if the likelihood is a significant or morbid/undesirable event. In another example, machine learning may identify likely patient paths from a given pattern of data and, in some implementations, automatically make its own recommendations with regard to adjustments to care systems (e.g., as an autopilot). For example, on identifying a flow rate of ventilation is not providing a desired effect on the patient, an adjusted flow rate may be included in the clinical insight (e.g., within predetermined limits) to move the patient towards the desired effect. An example alert may include a text message indicating “heads up, your patient X is trending towards a ventilator-associated event” or “heads up, your patient Y is ready for weaning from ventilation.”
In the depicted example, one push notification indicates that a patient's inspired oxygen fraction has exceeded a first threshold and the other notification indicates that a patient is ready for extubation. These are actionable insights that the caregiver may react to for improved patient care and prioritization of patient care. Tapping on either push notification causes the user interface to take the user directly to a page which is dedicated to the related patient. For example, by tapping on the user named Tina Sloan, the user is taken to Tina Sloan's screen as shown in
In the depicted example, the ‘Active’ message category is displayed. A user can see in this case two displayed active messages for patient Tina Sloan. The system is configured to automatically determine (e.g., based on predetermined conditions or learned data) when a message requires a time-sensitive action or response. The user interface of
By tapping on any patient in the ‘My Patients’ list, the user may be taken directly to a display screen that includes information for that patient. In some implementations, this patient screen may be similar to
The system of the subject technology comprises a set of mobile accessible applications with visuals that provide instant access to information pertaining to the health of ventilated patients. In this regard, the system of the subject technology is configured to convey (e.g., via the mobile application) the health of a patient population and/or the performance of a facility with respect to both the amount of time that patients are spending on ventilators and in the ICU as well as how both individuals and patient populations are trending with respect to ventilator-associated events (VAEs). Both time spent on ventilators (also known as Ventilator Length of Stay (VLOS) and events associated with being on a ventilator such as exposure to pathogens that can lead to pneumonia and other negative conditions are factors that both deteriorate patient outcomes as well as cost hospitals significant amounts of money. Today there is no convenient method to access this information or have it at the fingertips of clinicians to assess the health of patients and a facility's performance.
In some implementations, the user interface may include code that, when a patient name is selected for a period of time (e.g., by touching and holding a finger on a patient name), the application may display additional pertinent information about the patient. In some embodiments, patient demographic information such as sex and age may be displayed. In some implementations, the system will cause the user interface to display which type of ventilation the patient is receiving—e.g. non-invasive, intubated, tracheal, how many days the patient has been on the ventilator, and scores related to patient condition such as APACHE II score and RASS. The APACHE II score is a calculated score determined from a number of physiologic parameters which predicts mortality at the beginning of admission to the ICU. The RASS is the Richmond Agitation-Sedation Score which is an indicator of the level of sedation and mood of a patient.
One or more of the previously described display screens may be configured to present a pop-out dialogue or window 98 displaying additional patient parameters. The patient pop-out information may be available on any application screen that displays a patient name for consistency and accessibility. In some implementations, a ventilation type may be displayed using an icon such as a mask, endotracheal tube, or tracheal icon.
In some embodiments, the application can display which ventilators are not associated to patients or send messages if a ventilator becomes disassociated from a patient. Knowing which patient type (e.g. tracheal vs. intubated) is important to the length of stay (LOS) calculations since tracheal patients are frequently ventilated for longer periods which can skew values for intubated patients. To this end, the system may calculate and display length of stay metrics (e.g., in
Variants of the idea or invention comprise alternative ways to structure the visual indicators, alternative ways to provide messages or notifications (e.g. text or email), alternative sorting for prioritization, alternative icons for display of emphasis (e.g. time clock, arrows)
The subject technology enables a health organization and its clinicians to distill large amounts of data into simple and actionable insights delivered as push notifications and visuals within a mobile application for respiratory care and adjacent clinical insights. Messages, visuals, sorting and icons provide a clinician or user a simplified insight about their patients, facility or equipment. Messages, visuals sorting and icons enable prioritization of care, cooperation and coordination between adjacent clinical specialties and user profiles, and customization. Messages, visuals, sorting and icons filter noisy data environments into actionable insights. Consolidation and visual presentation of important health data such as length of stay and VAE surveillance—i.e. presentation of these as visual maps and/or scores enables clinicians and other health professionals to do their job efficiently, while reducing strain on medical environments by reducing the need for clinicians to repeatedly access shared computer devices or servers that service these healthcare devices.
Ventilation device 102 is connected to the ventilation management system 150 over the LAN 119 via respective communications modules 110 and 160 of the ventilation system 102 and the ventilation management system 150. The ventilation management system 150 is connected over WAN 120 to the home ventilation device 130 via respective communications modules 160 and 146 of the ventilation management system 150 and the home ventilation device 130. The ventilation device 130 is configured to operate substantially similar to the ventilation device 102 of the hospital 101, except that the ventilation device (or medical device) 130 is configured for use in the home 140. The communications modules 110, 160, and 146 are configured to interface with the networks to send and receive information, such as data, requests, responses, and commands to other devices on the networks. The communications modules 110, 160, and 146 can be, for example, modems, Ethernet cards, or WiFi component modules and devices.
The ventilation management system 150 includes a processor 154, the communications module 160, and a memory 152 that includes hospital data 156 and a ventilation management application 158. Although one ventilation device 102 is shown in
In certain aspects, the ventilation management system 150 is configured to manage many ventilation devices 102 in the hospital 101 according to certain rules and procedures. For example, when powering on, a ventilation system 102 may send a handshake message to the ventilation management system 150 to establish a connection with the ventilation management system 150. Similarly, when powering down, the ventilation system 102 may send a power down message to the ventilation management system 150 so that the ventilation management system 150 ceases communication attempts with the ventilation system 102.
The ventilation management system 150 is configured to support a plurality of simultaneous connections to different ventilation devices 102 and ventilation devices 130, and to manage message distribution among the different devices, including to and from a user device 170. User device 170 may be a mobile device such as a laptop computer, tablet computer, or mobile phone. User device 170 may also be a desktop or terminal device authorized for use by a user. In this regard, user device 170 is configured with the previously described messaging application depicted by
The number of simultaneous connections can be configured by an administrator in order to accommodate network communication limitations (e.g., limited bandwidth availability). After the ventilation device 102 successfully handshakes with (e.g., connects to) the ventilation management system 150, the ventilation management system 150 may initiate communications to the ventilation device 102 when information becomes available, or at established intervals. The established intervals can be configured by a user so as to ensure that the ventilation device 102 does not exceed an established interval for communicating with the ventilation management system 150.
The ventilation management system 150 can receive or provide data to the ventilation device 102. For instance, alerts may be received from ventilation device 102 (or device 130) responsive to thresholds being exceeded. An admit-discharge-transfer communication can be sent to specified ventilation devices 102 within a certain care area of the hospital 101. Orders specific to a patient may be sent to a ventilation device 102 associated with the patient, and data specific to a patient may be received from ventilation device 102.
The ventilation device 102 may initiate a communication to the ventilation management system 150 if an alarm occurs on the ventilation system 102. The alarm may be indicated as time-sensitive and sent to the beginning of the queue for communicating data to the ventilation management system 150. All other data of the ventilation device 102 may be sent together at once, or a subset of the data can be sent at certain intervals.
Hospital data 156 may continuously or periodically received (in real time or near real time) by ventilation management system 150 from each ventilator device 102 and each ventilator device 130. The hospital data 156 may include configuration profiles configured to designate operating parameters for a respective ventilation device 102, operating parameters of each ventilation device 102 and/or physiological statistics or measurements of a patient associated with the ventilation device 102. Hospital data 156 also includes patient data for patients at the hospital 101, order (e.g., medication orders, respiratory therapy orders) data for patients at the hospital 101, and/or user data (e.g., for caregivers associated with the hospital 101).
The physiological statistics or measurements of the ventilator data includes, for example, a statistic(s) or measurement(s) indicating compliance of the lung (Cdyn, Cstat), flow resistance of the patient airways (Raw), inverse ratio ventilation (I/E), spontaneous ventilation rate, exhaled tidal volume (Vte), total lung ventilation per minute (Ve), peak expiratory flow rate (PEFR), peak inspiratory flow rate (PIFR), mean airway pressure, peak airway pressure, an average end-tidal expired CO2 and total ventilation rate. The operating parameters include, for example, a ventilation mode, a set mandatory tidal volume, positive end respiratory pressure (PEEP), an apnea interval, a bias flow, a breathing circuit compressible volume, a patient airway type (for example endotracheal tube, tracheostomy tube, face mask) and size, a fraction of inspired oxygen (FiO2), a breath cycle threshold, and a breath trigger threshold.
The processor 154 of the ventilation management system 150 is configured to execute instructions, such as instructions physically coded into the processor 154, instructions received from software (e.g., ventilation management application 158) in memory 152, or a combination of both. For example, the processor 154 of the ventilation management system 150 executes instructions to receive ventilator data from the ventilation device(s) 102 (e.g., including an initial configuration profile for the ventilation system 102).
Ventilation device 102 is configured to send ventilator information, notifications (or “alarms”), scalars, operating parameters 106 (or “settings”), physiological statistics (or “monitors”) of a patient associated with the ventilation device 102, and general information. The notifications include operational conditions of the ventilation device 102 that may require operator review and corrective action. Scalars include parameters that are typically updated periodically (e.g., every 500 ms) and can be represented graphically on a two-dimensional scale. The physiological statistics represent information that the ventilation device 102 is monitoring, and can dynamic based on a specific parameter. The operating parameters 106 represent the operational control values that the caregiver has accepted for the ventilation device 102. The general information can be information that is unique to the ventilation device 102, or that may relate to the patient (e.g., a patient identifier). The general information can include an identifier of the version and model of the ventilation device 102. It is also understood that the same or similar data may be communicated between ventilation management system 150 and ventilation device 130.
According to various implementations, ventilation management system 150 (including centralized server) is configured to (by way of instructions) generate and provide virtual user interface 10 to clinician devices 170. In some implementations, ventilation management system 150 may function as a web server, and virtual interface 100 may rendered from a website provided by ventilation management system 150. According to various implementations, ventilation management system 150 may aggregate real time patient data and provide the data for display in virtual interface 100. The data and/or virtual interface 100 may be provided (e.g., transmitted) to each clinician device 170, and each clinician device 170 may include a software client program or other instructions configured to, when executed by one or more processors of the device, render and display virtual interface 100 with the corresponding data. The depicted clinician devices 170 may include personal computer or a mobile device such as a smartphone, tablet computer, laptop, PDA, an augmented reality device, a wearable such as a watch or band or glasses, or combination thereof, or other touch screen or television with one or more processors embedded therein or coupled thereto, or any other sort of computer-related electronic device having network connectivity. While not shown in
In the depicted example flow diagram, ventilation data including physiological measurements (and, e.g., statistics) for a plurality of patients currently receiving ventilation is received from a plurality of ventilators (1702). A user interface 10 is provided to a plurality of user devices 170 (1704). The user interface 10 is configured to present the plurality of patients for selection by a respective user, receive from the respective user a selection of one or more selected patients of the plurality of patients, and provide, to the respective user, messages relating to physiological measurements of the selected patients when the physiological measurements of the selected patients meet predetermined criteria. The system 150 receives, from a first instance of the user interface 10 operating on a first user device 170 of the plurality of user devices, an indication that a first user authenticated to the user interface selected a first ventilated patient from the plurality of patients (1706). The system 150 determines, from the received ventilation data, that a first physiological measurement associated with the first ventilated patient satisfies a predetermined threshold or range of values (1708), and responsive to the first physiological measurement of the first ventilated patient satisfying the predetermined threshold or range of values, the system 150 sends a message to a the first user device for display by the first instance of the user interface when the first user is authenticated to the first user interface (1710), the message including information pertaining to the first physiological measurement.
Many aspects of the above-described example 1700, and related features and applications, may also be implemented as software processes that are specified as a set of instructions recorded on a computer readable storage medium (also referred to as computer readable medium), and may be executed automatically (e.g., without user intervention). When these instructions are executed by one or more processing unit(s) (e.g., one or more processors, cores of processors, or other processing units), they cause the processing unit(s) to perform the actions indicated in the instructions. Examples of computer readable media include, but are not limited to, CD-ROMs, flash drives, RAM chips, hard drives, EPROMs, etc. The computer readable media does not include carrier waves and electronic signals passing wirelessly or over wired connections.
The term “software” is meant to include, where appropriate, firmware residing in read-only memory or applications stored in magnetic storage, which can be read into memory for processing by a processor. Also, in some implementations, multiple software aspects of the subject disclosure can be implemented as sub-parts of a larger program while remaining distinct software aspects of the subject disclosure. In some implementations, multiple software aspects can also be implemented as separate programs. Finally, any combination of separate programs that together implement a software aspect described here is within the scope of the subject disclosure. In some implementations, the software programs, when installed to operate on one or more electronic systems, define one or more specific machine implementations that execute and perform the operations of the software programs.
A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
Electronic system 1800 may include various types of computer readable media and interfaces for various other types of computer readable media. In the depicted example, electronic system 1700 includes a bus 1808, processing unit(s) 1812, a system memory 1804, a read-only memory (ROM) 1810, a permanent storage device 1802, an input device interface 1814, an output device interface 1806, and one or more network interfaces 1816. In some implementations, electronic system 1800 may include or be integrated with other computing devices or circuitry for operation of the various components and processes previously described.
Bus 1808 collectively represents all system, peripheral, and chipset buses that communicatively connect the numerous internal devices of electronic system 1700. For instance, bus 1808 communicatively connects processing unit(s) 1812 with ROM 1810, system memory 1804, and permanent storage device 1802.
From these various memory units, processing unit(s) 1812 retrieves instructions to execute and data to process in order to execute the processes of the subject disclosure. The processing unit(s) can be a single processor or a multi-core processor in different implementations.
ROM 1810 stores static data and instructions that are needed by processing unit(s) 1812 and other modules of the electronic system. Permanent storage device 1802, on the other hand, is a read-and-write memory device. This device is a non-volatile memory unit that stores instructions and data even when electronic system 1800 is off. Some implementations of the subject disclosure use a mass-storage device (such as a magnetic or optical disk and its corresponding disk drive) as permanent storage device 1802.
Other implementations use a removable storage device (such as a floppy disk, flash drive, and its corresponding disk drive) as permanent storage device 1802. Like permanent storage device 1802, system memory 1804 is a read-and-write memory device. However, unlike storage device 1802, system memory 1804 is a volatile read-and-write memory, such a random access memory. System memory 1804 stores some of the instructions and data that the processor needs at runtime. In some implementations, the processes of the subject disclosure are stored in system memory 1804, permanent storage device 1802, and/or ROM 1810. From these various memory units, processing unit(s) 1812 retrieves instructions to execute and data to process in order to execute the processes of some implementations.
Bus 1808 also connects to input and output device interfaces 1814 and 1806. Input device interface 1814 enables the user to communicate information and select commands to the electronic system. Input devices used with input device interface 1814 include, e.g., alphanumeric keyboards and pointing devices (also called “cursor control devices”). Output device interfaces 1806 enables, e.g., the display of images generated by the electronic system 1800. Output devices used with output device interface 1806 include, e.g., printers and display devices, such as cathode ray tubes (CRT) or liquid crystal displays (LCD). Some implementations include devices such as a touchscreen that functions as both input and output devices.
Also, as shown in
These functions described above can be implemented in computer software, firmware or hardware. The techniques can be implemented using one or more computer program products. Programmable processors and computers can be included in or packaged as mobile devices. The processes and logic flows can be performed by one or more programmable processors and by one or more programmable logic circuitry. General and special purpose computing devices and storage devices can be interconnected through communication networks.
Some implementations include electronic components, such as microprocessors, storage and memory that store computer program instructions in a machine-readable or computer-readable medium (alternatively referred to as computer-readable storage media, machine-readable media, or machine-readable storage media). Some examples of such computer-readable media include RAM, ROM, read-only compact discs (CD-ROM), recordable compact discs (CD-R), rewritable compact discs (CD-RW), read-only digital versatile discs (e.g., DVD-ROM, dual-layer DVD-ROM), a variety of recordable/rewritable DVDs (e.g., DVD-RAM, DVD-RW, DVD+RW, etc.), flash memory (e.g., SD cards, mini-SD cards, micro-SD cards, etc.), magnetic and/or solid state hard drives, read-only and recordable Blu-Ray® discs, ultra density optical discs, any other optical or magnetic media, and floppy disks. The computer-readable media can store a computer program that is executable by at least one processing unit and includes sets of instructions for performing various operations. Examples of computer programs or computer code include machine code, such as is produced by a compiler, and files including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter.
While the above discussion primarily refers to microprocessor or multi-core processors that execute software, some implementations are performed by one or more integrated circuits, such as application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs). In some implementations, such integrated circuits execute instructions that are stored on the circuit itself.
As used in this specification and any claims of this application, the terms “computer,” “server,” “processor,” and “memory” all refer to electronic or other technological devices. These terms exclude people or groups of people. For the purposes of the specification, the terms display or displaying means displaying on an electronic device. As used in this specification and any claims of this application, the terms “computer readable medium” and “computer readable media” are entirely restricted to tangible, physical objects that store information in a form that is readable by a computer. These terms exclude any wireless signals, wired download signals, and any other ephemeral signals.
To provide for interaction with a user, implementations of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; e.g., feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user; e.g., by sending web pages to a web browser on a user's client device in response to requests received from the web browser.
Implementations of the subject matter described in this specification can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).
The computing system can include clients and servers. A client and server are generally remote from each other and may interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In some implementations, a server transmits data (e.g., an HTML page) to a client device (e.g., for purposes of displaying data to and receiving user input from a user interacting with the client device). Data generated at the client device (e.g., a result of the user interaction) can be received from the client device at the server.
Those of skill in the art would appreciate that the various illustrative blocks, modules, elements, components, methods, and algorithms described herein may be implemented as electronic hardware, computer software, or combinations of both. To illustrate this interchangeability of hardware and software, various illustrative blocks, modules, elements, components, methods, and algorithms have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application. Various components and blocks may be arranged differently (e.g., arranged in a different order, or partitioned in a different way) all without departing from the scope of the subject technology.
It is understood that the specific order or hierarchy of steps in the processes disclosed is an illustration of example approaches. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the processes may be rearranged. Some of the steps may be performed simultaneously. The accompanying method claims present elements of the various steps in a sample order, and are not meant to be limited to the specific order or hierarchy presented.
The previous description is provided to enable any person skilled in the art to practice the various aspects described herein. The previous description provides various examples of the subject technology, and the subject technology is not limited to these examples. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects. Thus, the claims are not intended to be limited to the aspects shown herein, but is to be accorded the full scope consistent with the language claims, wherein reference to an element in the singular is not intended to mean “one and only one” unless specifically so stated, but rather “one or more.” Unless specifically stated otherwise, the term “some” refers to one or more. Pronouns in the masculine (e.g., his) include the feminine and neuter gender (e.g., her and its) and vice versa. Headings and subheadings, if any, are used for convenience only and do not limit this disclosure.
The term website, as used herein, may include any aspect of a website, including one or more web pages, one or more servers used to host or store web related content, etc. Accordingly, the term website may be used interchangeably with the terms web page and server. The predicate words “configured to,” “operable to,” and “programmed to” do not imply any particular tangible or intangible modification of a subject, but, rather, are intended to be used interchangeably. For example, a processor configured to monitor and control an operation or a component may also mean the processor being programmed to monitor and control the operation or the processor being operable to monitor and control the operation. Likewise, a processor configured to execute code can be construed as a processor programmed to execute code or operable to execute code.
The term automatic, as used herein, may include performance by a computer or machine without user intervention; for example, by instructions responsive to a predicate action by the computer or machine or other initiation mechanism. The word “example” is used herein to mean “serving as an example or illustration.” Any aspect or design described herein as “example” is not necessarily to be construed as preferred or advantageous over other aspects or designs.
A phrase such as an “aspect” does not imply that such aspect is essential to the subject technology or that such aspect applies to all configurations of the subject technology. A disclosure relating to an aspect may apply to all configurations, or one or more configurations. An aspect may provide one or more examples. A phrase such as an aspect may refer to one or more aspects and vice versa. A phrase such as an “implementation” does not imply that such implementation is essential to the subject technology or that such implementation applies to all configurations of the subject technology. A disclosure relating to an implementation may apply to all implementations, or one or more implementations. An implementation may provide one or more examples. A phrase such as an “implementation” may refer to one or more implementations and vice versa. A phrase such as a “configuration” does not imply that such configuration is essential to the subject technology or that such configuration applies to all configurations of the subject technology. A disclosure relating to a configuration may apply to all configurations, or one or more configurations. A configuration may provide one or more examples. A phrase such as a “configuration” may refer to one or more configurations and vice versa.
All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims. No claim element is to be construed under the provisions of 35 U.S.C. § 112, sixth paragraph, unless the element is expressly recited using the phrase “means for” or, in the case of a method claim, the element is recited using the phrase “step for.” Furthermore, to the extent that the term “include,” “have,” or the like is used in the description or the claims, such term is intended to be inclusive in a manner similar to the term “comprise” as “comprise” is interpreted when employed as a transitional word in a claim.