BEACON-BASED SYSTEMS, METHODS, AND APPARATUSES FOR MANAGING COMMUNICATIVE PAIRING OF AN APPARATUS WITH A MEDICAL SYSTEM

A first ultrasonic beacon transmission includes a first pilot signal and a first encoded information signal. An apparatus may detect the first pilot signal and decode, based on the first pilot signal, the first encoded information signal to identify a medical system associated with the first ultrasonic beacon transmission. Based on the first encoded information signal, the apparatus may enter into a first pairing state in which the apparatus is communicatively paired with the medical system. While the apparatus is operating in the first pairing state and within a threshold time of entering the first pairing state, the apparatus may detect a second pilot signal included in a second ultrasonic beacon transmission, which also includes a second encoded information signal. Based on the detection of the second pilot signal within the threshold time, the apparatus may continue operating in the first pairing state without decoding the second encoded information signal.

BACKGROUND INFORMATION

In a medical facility (e.g., a hospital, a nursing home, etc.), medical personnel may use a medical system to diagnose, treat, and/or assist patients. In some medical facilities the medical personnel may also use a user device (e.g., a tablet computer, a smartphone, etc.) in the diagnosis, treatment, and/or assistance of the patient. For example, during a computer-assisted surgical procedure, such as a minimally invasive surgical procedure performed at a surgical facility, a surgeon may interact with a computer-assisted surgical system to control teleoperated surgical instruments to perform the surgical procedure on a patient. Other surgical team members may also interact with the computer-assisted surgical system to assist with the surgical procedure. A surgical team member (e.g., a nurse) may use an auxiliary device (e.g., a mobile device) during the surgical procedure, such as to view information about the patient or the computer-assisted surgical system. There is a need to facilitate the use of an auxiliary device in conjunction with use of a medical system and to ensure that the auxiliary device receives and provides accurate and relevant information.

SUMMARY

The following description presents a simplified summary of one or more aspects of the methods and systems described herein in order to provide a basic understanding of such aspects. This summary is not an extensive overview of all contemplated aspects and is intended to neither identify key or critical elements of all aspects nor delineate the scope of any or all aspects. Its sole purpose is to present some concepts of one or more aspects of the methods and systems described herein in a simplified form as a prelude to the more detailed description that is presented below.

An illustrative apparatus may comprise one or more processors and memory storing executable instructions that, when executed by the one or more processors, cause the apparatus to detect a first pilot signal included in a first ultrasonic beacon transmission, the first ultrasonic beacon transmission further including a first encoded information signal; decode, based on the first pilot signal, the first encoded information signal to identify a first medical system associated with the first ultrasonic beacon transmission; enter, based on the decoding of the first encoded information signal, into a first pairing state in which the apparatus is communicatively paired with the first medical system; detect, while operating in the first pairing state and within a threshold time of entering the first pairing state, a second pilot signal included in a second ultrasonic beacon transmission, the second ultrasonic beacon transmission further including a second encoded information signal; and continue, based on the detection of the second pilot signal within the threshold time, operating in the first pairing state without decoding the second encoded information signal.

Another illustrative apparatus may comprise an ultrasonic sensor configured to detect ultrasonic signals; and a processing unit configured to determine that the ultrasonic sensor detects, while the apparatus is operating in a first pairing state in which the apparatus is communicatively paired with a first medical system, a first pilot signal included in a first ultrasonic beacon transmission, the first ultrasonic beacon transmission further including a first encoded information signal identifying a medical system associated with the first ultrasonic beacon transmission; determine that the ultrasonic sensor detects the first pilot signal within a threshold time of a pairing state initialization event; and control, based on the determination that the apparatus detects the pilot signal within the threshold time of the pairing state initialization event and without decoding the first encoded information signal, the apparatus to continue operating in the first pairing state.

An illustrative method may comprise detecting, by an apparatus, a first pilot signal included in a first ultrasonic beacon transmission, the first ultrasonic beacon transmission further including a first encoded information signal; decoding, by the apparatus and based on the first pilot signal, the first encoded information signal to identify a first medical system associated with the first ultrasonic beacon transmission; entering, by the apparatus, based on the decoding of the first encoded information signal, into a first pairing state in which the apparatus is communicatively paired with the first medical system; detecting, by the apparatus and while operating in the first pairing state and within a threshold time of entering the first pairing state, a second pilot signal included in a second ultrasonic beacon transmission, the second ultrasonic beacon transmission further including a second encoded information signal; and continuing, by the apparatus and based on the detection of the second pilot signal within the threshold time, operating in the first pairing state without decoding the second encoded information signal.

DETAILED DESCRIPTION

Beacon-based systems, methods, and apparatuses for managing communicative pairing of an apparatus (or device) with a medical system will be described herein. The systems and methods described herein may be implemented as part of or in conjunction with a medical system, such as a computer-assisted surgical system. As such, an illustrative computer-assisted surgical system will now be described The following illustrative computer-assisted surgical system is illustrative and not limiting, as the systems and methods described herein may be implemented as part of or in conjunction with other suitable medical systems.

FIG.1shows an illustrative computer-assisted surgical system100(“surgical system100”). As shown, surgical system100may include a manipulating system102, a user control system104, and an auxiliary system106communicatively coupled one to another. In some examples, surgical system100may be implemented by one or more of these components. However, surgical system100is not limited to these components, and may include additional components as may suit a particular implementation, such as but not limited to a patient operating table, third-party components (e.g., electrosurgical units) connected to surgical system100, and the like.

Surgical system100may be utilized by a surgical team to perform a computer-assisted surgical procedure on a patient108. As shown, the surgical team may include a surgeon110-1, an assistant110-2, a nurse110-3, and an anesthesiologist110-4, all of whom may be collectively referred to as “surgical team members110.” Additional or alternative surgical team members may be present during a surgical session as may serve a particular implementation.

WhileFIG.1illustrates an ongoing minimally invasive surgical procedure, surgical system100may similarly be used to perform open surgical procedures or other types of surgical procedures that may similarly benefit from the accuracy and convenience of surgical system100. Additionally, it will be understood that the surgical session throughout which surgical system100may be employed may not only include an operative phase of a surgical procedure, as is illustrated inFIG.1, but may also include preoperative, postoperative, and/or other suitable phases of the surgical procedure. A surgical procedure may include any procedure in which manual and/or instrumental techniques are used on a patient to investigate, diagnose, and/or treat a physical condition of the patient, Additionally, a surgical procedure may include any non-clinical procedure, e.g., a procedure that is not performed on a live patient, such as a calibration or testing procedure, a training procedure, and an experimental or research procedure.

As shown inFIG.1, manipulating system102may include a plurality of manipulator arms112(e.g., manipulator arm112-1through112-4) to which a plurality of surgical instruments (not shown inFIG.1) may be coupled. Each surgical instrument may be implemented by any suitable therapeutic instrument (e.g., a tool having tissue-interaction functions), imaging device (e.g., an endoscope), diagnostic instrument, or the like that may be used for a computer-assisted surgical procedure (e.g., by being at least partially inserted into patient108and manipulated to perform a computer-assisted surgical procedure on patient108). In some examples, one or more of the surgical instruments may include force-sensing and/or other sensing capabilities. While manipulating system102is depicted and described herein as including four manipulator arms112, it will be recognized that manipulating system102may include only a single manipulator arm112or any other number of manipulator arms as may serve a particular implementation.

Manipulator arms112and/or surgical instruments attached to manipulator arms112may include one or more sensors (e.g., displacement transducers, orientational sensors, positional sensors, etc.) used to generate (i.e., uncorrected) kinematics information (hereinafter “surgical system sensors”). Kinematics information may include information such as pose (e.g., position and/or orientation), movement (e.g., velocity, direction, acceleration, etc.), state (e.g., open, closed, stowed, etc.), and/or other attributes of manipulator arms112, surgical instruments coupled to manipulator arms112, and/or any other components of manipulating system102(e.g., boom arms). One or more components of surgical system100may be configured to use the kinematics information to track (e.g., determine poses, movements, and/or states of) and/or control manipulator arms112and/or surgical instruments, Manipulating system102may also include other sensors configured to generate other information as may suit a particular implementation. Such sensors may also be referred to as “surgical system sensors” and may include, for example, draping sensors, boom height sensors, and the like.

Surgical instruments attached to manipulator arms112may each be positioned at a surgical area associated with a patient. A “surgical area” may, in certain examples, be entirely disposed within a patient and may include an area within the patient at or near where a surgical procedure is planned to be performed, is being performed, or has been performed. For example, for a minimally invasive surgical procedure being performed on tissue internal to a patient, the surgical area may include the tissue, anatomy underlying the tissue, as well as space around the tissue where, for example, surgical instruments being used to perform the surgical procedure are located In other examples, a surgical area may be at least partially disposed external to the patient at or near where a surgical procedure is planned to be performed, is being performed, or has been performed on the patient. For instance, surgical system100may be used to perform an open surgical procedure such that part of the surgical area (e.g., tissue being operated on) is internal to the patient while another part of the surgical area (e.g., a space around the tissue where one or more surgical instruments may be disposed) is external to the patient. A surgical instrument may be referred to as being positioned or located at or within a surgical area when at least a portion of the surgical instrument (e.g., a distal portion of the surgical instrument) is located within the surgical area.

User control system104may be configured to facilitate control by surgeon110-1of surgical system100(e.g., manipulator arms112and surgical instruments attached to manipulator arms112). For example, surgeon110-1may interact with user input devices included in user control system104to remotely move or manipulate manipulator arms112and the surgical instruments coupled to manipulator arms112. To this end, user control system104may provide surgeon110-1with imagery (e.g., high-definition stereoscopic imagery) of a surgical area associated with patient108as captured by an imaging device (e.g., a stereoscopic endoscope). Surgeon110-1may utilize the imagery to perform one or more procedures with one or more surgical instruments coupled to manipulator arms112.

To facilitate control of surgical instruments, user control system104may include a set of master controls (not shown inFIG.1). These master controls may be manipulated by surgeon110-1to control movement of surgical instruments (e.g., by utilizing robotic and/or teleoperation technology). The master controls may be configured to detect a wide variety of hand, wrist, and finger movements by surgeon110-1. In this manner, surgeon110-1may intuitively perform a surgical procedure using one or more surgical instruments.

User control system104may further be configured to facilitate control by surgeon110-1of other components of surgical system100. For example, surgeon110-1may interact with user control system104to change a configuration or operating mode of surgical system100, to change a display mode of surgical system100, to generate additional control signals used to control surgical instruments attached to manipulator arms112, to facilitate switching control from one surgical instrument to another, or to perform any other suitable operation. To this end, user control system104may also include one or more additional user input devices (e.g., foot pedals, buttons, switches, touchscreen displays, etc.) configured to receive manual input from surgeon110-1. In some examples, user control system104may also include one or more audio input devices (e.g., microphones) configured to receive audio input (e.g., voice input) from one or more users, and one or more audio output devices (e.g., speakers).

Auxiliary system106may include one or more computing devices configured to perform primary processing operations of surgical system100. The one or more computing devices included in auxiliary system106may control and/or coordinate operations performed by various other components (e.g., manipulating system102and/or user control system104) of surgical system100. For example, a computing device included in user control system104may transmit instructions to manipulating system102by way of the one or more computing devices included in auxiliary system106. As another example, auxiliary system106may receive from manipulating system102(e.g., from an imaging device) and process image data representative of imagery captured by an endoscope attached to a manipulator arm112.

In some examples, auxiliary system106may be configured to present visual content to surgical team members110who may not have access to the imagery provided to surgeon110-1at user control system104. To this end, auxiliary system106may include a display monitor114configured to display one or more user interfaces, such as images (e.g., 2D images) of the surgical area, information associated with patient108and/or the surgical procedure, and/or any other visual content as may serve a particular implementation. For example, display monitor114may display images of the surgical area together with additional content (e.g., graphical content, contextual information, etc.) concurrently displayed with the images. In some embodiments, display monitor114is implemented by a touchscreen display with which surgical team members110may interact (e.g., by way of touch gestures) to provide user input to surgical system100.

While auxiliary system106is shown inFIG.1as a separate system from manipulating system102and user control system104, auxiliary system106may be included in, or may be distributed across, manipulating system102and/or user control system104. Additionally, while user control system104has been described as including one or more user input devices and/or audio input devices, other components of surgical system100(e.g., manipulating system102and/or auxiliary system106) may include user input devices, audio input devices, and/or audio output devices as may suit a particular implementation.

Manipulating system102, user control system104, and auxiliary system106may be communicatively coupled one to another in any suitable manner. For example, as shown inFIG.1, manipulating system102, user control system104, and auxiliary system106may be communicatively coupled by way of control lines116, which may represent any optical, wired, or wireless communication link as may serve a particular implementation. To this end, manipulating system102, user control system104, and auxiliary system106may each include one or more optical, wired, or wireless communication interfaces, such as one or more local area network interfaces, Wi-Fi network interfaces, cellular interfaces, etc.

As shown inFIG.1, surgical system100may also include an accessory cart118. Accessory cart118may be configured to carry or store certain accessories of surgical system100and/or supplies to be used during the surgical procedure. For example, accessory cart118may hold surgical instruments120that may be coupled with manipulator arms112as needed during the surgical procedure.

In alternative embodiments, accessory cart118is not included in surgical system100but is a standalone medical system. For example, accessory cart118may be used to deliver sterilized instruments from a sterile processing department (“SPD”) of a hospital to various operating rooms throughout the hospital. Thus, in these embodiments accessory cart118is not included in surgical system100but may be a separate medical system.

In some examples, a medical system (e.g., surgical system100, accessory cart118, etc.) may be located within a medical facility that uses one or more ultrasonic beacons to facilitate communicative pairing of one or more devices with the medical system and/or to provide contextual information about the medical system, such as information about a medical procedure performed with the medical system, the location of the medical system, errors of the medical system, and the like.

FIG.2shows an illustrative configuration200of a medical facility202. As shown, medical facility202includes a predefined area204and a medical system206located within predefined area204. Medical facility202may be, for example, a hospital, a unit within a hospital (e.g., an emergency room, a trauma center, a maternity unit, an intensive care unit, etc.), a surgical facility, a deployable field hospital, a medical clinic, a doctor's office, a dentist's office, a nursing home, a hospice facility, a rehab facility, an assisted living facility, or any other similar facility. Predefined area204may be a particular area (e.g., a particular room) within medical facility202in which medical system206is located and/or used to perform one or more tasks or operations with respect to a patient. For example, predefined area204may be an operating room, a recovery room, a consulting room, a patient room, an examination room, an equipment room, and the like. In some examples, predefined area204is defined by and/or separated from other areas of medical facility202(e.g., from an adjoining operating room, from a hallway, from an equipment room, etc.) by one or more physical barriers (e.g., walls, windows, doors, curtains, etc.).

Medical system206may be implemented by any type of medical system that may be used to monitor, treat, and/or assist a patient located within medical facility202. For example, medical system206may be implemented by a surgical system (e.g., a computer-assisted surgical system, such as surgical system100), an imaging system (e.g., a computed tomography (CT) scanner, a magnetic resonance imaging (MRI) scanner, an X-ray machine, etc.), a dialysis machine, a heart—lung machine, a monitoring device (e.g., a heartrate monitor, a blood pressure monitor, etc.), a ventilator, a patient bed, an accessory cart, and/or the like. In some examples, medical system206is implemented by a mobile accessory cart (e.g., accessory cart118) that may move throughout medical facility202. For example, a mobile accessory cart may be an SPD cart that may be used to deliver sterilized instruments throughout medical facility202(e.g., to distribute sterilized instruments to various operating rooms).

A user208and a user device210associated with user208(e.g., used by, carried by, operated by, and/or logged into by user208) may move throughout medical facility202. As shown inFIG.2, user208and user device210are physically located within predefined area204. User device210is representative of any type of device (also referred to herein as an “apparatus”) that may communicate, directly or indirectly, with medical system206, such as an auxiliary device, a component of medical system206(e.g., manipulating system102, user control system104, auxiliary system106, etc.), an accessory cart, and any other suitable device. An auxiliary device may include any device that is not part of medical system206, such as a user device, another medical device or medical system, an SPD cart, and/or any other suitable device. A user device (e.g., user device210) may be any device capable of presenting information to a user, whether in visual, audio, or haptic format, and/or receiving user input from the user. For example, a user device may be implemented by a mobile device (e.g., a mobile phone, a handheld device, a tablet computing device, a laptop computer, a personal computer, etc.), an audio device (e.g., a speaker, earphones, etc.), a wearable device (e.g., a smartwatch device, an activity tracker, a head-mounted display device, a virtual or augmented reality device, etc.), and/or a display device (e.g., a television, a projector, a monitor, a touch screen display device, etc.).

Medical system206may be configured to communicatively pair with user device210when user device210is in proximity to medical system206. For example, as shown inFIG.2, user208(e.g., a surgical team member110) located within medical facility202may gain access, by way of user device210, to one or more functional features (e.g., an endoscopic video feed, a settings menu, medical system controls, etc.) associated with medical system206when user device210is communicatively paired with medical system206. For instance, user208may, by way of an application executed by user device210, view content associated with medical system206, interact with medical system206, and/or communicate with other users via additional user devices that are communicatively paired with medical system206. Even when user device210is not communicatively paired with medical system206, user208may have access to other functional features associated with medical facility202. For example, user208may, by way of an application executed by user device210, view and/or edit medical personnel information, update user profile information, view training content, schedule tasks, schedule medical procedures, view patient information, and the like.

To facilitate communicative pairing of user device210with medical system206, a beacon generator212(e.g., an ultrasonic transducer) is located within predefined area204and configured to generate and emit an ultrasonic beacon214that is associated with medical system206. Ultrasonic beacon214comprises sound waves generally having a frequency above the human audible hearing range (e.g., above about 17 kHz or above 20 kHz) In some examples, ultrasonic beacon214has a frequency between about 17 kHz and about 20 kHz.

Ultrasonic beacon214may include repeated transmissions of a particular message. For each transmission of ultrasonic beacon214, beacon generator212may include (e.g., encode) the message in ultrasonic beacon214by modulating one or more of the amplitude, frequency, and waveform of ultrasonic signals, such as by using phase-shift keying (PSK), binary phase-shift keying (BPSK), quadrature phase-shift keying (QPSK), amplitude-shift keying (ASK), frequency shift keying (FSK), on-off keying (OOK), quadrature amplitude modulation (QAM), an audio OR code format, by multi-frequency bit-coding, or any other suitable modulation technique.

The message included (e.g., encoded) in ultrasonic beacon214may include information (e.g., contextual information and/or identification information) associated with medical system206. In some examples, the message information encoded in ultrasonic beacon214associates, or may be used to associate, ultrasonic beacon214with medical system206. For example, ultrasonic beacon214may include a location identifier that identifies the predefined area (i.e., predefined area204) in which ultrasonic beacon214is located. The location identifier may be, for example, a unique identification (“ID”) number (e.g., a room number) assigned to or otherwise representative of predefined area204. As another example, ultrasonic beacon214may include a medical system identifier (e.g., a surgical system identifier) that identifies the medical system (i.e., medical system206) with which ultrasonic beacon214is associated. The medical system identifier may be, for example, a unique medical system ID assigned to or otherwise representative of medical system206. Additionally or alternatively, the medical system identifier may be a network address for the medical system. As yet another example, ultrasonic beacon214may include a beacon generator identifier that identifies the particular beacon generator (i.e., beacon generator212) that emits ultrasonic beacon214. The beacon generator identifier may be a beacon generator ID assigned to or otherwise representative of beacon generator212. As a further example, ultrasonic beacon214may include a medical session identifier that identifies a particular medical session with which ultrasonic beacon214is associated. The medical session identifier may be a medical session ID assigned to or otherwise representative of a particular medical session (e.g., a patient ID, medical team personnel IDs, a surgeon ID, a room ID, a surgical session ID, etc.). In some examples, the identification information may comprise a combination of letters and numbers (e.g., a 10-digit number). It will be recognized that the foregoing information that may be included in ultrasonic beacon214is merely illustrative and not limiting, as ultrasonic beacon214may include any other suitable information (e.g., GPS coordinates, error information, status information, security information, authentication information, etc.).

Each transmission of ultrasonic beacon214may include an information signal in which the message is encoded and a pilot signal, which may be used for synchronization of transmissions of ultrasonic beacon214and decoding the encoded message. The pilot signal may also help characterize the transmission and may carry some preamble information that may be used in decoding the information signal. In some examples, such as when the information included in ultrasonic beacon214has a small bit size, ultrasonic beacon214is transmitted over a single channel (e.g., in a single carrier communication scheme), In other examples, such as when the information included in ultrasonic beacon214has a relatively large bit-size (e.g., 32 bits, 64 bits, etc.), ultrasonic beacon214may be transmitted over multiple subchannels in a multi-carrier communication scheme (e.g., frequency division multiplexing (FDM) or orthogonal frequency division multiplexing modulation (OFDM)).

FIG.3shows an illustrative configuration300of a communication scheme for an ultrasonic beacon302(“beacon302”). WhileFIG.3shows a multi-channel communication scheme, in other embodiments the communication scheme may be a single-channel communication scheme.FIG.3shows a first transmission304-1of beacon302and a second transmission304-2of beacon302. Second transmission304-2is subsequent to first transmission304-1. For ease of discussionFIG.3shows two transmissions, but beacon302may have any other suitable number of transmissions. Transmissions304may be repeated continuously until beacon302is terminated (e.g., beacon generator212is turned off). For example, a third transmission identical to first transmission304-1may follow second transmission304-2, a fourth transmission identical to second transmission304-2may follow the third transmission, and so on. Beacon302may be transmitted with any suitable frequency (e.g., time between successive pilot signals306), such as 100 Hz, 10 Hz, 1 Hz, etc.

Transmissions304-1and304-2of beacon302include a pilot signal306-1and a pilot signal306-2, respectively, and an information signal308-1and an information signal308-2, respectively. Pilot signals306and information signals308are transmitted on a plurality of subchannels310(e.g., subchannels310-1to310-8). For ease of discussionFIG.3shows that beacon302is transmitted on eight different subchannels310, but beacon302may be transmitted on any other number of subchannels as may serve a particular implementation (e.g., 2, 4, 10, 3, 20, 32, 64, etc.) or on a single channel in a single-channel communication scheme. Subchannels310may be within the ultrasonic range. In some examples, the bandwidth of the plurality of subchannels310is within about 17.5 kHz to about 20 kHz. However, the plurality of subchannels310may have any other suitable range as may serve a particular implementation.

In some examples, pilot signals306and information signals308are encoded in accordance with OOK. Accordingly, each bit is represented by the transmission of a particular frequency for a set period of time or the absence of transmission of a particular frequency for a set period of time. In alternative examples, pilot signals306and information signals308may be encoded with any other suitable encoding scheme, such as PSK, FSK, OAR etc.

Pilot signals306are configured to provide information for synchronization of transmissions304. Pilot signals306may also contain other information that may be used for decoding information signals308. As shown inFIG.3, each pilot signal306includes a first set of signals312-1(“first set312-1”) transmitted on subchannels310followed by a second set of signals312-2(′second set312-2″) transmitted on subchannels310. Second set312-2is the inverse of first set312-1(e.g., a subchannel that transmits an ON signal (represented by a white box) in first set312-1transmits an OFF signal (represented by a black box) in second set312-2, and vice versa). As a result, the switch from first set312-1to second set312-2produces a strong edge that is easily detectable. This sharp edge, when detected by a device (e.g., user device210), indicates the start of each transmission304and thus facilitates synchronization of transmissions304. While pilot signals306are shown and described as having two sets312of signals, pilot signals306may have more or fewer sets of signals. In some examples, each pilot signal306may comprise a more compact signal for providing synchronization information and any other desired information.

First set312-1and second set312-2may have any suitable signal pattern as may serve a particular implementation. As shown inFIG.3, first set312-1and second set312-2each comprise an alternating pattern of ON/OFF signals. However, sets312are not limited to this configuration, and may have any other suitable configurations. In some examples, first set312-1and second set312-2may have a unique pattern configured to convey other information, such as a permutation order, as will be explained below in more detail.

Information signals308are configured to transmit message information such as identification information. In some examples, the message information encoded in information signals308may be divided into multiple subparts, and each subpart may include one or more bits. For ease of discussion,FIG.3shows that each information signal308is divided into eight message subparts denoted A through H, and each message subpart is transmitted in a single subchannel in four successive ON or OFF signals. For example, message subpart A of first transmission304-1is transmitted on subchannel310-1as signal A1, followed by signal A2, followed by signal A3, followed by signal A4. Message subparts B through H are transmitted on subchannels310-2to310-8, respectively, in a similar manner. It will be recognized that each information signal308may be divided into any suitable number of subparts (e.g., 2, 4, 10, 3, 20, 32, 64, etc.), and each message subpart may be transmitted as any one or more number of signals as may serve a particular implementation.

In some examples, the beacon generator permutes the message subparts that are transmitted on subchannels310for each successive transmission304of beacon302. The beacon generator may permute the message subparts in any suitable way. In some examples, the message subparts are shifted on subchannels310by one-half (½) of the total bandwidth of the spectrum of subchannels310. For example, as shown inFIG.3message subpart A is transmitted on subchannel310-1in first transmission304-1and is shifted to subchannel310-5in second transmission304-2. Similarly, message subparts B, G. and D are shifted from subchannels2,3, and4in first transmission304-1to subchannels6,7, and8in second transmission304-2, respectively. Message subparts E to H are shifted from subchannels5to8in first transmission304-1to subchannels1-4in second transmission304-2, respectively. First and second transmissions304may then be repeated indefinitely or until terminated.

When a device (e.g., user device210) detects first transmission304-1(e.g., detects pilot signal306-1), the device uses pilot signal306-1to decode information signal308-1by assembling each message subpart (e.g., signals A1to A4), and then assembling message subparts A to H to reconstruct the complete message information. In this way, the multi-channel communication scheme shown inFIG.3may transmit, by beacon302, multi-digit information (e.g., a 10-digit number represented by 32 bits, a 6-digit number represented by 20 bits, etc.) and/or any other suitable information in a relatively short amount of time. Systems and methods for using pilot signals in transmitting and decoding ultrasonic beacons are described in more detail in International Patent Application No. PCT/US2020/62065 filed Nov. 24, 2020, which application is incorporated herein by reference in its entirety.

WhileFIG.3shows that transmissions304of beacon302include pilot signals306directly preceding information signals308in the same channels, transmissions304are not limited to this configuration. In other configurations, transmissions304may include pilot signals306and information signals308transmitted on different channels. In some examples, the pilot signals308and information signals308may be transmitted simultaneously or alternatingly in a predetermined pattern.

Referring again toFIG.2, user device210may detect ultrasonic beacon214(or beacon302) in any suitable way. For example, user device210may include an ultrasonic sensor (e.g., a microphone) configured to detect ambient sound waves, including ultrasonic beacon214or beacon302, and process the detected ambient sound waves to generate audio signals representative of the detected ambient sound waves. In some examples, an application executed by user device210may process the audio signals to filter out audio signals that do not meet a predefined set of criteria (e.g., audio signals that are not in the ultrasonic range, do not fall within a predefined amplitude range, etc.). The ultrasonic sensor may also be set, either automatically by the application or manually by a user, to an “always-on” state. In this way, user device210may continually monitor for ultrasonic beacon transmissions while user device210is located within medical facility.

User device210is configured to detect (e.g., via an ultrasonic sensor, such as a microphone, etc.) ultrasonic beacon214when user device210is in proximity to beacon generator212. In some examples, ultrasonic beacon214is configured to not transmit through solid barriers (e.g., walls) and/or is configured to be confined within predefined area204. Accordingly, user device210may detect ultrasonic beacon214only when user device210is located within the same predefined area (e.g., operating room) as beacon generator212, as shown inFIG.2, When user device210is not located within predefined area204, user device210does not detect ultrasonic beacon214. Examples of user device210detecting ultrasonic beacon214will be described below in more detail.

As shown inFIG.2, beacon generator212is a standalone device separate from medical system206(e.g., beacon generator212is not physically integrated with or controlled by medical system206). As a standalone device beacon generator212may be fixedly positioned at any suitable location within predefined area204, such as on a wall or ceiling of predefined area204. Alternatively, beacon generator212may be a movable standalone device that may be moved and positioned as desired within predefined area204and/or within medical facility202.

Alternatively to a standalone device separate from medical system206, beacon generator212may be included in medical system206, as shown inFIG.4.FIG.4shows another illustrative configuration400of medical facility202.FIG.4is similar toFIG.2except that inFIG.4beacon generator212is included in medical system206. Beacon generator212may be included in medical system206in any suitable way. For example, beacon generator212may be physically integrated with medical system206(e.g., mounted on a column of manipulating system102, included in user control system104, etc.). Thus, if medical system206is moved to a different area of medical facility202, beacon generator212also moves to the new area. Additionally or alternatively, beacon generator212may be controlled by medical system206. For example, medical system206(e.g., auxiliary system106of surgical system100) may configure ultrasonic beacon214to include information and may control the emission of ultrasonic beacon214by beacon generator212.

The illustrative configurations200and400of medical facility202described above include a single beacon generator212located within predefined area204. However, multiple beacon generators212may be located within predefined area204, as illustrated inFIG.5.FIG.5shows another illustrative configuration500of medical facility202.FIG.5is similar toFIG.2except that inFIG.5predefined area204includes three beacon generators212(e.g., beacon generators212-1through212-3) configured to emit ultrasonic beacons214(e.g., ultrasonic beacons214-1through214-3) associated with medical system206. It will be recognized, however, that predefined area204may include any other number of beacon generators212as may suit a particular implementation.

Ultrasonic beacons214may each include information (e.g., information encoded in an information signal of ultrasonic beacon214) that may be used by a device pairing system to identify a particular medical system (i.e., medical system206) that is associated with ultrasonic beacons214and/or to control communicative pairing of user device210with medical system206. In some examples, ultrasonic beacons214each include the same information (e.g., the same location ID). In additional or alternative examples, each ultrasonic beacon214includes unique identification information. For example, ultrasonic beacon214-1may include a surgical system identifier, ultrasonic beacon214-2may include a location identifier, and ultrasonic beacon214-3may include a patient identifier. In some examples, one or more beacon generators212(or components or devices connected to or associated with beacon generators212) may be configured to listen for and detect ultrasonic beacons214emitted by the other beacon generators212located within predefined area204and use the detected ultrasonic beacons214to coordinate transmission of ultrasonic beacons214so as to avoid or minimize interference.

In some examples, multiple beacon generators212may be included in medical system206, as shown inFIG.6.FIG.6shows another illustrative configuration600of medical facility202.FIG.6is similar toFIG.5except that beacon generators212(e.g., beacon generators212-1through212-3) are included in medical system206. Beacon generators212may be included in medical system206in any suitable way. For example, beacon generators212may be physically integrated with and/or controlled by medical system206, as explained above. In some examples, each beacon generator212is included in a different component of medical system206. For instance, if medical system206is implemented by surgical system100, beacon generator212-1may be included in manipulating system102, beacon generator212-2may be included in user control system104, and beacon generator212-3may be included in auxiliary system106.

In some examples, ultrasonic beacons214include the same information (e.g., the same medical system ID). In additional or alternative examples, each ultrasonic beacon214includes unique information. For example, when medical system206includes multiple components, various components may each include a beacon generator212and each ultrasonic beacon214may include a unique component identifier (e.g., a component ID) assigned to or otherwise representative of the particular component in which the beacon generator212is included. For instance, referring again to the example in which medical system206is implemented by surgical system100, ultrasonic beacon214-1may include a unique component ID for manipulating system102, ultrasonic beacon214-2may include a unique component ID for user control system104, and ultrasonic beacon214-3may include a unique component ID for auxiliary system106.

In some configurations, medical facility202may also include additional beacon generators (not shown inFIGS.5and6) in areas outside of predefined area204, as illustrated inFIG.7.FIG.7shows another illustrative configuration700of medical facility202.FIG.7is similar toFIG.5except that inFIG.7medical facility202includes an additional predefined area704(e.g., another operating room, a hallway, an equipment room, etc.) adjoining predefined area204, an additional medical system706located in predefined area704, and additional beacon generators712(e.g., beacon generators712-1through712-3) located within predefined area704and that emit ultrasonic beacons714(e.g., ultrasonic beacons714-1through714-3) associated with additional medical system706, It will be recognized that any of beacon generators212-1through212-3may alternatively be included in medical system206, and any of beacon generators712-1through712-3may alternatively be included in medical system702, in the manner described above with reference toFIG.5. Additionally, predefined areas204and704may each include any other number of beacon generators212and712, respectively, as may suit a particular implementation. In some examples, predefined area704does not include a medical system but may nevertheless include one or more beacon generators712. For example, predefined area704may be a hallway, a break room, an office, or any other location.

It will be recognized that the foregoing configurations of medical facility202are merely illustrative and not limiting, as medical facility202may include any number and configuration of predefined areas, medical systems, and beacon generators as may suit a particular implementation. Moreover, any of the configurations described herein may be modified or combined as may suit a particular implementation.

As mentioned, ultrasonic beacons214may include information that may be used by a device pairing system to facilitate and/or manage communicative pairing of a device (e.g., user device210) with a medical system (e.g., medical system206).FIG.8shows an illustrative device pairing system800(“pairing system800”) that may be configured to communicatively pair a device with a medical system and manage (e.g., control, configure, change, set parameters for, etc.) a pairing state of the device. Pairing system800may be included in, implemented by, or connected to any medical systems, devices, or other computing systems described herein. For example, pairing system800may be implemented by a computer-assisted surgical system (e.g., surgical system100). As another example, pairing system800may be implemented by a stand-alone computing system communicatively coupled to a medical system. In some examples, pairing system800may be implemented, in whole or in part, by a device (e.g., user device210).

As shown inFIG.8, pairing system800includes, without limitation, a memory802and a processing unit804selectively and communicatively coupled to one another. Memory802and processing unit804may each include or be implemented by hardware and/or software components (e.g., processors, memories, communication interfaces, instructions stored in memory for execution by the processors, etc.). For example, memory802and processing unit804may be implemented by any component in a medical system. In some examples, memory802and processing unit804may be distributed between multiple devices and/or multiple locations as may serve a particular implementation.

Memory802may maintain (e.g., store) executable data used by processing unit804to perform any of the operations described herein. For example, memory802may store instructions806that may be executed by processing unit804to perform any of the operations described herein. Instructions806may be implemented by any suitable application, software, code, and/or other executable data instance. Memory802may also maintain any data received, generated, managed, used, and/or transmitted by processing unit804.

Processing unit804may be configured to perform (e.g., execute instructions806stored in memory802to perform) various operations associated with pairing a device with a medical system and managing a pairing state of the device with respect to the medical system and/or additional medical systems. Operations that may be performed by processing unit804are described herein. In the description that follows, any references to operations performed by pairing system800may be understood to be performed by processing unit804of pairing system800.

As mentioned, pairing system800may be implemented entirely by the medical system itself. For example, pairing system800may be implemented by one or more computing devices included in medical system206(e.g., in one or more computing devices included within manipulating system102, user control system104, and/or auxiliary system106of surgical system100).

FIG.9shows another illustrative implementation900of pairing system800. In implementation900, a remote computing system902may be communicatively coupled to medical system206by way of a network904. Remote computing system902may include one or more computing devices (e.g., servers) configured to perform any of the operations described herein. Network904may be a local area network, a wireless network (e.g., Wi-Fi), a wide area network, the Internet, a cellular data network, and/or any other suitable network. Data may flow between components connected to network904using any communication technologies, devices, media, and protocols as may serve a particular implementation. As shown, user device210may be connected to network904and thereby communicate with remote computing system902.

In some examples, remote computing system902and/or network904are located partly or entirely within a medical facility (e.g., medical facility202) as part of a medical facility management system (not shown). A medical facility management system may include one or more computing systems configured to generate and/or maintain medical facility data associated with the medical facility and its operations, such as data representative of medical systems included in the medical facility and locations of the medical systems, patient information, beacon generator information and locations of the beacon generators, medical session information, medical personnel information, schedule information, and the like.

In some examples, pairing system800is entirely implemented by remote computing system902or user device210. In alternative examples, pairing system800is distributed across any two or more of remote computing system902, medical system206, and user device210.

Pairing system800is configured to manage a pairing state of user device210with respect to one or more medical systems. A “pairing state” of user device210may include, without limitation, a “paired state,” a “limited paired state,” and an “unpaired state,” as will now be described.

While operating in a “paired state,” user device210is communicatively paired with medical system206and configured to exchange data with medical system206, thereby enabling user208to access, by way of user device210, one or more functional features associated with medical system206. For example, the user may, by way of the device, view content (e.g., an endoscopic video stream, patient information, surgical team information, etc.) associated with the medical system, interact with the medical system (e.g., control one or more features or settings of the medical system), view information (e.g., patient information, surgical team information, etc.) about a medical procedure being performed with the medical system (e.g., a surgical session performed with surgical system100), and/or communicate with other users by way of additional user devices that are communicatively paired with the medical system. As another example, a user control system for a proctor surgeon may, upon successful pairing with manipulating system102, be configured to control and interact with a manipulating system102that is primarily controlled by a primary user control system104.

User device210may be communicatively paired with medical system206in any suitable way. For example, user device210may be communicatively paired with medical system206by way of an indirect communication link (e.g., by way of remote computing system902and/or network904). Alternatively, user device210may be communicatively paired with medical system206by way of a direct (e.g., peer-to-peer, single hop, or ad hoc) communication link906. The direct communication link may include, for example, a direct wireless connection, such as a Bluetooth connection, a near field communication connection, a Wi-Fi connection, a Wi-Fi Direct connection, a smartphone ad hoc network (SPAN) connection, a mobile device ad hoc network (MANET) connection, etc. In some examples, user device210may be communicatively paired with medical system206only when user device210is physically proximate to medical system206, such as when user device210detects an ultrasonic beacon associated with medical system206(e.g., ultrasonic beacon214). It will be recognized, however, that in some examples, user device210is not communicatively paired with medical system206. Communicative pairing of user device210with medical system206will be described below in more detail.

In an “unpaired” or “not paired” state, user device210is not communicatively paired with medical system206, is not configured to exchange data with medical system206, and/or does not enable user208to access, by way of user device210, any functional features associated with medical system206.

User device210may also operate in one or more other intermediate pairing states, such as a “limited paired state.” In a limited paired state, one or more functional features provided by the device are different (e.g., modified, prohibited, locked, temporarily suspended, conditioned, etc.) than when user device210is operating in a paired state. For instance, a proctor surgeon may be able to control operations of surgical system100by way of user device210while user device210is operating in a paired state. If the proctor surgeon leaves the operating room, user device210may transition to operate in a limited paired state in which the proctor surgeon may continue to view an endoscopic video feed by way of user device210but is not able to control operations of surgical system100by way of user device210.

In some examples, pairing system800may transition a device from operating in a limited paired state to operating in a paired state based on user input. For example, while user device210is operating in a limited paired state, the user208may provide user input via an application executed by the user device210directing the user device210to transition to operating in a paired state. In some examples, pairing system800may require evidence that the user is in proximity to the medical system prior to transitioning the device to operating in the paired state, such as by scanning a QR code or bar code associated with the medical system, capturing an image of the medical system, etc.

Various operations that may be performed by pairing system800(e.g., by processing unit804of pairing system800), and examples of these operations, will now be described. It will be recognized that the operations and examples described herein are merely illustrative of the many different types of operations that may be performed by pairing system800.

In some examples, pairing system800may determine that a device (e.g., user device210) detects an ultrasonic beacon transmission (e.g., first transmission304-1) that includes a pilot signal and an encoded information signal. Based on the pilot signal, pairing system800may decode the encoded information signal to identify a medical system associated with the ultrasonic beacon transmission. In response to identifying the medical system, pairing system800may direct the device to enter into a pairing state in which the device is communicatively paired with the medical system. In this way, a user of the device may interact with medical system by way of the device while it is paired with the medical system. For instance, user208may access, by way of user device210, one or more functional features associated with medical system206.

However, establishing and maintaining a communicative pairing state between a device and a medical system in a medical facility is often not a simple process. A medical facility is a busy and complex environment. For example, a medical facility may include many different medical systems and many different ultrasonic beacons (see, e.g.,FIGS.5-7). Additionally, various ultrasonic beacons may come and go as medical systems move throughout the medical facility and turn on or turn off, and as different medical procedures start or stop. The user of the device may also move with the device throughout the medical facility. For example, a technician may move back and forth between two or more operating rooms during two concurrent medical procedures. As a result of these variable conditions, the device might detect multiple ultrasonic beacons at the same time, and the ultrasonic beacons that are detected by the device might change. These conditions may result in unwanted changes of the pairing state of the device.

To further complicate management of the pairing state of the device, movement of the device (even slow movement on the order of 1 meter/second) may result in a Doppler shift of the information signal included in ultrasonic beacon transmissions. This may occur, for example, when a user is moving around in an operating room or within the medical facility, or when a beacon generator is moving. In OFDM, where the subcarriers are densely packed, the Doppler shift can make the message unrecoverable. Motion also creates problems related to the changing delays and path lengths during transmission. These issues are particularly severe because of the slow speed of sound relative to motion, short wavelengths, limited near-ultrasonic bandwidth, and challenging acoustic environment in an operating room. The Doppler shift may thus prevent or affect pairing of the device with a medical system.

To address these issues, pairing system800is configured to infer an intended pairing state of the device quickly and efficiently and with as little interruption to the user as possible. Accordingly, pairing system800may infer the intended pairing state of the device based on various inputs such as a current pairing state of the device, information obtained from detected ultrasonic beacon transmissions (e.g., pilot signals and/or information signals), information about motion of the device, user input, and/or any other suitable information (e.g., user preferences, user histories, predictive information, etc.). Pairing system800may use these inputs to determine whether and how the device will transition between different pairing states.

Ultrasonic beacon-based methods for establishing and managing a pairing state of a device will now be described with reference toFIG.10.FIG.10shows an illustrative method1000. WhileFIG.10shows illustrative operations according to one embodiment, other embodiments may omit, add to, reorder, combine, and/or modify any of the steps shown inFIG.10. While the operations shown inFIG.10are described as being performed by pairing system800, it will be understood that the operations may be performed by any components included in pairing system800and/or any implementation thereof (e.g., a device such as user device210, a medical system, a component of a medical system, a combination of devices, a remote computing system, etc.). Method1000may begin, for example, when a device is turned on, when the device initiates execution of a particular application, when a user logs into the application executed by the device, when an ultrasonic sensor on the device is turned on, when the device connects to a particular network (e.g., a medical facility network), when the device moves into a particular geographic location (e.g., based on GPS or other location tracking methods), in accordance with a defined schedule, and/or any other suitable event or time.

In operation1002, pairing system800(e.g., by way of an ultrasonic sensor included in the device) monitors for ultrasonic beacon transmissions. Operation1002may be performed in any suitable way, including in any way described herein.

In operation1004, pairing system800determines whether the device detects a pilot signal included in an ultrasonic beacon transmission. If pairing system800determines that the device does not detect a pilot signal, processing proceeds to operation1006.

In operation1006, pairing system800checks the current pairing state of the device. If pairing system800determines that the device is not paired with any medical system, processing returns to operation1002to monitor for ultrasonic beacon transmissions. On the other hand, if pairing system800determines that the device is paired (e.g., in a paired state or a limited paired state) with a medical system when the device does not detect any pilot signal, processing proceeds to operation1018and transitions the device to operate in a new pairing state for the device (e.g., an unpaired state, a limited paired state, etc.). Operation1018will be described below in more detail. Processing then returns to operation1002to monitor for subsequent ultrasonic beacon transmissions.

Returning again to operation1004, if pairing system800determines that the device detects a pilot signal in an ultrasonic beacon transmission, processing proceeds to operation1008.

In operation1008, pairing system determines a current pairing state of the device. If pairing system800determines that the device is not paired with any medical system, processing proceeds to operation1010.

In operation1010, pairing system800decodes, based on the detected pilot signal, an encoded information signal included in the detected ultrasonic beacon transmission to identify information included in the encoded information signal ((e.g., a medical system associated with the ultrasonic beacon transmission). Operation1010may be performed in any suitable way, including any way described herein.

In some examples, pairing system800may identify a medical system associated with the ultrasonic beacon by comparing the decoded information in the ultrasonic beacon with medical facility data. The medical facility data may take the form of one or more tables or other data structures that associate various attributes of a medical facility, such as predefined areas within the medical facility, medical systems located within the predefined areas of the medical facility, beacon generators located within the predefined areas of the medical facility, and medical sessions being performed within the medical facility and/or with the medical systems. In some examples, pairing system800may be configured to access the medical facility data from a medical facility management system. Alternatively, the medical facility data may be tracked, generated, and/or maintained by pairing system800and/or the device.

In some examples, pairing system800may identify a medical system that is physically located within the same predefined area as the beacon generator that emitted the ultrasonic beacon. For instance, pairing system800may identify, based on medical facility data, a medical system ID that is directly or indirectly associated with a location ID included in the ultrasonic beacon. As another example, pairing system800may identify a medical system that is being used to perform a medical session that is represented by a medical session identifier included in the ultrasonic beacon. For instance, pairing system800may identify, based on medical facility data, a medical system ID that is directly or indirectly associated with a surgical session ID included in the ultrasonic beacon. As yet another example, pairing system800may identify a medical system associated with the beacon generator that emitted the ultrasonic beacon. For instance, pairing system800may identify, based on medical facility data, a medical system ID that is directly or indirectly associated with a beacon generator ID included in the ultrasonic beacon. In some examples, pairing system800may identify a medical system associated with the ultrasonic beacon by identifying a medical system ID included in the ultrasonic beacon. For example, the beacon generator may be configured to include the medical system ID in the ultrasonic beacon when the medical system and the beacon generator are permanently located within a predefined area, or when the beacon generator is included in the medical system.

After pairing system800decodes the encoded information signal to identify the medical system associated with the ultrasonic beacon transmission, processing proceeds to operation1018. In operation1018, pairing system800sets a new pairing state based on the identified medical system. For example, pairing system800may cause the device to enter into a paired state with the medical system.

In some embodiments, pairing of the device with the medical system may be conditioned on authentication of a user associated with the device. For example, a pairing process may not be complete until the user of the device has logged in to the device or to an application or service provided by pairing system800and accessible through the device. Additionally or alternatively, successful pairing may further be conditioned on other parameters, such as an identity of the authenticated user matching an identity of a surgical team member previously assigned to a surgical session (e.g., at initiation or creation of the surgical session), or upon the authenticated user successfully providing user input to identify, for example, a surgical session associated with the medical system with which the device is attempting to pair (e.g., by identifying surgical session ID information, etc.). Pairing system800may detect such successful authentication in any suitable manner (e.g., by receiving data representative of the successful authentication from the medical system and/or the device).

After transitioning the device from operating in an unpaired to state to operating in a paired state with the medical device, pairing system800may initialize a clock to an initial time to in operation1020(explained below in more detail), and then processing returns to operation1002to monitor for subsequent ultrasonic beacon transmissions.

Returning again to operation1008, if pairing system800determines that the device is paired with a medical system (e.g., in a paired state or a limited paired state), processing proceeds to operation1012in which pairing system800determines whether to perform a quick “pilot check” or a more robust “confirmation check.” The pilot check and the confirmation check are part of a maintenance process performed by pairing system800to determine whether to continue operating the device in the paired state (or in a limited paired state).

In operation1012, pairing system800determines whether the device detects the pilot signal within a threshold time T of a pairing state initialization event. A pairing state initialization event may comprise any suitable event associated with establishing or maintaining the device in a paired state (or limited paired state). In some examples, a pairing state initialization event includes the most recent transition between pairing states (e.g., performance of operation1018) and/or most recent decoding of an encoded information signal included in a detected ultrasonic beacon transmission (e.g., performance of operation1010or operation1014, which will be described below). Additionally or alternatively, a pairing state initialization event may include detection, by pairing system800, of a particular action performed by the medical system, an interaction by the user with the device to access a functional feature associated with the medical system (e.g., to control operations of the medical system by way of the user device), or any other suitable action. In yet further examples, a pairing state initialization event may include the passage of the threshold time T.

Operation1012may be performed in any suitable way. For example, pairing system800may determine whether a time t at which the pilot signal is detected is greater than an initial time to plus the threshold time T. The threshold time T may be any suitable time period, such as 1 minute, 30 seconds, 10 seconds, 1 second, 10 milliseconds, etc. Pairing system800may set the initial time to when a pairing state initialization event occurs, such as by resetting (initializing) a clock to an initial time to. For instance, as shown in operation1020, pairing system800may reset the clock by setting the current time t to zero (to). In some examples, the threshold time T may be set (either manually or automatically) based on one or more factors, such as the particular medical system or type of medical system, user role or user profile of the user logged in to the device, the device or type of device, current pairing state (e.g., paired state or limited paired state), whether the device is paired with other medical systems, the number and/or frequency of pairing state transition events, and/or any other suitable information.

In operation1012, if pairing system800determines that the threshold time T has not elapsed since the pairing state initialization event (e.g., that the device detects the pilot signal within the threshold time T), the process returns to operation1002to monitor for subsequent ultrasonic beacon transmissions. By this pilot check, pairing system800causes the device to continue operating in the communicatively paired state based on the detection of the pilot signal of the ultrasonic beacon transmission but without decoding the encoded information signal of the ultrasonic beacon transmission.

If, however, pairing system800determines that the threshold time T has elapsed since the pairing state initialization event (e.g., the detection of the pilot signal is not within the threshold time T), processing proceeds to operation1014.

In operation1014, pairing system800decodes the encoded information signal of the ultrasonic beacon transmission to identify a medical system associated with the ultrasonic beacon transmission. Operation1014may be performed in any suitable way, including any way described herein.

In operation1016, pairing system determines whether the medical system associated with the ultrasonic beacon transmission corresponds to the medical system with which the device is currently paired. Operation1016may be performed in any suitable way. For example, pairing system800may compare the decoded information from the encoded information signal with the medical facility data to determine whether the device is currently located in the same location as the medical facility with which the device is paired. Operation1016may additionally or alternatively include performing an error correction process based on the information signal.

If pairing system800determines that the medical system associated with the ultrasonic beacon transmission corresponds to the medical system with which the device is currently paired, processing proceeds to operation1020to initialize the clock and then returns to operation1002to monitor for subsequent ultrasonic beacon transmissions. By this confirmation check, pairing system800causes the device to continue operating in the communicatively paired state based on a confirmation that the medical system associated with the ultrasonic beacon transmission corresponds to the medical system with which the device is currently paired.

If, however, pairing system800determines in operation1016that the medical system associated with the ultrasonic beacon transmission does not correspond to the medical system with which the device is presently paired, processing proceeds to operation1018. In operation1018, pairing system800sets a new pairing state based on the medical system associated with the detected ultrasonic beacon transmission. For example, pairing system800may transition the device from operating in a paired state with the currently paired medical system to operating in an unpaired state with the medical system, Additionally or alternatively, pairing system800may cause the device to enter into a pairing state in which the device is communicatively paired with the medical system associated with the ultrasonic beacon transmission.

Processing then proceeds to operation1020to initialize the clock and then returns to operation1002to monitor for subsequent ultrasonic beacon transmissions. By this confirmation check, pairing system800may transition to a new pairing state when a new medical system is detected. In the new pairing state, the device may be unpaired from any medical system, may pair only with the newly detected medical system, or may be paired with both the presently paired medical system and the newly detected medical system.

In the foregoing process, the pilot check may be performed more frequently than the confirmation check (e.g., with a frequency greater than 1/T) because decoding an encoded information signal consumes more battery power than does detecting a pilot signal Thus, method1000accurately infers and intended pairing state and manages the pairing state while conserving battery power.

Various modifications may be made to method1000to further refine establishment and management of the pairing state of the device, as will now be described.

For example, rather than performing a confirmation check only in response to a determination that the threshold time T has elapsed since the pairing state initialization event (operation1012(Y)), pairing system800may additionally or alternatively decode the encoded information signal when some other detected condition indicates a possible change in conditions (e.g., that the device may have moved, another beacon generator has come online, etc.). For example, pairing system800may detect a change in quality of the pilot signal (e.g., a drop or increase in SNR), which may occur, for instance, when the device moves farther away from or closer to an ultrasonic beacon generator. In other examples, pairing system800may detect a sudden change in timing of pilot signal transmissions, different information encoded in the pilot signal, or any other suitable change in conditions. In response to detecting the change in quality of the pilot signal and/or other changed conditions, pairing system800may proceed to operation1014and perform the confirmation check. In some examples, detection of the changed conditions may trigger the confirmation check even when the threshold time T has not elapsed since the pairing state initialization event.

In another modification, rather than monitoring only for pilot signals in operation1004, pairing system800may instead monitor for any communication in the ultrasonic range. For example, the pilot signal may be the same as, or a part of, the information signal. Accordingly, pairing system800may detect a pilot signal simply by detecting the presence of a transmission in the ultrasonic range.

In some examples, the device does not transition directly from a paired state to an unpaired state if the pilot check or confirmation check fails. Rather, the device may transition from a paired state only to a limited paired state. In additional or alternative examples, the device transitions from a paired state to a limited paired state or an unpaired state only if the pilot check or confirmation check fails a threshold number of consecutive times.

In some examples, operation1012is omitted from method1000so that pairing system800does not perform a pilot check. In these examples, the device continues operating in the current pairing state only upon a successful confirmation check.

In yet further examples, operation1018may be performed based on user input, as shown inFIG.11,FIG.11shows a method1100that is similar to method1000except that method1100includes an operation1102prior to performing operation1018.

In operation1102, pairing system800receives user input indicating a desired pairing state of the device, and in operation1018pairing system sets the pairing state based on the received user input. The user input may be received in any suitable way. For example, pairing system800may prompt the user, by way of the device (e.g., by way of a graphical user interface, by an audio or haptic notification, or the like), to provide input in response to any one or more of operation1006(Y), operation1010, and operation1016(N). The device may be configured to receive the user input in any suitable way, such as by touch input, voice command, or motion gesture of the device.

To illustrate, if operation1102is reached from operation1006(no pilot signal detected while operating in a paired state) or operation1016(confirmation failed while operating in a paired state), the user input may indicate a desire to maintain operation of the device in the paired state even though no ultrasonic beacon transmission is detected. Accordingly, in operation1018pairing system800may set the device to continue operating in the paired state or in a limited paired state.

If operation1102is reached from operation1010, the user may be prompted to confirm, by user input by way of the device, a desire to pair the device with the medical system associated with the ultrasonic beacon transmission.

Operation1102may assist pairing system800to determine an appropriate pairing state when the device detects multiple different ultrasonic beacons. In some examples, method1100is performed when the device detects multiple different ultrasonic beacons, and method1000is performed when the device detects only one ultrasonic beacon.

WhileFIG.11shows that operation1102may be performed in response to operations1006(N),1010, and1016(Y), operation1102may be performed in response to more or fewer operations and/or any other operations as may serve a particular implementation (e.g., operation1008(N)).

In yet further modifications of methods1000and1100, operation1018may further be performed based on preferences or a profile of the user or a role of the user (e.g., surgeon, nurse, technician, etc.). For example, a user may specify particular preferences for transitioning between pairing states. Additionally or alternatively, an administrator of pairing system800may limit certain functional features that may be accessed by way of the user device based on the user or user role.

As mentioned above, motion of the device may also generate a Doppler effect in the encoded information signal of an ultrasonic beacon transmission, making the encoded information signal unrecoverable. Accordingly, the device may be unable to pair with the medical system associated with the ultrasonic beacon transmission, and the confirmation check may fail, resulting in an unintended unpairing of the device. Accordingly, pairing system800may also be configured to use motion detection in the maintenance process and/or to set the pairing state of the device. Accordingly, operation1010inFIGS.10and11may be substituted as shown inFIG.12A. Additionally or alternatively, operation1014inFIGS.10and11may be substituted as shown inFIG.12B.

FIG.12Ashows illustrative alternative operations1202to1208that may be substituted for operation1010inFIGS.10and11.

Operation1202is performed after operation1008(N). In operation1202, when the device is attempting to pair with a new medical system, pairing system800may determine whether the encoded information signal of the detected ultrasonic beacon transmission is decodable. Operation1202may be performed in any suitable way, such as by a parity check, an error check, validation of the decoded information against reference information (e.g., medical facility data), or any other suitable validation method.

If pairing system800determines that the encoded information signal is decodable, pairing system800decodes the encoded information signal in operation1204and then proceeds to operation1018, which may be performed as described above to communicatively pair the device with the medical system associated with the ultrasonic beacon transmission.

If, however, pairing system800determines that the encoded information signal is not decodable, processing proceeds to operation1206. In operation1206, pairing system800determines whether the device is in motion. Operation1206may be performed in any suitable way. In some examples, pairing system800may determine that the device is in motion based on information generated by one or more motion sensors included in the device and configured to detect motion of the device. The motion sensor(s) may include, for example, an inertial measurement unit (WU), an accelerometer, a gyroscope, a magnetometer, and/or any other suitable motion sensing device. Additionally or alternatively, pairing system800may process the encoded information signal to identify the Doppler shift in the encoded information signal.

If pairing system800determines that the device is not in motion, processing may return to operation1002, which may be performed as described above to monitor for subsequent ultrasonic beacon transmissions. Additionally or alternatively, pairing system800may perform any other operations configured to improve reception and/or decoding of the encoded information signal, such as adjusting frequency filters or algorithms used to process encoded information signal.

If, however, pairing system800determines that the device is in motion, processing proceeds to operation1208. In operation1208, pairing system800performs a motion mitigation process. In some examples, the motion mitigation process includes providing a notification to the user indicating that pairing was unsuccessful due to motion and/or instructing the user to hold the device still so the device can be paired. Additionally or alternatively, the motion mitigation process may include providing alternate means for pairing the device with the medical system. The alternate means may include any suitable means configured to establish that the device is in physical proximity to the medical system, such as a barcode, a QR code, an RFID tag, image recognition, user input, and the like. Additionally or alternatively, motion mitigation may comprise not attempting to pair while the device is in motion. In some examples, motion mitigation may include implementing changes to transmission or reception protocols, such as spacing out subchannel frequencies (refer toFIG.3) or storing and combining more ultrasonic beacon transmissions (e.g., transmissions304) together at the device. Such techniques may make pairing more robust at the expense of a slightly increased pairing time. In yet further examples, motion mitigation may include performing a Doppler correction of the corrupted information signal. Doppler correction may be performed in any suitable way.

Upon performing operation1208, processing returns to operation1002, which may be performed as described above to monitor for subsequent ultrasonic beacon transmissions.

FIG.12Bshows illustrative alternative operations1210to1216that may be substituted for operation1014inFIGS.10and11.

Operation1210is performed after operation1012(Y) when pairing system800is attempting to confirm that the medical system associated with the detected ultrasonic beacon corresponds to the medical system device with which the device is presently paired. In operation1210, pairing system800may determine whether the encoded information signal of the detected ultrasonic beacon transmission is decodable. Operation1202may be performed in any suitable way, including any way described herein.

If pairing system800determines that the encoded information signal is decodable, pairing system800decodes the encoded information signal in operation1212and then proceeds to operation1016, which may be performed as described above.

If, however, pairing system800determines that the encoded information signal is not decodable, processing proceeds to operation1214. In operation1214, pairing system800determines whether the device is in motion. Operation1214may be performed in any suitable way, including in any way described herein.

If pairing system800determines that the device is not in motion, processing may return to operation1002, which may be performed as described above to monitor for subsequent ultrasonic beacon transmissions. Additionally or alternatively, pairing system800may perform any other operations configured to improve reception and/or decoding of the encoded information signal, such as adjusting frequency filters or algorithms used to process encoded information signal.

If, however, pairing system800determines that the device is in motion, processing proceeds to operation1216. In operation1216, pairing system800performs a motion mitigation process. Operation1216may be performed in any suitable way and may be similar to operation1208described above. For example, operation1216may comprise providing a notification to the user indicating that confirmation of pairing cannot be performed due to motion and/or instructing the user to hold the device still for the confirmation check, providing alternate means (as described above) for confirming the paired state of the device, not attempting to confirm the paired state of the device while the device is in motion, implementing changes to transmission or reception protocols, and/or performing a Doppler correction of the corrupted information signal. In additional or alternative examples, operation1216may comprise transitioning the device to operate in a limited paired state, as described above.

In yet further examples, the motion mitigation process may include modifying one or more parameters to prevent unpairing while the device is in motion. For example, the motion mitigation process may comprise initializing the clock (e.g., setting the current time t=t0or to some other earlier time) and/or increasing the threshold time T.

In some examples, pairing system800may count a number of consecutive occurrences of an undecodable beacon (operation1202(N) and/or operation1210(N)) and/or a number of occurrences of motion detection and, in response, may perform an additional mitigation action. The additional mitigation action may include, for example, transitioning the device to operate in a new pairing state (e.g., an unpaired state, a limited paired state, etc.), requesting user input to indicate the appropriate pairing state, and/or any of the mitigation actions previously described.

Upon performing operation1216, processing returns to operation1002, which may be performed as described above to monitor for subsequent ultrasonic beacon transmissions.

FIG.13shows another illustrative method1300that accounts for device motion. Method1300is similar to method1000except that in method1300an operation1302has been added and operations1012and1020have been removed.

In operation1302, pairing system800determines whether the device is in motion. Operation1302may be performed in any suitable way, including any way described herein.

If pairing system800determines that the device is in motion, processing returns to operation1002to continue monitoring for ultrasonic beacon transmissions. Accordingly, pairing system800does not attempt to communicatively pair or confirm a paired state of the device while the device is in motion.

In an alternative configuration of method1300, processing proceeds to operation1006, as indicated by the dashed line, if pairing system800determines that the device is in motion. Thus, when the device is currently unpaired (operation1006(N)), pairing system800does not attempt to communicatively pair the device while the device is in motion.

On the other hand, when the device is currently paired (operation1006(Y)), processing proceeds to operation1018. In operation1018, pairing system800may set the device to operate in a limited paired state while the device is in motion. In this way, pairing system800maintains the device operating in a paired state based on detection of the pilot signal but prevents potentially undesired actions that may be taken by the user by setting the device to the limited paired state while the device is in motion.

Returning again to operation1302, if pairing system800determines that the device is not in motion, processing proceeds to operation1008, which may be performed as described above to determine whether the device is presently paired with a medical system. Pairing system800may then either proceed to communicatively pair the device with a medical system (operations1010and1018) or perform a confirmation check (operations1014and1016).

Certain foregoing embodiments have described establishing and/or managing a pairing state of a device with respect to a single medical system based on a single detected ultrasonic beacon. In other embodiments, pairing system800may be configured to pair or manage a paired state of a device with one or more medical systems based on detection of multiple ultrasonic beacons. For example, as described above and as shown inFIGS.5and6, medical facility202may include multiple beacon generators212within predefined area204and/or included in medical system206, and, as shown inFIG.7, medical facility202may include additional beacon generators712located outside of predefined area204(e.g., within predefined area704). Methods1000,1100, and1300may be used in such multi-beacon configurations.

In some examples, pairing system800is configured to pair or confirm a pairing state of a device with a medical system only if pairing system800determines that the device detects a set of multiple ultrasonic beacons associated with a particular medical system. For example, in operation1004of methods1000,1100, and/or1300, pairing system800may determine that the device detects multiple distinct pilot signals of multiple different ultrasonic beacon transmissions (e.g., ultrasonic beacon transmissions of different ultrasonic beacons). If the device is not in a paired state (operation1008(N)), or if the device is in a paired state and the pilot signals are detected after the threshold time T (operation1012(Y)), pairing system800may decode the encoded information signals of each ultrasonic beacon transmission to identify a medical system associated each of the detected ultrasonic beacon transmissions (operation1010). In operation1018, pairing system800may set the pairing state of the device or confirm the pairing state based on the information included in the decoded encoded information signals.

For example, pairing system800may pair or confirm a pairing state of the device with a medical system that is associated with two or more of the detected ultrasonic beacon transmissions. For instance, with reference toFIGS.5-7, pairing system800may communicatively pair or maintain a paired state of user device210with medical system206only if pairing system800determines that user device210detects any two or more of ultrasonic beacons214-1through214-3.

In other examples, pairing system800may pair or confirm a pairing state of the device with a medical system only if pairing system800determines that the device detects the set of all ultrasonic beacons associated with the medical system. For instance, with reference toFIGS.5-7, pairing system800may communicatively pair or maintain a paired state of user device210with medical system206only if pairing system800determines that user device210detects all ultrasonic beacons214(e.g., ultrasonic beacons214-1through214-3) associated with medical system206. If pairing system800determines that user device210does not detect all ultrasonic beacons214associated with medical system206, pairing system800does not communicatively pair user device210with medical system206(or pairs user device210in a limited paired state with medical system206) or determines that the confirmation check has failed and proceeds to operation1018(e.g., transitions to an unpaired state or a limited paired state).

In some examples, the set of ultrasonic beacons comprises all ultrasonic beacons included in components of the medical system. For instance, the set of ultrasonic beacons may include a unique component identifier (encoded in the information signal in each ultrasonic beacon transmission) for each component included in the medical system. In this way, pairing system800does not pair the device with the medical system unless pairing system800determines that the device has detected an ultrasonic beacon associated with each component of the medical system (e.g., an ultrasonic beacon included in manipulating system102, an ultrasonic beacon included in user control system104, and an ultrasonic beacon included in auxiliary system106). Pairing system800may determine whether a device detects a set of all ultrasonic beacons associated with a medical system in any suitable way. For example, pairing system800may refer to medical facility data to determine whether the device detects all ultrasonic beacons associated with a particular medical system.

In some examples, pairing system800may condition pairing or confirmation of a pairing state of a device with a medical system on a determination that the device does not detect any ultrasonic beacons that are not associated with the currently paired medical system. For instance, as shown with reference toFIG.7, pairing system800may communicatively pair or confirm pairing of user device210with medical system206only if pairing system800determines that user device210does not detect any ultrasonic beacons other than ultrasonic beacons214(e.g., any of ultrasonic beacons714-1through714-3). If pairing system800determines that user device210detects any ultrasonic beacon714, and even if user device210detects one or more (or all) ultrasonic beacons214, pairing system800does not communicatively pair user device210with medical system206(or pairs user device210in a limited paired state with medical system206) or determines that the confirmation check has failed and proceeds to operation1018(e.g., transitions to an unpaired state or a limited paired state).

In yet further examples, pairing system800may pair a device with a medical system in a limited paired state if pairing system800determines that the device detects ultrasonic beacons not associated with the currently paired medical system. For instance, as shown with reference toFIG.7, pairing system800may communicatively pair user device210with medical system206in a limited paired state if pairing system800determines that user device210detects ultrasonic beacons associated with medical system706(e.g., any of ultrasonic beacons714-1through714-3). If pairing system800determines that user device210detects any ultrasonic beacon714, pairing system800does not communicatively pair user device210with medical system206, even if user device210detects one or more (or all) ultrasonic beacons214.

In additional or alternative examples, in operation1018pairing system800may pair a device with a medical system that is associated with the most ultrasonic beacons detected by the device. For example, pairing system800may pair user device210with medical system206in response to determining that user device210detects three ultrasonic beacons (e.g., ultrasonic beacons214-1through214-3) associated with medical system206and detects only two ultrasonic beacons (e.g., ultrasonic beacons714-1and714-2) associated with medical system706.

In any of the examples described herein, pairing or confirming a pairing state of a device may also be based on a signal strength of the detected ultrasonic beacons. For example, pairing system800may pair or confirm a pairing of a device with a medical system only if the signal strengths of the ultrasonic beacons associated with the medical system exceed a predetermined threshold.

Referring again to operation1008, if the device is in a paired state or a limited paired state (operation1008(Y)) after detecting multiple pilot signals and the pilot signals are detected within the threshold time T (operation1012(N)), then pairing system800may maintain operation of the apparatus in the current paired state and return to operation1002to monitor for subsequent ultrasonic beacon transmissions. In some examples, pairing system800may maintain operation of the apparatus in the currently paired state only if the number of pilot signals detected in operation1004corresponds to (e.g., matches, or is equal to or greater than, or is within a certain number of) the number of ultrasonic beacons required for initially pairing the device with the medical system. For instance, as shown with reference toFIG.7, if user device210is paired with medical system206based on detection of ultrasonic beacons214-1to214-3, user device210may continue operating in the paired state with medical system206if user device210detects at least three pilot signals, or if user device210detects only three pilot signals.

In some examples, if the device detects fewer than a necessary number of pilot signals (e.g., operation1004(N)) while operating in a paired state (operation1006(Y)), pairing system800may set, in operation1018, a new pairing state based on the number of pilot signals detected (e.g., transition to a limited paired state if some but not all pilot signals are detected).

In the methods and examples described above, pairing system800may establish and manage a pairing state of a device with respect to a single medical system. In some examples, pairing system800may establish and manage a pairing state of a device with respect to multiple medical systems simultaneously. For instance, a technician may move between multiple operating rooms and an equipment room while multiple medical procedures are being performed concurrently. Accordingly, the device may detect ultrasonic beacon transmissions associated with multiple different medical systems. Pairing system800may be configured to use the current pairing state and any other suitable inputs to determine a proper pairing state of the device even when multiple different ultrasonic beacons are detected.

For example, as shown inFIG.11pairing system800may rely on user input (operation1102) to determine which medical system or systems to pair with the device. Additionally or alternatively, pairing system800may set a pairing state based on the signal strength of the detected ultrasonic beacons. For instance, as shown inFIG.7, a signal strength of ultrasonic beacons214-1to214-3detected by user device210may be stronger than a signal strength of ultrasonic beacons712-1to712-3. Accordingly, pairing system800may pair user device210with medical system206and not with medical system706. Alternatively, pairing system800may pair user device210in a paired state with medical system206and in a limited paired state with medical system706.

In some examples, pairing system800may default to maintain the currently paired state rather than transition to a new paired state. For instance, as shown inFIG.7, user device210may be in a paired state with medical system206when medical system706comes online and ultrasonic beacons714are first transmitted. If user device210now also detects ultrasonic beacons714, pairing system800may maintain user device in a paired state with medical system206. Of course, other default settings may be set and may be changed by the user. For example, pairing system800may default to request user input and/or transition the user device to operate in a limited paired state with medical system206and/or medical system706.

In some examples, pairing system800may rely on unprompted user input to determine which medical system or systems to pair with the device. For instance, as shown inFIG.7, user device210may be operating in a paired state with medical system206and may also detect ultrasonic beacons714. If the user attempts to access a functional feature associated with medical system206, pairing system800may infer that user208and user device210are located in proximity to medical system206and thus may continue operation of user device210in a paired state with medical system206. As another example, if the user attempts to access a functional feature associated with medical system206while user device210detects ultrasonic beacons714, pairing system800may request user input specifying a desired pairing state of user device with respect to medical system206and medical system706.

In some alternative examples of the methods described above, an ultrasonic beacon may not be associated with a medical system. For example, the ultrasonic beacon may be associated with a particular location within the medical facility that is not associated with a particular medical system, such as a hallway, a break room, an equipment room, a cafeteria, an office, or a lab room. In these examples, pairing system800may use the decoded information signal of such ultrasonic beacon transmission as another input to determine an appropriate pairing state. For example, as shown inFIG.2, user device210may be paired with medical system206while user device210is located within predefined area204. If user208leaves predefined area204and carries user device210into a break room, user device210may detect an ultrasonic beacon associated with the break room but no longer detect ultrasonic beacon214associated with medical system206. Accordingly, pairing system800may set the pairing state (operation1018) based on the determination that user208is located in the break room. For example, pairing system800may transition user device208to operate in a limited paired state with medical system206so that user208may continue to receive and view information associated with the medical procedure occurring in predefined area204. Alternatively, pairing system800may unpair user device208from medical system206or may maintain the paired state. In yet further examples, pairing system800may prompt the user to provide user input indicating the desired pairing state and may set the pairing state based on the user input.

The foregoing configurations and embodiments have focused on ultrasonic beacon-based systems. However, the present disclosure is not limited to these configurations and embodiments, as various modifications and changes may be made thereto without departing from the scope of the inventive principles described herein. For example, the systems and methods described herein may be based additionally or alternatively on any other suitable beacon or other push notifications, such as electromagnetic signals (e.g., infrared, radio-frequency identification (RFD), etc.), wireless data signals (e.g., Bluetooth, near-field communication, Wi-Fi, etc.), offline data transfer, and the like. Additionally or alternatively, the systems and methods described herein may be used in facilities and environments other than a medical facility, such as recreational facilities (e.g., amusement parks, sports stadiums, parks, etc.), educational facilities (e.g., schools, universities, etc.), shopping centers, business facilities (e.g., offices, research parks, etc.), laboratories, manufacturing facilities, transportation facilities (e.g., airports, train stations, etc.), and the like.

In some examples, a non-transitory computer-readable medium storing computer-readable instructions may be provided in accordance with the principles described herein. The instructions, when executed by a processor of a computing device, may direct the processor and/or computing device to perform one or more operations, including one or more of the operations described herein. Such instructions may be stored and/or transmitted using any of a variety of known computer-readable media.

A non-transitory computer-readable medium as referred to herein may include any non-transitory storage medium that participates in providing data (e.g., instructions) that may be read and/or executed by a computing device (e.g., by a processor of a computing device). For example, a non-transitory computer-readable medium may include, but is not limited to, any combination of non-volatile storage media and/or volatile storage media. Illustrative non-volatile storage media include, but are not limited to, read-only memory, flash memory, a solid-state drive, a magnetic storage device (e.g. a hard disk, a floppy disk, magnetic tape, etc.), ferroelectric random-access memory (“RAM”), and an optical disc (e.g., a compact disc, a digital video disc, a Blu-ray disc, etc.). Illustrative volatile storage media include, but are not limited to, RAM (e.g., dynamic RAM).

FIG.14shows an illustrative computing device1400that may be specifically configured to perform one or more of the processes described herein. Any of the systems, units, computing devices, and/or other components described herein may be implemented by computing device1400.

As shown inFIG.14, computing device1400may include a communication interface1402, a processor1404, a storage device1406, and an input/output (I/O″) module1408communicatively connected one to another via a communication infrastructure1410, While an illustrative computing device1400is shown inFIG.14, the components illustrated inFIG.14are not intended to be limiting. Additional or alternative components may be used in other embodiments. Components of computing device1400shown inFIG.14will now be described in additional detail.

Communication interface1402may be configured to communicate with one or more computing devices. Examples of communication interface1402include, without limitation, a wired network interface (such as a network interface card), a wireless network interface (such as a wireless network interface card), a modem, an audio/video connection, and any other suitable interface.

Processor1404generally represents any type or form of processing unit capable of processing data and/or interpreting, executing, and/or directing execution of one or more of the instructions, processes, and/or operations described herein. Processor1404may perform operations by executing computer-executable instructions1412(e.g., an application, software, code, and/or other executable data instance) stored in storage device1406.

Storage device1406may include one or more data storage media, devices, or configurations and may employ any type, form, and combination of data storage media and/or device. For example, storage device1406may include, but is not limited to, any combination of the non-volatile media and/or volatile media described herein. Electronic data, including data described herein, may be temporarily and/or permanently stored in storage device1406. For example, data representative of computer-executable instructions1412configured to direct processor1404to perform any of the operations described herein may be stored within storage device1406. In some examples, data may be arranged in one or more databases residing within storage device1406.