System and method for updating firmware of medical devices while minimizing clinical impact
By receiving and storing new configuration packages in the control module of medical equipment and transmitting the new version of firmware to the functional module, the problem of cumbersome update process of medical equipment and incompatibility with the equipment is solved, and fast, economical and efficient firmware updates are achieved.
Patent Information
- Application Number
- CN202080064638.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-07-15
- Filing Date
- 2020-07-14
- Publication Date
- 2025-06-06
- Estimated Expiration
- 2040-07-14
AI Technical Summary
The firmware update process of medical equipment is cumbersome and may cause the equipment to be unavailable for a long time, increasing the operating costs of medical facilities, and incompatibility between equipment.
The new configuration packet is received through the control module of the patient care device, stored in the first storage bank of the control module, and upon receiving the new configuration packet, the current configuration packet is stored in the second storage bank. The control module determines whether the new configuration package includes a new version of firmware for the connected functional module and transmits the new version of firmware to the functional module and stores it in a different memory bank than the currently used firmware.
The firmware update of medical devices with minimal clinical impact is achieved, reducing the time and cost of the update process, and solving compatibility issues between devices.
Smart Images

Figure CN114402287B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims the benefit of priority to U.S. patent application serial number 62 / 874,445, filed on July 15, 2019, entitled “SYSTEMS AND METHODS FOR UPDATING FIRMWARE OF MEDICAL DEVICES WHILE MINIMIZING CLINICAL IMPACT,” which is a non-provisional, the entirety of which is incorporated herein by reference. Technical Field
[0003] This application is primarily concerned with updating the firmware of medical devices such as infusion devices. Background Art
[0004] Healthcare facilities, such as hospitals, typically include a large number of medical devices. Each medical device executes a specific version of firmware. Due to the large number of medical devices within a healthcare facility, it can be cumbersome and time-consuming for the technicians of the healthcare facility to maintain the medical devices and ensure that each medical device is compatible with other medical devices in the healthcare facility. In addition, incompatibility between medical devices may cause the medical devices to be unusable for a considerable period of time, thereby increasing the operating costs of the medical facility. Summary of the invention
[0005] In one or more embodiments, a computer-implemented method includes receiving, by a control module of a patient-care device, a new configuration package, wherein the new configuration package includes a new version of firmware for at least one of the control module and a first functional module of the patient-care device. The method includes storing, by the control module, the new configuration package in a first storage volume of the control module, wherein when the new configuration package is received, a second configuration package is stored in a second storage volume of the control module, and wherein the second configuration package includes a current version of firmware for at least one of the control module and the first functional module. The method includes determining, by the control module based on information associated with the new configuration package, whether the new configuration package includes a new version of firmware for a first functional module connected to the control module. The method includes transmitting, by the control module, the new version of firmware to the first functional module based on determining that the new version of firmware is included, wherein the new version is stored on the first functional module in a storage volume different from a storage volume currently storing firmware currently used by the first functional module. Other aspects include corresponding systems, apparatus, and computer program products for implementing the method.
[0006] In one or more embodiments, a system includes: a first functional module and a control module. The control module includes a memory and one or more processors, the one or more processors being configured to execute instructions stored on the memory so that the control module receives a new configuration package, wherein the new configuration package includes a new version of firmware for at least one of the control module and the first functional module. The one or more processors are configured to execute instructions so that the control module: stores the new configuration package in a first storage body of the control module, wherein when the new configuration package is received, a second configuration package is currently stored in a second storage body of the control module, and wherein the second configuration package includes a current version of firmware for at least one of the control module and the first functional module. The one or more processors are configured to execute instructions so that the control module: determines whether the new configuration package includes a new version of firmware for a first functional module connected to the control module. The one or more processors are configured to execute instructions so that the control module: when including a new version of firmware, transmits the new version of firmware to the first functional module, wherein the new version is stored on the first functional module in a storage body different from a storage body that currently stores firmware currently used by the first functional module.
[0007] It should be understood that other configurations of the subject technology will become apparent to those skilled in the art from the following detailed description, wherein various configurations of the subject technology are shown and described by way of illustration. As will be appreciated, the subject technology can have other and different configurations, and its several details can be modified in various other aspects, all without departing from the scope of the subject technology. Therefore, the drawings and detailed description are considered to be illustrative in nature, rather than restrictive. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] For a better understanding of the various described embodiments, reference should be made to the following detailed description taken in conjunction with the following drawings. Like reference numerals refer to corresponding parts throughout the drawings and description.
[0009] Figure 1A-Figure 1C An example of an institutional patient care system for a healthcare organization is depicted in accordance with an illustrative embodiment.
[0010] Figure 2A-2D Depicted are examples of transmission of configuration packages between various elements of an institutional patient care system in accordance with an illustrative embodiment.
[0011] Figure 3A-3C An example of transmission of a version of firmware in a patient-care device is depicted in accordance with an illustrative embodiment.
[0012] Figure 4A-4B An example of transmission of an activation signal and execution of a corresponding version of firmware is depicted in accordance with an illustrative embodiment.
[0013] Figure 5A-5D An example of transmission and execution of versions of firmware in a patient-care device is depicted in accordance with an illustrative embodiment.
[0014] Figure 6A-6C Another example of transmission and execution of a version of firmware in a patient-care device is depicted in accordance with an illustrative embodiment.
[0015] Figure 7A-7D Another example of transmission and execution of a version of firmware in a patient-care device is depicted in accordance with an illustrative embodiment.
[0016] Figure 8 is a flow chart of an example method for transmitting and executing firmware by a control module of a patient-care device in accordance with an illustrative embodiment.
[0017] Fig. 9 is a flowchart of an example method for receiving and executing firmware by a functional module of a patient-care device in accordance with an illustrative embodiment.
[0018] Fig.10 is a flow chart of an example method of detecting, by a control module, connection of a functional module and sending firmware by the control module in accordance with an illustrative embodiment.
[0019] Fig.11 is a conceptual diagram illustrating an example electronic system 1100 for automated provisioning of medical devices in accordance with aspects of the subject technology. DETAILED DESCRIPTION
[0020] The detailed description set forth below is intended as a description of various configurations disclosed in this topic, and is not intended to represent a unique configuration in which this topic disclosure can be practiced. The accompanying drawings are incorporated herein and constitute a part of the detailed description. The detailed description includes specific details, and the purpose is to provide a deep understanding of this topic disclosure. However, it is obvious to those skilled in the art that this topic disclosure can be practiced without these specific details. In some examples, structures and components are shown in block diagram form to avoid blurring the concepts disclosed in this topic. For ease of understanding, similar components are marked with the same element number.
[0021] The terms used in the description of the various embodiments described herein are only for the purpose of describing specific embodiments, and are not intended to be restrictive. As used in the description of the various embodiments and the appended claims, unless the context clearly indicates, the singular forms "one", "an" and "the" are intended to include plural forms as well. It should also be understood that the term "and / or" as used herein refers to and includes any and all possible combinations of one or more associated listed terms. It will also be understood that the terms "includes", "including", "comprises" and / or "comprising" specify the presence of stated features, steps, operations, elements and / or components when used in the specification, but do not exclude the presence or addition of one or more other features, steps, operations, elements, components and / or their groups.
[0022] The present disclosure generally relates to updating medical devices while minimizing the clinical impact during the update process. A medical device may be initially configured during manufacturing or by a vendor to allow communication with other medical devices of a medical facility (e.g., via a network). During the life of the medical device, updates to the configuration of the medical device may be necessary. However, installing updates on a medical device may be time consuming and may cause the medical device to be unavailable for a period of time, which may hinder the day-to-day operation of the medical facility. The systems and techniques described herein allow for the deployment of configuration packages to medical devices, such as a multi-channel medical system. A deployable configuration package may include firmware or firmware updates for one or more medical devices that communicate with each other or with other external systems or medical devices that are not updated. In addition, a configuration package for a multi-channel medical system may include firmware, firmware for each channel of the medical system or for each modular device (or associated device controller) connected to the medical system. Reference Figure 1A-10 ,This article describes additional details for configuring packages and updating medical devices.
[0023] Figure 1A An example of an institutional patient care system 100 for a healthcare organization in accordance with aspects of the subject technology is depicted. Figure 1AIn the present invention, patient care devices 220a, 220b, 220c (collectively referred to as PCD 220) may include various medical devices, such as infusion pumps, vital signs monitors, medication compounding equipment (e.g., storage cabinets, suitcases), medication preparation equipment, automatic compounding equipment, modules coupled to one of the above devices (e.g., a syringe pump module configured to be attached to an infusion pump), or other similar devices. Each PCD 220 is connected to the internal healthcare network 105 by a transmission channel (such as, transmission channels 110a, 110b, 110, collectively referred to as transmission channels 110). Transmission channel 110 can be or include one or more wired or wireless transmission channels, such as an 802.11 wireless local area network (LAN). In some embodiments, network 105 also includes computer systems located in various departments throughout the hospital. For example, Figure 1A The network 105 optionally includes computer systems associated with an admissions department, a billing department, a biomedical engineering department, a clinical laboratory, a central supply department, one or more unit station computers, and / or a medical decision support system. As further described below, the network 105 may include discrete sub-networks. In the described example, the network 105 includes a device network 106 through which the patient care devices 220 (and other devices) communicate in accordance with normal operations; and a supply network 107 through which the devices can connect at startup to load certain parameters required for operation within the institutional patient care system 100 environment.
[0024] In addition, the institutional patient care system 100 can incorporate a separate device management server 102, the functionality of which will be described in more detail below. In addition, although the device management server 102 is shown as a separate server, the functionality and programming of the device management server 102 can be incorporated into another computer, such as, for example, a hospital information system server, if the engineers designing the institution's information system require this. The institutional patient care system 100 can also include one or more device terminals 101 for connecting and communicating with the device management server 102. The device terminal 101 can include a personal computer, a personal data assistant, a mobile device (such as a laptop, a tablet computer, an augmented reality device, or a smart phone), which is configured with software for communicating with the device management server 102 via a network 105.
[0025] Patient care device 220 includes a system for providing patient care, such as described in U.S. Patient No. 5,713,856 to Eggers et al., which is incorporated herein by reference for this purpose. Patient care device 220 may include one or more functional modules. Examples of functional modules may include or incorporate pumps, physiological monitors (e.g., heart rate, blood pressure, ECG, EEG, pulse oximeters, and other patient monitors), therapeutic devices, and other drug delivery devices that may be used in accordance with the teachings set forth herein. For example, Figure 1B As shown, a patient care device 220 (such as patient care device 220a) may include a functional module 202 (e.g., a pump), another functional module 203 (e.g., a drug delivery device). Figure 1B In the depicted example shown, the patient-care device 220 may include a control module 201 (also referred to as an interface unit 201 ) connected to one or more functional modules 202 , 203 . Figure 1C Additional details of PCD 220 are shown.
[0026] Now go to Figure 1C , a block diagram of a PCD 220 is shown. As described above, a PCD 220 (such as PCD 220a) may include a control module 201 connected to functional modules 202, 203. The control module 201 may include: a central processing unit (CPU) 50 connected to a memory (e.g., a random access memory (RAM) 58), and one or more interface devices, such as a user interface device 54, an encoded data input device 60, a network connection 52, and an auxiliary interface 62 for communicating with additional modules or devices. The control module 201 may include: a main non-volatile storage device unit 56 (such as a hard disk drive and / or non-volatile flash memory) for storing software and data and one or more internal buses 64 for interconnecting the aforementioned elements.
[0027] In some embodiments, the user interface device 54 is a touch screen for displaying information to the user and allowing the user to input information by touching a defined area of the screen. The user interface device 54 may include additional or alternative devices for displaying and inputting information, such as a monitor, printer, keyboard, soft keys, mouse, trackball and / or light pen. The data input device 60 may be a bar code reader capable of scanning and interpreting data printed in a bar code format. The data input device 60 may be an additional or alternative device for inputting encoded data into a computer, such as a device for reading a magnetic stripe, a radio frequency identification (RFID) device (whereby the digital data encoded in the RFID tag or smart tag (as defined below) is captured by the data input device 60 via radio waves), a PCMCIA smart card, a radio frequency card, a memory stick, a CD, a DVD, or other analog or digital storage device media that can be directly or indirectly accessed by the data input device 60. Other examples of the data input device 60 include a voice activation or recognition device or a portable personal data assistant (PDA). Depending on the type of interface device used, the user interface device 54 and the data input device 60 may be the same device. Although the data input device 60 is Figure 1C 1 and 2. The data input device 60 is shown as being disposed within the interface unit 14, but it should be appreciated that the data input device 60 can be integrated within the pharmacy system 34, or located externally and communicate with the pharmacy system 34 via an RS-232 serial interface or other appropriate communication means. The auxiliary interface 62 can be an RS-232 communication interface, however, other devices for communicating with peripheral devices, such as printers, patient monitors, infusion pumps, or other medical devices, can be used without departing from the subject technology. In addition, the data input device 60 can be a separate functional module (such as, functional modules 202 and 203), and can be configured to communicate with the control module 201 or another system on the network using appropriate programming and communication protocols.
[0028] The network connection 52 may be a wired or wireless connection, such as via Ethernet, WiFi, BLUETOOTH, an integrated services digital network (ISDN) connection, a digital subscriber line (DSL) modem, or a cable modem. A direct or indirect network connection may be used, including but not limited to: a telephone modem, a MIB system, an RS232 interface, an auxiliary interface, an optical link, an infrared link, a radio frequency link, a microwave link, or a WLANS connection or other wireless connection. Figure 1C As shown, the patient-care device 220 can be communicatively coupled to the network 105 via the network connection 52 .
[0029] Functional modules 202, 203 may be implemented as devices for providing care to a patient or for monitoring a patient's condition. Figure 1CAs shown, functional modules 202, 203 can be infusion pump modules for delivering drugs or other liquids to patients, such as intravenous infusion pump modules, large-volume pump modules, syringe modules, and the like. For the purpose of discussion, functional module 202 is a large-volume pump module, and functional module 203 can be a patient treatment or monitoring device, including but not limited to an infusion pump, a syringe pump, a fluid pump, a PCA pump, an epidural pump, an enteral pump, a blood pressure monitoring instrument, a pulse oximeter, an EKG monitor, an EEG monitor, a heart rate monitor, or an intracranial pressure monitor, etc. In some embodiments, the patient care device 220 may include additional functional modules (not shown herein), such as printers, scanners, barcode readers, and / or other peripheral input, output, and / or input / output devices related to the provision of care for patients with acute or non-acute conditions.
[0030] Each functional module 202, 203 communicates directly or indirectly with the control module 201, which provides comprehensive monitoring and control of the PCD 220a. Figure 1C As shown or as described in detail by Eggers et al., the functional modules 202, 203 can be physically and electrically connected to one or both ends of the control module 201 in a serial manner. However, it should be recognized that there are other means for connecting the functional modules to the interface unit that can be used without departing from the subject technology. It will also be understood that a device (such as a pump or patient monitor) that provides sufficient programmability and connectivity may be able to operate as a stand-alone device and can communicate directly with the network without being connected through a separate interface unit or control module 201. As described above, additional medical devices or peripheral devices can be connected to the patient-care device 220 via one or more auxiliary interfaces 62.
[0031] Each functional module 202, 203 may include module-specific components 76, 84 for storing information and / or data, a microprocessor 70, 78, a volatile memory 72, 80 and a non-volatile memory 74, 82. It should be noted that although Figure 1C Two functional modules are shown, but additional or alternative devices may be connected directly or indirectly to the control module 201. The number and type of functional modules described herein are intended to be illustrative and not to limit the scope of the subject technology in any way. Module-specific components 76, 84 include components for the operation of a particular module, such as the pumping mechanism for the infusion pump modules 202 and 203, respectively.
[0032] Although each functional module can be configured to operate independently to at least some extent, the control module 201 can be configured to monitor and control the overall operation of the PCD 220 (such as PCD 220a). For example, as will be described in more detail below, the control module 201 provides programming instructions to the functional modules 202, 203 and monitors the status of each module.
[0033] The patient care device 220 can be configured to operate in a number of different modes or personalities, each defined by firmware and / or stored information and / or software packages. In some embodiments, specific stored information can be updated or a software package can be selected based on patient-specific information such as patient location, age, physical characteristics, or medical characteristics. Medical characteristics include, but are not limited to, patient diagnosis, treatment prescription, medical history, medical records, patient care provider identification, physiological characteristics, or psychological characteristics. As used herein, patient-specific information may also include care provider information (e.g., doctor identification) or the location of the PCD 220 in a care facility (e.g., a hospital) or a care facility computer network. Patient care information can be input through interface devices 52, 54, 60, or 62 and can originate from a device attached to the network 105 (such as, for example, a pharmacy server, an admission server, a laboratory server, etc.).
[0034] Data to and from various data sources can be converted into network-compatible data using existing techniques, and the movement of information between medical devices and the network can be achieved by various means. For example, patient care devices 202 and network 105 can communicate via automatic interaction, manual interaction, or a combination of automatic and manual interaction. Automatic interaction can be continuous or intermittent, and can be achieved through direct network connection 54 (such as Figure 1C The patient care device 220 and the network 105 may be manually connected to the network 105 or via an RS232 link, MIB system, RF link (such as BLUETOOTH), IR link, WLANS, digital cable system, telephone modem or other wired or wireless communication means. Manual interaction between the patient care device 220 and the network 105 involves the physical transfer of data between the systems intermittently or periodically using, for example, a user interface device 54, an encoded data input device 60, a bar code, a computer disk, a portable data assistant, a memory card or other medium for storing data. The communication means are bidirectional in all respects and access data from as many distributed data source points as possible. Decisions can occur in different places within the network 105. For example, but not limited to, decisions can be made within the device management server 102, the network monitor 103 and / or within the patient care device 220 itself.
[0035] Each control module (such as control module 201) of PCD 220 can be configured to store multiple versions of firmware in a memory. Each control module of PCD 220 can be configured to execute a first version of firmware stored in a first part of the memory (such as storage device 56), while a second version of firmware can be stored in a second part of the memory. A portion of the memory may be referred to as a "storage body" in this article. Each firmware stored in a control module of PCD 220 can be configured to be executable at any time, and the control module can be configured to switch between different versions of firmware stored in the storage body. For example, the control module of PCD 220 can be configured to switch from executing a first version of firmware stored in a first storage body to executing a second version of firmware stored in a second storage body in response to receiving a command. Similarly, each functional module (such as functional modules 202, 203) of PCD 220 can be configured to store multiple versions of firmware in a memory (such as non-volatile memory 74, 82). The control module of PCD 220 (such as control module 201) may be configured to transmit the version firmware to one or more functional modules of PCD 220, and the functional modules of PCD 220 store the received version firmware in one of the storage bodies of the functional modules. The functional modules of PCD 220 may be configured to switch between different version firmware stored in the storage bodies in response to receiving a command from the control module of PCD 220.
[0036] like Figure 1A and Figure 2A As shown, the device management server 102 can communicate with one or more various patient-related units 220. Each of the patient-related units 220 can provide treatment to a patient or monitor a patient's vital signs or condition, and provide information about the patient's status and the patient's treatment to the device management server 102. The network monitoring application 103 provides an interface with the server 102, and thereby provides assets that communicate with the server 102. Using the network application 103, users (such as pharmacists, nurses, doctors, and biomedical technicians) can view information provided to the server by various patient-care devices 220, and / or monitor the operation of the patient-care devices 220. Using this system, the biomedical technician can transmit a configuration package to the patient-care device 220.
[0037] A client-server environment incorporating aspects of the subject technology may include a central server (e.g., device management server 102) that is accessible by at least one client (such as client system 101) via a computer network. In some embodiments, the central server is accessible by at least one local server via a computer network (such as, for example, an Ethernet network, a wireless network, or the Internet), which in turn may be accessed by the client. Various computer network transmission protocols (including, but not limited to, TCP / IP) may be used for communication between the central server, the local server (e.g., a hospital information system server), and client devices configured with communication capabilities compatible with the communication protocol used on the network.
[0038] The device management server 102 may include or be communicatively coupled to the central database 104. The device management server 102 may ensure that the local server is running the latest version of the knowledge base, and may also store patient data and perform various management functions (including adding and deleting local servers and users to the system). The device management server 102 may also provide authorization before the local server or PCD 220 can be used by the user. The device management server 102 may associate each PCD 220 with a certain configuration area. As previously stated, in the example integrated system, the patient data and current operating status of the PCD 220 may be stored on the device management server 102, thereby providing a central repository of patient data and operating status of the PCD 220. However, it should be understood that the operating status of the PCD 220 may be stored on a local server or local storage device medium, or stored on another hospital or institutional server or information system, where the operating status may be accessed as needed by various elements of the system (such as, client server 101).
[0039] In some embodiments, the local client or medical device may include a client application, which may include a graphical user interface (GUI) and may be configured to communicate with the device management server 102. For example, the local client or medical device may include a middle-tier program that communicates with the central or local server. In some embodiments, the program code for the client application may be executed entirely on the local client, or it may be executed partially on the local client and partially on the central or local server.
[0040] Computer program code for carrying out operations of the subject technology may be written in an object-oriented programming language such as, for example, Smalltalk or C++). However, the computer program code for performing operations of the subject technology may also be written in conventional procedural programming languages (such as the "C" programming language), in interpreted scripting languages (such as Perl), or in functional (or fourth generation) programming languages (such as Lisp, SML, Forth, etc.). The software may also be written to be compatible with HLA-7 requirements.
[0041] A medical device (such as PCD 220) incorporating aspects of the subject technology can be equipped with a network interface module (NIM) that allows the medical device to participate in a network as a node. Although for clarity, the subject technology will be described as operating in an Ethernet network environment using the Internet Protocol (IP), it should be understood that the concepts of the subject technology are equally applicable to other network environments, and these environments are intended to be within the scope of the subject technology.
[0042] All direct communications with medical devices, such as PCD 220 operating on a network according to the subject technology, may be performed through device management server 102, referred to as a remote data server (RDS). According to aspects of the subject technology, a network interface module incorporated into a medical device, such as, for example, an infusion pump or a vital sign measurement device, ignores network traffic that does not originate from an authenticated RDS. The primary responsibility of the RDS of the subject technology is to track the location and status of networked medical devices with a NIM and maintain an open communication channel with them.
[0043] Prior to implementation within the institutional patient care system 100, the patient care device 220 may be manufactured with default network information for allowing the device to connect to a specified provisioning service, which is used to receive specific configuration information for normal operation within the institutional patient care system 100, including, for example, network information and / or security information for connecting to the network 105 and the device management server 102.
[0044] When a patient care device 220 is received at a healthcare facility of a healthcare organization, an administrator can create a record for the device in the database 104 via the terminal device 101. In this regard, each record can include a unique identification (ID) of the corresponding device 220 (e.g., a serial number, a media access control address, a mobile device identifier, a device name, and the like). The unique ID can be affixed to the device (e.g., as a printed tag or RFID tag) and captured by a scanning device such as a barcode reader or an RFID reader device. The record can map the unique ID to specific configuration information. In some embodiments, the unique ID of the (multiple) device can be received electronically by the device management server 102, for example, via an external network (not shown) (such as the Internet or other WAN). The device management server 102 can provide a user interface for accepting and / or confirming that the (multiple) device receives the configuration package before providing the configuration package to the medical device (such as, PCD 220).
[0045] According to various embodiments, the device management server 102 may be responsible for managing access of the patient-care devices 220 to the network system of the institutional patient care system 100, communications between various devices on the network 105, and routine management of the patient-care devices 220. In this regard, the device management server 102 may provide a user interface via the terminal device(s) 101 for assigning one or more device identifiers to one or more security certificates. The security certificates, once installed on the patient-care device(s) 220, enable the patient-care device(s) to access and communicate with the device management server 102 and / or other devices within the institutional patient care system 100.
[0046] In some embodiments, a user interface provided by the management server 102 can facilitate assigning device identifiers and security certificates to respective facilities within a healthcare organization. In this regard, configuring the patient-care device(s) 220 to access and communicate with the device management server 102 includes configuring the patient-care device(s) 220 to communicate with an encrypted security certificate specific to the respective facility via a network 105 (or transmission channel 110) within the respective facility. Figure 2A-10 Additional details of the control modules and functional modules of PCD 220 that receive, store, and execute versioned firmware are described herein.
[0047] Go to Figure 2A , shows an example of the transmission of configuration packets between various elements of an institutional patient care system. For the sake of clarity of the example, refer to Figures 1A-1C The components of the institutional patient care system 100 are shown and described for describing the transmission of configuration packages.
[0048] A user (such as a biomedical technician or an information technology professional) via the device terminal 101 can transmit a configuration package (such as a configuration package 108) to one or more PCDs 220 via the device management server 102. Each configuration package 108 may include firmware for each component of the PCD 220. For example, a configuration package may include firmware for a control module and / or a functional module of the PCD 220. Each firmware included in the configuration package may be configured and tested to be compatible with each other firmware included in the configuration package. According to various embodiments, a corresponding configuration package may include various settings (e.g., parameters) for operating the PCD 220 or a module connected thereto. For example, a configuration package may include operating parameters, such as a default infusion rate or an infusion parameter limit.
[0049] In some embodiments, a configuration package may be transmitted to PCD 220 based on a configuration zone associated with PCD 220. For example, PCD 220a and PCD 220b may be associated with a first configuration zone, and PCD 220c may be associated with a second configuration zone. In this regard, the firmware and / or settings of the configuration package may be specific to a configuration zone. According to various embodiments, a configuration zone may be associated with a predetermined geographic location or care area within a medical facility. In this regard, the firmware and / or settings of the configuration package may reflect the operation of the target device within a specific geographic location or care area of the facility. For example, a first configuration package may include firmware and / or settings specific to an emergency room, while a second configuration package may include firmware and / or settings specific to an intensive care unit (ICU), and another configuration package may include general firmware and / or settings for use with non-emergency or non-ICU related patients. Figure 2A As shown, the device management server 102 can communicate the configuration package 108 to the PCD 220 via the network 105 and / or the communication channel 110 .
[0050] A component of a patient-care device 220 (such as PCD 220a) may be executing a version of firmware associated with a first configuration package. Figure 2B As shown, the control module 201, the functional modules 202 and 203 of the PCD 220a may be executing the version firmware included in the first version of the configuration package. As described above, the control module of the PCD 220 may include multiple storage bodies, such as storage bodies 205a, 205b. Similarly, as described above, the functional modules 202, 203 may include multiple storage bodies, such as storage bodies 204a, 204b of the functional module 202 and storage bodies 206a, 206b of the functional module 203. The first version of the configuration package may be stored in the storage body 205a of the control module 201. Figure 2BAs shown, the version firmware for the functional module 202 may be stored in the storage volume 204 a , and the version firmware for the functional module 203 may be stored in the storage volume 206 a .
[0051] As described above, a new configuration package (including a new version of firmware for one or more components of PCD 220 (such as control module 201, functional modules 202, 203)) can be transmitted to PCD 220 by server 102. The new version of firmware may include corresponding instructions for adjusting the functional modules based on predefined parameters. For example, if functional module 202 includes a fluid pump module, and the predefined parameter is the flow rate of the fluid pump module, the new version of firmware for functional module 202 may include instructions for controlling the flow rate of functional module 202. Similarly, if functional module 203 includes a syringe pump module, and the predefined parameter is the pressure applied to the syringe received by the syringe pump module, the new version of firmware for functional module 203 may include new or updated instructions for controlling the pressure applied to the syringe pump module. Control module 201 can be configured to receive a new configuration package and store the received configuration package in a storage body of control module 201. Control module 201 can be configured to, upon receiving an instruction, identify an available or free storage body of control module 201 to store the received configuration package. In Figure 2C In the example shown, the control module 201 stores the received configuration package in the available storage body 205b. If the control module 201 determines that the storage body is not available, the control module 201 can be configured to: determine the storage body that stores the earliest received firmware, and store the received configuration package in the storage body that stores the earliest received firmware. The earliest received firmware may not be the earliest version firmware. The control module of PCD 220 (such as, the control module 201 of PCD 220a) can associate each received configuration package and / or firmware with a timestamp, and store the timestamp together with the received configuration package. In some embodiments, the timestamp can indicate the time when the configuration package and / or firmware is received by the control module.
[0052] In response to receiving a new configuration package, the control module 201 may be configured to determine whether the new configuration package includes a new version of firmware for one or more components (such as, functional modules 202, 203) that are communicatively coupled and / or connected to the control module 201. In some embodiments, the control module 201 may receive information related to different firmware included in the configuration package, and the control module 201 may determine whether the configuration package includes version firmware for the functional modules that are communicatively coupled and / or connected to the control module 201 based on the information related to the different firmware included in the configuration package. For example, for a new configuration package stored in the storage body 205b, the control module 201 may receive information related to specifying that the new configuration package includes firmware for a functional module for a large volume pump module ("L2") and firmware for a functional module that is an injector module ("S2"), and the control module 201 determines based on the information so received that the received new configuration package includes firmware for the functional module 203 (e.g., a large volume pump, such as Figure 2C ) and functional module 202 (e.g., injector module, such as Figure 2B shown) firmware.
[0053] In some embodiments, a configuration package may be associated with a version number. For example, a configuration package stored in storage body 205a may be associated with version number 1, and a new configuration package stored in storage body 205b may be associated with version number 2. In some embodiments, each firmware included in a configuration package may be associated with a version number of the configuration package. For example, firmware P1, L1, and S1 included in a configuration package stored in storage body 205a may be associated with version number 1, and firmware P2, L2, and S2 included in a configuration package stored in storage body 205b may be associated with version number 2.
[0054] In some embodiments, the control module 201 may transmit a message and / or instruction of a specified version of firmware to a functional module (such as functional modules 202 and 203) connected to the control module 201 to determine whether the connected functional module includes the version of firmware. In some embodiments, the functional module may transmit a message indicating whether the functional module includes the specified version of firmware to the control module 201. Based on the message received from the functional module, the control module 201 determines whether the functional module includes the specified version of firmware. If the control module 201 determines that the functional module does not include the specified version of firmware, the control module 201 may transmit the specified version of firmware to the functional module. For example, Figure 2DAs shown, if the control module 201 determines that the received configuration package includes a new version of firmware (e.g., "S2") for the functional module 202, and the control module 201 determines that the functional module 202 does not include the new version of firmware S2, the control module 201 transfers the firmware S2 to the functional module 202. Similarly, if the control module 201 determines that the received configuration package includes a new version of firmware (e.g., "L2") for the functional module 203, and the functional module 203 does not include the new version of firmware L2, the control module 201 transfers the firmware L2 to the functional module 203.
[0055] In some embodiments, if the configuration package associated with the specified version of firmware is not currently activated, the control module 201 assigns a low priority to the transmission of the specified version of firmware to the functional module, and initiates the transmission process of the specified version of firmware based on the priority of the waiting process and the available computing resources of the control module 201 (e.g., one or more processors of the control module 201 and / or the bandwidth of the communication channel). Figures 3A-3C and Figure 8 , additional details of transmitting firmware based on the available computing resources of the control module 201 and the priority of the process are described herein. In some embodiments, if a configuration package associated with a specified version of firmware is currently activated, the control module 201 can immediately initiate a transmission process of the specified version of firmware to the functional module and transmit instructions for executing the specified version of firmware. Figures 5A-5C and Figures 7A-7D , additional details of transmitting version firmware to functional modules and causing the functional modules to execute the transmitted version firmware are described herein.
[0056] The functional modules (such as functional modules 202 and 203) may be configured to store the received firmware in available or free storages (such as storages 204b and 206b) of the functional modules, respectively. Figure 2D As shown, the functional module 202 may store the received firmware in the available storage body 204b, and the functional module 203 may store the received firmware in the storage body 206b. The functional modules 202 and 203 may be configured to associate a timestamp with the received firmware and store the firmware together with the associated timestamp in the storage body. Similar to the control module 201, if the functional modules 202 and 203 determine that the storage body is unavailable or idle, the functional modules 202 and 203 may determine the storage body storing the earliest received firmware and store the received firmware in the storage body.
[0057] In response to detecting a connection with a new functional module, the control module 201 may be configured to determine whether the received configuration package includes firmware for the new functional module. Figures 3A-3C, this article describes an example in which a control module detects the connection of a new functional module and transfers firmware to the new functional module.
[0058] like Figure 3A As shown, a new functional module 301 can be added to PCD 220a by connecting the functional module 301 to modules and / or components of PCD 220a. Functional module 301 can be electrically connected to control module 201. For example, Figure 3B As shown, the functional module 301 is electrically connected to the functional module 202. In some embodiments, in response to the successful electrical connection with the PCD 220, the new functional module can transmit a message indicating that the new functional module is successfully connected to the PCD 220 to the control module of the PCD 220. For example, in Figure 3B In some embodiments, in response to successfully establishing an electrical connection with the functional module 202, the functional module 301 may transmit a message to the control module 201 indicating that the control module 301 is successfully connected to the PCD 220. In some embodiments, the functional module directly physically and electrically connected to the new functional module may transmit a message to the control module of the PCD 220 indicating that the new functional module is successfully connected. For example, in response to detecting a successful electrical connection with the functional module 301, the functional module 202 may transmit a message to the control module 201 indicating that the functional module 301 is successfully connected to the PCD 220a.
[0059] Upon successful connection, control module 201 may determine whether a new version of firmware is available for function module 301, and transmit the new version of firmware to function module 301. Function module 301 may be configured similarly to function modules 202, 203, and may associate the received firmware with a timestamp, and store the received firmware together with the associated timestamp in a free and / or available storage volume of function module 301 or a storage volume storing the earliest received firmware. For example, Figure 3C As shown, the function module 301 stores the received firmware in the available storage body 302b. At this time, the received firmware is stored in the storage body, but is not executed or activated.
[0060] As described above, a user of the terminal device 101 (such as a biomedical technician) can transfer a new configuration package to a PCD 220 currently used in a medical facility (such as a hospital). The user can be presented with a user interface (e.g., a graphical user interface) on the display of the terminal device 101, which displays information related to the new configuration package transferred to the PCD 220. The information displayed on the user interface includes, but is not limited to: a description of the version of the configuration package transferred to each PCD 220 in the configuration area, the version of the PCD 220 in the configuration area, the status of the configuration package transferred in the PCD 220 in the configuration area, the number of PCDs 220 in each configuration area that have successfully received the configuration package, etc. An example of such a user interface is Figure 4A The graphical user interface (GUI) shown. Figure 4A The GUI in FIG. 4 displays information related to configuration packages delivered to different configuration areas, along with information related to the model of the control module and / or one or more functional modules of PCD 220. In some embodiments, the user interface can display information related to the time when the configuration package was delivered to PCD 220. For example, as shown in FIG. 4 , the GUI displays the date and time when the configuration package was delivered or deployed to PCD 220 associated with various configuration areas.
[0061] like Figure 4A , the user interface can display information related to the percentage of PCDs 220 in each configuration zone that received the most recently delivered configuration package. In some embodiments, each PCD 220 can pass a message back to the device management server 102 after the PCD 220 successfully receives the configuration package and / or stores it in the memory of the PCD 220. In some embodiments, each PCD 220 can transmit a message to the device management server 102 after the control module of the PCD 220 successfully delivers the firmware to the functional module of the PCD 220.
[0062] The device management server 102 may be configured to determine the total number of PCDs 220 that have successfully received and / or stored the configuration package and provide such information to the user in a user interface, such as Figure 4A. Such information may be used by a user and / or an automated algorithm to determine whether to pass an activation command to a PCD 220. In some embodiments, the device management server 102 may be configured to automatically pass an activation command to a PCD 220 when a predetermined threshold number of PCDs 220 receive the passed configuration package. For example, the predetermined threshold number of PCDs 220 may be set to 80% of the PCDs 220, and the device management server 102 may be configured to pass an activation code when 80% of the PCDs 220 receive or acknowledge receipt of the passed configuration package. In some embodiments, the device management server 102 may be configured to: determine the number of PCDs 220 that have successfully received and / or stored the configuration package for a configuration zone, and automatically pass an activation command to the PCD 220 associated with the configuration zone when the determined number of PCDs 220 meets the predetermined threshold number of PCDs 220 associated with the configuration zone. Similarly, when a predetermined threshold number of PCDs 220 in the configuration area successfully receive and / or store the configuration package, the user can deliver an activation code.
[0063] In response to receiving the activation code, the control module of PCD 220 can be configured to switch to execution of the most recently received firmware. The control module of PCD 220 can be configured to switch to execution of the most recently received firmware during the power-on process of PCD 220. In some embodiments, PCD 220 can be configured to automatically shut down and automatically power on if PCD 220 is inactive and does not receive interaction from a user and / or another system. For example, as described above, control module 201 stores the received configuration package 108 and the included firmware for control module 201 in storage volume 205b, such as Figure 4B Continuing with the example, during power-on after receiving the activation command, the control module 201 executes the firmware named "P2" stored in the memory bank 205b.
[0064] In response to receiving the activation code, the control module 201 can be configured to pass a command to one or more functional modules to execute their corresponding firmware. In some embodiments, each functional module can be configured to shut down and initiate a power-on in response to the control module 201 shutting down. Similar to the control module 201, the functional module switches to the execution of the most recently received firmware during its power-on process. Figure 8-10 , this article describes additional details for switching to the most recently received firmware.
[0065] In some embodiments, if the PCD 220 is connected to a new functional module, the control module of the PCD 220 can present a warning to the clinician, providing an option to update the firmware of the functional module, and the new functional module does not have firmware that is compatible and / or associated with the same configuration package that the firmware executing on the control module of the PCD 220 is associated with. Figures 5A-5D An example of a PCD 220 providing an option to a user, such as a clinician, to update the firmware of a newly connected functional module is shown.
[0066] Now go to Figures 5A-5D , shows an example of a new function module 401 connected to PCD 220a. The new function module 401 can be configured similarly to the function modules 301, 202, and 203. Figure 4B In the depicted example, control module 201 of PCD 220a is executing firmware associated with configuration package 108. Figure 5A As shown, the new functional module is not configured with the firmware of the functional module 401 associated with the configuration package 108. Figure 5B As shown, the PCD 220 receives a connection from the functional module 401. In response to determining that the new functional module 401 does not have firmware that is compatible and / or associated with the configuration package 108, the control module 201 may provide a warning to the user. The warning may display the amount of time it takes for the new functional module 401 to execute firmware that is compatible and / or associated with the configuration package 108. The control module 201 may be configured to provide a user interface configured to receive user input that provides instructions to the control module 201 to transfer firmware for the functional module 401 that is compatible and / or associated with the configuration package 108.
[0067] For example, Figure 5C As shown, the control module 201 presents a GUI warning that displays the amount of time that the functional module 401 may need to be updated to firmware that is compatible with and / or associated with the compatible package 108. The GUI warning may include a graphical item that is configured to receive input from a user indicating whether the user is instructing the control module 201 to transfer firmware that is compatible with and / or associated with the firmware package 108 to the functional module 401. In response to receiving the input for transferring the firmware, the control module 201 may transfer the firmware to the functional module and cause the functional module 401 to shut down and start up to execute the transferred firmware. Figure 5D Functional module 401 is shown executing firmware compatible with and / or associated with configuration package 108 after a shutdown process.
[0068] The control module of PCD 220 determines the version firmware to be executed by each component (such as a functional module) of PCD 220. The control module 220 can be configured to cause a newly connected functional module executing a newer version firmware to execute an older version firmware that is compatible and / or associated with the configuration package used by the version firmware being executed by the control module. Figures 6A-7D An example is shown in which the control module of the PCD 220 causes a new function module to execute an older version of firmware.
[0069] Now go to Fig. 6A , the functional module 401 of PCD 220a is connecting to PCD 220b. Fig. 6A As shown, components of PCD 220b (e.g., control module 501, functional modules 502, 503) have not yet activated the firmware associated with configuration package 108, whereas components of PCD 220a are executing the firmware associated with configuration package 108. Control module 501 may be configured similarly to control module 201, and functional modules 502, 503 may be configured similarly to functional modules 202, 203.
[0070] like Figure 6B As shown, function 401 is connected to PCD 220b. In response to detecting a connection with function module 401, control module 501 may pass instructions for executing version firmware associated with a configuration package associated with firmware executed on control module 501 to function module 401. In response to receiving the instructions for executing version firmware, function module 401 may be configured to determine whether version firmware is available, and execute version firmware if available. As described above, function module 401 may be configured to execute a specifically stored version firmware different from the currently executing version firmware by shutting down, and switch to the specifically stored version firmware during the boot process. Figure 6C It is shown that the functional module 401 executes firmware that is compatible with and / or associated with the configuration package with which the firmware executed by the control module 501 is associated.
[0071] It makes sense that in some scenarios, a medical facility may rent function modules from other medical facilities, and such function modules may store a newer version of firmware than the medical facility that is renting the function module. Fig. 7A An example of such a functional module is shown in Fig. 7A , a functional module 607 connected to the PCD 220c is shown. The control module 601 can be similarly configured as the control modules 201 and 501, and the functional modules 602, 603, 607 can be similarly configured as reference modules. Figure 1A-6C The functional modules are, for example, functional modules 202, 203, 301, and 401. Fig. 7AAs shown, storage bodies 608a, 608b of functional module 607 do not include compatible firmware and / or are not associated with the configuration package associated with the firmware of control module 601. Functional module 607 includes firmware that is a newer version and is not compatible and / or associated with the configuration package stored in PCD 220c.
[0072] like Figure 7B As shown, the functional module 607 is connected to the PCD 220c. In response to the detection, similar to the above reference Figure 5C As described in the control module 201, the control module 601 can transmit instructions to the functional module 607 to execute a version of firmware that is compatible with and / or associated with the configuration package, and the firmware executed by the control module 601 is associated with the configuration package. Similar to the control module 201, the control module 601 generates and presents a GUI warning that displays the amount of time that the functional module 607 may need to be updated to firmware that is compatible with and / or associated with the configuration package, and the firmware executed by the control module 601 is associated with the configuration package. In response to receiving an input for transferring firmware, the control module 601 can transfer the firmware to the functional module 607 and cause the functional module 607 to execute the transferred firmware. The functional module 607 can be configured to switch the execution of the firmware, similar to the description herein with reference to Figure 1A-6C The technology described. Fig.7D A functional module 607 is shown that executes firmware that is compatible with and / or associated with a configuration package, and the firmware executed by the control module 601 is associated with the configuration package. Figure 8-10 , this article describes other details of delivering firmware and executing firmware.
[0073] Now go to Figure 8 , shows a flowchart illustrating the process of transferring and executing firmware by a control module of a patient-care device (such as control module 201 of PCD 220a). For the purpose of illustrating a clear example, reference is made to Figures 1A-7D The components of the patient care system 100 are shown and described for purposes of describing the process of delivering and executing firmware.
[0074] Method 800 includes receiving a new configuration package by a control module of a patient-care device (block 801). As described above, the configuration package may include firmware for one or more components of patient-care device 220, such as control module 201, functional modules 202, and 203 of PCD 220a. Firmware for one component of PCD 220 included in the configuration package may be designed and / or tested to be compatible with firmware for other components of PCD 220 included in the configuration package.
[0075] The control module of PCD 220 identifies a memory bank for storing a new configuration package (block 802). As described above, the control module of PCD 220 (e.g., control module 201) can be configured to identify a free and / or available memory bank or a memory bank that stores the earliest received configuration package. The control module of PCD 220 stores the new configuration package in the identified memory bank (block 803). According to some embodiments, when the new configuration package is received, a second configuration package can be currently stored in a different second memory bank of the control module. In some embodiments, the second configuration package can include a current version of firmware for at least one of the control module and the first functional module.
[0076] In the depicted example, the control module of the PCD 220 determines whether the new configuration package includes a version firmware of one or more functional modules coupled to the control module that is different from the stored version firmware (block 804). If the control module determines that the configuration package does not include a version firmware of any functional module coupled to the control module that is different from the stored version (block 804, 'No'), the method 800 proceeds to the end of the method.
[0077] If the control module determines that the new configuration package includes a version firmware of a functional module coupled to the control module that is different from the stored version (block 804, 'yes') (e.g., a new version), the method 800 proceeds to block 805. The control module determines whether there are sufficient computing resources available to send the version firmware included in the configuration package to the corresponding functional module (block 805). In some embodiments, the control module may be configured to determine whether there are sufficient computing resources based on whether the amount of available processing power is below a certain threshold. For example, the control module may determine whether the amount of available processing power is below a certain threshold based on the available bandwidth of one or more processors and / or a communication channel of the control module. In some embodiments, one or more processors of the control module may assign a low priority to the process of passing the version firmware to the functional module, and the one or more processors of the control module may be configured to initiate a waiting process of the control module based on the priority assigned to the process. In some embodiments, if the available bandwidth of one or more processors and / or a communication channel of the control module meets the threshold bandwidth level, the one or more processors of the control module may initiate a low priority process. If the control module determines that sufficient computing resources are not available to send the versioned firmware in the configuration package (block 805 , 'NO'), the method 800 returns to block 805 to wait for sufficient computing resources to become available.
[0078] If the control module determines that sufficient computing resources are available (block 805, 'yes'), the method 800 proceeds to block 806. The control module sends (e.g., transmits) the corresponding version of the firmware in the configuration package to the functional module (block 806). For example, if the functional modules of the control module connected to the PCD 220 are a pump and a physiological monitor, the control module may send the firmware for the pump included in the received configuration package to the pump, and send the firmware for the physiological monitor included in the received configuration package to the physiological monitor. The transmitted version may be stored on the pump in a storage bank different from the storage bank currently storing the firmware currently used by the pump.
[0079] The control module receives the activation command (block 807). In some embodiments, the control module may store an indication of receiving the activation command in a storage unit of the control module. For example, the control module may set a bit or store a value in the storage unit indicating that the control module received the activation command. In response to receiving the activation command, the control module determines whether PCD 220 is currently inactive (block 808). If the control module determines that PCD 220 is currently active (block 808, 'No'), method 800 returns to block 808. The control module may be configured to wait until PCD 220 is inactive before executing the version firmware included in the received configuration package.
[0080] If the control module determines that the PCD 220 is currently inactive (block 808, 'yes'), the method 800 proceeds to block 809. The control module initiates a reboot process (block 809). As described above, the control module of the PCD 220 may initiate a reboot process by powering itself off and powering itself on. During the reboot process, the control module executes the version firmware of the control module included in the received configuration package (block 810a). As described above, the control module switches to the version firmware included in the configuration package by executing the firmware of the control module of the PCD 220 included in the received configuration package. During the reboot process, the control module sends an instruction for executing the version firmware sent to the functional module to the functional module (block 810b).
[0081] In some embodiments, the control module of the PCD 220 may be configured to track the time period that has passed since the switch to execute the most recently received version of firmware. In such embodiments, if the time period meets a threshold time period, the control module may be configured to delete the earlier received version of firmware from which execution was switched to the most recently received version of firmware. For example, the threshold time period may be specified as five years, and if the tracking time period since the switch from the first version of firmware to another version of firmware is equal to five years, the control module may delete the first version from the storage in the control module storing the first version. In some embodiments, the control module may receive a delete command from a user and / or a central system (such as the device management server 102), and the control module may be configured to delete the earliest received version of firmware from its storage. In some embodiments, deleting the earliest received version of firmware may optimize the process of storing the most recently received firmware, because the storage storing the earliest received version may be free and / or readily available to receive new firmware without incurring resource overhead (e.g., processing, power, memory, etc.) associated with data movement operations. In some embodiments, the functional modules described herein may be configured to similarly delete the old received version of firmware.
[0082] As described above, the version firmware sent to the functional module is included in the configuration package. As described above, the control module can cause the functional module to restart itself by sending an instruction for executing the version firmware sent by the control module to the functional module. Fig. 9 , additional details of the functional modules of the PCD 220 executing the version firmware received from the control module of the PCD 220 are described herein.
[0083] Now go to Fig. 9 , a flowchart illustrating the process of receiving and executing firmware is shown. For the purpose of illustrating a clear example, refer to Figures 1A-7D The components of the patient care system 100 are shown and described for purposes of describing the process of delivering and executing firmware.
[0084] Method 900 includes: a functional module of a patient-care device 220 receives a version firmware of a functional module from a control module (box 901). As described above, the version firmware received by the functional module is included in a new configuration package received by the control module. The functional module of the patient-care device 220 identifies a storage body for storing the received version firmware (box 902). As described above, the functional module of the patient-care device 220 can be configured with multiple storage bodies, and the functional module can be configured to store the received version firmware in an idle and / or available storage body or a storage body that stores the earliest received firmware. The functional module of the patient-care device 220 stores the received version firmware in the identified storage body (box 903). In some embodiments, the functional module of the PCD 220 can be configured to transmit a message that the received version firmware is successfully stored in the functional module of the PCD 220 to the control module of the PCD 220.
[0085] The function module of PCD 220 receives an instruction for executing the received version firmware from the control module (box 904). The function module of PCD 220 initiates a restart process (box 905). As described above, the function module of PCD 220 may be configured to initiate a restart process in response to receiving an instruction for executing the received version firmware from the control module. Similar to the control module, the function module may be configured to store an indication of an instruction for executing the received version firmware received from the control module. For example, the function module may set a bit and / or store a value in a storage unit, which indicates that the function module has received an instruction for executing the received version firmware from the control module. During the restart process, the function module executes the received version firmware (box 906). During the power-on process of the restart process, the function module may be configured to determine whether the function module has received an instruction for executing the received version firmware from the control module. For example, the function module may check the storage unit to determine whether the stored value or bit indicates that an instruction for executing the received version firmware is received from the control module. If the stored value or bit indicates that an instruction is received, the function module executes the received version firmware during the power-on process of the restart process.
[0086] Now go to Fig.10 , a flowchart illustrating another process of sending firmware to a functional module of a patient care device and causing a control module of the patient care device to execute the firmware is shown. For the purpose of illustrating a clear example, reference is made to Figures 1A-7D The components of the patient care system 100 are shown and described for purposes of describing the process of delivering and executing firmware.
[0087] Method 1000 includes detecting, by a control module of PCD 220, a new connection to a new functional module (block 1001). As described above, the control module can be configured to detect an electrical connection of one or more modules of PCD 220. The control module can transmit a message indicating a version of firmware to be executed to the functional module (block 1002). For example, in response to detecting a new connection to the functional module, the control module of PCD 220 transmits a message specifying a version of firmware to be executed to the functional module. Method 1000 proceeds to block 1003.
[0088] The function module receives a message from the control module indicating the version firmware to be executed (block 1003). The function module determines whether it has the version firmware indicated in the message (block 1004). If the function module determines that the version firmware is available (block 1004, 'yes'), the method 1000 proceeds to block 1012. Additional details of block 1012 are provided below. If the function module determines that the version firmware is not available (block 1004, 'no'), the method proceeds to block 1005. The function module sends a message to the control module indicating that the version firmware is not available (block 1005). The method proceeds to block 1006.
[0089] The control module receives a message from the functional module indicating that the version of firmware is unavailable (block 1006). The control module determines whether the available computing resources of the PCD 220 are sufficient to send the indicated version of firmware to the functional module. If the control module determines that the available computing resources are insufficient (block 1007, 'No'), the method 1000 returns to block 1007. If the control module determines that the available computing resources are sufficient (block 1007, 'Yes'), the method 1000 proceeds to block 1008.
[0090] The control module of PCD 220 sends the indicated version firmware to the functional module (box 1008). The functional module of PCD 220 receives the indicated version firmware from the control module (box 1009). The functional module of PCD 220 identifies a storage body for storing the received version firmware (box 1010) and stores the received version firmware in the identified storage body (box 1011). Additional details of identifying the storage body and storing the firmware in the identified storage body are described above. The functional module sends a message indicating that the indicated version firmware is available to the control module (box 1012). The message proceeds to box 1013.
[0091] The control module of PCD 220 receives a message from the functional module indicating that the version firmware is available (block 1013). The control module sends an instruction for executing the indicated version firmware (block 1014). The method proceeds to block 1015. The functional module initiates a restart process (block 1015), and during the restart process, the functional module executes the indicated version firmware (block 1016). With reference to the previously described figures, additional details of the functional module that indicates the restart process and executes the version firmware during the restart process are described.
[0092] Many of the above examples and related features and applications may also be implemented as a software process, which is specified as a set of instructions recorded on a computer-readable storage medium (also referred to as a computer-readable medium) and can be automatically executed (e.g., without user intervention). When these instructions are executed by one or more processing units (e.g., one or more processors, processor cores, or other processing units), they cause the (multiple) processing units to perform the actions indicated in the instructions. Examples of computer-readable media include, but are not limited to, CD-ROMs, flash drives, RAM chips, hard drives, EPROMs, etc. Computer-readable media do not include carrier waves and electronic signals that are wirelessly propagated or connected via wires.
[0093] The term "software" means, where appropriate, firmware residing in a read-only memory or an application stored in a magnetic storage device that can be read into memory for processing by a processor. In addition, in some embodiments, multiple software aspects of the subject disclosure may be implemented as sub-parts of a larger program while retaining the different software aspects of the subject disclosure. In some embodiments, multiple software aspects may also be implemented as separate programs. Finally, combinations of separate programs that jointly implement the software aspects described herein are within the scope of the subject disclosure. In some embodiments, the software program, when installed to run on one or more electronic systems, defines one or more specific machine implementations that execute and implement the operations of the software program.
[0094] A computer program (also referred to as a program, software, software application, script, or code) may be written in a programming language, including compiled or interpreted languages, declarative or procedural languages, and it may be deployed in a machine executable form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program may be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple collaborative files (e.g., files that store one or more modules, subroutines, or portions of code). A computer program may be deployed to execute on a single computer or on multiple computers located in one location or distributed in multiple locations and interconnected by a communication network.
[0095] Fig.11 400 is a conceptual diagram of an example electronic system 1100 for illustrating an optimized process for updating firmware across medical devices while minimizing clinical impact according to aspects of the subject technology. The electronic system 1100 may be software or a computer program for executing one or more portions or steps associated with the process 400. Figure 1A-10 The components and processes provided herein may include, but are not limited to, computing hardware within the device management server 102, the patient care device 220, or the terminal device 101. Figure 1A-10 The electronic system 1100 may be representative of the disclosed content. In this regard, the electronic system 1100 may be a personal computer or a mobile device, such as a smart phone, a tablet computer, a laptop computer, a PDA, an augmented reality device, a wearable device (such as a watch or a bracelet or glasses or a combination thereof), or other touch screens or televisions having one or more processors embedded therein or coupled thereto, or other types of computer-related electronic devices having network connectivity and specifically configured to implement one or more features described.
[0096] The electronic system 1100 may include various types of computer-readable media and interfaces for various other types of computer-readable media. In the depicted example, the electronic system 1100 includes: a bus 1108, one or more processing units 1112, a system memory 1104, a read-only memory (ROM) 1110, a permanent storage device 1102, an input device interface 1114, an output device interface 1106, and one or more network interfaces 1116. In some embodiments, the electronic system 1100 may include or be integrated with other computing devices or circuits for the operation of the aforementioned various components and processes.
[0097] The bus 1108 includes one or more of the following: system, peripheral, and chipset buses that communicatively connect various internal devices of the electronic system 1100. For example, the bus 1108 communicatively connects the one or more processing units 1112 with the ROM 1110, the system memory 1104, and the permanent storage device 1102.
[0098] From these various memory units, the one or more processing units 1112 retrieve instructions to execute and data to process in order to perform the processes of the subject disclosure. In various implementations, the one or more processing units may be a single processor or a multi-core processor.
[0099] ROM 1110 stores static data and instructions required by one or more processing units 1112 and other modules of the electronic system. On the other hand, permanent storage device 1102 is a read-write memory device. Such a device is a non-volatile memory unit that stores instructions and data even when the electronic system 1100 is turned off. Some embodiments of the subject disclosure use a mass storage device (such as a magnetic disk or optical disk and its corresponding magnetic disk drive) as permanent storage device 1102.
[0100] Other embodiments use removable storage devices (such as floppy disks, flash drives and their corresponding disk drives) as permanent storage devices 1102. Like permanent storage devices 1102, system memory 1104 is a read-write memory device. However, unlike storage devices 1102, system memory 1104 is a volatile read-write memory, such as random access memory. System memory 1104 stores some instructions and data that the processor needs at run time. In some embodiments, the processes disclosed in the subject matter are stored in system memory 1104, permanent storage devices 1102, and / or ROM 1110. From these various memory units, processing unit 1112 retrieves instructions to be executed and data to be processed in order to perform the processes of some embodiments.
[0101] The bus 1108 is also connected to input and output device interfaces 1114 and 1106. The input device interface 1114 enables a user to convey information and select commands to the electronic system. Input devices used with the input device interface 1114 include, for example, an alphanumeric keyboard and a pointing device (also referred to as a "cursor control device"). The output device interface 1106 enables, for example, the display of images generated by the electronic system 1100. Output devices used with the output device interface 1106 include, for example, printers and display devices, such as cathode ray tubes (CRTs) or liquid crystal displays (LCDs). Some embodiments include devices that function as both input and output devices, such as touch screens.
[0102] In addition, if Fig.11As shown, bus 1108 also couples electronic system 1100 to a network (not shown) via network interface 1116. Network interface 1116 may include, for example, a wireless access point (e.g., Bluetooth or WiFi) or radio circuitry for connecting to a wireless access point. Network interface 1116 may also include hardware (e.g., Ethernet hardware) for connecting the computer to a portion of a network of computers, such as a local area network ("LAN"), a wide area network ("WAN"), a wireless LAN or intranet, or a network of networks (such as the Internet). Any or all of the components of electronic system 1100 may be used in conjunction with the subject disclosure.
[0103] The above functions can be implemented in computer software, firmware or hardware. These technologies can be implemented using one or more computer program products. Programmable processors and computers can be included in mobile devices or packaged as mobile devices. These processes and logic flows can be performed by one or more programmable processors and by one or more programmable logic circuits. General and special computing devices and storage devices can be interconnected through a communication network.
[0104] Some embodiments include electronic components, such as microprocessors, storage devices, and memories, which store computer program instructions in machine-readable or computer-readable media (also referred to as computer-readable storage media, machine-readable media, or machine-readable storage media). Some examples of such computer-readable media include: RAM, ROM, compact disk-read only (CD-ROM), compact disk-recordable (CD-R), compact disk-rewritable (CD-RW), digital versatile disk-read only (e.g., DVD-ROM, dual-layer DVD-ROM), various recordable / rewritable DVDs (e.g., DVD-RAM, DVD-RW, DVD+RW, etc.), flash memory (e.g., SD card, mini SD card, micro SD card, etc.), magnetic and / or solid-state hard drives, read-only and recordable A computer readable medium may store a computer program executable by at least one processing unit and including a set of instructions for performing various operations. Examples of computer programs or computer code include machine code such as produced by a compiler and files including higher level code executed by a computer, electronic component, or microprocessor using an interpreter.
[0105] Although the above discussion mainly involves microprocessors or multi-core processors that execute software, some embodiments are performed by one or more integrated circuits, such as application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs). In some embodiments, such integrated circuits execute instructions stored on the circuits themselves.
[0106] As used in this specification and any claims of this application, the terms "computer," "server," "processor," and "memory" refer to electronic or other technical devices. These terms do not include people or groups of people. For the purposes of this specification, the terms display or displaying mean displaying on an electronic device. As used in this specification and any claims of this application, the terms "computer readable medium" and "computer readable media" are entirely limited to tangible physical objects that store information in a form readable by a computer. These terms exclude any wireless signals, wired download signals, and any other transient signals.
[0107] To provide interaction with a user, embodiments of the subject matter described in this specification may be implemented on a computer having a display device, such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user, and a keyboard and pointing device, such as a mouse or trackball, through which the user can provide input to the computer. Other types of devices may also be used to provide interaction with the user; for example, the feedback provided to the user may be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and the input from the user may be received in any form, including sound, voice, or tactile input. In addition, the computer may interact with the user by sending documents to and receiving documents from a device used by the user; for example, by sending a web page to a web browser on a user's client device in response to a request received from the web browser.
[0108] Embodiments of the subject matter described in this specification may be implemented in a computing system that includes a back-end component, such as a data server, or includes a middleware component, such as an application server, or includes a front-end component, such as a client computer with a graphical user interface or a web browser, through which a user can interact with an implementation of the subject matter described in this specification, or includes any combination of one or more such back-end, middleware, or front-end components. The components of the system may be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include local area networks ("LANs") and wide area networks ("WANs"), interconnected networks (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).
[0109] The computing system may include a client and a server. The client and the server are usually remote from each other and may interact via a communication network. The relationship between the client and the server is generated by means of computer programs running on respective computers and having a client-server relationship with each other. In some embodiments, the server transmits data (e.g., an HTML page) to a client device (e.g., for the purpose of displaying data to a user interacting with the client device and receiving user input therefrom). Data generated at the client device (e.g., the result of a user interaction) may be received from the client device at the server.
[0110] Those skilled in the art will appreciate that the various illustrative blocks, modules, elements, assemblies, methods and algorithms described herein can be implemented as electronic hardware, computer software or a combination of the two. In order to illustrate the interchangeability of this hardware and software, various illustrative blocks, modules, elements, assemblies, methods and algorithms have been generally described above according to their functionality. Whether such functionality is implemented as hardware or software depends on specific applications and the design constraints imposed on the entire system. For each specific application, the described functionality can be implemented in different ways. Various components and blocks can be arranged differently (e.g., arranged in different orders or separated in different ways), without departing from the scope of the subject technology at all.
[0111] It should be understood that the specific order or hierarchy of steps in the disclosed process is an illustration of an example approach. Based on design preferences, it should be understood that the specific order or hierarchy of steps in the process can be rearranged. Some steps can be performed synchronously. The attached method requires that the elements of each step are presented in a sample order and are not meant to be limited to the specific order or hierarchy presented.
[0112] This subject technology is an explanation of the terms
[0113] For convenience, various examples of various aspects of the present disclosure are described as numbered clauses (1, 2, 3, etc.). These numbers are provided as examples and do not limit the subject technology. The identification of the figures and reference numbers provided below is only by way of example and for illustrative purposes, and the clauses are not limited by these identifications.
[0114] Clause 1. A method, comprising: receiving, by a control module of a patient-care device, a new configuration package from a device remote from the control module, wherein the new configuration package includes one or more versions of firmware for at least one of a control module and a first functional module of the patient-care device; storing, by the control module, the new configuration package in a first storage volume of the control module, wherein when the new configuration package is received, a second configuration package is stored in a second storage volume of the control module, and wherein the second configuration package includes a current version of firmware for at least one of the control module and the first functional module; determining, by the control module based on information associated with the configuration package, that the new configuration package includes a new version of firmware for a first functional module connected to the control module; and based on determining that the new version of firmware is included, transmitting, by the control module, the new version of firmware to the first functional module, wherein the new version is stored on the first functional module in a storage volume different from a storage volume currently storing firmware currently used by the first functional module.
[0115] Clause 2. The computer-implemented method of clause 1 further comprises: receiving, by the control module, an activation command from a central computing system; in response to the activation command, determining, by the control module, whether the patient-care device is currently active based on a status indicator of the patient-care device; and in response to determining that the patient-care device is currently inactive, switching, by the control module, execution of a current version of firmware for the control module stored in the second storage body to a new version of firmware for the control module included in the new configuration package and stored in the first storage body.
[0116] Clause 3. The computer-implemented method of clause 2 further comprises: receiving, by the control module, a second activation command from the central computing system; and in response to receiving the second activation command, and when it is determined that the patient-care device is inactive, switching, by the control module, execution of the new version of firmware for the control module stored in the first storage body back to the version of firmware for the control module stored in the second storage body.
[0117] Clause 4. The computer-implemented method according to clause 2 further includes: before switching to executing the new version of the firmware for the control module: in response to determining that the patient-care device is currently inactive, initiating a shutdown process of the control module by the control module; and during a power-on process of the control module after completing the shutdown process, initiating a step of switching to executing the new version of the firmware for the control module by the control module.
[0118] Clause 5. The computer-implemented method of clause 4 further comprises: during the power-on process, detecting, by the control module, a connection to the first functional module; and in response to detecting the connection, sending, by the control module, an instruction for switching to executing a new version of the firmware for the first functional module to the first functional module.
[0119] Clause 6. The computer-implemented method according to Clause 1 further includes: before transmitting the new version of the firmware to the first functional module: the control module determines, based on the available bandwidth of one or more processors of the control module, whether the available computing resources of the control module are sufficient to transmit the new version of the firmware to the first functional module; and in response to determining that the available computing resources are sufficient, the control module initiates the transmission of the new version of the firmware to the first functional module.
[0120] Clause 7. The computer-implemented method of Clause 1 further comprises: determining, by the control module, whether the new configuration package includes the new version of firmware for the first functional module based on an identifier associated with the new version of firmware for the first functional module and the first functional module.
[0121] Clause 8. The computer-implemented method of Clause 1 further comprises: detecting, by the control module, a new connection with the second functional module; and in response to the new connection, sending, by the control module, a message to the second functional module indicating that a version of firmware of the second functional module is executed on the second functional module.
[0122] Clause 9. The computer-implemented method according to Clause 8 further includes: receiving, by the control module, a response from the second functional module, wherein the response indicates that the version firmware indicated in the message is not available in the second functional module; providing, by the control module, a warning to a user based on the response for display at a display device associated with the control module, wherein the warning indicates that the version firmware is not available in the second functional module; receiving, by the control module, input from a user in response to the warning to send the version firmware to the second functional module; and sending, by the control module, the version firmware to the second functional module based on the input, wherein the new configuration package includes the version firmware for the second functional module.
[0123] Clause 10. The computer-implemented method according to Clause 1 further includes: detecting, by the control module, a new connection with a third functional module; determining, by the control module, in response to the new connection with the third functional module, whether the version firmware executed on the third functional module is compatible with the current version firmware executed on the control module based on a message from the third functional module; and causing the third functional module to execute a version firmware of the third functional module that is compatible with the current version firmware executed on the control module in response to determining that the version firmware is incompatible.
[0124] Clause 11. The computer-implemented method of clause 10, wherein the version firmware executed on the third functional module is stored in a first storage body of the third functional module, and the version firmware compatible with the current version firmware executed on the control module is stored in a second storage body of the third functional module.
[0125] Clause 12. The computer-implemented method of clause 10, wherein causing the third functional module to execute a version of firmware of the third functional module that is compatible with a current version of firmware executed on the control module further comprises: sending an instruction for switching to executing a version of firmware stored in a second storage body of the third functional module.
[0126] Clause 13. A patient care system, comprising: a first functional module; and a control module, the control module comprising a memory and one or more processors, the one or more processors configured to execute instructions stored on the memory so that the control module: receives a new configuration package from a device remote from the patient care system, wherein the new configuration package includes one or more versions of firmware for at least one of the control module and the first functional module; stores the new configuration package in a first memory bank of the control module, wherein when the new configuration package is received, a second configuration package is stored in a second memory bank of the control module, and wherein the second configuration package includes a current version of firmware for at least one of the control module and the first functional module; determines, based on information associated with the new configuration package, that the new configuration package includes a new version of firmware for a first functional module connected to the control module; and when the new version of firmware is included, transmits the new version of firmware to the first functional module, wherein the new version is stored on the first functional module in a memory bank different from a memory bank currently storing firmware currently used by the first functional module.
[0127] Clause 14. A patient care system according to clause 13, wherein the one or more processors are configured to execute instructions so that the control module: receives an activation command from a central computing system; in response to the activation command, determines whether the patient care system is currently active based on a status indicator of the patient care system; and when the patient care system is currently inactive, switches execution of a current version of firmware for the control module stored in the second storage body to a new version of firmware for the control module included in the new configuration package and stored in the first storage body.
[0128] Clause 15. The patient care system of clause 14, wherein the one or more processors are configured to execute instructions to cause the control module to: receive a second activation command from the central computing system; and based on the second activation command, and when the patient care system is inactive, switch execution of the new version of firmware for the control module stored in the first storage back to the version of firmware for the control module stored in the second storage.
[0129] Clause 16. A patient care system according to clause 14, wherein the one or more processors are configured to execute instructions so that the control module: before switching to executing the new version of firmware for the control module: when the patient care system is currently inactive, initiates a shutdown process for the control module; and during a power-on process of the control module after completing the shutdown process, switches to executing the new version of firmware for the control module.
[0130] Clause 17. A patient care system according to clause 16, wherein the one or more processors are configured to execute instructions so that the control module: detects a connection to the first functional module during the power-on process; and when the connection to the first functional module is detected, sends an instruction to the first functional module for switching to executing a new version of the firmware of the first functional module.
[0131] Clause 18. A patient care system according to clause 13, wherein the one or more processors are configured to execute instructions so that the control module: before transmitting the new version of the firmware to the first functional module: determines whether the available computing resources of the control module are sufficient to transmit the new version of the firmware to the first functional module based on the available bandwidth of the one or more processors of the control module; and transmits the new version of the firmware to the first functional module when the available computing resources are sufficient.
[0132] Clause 19. A patient care system according to clause 13, wherein the one or more processors are configured to execute instructions to cause the control module to: determine whether the new configuration package includes a new version of firmware for the first functional module based on an identifier associated with the new version of firmware for the first functional module and the first functional module.
[0133] Clause 20. The patient care system of clause 13, wherein the one or more processors are configured to execute instructions to cause the control module to: detect a new connection with the second functional module; and in response to the new connection, send a message to the second functional module indicating a version of firmware of the second functional module executing on the second functional module.
[0134] Clause 21. A patient care system according to clause 20, wherein the one or more processors are configured to execute instructions so that the control module: receives a response from the second functional module, wherein the response indicates that the version firmware indicated in the message is not available in the second functional module; provides a warning to a user based on the response for display at a display device associated with the control module, wherein the warning indicates that the version firmware is not available in the second functional module; receives input from the user in response to the warning to send the version firmware to the second functional module; and sends the version firmware to the second functional module based on the input, wherein the new configuration package includes the version firmware for the second functional module.
[0135] Clause 22. A patient care system according to Clause 13, wherein the one or more processors are configured to execute instructions so that the control module: detects a new connection with a third functional module; in response to the new connection with the third functional module, determines whether the version firmware executed on the third functional module is compatible with the current version firmware executed on the control module based on a message from the third functional module; and when the version firmware is incompatible, causes the third functional module to execute a version firmware of the third functional module that is compatible with the current version firmware executed on the control module.
[0136] Clause 23. A patient care system according to Clause 22, wherein the version firmware executed on the third functional module is stored in a first storage body of the third functional module, and the version firmware compatible with the current version firmware executed on the control module is stored in a second storage body of the third functional module.
[0137] Clause 24. A patient care system according to Clause 22, wherein the one or more processors are configured to execute instructions to cause the control module to: send instructions for switching to executing a version of firmware stored in the second storage body of the third functional module, so that the third functional module executes a version of firmware of the third functional module that is compatible with the current version of firmware executed on the control module.
[0138] Clause 25. The patient care system of clause 13, wherein the new version of the firmware includes corresponding instructions for adjusting the functional modules based on predefined parameters, and wherein the new configuration package includes drug library information including the predefined parameters, and wherein the current version of the firmware ignores the predefined parameters.
[0139] Clause 26. The patient care system of Clause 13, wherein the first functional module comprises a fluid pump module, and wherein the firmware comprises instructions for controlling a flow rate to the fluid pump module.
[0140] Clause 27. The patient care system of Clause 13, wherein the first functional module comprises a syringe pump module, and wherein the firmware comprises instructions for controlling a pressure received by the syringe pump module and applied to a syringe.
[0141] Clause 28. A non-transitory machine-readable medium comprising instructions stored thereon, which, when executed by a device, cause the device to perform operations comprising: receiving, by a control module of a patient-care device, a new configuration package from a device remote from the control module, wherein the new configuration package includes one or more versions of firmware for at least one of the control module and a first functional module of the patient-care device; storing, by the control module, the new configuration package in a first storage volume of the control module, wherein when the new configuration package is received, a second configuration package is stored in a second storage volume of the control module, and wherein the second configuration package includes a current version of firmware for at least one of the control module and the first functional module; determining, by the control module based on information associated with the new configuration package, that the new configuration package includes a new version of firmware for a first functional module connected to the control module; and in response to determining that the new version of firmware is included, transmitting, by the control module, the new version of firmware to the first functional module, wherein the new version is stored on the first functional module in a storage volume different from a storage volume currently storing firmware currently used by the first functional module.
[0142] Further considerations
[0143] In some embodiments, any clause herein may be subordinate to any one of the independent clauses or any one of the dependent clauses. In one aspect, any clause (e.g., dependent or independent clause) may be combined with any other one or more clauses (e.g., dependent or independent clause). In one aspect, a claim may include some or all of the words (e.g., steps, operations, means or components) quoted in a clause, sentence, phrase or paragraph. In one aspect, a claim may include some or all of the words quoted in one or more clauses, sentences, phrases or paragraphs. In one aspect, some words in each clause, sentence, phrase or paragraph may be removed. In one aspect, additional words or elements may be added to a clause, sentence, phrase or paragraph. In one aspect, the subject technology may be implemented without utilizing some components, elements, functions or operations described herein. In one aspect, the subject technology may be implemented utilizing additional components, elements, functions or operations.
[0144] The previous description is provided to enable those skilled in the art to practice the various aspects described herein. The previous description provides various examples of the subject technology, and the subject technology is not limited to these examples. Various modifications to these aspects will be apparent to those skilled in the art, and the general principles defined herein may be applicable to other aspects. Therefore, the claims are not intended to be limited to the aspects shown herein, but to conform to the full scope consistent with the language claims, wherein, unless otherwise specified, reference to an element in the singular is not intended to mean "one and only one", but to mean "one or more". Unless otherwise specified, the term "some" refers to one or more. Positive pronouns (e.g., his (his)) include feminine and neutral pronouns (e.g., her (her) and its (its)), and vice versa. Titles and subtitles (if any) are used only for convenience and are not intended to limit the present invention described herein.
[0145] As used herein, the term website can include any aspect of a website, including one or more web pages, one or more servers for hosting or storing web-related content, etc. Therefore, the term website can be used interchangeably with the terms web page and server. The predicate verbs "configured to", "operable to", and "programmed to" do not imply any specific tangible or intangible modification to the subject matter, but are intended to be used interchangeably. For example, a processor configured to monitor and control an operation or component can also mean a processor programmed to monitor and control an operation, or a processor operable to monitor and control an operation. Similarly, a processor configured to execute code can be interpreted as a processor programmed to execute code or operable to execute code.
[0146] As used herein, the term "automatically" may include execution by a computer or machine without user intervention; for example, by an instruction in response to an asserted action by a computer or machine or other initiating mechanism. The word "exemplary" as used herein means "serving as an example or illustration." Any aspect or design described herein as an "example" is not necessarily to be construed as preferred or advantageous over other aspects or designs.
[0147] Phrases such as "an aspect" do not imply that the aspect is essential to the subject technology or that the aspect applies to all configurations of the subject technology. The disclosure associated with an aspect may apply to all configurations or one or more configurations. An aspect may provide one or more examples. Phrases such as "an aspect" may refer to one or more aspects, and vice versa. Phrases such as "an embodiment" do not imply that the embodiment is essential to the subject technology or that the embodiment applies to all configurations of the subject technology. The disclosure associated with an embodiment may apply to all embodiments or one or more embodiments. An embodiment may provide one or more examples. Phrases such as "an embodiment" may refer to one or more embodiments, and vice versa. Phrases such as "configuration" do not imply that the configuration is essential to the subject technology or that the configuration applies to all configurations of the subject technology. The disclosure associated with a configuration may apply to all configurations or one or more configurations. A configuration may provide one or more examples. Phrases such as "configuration" may refer to one or more configurations, and vice versa.
Claims
1. A computer-implemented method, include: receiving, by a control module of a patient-care device from a device remote from the control module, a new configuration package, wherein the new configuration package includes versioned firmware for the control module of the patient-care device and a first functional module coupled to the control module; storing, by the control module, the new configuration package in a first memory bank of the control module, wherein upon receipt of the new configuration package, a second configuration package is stored in a second memory bank of the control module, and wherein the second configuration package includes current versions of firmware for the control module and the first functional module, wherein the control module is configured to, upon receiving an activate command and determining that the patient-care device is inactive, switch, by the control module, execution of the current version of firmware for the control module stored in the second memory bank to a new version of firmware for the control module included in the new configuration package and stored in the first memory bank of the control module; determining, by the control module based on information associated with the new configuration package, that the new configuration package includes a new version of firmware for a first functional module connected to the control module; Based on determining that the new version of the firmware is different from the stored version, transmitting, by the control module, the new version of the firmware to the first functional module, wherein the new version is stored on the first functional module in a storage volume different from a storage volume currently storing firmware currently used by the first functional module; The control module receives a message from the first functional module that a new version of the functional module firmware has been successfully stored in the first functional module; and The control module enables the first functional module to initiate a restart process to execute a new version of firmware.
2. The computer-implemented method of claim 1 , further comprising: include: receiving, by the control module, an activation command from a central computing system; In response to the activation command, determining, by the control module, whether the patient-care device is currently active based on a status indicator of the patient-care device; and In response to determining that the patient-care device is currently inactive, the control module switches execution of a current version of firmware for the control module stored in the second storage volume to a new version of firmware for the control module included in the new configuration package and stored in the first storage volume.
3. The computer-implemented method of claim 2, further comprising: include: receiving, by the control module, a second activation command from the central computing system; and In response to receiving the second activation command, and when it is determined that the patient-care device is inactive, the control module switches execution of the new version firmware of the control module stored in the first storage body back to the version firmware of the control module stored in the second storage body.
4. The computer-implemented method of claim 2, further comprising: include: Before switching to execute the new version of firmware for the control module in question: In response to determining that the patient-care device is currently inactive, initiating, by the control module, a shutdown process of the control module; and During the power-on process of the control module after the power-off process is completed, the control module initiates a step of switching to execute a new version of firmware for the control module.
5. The computer-implemented method of claim 4, further comprising: include: During the power-on process, the control module detects a connection to the first functional module; and In response to detecting the connection, the control module sends an instruction for switching to executing the new version of the firmware of the first functional module to the first functional module.
6. The computer-implemented method of claim 1, further comprising: include: Before transmitting the new version of the firmware to the first functional module: The control module determines, based on available bandwidth of one or more processors of the control module, whether available computing resources of the control module are sufficient to transmit the new version of the firmware to the first functional module; and In response to determining that the available computing resources are sufficient, the control module initiates transmitting the new version of the firmware to the first functional module.
7. The computer-implemented method of claim 1 , further comprising: include: The control module determines whether the new configuration package includes the new version of firmware for the first function module based on an identifier associated with the new version of firmware for the first function module and the first function module.
8. The computer-implemented method of claim 1, further comprising: include: The control module detects a new connection with the second functional module; and In response to the new connection, a message indicating that the version firmware of the second functional module is executed on the second functional module is sent by the control module to the second functional module.
9. The computer-implemented method of claim 8, further comprising: include: receiving, by the control module, a response from the second functional module, wherein the response indicates that the version firmware indicated in the message is not available in the second functional module; providing, by the control module, a warning to a user based on the response for display at a display device associated with the control module, wherein the warning indicates that the version of firmware is not available in the second functional module; The control module receives an input from a user in response to the warning to send the version firmware to the second function module; and The control module sends the version firmware to the second function module based on the input, The new configuration package includes a version firmware for the second functional module.
10. The computer-implemented method of claim 1, further comprising: include: The control module detects a new connection with the third functional module; Determining by the control module, in response to a new connection with the third functional module, whether the version firmware executed on the third functional module is compatible with the current version firmware executed on the control module based on a message from the third functional module; and In response to determining that the version firmware is incompatible, the control module causes the third function module to execute a version firmware of the third function module that is compatible with the current version firmware executed on the control module.
11. The computer-implemented method of claim 10, in, The version firmware executed on the third function module is stored in a first storage bank of the third function module, and the version firmware compatible with the current version firmware executed on the control module is stored in a second storage bank of the third function module.
12. The computer-implemented method of claim 10, in, The method of causing the third function module to execute a version of the third function module compatible with the current version of the firmware executed on the control module further includes: An instruction for switching to executing the version firmware stored in the second storage bank of the third functional module is sent.
13. A patient care system, include: The first functional module; and A control module, the control module comprising a memory and one or more processors, the one or more processors being configured to execute instructions stored on the memory so that the control module: receiving a new configuration package from a device remote from the patient-care system, wherein the new configuration package includes versioned firmware for a control module and a first functional module coupled to the control module; storing the new configuration package in a first memory bank of the control module, wherein upon receipt of the new configuration package, a second configuration package is stored in a second memory bank of the control module, and wherein the second configuration package includes current versions of firmware for the control module and the first functional module, wherein the control module is configured to, upon receiving an activation command and determining that the patient-care system is inactive, switch execution of the current version of firmware for the control module stored in the second memory bank to the new version of firmware for the control module included in the new configuration package and stored in the first memory bank of the control module by the control module; determining, based on information associated with the new configuration package, whether the new configuration package includes a new version of firmware for a first functional module connected to the control module; When the new version of the firmware is different from the stored version, transmitting the new version of the firmware to the first functional module, wherein the new version is stored on the first functional module in a storage bank different from a storage bank currently storing firmware currently used by the first functional module; The control module receives a message from the first functional module that a new version of the functional module firmware has been successfully stored in the first functional module; and The control module enables the first functional module to initiate a restart process to execute a new version of firmware.
14. The patient care system of claim 13, in, The one or more processors are configured to execute instructions so that the control module: receiving an activation command from a central computing system; in response to the activation command, determining whether the patient-care system is currently active based on a status indicator of the patient-care system; and When the patient-care system is currently inactive, execution of a current version of firmware for a control module stored in the second memory volume is switched to a new version of firmware for the control module included in the new configuration package and stored in the first memory volume.
15. The patient care system of claim 14, in, The one or more processors are configured to execute instructions so that the control module: receiving a second activation command from the central computing system; and Based on the second activation command, and when the patient-care system is inactive, execution of the new version firmware for the control module stored in the first memory bank is switched back to the version firmware for the control module stored in the second memory bank.
16. The patient care system of claim 14, in, The one or more processors are configured to execute instructions so that the control module: Before switching to execute the new version of firmware for the control module in question: initiating a shutdown process of the control module when the patient-care system is currently inactive; and During a power-on process of the control module after the power-off process is completed, a switch is made to executing a new version of the firmware for the control module.
17. The patient care system of claim 16, in, The one or more processors are configured to execute instructions so that the control module: During the power-on process, detecting a connection to the first functional module; and When a connection to the first functional module is detected, an instruction for switching to executing a new version of the firmware of the first functional module is sent to the first functional module.
18. The patient care system of claim 13, in, The one or more processors are configured to execute instructions so that the control module: Before transmitting the new version of the firmware to the first functional module: Determining, based on available bandwidth of one or more processors of the control module, whether available computing resources of the control module are sufficient to transmit the new version of the firmware to the first functional module; and When the available computing resources are sufficient, the new version of the firmware is transmitted to the first functional module.
19. The patient care system of claim 13, in, The one or more processors are configured to execute instructions so that the control module: Based on an identifier associated with the new version of firmware for the first functional module and the first functional module, it is determined whether the new configuration package includes the new version of firmware for the first functional module.
20. The patient care system of claim 13, in, The one or more processors are configured to execute instructions so that the control module: detecting a new connection to a second functional module; and In response to the new connection, a message is sent to the second functional module indicating that version firmware of the second functional module is executed on the second functional module.
21. The patient care system of claim 20, in, The one or more processors are configured to execute instructions so that the control module: receiving a response from the second functional module, wherein the response indicates that the version firmware indicated in the message is not available in the second functional module; providing a warning to a user based on the response for display at a display device associated with the control module, wherein the warning indicates that the version of firmware is not available in the second functional module; receiving input from a user in response to the warning to send the version firmware to the second functional module; and The version firmware is sent to the second functional module based on the input, wherein the new configuration packet includes the version firmware for the second functional module.
22. The patient care system of claim 13, in, The one or more processors are configured to execute instructions so that the control module: Detecting a new connection with a third functional module; In response to a new connection with the third functional module, determining whether a version of firmware executed on the third functional module is compatible with a current version of firmware executed on the control module based on a message from the third functional module; and When the version firmware is incompatible, the third function module is enabled to execute a version firmware of the third function module that is compatible with the current version firmware executed on the control module.
23. The patient care system of claim 22, in, The version firmware executed on the third function module is stored in a first storage bank of the third function module, and the version firmware compatible with the current version firmware executed on the control module is stored in a second storage bank of the third function module.
24. The patient care system of claim 22, in, The one or more processors are configured to execute instructions so that the control module: An instruction for switching to executing the version firmware stored in the second storage body of the third function module is sent, so that the third function module executes the version firmware of the third function module compatible with the current version firmware executed on the control module.
25. The patient care system of claim 13, in, The new version of the firmware includes corresponding instructions for adjusting the functional modules based on predefined parameters, and wherein the new configuration package includes drug library information including the predefined parameters, and wherein the current version of the firmware ignores the predefined parameters.
26. The patient care system of claim 13, in, The first functional module includes a fluid pump module, and wherein the firmware includes instructions for controlling a flow rate to the fluid pump module.
27. The patient care system of claim 13, in, The first functional module comprises a syringe pump module, and wherein the firmware comprises instructions for controlling a pressure received by the syringe pump module and applied to a syringe.
28. A non-transitory machine-readable medium comprising instructions stored thereon, which when executed by a device cause the device to perform operations comprising: receiving, by a control module of a patient-care device, a new configuration package from a device remote from the control module, wherein the new configuration package includes versioned firmware for the control module of the patient-care device and a first functional module connected to the control module; storing, by the control module, the new configuration package in a first memory bank of the control module, wherein upon receipt of the new configuration package, a second configuration package is stored in a second memory bank of the control module, and wherein the second configuration package includes current versions of firmware for the control module and the first functional module, wherein the control module is configured to, upon receiving an activate command and determining that the patient-care device is inactive, switch, by the control module, execution of the current version of firmware for the control module stored in the second memory bank to a new version of firmware for the control module included in the new configuration package and stored in the first memory bank of the control module; determining, by the control module, based on information associated with the new configuration package, that the new configuration package includes a new version of firmware for a first functional module connected to the control module; and In response to determining that the new version of the firmware is different from the stored version, transmitting, by the control module, the new version of the firmware to the first functional module, wherein the new version is stored on the first functional module in a storage bank different from a storage bank currently storing firmware currently used by the first functional module; The control module receives a message from the first functional module indicating that a new version of the functional module firmware has been successfully stored in the first functional module; and The control module enables the first functional module to initiate a restart process to execute a new version of firmware.
Citation Information
Patent Citations
Modular patient care system
US5713856A
Terminal device and software rewrite program
CN108701068A
Preventing at least in part control processors from being overloaded
US20030221015A1
Remote flashing during infusion
US20150199192A1