Automatically programming a medical device based on a dynamically obtained programming template
By dynamically updating automated programming requests for infusion devices, the system addresses the issue of outdated data, ensuring accurate and safe programming of medical devices.
Patent Information
- Application Number
- PCT/US2023/031974
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-09-05
- Publication Date
- 2025-03-13
AI Technical Summary
Existing infusion device programming systems rely on outdated or expired data, leading to potential errors in programming, which can result in overinfusion or underinfusion of medications.
The system dynamically updates automated programming requests (APRs) by obtaining a template specific to the medical device, identifying parameters that need updating, generating updated values, and automatically transmitting these updates to the device.
This approach ensures that infusion devices are programmed with the latest and most accurate information, reducing the risk of programming errors and enhancing patient safety.
Smart Images

Figure US2023031974_13032025_PF_FP_ABST
Abstract
Description
AUTOMATICALLY PROGRAMMING A MEDICAL DEVICE BASED ON A DYNAMICALLY OBTAINED PROGRAMMING TEMPLATEBACKGROUND
[0001] This application relates generally to ensuring that an infusion device is properly programmed.
[0002] Modem infusion devices may receive infusion order parameters from a third-party system to configure the device’s pump to deliver a specific fluid, at specific rates, for a specific patient; a remote programming command often referred to as an automated programming request (APR). The APR automatically (and often remotely) programs the infusion device, thereby minimizing manual entry as well as ensuring conformity with an order for the medication to be administered, the patient’s data, and universal data rules. The APR configuration may also include pre-populating operating parameter values for presentment via the user interface. Pre-population of infusion parameters reduces the number of programming screens, key presses, and potential input errors that may exist with manual programming.
[0003] APR enabled systems rely on data stored in remote databases and servers. This data, however, may not always be up-to-date and / or may be based on expired data. Incorrect data can, in some instances, lead to improperly programmed infusion devices which can, in turn, lead to an overinfusion or under infusion of a medication. Moreover, all the data desired to generate an APR may not be available at the time the APR is requested. Manually keying in corrections take time and may be prone to further errors.SUMMARY
[0004] The subject technology provides a mechanism and corresponding system for automatically updating automated programming requests (APRs). Unlike legacy systems and processes, the subject technology provides for dynamic updating of parameters while generating an APR, thus ensuring that the latest information required or requested to program a medical device receiving the APR is made available to the medical device.
[0005] In this regard, the subject technology includes a system comprising: one or more computing devices configured to perform operations comprising: receiving a request to initiate automated programming of a medical device; obtaining, based on the request and a type of the medical device, a template specific to the type of the medical device and comprising a pluralityof parameters for configuring of the medical device; determining, after obtaining the template and before the medical device is configured according to the template, that a first parameter of the plurality of parameters in the template is a parameter to be updated; and responsive to determining that the first parameter is a parameter to be updated: generating an updated value to update the first parameter in the template; updating the first parameter with the updated value; and automatically causing an automated programming message to be transmitted to the medical device based on the template, the automated programming message causing the medical device to be configured according to template and the plurality of parameters including the first parameter updated with the updated value. Other aspects include corresponding devices, methods, and computer program products for implementation of the corresponding system and its features.
[0006] The subject technology also relates to a medical device, comprising: a display device; and a medical device controller comprising a processor; wherein the medical device controller is configured to: receive, from a server remote from the medical device, an automated programming template specific to a type of the medical device and comprising a plurality of parameters for configuring of the medical device; determine, before the medical device is configured according to the template, that a first parameter of the plurality of parameters in the template is a parameter to be updated; and responsive to determining that the first parameter is a parameter to be updated: determine an updated value for updating the first parameter in the template; update the first parameter with the updated value; and automatically configure the medical device according to template and the plurality of parameters including the first parameter updated with the updated value. Other aspects include corresponding systems, processes, methods, and computer program products for implementation of the corresponding infusion device and its features.
[0007] The subject technology also relates to a method, comprising: receiving a request to initiate automated programming of a medical device; obtaining, based on the request and a type of the medical device, a template specific to the type of the medical device and comprising a plurality of parameters for configuring of the medical device; determining, after obtaining the template and before the medical device is configured according to the template, that a first parameter of the plurality of parameters in the template is a parameter to be updated; and responsive to determining that the first parameter is a parameter to be updated, before the medical device is configured using the template: generating an updated value to update the firstparameter in the template; updating the first parameter with the updated value; and automatically causing an automated programming message to be transmitted to the medical device based on the template, the automated programming message causing the medical device to be configured according to template and the plurality of parameters including the first parameter updated with the updated value. Other aspects include corresponding systems, apparatus, and computer program products for implementation of the corresponding method and its features.
[0008] It is understood that other configurations of the subject technology will become readily 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 realized, the subject technology is capable of other and different configurations and its several details are capable of modification in various other respects, all without departing from the scope of the subject technology. Accordingly, the drawings and detailed description are to be regarded as illustrative in nature and not as restrictive.BRIEF DESCRIPTION OF THE DRAWINGS
[0009] For a better understanding of the various described implementations, reference should be made to the Description of Implementations below, in conjunction with the following drawings. Like reference numerals refer to corresponding parts throughout the figures and description.
[0010] FIG. 1 A depicts an example patient care system that includes an infusion device.
[0011] FIG. IB depicts a closer view of a portion of the patient care system shown in FIG.1A.
[0012] FIG. 1C depicts an example of an institutional patient care system of a healthcare organization, according to aspects of the subject technology.
[0013] FIG. 2 depicts an example system for automatically programming a medical device, according to aspects of the subject technology.
[0014] FIG. 3A depicts a first example sequence diagram for automatically programming a medical device based on a dynamically obtained automated programming request (APR) template, according to aspects of the subject technology.
[0015] FIG. 3B depicts an example process for automatically programming a medical device using a dynamically obtained template and parameters dynamically updated at server, according to aspects of the subject technology.
[0016] FIG. 4A depicts a second example sequence diagram for automatically programming a medical device based on a dynamically obtained APR template, according to aspects of the subject technology.
[0017] FIG. 4B depicts an example process for automatically programming a medical device using a dynamically obtained template and parameters dynamically updated at the medical device, according to aspects of the subject technology.
[0018] FIG. 4C depicts an example flow diagram for setting a refresh timer for a parameter of an APR, according to aspects of the subject technology.
[0019] FIG. 5 depicts a third example flow diagram for automatically programming a medical device based on a dynamically obtained automated APR template, according to aspects of the subject technology.
[0020] FIG. 6 is a conceptual diagram illustrating an example electronic system for automatically programming a medical device based on a dynamically obtained APR template, according to aspects of the subject technology.DESCRIPTION
[0021] Reference will now be made to implementations, examples of which are illustrated in the accompanying drawings. In the following description, numerous specific details are set forth in order to provide an understanding of the various described implementations. However, it will be apparent to one of ordinary skill in the art that the various described implementations may be practiced without these specific details. In other instances, well-known methods, procedures, components, circuits, and networks have not been described in detail so as not to unnecessarily obscure aspects of the implementations.
[0022] According to various aspects of the subject technology, instead of relying on existing non-changing data to generate an APR for programming a medical device, the subject technology dynamically updates APR data at the time of generation, while the medical device is being programmed with data associated with the APR, or at runtime after being programmedby the APR. In some implementations, an APR message may include well defined values or references that can be used by the receiving device to resolve a current value for the message, in real time. The APR message may also be generated to include a referenced value to allow downstream devices to obtain the missing and / or unavailable information.
[0023] When an APR process is initiated, the system automatically obtains a template specific to the type of the medical device and that includes parameters for configuring operation of the medical device. The system determines that at least one of the parameters of the template should be updated when the medical device is configured by the APR. An updated value is generated by the system and the parameters of the APR updated with the updated value. The APR is caused to be sent to the medical device, with the updated value, to configure the medical device according to the parameters of the template, including the updated value.
[0024] FIG. 1A is an example patient care system, according to various aspects of the subject technology. The patient care system 12 shown in FIG. 1 A includes four fluid infusion pumps 16, 18, 20, 22, each of which is in operative engagement with a respective fluid administration set 2a-d. Fluid supplies 3a-d, which may take various forms but in this case are shown as bottles, are inverted and suspended above the pumps. Fluid supplies may also take the form of bags or other types of containers. Both the patient care system 12 and the fluid supplies 3a-d are mounted to a roller stand or pole 4. The specific fluid supplies as well as their orientation (e.g., mount location, mount height, mounting type, etc.) within the care area may generate one or more interaction records. The interaction record for a set for example may be generated in part by detecting a scannable code associated with the set or detecting a physical structure on the set that encodes identifying information for the set prior to use.
[0025] As shown in the example implementation of FIG. 1A, each administration set 2a-d is connected between a respective fluid supply 3a-d and the same patient so that the patient may receive the fluids in all the fluid supplies. The administration set may be identified either actively by, for example, scanning by a clinician or passively by, for example, wireless or optical detection of the administration set.
[0026] In the depicted example, a separate infusion pump 16, 18, 20, 22 is used to infuse each of the fluids of the fluid supplies into the patient. The infusion pumps are flow control devices that will act on the respective tube or fluid conduit of the fluid administration set to move the fluid from the fluid supply through the conduit to the patient. Because individualpumps are used, each may be individually set to the pumping or operating parameters required for infusing the particular medical fluid from the respective fluid supply into the patient at the particular rate prescribed for that fluid by the clinician.
[0027] Typically, medical fluid administration sets have more parts than are shown in FIG. 1 A. Many have check valves, drip chambers, valved ports, connectors, and other devices well known to those skilled in the art. These other devices have not been included in the drawings so as to preserve clarity of illustration.
[0028] FIG. IB is a closer view of a portion of the example patient care system shown in FIG. 1A, according to various aspects of the subject technology. FIG. IB shows two of the fluid infusion pumps mounted at either side of a programming module, and the displays and control keys of each, with the programming module being capable of programming both infusion pumps. The patient care system 12 — represented as an infusion device — includes a door 5a and a handle 5b that operates to lock the door in a closed position for operation and to unlock and open the door for access to the internal pumping and sensing mechanisms and to load administration sets for the pump. When the door 5a is open, the tube can be connected with the pump 20. When the door 5a is closed, the tube is brought into operating engagement with the pumping mechanism, the upstream and downstream pressure sensors, and the other equipment of the pump. A display 5c, such as an LED display, is located in plain view on the door in this embodiment and may be used to visually communicate various information relevant to the pump 20, such as alert indications (e.g., alarm messages). Control keys 5e-h exist for programming and controlling operations of the infusion pump as desired. In some implementations, the control keys may be presented as interactive elements on the display 5c (e.g., touchscreen display). The infusion device 12 and / or infusion pump 20 may also include audio alert equipment in the form of a speaker (not shown).
[0029] The programming module 14 of the infusion device 12 includes a display 6a for visually communicating various information, such as the operating parameters of a connected pump and alert indications and alert messages, and control keys 6b and 6c for selecting and / or setting control parameters and / or options for controlling the infusion device 12 and connected modules. The programming module 14 may also include a speaker to provide audible alerts. In some implementations, the display 6a may be implemented as a touchscreen display. In such implementations, the control keys 6b may be omitted or reduced in number by providing corresponding interactive elements via a graphical user interface presented via the display 6a.In some implementations, each control key 6b (or 6c) may select a corresponding option displayed in display 6b.
[0030] The programming module 14 may include a communications system (not shown) with which the programming module 14 may communicate with external equipment such as a medical facility server or other computer and with a portable processor, such as a handheld communication device or a laptop-type of computer, or other information device that a clinician may have to transfer information as well as to download drug libraries to a programming module 16, 18, 20, 22 (such as pump 20). The communication module may be used to transfer access and interaction information for clinicians encountering the programming module or device coupled therewith (e.g., pump 20 or bar code scanner). The communications system may include one or more of a radio frequency (RF) system, an optical system such as infrared, a BLUETOOTH™ system, or other wired or wireless system. The bar code scanner and communications system may alternatively be included integrally with the infusion pump 20, such as in cases where a programming module is not used, or in addition to one with the programming module 14. Further, information input devices need not be hard-wired to medical instruments, information may be transferred through a wireless connection as well. Additionally, other types of modules may be connected to the pump modules or to the programming module such as a syringe pump module, patient controlled analgesic module, End Tidal CO2 monitoring module, oximeter monitoring module, or the like.
[0031] FIG. 1C depicts an example of an institutional patient care system 100 of a healthcare organization, according to aspects of the subject technology. In FIG. 1C, an infusion device 12 (or “medical device” generally) is connected to a hospital network 10. The term patient care device (or “PCD”) may be used interchangeably with the term patient care unit (or “PCU”), either which may include various ancillary medical devices such as an infusion pump, a vital signs monitor, a medication dispensing device (e.g., cabinet, tote), a medication preparation device, an automated dispensing device, a module coupled with one of the aforementioned (e.g., a syringe pump module configured to attach to an infusion pump), or other similar devices. Each element of the infusion device 12 is connected to an internal healthcare network 10 by a transmission channel 31. Transmission channel 31 is any wired or wireless transmission channel, for example an 802.11 wireless local area network (LAN). In some implementations, network 10 also includes computer systems located in various departments throughout a hospital. For example, network 10 of FIG. 1C optionally includescomputer 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 described further below, network 10 may include discrete subnetworks. In the depicted example, network 10 includes a device network 41 by which patient care devices 12 (and other devices) communicate in accordance with normal operations.
[0032] Additionally, institutional patient care system 100 may incorporate a separate information system server 30. Moreover, although the information system server 30 is shown as a separate server, the functions and programming of the information system server 30 may be incorporated into another computer, if such is desired by engineers designing the institution's information system. Institutional patient care system 100 may further include one or multiple device terminals 32 for connecting and communicating with information system server 30. Device terminals 32 may include personal computers, personal data assistances, and mobile devices such as laptops, tablet computers, augmented reality devices, or smartphones, configured with software for communications with information system server 30 via network 10.
[0033] Patient care device 12 comprises a system for providing patient care, such as that described in Eggers et al., which is incorporated herein by reference for that purpose. Patient care device 12 may include or incorporate pumps, physiological monitors (e.g., heart rate, blood pressure, ECG, EEG, pulse oximeter, and other patient monitors), therapy devices, and other drug delivery devices may be utilized according to the teachings set forth herein. In the depicted example, patient care device 12 comprises a control module 14, also referred to as interface unit 14, connected to one or more functional modules 116, 118, 120, 122. Interface unit 14 includes a central processing unit (CPU) 50 connected to a memory, for example, random access memory (RAM) 58, and one or more interface devices such as user interface device 54 (e.g., FIG. IB (6a)), a coded data input device 60, a network connection 52, and an auxiliary interface 62 for communicating with additional modules or devices. Interface unit 14 also, although not necessarily, includes a main non-volatile storage unit 56, such as a hard disk drive or non-volatile flash memory, for storing software and data and one or more internal buses 64 for interconnecting the aforementioned elements.
[0034] In various implementations, user interface device 54 is a touch screen for displaying information to a user and allowing a user to input information by touching defined areas of thescreen. Additionally, or in the alternative, user interface device 54 could include any means for displaying and inputting information, such as a monitor, a printer, a keyboard, softkeys, a mouse, a track ball and / or a light pen. Data input device 60 may be a bar code reader capable of scanning and interpreting data printed in bar coded format. Additionally or in the alternative, data input device 60 can be any device for entering coded data into a computer, such as a device(s) for reading a magnetic strips, radio-frequency identification (RFID) devices whereby digital data encoded in RFID tags or smart labels (defined below) are captured by the reader 60 via radio waves, PCMCIA smart cards, radio frequency cards, memory sticks, CDs, DVDs, or any other analog or digital storage media. Other examples of data input device 60 include a voice activation or recognition device or a portable personal data assistant (PDA). Depending upon the types of interface devices used, user interface device 54 and data input device 60 may be the same device. Although data input device 60 is shown in FIG. 1C to be disposed within interface unit 14, it is recognized that data input device 60 may be integral within pharmacy system 34 or located externally and communicating with pharmacy system 34 through an RS- 232 serial interface or any other appropriate communication means. Auxiliary interface 62 may be an RS-232 communications interface, however any other means for communicating with a peripheral device such as a printer, patient monitor, infusion pump or other medical device may be used without departing from the subject technology. Additionally, data input device 60 may be a separate functional module, such as modules 16, 18, 20 and 22, and configured to communicate with controller 14, or any other system on the network, using suitable programming and communication protocols.
[0035] Network connection 52 may be a wired or wireless connection, such as by Ethernet, WiFi, BLUETOOTH, an integrated services digital network (ISDN) connection, a digital subscriber line (DSL) modem or a cable modem. Any direct or indirect network connection may be used, including, but not limited to a telephone modem, an 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.
[0036] Functional modules 16, 18, 20, 22 are any devices for providing care to a patient or for monitoring patient condition. As shown in FIG. 1C, at least one of functional modules 16, 18, 20, 22 may be an infusion pump module such as an intravenous infusion pump for delivering medication or other fluid to a patient. For the purposes of this discussion, functional module 116 is an infusion pump module. Each of functional modules 16, 18, 20, 22may be any patient treatment or monitoring device including, but not limited to, an infusion pump, a syringe pump, a PCA pump, an epidural pump, an enteral pump, a blood pressure monitor, a pulse oximeter, an EKG monitor, an EEG monitor, a heart rate monitor, an intracranial pressure monitor, or the like. Functional module 16, 18, 20 and / or 22 may be a printer, scanner, bar code reader, near-field communication reader, RFID reader, or any other peripheral input, output or input / output device.
[0037] Each functional module 16, 18, 20 and / or 22 communicates directly or indirectly with interface unit 14, with interface unit 14 providing overall monitoring and control of device 12. Functional modules 16, 18, 20 and / or 22 may be connected physically and electronically in serial fashion to one or both ends of interface unit 14 as shown in FIG. 1C, or as detailed in Eggers et al. However, it is recognized that there are other means for connecting functional modules with the interface unit that may be utilized without departing from the subject technology. It will also be appreciated that devices such as pumps or patient monitoring devices that provide sufficient programmability and connectivity may be capable of operating as standalone devices and may communicate directly with the network without connected through a separate interface unit or control unit 14. As described above, additional medical devices or peripheral devices may be connected to patient care device 12 through one or more auxiliary interfaces 62.
[0038] Each functional module 16, 18, 20, 22 may include module-specific components 76, a microprocessor 70, a volatile memory 72 and a nonvolatile memory 74 for storing information. It should be noted that while four functional modules are shown in FIG. 1C, any number of devices may be connected directly or indirectly to central controller 14. The number and type of functional modules described herein are intended to be illustrative, and in no way limit the scope of the subject technology. Module-specific components 76 include any components necessary for operation of a particular module, such as a pumping mechanism for infusion pump module 116.
[0039] While each functional module may be capable of a least some level of independent operation, interface unit 14 monitors and controls overall operation of device 12. For example, as will be described in more detail below, interface unit 14 provides programming instructions to the functional modules 16, 18, 20, 22 and monitors the status of each module.
[0040] Medical devices incorporating aspects of the subject technology may be equipped with a network interface module (NIM), allowing the medical device to participate as a node in a network. While for purposes of clarity the subject technology will be described as operating in an Ethernet network environment using the Internet Protocol (IP), it is understood that concepts of the subject technology are equally applicable in other network environments, and such environments are intended to be within the scope of the subject technology.
[0041] Data to and from the various data sources can be converted into network-compatible data with existing technology, and movement of the information between the medical device and network can be accomplished by a variety of means. For example, patient care device 12 and network 10 may communicate via automated interaction, manual interaction or a combination of both automated and manual interaction. Automated interaction may be continuous or intermittent and may occur through direct network connection 52 (as shown in FIG. 1C), or through RS232 links, MIB systems, RF links such as BLUETOOTH, IR links, WLANS, digital cable systems, telephone modems or other wired or wireless communication means. Manual interaction between patient care device 12 and network 40 involves physically transferring, intermittently or periodically, data between systems using, for example, user interface device 54, coded data input device 60, bar codes, computer disks, portable data assistants, memory cards, or any other media for storing data. The communication means in various aspects is bidirectional with access to data from as many points of the distributed data sources as possible. Decision-making can occur at a variety of places within network 40. For example, and not by way of limitation, decisions can be made in health information system (HIS) server 30, hospital department or unit stations 32, or within patient care device 12 itself.
[0042] All direct communications with medical devices operating on a network in accordance with the subject technology may be performed through information system server 30, known as the remote data server (RDS). In accordance with aspects of the subject technology, network interface modules incorporated into medical devices such as, for example, infusion pumps or vital signs measurement devices, ignore all network traffic that does not originate from an authenticated RDS. The primary responsibilities of the RDS of the subject technology are to track the location and status of all networked medical devices that have NIMs and maintain open communication.
[0043] According to various implementations, server 30 includes a formulary and / or pharmacy information system. Pharmacy information systems may enable a safer physicianmedication order process. A pharmacy website (e.g., provided by the server) may provide the physician with a list of available drugs from which the physician may select. The pharmacy website may contain a drug library having the list of available drugs but may also contain and present to the physician the drug names associated with recommended dosages and dose limits that have been established or adopted by the healthcare facility. In such a case where the physician need only select items from the computer screen rather than having to manually type in drug names and drug administration numbers (such as infusion rates, times, etc.) associated with administration of the medication, a more accurate medication process should result.
[0044] If a clinical order is for administration of a particular medication regimen, the order will be transmitted to the facility's pharmacy information system (e.g., part of server 30). The pharmacy reviews the order, and once the order has been prepared, the order may be transmitted to the nurse station for matching with the appropriate patient. Formulary is an approved list of drugs for use (e.g., available to order for a patient) within a medical facility. Within a formulary, there may be indication for use information and / or concentrations and drug ranges approved for the facility. As will be described further, a formulary may be used to define one or more medical device drug libraries, which may then be provided to infusion pumps within a hospital network. Inside the library, there is medication information such as drug names, concentration, diluent volume, strength, minimum or maximum infusion parameters for a drug, and other parameters. The establishment of these parameters, along with parameters for off- formulary orders, via the system 30 is useful for maintaining consistency across the healthcare environment and ensuring an order is intelligible and executed according to expectations by other devices within the system 30 (e.g., an infusion pump).
[0045] With further reference to FIG. 1C, patient care device 12 is capable of operating in several different modes, or personalities, with each personality defined by a configuration database. The configuration database may be a database 56 internal to patient care device, or an external database 37. A particular configuration database is selected based, at least in part, by 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 also includes care provider information (e.g., physician identification) or a patient care device’s 12 location in the hospital or hospital computernetwork. Patient care information may be entered through interface device 52, 54, 60 or 62, and may originate from anywhere in network 10, such as, for example, from a pharmacy server, admissions server, laboratory server, and the like.
[0046] A memory 56, 58 of the interface unit 14 may contain a drug library or libraries, an event log or logs, and pump configuration settings, such as, but not limited to, profiles to be used in particular practice areas such as ICU, PED, etc. The memory may be electronically loadable memory such as non-volatile memory (e.g., EEPROM). Drug libraries stored on pumps (which illustratively contain such information as the drug names, ranges of delivery parameter values such as proper concentrations, dosage units, and dose limits) can be used to perform drug calculation-based infusions in a clinical setting.
[0047] A drug library stored within the pump’s memory may include clinical order settings such as limits set by the clinical institution for each drug of the library (also termed as “guardrails” herein). Such limits may take the form of maximum and minimum dosages for each drug which may be made dependent on patient factors or other factors associated with delivery of the drug. For example, the dosage limits may vary depending on the weight of the patient or body surface area (“BSA”), depending on the unit or ward of the medical institution in which the drug is being used (for example neonatal care unit (NCU), the intensive care unit (ICU), etc.), and depending on other factors. An alarm may be provided if the nurse sets the pump to operate outside the range between the limits for a particular drug. In some cases, the alarm may be overridden and in other cases it may not. The medical facility may establish “soft” limits for each drug, which may be overridden by the nurse, and “hard” limits which may not. In either case where a limit is exceeded, a pump data log or other processor in communication with the infusion pump may record each such limit event for later analysis where the attempted setting is higher than the maximum or lower than the minimum dosage.
[0048] The pump also includes a display for displaying a user interface, including a control panel through which the user can program the programmable controller and a display screen for displaying drug entries from the drug library. Each of the associated sets of drug delivery parameters includes information selected from a group of parameters including drug concentration, drug delivery rate, drug dose, and bolus size. The electronically loaded drug library contains a list of available mode options specifying the units available for expressing drug delivery information, and the drug infusion pump offers the user the list of available mode options from which to make a selection when the electronically loaded drug library is in thepump. In the case of a syringe pump, the electronically loaded drug library may include a list of names of syringe manufacturers identifying syringes that can be used in the drug infusion pump, and the drug infusion pump offers the user the list of names of syringe manufacturers from which to make a selection when the electronically loaded drug library is in the pump. The loaded drug library may include a list of syringe sizes identifying syringes that can be used in the drug infusion pump, and the drug infusion pump offers the user the list of syringe sizes from which to make a selection when the electronically loaded drug library is in said pump. In the case of a peristaltic pump, the electronically loaded drug library may include a list of infusion set manufacturers. A loaded drug library may include a set of features, each of which is either be toggled on or off, and the pump offers the user only the features from among the set of features that are toggled on when the electronically loaded drug library is in said pump.
[0049] FIG. 2 depicts an example system 200 for automatically programming a medical device, according to aspects of the subject technology. Interoperability between a hospital’s electronic medical records (EMR) system 202 and medical devices such as infusion device 12 enable pre-population of infusion parameters. Pre-population of infusion parameters may reduce the number of programming screens and key presses required with manual programming of a pump. The implementation of interoperability does not preclude a clinician from manually programming the infusion device. Manual programming may be required in the event of a failure in any component of the interfaced system.
[0050] While features may be described with reference to an EMR, the features are applicable to provide auto-programming of medical devices using similar hospital information systems such as pharmacy data management systems (PDMSs) or other patient data management systems. Furthermore, while the features may be described using an infusion device as the example patient care devices 12, the features are applicable to provide autoprogramming of other medical devices using barcodes for association such as patient monitors, patient association management systems, ventilators, or alarms management systems.
[0051] A formulary 204 determines which medications can be dispensed within a hospital network. A hospital committee may be formed to determine how medications within that formulary would be applied to the patient care devices 12. Configuration definitions (e.g., by hospital unit such as ICU, NICU, Pediatrics, Oncology, Surgery, etc.) are agreed upon and the drugs and typical infusion protocols are established in a medical device drug library (“drug library”). In addition, limitation, or guard rail, conditions are defined in the drug library. Whenthe definitions are complete, then a configuration can be released including the drug library. Pumps at the institution are then updated by transferring the configuration databases into some or all of their pumps. Corresponding updates to the formulary may be shared with other hospital systems such as the pharmacy ordering system or electronic medical records system which may be use formulary information to generate a patient order to deliver a particular drug to a particular patient (e.g., FIG. 2 at 2.1).
[0052] In the clinical field, a clinician may scan a medical item such as an infusate package using a scanner associated with a medical device such as an infusion device 12. For example, a bar code reader (or other data input device) is used to scan the coded drug label, the patient's coded ID band and the caregiver's ID badge, and optionally supplementary prescription information or medical device configuration instructions (including configuration database ID) printed on the label or an accompanying order. The reader / scanner is not required to be integrated with a medical device. The scanner may be part of a separate device such as a medical records terminal 206 (e.g., part of one or more computing devices) connected to the same network 40 as the infusion device 12 and configured with software to function in an overall workflow involving the infusion device 12. The scanning initiates a process by which information pertaining to the item (e.g., scanned from a code affixed to or transmitted by the item) is automatically sent (e.g., FIG. 2 at 2.2) to the hospital’s EMR 202 (e.g., at a centralized server 30) via a network 40. The EMR system 202 may confirm the item and generate (e.g., FIG. 2 at 2.3) and send an automated programming request (APR) to the medical device 12 to load parameters pertaining to the item. The parameters may be stored in the medical device 12, but loaded in response to an identifier received from the server. While the examples herein involve an infusion device, any medical device may be configured in the same or similar manner and employ the automated programming error mitigation described herein.
[0053] In the depicted implementation, a coordination engine 208 coordinates messages sent from the EMR system 202 to the infusion device 12. In the depicted implementation, the EMR system 202 transmits an APR (or request therefor) (e.g., FIG. 2 at 2.4) to the pump coordination engine 208 with a device identifier (ID) of the infusion device to receive the APR. The coordination engine 208 then determines whether the infusion device 12 identified by the EMR system 202 is available and, if so, provides (e.g., forward or generate and transmit) the APR to the device 12 (e.g., FIG. 2 at 2.5). When an APR is received by the infusion device 12, the infusion device 12 programs itself according to the parameters of the APR. In someimplementations, the APR activates a drug library stored on the device, and the infusion device 12 is programmed according to parameters stored in the drug library for the medication identified in the APR. In some implementations, upon successful programming, the infusion device 12 may automatically initiate operation based on the parameters. In some implementations, the infusion device 12 may confirm the automatically entered parameters (e.g., FIG 2 at 2.6). The confirmation may include presenting one or more user interface screens including the parameters and values along with a control element (e.g., a button) that, when activated, causes the infusion device 12 to begin operation based on the parameters. The user interface may include additional or alternative control elements to allow a clinician to adjust an automatically entered parameter based on, for example, professional judgement or changes in patient condition.
[0054] FIG. 3A depicts a first example sequence diagram 300 for automatically programming a medical device based on a dynamically obtained automated programming request (APR) template, according to aspects of the subject technology. For explanatory purposes, the various interactions between components of sequence diagram 300 are described herein with reference to the components and / or processes described in FIGS. 1A, IB, 1C, and 2.
[0055] As described previously, an identifier of a medical device 12 may be scanned at an EMR terminal 206 and a process initiated by which information pertaining to the medical device is automatically sent to the hospital’s EMR server 202. The EMR server 202 performs certain actions pertaining to the medical device and causes transmission of an automated programming request (APR) to the medical device 12 to configure the device 12. In some implementations, an identifier of the medical device 12 is scanned from a barcode affixed to the device in conjunction with parameters entered into the terminal for selecting and generating the APR.
[0056] Using infusion devices as an example, a hospital system implementing the subject technology may include one or more infusion devices 12, an EMR terminal 206, and an EMR server 202 (including, e.g., one or more patient PDMSs) connected to a connectivity gateway 302. In some implementations, the connectivity gateway 302 includes or is part of or associated with the coordination engine 208. In some implementations, the connectivity gateway 302 is a separate system. In some implementations, the gateway 302 may include one or more computing devices such a server or servers apart from the EMR server 202. In someimplementations, the gateway 302 may be implemented by or interchangeable with the coordination engine 208 of FIG. 2. In some implementations, the EMR server 202 and the connectivity gateway 302 may co-exist as a single server or a group of servers. Server 30 of FIG. 1C may be representative of an EMR server 202 and / or a connectivity gateway 302.
[0057] In the depicted example of FIG. 3 A, a clinician interacts with and authenticates to the EMR terminal 206. As described with regard to FIG. 2, the EMR terminal 206 may obtain the clinicians identification by way of the authentication process, and the clinician may enter the care area, patient identifier, drug identifier, device / pump / module identifier, order identifier, and / or other identifying information for requesting an APR be sent to an infusion device 12. The identifying information obtained via the EMR terminal 206 is transmitted to the EMR server 202 as a request to automatically program the infusion device (304).
[0058] The EMR 202 transmits a request message to the connectivity gateway 302 (306) with some or all of the information obtained via the terminal 206. For example, the EMR server 202 may send a request message that includes a device identifier (ID) of the infusion device to receive the APR (in addition to one or more of the identifiers received at 304).
[0059] The connectivity gateway 302 then obtains an APR template for programming the medical device (308). In some implementations, the obtained template is specific to the type of the medical device. For example, the server 302 may perform a lookup of the medical device type based on the device identifier received with the request (e.g., in a database). In some implementations, the device identifier includes the type of medical device for which the APR is to be sent. In some implementations, the APR template may be associated with the device identifier and obtained by a lookup based on the identifier. In some implementations, the APR template is obtained (e.g., retrieved from a database) based on the order identifier, or based on the order identifier in combination with the medical device or type identifier.
[0060] Each APR template includes a plurality of predetermined parameters used to program the corresponding medical device. In some implementations, an APR template comprises a predetermined organization of parameter placeholders for parameter values that the corresponding medical device uses to operate. An APR template, for the purpose of this disclosure, includes an organized group or structure of informational elements used to program a medical device. The informational elements may include parameters and / or parameter placeholders (e.g., into which parameter values may be inserted after designation / generation ofthe placeholder). For the purpose of this disclosure, in some implementations, the terms parameter and parameter placeholder may be used synonymously.
[0061] In some implementations, the APR template may include default values for one or more (or all) of the parameters. According to various implementations, when the APR template is obtained, the system proceeds to identify the parameters within the APR (e.g., by electronically parsing or scanning the APR template) and then retrieves the parameter values to populate the template with the retrieved values. Parameter values may be stored for various medical devices, with each value selected for typical operation. In some implementations, the parameters are provided from a drug library, as previously described. The drug libraries for each medical device type may be stored on EMR server 202 and queried by the system upon receiving a request for a template. In some implementations, the template is obtained based on the medical device type and provides which parameters should be used, and one or more (or all of) the parameter values are obtained based on the order identifier and / or patient identifier.
[0062] In the depicted example, the connectivity gateway 302, having obtained the template, looks up the variable values for one or more (or all) of the parameters identified in the template by providing the order identifier to the EMR server 310. The parameters may be retrieved from a single database 37 or multiple databases 37 and / or external systems. In some implementations, the APR template may identify from which source to retrieve each parameter. Accordingly, the APR may be generated from multiple sources based on the APR template. The parameters are then merged with the obtained APR template to generate an APR for the medical device (312). In some implementations the merge may include substituting values in the APR template with obtained, order-specific, values.
[0063] The coordination engine 302 forwards the APR to the device 12 (e.g., FIG. 2 at 2.5) (314). When an APR received by an infusion device 12, the infusion device 12 programs itself according to the parameters of the APR (316). In some implementations, the APR activates a drug library stored on the device, and the infusion device is programmed according to parameters stored in the drug library for the medication identified in the APR. In some implementations, the drug library is identified based on information (e.g., medication identifier) within the APR. In some implementations, some parameters and / or parameter values are provided by the APR, while some parameters and / or parameter values are provided by the drug library.
[0064] In some implementations, upon successful programming, the infusion device may automatically initiate operation based on the parameters. As described previously, the infusion device may confirm the automatically entered parameters (e.g., FIG 2 at 2.6). The confirmation may include presenting one or more user interface screens including the parameters and values along with a control element (e.g., a button) that, when activated, causes the infusion device to begin operation based on the parameters. The user interface may include additional or alternative control elements to allow a clinician to adjust an automatically entered parameter based on, for example, professional judgement or changes in patient condition.
[0065] After the APR has been accepted and processed by the infusion device without failure, the infusion device begins to infuse a medication according to the programming provided by the APR. After the infusion has begun, the infusion device may send one or more status messages to the EMR system 202. A status message informs the EMR system what was started and includes certain values on which the infusion device is reporting. This information may reflect the APR data and / or may include changes made at the device. The EMR system may wait for the status message and, upon receiving the message, closes out the workflow pertaining to the APR.
[0066] FIG. 3B depicts an example process 320 for automatically programming a medical device using a dynamically obtained template and parameters dynamically updated at server, according to aspects of the subject technology. For explanatory purposes, the various blocks of example process 320 are described herein with reference to FIGS. 1 A-C, 2, and 3A and the associated components and / or processes described herein. According to various implementations, process 320 is a streamlined variation of process 320. The one or more of the blocks of process 320 may be implemented, for example, by one or more computing devices including, for example, EMR server 202 and / or connectivity gateway 302. In some implementations, one or more of the blocks may be implemented based on one or more machine learning algorithms. In some implementations, one or more of the blocks may be implemented apart from other blocks, and by one or more different processors or devices. Further, for explanatory purposes, to the extent that the blocks of example process 320 are described as occurring in serial, or linearly, in some implementations, multiple blocks of example process 320 may occur in parallel. In addition, the blocks of example process 320 need not be performed in the order shown and / or one or more of the blocks of example process 320 need not be performed.
[0067] According to various implementations, a server (e.g., an EMR and / or connectivity gateway server) receives a request to automatically program a medical device (322), as described previously. A template is then retrieved for the APR based on the request (324). The system determines whether the APR template includes a substation variable (326); i.e., the system determines whether a parameter of a plurality of parameters in the template is a parameter to be updated. If the parameter is a parameter to be updated then a variable value for updating the parameter is obtained (328). According to various implementations, the template may indicate from which source (e.g., database 37, network service, etc) the parameter is to be updated. In this regard, multiple parameters may be updated from multiple different sources. As will be described further, the parameter value may be obtained at a predetermined time, for example, before the medical device is configured according to the template, or at a predetermined time afterward. According to various implementations, a substitution variable is retrieved from a network source (e.g., a server or database). In the depicted example, the parameter value is obtained by a server. In some examples, the parameter value may be obtained by the medical device that received the APR.
[0068] In the depicted example, template parameter is updated with the obtained parameter value and the APR message (to be sent to the medical device) is generated based on the template and the updated value (330). The APR is sent to the medical device to program the medical device (332) (e.g., as described in FIG. 2 at 2.5). If the template does not include a parameter flagged for updating then the APR message is generated (330) as described in FIG.2 and the APR message is sent to the medical device to program the medical device (332).
[0069] FIG. 4A depicts a second example sequence diagram 350 for automatically programming a medical device based on a dynamically obtained automated programming request (APR) template, according to aspects of the subject technology. For explanatory purposes, the various interactions between components of sequence diagram 300 are described herein with reference to the components and / or processes described in FIGS. 1A, IB, 1C, 2, and 3 A and 3B.
[0070] In the depicted example, the parameter(s) of the template to be updated / substitute are updated / substituted by the medical device 12 (instead of at a server as in, for example, FIG.3 A). In this regard, the APR request is made and provided to the server(s) in a similar manner as in FIG. 3A (304, 306), and a server (e.g., the connectivity gateway 302) obtains an APR template (308). The server 302 forwards the APR to the medical device 12 (314). After anAPR is received by the medical device, the medical device looks up one or more parameters identified for substitution (340). The parameters of the APR, including the parameters identified for substitution, may be populated and / or updated from on a drug library stored on the medical device, or may be obtained from a remote server. In the depicted example, the medical device 12 looks up the variable values for each parameter identified for substitution by providing the order identifier to the EMR server 310. According to various implementations, the identified parameters are obtained during the programming process, after the AR is retrieved. In some implementations, the updated parameters (e.g., including substituted values) may be merged at the medical device with the obtained APR template to generate an APR for the medical device. The depicted sequence concludes when the medical device 12 completes programming according to the parameters of the APR (316).
[0071] In some implementations, a parameter provided in the APR and / or APR template may include a function call. For example, the server (or the medical device) upon receiving the APR template may insert a function call into a parameter placeholder. For example, the function may perform a calculation based on one or more retrieved values. The function call may then be used at runtime to obtain a parameter value, for example, based on a condition (e.g., a runtime condition at the medical device). In some implementations, when the parameter is to be used, the function call is executed, which may initiate an evaluation of the condition. The parameter may then be updated to a first value when the condition is satisfied or a second value when the condition is not satisfied. According to various implementations, the condition may include selecting a parameter based on another value or determination. For example, the value of the parameter may depend on what care area the medical device is located or associated with. In this regard, evaluation of the condition may include evaluation of the care area. If the care area is identified to be a first care area, then the parameter may be set to a first value, and when the care area is identified to be a second care area then the parameter may be set to a second value. In some implementations, if the care area is identified to be a third care area, then the parameter may be set to a third value and so on.
[0072] FIG. 4B depicts an example process 380 for automatically programming a medical device using a dynamically obtained template and parameters dynamically updated at the medical device, according to aspects of the subject technology. For explanatory purposes, the various blocks of example process 380 are described herein with reference to FIGS. 1A-C, 2, 3 A, 3B, and 4A and the associated components and / or processes described herein. The one ormore of the blocks of process 380 may be implemented, for example, by one or more computing devices including, for example, EMR server 202 and / or connectivity gateway 302. In some implementations, one or more of the blocks may be implemented based on one or more machine learning algorithms. In some implementations, one or more of the blocks may be implemented apart from other blocks, and by one or more different processors or devices. Further, for explanatory purposes, to the extent that the blocks of example process 380 are described as occurring in serial, or linearly, in some implementations, multiple blocks of example process 380 may occur in parallel. In addition, the blocks of example process 380 need not be performed in the order shown and / or one or more of the blocks of example process 380 need not be performed.
[0073] In the depicted example, a medical device 12 receives an automated programming request (APR) (382) from a server, as previously described. The APR may be based on a dynamically obtained template, as previously described. One or more parameters is flagged (e.g., identified) for updating by the medical device, either upon being received (e.g., when parsed by the medical device) or when the medical device is configured according to the APR, or at a predetermined period of time after the medical device is programmed or an infusion is initiated. At the appropriate time, the medical device 12 proceeds to obtain an updated parameter value for each of the flagged parameters (386). For example, the medical device may retrieve a substitution variable value from another computing device (e.g., a remote server or database) for each of the flagged parameters. As described previously, multiple parameters may each be updated from a different source. After the parameters are determined, the configuration of the medical device 12 may be completed, as previously described (388).
[0074] FIG. 4C depicts an example flow diagram for setting a refresh timer for a parameter of an automated programming request (APR), according to various aspects of the subject technology. For explanatory purposes, the various blocks of example process 400 are described herein with reference to FIGS. 1A-C, 2, 3A, 3B, 4A and 4B and the associated components and / or processes described herein. According to various implementations, process 400 is a streamlined variation of process 400. The one or more of the blocks of process 400 may be implemented, for example, by one or more computing devices including, for example, EMR server 202 and / or connectivity gateway 302. In some implementations, one or more of the blocks may be implemented based on one or more machine learning algorithms. In some implementations, one or more of the blocks may be implemented apart from other blocks, andby one or more different processors or devices. Further, for explanatory purposes, to the extent that the blocks of example process 400 are described as occurring in serial, or linearly, in some implementations, multiple blocks of example process 400 may occur in parallel. In addition, the blocks of example process 400 need not be performed in the order shown and / or one or more of the blocks of example process 400 need not be performed.
[0075] According to various implementations, an automated programming request (APR) is received at a medical device such as, in this example, an infusion device. In the depicted example, an infusion is initiated according to the APR (402). When initiated, the parameters of the APR — in the subject technology, an APR generated according to a dynamically obtained template — are used to program an infusion.
[0076] As described previously, an APR of the subject technology may include a parameter (or variable) flagged for substitution. In the depicted example, the medical device 12 determines whether the APR includes such a parameter (404). If not, then the infusion begins. In some implementations, the determination may occur periodically. For example, when the infusion has not yet completed (418), the medical device may periodically determine whether a substitution parameter has been inserted into the programming of the medical device, or into the APR from which the medical device is programmed. In some implementations, a new APR may be obtained or updated from the server during the infusion. In some implementations, a clinician may flag a parameter for substitution via the control panel of the device.
[0077] When the APR includes a substitution parameter, the medical device 12 may attempt to obtain a new parameter. Multiple substitution parameters identified by the template may be sourced from multiple sources. In some implementations, the population and / or updating of parameters may occur at the server, but one or more parameters may be further updated at the medical device. According to various implementations, the parameter is updated with a new value and the infusion begins.
[0078] In some implementations, the medical device may receive the APR and identify a parameter within the APR (or template) that is flagged to be refreshed after the medical device is configured, or at a predetermined time in the future. In the depicted example, the parameter is set with a first value and flagged to be updated to a second value after a predetermined period of time. In this regard, the medical device may set a refresh timer after the medical devicel2 is configured according to the template and first parameter (406). Accordingly, the medicaldevice may periodically determine whether timer has expired (408) while operating as intended (e.g., continuing to infuse a medication). The refresh timer expiration may be specified by a clinician when initiating the infusion (e.g., via a user interface) or may be automatically set based on information available to the infusion device 12 such as care area, drug to be administered, or parameter to be retrieved. On expiration of the refresh timer, the medical device 12 may determine a new value to update the first parameter ( 10) and then proceed to update the first parameter based on the new value (414). In some implementations, the medical device 12 may first determine whether the new value varies from or otherwise fails to correspond with the current parameter before performing an update (412). In some implementations, the medical device 12 may prompt the user / clinician to confirm the updated parameter value before updating the current parameter with the updated parameter value ( 16).
[0079] FIG. 5 depicts a third example flow diagram for automatically programming a medical device based on a dynamically obtained automated APR template, according to aspects of the subject technology. For explanatory purposes, the various blocks of example process 500 are described herein with reference to FIGS. 1 A-C, 2, 3A-B, and 4A-C, and the associated components and / or processes described herein. According to various implementations, process 500 is a streamlined variation of process 500. The one or more of the blocks of process 500 may be implemented, for example, by one or more computing devices including, for example, EMR server 202 and / or connectivity gateway 302. In some implementations, one or more of the blocks may be implemented based on one or more machine learning algorithms. In some implementations, one or more of the blocks may be implemented apart from other blocks, and by one or more different processors or devices. Further, for explanatory purposes, to the extent that the blocks of example process 500 are described as occurring in serial, or linearly, in some implementations, multiple blocks of example process 500 may occur in parallel. In addition, the blocks of example process 500 need not be performed in the order shown and / or one or more of the blocks of example process 500 need not be performed.
[0080] In the depicted example, a request to initiate an automated programming of a medical device 12 is received (502). As described previously, the medical device 12 may be an infusion pump or pump controller configured to administer a medication to a patient by way of an infusion set (e.g., intravenous tube and catheter). The request may be received from a computer terminal associated with the medical device, as described with regard to FIG. 2.
[0081] Based on (or in response to) the request, a template corresponding to the type of the medical device is obtained (504). An APR template, for the purpose of this disclosure, includes an organized group or structure of informational elements used to program a medical device. One or more (or all) of the elements may include one or more parameters associated with an infusion (e.g., flow rate, VTBI (volume-to-be-infused), guardrails, etc.). One or more (or all) of the elements may include a parameter placeholder for a parameter to be populated at a different time and / or from another system. The obtained template includes parameters for configuring the medical device 12, for example, according to an order (previously entered into the corresponding healthcare information system by a clinician). In some implementations, the template will be specific to the type of the medical device. In this regard, the received request may include data sufficient for the system to identify the medical device and / or its type. Such data may include, for example, an identifier for an order, patient, clinician, medical device, medical device type, and / or medication.
[0082] The system (e.g., a server 202 / 302) determines, from the template, that a first parameter of the parameters associated with the template is a parameter to be updated (506). According to various implementations, the parameter may flagged within the template by meta data or other indication that is identified by the system during a scan or parsing of the template. The meta data or other indication may further identify when the parameter should be updated. For example, the parameter may be flagged for update when the medical device is configured, or may be flagged for a future update. In either case, the parameter may be initially set to a default value prior to the update, and the default value may be used to initially program the medical device (e.g., to start an infusion).
[0083] When the system determines that the first parameter is a parameter to be updated (and / or at the time indicated for the update), the system then proceeds to update the first parameter (508). In this regard, the updated parameter value may be generated (e.g., a value calculated based on a formula, obtained by function call, or retrieved) and then substituted into the template. According to various implementations, updating the parameter includes setting a new value of the parameter. In some implementations, updating the parameter may include substituting an existing parameter value, or replacing a parameter, with an entirely different parameter. An example of the latter may include substituting SP02 parameter for an ETCO2 parameter.
[0084] In some implementation, updating the parameter may include generating a function call and inserting the function call into a parameter placeholder so that, when the parameter is used (e.g., to program the medical device or in an implementation in which the template is used to generate and APR), the function call is executed and the updated value is retrieved from a remote location identified by the function call. In some implementations, a numeric parameter value may be replaced with a function call for retrieving a new parameter value when the function call is executed.
[0085] While the depicted example, includes one parameter being updated, it is understood that any number of parameters (e.g., two, three, four, etc.) may be identified to be updated and then updated by the system. As described previously, the updated parameter(s) may include a function call. In this regard, the function call may obtain a new parameter based on a condition. For example, when the parameter is going to be used at runtime (e.g., by the medical device), the function call is executed by the software used to obtain the parameter from the APR and / or template. The system (e.g., the medical device or server directed by the function call) determines whether the condition is satisfied, and the new parameter is set based on the circumstances surrounding the condition. For example, the system may set the new parameter to a first value when the condition is satisfied and set the new parameter to a second value different than the first value when the condition is not satisfied. The first parameter indicated to be updated is then updated with the new parameter, as previously described.
[0086] In some implementations, the condition is transmitted by the medical device when the server is called by the function call; e.g., the function call itself includes the condition as a parameter. The server may then retrieve the new parameter based on the condition and cause the first parameter (subject of the function call) to be updated with the new parameter (e.g., by way of returning the new parameter to the function call). In one example, a care area may be determined, and whether the condition is satisfied may be based on the determined care area. In one example, the care area may be sent (by the medical device) as part of the function call to the server, and the server may perform a lookup based on the care area to determine the new parameter for updating the first parameter. For example, the value may be a network service for providing order specific information. The APR template may include the information needed to access the network service such as authorization token, order identifier, or other parameter that can be used by the service to retrieve the expected information. In some instances, the authorization token may only be valid when presented with the order identifier.This can prevent unauthorized access to hospital or patient information. In another example, the server may lookup the care area itself based on information received from the medical device (e.g., device identifier).
[0087] In some implementations, the updated parameter may be determined by a trained (machine-learning) model. Accordingly, the system may collect parameter data associated with a medication across a patient population, a clinician population, and / or a medical device population. An identifier for the medication may be sent with the request to initiate automated programming of the medical device. The system may also receive a characteristic of the patient, of the clinician associated with the patient, and / or of the medical device. The characteristics may be sent with the APR or retrieved based on the information in the APR (e.g., from the EMR server). The characteristic(s) may then be input into the trained model which, based on its training and machine learning, determines the updated parameter.
[0088] In some implementations, the updated parameter (e.g., parameter value) includes a most recent clinical guidance for the patient, medical device, and / or medication. The system may retrieve (e.g., from a server 202 / 302) a most recent clinical guidance based on information in the request. In some implementations, the clinical guidance may be based on a care area of the medical device, which may be determined according to any of the previously described methods. In some implementations, the guidance may be based on seniority of history of clinician, or care area (e.g., to warn clinicians in certain care area of an issue related to the medication or medical device). In one example, a function call may be used, as previously described to fetch the most recent clinical guidance at the time of programming the medical device.
[0089] The depicted process continues after the template is updated by automatically causing an automated programming message to be transmitted to the medical device based on the template (510). In some implementations, the populated template is sent as the APR. In some implementations, an APR is generated based on the template (e.g., at the server or by the medical device after the template is received by the medical device). Accordingly, the APR causes the medical device to be configured according to the template and the plurality of parameters including the first parameter updated with the updated parameter value.
[0090] As described previously, the system may determine that a parameter of the APR or template (e.g., the first parameter) should be refreshed after the medical device is configuredaccording to the template. Accordingly, the parameter to be refreshed is flagged. The medical device (or system by way of meta data) may set a refresh timer when the device is configured according to the APR. The refresh timer may be set and / or started after the medical device is configured according to the template or, for example, when an infusion programmed by the APR is started. On expiration of the refresh timer, the medical device may automatically determine a new parameter to update the first parameter and update the first parameter of the medical device based on the new parameter. In some implementations, the APR is periodically updated at the server based on the template, and the flagged parameter is refreshed prior to the updated APR is sent to the medical device based on the refresh timer schedule.
[0091] Many of the above-described example processes 400, 500, and 700 and related features and applications, may also be implemented as software processes that are specified as a set of instructions recorded on a computer readable storage medium (also referred to as computer readable medium), and may be executed automatically (e.g., without user intervention). When these instructions are executed by one or more processing unit(s) (e.g., one or more processors, cores of processors, or other processing units), they cause the processing unit(s) to perform the actions indicated in the instructions. Examples of computer readable media include, but are not limited to, CD-ROMs, flash drives, RAM chips, hard drives, EPROMs, etc. The computer readable media does not include carrier waves and electronic signals passing wirelessly or over wired connections.
[0092] The term “software” is meant to include, where appropriate, firmware residing in read-only memory or applications stored in magnetic storage, which can be read into memory for processing by a processor. Also, in some implementations, multiple software aspects of the subject disclosure can be implemented as sub-parts of a larger program while remaining distinct software aspects of the subject disclosure. In some implementations, multiple software aspects can also be implemented as separate programs. Finally, any combination of separate programs that together implement a software aspect described here is within the scope of the subject disclosure. In some implementations, the software programs, when installed to operate on one or more electronic systems, define one or more specific machine implementations that execute and perform the operations of the software programs.
[0093] A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form,including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
[0094] FIG. 6 is a conceptual diagram illustrating an example electronic system 600 for automatically programming a medical device based on a dynamically obtained APR template, according to aspects of the subject technology. Electronic system 600 may be a computing device for execution of software associated with one or more portions or steps of processes 300, 350, 400, and 500 or components and methods provided by FIGS. 1-5, including but not limited to computing hardware within server 30, terminal 32, 206, or patient care device 12, and / or any computing devices or associated terminals disclosed herein. Electronic system 600 may be a specifically configured personal computer or a mobile device such as a smartphone, tablet computer, laptop, PDA, an augmented reality device, a wearable such as a watch or band or glasses, or combination thereof, or other touch screen or television with one or more processors embedded therein or coupled thereto, or similar computer-related electronic device having network connectivity.
[0095] Electronic system 600 may include various types of computer readable media and interfaces for various other types of computer readable media. In the depicted example, electronic system 600 includes a bus 608, processing unit(s) 612, a system memory 604, a readonly memory (ROM) 610, a permanent storage device 602, an input device interface 614, an output device interface 606, and one or more network interfaces 616. In some implementations, electronic system 600 may include or be integrated with other computing devices or circuitry specifically configured for operation of the various components and methods previously described.
[0096] Bus 608 collectively represents all system, peripheral, and chipset buses that communicatively connect the numerous internal devices of electronic system 600. For instance, bus 608 communicatively connects processing unit(s) 612 with ROM 610, system memory 604, and permanent storage device 602.
[0097] From these various memory units, processing unit(s) 612 retrieves instructions to execute and data to process, in order to execute the processes of the subject disclosure. The processing unit(s) can be a single processor or a multi-core processor in different implementations.
[0098] ROM 610 stores static data and instructions that are needed by processing unit(s) 612 and other modules of the electronic system. Permanent storage device 602, on the other hand, is a read-and-write memory device. This device is a non-volatile memory unit that stores instructions and data even when electronic system 600 is off. Some implementations of the subject disclosure use a mass-storage device (such as a magnetic or optical disk and its corresponding disk drive) as permanent storage device 602.
[0099] Other implementations use a removable storage device (such as a floppy disk, flash drive, and its corresponding disk drive) as permanent storage device 602. Like permanent storage device 602, system memory 604 is a read-and-write memory device. However, unlike storage device 602, system memory 604 is a volatile read-and-write memory, such as, random access memory. System memory 604 stores some of the instructions and data that the processor needs at runtime. In some implementations, the processes of the subject disclosure are stored in system memory 604, permanent storage device 602, and / or ROM 610. From these various memory units, processing unit(s) 612 retrieves instructions to execute and data to process in order to execute the processes of some implementations.
[0100] Bus 408 also connects to input and output device interfaces 614 and 606. Input device interface 614 enables the user to communicate information and select commands to the electronic system. Input devices used with input device interface 614 include, e.g., alphanumeric keyboards and pointing devices (also called “cursor control devices”). Output device interfaces 606 enables, e.g., the display of images generated by the electronic system 600. Output devices used with output device interface 606 include, e.g., printers and display devices, such as cathode ray tubes (CRT) or liquid crystal displays (LCD). Some implementations include devices such as a touchscreen that functions as both input and output devices.
[0101] Also, as shown in FIG. 6, bus 608 also couples electronic system 600 to a network (not shown) through network interfaces 616. Network interfaces 616 may include, e.g., a wireless access point (e.g., Bluetooth or WiFi) or radio circuitry for connecting to a wirelessaccess point. Network interfaces 616 may also include hardware (e.g., Ethernet hardware or network interface module) for connecting the computer to a part of a network of computers such as a local area network (“LAN”), a wide area network (“WAN”), wireless LAN, or an Intranet, or a network of networks, such as the Internet. Any or all components of electronic system 600 can be specially configured to be used in conjunction with the subject disclosure.
[0102] These functions described above can be implemented in computer software, firmware, or hardware. The techniques can be implemented using one or more computer program products. Programmable processors and computers can be included in or packaged as mobile devices. The processes and logic flows can be performed by one or more programmable processors and by one or more programmable logic circuitry. General and special purpose computing devices and storage devices can be interconnected through communication networks.
[0103] Some implementations include electronic components, such as microprocessors, storage and memory that store computer program instructions in a machine-readable or computer-readable medium (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, read-only compact discs (CD-ROM), recordable compact discs (CD-R), rewritable compact discs (CD-RW), read-only digital versatile discs (e.g., DVD- ROM, dual-layer DVD-ROM), a variety of recordable / rewritable DVDs (e.g., DVD-RAM, DVD-RW, DVD+RW, etc.), flash memory (e.g., SD cards, mini-SD cards, micro-SD cards, etc.), magnetic and / or solid state hard drives, read-only and recordable Blu-Ray® discs, ultra density optical discs, any other optical or magnetic media, and floppy disks. The computer- readable media can store a computer program that is executable by at least one processing unit and includes sets of instructions for performing various operations. Examples of computer programs or computer code include machine code, such as is produced by a compiler, and files including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter.
[0104] While the above discussion primarily refers to microprocessor or multi-core processors that execute software, some implementations are performed by one or more integrated circuits, such as application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs). In some implementations, such integrated circuits execute instructions that are stored on the circuit itself.
[0105] As used in this specification and any claims of this application, the terms “computer”, “server”, “processor”, and “memory” all refer to electronic or other technological devices. These terms exclude people or groups of people. For the purposes of the specification, the terms display or displaying means displaying on an electronic device. As used in this specification and any claims of this application, the terms “computer readable medium” and “computer readable media” are entirely restricted to tangible, physical objects that store information in a form that is readable by a computer. These terms exclude any wireless signals, wired download signals, and any other ephemeral signals.
[0106] To provide for interaction with a user, implementations of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; e.g., feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user; e.g., by sending web pages to a web browser on a user’s client device in response to requests received from the web browser.
[0107] Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), an internetwork (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).
[0108] The computing system can include clients and servers. A client and server are generally remote from each other and may interact through a communication network. The relationship of client and server arises by virtue of computer programs running on therespective computers and having a client-server relationship to each other. In some embodiments, a server transmits data (e.g., an HTML page) to a client device (e.g., for purposes of displaying data to and receiving user input from a user interacting with the client device). Data generated at the client device (e.g., a result of the user interaction) can be received from the client device at the server.
[0109] Those of skill in the art would appreciate that the various illustrative blocks, modules, elements, components, methods, and algorithms described herein may be implemented as electronic hardware, computer software, or combinations of both. To illustrate this interchangeability of hardware and software, various illustrative blocks, modules, elements, components, methods, and algorithms have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. The described functionality may be implemented in varying ways for each particular application. Various components and blocks may be arranged differently (e.g., arranged in a different order, or partitioned in a different way) all without departing from the scope of the subject technology.
[0110] It is understood that the specific order or hierarchy of steps in the processes disclosed is an illustration of example approaches. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the processes may be rearranged. Some of the steps may be performed simultaneously. The accompanying method claims present elements of the various steps in a sample order, and are not meant to be limited to the specific order or hierarchy presented.[OHl] Illustration of Subject Technology as Clauses:
[0112] Various examples of aspects of the disclosure are described as numbered clauses (1, 2, 3, etc.) for convenience. These are provided as examples, and do not limit the subject technology. Identifications of the figures and reference numbers are provided below merely as examples and for illustrative purposes, and the clauses are not limited by those identification
[0113] Clause 1. A system comprising: one or more computing devices configured to perform operations comprising: receiving a request to initiate automated programming of a medical device; obtaining, based on the request and a type of the medical device, a templatespecific to the type of the medical device and comprising a plurality of parameters for configuring of the medical device; determining, after obtaining the template and before the medical device is configured according to the template, that a first parameter of the plurality of parameters in the template is a parameter to be updated; and responsive to determining that the first parameter is a parameter to be updated: generating an updated value to update the first parameter in the template; updating the first parameter with the updated value; and automatically causing an automated programming message to be transmitted to the medical device based on the template, the automated programming message causing the medical device to be configured according to template and the plurality of parameters including the first parameter updated with the updated value.
[0114] Clause 2. The system of Clause 1, wherein the operations further comprise, after determining that the first parameter is a parameter to be updated and before the medical device is configured using the template: determining that a flagged parameter of the plurality of parameters is flagged to be refreshed after the medical device is configured according to the template; setting a refresh timer; and on expiration of the refresh timer, after the medical device is configured according to the template, (1) determining a new parameter value for updating the flagged parameter and (2) updating the a current value of the flagged parameter based on the new parameter value so that the medical device uses the new parameter value instead of the current value of the flagged parameter.
[0115] Clause 3. The system of Clause 1 or Clause 2, wherein the template includes a function call for obtaining values of the first parameter, and wherein updating the first parameter comprises: executing the function call; and receiving, based on the function call, the updated value for the first parameter.
[0116] Clause 4. The system of Clause 3, wherein the function call obtains a new parameter based on a condition, and wherein the operations further comprise, before the medical device is configured: receiving an indication that the function call was initiated; responsive to the indication: determining whether the condition is satisfied; setting the new parameter to a first value when the condition is satisfied and setting the new parameter to a second value different than the first value when the condition is not satisfied; and causing the first parameter to be updated with the new parameter.
[0117] Clause 5. The system of Clause 4, wherein the operations further comprise: receiving the condition and the indication from the medical device over a network; and providing the new parameter value to the medical device to cause the first parameter to be updated with the new parameter.
[0118] Clause 6. The system of Clause 4, wherein the operations further comprise: determining a care area of the medical device; and wherein determining whether the condition is satisfied is based on the care area.
[0119] Clause 7. The system of any one of Clauses 1-6, wherein the request and the plurality of parameters are for configuring the medical device to provide a medication, wherein the operations further comprise: collecting parameter data associated with the medication across a patient population, a clinician population, and a medical device population; identifying the medication based on the request; receiving a characteristic of a patient associated with the medical device, of a clinician associated with the patient, or of the medical device; and determining the updated value based on inputting the characteristic into a machine-learning model trained with the parameter data.
[0120] Clause 8. The system of any one of Clauses 1-7, wherein the operations further comprise: updating a second parameter of the plurality of parameters in the template to include a function call for obtaining clinical information associated with a medication provided by the medical device; receiving, from the medical device when the automated programming message causes the medical device to be configured, a request for the clinical information and a request for a characteristic of a patient, of a clinician associated with the patient, or of the medical device; and provide, to the medical device, the clinical information updated based on the request and the characteristic.
[0121] Clause 9. A medical device, comprising: a display device; and a medical device controller comprising a processor; wherein the medical device controller is configured to: receive, from a server remote from the medical device, an automated programming template specific to a type of the medical device and comprising a plurality of parameters for configuring of the medical device; determine, before the medical device is configured according to the template, that a first parameter of the plurality of parameters in the template is a parameter to be updated; and responsive to determining that the first parameter is a parameter to be updated: determine an updated value for updating the first parameter in thetemplate; update the first parameter with the updated value; and automatically configure the medical device according to template and the plurality of parameters including the first parameter updated with the updated value.
[0122] Clause 10. The medical device of Clause 9, wherein the medical device controller is further configured to, after determining that the first parameter is a parameter to be updated and before the medical device is configured using the template: determine that a flagged parameter of the plurality of parameters is flagged to be refreshed after the medical device is configured according to the template; set a refresh timer; and on expiration of the refresh timer, after the medical device is configured according to the template, (1) determine a new parameter value for updating the flagged parameter and (2) update the a current value of the flagged parameter based on the new parameter value so that the medical device uses the new parameter value instead of the current value of the flagged parameter.
[0123] Clause 11. The medical device of Clause 9 or Clause 10, wherein the first parameter comprises a function call, and wherein the medical device controller is further configured to: determine the updated value comprises executing the function call to retrieve the updated value; and update the first parameter comprises replacing the first parameter with the updated value.
[0124] Clause 12. The medical device of Clause 11, wherein the function call obtains the updated value based on a condition, wherein the medical device controller is further configured to, before the medical device is configured: determine whether the condition is satisfied; and set the updated value to a first parameter value when the condition is satisfied and set the updated value to a second parameter value different than the first parameter value when the condition is not satisfied.
[0125] Clause 13. The medical device of any one of Clauses 9-12, wherein the plurality of parameters are for configuring the medical device to provide a medication, wherein the medical device controller is further configured to: collect parameter data associated with the medication across at least one of a patient population, a clinician population, and a medical device population; identify the medication; receive a characteristic of a patient associated with the medical device, clinician associated with the patient, or the medical device; and determine the updated value based on inputting the characteristic into a machine-learning model trained with the parameter data.
[0126] Clause 14. The medical device of any one of Clauses 9-13, wherein the medical device controller is further configured to: wherein a second parameter of the plurality of parameters in the template comprises a function call for obtaining clinical information associated with a medication provided by the medical device; executing the function call to obtain the clinical information; receiving the clinical information from a remote computing device; and display the clinical information on the display device.
[0127] Clause 15. A method, comprising: receiving a request to initiate automated programming of a medical device; obtaining, based on the request and a type of the medical device, a template specific to the type of the medical device and comprising a plurality of parameters for configuring of the medical device; determining, after obtaining the template and before the medical device is configured according to the template, that a first parameter of the plurality of parameters in the template is a parameter to be updated; and responsive to determining that the first parameter is a parameter to be updated, before the medical device is configured using the template: generating an updated value to update the first parameter in the template; updating the first parameter with the updated value; and automatically causing an automated programming message to be transmitted to the medical device based on the template, the automated programming message causing the medical device to be configured according to template and the plurality of parameters including the first parameter updated with the updated value.
[0128] Clause 16. The method of Clause 15, wherein the method further comprises, after determining that the first parameter is a parameter to be updated and before the medical device is configured using the template: determining that the first parameter is flagged to be refreshed after the medical device is configured according to the template and the first parameter; setting a refresh timer after the medical device is configured according to the template and the first parameter; and on expiration of the refresh timer, (1) determining a new parameter value for updating the flagged parameter and (2) updating the a current value of the flagged parameter based on the new parameter value so that the medical device uses the new parameter value instead of the current value of the flagged parameter.
[0129] Clause 17. The method of Clause 15 or Clause 16, wherein the updated value comprises a function call and updating the first parameter comprises inserting the function call into the template for the first parameter, wherein the function call obtains a new parameter based on a condition, and wherein the method further comprises, before themedical device is configured: receiving an indication that the function call was initiated; responsive to the indication: determining whether the condition is satisfied; setting the new parameter to a first value when the condition is satisfied and setting the new parameter to a second value different than the first value when the condition is not satisfied; and causing the first parameter to be updated with the new parameter.
[0130] Clause 18. The method of Clause 17, wherein the method further comprises: receiving the condition and the indication from the medical device over a network; and providing the new parameter to the medical device to cause the first parameter to be updated with the new parameter.
[0131] Clause 19. The method of any one of Clauses 15-18, wherein the request and the plurality of parameters are for configuring the medical device to provide a medication, wherein the method further comprises: collecting parameter data associated with the medication across a patient population, a clinician population, and a medical device population; identifying the medication based on the request; receiving a characteristic of a patient associated with the medical device, of a clinician associated with the patient, or of the medical device; and determining the updated value based on inputting the characteristic into a machine-learning model trained with the parameter data.
[0132] Clause 20. The method of any one of Clauses 15-19, wherein the method further comprises: updating a second parameter of the plurality of parameters in the template to include a function call for obtaining clinical information associated with a medication provided by the medical device; receiving, from the medical device when the automated programming message causes the medical device to be configured, a request for the clinical information and a request for a characteristic of a patient, of a clinician associated with the patient, or of the medical device; and provide, to the medical device, the clinical information updated based on the request and the characteristic.
[0133] Clause 21. A non-transitory computer readable medium comprising instructions that, when executed by a computing system, cause the computing system to perform a method according to any one of Clauses 15 through 20.
[0134] Further Considerations:
[0135] It is understood that the specific order or hierarchy of steps in the processes disclosed is an illustration of example approaches. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the processes may be rearranged. Some of the steps may be performed simultaneously. The accompanying method claims present elements of the various steps in a sample order, and are not meant to be limited to the specific order or hierarchy presented.
[0136] The previous description is provided to enable any person skilled in the art to practice the various aspects described herein. The previous description provides various examples of the subj ect technology, and the subj ect technology is not limited to these examples. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects. Thus, the claims are not intended to be limited to the aspects shown herein, but is to be accorded the full scope consistent with the language claims, wherein reference to an element in the singular is not intended to mean “one and only one” unless specifically so stated, but rather “one or more.” Unless specifically stated otherwise, the term “some” refers to one or more. Pronouns in the masculine (e.g., his) include the feminine and neuter gender (e.g., her and its) and vice versa. Headings and subheadings, if any, are used for convenience only and do not limit the invention described herein.
[0137] The predicate words “configured to”, “operable to”, and “programmed to” do not imply any particular tangible or intangible modification of a subject, but, rather, are intended to be used interchangeably. For example, a processor configured to monitor and control an operation, or a component may also mean the processor being programmed to monitor and control the operation or the processor being operable to monitor and control the operation. Likewise, a processor configured to execute code can be construed as a processor programmed to execute code or operable to execute code.
[0138] The term automatic, as used herein, may include performance by a computer or machine without user intervention; for example, by instructions responsive to a predicate action by the computer or machine or other initiation mechanism. The word “example” is used herein to mean “serving as an example or illustration.” Any aspect or design described herein as “example” is not necessarily to be construed as preferred or advantageous over other aspects or designs.
[0139] A phrase such as an “aspect” does not imply that such aspect is essential to the subject technology or that such aspect applies to all configurations of the subject technology. A disclosure relating to an aspect may apply to all configurations, or one or more configurations. An aspect may provide one or more examples. A phrase such as an aspect may refer to one or more aspects and vice versa. A phrase such as an “embodiment” does not imply that such embodiment is essential to the subject technology or that such embodiment applies to all configurations of the subject technology. A disclosure relating to an embodiment may apply to all embodiments, or one or more embodiments. An embodiment may provide one or more examples. A phrase such as an “embodiment” may refer to one or more embodiments and vice versa. A phrase such as a “configuration” does not imply that such configuration is essential to the subject technology or that such configuration applies to all configurations of the subject technology. A disclosure relating to a configuration may apply to all configurations, or one or more configurations. A configuration may provide one or more examples. A phrase such as a “configuration” may refer to one or more configurations and vice versa.
[0140] As used herein a “user interface” (also referred to as an interactive user interface, a graphical user interface or a UI) may refer to a network based interface including data fields and / or other control elements for receiving input signals or providing electronic information and / or for providing information to the user in response to any received input signals. Control elements may include dials, buttons, icons, selectable areas, or other perceivable indicia presented via the UI that, when interacted with (e.g., clicked, touched, selected, etc.), initiates an exchange of data for the device presenting the UI. A UI may be implemented in whole or in part using technologies such as hyper-text mark-up language (HTML), FLASH™, JAVA™, .NET™, C, C++, web services, or rich site summary (RSS). In some embodiments, a UI may be included in a stand-alone client (for example, thick client, fat client) configured to communicate (e.g., send or receive data) in accordance with one or more of the aspects described. The communication may be to or from a medical device or server in communication therewith.
[0141] As used herein, the terms “determine” or “determining” encompass a wide variety of actions. For example, “determining” may include calculating, computing, processing, deriving, generating, obtaining, looking up (e.g., looking up in a table, a database or another data structure), ascertaining and the like via a hardware element without user intervention.Also, “determining” may include receiving (e.g., receiving information), accessing (e.g., accessing data in a memory) and the like via a hardware element without user intervention. “Determining” may include resolving, selecting, choosing, establishing, and the like via a hardware element without user intervention.
[0142] As used herein, the terms “provide” or “providing” encompass a wide variety of actions. For example, “providing” may include storing a value in a location of a storage device for subsequent retrieval, transmitting a value directly to the recipient via at least one wired or wireless communication medium, transmitting or storing a reference to a value, and the like. “Providing” may also include encoding, decoding, encrypting, decrypting, validating, verifying, and the like via a hardware element.
[0143] As used herein, the term “message” encompasses a wide variety of formats for communicating (e.g., transmitting or receiving) information. A message may include a machine readable aggregation of information such as an XML document, fixed field message, comma separated message, JSON, a custom protocol, or the like. A message may, in some implementations, include a signal utilized to transmit one or more representations of the information. While recited in the singular, it will be understood that a message may be composed, transmitted, stored, received, etc. in multiple parts.
[0144] As used herein, the term “selectively” or “selective” may encompass a wide variety of actions. For example, a “selective” process may include determining one option from multiple options. A “selective” process may include one or more of: dynamically determined inputs, preconfigured inputs, or user-initiated inputs for making the determination. In some implementations, an n-input switch may be included to provide selective functionality where n is the number of inputs used to make the selection.
[0145] As user herein, the terms “correspond” or “corresponding” when used to describe a relationship between two or more elements encompasses a structural, functional, quantitative and / or qualitative correlation or relationship between two or more objects, data sets, information and / or the like, preferably where the correspondence or relationship may be used to translate one or more of the two or more objects, data sets, information and / or the like so to appear to be the same or equal. Correspondence may be assessed using one or more of a threshold, a value range, fuzzy logic, pattern matching, a machine learning assessment model, or combinations thereof.
[0146] In any embodiment, data generated or detected can be forwarded to a “remote” device or location, where “remote,” means a location or device other than the location or device at which the program is executed. For example, a remote location could be another location (e.g., office, lab, etc.) in the same city, another location in a different city, another location in a different state, another location in a different country, etc. As such, when one item is indicated as being “remote” from another, what is meant is that the two items can be in the same room but separated, or at least in different rooms or different buildings, and can be at least one mile, ten miles, or at least one hundred miles apart. “Communicating” information references transmitting the data representing that information as electrical signals over a suitable communication channel (e.g., a private or public network). “Forwarding” an item refers to any means of getting that item from one location to the next, whether by physically transporting that item or otherwise (where that is possible) and includes, at least in the case of data, physically transporting a medium carrying the data or communicating the data. Examples of communicating media include radio or infra-red transmission channels as well as a network connection to another computer or networked device, and the internet or including email transmissions and information recorded on websites and the like.
Claims
What is claimed is:
1. A system comprising: one or more computing devices configured to perform operations comprising: receiving a request to initiate automated programming of a medical device; obtaining, based on the request and a type of the medical device, a template specific to the type of the medical device and comprising a plurality of parameters for configuring of the medical device; determining, after obtaining the template and before the medical device is configured according to the template, that a first parameter of the plurality of parameters in the template is a parameter to be updated; and responsive to determining that the first parameter is a parameter to be updated: generating an updated value to update the first parameter in the template; updating the first parameter with the updated value; and automatically causing an automated programming message to be transmitted to the medical device based on the template, the automated programming message causing the medical device to be configured according to template and the plurality of parameters including the first parameter updated with the updated value.
2. The system of Claim 1, wherein the operations further comprise, after determining that the first parameter is a parameter to be updated and before the medical device is configured using the template: determining that a flagged parameter of the plurality of parameters is flagged to be refreshed after the medical device is configured according to the template; setting a refresh timer; and on expiration of the refresh timer, after the medical device is configured according to the template, (1) determining a new parameter value for updating the flagged parameter and (2) updating the a current value of the flagged parameter based on the new parameter value so that the medical device uses the new parameter value instead of the current value of the flagged parameter.
3. The system of Claim 1 or Claim 2, wherein the template includes a function call for obtaining values of the first parameter, and wherein updating the first parameter comprises: executing the function call; and receiving, based on the function call, the updated value for the first parameter.
4. The system of Claim 3, wherein the function call obtains a new parameter value based on a condition, and wherein the operations further comprise, before the medical device is configured: receiving an indication that the function call was initiated; responsive to the indication: determining whether the condition is satisfied; setting the new parameter value to a first value when the condition is satisfied and setting the new parameter value to a second value different than the first value when the condition is not satisfied; and causing the first parameter to be updated with the new parameter value.
5. The system of Claim 4, wherein the operations further comprise: receiving the condition and the indication from the medical device over a network; and providing the new parameter value to the medical device to cause the first parameter to be updated with the new parameter value.
6. The system of Claim 4, wherein the operations further comprise: determining a care area of the medical device; and wherein determining whether the condition is satisfied is based on the care area.
7. The system of any one of Claims 1-6, wherein the request and the plurality of parameters are for configuring the medical device to provide a medication, wherein the operations further comprise: collecting parameter data associated with the medication across a patient population, a clinician population, and a medical device population; identifying the medication based on the request; receiving a characteristic of a patient associated with the medical device, of a clinician associated with the patient, or of the medical device; anddetermining the updated value based on inputting the characteristic into a machinelearning model trained with the parameter data.
8. The system of any one of Claims 1-7, wherein the operations further comprise: updating a second parameter of the plurality of parameters in the template to include a function call for obtaining clinical information associated with a medication provided by the medical device; receiving, from the medical device when the automated programming message causes the medical device to be configured, a request for the clinical information and a request for a characteristic of a patient, of a clinician associated with the patient, or of the medical device; and provide, to the medical device, the clinical information updated based on the request and the characteristic.
9. A medical device, comprising: a display device; and a medical device controller comprising a processor; wherein the medical device controller is configured to: receive, from a server remote from the medical device, an automated programming template specific to a type of the medical device and comprising a plurality of parameters for configuring of the medical device; determine, before the medical device is configured according to the template, that a first parameter of the plurality of parameters in the template is a parameter to be updated; and responsive to determining that the first parameter is a parameter to be updated: determine an updated value for updating the first parameter in the template; update the first parameter with the updated value; and automatically configure the medical device according to template and the plurality of parameters including the first parameter updated with the updated value.
10. The medical device of Claim 9, wherein the medical device controller is further configured to, after determining that the first parameter is a parameter to be updated and before the medical device is configured using the template: determine that a flagged parameter of the plurality of parameters is flagged to be refreshed after the medical device is configured according to the template; set a refresh timer; and on expiration of the refresh timer, after the medical device is configured according to the template:(1) determine a new parameter value for updating the flagged parameter and (2) update the a current value of the flagged parameter based on the new parameter value so that the medical device uses the new parameter value instead of the current value of the flagged parameter.
11. The medical device of Claim 9 or Claim 10, wherein the first parameter comprises a function call, and wherein the medical device controller is further configured to: determine the updated value comprises executing the function call to retrieve the updated value; and update the first parameter comprises replacing the first parameter with the updated value.
12. The medical device of Claim 11, wherein the function call obtains the updated value based on a condition, wherein the medical device controller is further configured to, before the medical device is configured: determine whether the condition is satisfied; and set the updated value to a first parameter value when the condition is satisfied and set the updated value to a second parameter value different than the first parameter value when the condition is not satisfied.
13. The medical device of any one of Claims 9-12, wherein the plurality of parameters are for configuring the medical device to provide a medication, wherein the medical device controller is further configured to: collect parameter data associated with the medication across at least one of a patient population, a clinician population, and a medical device population; identify the medication;receive a characteristic of a patient associated with the medical device, clinician associated with the patient, or the medical device; and determine the updated value based on inputting the characteristic into a machinelearning model trained with the parameter data.
14. The medical device of any one of Claims 9-13, wherein the medical device controller is further configured to: wherein a second parameter of the plurality of parameters in the template comprises a function call for obtaining clinical information associated with a medication provided by the medical device; executing the function call to obtain the clinical information; receiving the clinical information from a remote computing device; and display the clinical information on the display device.
15. A method, comprising: receiving a request to initiate automated programming of a medical device; obtaining, based on the request and a type of the medical device, a template specific to the type of the medical device and comprising a plurality of parameters for configuring of the medical device; determining, after obtaining the template and before the medical device is configured according to the template, that a first parameter of the plurality of parameters in the template is a parameter to be updated; and responsive to determining that the first parameter is a parameter to be updated, before the medical device is configured using the template: generating an updated value to update the first parameter in the template; updating the first parameter with the updated value; and automatically causing an automated programming message to be transmitted to the medical device based on the template, the automated programming message causing the medical device to be configured according to template and the plurality of parameters including the first parameter updated with the updated value.
16. The method of Claim 15, wherein the method further comprises, after determining that the first parameter is a parameter to be updated and before the medical device is configured using the template:determining that the first parameter is flagged to be refreshed after the medical device is configured according to the template and the first parameter; setting a refresh timer after the medical device is configured according to the template and the first parameter; and on expiration of the refresh timer, (1) determining a new parameter value for updating the flagged parameter and (2) updating the a current value of the flagged parameter based on the new parameter value so that the medical device uses the new parameter value instead of the current value of the flagged parameter.
17. The method of Claim 15 or Claim 16, wherein the updated value comprises a function call and updating the first parameter comprises inserting the function call into the template for the first parameter, wherein the function call obtains a new parameter based on a condition, and wherein the method further comprises, before the medical device is configured: receiving an indication that the function call was initiated; responsive to the indication: determining whether the condition is satisfied; setting the new parameter to a first value when the condition is satisfied and setting the new parameter to a second value different than the first value when the condition is not satisfied; and causing the first parameter to be updated with the new parameter.
18. The method of Claim 17, wherein the method further comprises: receiving the condition and the indication from the medical device over a network; and providing the new parameter to the medical device to cause the first parameter to be updated with the new parameter.
19. The method of any one of Claims 15-18, wherein the request and the plurality of parameters are for configuring the medical device to provide a medication, wherein the method further comprises: collecting parameter data associated with the medication across a patient population, a clinician population, and a medical device population; identifying the medication based on the request;receiving a characteristic of a patient associated with the medical device, of a clinician associated with the patient, or of the medical device; and determining the updated value based on inputting the characteristic into a machinelearning model trained with the parameter data.
20. The method of any one of Claims 15-19, wherein the method further comprises: updating a second parameter of the plurality of parameters in the template to include a function call for obtaining clinical information associated with a medication provided by the medical device; receiving, from the medical device when the automated programming message causes the medical device to be configured, a request for the clinical information and a request for a characteristic of a patient, of a clinician associated with the patient, or of the medical device; and provide, to the medical device, the clinical information updated based on the request and the characteristic.
Citation Information
Patent Citations
Medical equipment management device, method and system
CN108022639A
Medication administration and management system and method
US20070233520A1