Patent ID: 12242766

DETAILED DESCRIPTION

In the Summary above and in this Detailed Description, and the claims below, and in the accompanying drawings, reference is made to particular features, including method steps, of the invention. It is to be understood that the disclosure of the invention in this specification includes all possible combinations of such particular features. For instance, where a particular feature is disclosed in the context of a particular aspect or embodiment of the invention, or a particular claim, that feature can also be used, to the extent possible, in combination with/or in the context of other particular aspects of the embodiments of the invention, and in the invention generally.

The term “comprises”, and grammatical equivalents thereof are used herein to mean that other components, steps, etc. are optionally present. For instance, a system “comprising” components A, B, and C can contain only components A, B, and C, or can contain not only components A, B, and C, but also one or more other components. Where reference is made herein to a method comprising two or more defined steps, the defined steps can be carried out in any order or simultaneously (except where the context excludes that possibility), and the method can include one or more other steps which are carried out before any of the defined steps, between two of the defined steps, or after all the defined steps (except where the context excludes that possibility). As will be evident from the disclosure provided below, the present invention satisfies the need for a system and method capable of reducing data transferred between computing devices.

FIG.1depicts an exemplary environment100of the system400consisting of clients105connected to a server110and/or database115via a network150. Clients105are devices of users405that may be used to access servers110and/or databases115through a network150. A network150may comprise of one or more networks of any kind, including, but not limited to, a local area network (LAN), a wide area network (WAN), metropolitan area networks (MAN), a telephone network, such as the Public Switched Telephone Network (PSTN), an intranet, the Internet, a memory device, another type of network, or a combination of networks. In a preferred embodiment, computing entities200may act as clients105for a user405. For instance, a client105may include a personal computer, a wireless telephone, a streaming device, a “smart” television, a personal digital assistant (PDA), a laptop, a smart phone, a tablet computer, or another type of computation or communication interface280. Servers110may include devices that access, fetch, aggregate, process, search, provide, and/or maintain documents. AlthoughFIG.1depicts a preferred embodiment of an environment100for the system400, in other implementations, the environment100may contain fewer components, different components, differently arranged components, and/or additional components than those depicted inFIG.1. Alternatively, or additionally, one or more components of the environment100may perform one or more other tasks described as being performed by one or more other components of the environment100.

As depicted inFIG.1, one embodiment of the system400may comprise a server110. Although shown as a single server110inFIG.1, a server110may, in some implementations, be implemented as multiple devices interlinked together via the network150, wherein the devices may be distributed over a large geographic area and performing different functions or similar functions. For instance, two or more servers110may be implemented to work as a single server110performing the same tasks. Alternatively, one server110may perform the functions of multiple servers110. For instance, a single server110may perform the tasks of a web server and an indexing server110. Additionally, it is understood that multiple servers110may be used to operably connect the processor220to the database115and/or other content repositories. The processor220may be operably connected to the server110via wired or wireless connection. Types of servers110that may be used by the system400include, but are not limited to, search servers, document indexing servers, and web servers, or any combination thereof.

Search servers may include one or more computing entities200designed to implement a search engine, such as a documents/records search engine, general webpage search engine, etc. Search servers may, for instance, include one or more web servers designed to receive search queries and/or inputs from users405, search one or more databases115in response to the search queries and/or inputs, and provide documents or information, relevant to the search queries and/or inputs, to users405. In some implementations, search servers may include a web search server that may provide webpages to users405, wherein a provided webpage may include a reference to a web server at which the desired information and/or links are located. The references to the web server at which the desired information is located may be included in a frame and/or text box, or as a link to the desired information/document. Document indexing servers may include one or more devices designed to index documents available through networks150. Document indexing servers may access other servers110, such as web servers that host content, to index the content. In some implementations, document indexing servers may index documents/records stored by other servers110connected to the network150. Document indexing servers may, for instance, store and index content, information, and documents relating to user accounts and user-generated content. Web servers may include servers110that provide webpages to clients105. For instance, the webpages may be HTML-based webpages. A web server may host one or more websites. As used herein, a website may refer to a collection of related webpages. Frequently, a website may be associated with a single domain name, although some websites may potentially encompass more than one domain name. The concepts described herein may be applied on a per-website basis. Alternatively, in some implementations, the concepts described herein may be applied on a per-webpage basis.

As used herein, a database115refers to a set of related data and the way it is organized. Access to this data is usually provided by a database management system (DBMS) consisting of an integrated set of computer software that allows users405to interact with one or more databases115and provides access to all of the data contained in the database115. The DBMS provides various functions that allow entry, storage and retrieval of large quantities of information and provides ways to manage how that information is organized. Because of the close relationship between the database115and the DBMS, as used herein, the term database115refers to both a database115and DBMS.

FIG.2is an exemplary diagram of a client105, server110, and/or or database115(hereinafter collectively referred to as “computing entity200”), which may correspond to one or more of the clients105, servers110, and databases115according to an implementation consistent with the principles of the invention as described herein. The computing entity200may comprise a bus210, a processor220, memory304, a storage device250, a peripheral device270, and a communication interface280(such as wired or wireless communication device). The bus210may be defined as one or more conductors that permit communication among the components of the computing entity200. The processor220may be defined as logic circuitry that responds to and processes the basic instructions that drive the computing entity200. Memory304may be defined as the integrated circuitry that stores information for immediate use in a computing entity200. A peripheral device270may be defined as any hardware used by a user405and/or the computing entity200to facilitate communicate between the two. A storage device250may be defined as a device used to provide mass storage to a computing entity200. A communication interface280may be defined as any transceiver-like device that enables the computing entity200to communicate with other devices and/or computing entities200.

The bus210may comprise a high-speed interface308and/or a low-speed interface312that connects the various components together in a way such they may communicate with one another. A high-speed interface308manages bandwidth-intensive operations for computing device300, while a low-speed interface312manages lower bandwidth-intensive operations. In some preferred embodiments, the high-speed interface308of a bus210may be coupled to the memory304, display316, and to high-speed expansion ports310, which may accept various expansion cards such as a graphics processing unit (GPU). In other preferred embodiments, the low-speed interface312of a bus210may be coupled to a storage device250and low-speed expansion ports314. The low-speed expansion ports314may include various communication ports, such as USB, Bluetooth, Ethernet, wireless Ethernet, etc. Additionally, the low-speed expansion ports314may be coupled to one or more peripheral devices270, such as a keyboard, pointing device, scanner, and/or a networking device, wherein the low-speed expansion ports314facilitate the transfer of input data from the peripheral devices270to the processor220via the low-speed interface312.

The processor220may comprise any type of conventional processor or microprocessor that interprets and executes computer readable instructions. The processor220is configured to perform the operations disclosed herein based on instructions stored within the system400. The processor220may process instructions for execution within the computing entity200, including instructions stored in memory304or on a storage device250, to display graphical information for a graphical user interface (GUI) on an external peripheral device270, such as a display316. The processor220may provide for coordination of the other components of a computing entity200, such as control of user interfaces411A,411B, applications run by a computing entity200, and wireless communication by a communication interface280of the computing entity200. The processor220may be any processor or microprocessor suitable for executing instructions. In some embodiments, the processor220may have a memory device therein or coupled thereto suitable for storing the data, content, or other information or material disclosed herein. In some instances, the processor220may be a component of a larger computing entity200. A computing entity200that may house the processor220therein may include, but are not limited to, laptops, desktops, workstations, personal digital assistants, servers110, mainframes, cellular telephones, tablet computers, smart televisions, streaming devices, smart watches, or any other similar device. Accordingly, the inventive subject matter disclosed herein, in full or in part, may be implemented or utilized in devices including, but are not limited to, laptops, desktops, workstations, personal digital assistants, servers110, mainframes, cellular telephones, tablet computers, smart televisions, streaming devices, or any other similar device.

Memory304stores information within the computing device300. In some preferred embodiments, memory304may include one or more volatile memory units. In another preferred embodiment, memory304may include one or more non-volatile memory units. Memory304may also include another form of computer-readable medium, such as a magnetic, solid state, or optical disk. For instance, a portion of a magnetic hard drive may be partitioned as a dynamic scratch space to allow for temporary storage of information that may be used by the processor220when faster types of memory, such as random-access memory (RAM), are in high demand. A computer-readable medium may refer to a non-transitory computer-readable memory device. A memory device may refer to storage space within a single storage device250or spread across multiple storage devices250. The memory304may comprise main memory230and/or read only memory (ROM)240. In a preferred embodiment, the main memory230may comprise RAM or another type of dynamic storage device250that stores information and instructions for execution by the processor220. ROM240may comprise a conventional ROM device or another type of static storage device250that stores static information and instructions for use by processor220. The storage device250may comprise a magnetic and/or optical recording medium and its corresponding drive.

As mentioned earlier, a peripheral device270is a device that facilitates communication between a user405and the processor220. The peripheral device270may include, but is not limited to, an input device and/or an output device. As used herein, an input device may be defined as a device that allows a user405to input data and instructions that is then converted into a pattern of electrical signals in binary code that are comprehensible to a computing entity200. An input device of the peripheral device270may include one or more conventional devices that permit a user405to input information into the computing entity200, such as a controller, scanner, phone, camera, scanning device, keyboard, a mouse, a pen, voice recognition and/or biometric mechanisms, etc. As used herein, an output device may be defined as a device that translates the electronic signals received from a computing entity200into a form intelligible to the user405. An output device of the peripheral device270may include one or more conventional devices that output information to a user405, including a display316, a printer, a speaker, an alarm, a projector, etc. Additionally, storage devices250, such as CD-ROM drives, and other computing entities200may act as a peripheral device270that may act independently from the operably connected computing entity200. For instance, a streaming device may transfer data to a smartphone, wherein the smartphone may use that data in a manner separate from the streaming device.

The storage device250is capable of providing the computing entity200mass storage. In some embodiments, the storage device250may comprise a computer-readable medium such as the memory304, storage device250, or memory304on the processor220. A computer-readable medium may be defined as one or more physical or logical memory devices and/or carrier waves. Devices that may act as a computer readable medium include, but are not limited to, a hard disk device, optical disk device, tape device, flash memory or other similar solid-state memory device, or an array of devices, including devices in a storage area network or other configurations. Examples of computer-readable mediums include, but are not limited to, magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD ROM discs and DVDs; magneto-optical media such as optical discs; and hardware devices that are specially configured to store and perform programming instructions, such as ROM240, RAM, flash memory, and the like.

In an embodiment, a computer program may be tangibly embodied in the storage device250. The computer program may contain instructions that, when executed by the processor220, performs one or more steps that comprise a method, such as those methods described herein. The instructions within a computer program may be carried to the processor220via the bus210. Alternatively, the computer program may be carried to a computer-readable medium, wherein the information may then be accessed from the computer-readable medium by the processor220via the bus210as needed. In a preferred embodiment, the software instructions may be read into memory304from another computer-readable medium, such as data storage device250, or from another device via the communication interface280. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement processes consistent with the principles as described herein. Thus, implementations consistent with the invention as described herein are not limited to any specific combination of hardware circuitry and software.

FIG.3depicts exemplary computing entities200in the form of a computing device300and mobile computing device350, which may be used to carry out the various embodiments of the invention as described herein. A computing device300is intended to represent various forms of digital computers, such as laptops, desktops, workstations, servers110, databases115, mainframes, and other appropriate computers. A mobile computing device350is intended to represent various forms of mobile devices, such as scanners, scanning devices, personal digital assistants, cellular telephones, smart phones, tablet computers, and other similar devices. The various components depicted inFIG.3, as well as their connections, relationships, and functions are meant to be examples only, and are not meant to limit the implementations of the invention as described herein. The computing device300may be implemented in a number of different forms, as shown inFIGS.1and3. For instance, a computing device300may be implemented as a server110or in a group of servers110. Computing devices300may also be implemented as part of a rack server system. In addition, a computing device300may be implemented as a personal computer, such as a desktop computer or laptop computer. Alternatively, components from a computing device300may be combined with other components in a mobile device, thus creating a mobile computing device350. Each mobile computing device350may contain one or more computing devices300and mobile devices, and an entire system may be made up of multiple computing devices300and mobile devices communicating with each other as depicted by the mobile computing device350inFIG.3. The computing entities200consistent with the principles of the invention as disclosed herein may perform certain receiving, communicating, generating, output providing, correlating, and storing operations as needed to perform the various methods as described in greater detail below.

In the embodiment depicted inFIG.3, a computing device300may include a processor220, memory304a storage device250, high-speed expansion ports310, low-speed expansion ports314, and bus210operably connecting the processor220, memory304, storage device250, high-speed expansion ports310, and low-speed expansion ports314. In one preferred embodiment, the bus210may comprise a high-speed interface308connecting the processor220to the memory304and high-speed expansion ports310as well as a low-speed interface312connecting to the low-speed expansion ports314and the storage device250. Because each of the components are interconnected using the bus210, they may be mounted on a common motherboard as depicted inFIG.3or in other manners as appropriate. The processor220may process instructions for execution within the computing device300, including instructions stored in memory304or on the storage device250. Processing these instructions may cause the computing device300to display graphical information for a GUI on an output device, such as a display316coupled to the high-speed interface308. In other implementations, multiple processors and/or multiple buses may be used, as appropriate, along with multiple memory units and/or multiple types of memory. Additionally, multiple computing devices may be connected, wherein each device provides portions of the necessary operations.

A mobile computing device350may include a processor220, memory304a peripheral device270(such as a display316, a communication interface280, and a transceiver368, among other components). A mobile computing device350may also be provided with a storage device250, such as a micro-drive or other previously mentioned storage device250, to provide additional storage. Preferably, each of the components of the mobile computing device350are interconnected using a bus210, which may allow several of the components of the mobile computing device350to be mounted on a common motherboard as depicted inFIG.3or in other manners as appropriate. In some implementations, a computer program may be tangibly embodied in an information carrier. The computer program may contain instructions that, when executed by the processor220, perform one or more methods, such as those described herein. The information carrier is preferably a computer-readable medium, such as memory, expansion memory374, or memory304on the processor220such as ROM240, that may be received via the transceiver or external interface362. The mobile computing device350may be implemented in a number of different forms, as shown inFIG.3. For instance, a mobile computing device350may be implemented as a cellular telephone, part of a smart phone, personal digital assistant, or other similar mobile device.

The processor220may execute instructions within the mobile computing device350, including instructions stored in the memory304and/or storage device250. The processor220may be implemented as a chipset of chips that may include separate and multiple analog and/or digital processors. The processor220may provide for coordination of the other components of the mobile computing device350, such as control of the user interfaces411A,411B, applications run by the mobile computing device350, and wireless communication by the mobile computing device350. The processor220of the mobile computing device350may communicate with a user405through the control interface358coupled to a peripheral device270and the display interface356coupled to a display316. The display316of the mobile computing device350may include, but is not limited to, Liquid Crystal Display (LCD), Light Emitting Diode (LED) display, Organic Light Emitting Diode (OLED) display, and Plasma Display Panel (PDP), holographic displays, augmented reality displays, virtual reality displays, or any combination thereof. The display interface356may include appropriate circuitry for causing the display316to present graphical and other information to a user405. The control interface358may receive commands from a user405via a peripheral device270and convert the commands into a computer readable signal for the processor220. In addition, an external interface362may be provided in communication with processor220, which may enable near area communication of the mobile computing device350with other devices. The external interface362may provide for wired communications in some implementations or wireless communication in other implementations. In a preferred embodiment, multiple interfaces may be used in a single mobile computing device350as is depicted inFIG.3.

Memory304stores information within the mobile computing device350. Devices that may act as memory304for the mobile computing device350include, but are not limited to computer-readable media, volatile memory, and non-volatile memory. Expansion memory374may also be provided and connected to the mobile computing device350through an expansion interface372, which may include a Single In-Line Memory Module (SIM) card interface or micro secure digital (Micro-SD) card interface. Expansion memory374may include, but is not limited to, various types of flash memory and non-volatile random-access memory (NVRAM). Such expansion memory374may provide extra storage space for the mobile computing device350. In addition, expansion memory374may store computer programs or other information that may be used by the mobile computing device350. For instance, expansion memory374may have instructions stored thereon that, when carried out by the processor220, cause the mobile computing device350perform the methods described herein. Further, expansion memory374may have secure information stored thereon; therefore, expansion memory374may be provided as a security module for a mobile computing device350, wherein the security module may be programmed with instructions that permit secure use of a mobile computing device350. In addition, expansion memory374having secure applications and secure information stored thereon may allow a user405to place identifying information on the expansion memory374via the mobile computing device350in a non-hackable manner.

A mobile computing device350may communicate wirelessly through the communication interface280, which may include digital signal processing circuitry where necessary. The communication interface280may provide for communications under various modes or protocols, including, but not limited to, Global System Mobile Communication (GSM), Short Message Services (SMS), Enterprise Messaging System (EMS), Multimedia Messaging Service (MMS), Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Personal Digital Cellular (PDC), Wideband Code Division Multiple Access (WCDMA), IMT Multi-Carrier (CDMAX 0), and General Packet Radio Service (GPRS), or any combination thereof. Such communication may occur, for example, through a transceiver368. Short-range communication may occur, such as using a Bluetooth, WIFI, or other such transceiver368. In addition, a Global Positioning System (GPS) receiver module370may provide additional navigation- and location-related wireless data to the mobile computing device350, which may be used as appropriate by applications running on the mobile computing device350. Alternatively, the mobile computing device350may communicate audibly using an audio codec360, which may receive spoken information from a user405and covert the received spoken information into a digital form that may be processed by the processor220. The audio codec360may likewise generate audible sound for a user405, such as through a speaker, e.g., in a handset of mobile computing device350. Such sound may include sound from voice telephone calls, recorded sound such as voice messages, music files, etc. Sound may also include sound generated by applications operating on the mobile computing device350.

The power supply may be any source of power that provides the system400with electricity. In a preferred embodiment, the primary power source of the system is a stationary power source, such as a standard wall outlet. In one preferred embodiment, the system400may comprise of multiple power supplies that may provide power to the system400in different circumstances. For instance, the system400may be connected to a backup battery system, which may provide power to the system400when it's primary power source cannot provide power and so long as the batteries of the backup battery system are charged. In this way, the system400may receive power even in conditions in which a medical facility may lose power, allowing patients405B and healthcare professionals405A to review patient data430B together even in less hospitable environments.

FIGS.4-11illustrate embodiments of a system400and methods for securely displaying patient data430B within a plurality of display windows605of a display user interface316A of a display316while reducing the amount of data transferred between the various computing entities.FIG.4illustrates a preferred embodiment of the system400having a first computing device410and second computing device411operably connected to a display316.FIG.5illustrates an example first user interface410A of the first computing device410and a second user interface411A of a second computing device411, wherein a display316operably connected to said first computing device410and second computing device411may receive image data430C from said first user interface410A of said first computing device410and said second user interface411A from said second computing device411, wherein said image data430C contains patient data430B.FIG.6illustrates an example display user interface316A of the display316, wherein a control board operably connected to said display316may receive image data430C from said first computing device410and said second computing device411and present it within said display user interface316A.FIG.7illustrates an environmental view of the system400being used by a user405within a hospital environment700.FIG.8illustrates permission levels800that may be utilized by the system400for controlling access to user content815,835,855such as user data430A, patient data430B, and image data430C.FIGS.9-11illustrate methods that may be carried out by the system400. It is understood that the various method steps associated with the methods of the present disclosure may be carried out as operations by the system400shown inFIG.4.

The system400generally comprises a first computing device410having a first user interface410A, second computing device411having a second user interface411A, processor220operably connected to said first computing device410and said second computing device411, display316operably connected to said processor220, and non-transitory computer-readable medium416coupled to said processor220and having instructions stored thereon. In one preferred embodiment, a database115may be operably connected to the processor220and the various data of the system400may be stored therein, including, but not limited to, user data430A, patient data430B, and image data430C. In a preferred embodiment, the various data of the system400transferred between the computing entities is encrypted. Other embodiments may further comprise a server110operably connected to the processor220and database115, facilitating the transfer of data therebetween. In some preferred embodiments, a display user interface316A of the display316may comprise a plurality of display windows605configured to present image data430C therein, wherein a control board of the display316may be configured to receive said image data430C from said first computing device410and said second computing device411. In yet another preferred embodiment, a wireless communication interface may allow the various pieces of the system400to receive and transmit image data430C therebetween. Though computing entities are referred to as first computing device410, second computing device411, and display316having a control board, one with skill in the art will recognize instances in which said computing entities may be used interchangeably without departing from the inventive subject matter described herein.

As previously mentioned, the processor220is configured to perform the operations disclosed herein based on instructions stored within the system400. In an embodiment, the programming instructions responsible for the operations carried out by the processor220are stored on a non-transitory computer-readable medium (“CRM”)416, which may be coupled to the server110, as illustrated inFIG.4. Alternatively, the programming instructions may be stored or included within the processor220. Examples of non-transitory computer-readable mediums416include, but are not limited to, magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD ROM discs and DVDs; magneto-optical media such as optical discs; and hardware devices that are specifically configured to store and perform programming instructions, such as read-only memory (ROM), random access memory (RAM), flash memory, and the like. In some embodiments, the programming instructions may be stored as modules within the non-transitory computer-readable medium416.

Data within the system400may be stored in various profiles. In a preferred embodiment, the system400comprises user data430A, patient data430B, and image data430C that may be stored in user profiles430. A user profile430may be defined as a profile containing data about a particular user405. As used herein, user data430A may be defined as personal information of a user405that helps the system400identify the user405. Types of data that may be used by the system400as user data430A includes, but is not limited to, a user's name, username, social security number, phone number, gender, age, or any combination thereof. As used herein, patient data430B is data related to a patient's705B405B medical record, which may usually be found within an Electronic Health Record (EHR). Types of data that may be used by the system400as patient data430B includes, but is not limited to, encounter notes, problems lists, lab/image reports, orders, medications, guidelines, assessments, interventions, pathological reports, or any combination thereof. Image data430C may be defined as data containing a visual representation of a particular user's405patient data430B as displayed in at least one of the first user interface410A and second user interface411A. User data430A, patient data430B, and image data430C in combination with permission levels800is used by the system400to assist in presenting patient data430B to users within the display user interface316A. A user405is preferably associated with a particular user profile430based on a username. However, it is understood that a user405may be associated with a user profile430using a variety of methods without departing from the inventive subject matter herein.

As illustrated inFIG.4, the system400may comprise a database115operably connected to the processor220. The database115may be operably connected to the processor220via wired or wireless connection. In a preferred embodiment, the database115is configured to store user data430A, patient data430B, and image data430C therein. Alternatively, the user data430A, patient data430B, and image data430C may be stored on the non-transitory computer-readable medium416. The database115may be a relational database such that the user data430A, patient data430B, and image data430C associated with each user profile430within the plurality of user profiles may be stored, at least in part, in one or more tables. Alternatively, the database115may be an object database such that user data430A, patient data430B, and image data430C associated with each user profile430within the plurality of user profiles may be stored, at least in part, as objects. In some instances, the database115may comprise a relational and/or object database and a server110dedicated solely to managing the user data430A, patient data430B, and image data430C in the manners disclosed herein.

The computing entities themselves may further comprise a display316. A display316may be defined as an output device that communicates data that may include, but is not limited to, visual, auditory, cutaneous, kinesthetic, olfactory, and gustatory, or any combination thereof. Information presented via a display316may be referred to as a soft copy of the information because the information exists electronically and is presented for a temporary period of time. Information stored on the non-transitory computer-readable medium416may be referred to as the hard copy of the information. For instance, a display316may present a soft copy of a visual representation of patient data430B via a liquid crystal display (LCD), wherein the hard copy of the patient data430B may be stored on a local hard drive. For instance, a display316may present a soft copy of audio information via a speaker, wherein the hard copy of the audio information is stored in memory of a mobile computing entity200. For instance, a display316may present a soft copy of user data430A via a hologram, wherein the hard copy of the user data430A is stored within a database115. Displays may include, but are not limited to, cathode ray tube monitors, LCD monitors, light emitting diode (LED) monitors, gas plasma monitors, screen readers, speech synthesizers, holographic displays, speakers, and scent generating devices, or any combination thereof, but is not limited to these devices.

A user405preferably accesses the various data of the system400by inputting commands within a user interface of a computing entity200that allows the user405to access to said data. In a preferred embodiment, as illustrated inFIGS.7and8, a user405may access data of the system400by using a first user interface410A of a first computing device410or a second user interface of a second computing device411to login to a user profile430having permissions800that allows said user405to access user data430A, patient data430B, and image data430C of said user profile430. After logging into said user profile430via one of said first user interface410A and second user interface411A, the user may connect the computing entity200with the display so that the user interface may instruct the processor220in way that causes the processor220to facilitate the transfer of image data430C from the computing entity200to the display316. Some preferred embodiments may require a security method to connect the computing entity200to the display316. For instance, the system400may require a user405to scan a barcode of the display316before granting access to said display316. Once connected, the user interface may cause the processor220to transmit image data430C to the display316, which may subsequently be presented via the display user interface316A.

Types of devices that may act as the communication interface include, but are not limited, to near field communication (NFC), Bluetooth, infrared (IR), radio-frequency communication (RFC), radio-frequency identification (RFID), and ANT+, or any combination thereof. In an embodiment, communication interfaces may broadcast signals of more than one type. For instance, a communication interface comprising an IR transmitter and RFID transmitter may broadcast IR signals and RFID signals. Alternatively, a communication interface may broadcast signals of only one type of signal. For instance, ID badges may be fitted with communication interface that broadcast only NFC signals containing unique IDs that computing entities equipped with NFC receivers must receive before being activated by a user405.

As previously mentioned, some preferred embodiments of the display316may further comprise a control board. The control board comprises at least one circuit and microchip. In another preferred embodiment, the control board may further comprise a wireless communication interface, which may allow the control board to receive instructions from an input device controlled by a user405. In a preferred embodiment, the control board may control the plurality of display windows605of the display user interface316A and the image data430C displayed therein. The microchip of the control board comprises a microprocessor220and memory. In another preferred embodiment, the microchip may further comprise a wireless communication interface in the form of an antenna. The microprocessor220may be defined as a multipurpose, clock driven, register based, digital-integrated circuit which accepts binary data as input, processes it according to instructions stored in its memory, and provides results as output. In a preferred embodiment, the microprocessor220may receive image data430C from at least one of a first computing device410and second computing device411via the wireless communication interface, wherein the image data430C comprises both image data430C and video data. Some preferred embodiments of image data430C may also include an audio data component. In another preferred embodiment, the microprocessor220may receive image data430C from the communication interface in the form of a live stream. For instance, image data430C pertaining to a live recording of a patient705B snoring during a sleep study may include both a video component and an audio component in real time.

As mentioned previously, the system400may further comprise a plurality of user interfaces410A,411A,412A. A user interface may be defined as a space where interactions between a user405and the system400may take place. In an embodiment, the interactions may take place in a way such that a user405may control the operations of the system400. A user interface may include, but is not limited to operating system400s, command line user interfaces, conversational interfaces, web-based user interfaces, zooming user interfaces, touch screens, task-based user interfaces, touch user interfaces, text-based user interfaces, intelligent user interfaces, brain-computer interfaces (BCIs), and graphical user interfaces, or any combination thereof. The system400may present data of the user interface to the user405via a display316operably connected to the processor220. A display316may be defined as an output device that communicates data that may include, but is not limited to, visual, auditory, cutaneous, kinesthetic, olfactory, and gustatory, or any combination thereof.

As mentioned previously, the control board of the display316receives image data430C from the first computing device410and second computing device411. The user interfaces of the computing entities allow for a user405to have a plurality of application windows505open thereon, wherein each application window505of said plurality of application windows contains a visual representation of a user's405patient data430B. In a preferred embodiment, the user interfaces allow a user405to choose which application windows505are transmitted to the display316. The control board may then present said image data430C via the plurality of display windows605of the display user interface316A. In a preferred embodiment, the user interfaces of the first computing device410and second computing device411may comprise of active application windows and inactive application windows. Preferably only an active application window of the user interfaces of the first computing device410and/or second computing device411is sent to the control board of the display316as image data430C in the form of a live stream and/or mirror, wherein an active application window is defined as the application window of the user interface currently being manipulated by a user405on their respective computing entity200. The inactive application windows are presented within the display user interface316A using the last image data430C received pertaining to said inactive application window, wherein the inactive application window is defined as an application window of the user interface not currently being manipulated by a user405on their respective computing entity200.

By limiting which application windows505of the first user interface410A and second user interface411A are mirrored and/or lived streamed, the amount of data transferred between the first computing device410, second computing device411, and display316can be greatly reduced. For instance, a healthcare professional705A having a first computing device410may wish to share three application windows505containing patient data430B and one application window505containing user data430A with a patient705B via the display316. The patient705B having a second computing device411may like to share one application window505containing patient data430B with said healthcare professional705A via the same display316. Using the system400, the healthcare professional705A and patient705B may operably connect their respective computing entities to the display316and open application windows505containing the data that they would like to share. Their computing entities would then convert those visual representations of said data into image data430C, which their respective computing entities would transmit to the display316and the display316would then present via the display user interface316A. In order to minimize the amount of data transferred between the display316and the computing entities of the healthcare professional705A and patient705B, the system400may limit which application windows505of the computing entities are mirrored and/or live streamed from the computing entities to the display316to only active application windows. This will allow for multiple application windows505to be presented within the display user interface316A without the need for multiple video feeds being transferred between the devices.

The control board may be responsible for managing the presentation of image data430C of the application windows505via the plurality of display windows605. The layout of the display windows605within the display user interface316A may be manually selected by a user405having appropriate permission levels800. Alternatively, the control board may automatically select a layout of the display user interface316A, wherein said layout may be determined based on a plurality of variables, including, but not limited to, number of application windows505selected, type of data presented, user preferences, patient705B preferences, user location, patient705B location, device type, or any combination thereof. For instance, the control board may select a layout of display windows605within a display user interface316A comprising a split screen with three display windows on each half of said split screen, wherein the left half represents selected application windows505within the user interface of the healthcare professional's705A computing entity200and the right half represents selected application windows505within the user interface of the patient's705B computing entity200. Additionally, the topmost display window of each respective half of the split screen may represent an active display window for the healthcare professional705A and an active display window for the patient705B.

Alternatively, the control board may manipulate the image data430C and/or plurality of display windows605based on commands received from an input device. In one preferred embodiment, the display user interface316A may further comprise a control window, which may allow a user405to control the layout of the display user interface316A. For instance, a user405may choose a layout of the control window that separates the display user interface316A into four separate display windows605configured to present image data430C from four separate application windows505. In another preferred embodiment, the input device may communicate a command to the control board, which the control board uses to manipulate the image data430C and/or plurality of display windows605. In an embodiment, an input device having a plurality of keys representing layouts of the display windows605may be used to manipulate said display user interface316A. A control board of the input device may be operably connected to the plurality of keys in a way such that manipulation of a key by a user405causes the control board to execute a function that causes said input device to send a command to the control board of the display316that causes said display316to alter the layout of the display user interface316A, wherein the function executed by the control board of the input device depends on the key selected. Indicia of the keys may represent which layout will be commanded based on the function executed. The input device may be connected to the system400via a wired or wireless connection.

In some preferred embodiments, the display316may communicate with a user's405computing entity200to limit the functionality of the user interface of said computing entity200. In one preferred embodiment, settings of the display316may limit how many application windows505may be selected for presentation within the display user interface316A. For instance, a display316may be configured such that the number of display windows505that may be used by the display316to present image data430C is limited to five or less even if said display316otherwise has the ability to use more than five display windows505to present image data430C. The display316may communicate this limit to the user interface of the user's405computing entity200, and the user interface may then limit how many application windows505a user405may choose to present therein. In another preferred embodiment, displays412may be configured such that only users405having certain permission levels800are allowed to transmit image data430C thereto. For instance, a display316within a patient's705B room may be configured such that only a single application window505of a patient's705B computing entity200may be selected for presentation within said display user interface316A, wherein said single application window cannot be streamed and/or mirrored; however, a healthcare professional705A may be allowed to select a set number of application windows505for presentation via the display with one of those application windows505allowed to be mirrored and/or streamed.

In some preferred embodiments, indicia within the first user interface410A and second user interface411A may be used to indicate various types of patient data430B to be presented within the display user interface316A as image data430C. For instance, a user405may be required to select four different types of patient data430B from a selection screen of the patient's705B user interface. The selection of these four types of patient data430B may be used to create application windows505, which the system400may convert into image data430C and present via the display316. The system400may use indicia to indicate which categories of patient data430B are available for review, which may be decided based on permissions800of the system400. In another preferred embodiment, indicia may be used to indicate which type of layout should be used by the display user interface316A to present the patient data430B thereon. Therefore, in some preferred embodiments, a user's405computing entity200may be used to control the layout of the display user interface316A. For instance, a user405may manipulate the user interface in a way that commands the control board to select a layout having five display windows605representing one cell phone screen of a patient705B and four tablet screens of a healthcare professional705A, wherein the image data430C presented in the five display windows605of the display user interface316A corresponds with the image data430C of the patient's705B cell phone and the healthcare professional's705A tablet, wherein the image data430C corresponds to user data430A and/or patient data430B selected by the patient705B and healthcare professional705A via the user interfaces of their respective computing entities.

As mentioned previously, the database115may be configured to store image data430C of the system400; however, in some preferred embodiments, the same may act as a distributor of image data430C to a display316, wherein said display316may then present the image data430C in a plurality of display windows605of the display user interface316A. Alternatively, the processor220and/or database115may transmit image data430C to a server110, which may act as a distributor of image data430C to the display316. Therefore, in some preferred embodiments, the first computing device410, second computing device411, and display316may not be in direct communication with one another. Instead, the first computing device410, second computing device411, and display316may be connected via a secure network, wherein said secure network can only be accessed by a user405in close proximity to a hub of said secure network that allows said user405to access said network should said user405also have a permission level800that allows for access of said secure network. For instance, a hospital comprising the system400may have a secure network though which at least one of a first computing device410and second computing device411must communicate with at least one of a server110and database115before being allowed to communicate with a display316through said server110and database115. This secured network may protect data of the system400from outside access and minimize security risks such as ransomware attacks.

In yet another preferred embodiment, the display user interface316A may further comprise a communication window, which may allow a user405to remotely communicate with other users405of the system400while presenting patient data430B425B. For instance, a video feed captured by a camera of the first computing device410and second computing device411may be presented in a communication window of a display user interface316A of a first display316and second display316along with any data within the plurality of display windows705, wherein the plurality of display windows705of the display user interface316A of the said second display316are configured to mirror data of the plurality of display windows705of said first display316. This may allow a healthcare professional705A to remotely interact with patients705B and/or other healthcare professionals705A while reviewing a patient's705B patient data430B425B. For instance, a first healthcare professional705A and second healthcare professional705A collaborating in the treatment of a patient705B may want to simultaneously meet with a patient705B even when the second healthcare professional705A is unable to be physically present with the first healthcare professional705A and patient705B. By way of a second video feed transmitting data to a communication window of a the first display user interface316A of a first display316in the presence of said first healthcare professional705A and patient705B and a first video feed transmitting data to a communication window of a second display user interface316A of a second display316in the presence of the second healthcare provider, the first healthcare provider, second healthcare provider, and patient705B may all see the same data on their respective computing entity200as well as a live stream of each other so that they may collaborate. Therefore, the communication window may be used by the system400in multiple ways without departing from the inventive subject matter as described herein.

In some preferred embodiments, a user405may manipulate the user interface410A,411A of their computing entity200in a way that causes said user405to be entered into a queue so that they may interact with a healthcare professional705A via said communication window. In one preferred embodiment, when a user405pairs their computing entity200to a display316, the user interface410A,411A of the user's405computing entity200may present new options that may allow the user405to enter the display316into a queue. When a patient's705B display316has its turn within the queue, the patient's705B display316and healthcare professional's705A display316pair so that communication may occur. In a preferred embodiment, communication occurs via image data430C and audio data via a communication window; however, it is understood that other forms of communication, such as audio only and text, may occur without departing from the inventive subject matter described herein. In a preferred embodiment, a healthcare professional705A may manage a queue in which a patient's705B display316has entered by manipulating at least one of the display user interface316A and first user interface410A of the healthcare professional's705A computing entity200. For instance, a healthcare professional705A may allow for the pairing of their display316with a patient's705B display316by manipulating a “Start Appointment” indicia within the user interface410A of said healthcare professional's705A computing entity200, which may cause the system400to execute programming instructions to pair the displays316and begin the appointment. In another preferred embodiment, a user405associated with a queue may indicate to the system400whether or not they are available. In one preferred embodiment, this may be accomplished with an indicia within the user interface411A of the healthcare professional's705A computing entity200that may be toggled by the healthcare professional705A to describe said healthcare professional705A as available or unavailable for sessions. For instance, a healthcare professional705A may indicate that they are unavailable to take a session, which may cause the system400to at least one of pause the queue, give a session to another healthcare professional705A, remove all displays316of patients705B from that queue, etc.

In other preferred embodiments, the healthcare professional705A may remotely enter a patient's705B display316into a queue. For instance, a healthcare professional705A may enter a patient's705B display316into a queue approximately thirty minutes prior to a scheduled appointment with said patient705B. Once again, this may be accomplished via the user interface410A of the healthcare professional's705A computing entity200, wherein an “Add to Queue” indicia within said user interface410A may cause the system400to execute programming instructions to enter the patient's705B display316into a queue. In yet another preferred embodiment, the display316may automatically be entered into a queue based on patient data430B within the system400. For instance, if the patient705B is required to have an appointment with a virtual patient705B educator as part of the treatment protocol for the disease in which the patient705B was diagnosed, the system400may automatically enter both the display316of the patient705B and the display316of the virtual patient705B educator into the relevant queue for the scheduled time.

A user405may add a queue to the system400via the user interface410A,411A if said user405has appropriate permissions. In one preferred embodiment, this may be accomplished by selecting a “Create New Queue” indicia within the user interface410A,411of a computing entity200and subsequently inputting the required data. Data that may be required to create a queue may include, but is not limited to, queue name, user/group name, user email address, queue specialty, CPT/ICD-10 codes, or any combination thereof. The system400preferably keeps session records for sessions that are performed using displays316of healthcare professionals705A and patients705B. Data that may be included within session records may include, but are not limited to, patient705B name, healthcare professional705A name, patient705B date of birth, date of session, time patient705B entered queue, time patient705B joined session, time session ended, image data430C, audio data, or any combination thereof. In one preferred embodiment, the system400may track how long a healthcare professional705A participated in each session and/or how long the patient705B was engaged. In some preferred embodiments, machine learning techniques may be used to evaluate patient705B engagement during a session.

In a preferred embodiment, the queue will appear differently with the user interfaces410A,411A of the system400based on permission levels800of the user405. For instance, the user interface410A presented to a healthcare professional705A using the system400to view the queue preferably informs said healthcare professional705A as to which patients705B are in queue and in what order said patients705B joined said queue. In other embodiments, the queue presented to a user405having appropriate permissions may additionally present data pertaining to each user405within the queue. In one preferred embodiment, this data may be used by a healthcare professional705A to preview an upcoming session prior to accepting said session with a patient705B. In a preferred embodiment, the patient705B queue comprises an interactive list of informational widgets containing patient data430B of users405who have been added to the queue. The informational widgets are preferably ordered by the time in which said patient's705B display316was added to the queue. Data contained within an informational widget may include, but is not limited to, patient705B name, patient705B date of birth, patient705B age, patient705B sex, time in queue, patient705B concerns/problems, procedures/labs completed for patient705B, medications administered to patient705B, patient705B vital sign data, patient705B device use history, or any combination thereof.

In a preferred embodiment, at least two healthcare professionals705A having appropriate permissions must be logged into the system400and associated with a particular queue for said queue to be activated. Should only one healthcare professional705A be logged into the system400and associated with a particular queue, the queue may be closed by the system400so that no additional displays316of patients705B may be added to said queue. Further, some preferred embodiments of the system400may also prevent healthcare professionals705A from adding displays316of patients705B to said queue when said queue has been closed due to lack of needed personnel. Upon viewing the patient's705B information within the informational widget, the healthcare professional705A may choose to begin the session with the patient705B, which will pair the displays316of the healthcare professional705A and the patient705B. In some preferred embodiments, a healthcare professional705A may not begin a session until the patient's705B information has been viewed. A patient705B is preferably removed from the queue when a session is started by a healthcare professional705A. In some preferred embodiments, when a first healthcare professional705A and second healthcare professional705A are viewing information of the same patient705B and the second healthcare professional705A attempts to create a session with a patient705B who is already in a session with the first healthcare professional705A, the system400may present a message to the second healthcare professional705A to inform said second healthcare professional705A that the patient705B is already in a session and to please select another patient705B.

In other preferred embodiments, a patient's705B display316is automatically removed from a queue and associated with the display316of a healthcare professional705A as soon as a healthcare professional705A becomes available for a session. In such embodiments, it is preferable that the healthcare professional705A be allowed to decide when to begin a session with the user405. In some embodiments, the healthcare professional705A may choose to unassociate a patient's705B display316with their own, which may cause the system400to reinsert the display316of the patient705B into the queue. When a patient's705B display316is unassociated in this manner, the system400preferably gives the unassociated display316of the patient705B priority over other displays316within the queue. For instance, a healthcare professional705A may toggle an indicia with one of the user interface410A of the computing entity200of said healthcare professional705A or the display user interface316A of the display316of said healthcare professional705A, causing the system400to execute program instructions that remove the display316of healthcare professional705A from the queue. Any display316of a patient705B that was previously removed from the queue and associated with the healthcare professional's705A display316may automatically be unassociated with the healthcare professional's705A display316, subsequently reinserted back into said queue, and grated top priority within said queue.

The various user interfaces of the system400may be configured to provide different functionality to the user405based on what the user405is doing. As such, the display user interfaces316A and/or the user interfaces410A,411A of the system400may allow for different functionality depending on activities in which the users405of the system400are engaged in. For instance, a patient705B resting in their room with no scheduled medical evaluations/appointments with a healthcare professional705A may be permitted by the display user interface316A to view cable television, educational material, and play games. For instance, a patient705B who has been entered into a queue for a medical evaluation/appointment with a medical professional may only be permitted by the display user interface316A to view educational material. For instance, a patient705B using the system400during a scheduled medical evaluation/appointment with a healthcare professional705A via the communication window may be unable to manipulate the display user interface316A but may be allowed to manipulate the user interface of their computing entity200so that they may access patient data430B to present within an application window.

To prevent un-authorized users405from accessing other users'405information, the system400may employ a security method. As illustrated inFIG.8, the security method of the system400may comprise a plurality of permission levels800that may grant users405access to user content815,835,855within the system400while simultaneously denying users405without appropriate permission levels800the ability to view user content815,835,855. To access the user content815,835,855stored within the system400, users405may be required to make a request via a user interface. Access to the data within the system400may be granted or denied by the processor220based on verification of a requesting user's805,825,845permission level800. If the requesting user's805,825,845permission level800is sufficient, the processor220may provide the requesting user805,825,845access to user content815,835,855stored within the system400. Conversely, if the requesting user's805,825,845permission level800is insufficient, the processor220may deny the requesting user805,825,845access to user content815,835,855stored within the system400. In an embodiment, permission levels800may be based on user roles810,830,850and administrator roles870, as illustrated inFIG.8. User roles810,830,850allow requesting users805,825,845to access user content815,835,855that a user405has uploaded and/or otherwise obtained through use of the system400. Administrator roles870allow administrators865to access system400wide data.

In an embodiment, user roles810,830,850may be assigned to a user in a way such that a requesting user805,825,845may view user profiles430containing user data430A, patient data430B, and image data430C via a user interface. To access the data within the system400, a user405may make a user request via the user interface to the processor220. In an embodiment, the processor220may grant or deny the request based on the permission level800associated with the requesting user805,825,845. Only users405having appropriate user roles810,830,850or administrator roles870may access the data within the user profiles430. For instance, as illustrated inFIG.8, requesting user 1805has permission to view user 1 content815and user 2 content835whereas requesting user 2825only has permission to view user 2 content835. Alternatively, user content815,835,855may be restricted in a way such that a user may only view a limited amount of user content815,835,855. For instance, requesting user 3845may be granted a permission level800that only allows them to view user 3 content855related to their specifically to their healthcare records within the EHR but not other data considered user 3 content855. In the example illustrated inFIG.8, an administrator865may bestow a new permission level800on users405, allowing said administrator865to grant said users405greater permissions or lesser permissions. For instance, an administrator865having an administrator role870may bestow a greater permission level800on other users so that they may view user 3's content855and/or any other user's405content815,835,855. Therefore, the permission levels800of the system400may be assigned to users405in various ways without departing from the inventive subject matter described herein.

FIG.9provides a flow chart900illustrating certain, preferred method steps that may be used to carry out the method of pairing a computing entity200with a display316and presenting image data430C containing at least one of user data430A and patient data430B via a display user interface316A. Step905indicates the beginning of the method. During step910, the processor may receive a computer readable signal from a computing entity200, wherein said computer readable signal contains instructions asking to connect said computing entity200to a display316. The processor may then perform a query during step915to determine if a permission level800of said computing entity200is sufficient to allow said computing entity200access to said display, wherein said permission level800is preferably contained within said computer readable signal. Based on the results of the query, the processor may take an action during step920. If the processor determines that the computing entity200does not have appropriate permissions to connect to said display, the processor may proceed to the terminate method step950. If the processor determines that the computing entity200does have appropriate permission to connect to said computing entity200the processor may proceed to step925, wherein the computing entity200may connect to the display.

Once connected, the processor may receive image data430C pertaining to application windows of a user interface of the computing entity200from said computing entity200during step930, wherein said image data430C contains at least one of user data430A and patient data430B pertaining to a user405of the system400. In a preferred embodiment, if more than one application window containing patient data430B is transferred in the form of image data430C to said display, only one of said image data430C may be in the form of a video feed. After receiving the image data430C, the processor may match the image data430C with a layout of a display user interface316A during step935. The processor may then present the display user interface316A during step940and subsequently present the image data430C within the display user interface316A during step945. Once presented, the system400may proceed to the terminate method step950.

FIG.10provides a flow chart1000illustrating certain, preferred method steps that may be used to carry out the method of entering a session using the system400. During step1005, the processor may facilitate the pairing between a computing entity200of a first user with the display, wherein said first user may use a user interface of said computing entity200to cause said pairing. Once paired, the processor may display a QR code that may be scanned by a computing entity200of a second user during step1010. Once scanned, the processor may perform a query to determine if a camera of the display will be activated during step1015. Based on the results of the query, the processor may perform an action during step1020. If the processor determines that the camera is not to be activated, the system400may proceed to the terminate method step1055. If the system400determines that the camera is to be activated, the system400may activate the camera during step1025. In a preferred embodiment, the system400may ask a first user whether to activate the camera of the display on at least one of the user interface410A,411A of the user's computing entity200or the display user interface316A of the display316.

Once the camera has been activated, the system400may use session data to enter the display into a queue during step1030. In a preferred embodiment, the queue is an order in which the display of the first user will be operably connected with a display of a third user. A plurality of displays316may be entered into the queue by the system400. The system400may then count down the queue during step1035and perform a query during step1040to determine whether to connect the display316of the first user with the display316of the second user. Based on the results of the query, the system400may perform an action during step1045. If the system400determines to not connect the display316of the first user with the display316of the second user based on the queue, the system400may return to step1035. If the system400determines to connect the display316of the first user with the display316of the second user based on the queue, the system400may facilitate the transfer of image data430C from the camera of the first user to the display316of the third user during step1050. In some preferred embodiments, a camera of the display316of the third user may be activated by the system400so that image data430C may be sent from the display316of the third user to the display316of the first user. Once the displays316of the first user and third user have been operably connected, the system400may proceed to terminate method step1055.

FIG.11provides a flow chart1100illustrating certain, preferred method steps that may be used to carry out the method of starting a session using the system400. During step1105, the processor may facilitate the pairing between a computing entity200of a first user with a display316, wherein said first user may use a user interface of said computing entity200to cause said pairing. Once paired, the processor may enter the display316of the first user into a receiving queue of the system400during step1110. In one preferred embodiment, the processor may automatically enter a display316of a user405into a receiving queue based on user data430A and user permissions. In another preferred embodiment, the user405may select within a user interface410A,411A of their computing entity200when to enter a receiving queue of the system400. Once entered into the receiving queue, the system400may perform a query during step1015to determine if there is a display316of a second user that has been placed within a requesting queue. Based on the results of the query, the system400may take an action during step1020. If it is determined that a display316of second user has not been placed in the requesting queue, the system400may return to step1015during step1025. If it is determined that a display316of second user has been placed in the requesting queue, the system400may operably connect the display316of said second user with said display316of said first user during step1030. Once the system400has operably connected the display of the first user with the display of the second user, the system400may proceed to terminate method step1035.

The subject matter described herein may be embodied in systems, apparati, methods, and/or articles depending on the desired configuration. In particular, various implementations of the subject matter described herein may be realized in digital electronic circuitry, integrated circuitry, specially designed application specific integrated circuits (ASICs), computer hardware, firmware, software, and/or combinations thereof. These various implementations may include implementation in one or more computer programs that may be executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, and at least one peripheral device.

These computer programs, which may also be referred to as programs, software, applications, software applications, components, or code, may include machine instructions for a programmable processor, and may be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly machine language. As used herein, the term “non-transitory computer-readable medium” refers to any computer program, product, apparatus, and/or device, such as magnetic discs, optical disks, memory, and Programmable Logic Devices (PLDs), used to provide machine instructions and/or data to a programmable processor, including a non-transitory computer-readable medium that receives machine instructions as a computer-readable signal. The term “computer-readable signal” refers to any signal used to provide machine instructions and/or data to a programmable processor. To provide for interaction with a user, the subject matter described herein may be implemented on a computer having a display, such as a cathode ray tube (CRD), liquid crystal display (LCD), light emitting display (LED) monitor for displaying information to the user and a keyboard and a pointing device, such as a mouse or a trackball, by which the user may provide input to the computer. Displays may include, but are not limited to, visual, auditory, cutaneous, kinesthetic, olfactory, and gustatory displays, or any combination thereof.

Other kinds of devices may be used to facilitate interaction with a user as well. For instance, feedback provided to the user may be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user may be received in any form including, but not limited to, acoustic, speech, or tactile input. The subject matter described herein may be implemented in a computing system that includes a back-end component, such as a data server, or that includes a middleware component, such as an application server, or that includes a front-end component, such as a client computer having a graphical user interface or a Web browser through which a user may interact with the system described herein, or any combination of such back-end, middleware, or front-end components. The components of the system may be interconnected by any form or medium of digital data communication, such as a communication network. Examples of communication networks may include, but are not limited to, a local area network (“LAN”), a wide area network (“WAN”), metropolitan area networks (“MAN”), and the internet.

The implementations set forth in the foregoing description do not represent all implementations consistent with the subject matter described herein. Instead, they are merely some examples consistent with aspects related to the described subject matter. Although a few variations have been described in detail above, other modifications or additions are possible. In particular, further features and/or variations can be provided in addition to those set forth herein. For instance, the implementations described above can be directed to various combinations and subcombinations of the disclosed features and/or combinations and subcombinations of several further features disclosed above. In addition, the logic flow depicted in the accompanying figures and/or described herein do not necessarily require the particular order shown, or sequential order, to achieve desirable results. It will be readily understood to those skilled in the art that various other changes in the details, devices, and arrangements of the parts and method stages which have been described and illustrated in order to explain the nature of this inventive subject matter can be made without departing from the principles and scope of the inventive subject matter.