US20190089533A1 - Systems and methods for time-based one-time password management for a medical device - Google Patents
Systems and methods for time-based one-time password management for a medical device Download PDFInfo
- Publication number
- US20190089533A1 US20190089533A1 US16/134,213 US201816134213A US2019089533A1 US 20190089533 A1 US20190089533 A1 US 20190089533A1 US 201816134213 A US201816134213 A US 201816134213A US 2019089533 A1 US2019089533 A1 US 2019089533A1
- Authority
- US
- United States
- Prior art keywords
- server
- data module
- time
- data
- remote link
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 116
- 238000012544 monitoring process Methods 0.000 claims abstract description 13
- 238000012423 maintenance Methods 0.000 claims description 27
- 230000004044 response Effects 0.000 claims description 12
- 230000001360 synchronised effect Effects 0.000 claims description 10
- 238000004519 manufacturing process Methods 0.000 claims description 6
- 238000009826 distribution Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 description 92
- 238000003860 storage Methods 0.000 description 39
- 238000012015 optical character recognition Methods 0.000 description 31
- 230000003287 optical effect Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 239000008280 blood Substances 0.000 description 3
- 210000004369 blood Anatomy 0.000 description 3
- 230000000873 masking effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 239000003086 colorant Substances 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
- H04L63/0846—Network architectures or network communication protocols for network security for authentication of entities using passwords using time-dependent-passwords, e.g. periodically changing passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0872—Generation of secret information including derivation or calculation of cryptographic keys or passwords using geo-location information, e.g. location data, time, relative position or proximity to other entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0877—Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
- H04L9/3228—One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/88—Medical equipments
Definitions
- the present disclosure relates to systems and methods for implementing a time-based password algorithm that allows users to manage medical devices securely.
- Medical devices monitoring a patient are often connected to a network for remote access. Many of these medical devices require a password in order to change the management settings of the medical device. Often, these passwords are static and require manual change after a certain amount of time has passed.
- the present disclosure relates to a data monitoring system comprising a server communicatively coupled to a client device and a data module via a data network.
- the server is configured to store a private key of a public-private key pair associated with the data module, receive a request from the client device for authenticated access to the data module, and generate an authentication key based at least on the private key and a time.
- the authentication key can be used to allow authenticated access to the data module.
- the client device is configured to generate the request for authenticated access to the data module and transmit the request to the server.
- the data module includes a user interface configured to display data and receive a user input.
- the data module is configured to store the private key of the public-private key pair associated with the data module, receive data from a medical device, generate the authentication key based at least on the private key and the time, and, in response to determining that the authentication key generated by the data module and the authentication key generated by the server match, grant access to the data module.
- the data module is configured to, in response to determining that the authentication key generated by the data module and the authentication key generated by the server do not match, display a message indicating an authentication failure.
- the data module is configured to grant authenticated access using a challenge-response protocol.
- the data module may transmit the data to the client device upon successful authentication.
- the time is determined independently by the data module and the server. In other implementations, a time determined by the data module is synchronized with a time determined by the server.
- the time is synchronized by rounding the time determined by the data module to a time interval and rounding the time determined by the server to the time interval such that the determined times are the same.
- the time interval is adjustable to set a floor or ceiling of acceptable synchronization precision.
- the time includes at least one of TAI, UTC, and UNIX time. In some implementations, the time is current time.
- the request for authenticated access to the data module includes additional information for instructing the data module.
- the additional information includes a request for access to the data module.
- the additional information includes the time, the time being determined by the server.
- the additional information includes a request for the data module to enter a maintenance mode.
- the authentication key is a one-time authentication key. In certain implementations, the authentication key expires after a period of time.
- the private key is loaded into the data module during at least one of manufacturing or distribution of the data module. According to some implementations, the private key is further stored by the server after the private key is loaded into the data module.
- a second aspect of the present disclosure relates to a method of securely monitoring a data module receiving data from a medical device.
- the method comprises storing, at a server, a private key of a public-private key pair associated with a data module. Further, the method comprises receiving, at the server, a request from a client device for access to the data module. The method further comprises generating, at the server, an authentication key based at least on the private key and a time. The authentication key can be used to allow authenticated access to the data module. Further, the method comprises receiving, at the server, an indication from the data module that the authentication key generated at the server was entered.
- the method also comprises, in response to determining that the authentication key generated by the server and an authentication key generated by the data module matches, granting authenticated access to the data module.
- the authentication key generated by the data module is generated based at least on the private key and the time.
- FIG. 1 shows a schematic representation of a remote link architecture, configured according to one or more aspects of the present disclosure
- FIG. 2 is a flow diagram of method steps for transferring data from a medical device to a server, according to an aspect of the present disclosure
- FIG. 3 is a flow diagram of method steps for transferring data from a medical device to a server, according to an aspect of the present disclosure
- FIG. 4 shows a schematic representation of a remote link architecture, configured according to one or more aspects of the present disclosure
- FIG. 5 is a flow diagram of method steps for initializing a remote link, according to an aspect of the present disclosure
- FIG. 6 shows a schematic representation of a remote link architecture, configured according to one or more aspects of the present disclosure
- FIG. 7 shows a schematic representation of a remote link architecture, configured according to one or more aspects of the present disclosure
- FIG. 8 shows a schematic representation of a medical device, configured according to one or more aspects of the present disclosure
- FIG. 9 shows an exemplary medical device controller, configured according to one or more aspects of the present disclosure.
- FIG. 10 shows an exemplary image displayed on a medical device controller screen, configured according to one or more aspects of the present disclosure
- FIG. 11 shows the exemplary image of FIG. 10 after removing select portions of the image, configured according to one or more aspects of the present disclosure
- FIG. 12 shows an exemplary image of the remaining portions of the image of FIG. 11 , configured according to one or more aspects of the present disclosure
- FIGS. 13 and 14 are flow diagrams of method steps for extracting data from an image and determining the validity of the extracted data, according to an aspect of the present disclosure.
- FIG. 15 shows a schematic representation of a remote link architecture, configured according to one or more aspects of the present disclosure
- FIG. 16 is a flow diagram of method steps for authenticating a connection between a remote link and a server, according to an aspect of the present disclosure
- FIG. 17 is a flow diagram of method steps for authenticating a connection between a remote link and a server, according to an aspect of the present disclosure
- FIG. 18 is a flow diagram of method steps for authenticating a connection between a remote link and a server, according to an aspect of the present disclosure.
- FIG. 19 is a flow diagram of method steps for authenticating a connection between a remote link and a server, according to an aspect of the present disclosure.
- FIG. 1 is a schematic representation of a remote link architecture 100 .
- Remote link architecture 100 includes remote link 102 , client device 104 , remote link router (RLR) 150 , WEB load balancer 108 , video load balancer 110 , WEB server 114 , video server 116 , random-access memory (RAM) data type storage 118 , document data type storage 120 , and WEB socket server 122 .
- RLR remote link router
- RAM random-access memory
- Remote link 102 may be embedded in a medical device that is monitoring a patient at a hospital, clinic, the patient's house, or another location. Remote link 102 captures images and deliver video streams from the medical device display and transmit the images and video to the remote link router 150 .
- Remote link architecture 100 may comprise multiple remote links 102 .
- Remote link 102 interacts with the rest of remote link architecture 100 through RLR 150 .
- RLR 150 includes an RLR load balancer 106 and RLR server 112 .
- RLR 150 may comprise multiple RLR servers 112 .
- RLR server 112 may include a custom protocol used to communicate with one or more remote links 102 .
- RLR load balancer 106 manages the load to one or more RLR servers 112 .
- RLR load balancer 106 may generate a priority for multiple remote links 102 .
- the priority may be based on preferences obtained from the client device 104 . In other aspects, the priority is based on preferences obtained from the remote links 102 . In another aspect, the priority is based on preferences obtained from the RLR server 112 .
- Client device 104 may be a personal computer, a tablet, or a mobile device with an internet connection.
- a medical professional using client device 104 may be interested in obtaining information from one or multiple remote links 102 . Images captured by a remote link 102 may be accessed by the client device 104 .
- the client device can display the video stream.
- Remote link architecture may comprise multiple client devices 104 . A single client device 104 may access multiple remote links 102 , as long as the client device has access to the remote links 102 .
- WEB load balancer 108 controls the load to one or more WEB servers 114 .
- WEB server 114 may include a mechanism for clients to view information, data, and video streams from one or more remote links 102 .
- WEB load balancer 108 may generate a priority for multiple client devices 104 . The priority may be based on preferences obtained from the client devices 104 . In other aspects, the priority is based on preferences obtained from the remote links 102 . In another aspect, the priority is based on preferences obtained from the WEB server 114 .
- WEB socket server 122 may push messages to groups of client devices 104 . Upon client device 104 connection to the WEB server 114 , the client device 104 will register to the WEB socket server 122 for messages for either one or multiple remote links 102 . The WEB socket server 122 will receive messages that will be applicable to one or more remote links 102 . This message with associated data will be broadcasted to all connected client devices 104 for updates from those remote links 102 .
- Video load balancer 110 controls the load to one or more video servers 116 .
- Video server 116 may be the receiver and sender of video streams from one or more remote links 102 .
- Video load balancer 110 may generate a priority for multiple client devices 104 . The priority may be based on preferences obtained from the client devices 104 . In other aspects, the priority is based on preferences obtained from the remote links 102 . In another aspect, the priority is based on preferences obtained from the video server 116 .
- RAM data type storage 118 may be volatile storage that can be accessed quickly.
- RAM data type storage 118 may comprise dynamic random-access memory (DRAM), static random-access memory (SRAM), or another type of high-speed volatile memory.
- Images captured by remote link 102 may be stored in RAM data type storage 118 before being transmitted to client device 104 .
- RAM data type storage 118 may also store video streams captured by remote link 102 .
- Document data type storage 120 may be non-volatile storage that can maintain data for long periods of time. Document data type storage 120 may be hard disks, optical disks, solid-state drives (SSDs), or another type of non-volatile memory.
- Process 200 begins by connecting a remote link 102 to the internet at step 202 .
- Step 202 may include a process to initialize remote link 102 as described below by process 500 in FIG. 5 .
- Process 200 continues by sending, from the remote link 102 , a first signal to an RLR 150 that indicates that the remote link 102 is connected to the internet as step 204 .
- the first signal may be sent directly to the RLR load balancer 106 .
- the first signal may be sent directly to the RLR server 112 .
- Process 200 continues by sending, from the RLR 150 , a command to the remote link 102 to start capturing an image at step 206 .
- remote link 102 uses image capture unit 626 , described below, to capture the image from a medical device.
- Process 200 continues by transferring the image to the RLR 150 from the remote link 102 at step 208 .
- RLR load balancer manages the transfer of the image from the remote link 102 to the RLR server 112 .
- process 200 continues to step 210 .
- Process 200 continues by broadcasting, from the RLR 150 , a second signal indicating that the remote link 102 has captured the image at step 210 .
- RLR 150 broadcasts the second signal such that the WEB servers 114 are notified that RLR 150 has the image captured by remote link 102 .
- Process 200 continues by receiving, at a WEB server 114 , the broadcasted second signal from the remote link 102 at step 212 .
- WEB server 114 receives the broadcasted signal from RLR 150 so that the WEB server 114 is notified that RLR 150 has the image captured by remote link 102 .
- Process 200 finishes by storing the image at the WEB server 114 at step 214 .
- the image may be stored in RAM data type storage 118 .
- RLR 150 transfers the image to WEB server 114 , after which WEB server 114 transfers the image to RAM data type storage 118 .
- RLR 150 may transfer the image directly to RAM data type storage 118 .
- Process 300 begins by sending to a WEB server 114 , from a client device 104 , a request to view a video stream from a remote link 102 at step 302 .
- the request may be sent through WEB load balancer 108 before being transmitted to the WEB server 114 .
- the request may include information identifying the remote link 102 that is to be accessed.
- Process 300 continues by broadcasting the request from the WEB server 114 at step 304 .
- the WEB server 114 notifies the RLRs 150 that a client device 104 has requested to view a video stream from a remote link 102 by broadcasting the request to all of the RLRs 150 .
- Process 300 continues by receiving the request at an RLR 150 at step 306 .
- RLR server 112 receives the request from the WEB server 114 .
- RLR 150 receives the request after determining that the request identifies a remote link 102 that is communicatively coupled to the RLR 150 .
- Process 300 continues by sending to the remote link 102 , from the RLR 150 , a command to transmit the video stream to a video server 116 at step 308 .
- RLR server 112 transmits a signal through RLR load balancer 106 to remote link 102 that initiates a process to transmit a video stream from the remote link 102 to the video server 116 .
- Process 300 continues by transmitting the video stream to the video server 116 from the remote link 102 at step 310 .
- the remote link 102 transmits the video stream to the video load balancer 110 which determines which video server 116 to send the video stream.
- the video load balancer 110 may make the determination based on the load of the video servers 116 and a priority of the remote link 102 and client device 104 .
- Process 300 continues by receiving the video stream at the video server 116 at step 312 .
- the video server 116 receives the video stream.
- Process 300 finishes by transmitting the video stream to the client device 104 from the video server 116 .
- the video server 116 initiates transfer of the video stream to the client device 104 through video load balancer 110 .
- FIG. 4 shows a schematic representation of a remote link architecture 400 .
- Remote link architecture 400 includes remote link 402 , client device 404 , RLR 450 , document data type storage 420 , HTTP service 430 , and cloud 460 .
- Remote link 402 is similar to remote link 102 and may be embedded in a medical device that is monitoring a patient at a hospital, clinic, the patient's house, or another location. Remote link 402 may capture images and deliver video streams from the medical device display and transmit the images and video to the remote link router 450 .
- Remote link architecture 400 may comprise multiple remote links 402 . Remote link 402 interacts with the rest of remote link architecture 400 through RLR 450 .
- RLR 450 is similar to RLR 150 described above.
- Client device 404 is similar to client device 104 and may be a personal computer, a tablet, or a mobile device with an internet connection.
- a medical professional using client device 404 may be interested in obtaining information from one or multiple remote links 402 . Images captured by a remote link 402 may be accessed by the client device 404 .
- the client device can display the video stream.
- Remote link architecture may comprise multiple client devices 404 .
- a single client device 404 may access multiple remote links 402 , as long as the client device has access to the remote links 402 .
- Client device 404 may communicate with RLR 450 through cloud 460 .
- Cloud 460 represents a network of internet-based devices and connections such as servers, storage, and applications.
- Document data type storage 420 is similar to document data type storage 120 and may be non-volatile storage that can maintain data for long periods of time.
- Document data type storage 420 may be hard disks, optical disks, solid-state drives (SSDs), or another type of non-volatile memory.
- Document data type storage 420 may store Wi-Fi credentials or other initialization information obtained from one or more client devices 404 or from RLR 450 .
- Document data type storage 420 may transmit the Wi-Fi credentials or other initialization information to RLR 450 or directly to one or more remote links 402 .
- HTTP service 430 may be a framework that provides the ability for the RLR 450 to make HTTP requests.
- RLR 450 may use HTTP service 430 to obtain Wi-Fi credentials or other initialization information and store the information in document data type storage 420 .
- Process 500 begins by connecting a remote link 402 to an LTE network at step 502 .
- the remote link 402 may connect to a 3G or 4G network.
- Process 500 continues by transmitting, from the remote link 402 , a first signal to an RLR 450 that indicates that the remote link 402 is connected to the LTE network at step 504 .
- a first signal For example, once the remote link 402 is online, it transmits a signal to the RLR 450 in order to notify the RLR 450 that it is ready to transmit or receive data.
- the RLR 450 is also connected to the LTE network.
- Process 500 continues by receiving, at the RLR 450 , Wi-Fi credentials from a client device 404 at step 506 .
- a user inputs the Wi-Fi credentials onto a client device 404 which then transmits the Wi-Fi credentials to the RLR 450 .
- RLR 450 has the Wi-Fi credentials stored.
- Process 500 continues by transmitting, from the RLR 450 , the Wi-Fi credentials to the remote link 402 at step 508 .
- the RLR 450 transmits the Wi-Fi credentials to the remote link 402 using the LTE network.
- Process 500 continues by connecting the remote link 402 to a Wi-Fi network corresponding to the Wi-Fi credentials at step 510 .
- remote link 402 searches for the Wi-Fi network identified by the Wi-Fi credentials and connect to it.
- Process 500 finishes by transmitting, from the remote link 402 , a second signal to the RLR 450 that indicates that the remote link 402 is connected to the Wi-Fi network. For example, in order to confirm that the remote link 402 has successfully connected to the Wi-Fi network, remote link 402 sends a signal to the RLR 450 using the Wi-Fi network that indicates that it has successfully connected. In another aspect, remote link 402 sends the signal to the RLR 450 using the LTE network if the connection is faster than the Wi-Fi network. In one aspect, if the remote link 402 cannot connect to the Wi-Fi network, it sends a signal to the RLR 450 using the LTE network that indicates that the connection was not successful.
- FIG. 6 shows a schematic representation of a remote link architecture 600 .
- Remote link architecture 600 includes medical device 624 , remote link 102 , and media server 116 .
- Medical device 624 may include a sensor 626 .
- Remote link 102 may include an image capture unit 628 .
- Media server 116 may include an optical character recognition unit 630 and operational data unit 632 .
- Medical device 624 may be a medical device that is monitoring a patient at a hospital, clinic, the patient's house, or another location. Medical device 624 includes a sensor 626 that may be measuring and recording health signals from a patient.
- the sensor 626 may be a pressure sensor, temperature sensor, flow rate sensor, voltage sensor, current sensor, optical sensor, or audio sensor.
- Image capture unit 628 may be an application that enables remote link 102 to capture images from sensor 626 .
- image capture unit 628 captures an image of the display of medical device 624 .
- the image of the display of medical device 624 may include data from sensor 626 represented alphanumerically or graphically, in a waveform plot.
- Image capture unit 628 may convert analog data captured from sensor 626 into digital data that may be used by optical character recognition unit 630 .
- image capture unit 628 converts an analog signal from a video graphics array (VGA) connection from sensor 626 .
- Optical character recognition (OCR) may be used to convert images of text or shapes into digital data, as further described in relation to FIGS. 10-14 .
- OCR equivalents, and/or digital signal processing (DSP) may be used to extract data from images.
- OCR unit 630 may be an application that electronically converts images of text or shapes into digital data. For example, OCR unit 630 analyzes the image captured by image capture unit 628 in remote link 102 to extract data from the data embedded in the image. The OCR unit 630 may be able to extract data from a waveform.
- media server 116 may include a DSP unit 634 .
- DSP unit 634 may be an application that converts images into digital data. For example, DSP unit 634 converts the image captured by image capture unit 628 in remote link 102 to digital data. Once in digital form, media server 116 may identify and/or filter the operational and/or medical data that is embedded in the image.
- DSP unit 634 may be used to extract data from a waveform included in the image. For example, OCR unit 630 extracts a period from a waveform portion of an image and DSP unit 634 uses the period and boundaries of the waveform to extract operational and/or medical data.
- DSP unit 634 associates the pixels in the waveform portion with a unit of time.
- OCR unit 630 is used to extract a measurement unit from the waveform portion of the image and DSP unit 634 uses the period and the measurement unit to extract operational and/or medical data. For example, OCR unit 630 determines that the waveform portion of the image displays placement signal and/or motor current over a period of ten seconds, and DSP unit 634 associates each pixel in the waveform portion with a corresponding placement signal and/or motor current, and a unit of time equal to the period divided by the number of pixels in the waveform portion of the image.
- Operational and/or medical data unit 632 may be an application that databases and organizes the data extracted from OCR unit 630 and/or DSP unit 634 .
- operational data unit 632 identifies the type of data extracted by OCR unit 630 and/or DSP unit 634 , and categorize the data into operational and/or medical conditions.
- Operational and/or medical conditions may include pressure, flow rate, pump speed, temperature, voltage, current, and biometric conditions.
- Remote link architecture 600 can be implemented with process 200 , process 300 , and process 500 to control the bandwidth, quality, and type of video streaming from remote link devices 102 .
- Remote link architecture 600 may be scaled to an indefinite amount of remote link devices 102 and client devices 104 .
- OCR unit 630 and operational data unit 632 may be included in another component of remote link architecture 100 , remote link architecture 400 , remote link architecture 600 , or remote link architecture 700 (described below).
- FIG. 7 is a schematic representation of a remote link architecture 700 .
- Remote link architecture 700 includes remote link 102 , client device 104 , RLR 150 , media server 116 , WEB socket server 122 , WEB server 114 , cloud 460 , RAM data type storage 118 , document data type storage 120 , and message service 770 .
- Remote link 102 may be embedded in a medical device that is monitoring a patient at a hospital, clinic, the patient's house, or another location. Remote link 102 may capture images and deliver video streams from the medical device display and transmit the images and video to the remote link router 150 .
- Remote link architecture 100 may comprise multiple remote links 102 . Remote link 102 interacts with the rest of remote link architecture 100 through RLR 150 .
- Client device 104 may be a personal computer, a tablet, or a mobile device with an internet connection.
- a medical professional using client device 104 may be interested in obtaining information from one or multiple remote links 102 . Images captured by a remote link 102 may be accessed by the client device 104 .
- the client device can display the video stream.
- Remote link architecture may comprise multiple client devices 104 . A single client device 104 may access multiple remote links 102 , as long as the client device has access to the remote links 102 .
- WEB server 114 may include a mechanism for clients to view information, data, and video streams from one or more remote links 102 .
- WEB socket server 122 may push messages to groups of client devices 104 .
- the client device 104 Upon client device 104 connection to the WEB server 114 , the client device 104 will register to the WEB socket server 122 for messages for either one or multiple remote links 102 .
- the WEB socket server 122 will receive messages that will be applicable to one or more remote links 102 . This message with associated data will be broadcasted to all connected client devices 104 for updates from those remote links 102 .
- Message service 770 may manage the transfer of messages between the different components of remote link architecture 700 through cloud 460 .
- Cloud 460 represents a network of internet-based devices and connections such as servers, storage, and applications.
- Media server 116 may be the receiver and sender of video streams from one or more remote links 102 .
- Media server 116 may be similar to video server 116 described above.
- Media server 116 may also be the receiver and sender of images captured from one or more remote links 102 .
- RAM data type storage 118 may be volatile storage that can be accessed quickly.
- RAM data type storage 118 may comprise dynamic random-access memory (DRAM), static random-access memory (SRAM), or another type of high-speed volatile memory.
- Images captured by remote link 102 may be stored in RAM data type storage 118 before being transmitted to client device 104 .
- RAM data type storage 118 may also store video streams captured by remote link 102 .
- Document data type storage 120 may be non-volatile storage that can maintain data for long periods of time. Document data type storage 120 may be hard disks, optical disks, solid-state drives (SSDs), or another type of non-volatile memory.
- FIG. 8 shows an illustrative medical device such as an intravascular blood pump 800 according to certain implementations.
- the pump 800 comprises a pump handle 810 , a pump head 830 , a catheter 820 connecting the pump handle 810 to the pump head 830 , and a connecting hub 860 .
- the catheter 820 is tubular and has a substantially uniform outer diameter 850 .
- the catheter 820 enables the pump head 830 and the pump handle 810 to be in electro-mechanical communication.
- the pump handle 810 is in communication with control circuitry which allows the control of the pump head 830 .
- the pump head 830 contains electro-mechanical components that enable the device to perform various tasks within the body of a patient, such as pump blood from a location within the body.
- the pump head 830 has a diameter 840 that is larger than the diameter 850 of the catheter 820 .
- An example of such a percutaneous pump is the Impella 2.5® system (Abiomed, Inc., Danvers, Mass.) which includes the pump and an Automatic Impella Controller (AIC).
- FIG. 9 shows an exemplary medical device controller 900 , such as the AIC, configured according to one or more aspects of the present disclosure.
- the medical device controller 900 provides an interface for monitoring and controlling the functions of pump 800 .
- Medical device controller 900 may include display screen 902 that may display images from a video stream where the images illustrate data associated with a medical device such as an intravascular blood pump 800 over a period of time.
- display screen 902 displays real-time operating and/or medical data associated with the pump 800 .
- FIG. 10 shows an exemplary image 1000 displayed on, for example, the display screen 902 , configured according to one or more aspects of the present disclosure.
- the image 1000 may be captured by an intermediate device or data module such as remote link 102 via a network and transmitted to another device such as, for example, media server 116 .
- Image 1000 may include waveforms 1002 .
- Waveforms 1002 illustrate medical and/or operational data corresponding to the operation of pump 800 . Examples of medical data illustrated by waveforms 1002 include placement signal and motor current.
- the waveforms 1002 such as the motor current waveform may provide a history, representation, and/or illustration of motor current over a period time (e.g., 10 seconds).
- the image 1000 includes motor current data (and other data) associated with pump 800 over a 10 second period of time.
- a data module 102 continuously monitors a video stream output from the device controller 900 , but only periodically capture an image such as image 1000 . Then the data module 102 transmits the image 1000 to another device, such as server 116 , which converts the illustrated waveforms 1002 to medical and/or operation data using, for example, OCR. If, for example, the waveforms 1002 illustrate medical data over a 10 second period, the data module 102 may capture successive images 1000 every 10 second (at 10 second intervals) to ensure that there are no gaps in the data provided to server 116 .
- Processes 1300 and 1400 describe exemplary methods of extracting data from an image and determining the validity of the extracted data, respectively.
- server 116 masks certain portions of image 1000 before extracting the data using OCR unit 630 or an equivalent.
- FIG. 11 shows an exemplary image 1100 , configured according to one or more aspects of the present disclosure.
- Image 1100 is a masked version of image 1000 that has been stripped of certain portions of image 1000 . For example, all portions of image 1000 are stripped except alarm and serial number portion 1102 , performance level portion 1104 , and flow level portion 1106 .
- server 116 After generating image 1100 , server 116 performs image processing to clarify and enlarge alarm and serial number portion 1102 , performance level portion 1104 , and flow rate portion 1106 .
- FIG. 12 shows an exemplary image 1200 , configured according to one or more aspects of the present disclosure.
- Image 1200 is a processed version of image 1100 in order to facilitate the extracting of data using OCR unit 630 .
- alarm and serial number portion 1102 may be processed into serial number portion 1202 and alarm portion 1204 .
- Serial number portion 1202 includes a certain number of digits that identify the medical device 624 that is currently being monitored and may be enlarged to facilitate OCR.
- serial number portion 1202 includes six digits.
- Alarm portion 1204 may indicate the type of alarm that the medical device 624 may be experiencing.
- alarm portion 1204 includes pixels of a color that indicate a severity of the alarm the medical device 624 may be experiencing.
- performance level portion 1206 indicates the performance level of the pump 800 and includes three characters. Examples of the characters in the performance level portion 1206 may include “OFF” “P-0” “P-1”, “P-2” “P-3” “P-4” “P-5” “P-6” “P-7” “P-8”, and “P-9”. Performance level portion 1206 may be an enlarged version of performance level portion 1104 . In another aspect, flow rate portion 1106 may be processed into present flow rate portion 1208 , max flow rate portion 1210 , and min flow rate portion 1212 . Present flow rate portion 1208 indicates the present flow rate of pump 800 in units of liters per minute.
- max flow rate portion 1210 and min flow rate portion 1212 indicate the range of the flow rate of the pump 800 , respectively, and may be enlarged to facilitate OCR.
- Present flow rate portion 1208 , max flow rate portion 1210 , and min flow rate portion 1212 includes three characters that range from “0.0” to “9.9”.
- Process 1300 begins by receiving a first image illustrating data from a medical device 624 at step 1302 .
- remote link 102 captures image 1000 using image capture unit 628 and server 116 receives image 1000 from remote link 102 .
- Process 1300 continues by masking first portions of the first image at step 1304 .
- server 116 uses an image mask to occlude portions of image 1000 that will not be sent to OCR unit 630 for data extraction.
- Masking select portions of an image allows for improved efficiency of image processing because only the select portions of the image that are not masked will be sent to OCR unit 630 or DSP unit 634 .
- By masking select portions of the image less data is transmitted between server 116 , OCR unit 630 , and DSP unit 634 , and OCR unit 630 and DSP unit 634 require less processing to extract data from the image.
- server 116 may generate image 1100 by using the image mask to strip image 1000 of certain portions of image 1000 .
- server 116 generates image 1100 by using the image mask to strip image 1000 of all portions except alarm and serial number portion 1102 , performance level portion 1104 , and flow level portion 1106 .
- server 116 may select a different mask corresponding to features of image 1000 .
- server 116 selects a different mask based on the size of image 1000 or the GUI version corresponding to image 1000 .
- server 116 selects a mask based on a software version of the remote link 102 .
- server 116 may select a mask based on the type of display screen 902 being used.
- server 116 determines that the first mask used is not the appropriate mask for image 1000 and select a different mask based on the image currently being displayed on display screen 902 .
- server 116 may wait to mask portions of image 1000 until the appropriate image is being displayed on display screen 902 .
- server 116 may select a mask based on the amount of data to be extracted from image 1000 .
- Process 1300 continues by generating a second image with the remaining portions of the first image at step 1306 .
- server 116 generates image 1200 by performing image processing to clarify and enlarge alarm and serial number portion 1102 , performance level portion 1104 , and flow rate portion 1106 .
- server 116 may generate serial number portion 1202 and alarm portion 1204 from serial number portion 1102 , performance level portion 1206 from performance level portion 1104 , and present flow rate portion 1208 , max flow rate portion 1210 , and min flow rate portion 1212 from flow rate portion 1106 .
- Process 1300 finishes by extracting, using optical character recognition, data from the second image at step 1308 .
- the serial number of medical device 624 , the type of alarm currently being indicated, the performance level of the pump 800 , and the flow rate are extracted from image 1200 using OCR unit 630 .
- OCR unit 630 may select a pixel from the second image to determine an alarm severity from alarm portion 1204 .
- OCR unit 630 determines the color of the pixel and determine the alarm severity based on the color of the pixel.
- OCR unit 630 may select two different pixels from the second image to determine the alarm severity from alarm portion 1204 .
- storage 120 stores a database of alarm types and alarm severity levels and corresponding alarm color.
- Server 116 may access the database stored in storage 120 and determine the alarm type and severity level associated with the color of the pixel or pixels from alarm portion 1204 .
- OCR unit 630 may select a first pixel at a first time and a second pixel at a second time. For example, in some instances where image 1000 is defective when received by server 116 , server 116 is not able to determine the color of a pixel from the second image at the first time. Server 116 receives another image 1000 to determine the color of another pixel from the second image at the second time. In other aspects, server 116 determines the alarm severity to be the same as the previous alarm severity if server 116 cannot determine the color of the pixel from the two pixels. In another aspect, process 1400 , described below, may be used to validate the extracted data from the second image.
- Process 1400 begins by extracting, using optical character recognition, first data from a first portion of an image at step 1402 .
- first data For example, the serial number of medical device 624 is extracted from serial number portion 1202 .
- process 1300 described above, may be used to perform extraction of first data from the first portion of the image.
- Process 1400 continues by comparing the first data to reference data at step 1404 .
- reference data may include a certain number of characters and/or digits that represent standard formats that may represent the first data.
- the extracted serial number of medical device 624 is compared with possible serial numbers stored in document data type storage 120 . Additional examples of comparing data to reference data are described in U.S. Pat. No. 9,002,083, entitled “System, Method, and Software for Optical Device Recognition Association,” the entire contents of which are hereby incorporated by reference.
- Process 1400 continues by determining the validity of the first data based on the comparison at step 1406 . For example, if the extracted serial number of medical device 624 does not match a standard format for a serial number consisting e.g. of a certain number of characters and/or digits, the extracted serial number is not valid. In one aspect, if the extracted serial number does not comprise six digits and the standard format for the serial number is six digits, the extracted serial number is not valid. In another aspect, step 1406 repeats a certain amount of times before making a final determination. For example, if three attempts are required to validate the first data, the first data is determined to be valid if comparison results in a positive match three times. If during the three attempts one of the comparisons does not result in a positive match, the first data is determined to not be valid.
- process 1400 continues to step 1408 .
- process 1400 continues by extracting, using optical character recognition, second data from a second portion of the second image.
- the performance level of pump 800 is extracted from performance level portion 1206 .
- examples of the characters in the performance level portion 1206 may include “OFF”, “P-0”, “P-1”, “P-2”, “P-3”, “P-4”, “P-5”, “P-6”, “P-7”, “P-8”, and “P-9”.
- process 1400 may continue to step 1402 until all data from the portions of image 1200 have been extracted.
- Process 1400 In response to determining that the first data is not valid based on the comparison. Process 1400 continues to step 1410 . At step 1410 , process 1400 continues by broadcasting a signal indicating that the first data is not valid. For example, server 116 notifies the remote link 102 that image 1000 produced invalid first data.
- Process 1400 finishes by receiving a third image illustrating data from the medical device at step 1412 .
- remote link 102 captures another image similar to 1000 using image capture unit 628 and server 116 may receive the similar image from remote link 102 .
- process 1400 may continue to step 1402 until all data from the portions of image 1200 have been extracted.
- FIG. 15 is a schematic representation of a remote link architecture 1500 .
- Remote link architecture 1500 includes remote link 102 , client device 104 , cloud 1502 , PKI provider 1510 , external sensor 1508 , and medical device 624 .
- Cloud 1502 may include network 1504 and server 1506 .
- Medical device 624 may include internal sensor 626 .
- Remote link 102 may be embedded in a medical device 624 that is monitoring a patient at a hospital, clinic, the patient's house, or another location. Remote link 102 may capture images and deliver video streams from the display of medical device 624 and transmit the images and video to the network 1504 . Remote link architecture 1500 may comprise multiple remote links 102 . Remote link 102 interacts with the rest of remote link architecture 1500 through network 1504 .
- Medical device 624 may be a medical device that is monitoring a patient at a hospital, clinic, the patient's house, or another location. Medical device 624 includes a sensor 626 that may be measuring and recording health signals from a patient.
- the sensor 626 may be a pressure sensor, temperature sensor, flow rate sensor, voltage sensor, current sensor, optical sensor, or audio sensor.
- External sensor 1508 may also be a pressure sensor, temperature sensor, flow rate sensor, voltage sensor, current sensor, optical sensor, or audio sensor communicatively coupled to remote link 102 .
- Client device 104 may be a personal computer, a tablet, or a mobile device with an internet connection.
- a medical professional using client device 104 may be interested in obtaining information from one or multiple remote links 102 . Images captured by a remote link 102 may be accessed by the client device 104 .
- the client device can display the video stream.
- Remote link architecture 1500 may comprise multiple client devices 104 . A single client device 104 may access multiple remote links 102 , as long as the client device has access to the remote links 102 .
- Server 1506 may include a mechanism for clients to view information, data, and video streams from one or more remote links 102 .
- Server 1506 may push messages to groups of client devices 104 .
- the client device 104 Upon client device 104 connection to the server 1506 , the client device 104 will register to the server 1506 for messages for either one or multiple remote links 102 .
- the server 1506 will receive messages that will be applicable to one or more remote links 102 . This message with associated data will be broadcasted to all connected client devices 104 for updates from those remote links 102 .
- Cloud 1502 represents a network 1504 of internet-based devices and connections such as servers 1506 , storage, and applications.
- PKI provider 1510 may include a mechanism for generating a public-private key pair associated with a remote link 102 .
- the private key may be loaded into the remote link 102 during the manufacturing or distribution of the remote link 102 .
- the PKI provider 1510 may store the public-private key pairs associated with multiple remote links 102 .
- the PKI provider 1510 may be a manufacturer of the data module, e.g., Remote Link 102 . The manufacturer may pre-load the data module at the time of manufacture with a public/private key pair.
- the manufacturer may also, at the same time or another time, provide a copy of the public/private key pair to the server 1506 , which may be controlled and/or owned by a monitor of and/or operator of the medical device 624 and/or Remote link 102 or sensor 1508 .
- the PKI provider 1510 may be an operator of the Remote link 102 , e.g., a hospital, capable of loading a public/private key pair into the remote link via a data port or a data network connection.
- the data module e.g., Remote link 102
- the data module e.g., Remote link 102
- the PKI Provider 1510 is included as part of the cloud 1502 .
- the server 1506 includes the PKI provider 1510 such as including a function that enables generation of public/private key pairs.
- Process 1600 begins by connecting a client device 104 to the cloud 1502 at step 1602 .
- a user may use client device 104 and login information to connect to a web user interface of the cloud 1502 .
- Process 1600 continues by connecting a remote link 102 to the cloud 1502 at step 1604 .
- remote link 102 may validate the connection to the cloud 1502 by transmitting messages to the cloud 1502 and receiving messages from the cloud 1502 .
- Process 1600 continues by requesting for the remote link 102 to start a maintenance mode at step 1606 .
- the user may use client device 104 to transmit a request to cloud 1502 to start a maintenance mode at the remote link.
- the maintenance mode would allow the user to access the internal settings and stored data of the remote link 102 .
- Process 1600 continues by transmitting a request from the cloud 1502 to the remote link 102 to start maintenance mode at step 1608 .
- server 1506 may transmit a message to remote link 102 using network 1504 .
- the message may include a request for the remote link 102 to start maintenance mode.
- the “Start Maintenance Mode” message may include a time stamp based on a time maintained by the cloud 1502 where the timestamp corresponds to the time that a “Start Maintenance Mode” message is sent to the remote link 102 , the time corresponding to a time when the cloud 1502 calculates the password at step 1614 , or any other time specified by the cloud 1502 .
- the time may include TAI, UTC, and/or UNIX time.
- Process 1600 continues by setting the remote link 102 in maintenance mode at step 1610 .
- the remote link 102 may change its operating mode to maintenance mode.
- Process 1600 continues by calculating a password at the remote link 102 at step 1612 .
- the RLM device 102 e.g., remote link 102
- the RLM device 102 receives the time stamp from the cloud 1502 via the “Start Maintenance Mode” message.
- the RLM Device 102 uses at least the time stamp and its private key as inputs into the password generator or pseudo-random number generator to generate the password or authentication key.
- the password may be alpha-numeric.
- the password length may be 4, 8, 10, 12, 20, or greater characters in length.
- An authentication key may include a 32 bit, 64 bit, 128 bit, 512 bit, 1024 bit, 2048 bit, or larger authentication key.
- the password generation or pseudo-random number generation may be implemented according to the requirements specified by, for example, RFC 4086 and/or RFC 6328.
- the cloud 1502 may include a server, e.g., server 1506 of FIG. 15 , that calculates the password.
- the sever 1506 may be loaded with the public/private key.
- the server 1506 may receive the public/private key pair from the PKI Provider 1510 for multiple RLM Devices 102 and store them.
- the server 1506 uses the time stamp and the private key associated with a particular RLM Device 102 to generate the password or authentication key to enable authentication access to that particular RLM Device 102 .
- Process 1600 finishes by displaying the generated password on the user interface of the cloud 1502 at step 1616 .
- the cloud 1502 may store the generated password at, for example, server 1506 .
- the user may use client device 104 to receive the password from the server 1506 using network 1504 .
- the user or actor may not need to see the generated password or authentication key where the cloud 1502 provides the generated password or generated authentication key to a client device 104 to allow the client device 104 to authenticate itself to a data module, e.g., remote link 102 .
- the client device 104 may present the password to the data module so that the data module can compare its password to the presented password.
- the data module allows access by the client device 104 .
- the client device 104 and data module e.g., remote link 102 , may set up a protected secure sockets layer (SSL) or TLS session and/or VPN connection to protect the password from eavesdropping during an access request and/or maintenance mode request.
- the client device 104 may present an authentication key to the data module during an access request.
- the client device 104 and data module may use a challenge-response protocol or other cryptographic authentication scheme based on the authentication key or password to enable to data module to authenticate the client device 104 for subsequent access to the data module.
- Process 1700 begins by connecting a client device 104 to the cloud 1502 at step 1702 .
- a user may use client device 104 and login information to connect to a web user interface of the cloud 1502 .
- Process 1700 continues by requesting for the remote link 102 to start a maintenance mode at step 1704 .
- the user may use client device 104 to transmit a request to cloud 1502 to start a maintenance mode at the remote link.
- the maintenance mode would allow the user to access the internal settings and stored data of the remote link 102 .
- Process 1700 continues by calculating a password at the cloud 1502 at step 1706 .
- server 1506 may use the private key associated with the remote link 102 and a time, e.g., current time, determined by the server 1506 as inputs into a password generator or pseudo-random number generator to generation the password or an authentication key.
- the password may be alpha-numeric.
- the password length may be 4, 8, 10, 12, 20, or greater characters in length.
- the password generation or pseudo-random number generation may be implemented according to the requirements specified by, for example, RFC 4086 and/or RFC 6328.
- the time stamp may be based on a time maintained by the cloud 1502 where the timestamp corresponds to the time that a “Start Maintenance Mode” message is initiated by a user or actor, the time corresponding to a time when the cloud 1502 calculates the password at step 1706 , or any other time specified by the cloud 1502 .
- the time may be by rounded so as to establish a time interval whereby the cloud 1502 and RLM Device 102 have an overlapping and/or synchronized time interval whereby the separately determined times by the cloud 1502 and the RLM Device 102 are the same.
- the time interval may be adjustable to set a floor or ceiling of acceptable synchronization precision.
- the time interval may be 1 second, 10 seconds, 30 seconds, 1 minutes, 5 minutes, 10 minutes, or greater.
- the longer the time interval the more likely that the time determined by the cloud 1502 will be the same as the time used by the RLM Device 102 , which accounts for deviations in clock timing between the cloud 1502 and the RLM Device 102 .
- This synchronization technique may be used within Online Mode described according to FIG. 16 in addition to, or alternatively to including a timestamp in the “Start Maintenance Mode” message.
- the time may include TAI, UTC, and/or UNIX time.
- Process 1700 continues by displaying the generated password on the user interface of the cloud 1502 at step 1708 .
- the cloud 1502 may store the generated password at, for example, server 1506 .
- the user may use client device 104 to receive the password from the server 1506 using network 1504 .
- Process 1700 continues by setting the remote link 102 in maintenance mode at step 1710 .
- the remote link 102 may change its operating mode to maintenance mode.
- a password or authentication key may be generated based on at least inputs of a time stamp and the private key of a particular RLM Device 102 into a password generator or pseudo-random number generator which outputs a password or authentication key associated with the particular RLM Device 102 .
- the time stamp may be based on a time maintained by the RLM Device 102 where the timestamp corresponds to the time that a “Start Maintenance Mode” message is initiated by a user or actor, the time corresponding to a time when the RLM Device 102 calculates the password at step 1712 , or any other time specified by the RLM Device 102 .
- the time may be by rounded so as to establish a time interval whereby the cloud 1502 and RLM Device 102 have an overlapping and/or synchronized time interval whereby the separately determined times by the cloud 1502 and the RLM Device 102 are the same. In this way, the input times and private keys used to calculate the password or an authentication key at both the cloud 1502 and RLM Device 102 are same.
- the time interval may be adjustable to set a floor or ceiling of acceptable synchronization precision. For example, the time interval may be 1 second, 10 seconds, 30 seconds, 1 minutes, 5 minutes, 10 minutes, or greater.
- This synchronization technique may be used within Online Mode described according to FIG. 16 in addition to, or alternatively to including a timestamp in the “Start Maintenance Mode” message.
- the time may include TAI, UTC, and/or UNIX time.
- a process 1800 of authenticating a connection between a remote link (or data module) 102 and a server 1506 is illustrated in FIG. 18 .
- Process 1800 begins by assigning a private key of a public-private key pair associated with the remote link 102 at step 1802 .
- remote link 102 may receive pressure data, temperature data, flow rate data, voltage data, current data, optical data, or audio data from a medical device 624 .
- the remote link 102 may receive data from an external sensor 1508 .
- Process 1800 continues by storing the private key at the data module 102 at step 1804 .
- the remote link 102 may have the private key loaded into the remote link 102 during manufacturing or distribution of the remote link 102 .
- Process 1800 continues by storing the private key at the server 1506 at step 1806 .
- the private key may be stored by the server after the private key is loaded into the data module.
- the server 1506 may have the private key of multiple remote links 102 stored in internal storage.
- Process 1800 continues by generating a request to access the data module 102 at a client device 104 at step 1808 .
- the client device 104 may include a user interface configured to display data and receive a user input. A user may use the user interface to generate the request to access the data module 102 .
- the request to access the data module 102 may include a request for the remote link 102 to enter into a maintenance mode.
- Process 1800 continues by transmitting the request to the server 1506 for access to the remote link 102 at step 1810 .
- the user may use the user interface to transmit the request to the server 1506 .
- Process 1800 continues by receiving, at the server 1506 , the request from the client device 104 for access to the remote link 102 at step 1812 .
- the server may receive the request using the network 1504 .
- Process 1800 continues by generating, at the remote link 102 , an authentication key used to allow authenticated access to the remote link 102 based at least on the private key and a time at step 1814 .
- the remote link 102 may generate the authentication key using the PKI provider 1510 based on the private key and the time.
- the authentication key may be a one-time authentication key.
- the indication may include the time. The time may be determined by the server 1506 or may be determined independently by the remote link 102 . The time determined by the remote link 102 may be synchronized with the time determined by the server 1506 .
- the time is synchronized by rounding the time determined by the remote link 102 to a time interval and rounding the time determined by the server 1506 to the time interval such that the determined times are the same. For example, if the time interval is 5 minutes and the time determined by the remote link 102 is 09:04, the time would be rounded to 09:05.
- the time interval may be adjustable to set a floor or ceiling of acceptable synchronization precision.
- the time includes TAI (International Atomic Time), UTC (Coordinated Universal Time), or UNIX time.
- Process 1800 continues by generating, at the server 1506 , the authentication key based on the private key and the time at step 1816 .
- the server 1506 may generate the authentication key based on the private key and the time.
- the authentication key may be a one-time authentication key. For example, if the server 1506 generates an authentication key, the authentication key may only be used once to access the remote link 102 .
- Process 1800 continues by Process 1800 continues by receiving, at the server 1506 , an indication from the remote link 102 that the authentication key generated at the server 1506 was entered at step 1818 .
- the server 1506 may transmit the authentication key generated at the server 1506 to the remote link 102 using network 1504
- the user may input the authentication key generated at the server 1506 into the remote link 102
- the remote link 102 may transmit an indication to the server 1506 that indicates that the authentication key was entered.
- the remote link 102 may include a user interface configured to display data and receive a user input. A user may use the remote link 102 user interface to input the authentication key generated at the server 1506 .
- Process 1800 finishes by determining whether the authentication key generated at the remote link 102 and the authentication key generated at the server 1506 match at step 1820 . If the authentication key generated at the remote link 102 matches the authentication key generated at the server 1506 , authenticated access is granted at step 1822 . Otherwise, if the authentication key generated at the remote link 102 does not match the authentication key generated at the server 1506 , access is denied at step 1824 . For example, if the authentication key generated at the remote link 102 does not match the authentication key generated at the server 1506 , the remote link 102 can display a message indicating an authentication failure. In one aspect, the remote link 102 may authenticate the client device 104 using a challenge-response protocol.
- Process 1800 allows for a user to securely connect to a remote link 102 connected to a medical device 624 and access the maintenance mode of the remote link 102 . The user may then change the settings and procedures of the remote link 102 . For example, the user may change the network 1504 connection settings. If authentication is successful, the remote link 102 may transmit the data to the client device 104 . Process 1800 allows for a user to securely connect to a remote link 102 connected to a medical device 624 and access the data collected by the remote link 102 from the medical device.
- Process 1900 begins by assigning a private key of a public-private key pair associated with the remote link 102 at step 1902 .
- Process 1900 continues by storing the private key at the data module 102 at step 1904 .
- the remote link 102 may have the private key loaded into the remote link 102 during manufacturing or distribution of the remote link 102 .
- Process 1900 continues by storing the private key at the server 1506 at step 1906 .
- the private key may be stored by the server after the private key is loaded into the data module.
- the server 1506 may have the private key of multiple remote links 102 stored in internal storage.
- Process 1900 continues by receiving data at the remote link 102 from a medical device 624 at step 1908 .
- remote link 102 may receive pressure data, temperature data, flow rate data, voltage data, current data, optical data, or audio data from a medical device 624 .
- the remote link 102 may receive data from an external sensor 1508 .
- Process 1900 continues by generating a request to access the data module 102 at a client device 104 at step 1910 .
- the client device 104 may include a user interface configured to display data and receive a user input. A user may use the user interface to generate the request to access the data module 102 .
- the request to access the data module 102 may include a request for the remote link 102 to enter into a maintenance mode.
- Process 1900 continues by transmitting the request to the server 1506 for access to the remote link 102 at step 1912 .
- the user may use the user interface to transmit the request to the server 1506 .
- Process 1900 continues by receiving, at the server 1506 , the request from the client device 104 for access to the remote link 102 at step 1914 .
- the server may receive the request using the network 1504 .
- Process 1900 continues by generating, at the remote link 102 , an authentication key used to allow authenticated access to the remote link 102 based at least on the private key and a time at step 1916 .
- the remote link 102 may generate the authentication key using the PKI provider 1510 based on the private key and the time.
- the authentication key may be a one-time authentication key.
- the indication may include the time. The time may be determined by the server 1506 or may be determined independently by the remote link 102 . The time determined by the remote link 102 may be synchronized with the time determined by the server 1506 .
- the time is synchronized by rounding the time determined by the remote link 102 to a time interval and rounding the time determined by the server 1506 to the time interval such that the determined times are the same. For example, if the time interval is 5 minutes and the time determined by the remote link 102 is 09:04, the time would be rounded to 09:05.
- the time interval may be adjustable to set a floor or ceiling of acceptable synchronization precision.
- the time includes TAI (International Atomic Time), UTC (Coordinated Universal Time), or UNIX time.
- Process 1900 continues by generating, at the server 1506 , the authentication key based on the private key and the time at step 1918 .
- the server 1506 may generate the authentication key based on the private key and the time.
- the authentication key may be a one-time authentication key. For example, if the server 1506 generates an authentication key, the authentication key may only be used once to access the remote link 102 .
- Process 1900 continues by receiving, at the server 1506 , an indication from the remote link 102 that the authentication key generated at the server 1506 was entered at step 1920 .
- the server 1506 may transmit the authentication key generated at the server 1506 to the remote link 102 using network 1504 , the user may input the authentication key generated at the server 1506 into the remote link 102 , and the remote link 102 may transmit an indication to the server 1506 that indicates that the authentication key was entered.
- the remote link 102 may include a user interface configured to display data and receive a user input. A user may use the remote link 102 user interface to input the authentication key generated at the server 1506 .
- Process 1900 finishes by determining whether the authentication key generated at the remote link 102 and the authentication key generated at the server 1506 match at step 1922 . If the authentication key generated at the remote link 102 does not match the authentication key generated at the server 1506 , access is denied at step 1924 . For example, if the authentication key generated at the remote link 102 does not match the authentication key generated at the server 1506 , the remote link 102 can display a message indicating an authentication failure.
- Process 1900 allows for a user to securely connect to a remote link 102 connected to a medical device 624 and access the data collected by the remote link 102 from the medical device.
- FIGS. 8 and 9 show a media device configuration where a controller 900 is separate from a pump 800 , one of ordinary skill readily recognizes that a medical device may be configured such that the controller and pump (or other elements) are integrated in the same housing.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Measuring And Recording Apparatus For Diagnosis (AREA)
- Medical Treatment And Welfare Office Work (AREA)
- Storage Device Security (AREA)
Abstract
Description
- This application claims the benefit of U.S. Provisional Application No. 62/560,448, filed on Sep. 19, 2017, the content of which is hereby incorporated herein by reference in its entirety.
- The present disclosure relates to systems and methods for implementing a time-based password algorithm that allows users to manage medical devices securely.
- Medical devices monitoring a patient are often connected to a network for remote access. Many of these medical devices require a password in order to change the management settings of the medical device. Often, these passwords are static and require manual change after a certain amount of time has passed.
- However, there remains a long felt need to implement additional security measures on network-connected medical devices in order to protect patient data and prevent successful security attacks.
- The present disclosure relates to a data monitoring system comprising a server communicatively coupled to a client device and a data module via a data network. The server is configured to store a private key of a public-private key pair associated with the data module, receive a request from the client device for authenticated access to the data module, and generate an authentication key based at least on the private key and a time. The authentication key can be used to allow authenticated access to the data module. The client device is configured to generate the request for authenticated access to the data module and transmit the request to the server. The data module includes a user interface configured to display data and receive a user input. The data module is configured to store the private key of the public-private key pair associated with the data module, receive data from a medical device, generate the authentication key based at least on the private key and the time, and, in response to determining that the authentication key generated by the data module and the authentication key generated by the server match, grant access to the data module.
- According to one implementation, the data module is configured to, in response to determining that the authentication key generated by the data module and the authentication key generated by the server do not match, display a message indicating an authentication failure. In some implementations, the data module is configured to grant authenticated access using a challenge-response protocol.
- In certain implementations, the data module may transmit the data to the client device upon successful authentication.
- According to some implementations, the time is determined independently by the data module and the server. In other implementations, a time determined by the data module is synchronized with a time determined by the server.
- In certain implementations, the time is synchronized by rounding the time determined by the data module to a time interval and rounding the time determined by the server to the time interval such that the determined times are the same.
- According to some implementations, the time interval is adjustable to set a floor or ceiling of acceptable synchronization precision.
- According to one implementation, the time includes at least one of TAI, UTC, and UNIX time. In some implementations, the time is current time.
- In certain implementations, the request for authenticated access to the data module includes additional information for instructing the data module. According to some implementations, the additional information includes a request for access to the data module. In some implementations, the additional information includes the time, the time being determined by the server. In other implementations, the additional information includes a request for the data module to enter a maintenance mode.
- According to one implementation, the authentication key is a one-time authentication key. In certain implementations, the authentication key expires after a period of time.
- In certain implementations, the private key is loaded into the data module during at least one of manufacturing or distribution of the data module. According to some implementations, the private key is further stored by the server after the private key is loaded into the data module.
- A second aspect of the present disclosure relates to a method of securely monitoring a data module receiving data from a medical device. The method comprises storing, at a server, a private key of a public-private key pair associated with a data module. Further, the method comprises receiving, at the server, a request from a client device for access to the data module. The method further comprises generating, at the server, an authentication key based at least on the private key and a time. The authentication key can be used to allow authenticated access to the data module. Further, the method comprises receiving, at the server, an indication from the data module that the authentication key generated at the server was entered. The method also comprises, in response to determining that the authentication key generated by the server and an authentication key generated by the data module matches, granting authenticated access to the data module. In one implementation, the authentication key generated by the data module is generated based at least on the private key and the time.
- The foregoing and other objects and advantages will be apparent upon consideration of the following detailed description, taken in conjunction with the accompanying drawings, in which like reference characters refer to like parts throughout, and in which:
-
FIG. 1 shows a schematic representation of a remote link architecture, configured according to one or more aspects of the present disclosure; -
FIG. 2 is a flow diagram of method steps for transferring data from a medical device to a server, according to an aspect of the present disclosure; -
FIG. 3 is a flow diagram of method steps for transferring data from a medical device to a server, according to an aspect of the present disclosure; -
FIG. 4 shows a schematic representation of a remote link architecture, configured according to one or more aspects of the present disclosure; -
FIG. 5 is a flow diagram of method steps for initializing a remote link, according to an aspect of the present disclosure; -
FIG. 6 shows a schematic representation of a remote link architecture, configured according to one or more aspects of the present disclosure; -
FIG. 7 shows a schematic representation of a remote link architecture, configured according to one or more aspects of the present disclosure; -
FIG. 8 shows a schematic representation of a medical device, configured according to one or more aspects of the present disclosure; -
FIG. 9 shows an exemplary medical device controller, configured according to one or more aspects of the present disclosure; -
FIG. 10 shows an exemplary image displayed on a medical device controller screen, configured according to one or more aspects of the present disclosure; -
FIG. 11 shows the exemplary image ofFIG. 10 after removing select portions of the image, configured according to one or more aspects of the present disclosure; -
FIG. 12 shows an exemplary image of the remaining portions of the image ofFIG. 11 , configured according to one or more aspects of the present disclosure; -
FIGS. 13 and 14 are flow diagrams of method steps for extracting data from an image and determining the validity of the extracted data, according to an aspect of the present disclosure. -
FIG. 15 shows a schematic representation of a remote link architecture, configured according to one or more aspects of the present disclosure; -
FIG. 16 is a flow diagram of method steps for authenticating a connection between a remote link and a server, according to an aspect of the present disclosure; -
FIG. 17 is a flow diagram of method steps for authenticating a connection between a remote link and a server, according to an aspect of the present disclosure; -
FIG. 18 is a flow diagram of method steps for authenticating a connection between a remote link and a server, according to an aspect of the present disclosure; and -
FIG. 19 is a flow diagram of method steps for authenticating a connection between a remote link and a server, according to an aspect of the present disclosure. -
FIG. 1 is a schematic representation of aremote link architecture 100.Remote link architecture 100 includesremote link 102,client device 104, remote link router (RLR) 150,WEB load balancer 108,video load balancer 110,WEB server 114,video server 116, random-access memory (RAM)data type storage 118, documentdata type storage 120, andWEB socket server 122. -
Remote link 102 may be embedded in a medical device that is monitoring a patient at a hospital, clinic, the patient's house, or another location.Remote link 102 captures images and deliver video streams from the medical device display and transmit the images and video to theremote link router 150.Remote link architecture 100 may comprise multipleremote links 102.Remote link 102 interacts with the rest ofremote link architecture 100 throughRLR 150.RLR 150 includes anRLR load balancer 106 andRLR server 112.RLR 150 may comprisemultiple RLR servers 112.RLR server 112 may include a custom protocol used to communicate with one or moreremote links 102.RLR load balancer 106 manages the load to one ormore RLR servers 112.RLR load balancer 106 may generate a priority for multipleremote links 102. The priority may be based on preferences obtained from theclient device 104. In other aspects, the priority is based on preferences obtained from theremote links 102. In another aspect, the priority is based on preferences obtained from theRLR server 112. -
Client device 104 may be a personal computer, a tablet, or a mobile device with an internet connection. A medical professional usingclient device 104 may be interested in obtaining information from one or multipleremote links 102. Images captured by aremote link 102 may be accessed by theclient device 104. In addition, if the medical professional is interested in observing a live video stream of the medical device embedded withremote link 102, the client device can display the video stream. Remote link architecture may comprisemultiple client devices 104. Asingle client device 104 may access multipleremote links 102, as long as the client device has access to theremote links 102. -
WEB load balancer 108 controls the load to one ormore WEB servers 114.WEB server 114 may include a mechanism for clients to view information, data, and video streams from one or moreremote links 102.WEB load balancer 108 may generate a priority formultiple client devices 104. The priority may be based on preferences obtained from theclient devices 104. In other aspects, the priority is based on preferences obtained from theremote links 102. In another aspect, the priority is based on preferences obtained from theWEB server 114.WEB socket server 122 may push messages to groups ofclient devices 104. Uponclient device 104 connection to theWEB server 114, theclient device 104 will register to theWEB socket server 122 for messages for either one or multipleremote links 102. TheWEB socket server 122 will receive messages that will be applicable to one or moreremote links 102. This message with associated data will be broadcasted to all connectedclient devices 104 for updates from thoseremote links 102. -
Video load balancer 110 controls the load to one ormore video servers 116.Video server 116 may be the receiver and sender of video streams from one or moreremote links 102.Video load balancer 110 may generate a priority formultiple client devices 104. The priority may be based on preferences obtained from theclient devices 104. In other aspects, the priority is based on preferences obtained from theremote links 102. In another aspect, the priority is based on preferences obtained from thevideo server 116. - RAM
data type storage 118 may be volatile storage that can be accessed quickly. RAMdata type storage 118 may comprise dynamic random-access memory (DRAM), static random-access memory (SRAM), or another type of high-speed volatile memory. Images captured byremote link 102 may be stored in RAMdata type storage 118 before being transmitted toclient device 104. RAMdata type storage 118 may also store video streams captured byremote link 102. Documentdata type storage 120 may be non-volatile storage that can maintain data for long periods of time. Documentdata type storage 120 may be hard disks, optical disks, solid-state drives (SSDs), or another type of non-volatile memory. - A
process 200 of transferring an image from aremote link 102 to a remotelink router server 112 is illustrated inFIG. 2 .Process 200 begins by connecting aremote link 102 to the internet atstep 202. Step 202 may include a process to initializeremote link 102 as described below byprocess 500 inFIG. 5 . -
Process 200 continues by sending, from theremote link 102, a first signal to anRLR 150 that indicates that theremote link 102 is connected to the internet asstep 204. The first signal may be sent directly to theRLR load balancer 106. In another aspect, the first signal may be sent directly to theRLR server 112. -
Process 200 continues by sending, from theRLR 150, a command to theremote link 102 to start capturing an image atstep 206. For example,remote link 102 usesimage capture unit 626, described below, to capture the image from a medical device. -
Process 200 continues by transferring the image to theRLR 150 from theremote link 102 atstep 208. For example, RLR load balancer manages the transfer of the image from theremote link 102 to theRLR server 112. Once the image has been transferred to theRLR server 112,process 200 continues to step 210. -
Process 200 continues by broadcasting, from theRLR 150, a second signal indicating that theremote link 102 has captured the image atstep 210. For example,RLR 150 broadcasts the second signal such that theWEB servers 114 are notified thatRLR 150 has the image captured byremote link 102. -
Process 200 continues by receiving, at aWEB server 114, the broadcasted second signal from theremote link 102 atstep 212. For example,WEB server 114 receives the broadcasted signal fromRLR 150 so that theWEB server 114 is notified thatRLR 150 has the image captured byremote link 102. - Process 200 finishes by storing the image at the
WEB server 114 atstep 214. The image may be stored in RAMdata type storage 118. For example,RLR 150 transfers the image toWEB server 114, after whichWEB server 114 transfers the image to RAMdata type storage 118. In one aspect,RLR 150 may transfer the image directly to RAMdata type storage 118. - A
process 300 of transferring a video stream from aremote link 102 to aclient device 104 is illustrated inFIG. 3 .Process 300 begins by sending to aWEB server 114, from aclient device 104, a request to view a video stream from aremote link 102 atstep 302. The request may be sent throughWEB load balancer 108 before being transmitted to theWEB server 114. In one aspect, the request may include information identifying theremote link 102 that is to be accessed. -
Process 300 continues by broadcasting the request from theWEB server 114 atstep 304. For example, theWEB server 114 notifies theRLRs 150 that aclient device 104 has requested to view a video stream from aremote link 102 by broadcasting the request to all of theRLRs 150. -
Process 300 continues by receiving the request at anRLR 150 atstep 306. For example,RLR server 112 receives the request from theWEB server 114. In one aspect,RLR 150 receives the request after determining that the request identifies aremote link 102 that is communicatively coupled to theRLR 150. -
Process 300 continues by sending to theremote link 102, from theRLR 150, a command to transmit the video stream to avideo server 116 atstep 308. For example,RLR server 112 transmits a signal throughRLR load balancer 106 toremote link 102 that initiates a process to transmit a video stream from theremote link 102 to thevideo server 116. -
Process 300 continues by transmitting the video stream to thevideo server 116 from theremote link 102 atstep 310. In one aspect, theremote link 102 transmits the video stream to thevideo load balancer 110 which determines whichvideo server 116 to send the video stream. Thevideo load balancer 110 may make the determination based on the load of thevideo servers 116 and a priority of theremote link 102 andclient device 104. -
Process 300 continues by receiving the video stream at thevideo server 116 atstep 312. For example, oncevideo load balancer 110 determines whichvideo server 116 can receive the video stream, thevideo server 116 receives the video stream. - Process 300 finishes by transmitting the video stream to the
client device 104 from thevideo server 116. For example, thevideo server 116 initiates transfer of the video stream to theclient device 104 throughvideo load balancer 110. -
FIG. 4 shows a schematic representation of aremote link architecture 400.Remote link architecture 400 includesremote link 402,client device 404,RLR 450, documentdata type storage 420,HTTP service 430, andcloud 460. -
Remote link 402 is similar toremote link 102 and may be embedded in a medical device that is monitoring a patient at a hospital, clinic, the patient's house, or another location.Remote link 402 may capture images and deliver video streams from the medical device display and transmit the images and video to theremote link router 450.Remote link architecture 400 may comprise multipleremote links 402.Remote link 402 interacts with the rest ofremote link architecture 400 throughRLR 450.RLR 450 is similar toRLR 150 described above. -
Client device 404 is similar toclient device 104 and may be a personal computer, a tablet, or a mobile device with an internet connection. A medical professional usingclient device 404 may be interested in obtaining information from one or multipleremote links 402. Images captured by aremote link 402 may be accessed by theclient device 404. In addition, if the medical professional is interested in observing a live video stream of the medical device embedded withremote link 402, the client device can display the video stream. Remote link architecture may comprisemultiple client devices 404. Asingle client device 404 may access multipleremote links 402, as long as the client device has access to theremote links 402.Client device 404 may communicate withRLR 450 throughcloud 460.Cloud 460 represents a network of internet-based devices and connections such as servers, storage, and applications. - Document
data type storage 420 is similar to documentdata type storage 120 and may be non-volatile storage that can maintain data for long periods of time. Documentdata type storage 420 may be hard disks, optical disks, solid-state drives (SSDs), or another type of non-volatile memory. Documentdata type storage 420 may store Wi-Fi credentials or other initialization information obtained from one ormore client devices 404 or fromRLR 450. Documentdata type storage 420 may transmit the Wi-Fi credentials or other initialization information toRLR 450 or directly to one or moreremote links 402. -
HTTP service 430 may be a framework that provides the ability for theRLR 450 to make HTTP requests.RLR 450 may useHTTP service 430 to obtain Wi-Fi credentials or other initialization information and store the information in documentdata type storage 420. - A
process 500 of initializing aremote link 402 is illustrated inFIG. 5 .Process 500 begins by connecting aremote link 402 to an LTE network atstep 502. In another aspect, theremote link 402 may connect to a 3G or 4G network. -
Process 500 continues by transmitting, from theremote link 402, a first signal to anRLR 450 that indicates that theremote link 402 is connected to the LTE network atstep 504. For example, once theremote link 402 is online, it transmits a signal to theRLR 450 in order to notify theRLR 450 that it is ready to transmit or receive data. In one aspect, theRLR 450 is also connected to the LTE network. -
Process 500 continues by receiving, at theRLR 450, Wi-Fi credentials from aclient device 404 atstep 506. For example, a user inputs the Wi-Fi credentials onto aclient device 404 which then transmits the Wi-Fi credentials to theRLR 450. In one aspect,RLR 450 has the Wi-Fi credentials stored. -
Process 500 continues by transmitting, from theRLR 450, the Wi-Fi credentials to theremote link 402 atstep 508. For example, theRLR 450 transmits the Wi-Fi credentials to theremote link 402 using the LTE network. -
Process 500 continues by connecting theremote link 402 to a Wi-Fi network corresponding to the Wi-Fi credentials atstep 510. For example, once theremote link 402 has received the Wi-Fi credentials,remote link 402 searches for the Wi-Fi network identified by the Wi-Fi credentials and connect to it. - Process 500 finishes by transmitting, from the
remote link 402, a second signal to theRLR 450 that indicates that theremote link 402 is connected to the Wi-Fi network. For example, in order to confirm that theremote link 402 has successfully connected to the Wi-Fi network,remote link 402 sends a signal to theRLR 450 using the Wi-Fi network that indicates that it has successfully connected. In another aspect,remote link 402 sends the signal to theRLR 450 using the LTE network if the connection is faster than the Wi-Fi network. In one aspect, if theremote link 402 cannot connect to the Wi-Fi network, it sends a signal to theRLR 450 using the LTE network that indicates that the connection was not successful. -
FIG. 6 shows a schematic representation of aremote link architecture 600.Remote link architecture 600 includesmedical device 624,remote link 102, andmedia server 116.Medical device 624 may include asensor 626.Remote link 102 may include animage capture unit 628.Media server 116 may include an opticalcharacter recognition unit 630 andoperational data unit 632. -
Medical device 624 may be a medical device that is monitoring a patient at a hospital, clinic, the patient's house, or another location.Medical device 624 includes asensor 626 that may be measuring and recording health signals from a patient. Thesensor 626 may be a pressure sensor, temperature sensor, flow rate sensor, voltage sensor, current sensor, optical sensor, or audio sensor. -
Image capture unit 628 may be an application that enablesremote link 102 to capture images fromsensor 626. For example,image capture unit 628 captures an image of the display ofmedical device 624. The image of the display ofmedical device 624 may include data fromsensor 626 represented alphanumerically or graphically, in a waveform plot.Image capture unit 628 may convert analog data captured fromsensor 626 into digital data that may be used by opticalcharacter recognition unit 630. For example,image capture unit 628 converts an analog signal from a video graphics array (VGA) connection fromsensor 626. Optical character recognition (OCR) may be used to convert images of text or shapes into digital data, as further described in relation toFIGS. 10-14 . In another aspect, other OCR equivalents, and/or digital signal processing (DSP) may be used to extract data from images. -
OCR unit 630 may be an application that electronically converts images of text or shapes into digital data. For example,OCR unit 630 analyzes the image captured byimage capture unit 628 inremote link 102 to extract data from the data embedded in the image. TheOCR unit 630 may be able to extract data from a waveform. - In one aspect,
media server 116 may include aDSP unit 634.DSP unit 634 may be an application that converts images into digital data. For example,DSP unit 634 converts the image captured byimage capture unit 628 inremote link 102 to digital data. Once in digital form,media server 116 may identify and/or filter the operational and/or medical data that is embedded in the image. In another aspect,DSP unit 634 may be used to extract data from a waveform included in the image. For example,OCR unit 630 extracts a period from a waveform portion of an image andDSP unit 634 uses the period and boundaries of the waveform to extract operational and/or medical data. By using the period and boundaries of the waveform portion of the image,DSP unit 634 associates the pixels in the waveform portion with a unit of time. In some aspects,OCR unit 630 is used to extract a measurement unit from the waveform portion of the image andDSP unit 634 uses the period and the measurement unit to extract operational and/or medical data. For example,OCR unit 630 determines that the waveform portion of the image displays placement signal and/or motor current over a period of ten seconds, andDSP unit 634 associates each pixel in the waveform portion with a corresponding placement signal and/or motor current, and a unit of time equal to the period divided by the number of pixels in the waveform portion of the image. - Operational and/or
medical data unit 632 may be an application that databases and organizes the data extracted fromOCR unit 630 and/orDSP unit 634. For example,operational data unit 632 identifies the type of data extracted byOCR unit 630 and/orDSP unit 634, and categorize the data into operational and/or medical conditions. Operational and/or medical conditions may include pressure, flow rate, pump speed, temperature, voltage, current, and biometric conditions. -
Remote link architecture 600 can be implemented withprocess 200,process 300, andprocess 500 to control the bandwidth, quality, and type of video streaming fromremote link devices 102.Remote link architecture 600 may be scaled to an indefinite amount ofremote link devices 102 andclient devices 104.OCR unit 630 andoperational data unit 632 may be included in another component ofremote link architecture 100,remote link architecture 400,remote link architecture 600, or remote link architecture 700 (described below). -
FIG. 7 is a schematic representation of aremote link architecture 700.Remote link architecture 700 includesremote link 102,client device 104,RLR 150,media server 116,WEB socket server 122,WEB server 114,cloud 460, RAMdata type storage 118, documentdata type storage 120, andmessage service 770. -
Remote link 102 may be embedded in a medical device that is monitoring a patient at a hospital, clinic, the patient's house, or another location.Remote link 102 may capture images and deliver video streams from the medical device display and transmit the images and video to theremote link router 150.Remote link architecture 100 may comprise multipleremote links 102.Remote link 102 interacts with the rest ofremote link architecture 100 throughRLR 150. -
Client device 104 may be a personal computer, a tablet, or a mobile device with an internet connection. A medical professional usingclient device 104 may be interested in obtaining information from one or multipleremote links 102. Images captured by aremote link 102 may be accessed by theclient device 104. In addition, if the medical professional is interested in observing a live video stream of the medical device embedded withremote link 102, the client device can display the video stream. Remote link architecture may comprisemultiple client devices 104. Asingle client device 104 may access multipleremote links 102, as long as the client device has access to theremote links 102. -
WEB server 114 may include a mechanism for clients to view information, data, and video streams from one or moreremote links 102.WEB socket server 122 may push messages to groups ofclient devices 104. Uponclient device 104 connection to theWEB server 114, theclient device 104 will register to theWEB socket server 122 for messages for either one or multipleremote links 102. TheWEB socket server 122 will receive messages that will be applicable to one or moreremote links 102. This message with associated data will be broadcasted to all connectedclient devices 104 for updates from thoseremote links 102.Message service 770 may manage the transfer of messages between the different components ofremote link architecture 700 throughcloud 460.Cloud 460 represents a network of internet-based devices and connections such as servers, storage, and applications. -
Media server 116 may be the receiver and sender of video streams from one or moreremote links 102.Media server 116 may be similar tovideo server 116 described above.Media server 116 may also be the receiver and sender of images captured from one or moreremote links 102. - RAM
data type storage 118 may be volatile storage that can be accessed quickly. RAMdata type storage 118 may comprise dynamic random-access memory (DRAM), static random-access memory (SRAM), or another type of high-speed volatile memory. Images captured byremote link 102 may be stored in RAMdata type storage 118 before being transmitted toclient device 104. RAMdata type storage 118 may also store video streams captured byremote link 102. Documentdata type storage 120 may be non-volatile storage that can maintain data for long periods of time. Documentdata type storage 120 may be hard disks, optical disks, solid-state drives (SSDs), or another type of non-volatile memory. -
FIG. 8 shows an illustrative medical device such as anintravascular blood pump 800 according to certain implementations. Thepump 800 comprises apump handle 810, apump head 830, acatheter 820 connecting the pump handle 810 to thepump head 830, and a connectinghub 860. Thecatheter 820 is tubular and has a substantially uniformouter diameter 850. Thecatheter 820 enables thepump head 830 and the pump handle 810 to be in electro-mechanical communication. The pump handle 810 is in communication with control circuitry which allows the control of thepump head 830. Thepump head 830 contains electro-mechanical components that enable the device to perform various tasks within the body of a patient, such as pump blood from a location within the body. Thepump head 830 has adiameter 840 that is larger than thediameter 850 of thecatheter 820. An example of such a percutaneous pump is the Impella 2.5® system (Abiomed, Inc., Danvers, Mass.) which includes the pump and an Automatic Impella Controller (AIC). -
FIG. 9 shows an exemplarymedical device controller 900, such as the AIC, configured according to one or more aspects of the present disclosure. Themedical device controller 900 provides an interface for monitoring and controlling the functions ofpump 800.Medical device controller 900 may includedisplay screen 902 that may display images from a video stream where the images illustrate data associated with a medical device such as anintravascular blood pump 800 over a period of time. In certain implementations,display screen 902 displays real-time operating and/or medical data associated with thepump 800. -
FIG. 10 shows anexemplary image 1000 displayed on, for example, thedisplay screen 902, configured according to one or more aspects of the present disclosure. In some configurations, theimage 1000 may be captured by an intermediate device or data module such asremote link 102 via a network and transmitted to another device such as, for example,media server 116.Image 1000 may includewaveforms 1002.Waveforms 1002 illustrate medical and/or operational data corresponding to the operation ofpump 800. Examples of medical data illustrated bywaveforms 1002 include placement signal and motor current. Thewaveforms 1002, such as the motor current waveform may provide a history, representation, and/or illustration of motor current over a period time (e.g., 10 seconds). In this way, theimage 1000 includes motor current data (and other data) associated withpump 800 over a 10 second period of time. Hence, in one implementation, adata module 102 continuously monitors a video stream output from thedevice controller 900, but only periodically capture an image such asimage 1000. Then thedata module 102 transmits theimage 1000 to another device, such asserver 116, which converts the illustratedwaveforms 1002 to medical and/or operation data using, for example, OCR. If, for example, thewaveforms 1002 illustrate medical data over a 10 second period, thedata module 102 may capturesuccessive images 1000 every 10 second (at 10 second intervals) to ensure that there are no gaps in the data provided toserver 116.Processes FIGS. 13 and 14 below, describe exemplary methods of extracting data from an image and determining the validity of the extracted data, respectively. - In one aspect,
server 116 masks certain portions ofimage 1000 before extracting the data usingOCR unit 630 or an equivalent.FIG. 11 shows anexemplary image 1100, configured according to one or more aspects of the present disclosure.Image 1100 is a masked version ofimage 1000 that has been stripped of certain portions ofimage 1000. For example, all portions ofimage 1000 are stripped except alarm andserial number portion 1102,performance level portion 1104, and flowlevel portion 1106. After generatingimage 1100,server 116 performs image processing to clarify and enlarge alarm andserial number portion 1102,performance level portion 1104, and flowrate portion 1106. -
FIG. 12 shows anexemplary image 1200, configured according to one or more aspects of the present disclosure.Image 1200 is a processed version ofimage 1100 in order to facilitate the extracting of data usingOCR unit 630. In one aspect, alarm andserial number portion 1102 may be processed intoserial number portion 1202 andalarm portion 1204.Serial number portion 1202 includes a certain number of digits that identify themedical device 624 that is currently being monitored and may be enlarged to facilitate OCR. For example,serial number portion 1202 includes six digits.Alarm portion 1204 may indicate the type of alarm that themedical device 624 may be experiencing. For example,alarm portion 1204 includes pixels of a color that indicate a severity of the alarm themedical device 624 may be experiencing. Examples of the colors in thealarm portion 1204 include red, yellow, and green. In some aspects,performance level portion 1206 indicates the performance level of thepump 800 and includes three characters. Examples of the characters in theperformance level portion 1206 may include “OFF” “P-0” “P-1”, “P-2” “P-3” “P-4” “P-5” “P-6” “P-7” “P-8”, and “P-9”.Performance level portion 1206 may be an enlarged version ofperformance level portion 1104. In another aspect, flowrate portion 1106 may be processed into presentflow rate portion 1208, maxflow rate portion 1210, and minflow rate portion 1212. Presentflow rate portion 1208 indicates the present flow rate ofpump 800 in units of liters per minute. Correspondingly, maxflow rate portion 1210 and minflow rate portion 1212 indicate the range of the flow rate of thepump 800, respectively, and may be enlarged to facilitate OCR. Presentflow rate portion 1208, maxflow rate portion 1210, and minflow rate portion 1212 includes three characters that range from “0.0” to “9.9”. - A
process 1300 of extracting data from an image is illustrated inFIG. 13 .Process 1300 begins by receiving a first image illustrating data from amedical device 624 atstep 1302. For example,remote link 102 capturesimage 1000 usingimage capture unit 628 andserver 116 receivesimage 1000 fromremote link 102. -
Process 1300 continues by masking first portions of the first image atstep 1304. For example,server 116 uses an image mask to occlude portions ofimage 1000 that will not be sent toOCR unit 630 for data extraction. Masking select portions of an image allows for improved efficiency of image processing because only the select portions of the image that are not masked will be sent toOCR unit 630 orDSP unit 634. By masking select portions of the image, less data is transmitted betweenserver 116,OCR unit 630, andDSP unit 634, andOCR unit 630 andDSP unit 634 require less processing to extract data from the image. In one aspect,server 116 may generateimage 1100 by using the image mask to stripimage 1000 of certain portions ofimage 1000. For example,server 116 generatesimage 1100 by using the image mask to stripimage 1000 of all portions except alarm andserial number portion 1102,performance level portion 1104, and flowlevel portion 1106. In another aspect,server 116 may select a different mask corresponding to features ofimage 1000. For example,server 116 selects a different mask based on the size ofimage 1000 or the GUI version corresponding toimage 1000. For example,server 116 selects a mask based on a software version of theremote link 102. In some aspects,server 116 may select a mask based on the type ofdisplay screen 902 being used. For example, if the image displayed ondisplay screen 902 is not the appropriate image for the first mask selected byserver 116,server 116 determines that the first mask used is not the appropriate mask forimage 1000 and select a different mask based on the image currently being displayed ondisplay screen 902. In one aspect,server 116 may wait to mask portions ofimage 1000 until the appropriate image is being displayed ondisplay screen 902. In another aspect,server 116 may select a mask based on the amount of data to be extracted fromimage 1000. -
Process 1300 continues by generating a second image with the remaining portions of the first image atstep 1306. For example,server 116 generatesimage 1200 by performing image processing to clarify and enlarge alarm andserial number portion 1102,performance level portion 1104, and flowrate portion 1106. In one aspect,server 116 may generateserial number portion 1202 andalarm portion 1204 fromserial number portion 1102,performance level portion 1206 fromperformance level portion 1104, and presentflow rate portion 1208, maxflow rate portion 1210, and minflow rate portion 1212 fromflow rate portion 1106. -
Process 1300 finishes by extracting, using optical character recognition, data from the second image atstep 1308. For example, the serial number ofmedical device 624, the type of alarm currently being indicated, the performance level of thepump 800, and the flow rate are extracted fromimage 1200 usingOCR unit 630. In one aspect,OCR unit 630 may select a pixel from the second image to determine an alarm severity fromalarm portion 1204. For example,OCR unit 630 determines the color of the pixel and determine the alarm severity based on the color of the pixel. In some aspects,OCR unit 630 may select two different pixels from the second image to determine the alarm severity fromalarm portion 1204. For example,storage 120 stores a database of alarm types and alarm severity levels and corresponding alarm color.Server 116 may access the database stored instorage 120 and determine the alarm type and severity level associated with the color of the pixel or pixels fromalarm portion 1204. In another aspect,OCR unit 630 may select a first pixel at a first time and a second pixel at a second time. For example, in some instances whereimage 1000 is defective when received byserver 116,server 116 is not able to determine the color of a pixel from the second image at the first time.Server 116 receives anotherimage 1000 to determine the color of another pixel from the second image at the second time. In other aspects,server 116 determines the alarm severity to be the same as the previous alarm severity ifserver 116 cannot determine the color of the pixel from the two pixels. In another aspect,process 1400, described below, may be used to validate the extracted data from the second image. - A
process 1400 of determining the validity of data from an image is illustrated inFIG. 14 .Process 1400 begins by extracting, using optical character recognition, first data from a first portion of an image atstep 1402. For example, the serial number ofmedical device 624 is extracted fromserial number portion 1202. In one aspect,process 1300, described above, may be used to perform extraction of first data from the first portion of the image. -
Process 1400 continues by comparing the first data to reference data atstep 1404. In one aspect, reference data may include a certain number of characters and/or digits that represent standard formats that may represent the first data. For example, the extracted serial number ofmedical device 624 is compared with possible serial numbers stored in documentdata type storage 120. Additional examples of comparing data to reference data are described in U.S. Pat. No. 9,002,083, entitled “System, Method, and Software for Optical Device Recognition Association,” the entire contents of which are hereby incorporated by reference. -
Process 1400 continues by determining the validity of the first data based on the comparison atstep 1406. For example, if the extracted serial number ofmedical device 624 does not match a standard format for a serial number consisting e.g. of a certain number of characters and/or digits, the extracted serial number is not valid. In one aspect, if the extracted serial number does not comprise six digits and the standard format for the serial number is six digits, the extracted serial number is not valid. In another aspect,step 1406 repeats a certain amount of times before making a final determination. For example, if three attempts are required to validate the first data, the first data is determined to be valid if comparison results in a positive match three times. If during the three attempts one of the comparisons does not result in a positive match, the first data is determined to not be valid. - In response to determining that the first data is valid based on the comparison,
process 1400 continues to step 1408. Atstep 1408,process 1400 continues by extracting, using optical character recognition, second data from a second portion of the second image. For example, the performance level ofpump 800 is extracted fromperformance level portion 1206. As described in relation toFIG. 12 , examples of the characters in theperformance level portion 1206 may include “OFF”, “P-0”, “P-1”, “P-2”, “P-3”, “P-4”, “P-5”, “P-6”, “P-7”, “P-8”, and “P-9”. In one aspect,process 1400 may continue to step 1402 until all data from the portions ofimage 1200 have been extracted. - In response to determining that the first data is not valid based on the comparison.
Process 1400 continues to step 1410. Atstep 1410,process 1400 continues by broadcasting a signal indicating that the first data is not valid. For example,server 116 notifies theremote link 102 thatimage 1000 produced invalid first data. -
Process 1400 finishes by receiving a third image illustrating data from the medical device atstep 1412. For example,remote link 102 captures another image similar to 1000 usingimage capture unit 628 andserver 116 may receive the similar image fromremote link 102. In one aspect,process 1400 may continue to step 1402 until all data from the portions ofimage 1200 have been extracted. -
FIG. 15 is a schematic representation of aremote link architecture 1500.Remote link architecture 1500 includesremote link 102,client device 104,cloud 1502,PKI provider 1510,external sensor 1508, andmedical device 624.Cloud 1502 may includenetwork 1504 andserver 1506.Medical device 624 may includeinternal sensor 626. -
Remote link 102 may be embedded in amedical device 624 that is monitoring a patient at a hospital, clinic, the patient's house, or another location.Remote link 102 may capture images and deliver video streams from the display ofmedical device 624 and transmit the images and video to thenetwork 1504.Remote link architecture 1500 may comprise multipleremote links 102.Remote link 102 interacts with the rest ofremote link architecture 1500 throughnetwork 1504. -
Medical device 624 may be a medical device that is monitoring a patient at a hospital, clinic, the patient's house, or another location.Medical device 624 includes asensor 626 that may be measuring and recording health signals from a patient. Thesensor 626 may be a pressure sensor, temperature sensor, flow rate sensor, voltage sensor, current sensor, optical sensor, or audio sensor.External sensor 1508 may also be a pressure sensor, temperature sensor, flow rate sensor, voltage sensor, current sensor, optical sensor, or audio sensor communicatively coupled toremote link 102. -
Client device 104 may be a personal computer, a tablet, or a mobile device with an internet connection. A medical professional usingclient device 104 may be interested in obtaining information from one or multipleremote links 102. Images captured by aremote link 102 may be accessed by theclient device 104. In addition, if the medical professional is interested in observing a live video stream of themedical device 624 embedded withremote link 102, the client device can display the video stream.Remote link architecture 1500 may comprisemultiple client devices 104. Asingle client device 104 may access multipleremote links 102, as long as the client device has access to theremote links 102. -
Server 1506 may include a mechanism for clients to view information, data, and video streams from one or moreremote links 102.Server 1506 may push messages to groups ofclient devices 104. Uponclient device 104 connection to theserver 1506, theclient device 104 will register to theserver 1506 for messages for either one or multipleremote links 102. Theserver 1506 will receive messages that will be applicable to one or moreremote links 102. This message with associated data will be broadcasted to all connectedclient devices 104 for updates from thoseremote links 102.Cloud 1502 represents anetwork 1504 of internet-based devices and connections such asservers 1506, storage, and applications. -
PKI provider 1510 may include a mechanism for generating a public-private key pair associated with aremote link 102. The private key may be loaded into theremote link 102 during the manufacturing or distribution of theremote link 102. ThePKI provider 1510 may store the public-private key pairs associated with multipleremote links 102. With respect to a particular data module, thePKI provider 1510 may be a manufacturer of the data module, e.g.,Remote Link 102. The manufacturer may pre-load the data module at the time of manufacture with a public/private key pair. The manufacturer may also, at the same time or another time, provide a copy of the public/private key pair to theserver 1506, which may be controlled and/or owned by a monitor of and/or operator of themedical device 624 and/or Remote link 102 orsensor 1508. In another implementation, thePKI provider 1510 may be an operator of theRemote link 102, e.g., a hospital, capable of loading a public/private key pair into the remote link via a data port or a data network connection. In yet another configuration, the data module, e.g.,Remote link 102, may be configured to remotely access thePKI provider 1510 via a data network when, for example, the data module is connected to a data network during initialization, device startup, or registration. In some configurations, thePKI Provider 1510 is included as part of thecloud 1502. In certain implementations, theserver 1506 includes thePKI provider 1510 such as including a function that enables generation of public/private key pairs. - A
process 1600 of authenticating a connection between aremote link 102 and aserver 1206 while in online mode is illustrated inFIG. 16 .Process 1600 begins by connecting aclient device 104 to thecloud 1502 at step 1602. For example, a user may useclient device 104 and login information to connect to a web user interface of thecloud 1502. -
Process 1600 continues by connecting aremote link 102 to thecloud 1502 atstep 1604. For example,remote link 102 may validate the connection to thecloud 1502 by transmitting messages to thecloud 1502 and receiving messages from thecloud 1502. -
Process 1600 continues by requesting for theremote link 102 to start a maintenance mode atstep 1606. For example, the user may useclient device 104 to transmit a request to cloud 1502 to start a maintenance mode at the remote link. The maintenance mode would allow the user to access the internal settings and stored data of theremote link 102. -
Process 1600 continues by transmitting a request from thecloud 1502 to theremote link 102 to start maintenance mode atstep 1608. For example,server 1506 may transmit a message toremote link 102 usingnetwork 1504. The message may include a request for theremote link 102 to start maintenance mode. The “Start Maintenance Mode” message may include a time stamp based on a time maintained by thecloud 1502 where the timestamp corresponds to the time that a “Start Maintenance Mode” message is sent to theremote link 102, the time corresponding to a time when thecloud 1502 calculates the password at step 1614, or any other time specified by thecloud 1502. The time may include TAI, UTC, and/or UNIX time. -
Process 1600 continues by setting theremote link 102 in maintenance mode atstep 1610. For example, once theremote link 102 receives a request to start maintenance mode, theremote link 102 may change its operating mode to maintenance mode. -
Process 1600 continues by calculating a password at theremote link 102 atstep 1612. For example, theRLM device 102, e.g.,remote link 102, may use a password generator or pseudo-random number generator to generation a password or authentication key. TheRLM device 102 receives the time stamp from thecloud 1502 via the “Start Maintenance Mode” message. TheRLM Device 102 uses at least the time stamp and its private key as inputs into the password generator or pseudo-random number generator to generate the password or authentication key. The password may be alpha-numeric. The password length may be 4, 8, 10, 12, 20, or greater characters in length. An authentication key may include a 32 bit, 64 bit, 128 bit, 512 bit, 1024 bit, 2048 bit, or larger authentication key. The password generation or pseudo-random number generation may be implemented according to the requirements specified by, for example, RFC 4086 and/or RFC 6328. -
Process 1600 continues by calculating a password at thecloud 1502 at step 1614. Thecloud 1502 may include a server, e.g.,server 1506 ofFIG. 15 , that calculates the password. Thesever 1506 may be loaded with the public/private key. Theserver 1506 may receive the public/private key pair from thePKI Provider 1510 formultiple RLM Devices 102 and store them. In one implementation, theserver 1506 uses the time stamp and the private key associated with aparticular RLM Device 102 to generate the password or authentication key to enable authentication access to thatparticular RLM Device 102. -
Process 1600 finishes by displaying the generated password on the user interface of thecloud 1502 atstep 1616. Additionally or alternatively, thecloud 1502 may store the generated password at, for example,server 1506. For example, once the password has been generated at theserver 1506, the user may useclient device 104 to receive the password from theserver 1506 usingnetwork 1504. In certain implementations, the user or actor may not need to see the generated password or authentication key where thecloud 1502 provides the generated password or generated authentication key to aclient device 104 to allow theclient device 104 to authenticate itself to a data module, e.g.,remote link 102. When a password is used, theclient device 104 may present the password to the data module so that the data module can compare its password to the presented password. If the passwords match, the data module allows access by theclient device 104. Theclient device 104 and data module, e.g.,remote link 102, may set up a protected secure sockets layer (SSL) or TLS session and/or VPN connection to protect the password from eavesdropping during an access request and/or maintenance mode request. Alternatively, theclient device 104 may present an authentication key to the data module during an access request. As a further alternative, theclient device 104 and data module may use a challenge-response protocol or other cryptographic authentication scheme based on the authentication key or password to enable to data module to authenticate theclient device 104 for subsequent access to the data module. - A
process 1700 of authenticating a connection between aremote link 102 and aserver 1506 while in offline mode is illustrated inFIG. 17 .Process 1700 begins by connecting aclient device 104 to thecloud 1502 atstep 1702. For example, a user may useclient device 104 and login information to connect to a web user interface of thecloud 1502. -
Process 1700 continues by requesting for theremote link 102 to start a maintenance mode atstep 1704. For example, the user may useclient device 104 to transmit a request to cloud 1502 to start a maintenance mode at the remote link. The maintenance mode would allow the user to access the internal settings and stored data of theremote link 102. -
Process 1700 continues by calculating a password at thecloud 1502 atstep 1706. For example,server 1506 may use the private key associated with theremote link 102 and a time, e.g., current time, determined by theserver 1506 as inputs into a password generator or pseudo-random number generator to generation the password or an authentication key. The password may be alpha-numeric. The password length may be 4, 8, 10, 12, 20, or greater characters in length. The password generation or pseudo-random number generation may be implemented according to the requirements specified by, for example, RFC 4086 and/or RFC 6328. In Offline mode, the time stamp may be based on a time maintained by thecloud 1502 where the timestamp corresponds to the time that a “Start Maintenance Mode” message is initiated by a user or actor, the time corresponding to a time when thecloud 1502 calculates the password atstep 1706, or any other time specified by thecloud 1502. The time may be by rounded so as to establish a time interval whereby thecloud 1502 andRLM Device 102 have an overlapping and/or synchronized time interval whereby the separately determined times by thecloud 1502 and theRLM Device 102 are the same. In this way, the input times and private keys used to calculate the password or an authentication key are same, ensuring that the calculated passwords or authentication keys at thecloud 1502 and theRLM Device 102 are the same. The time interval may be adjustable to set a floor or ceiling of acceptable synchronization precision. For example, the time interval may be 1 second, 10 seconds, 30 seconds, 1 minutes, 5 minutes, 10 minutes, or greater. The longer the time interval, the more likely that the time determined by thecloud 1502 will be the same as the time used by theRLM Device 102, which accounts for deviations in clock timing between thecloud 1502 and theRLM Device 102. This synchronization technique may be used within Online Mode described according toFIG. 16 in addition to, or alternatively to including a timestamp in the “Start Maintenance Mode” message. The time may include TAI, UTC, and/or UNIX time. -
Process 1700 continues by displaying the generated password on the user interface of thecloud 1502 atstep 1708. Additionally or alternatively, thecloud 1502 may store the generated password at, for example,server 1506. Once the password has been generated at theserver 1506, the user may useclient device 104 to receive the password from theserver 1506 usingnetwork 1504. -
Process 1700 continues by setting theremote link 102 in maintenance mode at step 1710. For example, once theremote link 102 receives a request to start maintenance mode, theremote link 102 may change its operating mode to maintenance mode. -
Process 1700 finishes by calculating a password at theremote link 102 atstep 1712. As previously discussed, a password or authentication key may be generated based on at least inputs of a time stamp and the private key of aparticular RLM Device 102 into a password generator or pseudo-random number generator which outputs a password or authentication key associated with theparticular RLM Device 102. In Offline mode, the time stamp may be based on a time maintained by theRLM Device 102 where the timestamp corresponds to the time that a “Start Maintenance Mode” message is initiated by a user or actor, the time corresponding to a time when theRLM Device 102 calculates the password atstep 1712, or any other time specified by theRLM Device 102. The time may be by rounded so as to establish a time interval whereby thecloud 1502 andRLM Device 102 have an overlapping and/or synchronized time interval whereby the separately determined times by thecloud 1502 and theRLM Device 102 are the same. In this way, the input times and private keys used to calculate the password or an authentication key at both thecloud 1502 andRLM Device 102 are same. The time interval may be adjustable to set a floor or ceiling of acceptable synchronization precision. For example, the time interval may be 1 second, 10 seconds, 30 seconds, 1 minutes, 5 minutes, 10 minutes, or greater. The longer the time interval, the more likely that the time determined by thecloud 1502 will be the same as the time used by theRLM Device 102, which accounts for deviations in clock timing between thecloud 1502 and theRLM Device 102. This synchronization technique may be used within Online Mode described according toFIG. 16 in addition to, or alternatively to including a timestamp in the “Start Maintenance Mode” message. The time may include TAI, UTC, and/or UNIX time. - A
process 1800 of authenticating a connection between a remote link (or data module) 102 and aserver 1506 is illustrated inFIG. 18 .Process 1800 begins by assigning a private key of a public-private key pair associated with theremote link 102 atstep 1802. In one aspect,remote link 102 may receive pressure data, temperature data, flow rate data, voltage data, current data, optical data, or audio data from amedical device 624. In another aspect, theremote link 102 may receive data from anexternal sensor 1508. -
Process 1800 continues by storing the private key at thedata module 102 atstep 1804. For example, theremote link 102 may have the private key loaded into theremote link 102 during manufacturing or distribution of theremote link 102. -
Process 1800 continues by storing the private key at theserver 1506 atstep 1806. For example, the private key may be stored by the server after the private key is loaded into the data module. Theserver 1506 may have the private key of multipleremote links 102 stored in internal storage. -
Process 1800 continues by generating a request to access thedata module 102 at aclient device 104 atstep 1808. For example, theclient device 104 may include a user interface configured to display data and receive a user input. A user may use the user interface to generate the request to access thedata module 102. In one aspect, the request to access thedata module 102 may include a request for theremote link 102 to enter into a maintenance mode. -
Process 1800 continues by transmitting the request to theserver 1506 for access to theremote link 102 atstep 1810. For example, the user may use the user interface to transmit the request to theserver 1506. -
Process 1800 continues by receiving, at theserver 1506, the request from theclient device 104 for access to theremote link 102 atstep 1812. For example, the server may receive the request using thenetwork 1504. -
Process 1800 continues by generating, at theremote link 102, an authentication key used to allow authenticated access to theremote link 102 based at least on the private key and a time at step 1814. For example, theremote link 102 may generate the authentication key using thePKI provider 1510 based on the private key and the time. In another aspect, the authentication key may be a one-time authentication key. For example, if theremote link 102 generates an authentication key, the authentication key may only be used once to access theremote link 102. In one aspect, the indication may include the time. The time may be determined by theserver 1506 or may be determined independently by theremote link 102. The time determined by theremote link 102 may be synchronized with the time determined by theserver 1506. In one aspect, the time is synchronized by rounding the time determined by theremote link 102 to a time interval and rounding the time determined by theserver 1506 to the time interval such that the determined times are the same. For example, if the time interval is 5 minutes and the time determined by theremote link 102 is 09:04, the time would be rounded to 09:05. The time interval may be adjustable to set a floor or ceiling of acceptable synchronization precision. In one aspect, the time includes TAI (International Atomic Time), UTC (Coordinated Universal Time), or UNIX time. -
Process 1800 continues by generating, at theserver 1506, the authentication key based on the private key and the time atstep 1816. For example, theserver 1506 may generate the authentication key based on the private key and the time. In another aspect, the authentication key may be a one-time authentication key. For example, if theserver 1506 generates an authentication key, the authentication key may only be used once to access theremote link 102. -
Process 1800 continues byProcess 1800 continues by receiving, at theserver 1506, an indication from theremote link 102 that the authentication key generated at theserver 1506 was entered atstep 1818. For example, theserver 1506 may transmit the authentication key generated at theserver 1506 to theremote link 102 usingnetwork 1504, the user may input the authentication key generated at theserver 1506 into theremote link 102, and theremote link 102 may transmit an indication to theserver 1506 that indicates that the authentication key was entered. Theremote link 102 may include a user interface configured to display data and receive a user input. A user may use theremote link 102 user interface to input the authentication key generated at theserver 1506. -
Process 1800 finishes by determining whether the authentication key generated at theremote link 102 and the authentication key generated at theserver 1506 match atstep 1820. If the authentication key generated at theremote link 102 matches the authentication key generated at theserver 1506, authenticated access is granted atstep 1822. Otherwise, if the authentication key generated at theremote link 102 does not match the authentication key generated at theserver 1506, access is denied atstep 1824. For example, if the authentication key generated at theremote link 102 does not match the authentication key generated at theserver 1506, theremote link 102 can display a message indicating an authentication failure. In one aspect, theremote link 102 may authenticate theclient device 104 using a challenge-response protocol. -
Process 1800 allows for a user to securely connect to aremote link 102 connected to amedical device 624 and access the maintenance mode of theremote link 102. The user may then change the settings and procedures of theremote link 102. For example, the user may change thenetwork 1504 connection settings. If authentication is successful, theremote link 102 may transmit the data to theclient device 104.Process 1800 allows for a user to securely connect to aremote link 102 connected to amedical device 624 and access the data collected by theremote link 102 from the medical device. - A
process 1900 of authenticating a connection between a remote link (or data module) 102 and aserver 1506 is illustrated inFIG. 19 .Process 1900 begins by assigning a private key of a public-private key pair associated with theremote link 102 atstep 1902. -
Process 1900 continues by storing the private key at thedata module 102 atstep 1904. For example, theremote link 102 may have the private key loaded into theremote link 102 during manufacturing or distribution of theremote link 102. -
Process 1900 continues by storing the private key at theserver 1506 atstep 1906. For example, the private key may be stored by the server after the private key is loaded into the data module. Theserver 1506 may have the private key of multipleremote links 102 stored in internal storage. -
Process 1900 continues by receiving data at theremote link 102 from amedical device 624 atstep 1908. For example,remote link 102 may receive pressure data, temperature data, flow rate data, voltage data, current data, optical data, or audio data from amedical device 624. In another aspect, theremote link 102 may receive data from anexternal sensor 1508. -
Process 1900 continues by generating a request to access thedata module 102 at aclient device 104 atstep 1910. For example, theclient device 104 may include a user interface configured to display data and receive a user input. A user may use the user interface to generate the request to access thedata module 102. In one aspect, the request to access thedata module 102 may include a request for theremote link 102 to enter into a maintenance mode. -
Process 1900 continues by transmitting the request to theserver 1506 for access to theremote link 102 atstep 1912. For example, the user may use the user interface to transmit the request to theserver 1506. -
Process 1900 continues by receiving, at theserver 1506, the request from theclient device 104 for access to theremote link 102 atstep 1914. For example, the server may receive the request using thenetwork 1504. -
Process 1900 continues by generating, at theremote link 102, an authentication key used to allow authenticated access to theremote link 102 based at least on the private key and a time at step 1916. For example, theremote link 102 may generate the authentication key using thePKI provider 1510 based on the private key and the time. In another aspect, the authentication key may be a one-time authentication key. For example, if theremote link 102 generates an authentication key, the authentication key may only be used once to access theremote link 102. In one aspect, the indication may include the time. The time may be determined by theserver 1506 or may be determined independently by theremote link 102. The time determined by theremote link 102 may be synchronized with the time determined by theserver 1506. In one aspect, the time is synchronized by rounding the time determined by theremote link 102 to a time interval and rounding the time determined by theserver 1506 to the time interval such that the determined times are the same. For example, if the time interval is 5 minutes and the time determined by theremote link 102 is 09:04, the time would be rounded to 09:05. The time interval may be adjustable to set a floor or ceiling of acceptable synchronization precision. In one aspect, the time includes TAI (International Atomic Time), UTC (Coordinated Universal Time), or UNIX time. -
Process 1900 continues by generating, at theserver 1506, the authentication key based on the private key and the time atstep 1918. For example, theserver 1506 may generate the authentication key based on the private key and the time. In another aspect, the authentication key may be a one-time authentication key. For example, if theserver 1506 generates an authentication key, the authentication key may only be used once to access theremote link 102. -
Process 1900 continues by receiving, at theserver 1506, an indication from theremote link 102 that the authentication key generated at theserver 1506 was entered atstep 1920. For example, theserver 1506 may transmit the authentication key generated at theserver 1506 to theremote link 102 usingnetwork 1504, the user may input the authentication key generated at theserver 1506 into theremote link 102, and theremote link 102 may transmit an indication to theserver 1506 that indicates that the authentication key was entered. Theremote link 102 may include a user interface configured to display data and receive a user input. A user may use theremote link 102 user interface to input the authentication key generated at theserver 1506. -
Process 1900 finishes by determining whether the authentication key generated at theremote link 102 and the authentication key generated at theserver 1506 match atstep 1922. If the authentication key generated at theremote link 102 does not match the authentication key generated at theserver 1506, access is denied atstep 1924. For example, if the authentication key generated at theremote link 102 does not match the authentication key generated at theserver 1506, theremote link 102 can display a message indicating an authentication failure. - Otherwise, if the authentication key generated at the
remote link 102 matches the authentication key generated at theserver 1506, theremote link 102 may transmit the data to theclient device 104 atstep 1926.Process 1900 allows for a user to securely connect to aremote link 102 connected to amedical device 624 and access the data collected by theremote link 102 from the medical device. - It will be understood that while a percutaneous heart pump is described herein, any other medical device can be used on conjunction with the present disclosure. Furthermore, while
FIGS. 8 and 9 show a media device configuration where acontroller 900 is separate from apump 800, one of ordinary skill readily recognizes that a medical device may be configured such that the controller and pump (or other elements) are integrated in the same housing. - Other objects, advantages and aspects of the various aspects of the present invention will be apparent to those who are skilled in the field of the invention and are within the scope of the description and the accompanying Figures. For example, but without limitation, structural or functional elements might be rearranged consistent with the present invention. Similarly, principles according to the present invention could be applied to other examples, which, even if not specifically described here in detail, would nevertheless be within the scope of the present invention.
Claims (20)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/134,213 US11316679B2 (en) | 2017-09-19 | 2018-09-18 | Systems and methods for time-based one-time password management for a medical device |
US17/705,815 US20220321337A1 (en) | 2017-09-19 | 2022-03-28 | Systems and methods for time-based one-time password management for a medical device |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762560448P | 2017-09-19 | 2017-09-19 | |
US16/134,213 US11316679B2 (en) | 2017-09-19 | 2018-09-18 | Systems and methods for time-based one-time password management for a medical device |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/705,815 Continuation US20220321337A1 (en) | 2017-09-19 | 2022-03-28 | Systems and methods for time-based one-time password management for a medical device |
Publications (2)
Publication Number | Publication Date |
---|---|
US20190089533A1 true US20190089533A1 (en) | 2019-03-21 |
US11316679B2 US11316679B2 (en) | 2022-04-26 |
Family
ID=63966065
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/134,213 Active 2039-05-01 US11316679B2 (en) | 2017-09-19 | 2018-09-18 | Systems and methods for time-based one-time password management for a medical device |
US17/705,815 Pending US20220321337A1 (en) | 2017-09-19 | 2022-03-28 | Systems and methods for time-based one-time password management for a medical device |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/705,815 Pending US20220321337A1 (en) | 2017-09-19 | 2022-03-28 | Systems and methods for time-based one-time password management for a medical device |
Country Status (11)
Country | Link |
---|---|
US (2) | US11316679B2 (en) |
EP (2) | EP3685562B1 (en) |
JP (2) | JP7242680B2 (en) |
KR (1) | KR102671124B1 (en) |
CN (2) | CN111345003B (en) |
AU (2) | AU2018337040B2 (en) |
DK (1) | DK3685562T3 (en) |
ES (1) | ES2950636T3 (en) |
IL (2) | IL273355B2 (en) |
SG (1) | SG11202002430PA (en) |
WO (1) | WO2019060281A1 (en) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10824898B2 (en) * | 2019-03-21 | 2020-11-03 | Abiomed, Inc. | Intelligent image segmentation prior to optical character recognition (OCR) |
US10848489B2 (en) * | 2018-12-14 | 2020-11-24 | Daniel Chien | Timestamp-based authentication with redirection |
WO2022047411A1 (en) * | 2020-08-31 | 2022-03-03 | Abbott Diabetes Care Inc. | Secured communications in medical monitoring systems |
US20220076807A1 (en) * | 2017-06-23 | 2022-03-10 | Abiomed, Inc. | Systems and methods for capturing data from a medical device |
WO2022150523A1 (en) * | 2021-01-07 | 2022-07-14 | Abiomed, Inc. | Network-based medical apparatus control and data management systems |
US11438145B2 (en) | 2020-05-31 | 2022-09-06 | Daniel Chien | Shared key generation based on dual clocks |
US11509463B2 (en) | 2020-05-31 | 2022-11-22 | Daniel Chien | Timestamp-based shared key generation |
CN115866334A (en) * | 2023-02-27 | 2023-03-28 | 成都华域天府数字科技有限公司 | Data processing method for cutting and associating content in video flow |
US11759110B2 (en) * | 2019-11-18 | 2023-09-19 | Koninklijke Philips N.V. | Camera view and screen scraping for information extraction from imaging scanner consoles |
US20240031133A1 (en) * | 2019-12-19 | 2024-01-25 | Gambro Lundia Ab | A medical equipment, an authentication server and methods for authorizing a user access to an equipment via an equipment user interface |
US12126995B2 (en) * | 2021-09-01 | 2024-10-22 | Abbott Diabetes Care Inc. | Secured communications in medical monitoring systems |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE302441T1 (en) * | 2002-01-18 | 2005-09-15 | Ericsson Telefon Ab L M | LOADING DATA INTO A MOBILE DEVICE |
US7801819B2 (en) * | 2003-10-03 | 2010-09-21 | Sony Corporation | Rendering rights delegation system and method |
KR101005686B1 (en) * | 2003-12-30 | 2011-01-05 | 엘지전자 주식회사 | Camera function remote control method for mobile communication terminal with camera |
US9055107B2 (en) * | 2006-12-01 | 2015-06-09 | Microsoft Technology Licensing, Llc | Authentication delegation based on re-verification of cryptographic evidence |
JP2008270884A (en) * | 2007-04-16 | 2008-11-06 | Oki Electric Ind Co Ltd | Communication equipment accommodation device, communication equipment, authentication state estimation device, authentication system, authentication program, and authentication method |
US20090037729A1 (en) * | 2007-08-03 | 2009-02-05 | Lawrence Smith | Authentication factors with public-key infrastructure |
US8848924B2 (en) * | 2008-06-27 | 2014-09-30 | University Of Washington | Privacy-preserving location tracking for devices |
CN102111271B (en) * | 2009-12-25 | 2015-07-29 | 卡巴斯克 | Network security certification method and device thereof |
US8364964B2 (en) * | 2009-12-29 | 2013-01-29 | General Instrument Corporation | Registering client devices with a registration server |
DE102012201505B4 (en) * | 2012-02-02 | 2013-08-22 | Siemens Aktiengesellschaft | Authentication system for mobile devices for data exchange of medical data |
WO2014080377A1 (en) * | 2012-11-26 | 2014-05-30 | Fisher & Paykel Healthcare Limited | Method and system for accessing centralised patient data |
US9002083B2 (en) | 2013-02-15 | 2015-04-07 | Covidien Lp | System, method, and software for optical device recognition association |
US9215075B1 (en) * | 2013-03-15 | 2015-12-15 | Poltorak Technologies Llc | System and method for secure relayed communications from an implantable medical device |
US9350548B2 (en) * | 2014-05-30 | 2016-05-24 | Tokenym, LLC | Two factor authentication using a protected pin-like passcode |
GB201413836D0 (en) * | 2014-08-05 | 2014-09-17 | Arm Ip Ltd | Device security apparatus and methods |
US9779233B2 (en) * | 2015-03-05 | 2017-10-03 | Ricoh Co., Ltd. | Broker-based authentication system architecture and design |
US10122709B2 (en) * | 2015-05-12 | 2018-11-06 | Citrix Systems, Inc. | Multifactor contextual authentication and entropy from device or device input or gesture authentication |
US9848075B1 (en) * | 2015-05-14 | 2017-12-19 | Invoy Technologies, Llc | Communication system for pairing user devices with medical devices |
US9774579B2 (en) * | 2015-07-27 | 2017-09-26 | Duo Security, Inc. | Method for key rotation |
US10484372B1 (en) * | 2015-12-14 | 2019-11-19 | Amazon Technologies, Inc. | Automatic replacement of passwords with secure claims |
KR101618692B1 (en) * | 2016-01-06 | 2016-05-09 | 주식회사 센스톤 | User authentication method for security enhancement |
US9980140B1 (en) * | 2016-02-11 | 2018-05-22 | Bigfoot Biomedical, Inc. | Secure communication architecture for medical devices |
US10541994B2 (en) * | 2016-04-22 | 2020-01-21 | Dell Products, L.P. | Time based local authentication in an information handling system utilizing asymmetric cryptography |
US9589397B1 (en) * | 2016-06-06 | 2017-03-07 | American Megatrends, Inc. | Securing internet of things (IoT) based entrance/exit with multi-factor authentication |
US10402797B2 (en) * | 2016-06-20 | 2019-09-03 | Cyber Armor Pte Ltd | Secured authentication and transaction authorization for mobile and internet-of-things devices |
US20180007037A1 (en) * | 2016-07-01 | 2018-01-04 | Kenneth Wade Reese | Transaction-specific shared secret in one-time password device |
CN111526152B (en) * | 2016-08-12 | 2022-02-11 | 创新先进技术有限公司 | Authentication method, authentication equipment and authentication client |
-
2018
- 2018-09-18 DK DK18793053.2T patent/DK3685562T3/en active
- 2018-09-18 AU AU2018337040A patent/AU2018337040B2/en active Active
- 2018-09-18 EP EP18793053.2A patent/EP3685562B1/en active Active
- 2018-09-18 CN CN201880070631.7A patent/CN111345003B/en active Active
- 2018-09-18 CN CN202310171618.3A patent/CN116049895A/en active Pending
- 2018-09-18 IL IL273355A patent/IL273355B2/en unknown
- 2018-09-18 US US16/134,213 patent/US11316679B2/en active Active
- 2018-09-18 SG SG11202002430PA patent/SG11202002430PA/en unknown
- 2018-09-18 KR KR1020207011152A patent/KR102671124B1/en active IP Right Grant
- 2018-09-18 JP JP2020536928A patent/JP7242680B2/en active Active
- 2018-09-18 EP EP23163730.7A patent/EP4221090A1/en active Pending
- 2018-09-18 WO PCT/US2018/051454 patent/WO2019060281A1/en unknown
- 2018-09-18 ES ES18793053T patent/ES2950636T3/en active Active
-
2022
- 2022-03-28 US US17/705,815 patent/US20220321337A1/en active Pending
-
2023
- 2023-03-08 JP JP2023035123A patent/JP2023065660A/en active Pending
- 2023-04-14 AU AU2023202305A patent/AU2023202305A1/en active Pending
- 2023-06-28 IL IL304106A patent/IL304106A/en unknown
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220076807A1 (en) * | 2017-06-23 | 2022-03-10 | Abiomed, Inc. | Systems and methods for capturing data from a medical device |
US10848489B2 (en) * | 2018-12-14 | 2020-11-24 | Daniel Chien | Timestamp-based authentication with redirection |
US11587337B2 (en) | 2019-03-21 | 2023-02-21 | Abiomed, Inc. | Intelligent image segmentation prior to optical character recognition (OCR) |
US10824898B2 (en) * | 2019-03-21 | 2020-11-03 | Abiomed, Inc. | Intelligent image segmentation prior to optical character recognition (OCR) |
US11759110B2 (en) * | 2019-11-18 | 2023-09-19 | Koninklijke Philips N.V. | Camera view and screen scraping for information extraction from imaging scanner consoles |
US20240031133A1 (en) * | 2019-12-19 | 2024-01-25 | Gambro Lundia Ab | A medical equipment, an authentication server and methods for authorizing a user access to an equipment via an equipment user interface |
US11438145B2 (en) | 2020-05-31 | 2022-09-06 | Daniel Chien | Shared key generation based on dual clocks |
US11509463B2 (en) | 2020-05-31 | 2022-11-22 | Daniel Chien | Timestamp-based shared key generation |
US20220070666A1 (en) * | 2020-08-31 | 2022-03-03 | Abbott Diabetes Care Inc. | Secured communications in medical monitoring systems |
WO2022047411A1 (en) * | 2020-08-31 | 2022-03-03 | Abbott Diabetes Care Inc. | Secured communications in medical monitoring systems |
WO2022150523A1 (en) * | 2021-01-07 | 2022-07-14 | Abiomed, Inc. | Network-based medical apparatus control and data management systems |
US12126995B2 (en) * | 2021-09-01 | 2024-10-22 | Abbott Diabetes Care Inc. | Secured communications in medical monitoring systems |
CN115866334A (en) * | 2023-02-27 | 2023-03-28 | 成都华域天府数字科技有限公司 | Data processing method for cutting and associating content in video flow |
Also Published As
Publication number | Publication date |
---|---|
JP7242680B2 (en) | 2023-03-20 |
US11316679B2 (en) | 2022-04-26 |
EP3685562B1 (en) | 2023-05-10 |
US20220321337A1 (en) | 2022-10-06 |
CN111345003A (en) | 2020-06-26 |
DK3685562T3 (en) | 2023-07-24 |
IL273355A (en) | 2020-05-31 |
AU2023202305A1 (en) | 2023-05-11 |
KR20240093973A (en) | 2024-06-24 |
JP2020534767A (en) | 2020-11-26 |
WO2019060281A1 (en) | 2019-03-28 |
JP2023065660A (en) | 2023-05-12 |
SG11202002430PA (en) | 2020-04-29 |
EP4221090A1 (en) | 2023-08-02 |
EP3685562A1 (en) | 2020-07-29 |
KR102671124B1 (en) | 2024-05-31 |
AU2018337040A1 (en) | 2020-04-09 |
CN116049895A (en) | 2023-05-02 |
IL273355B2 (en) | 2023-12-01 |
ES2950636T3 (en) | 2023-10-11 |
IL304106A (en) | 2023-09-01 |
IL273355B1 (en) | 2023-08-01 |
KR20200053595A (en) | 2020-05-18 |
CN111345003B (en) | 2023-04-25 |
AU2018337040B2 (en) | 2023-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220321337A1 (en) | Systems and methods for time-based one-time password management for a medical device | |
US20220076807A1 (en) | Systems and methods for capturing data from a medical device | |
CN107251035A (en) | Account recovers agreement | |
WO2017047172A1 (en) | Information processing device, information processing method, and program and mapping server | |
EP3353946A1 (en) | Secure enrolment of security device for communication with security server | |
US10375492B2 (en) | Method of fitting a hearing assistance device | |
EP2135449A2 (en) | Connecting a camera to a network | |
US20180176503A1 (en) | Signature generation system, signature generation apparatus, and signature generation method | |
KR102720828B1 (en) | Systems and methods for time-based one-time password management for a medical device | |
CN104065913A (en) | Instant messaging client | |
KR20240154698A (en) | Systems and methods for time-based one-time password management for a medical device | |
KR101970200B1 (en) | Method and system for multiple social network service live broadcasting at the same time based on image record apparatus | |
CN112437244A (en) | Service recovery method, device, terminal equipment and storage medium | |
KR20170082882A (en) | Network video recorder and method for blocking video data using the same | |
EP4290857A1 (en) | A method and a device for providing data from a network camera | |
US20240048539A1 (en) | Network transport independent encrypted sensor data transport system and methods | |
KR102476347B1 (en) | CCTV management system including live video sharing function and method of video sharing using the same | |
WO2017193651A1 (en) | Terminal control method and apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
AS | Assignment |
Owner name: ABIOMED, INC., MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:AGNELLO, ALESSANDRO SIMONE;REEL/FRAME:047557/0259 Effective date: 20181116 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
CC | Certificate of correction |