Body area network (BAN) memory storage sharing
IMDs in a BAN share memory resources by direct communication and compression, addressing storage limitations to maintain data integrity and therapeutic efficacy.
Patent Information
- Application Number
- PCT/IB2025/053414
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-04-22
- Filing Date
- 2025-04-01
- Publication Date
- 2025-10-30
AI Technical Summary
Implantable medical devices (IMDs) face memory storage limitations, leading to data overwriting, which can be undesirable for therapeutic and diagnostic purposes, especially when connectivity is unavailable.
IMDs in a body area network (BAN) share memory storage resources by directly communicating to offload data to devices with available space, utilizing compression capabilities when necessary, and maintaining data integrity through metadata.
This approach prevents data loss by optimizing storage utilization across IMDs, ensuring critical data is preserved for therapy and diagnosis, even in disconnected scenarios.
Smart Images

Figure IB2025053414_30102025_PF_FP_ABST
Abstract
Description
BODY AREA NETWORK (BAN) MEMORY STORAGE SHARING
[0001] This application claims the benefit of U.S. Provisional Patent Application Serial No. 63 / 637,122, filed April 22, 2024, the entire content of which is incorporated herein by reference.TECHNICAL FIELD
[0002] The disclosure relates generally to medical device systems and, more particularly, to storage of data in medical device systems.BACKGROUND
[0003] Implantable medical devices (IMDs) including implantable cardiac devices (e.g., cardiac monitors, pacemakers, defibrillators, etc.), implantable neuromodulation devices (e.g., for spinal cord stimulation, deep brain stimulation, sacral nerve stimulation, etc.), and other types of IMDs store various types of data. For instance, a cardiac monitoring device stores electrocardiogram (ECG) data, while a neuromodulation device for deep brain stimulation stores alpha or beta-wave data. There may be various uses for the stored data such as diagnosing patient condition, scheduling therapy, or updating therapy parameters.SUMMARY
[0004] In general, this disclosure is directed to techniques for sharing memory storage resources in a body area network (BAN). In a BAN, a patient is implanted with multiple implantable medical devices (IMDs). Each HMD may include various amounts of limited local memory (e.g., on-device memory), which limits the amount of data that each IMD can store. However, there may be more therapeutic benefit in storing data from some classes of IMDs than other, or memory storage resources of one IMD may be underutilized while memory storage resources of another IMD are full. In accordance with one or more examples described in this disclosure, a first IMD may store data of the first IMD on local memory of a second IMD. In this manner, in the event the first IMD memory is full, rather than overwriting locally stored data, the first IMD may off-load additional data for local storage in the second IMD. For instance, the memory of the second IMD may beunder-utilized or there may be more therapeutic benefit in storing the data of the first IMD that storing data of the second IMD.
[0005] Furthermore, in some examples, the first IMD may not have sufficient memory storage resources to store the data, but may have sufficient memory storage resources to store the data after compression (e.g., store compressed data). However, it may be possible that the first IMD does not have sufficient compression resources to perform compression. In such examples, the first IMD may query about whether another IMD has compression capability. An IMD with compression capability may respond to the query, receive the data to be compressed, perform the compression, and transmit the compressed data back to the first IMD for local storage.
[0006] In one or more examples, the disclosure describes a system comprising: a first implantable medical device (IMD) comprising: one or more memories; and processing circuitry configured to: determine that available storage space in the one or more memories is limited; and output, to at least a second IMD, data of the first IMD based on the determination that available storage space in the one or more memories is limited.
[0007] In one or more example, the disclosure describes a system comprising: a first implantable medical device (IMD) comprising: one or more memories; and processing circuitry configured to: receive, from a second IMD, a query of whether storage space is available in the one or more memories; determine that storage space is available in the one or more memories; output a response indicating that storage space is available in the one or more memories based on the determination; receive, from the second IMD, data of the second IMD; and store, in the one or more memories, the data of the second IMD.
[0008] In one or more examples, the disclosure describes a method comprising: determining, with processing circuitry of a first implantable medical device (IMD), that available storage space in one or more memories of the first IMD is limited; and outputting, with the processing circuitry, to at least a second IMD, data of the first IMD based on the determination that available storage space in the one or more memories is limited.
[0009] In one or more examples, the disclosure describes a method comprising: receiving, with processing circuitry of a first implantable medical device (IMD) and from a second IMD, a query of whether storage space is available in one or more memories of the first IMD; determining that storage space is available in the one or more memories;outputting a response indicating that storage space is available in the one or more memories based on the determination; receiving, from the second IMD, data of the second IMD; and storing, in the one or more memories, the data of the second IMD.
[0010] This summary is intended to provide an overview of the subject matter described in this disclosure. It is not intended to provide an exclusive or exhaustive explanation of the apparatus and methods described in detail within the accompanying drawings and description below. The details of one or more aspects of the disclosure are set forth in the accompanying drawings and the description below.BRIEF DESCRIPTION OF DRAWINGS
[0011] FIG. l is a conceptual drawing illustrating an example medical device system in conjunction with a patient.
[0012] FIG. 2 is a conceptual drawing illustrating another example medical device system in conjunction with a patient.
[0013] FIG. 3 is a conceptual diagram illustrating an example of memory storage resource sharing.
[0014] FIG. 4 is a functional block diagram illustrating an example configuration of an implantable medical device.
[0015] FIG. 5 is a functional block diagram illustrating another example configuration of an implantable medical device.
[0016] FIG. 6 is a flowchart illustrating an example of method of operation in accordance with one or more examples described in this disclosure.
[0017] FIG. 7 is a flowchart illustrating an example of method of operation in accordance with one or more examples described in this disclosure.DETAILED DESCRIPTION
[0018] In general, this disclosure describes example techniques related to sharing of memory storage resources across multiple implanted medical devices. Many patients are implanted with a plurality of implantable medical devices (IMDs). For instance, a patient may be implanted with an insertable cardiac monitor (ICM), a pacemaker, an implantable spinal cord stimulator (SCS), etc. Each of the IMDs may be configured to sense or generate data, and store the data on local memory (e.g., on-device memory). The IMDsthen periodically upload the stored data to a repository (e.g., through an intermediate device), and delete from the IMDs to free space for additional data.
[0019] IMDs often have limited storage space for recording data and need to overwrite data once the storage is filled. When a patient is away, and device connectivity (e.g., with the intermediate device) is unavailable, the IMDs may not be able to offload the stored data. However, the HMDs may still sense or generate data that is to be stored. In such cases, the HMDs overwrite previously stored data. In some cases, overwriting of previously stored data may be undesirable, such as cases where therapeutic efficacy gains can be achieved with having as much data as possible.
[0020] This disclosure describes examples of HMDs making their respective storage space available to store data from another IMD. For instance, in cases where multiple devices are present and have memory storage capability, the “spare” memory storage on another device could be used to store data that would otherwise be overwritten, preventing data loss.
[0021] In one or more examples, the HMDs may be able to communicate with each other directly, such as through Bluetooth or Tissue Conduction Communication (TCC), thereby forming a body area network (BAN). The IMDs may communicate with each other to determine storage availability of other IMDs, and decentralize data storage (e.g., data for a first device is stored on a second device, and vice-versa). For instance, two or more IMDs would be able to directly communicate to negotiate spare available space and to execute and verify the transfer.
[0022] Further, when the data was uploaded to its normal repository, there would be some data structure to indicate that the data was recorded from another device. For example, a first IMD may output a sting to wake up other IMDs, and the first IMD may output a request for storage availability (e.g., via BlueTooth or TCC). The IMDs that receive the request may respond back with storage availability. The first IMD may then select from the responding devices on which device to store data that would otherwise overwrite currently stored data in the first IMD. The first IMD may then store the data on one of the other IMDs along with information (e.g., meta-data) that the data originated from the first IMD.
[0023] There may be device and data prioritization that the first IMD may use to determine which IMD should store the data from the first IMD. For instance, certainIMDs may be more important for patient care than other IMDs. Assume that a first IMD is more important for patient care than other IMDs. In this example, the first IMD may never respond to a request for storing data on the first IMD from another IMD because ensuring that there is storage space available on the first IMD may be more important than ensuring there is storage space on other HMDs. Also, in this example, even if an IMD has limited remaining free space, that IMD may respond to a storage request from the first IMD to ensure that data from the first IMD is stored.
[0024] As another example, a first IMD may be configured to offload its data more often than other IMDs. In this example, because the first IMD offloads its data more often, there is less chance that data for the first IMD is overwritten. In some examples, other IMDs may prioritize storing their respective data in the first IMD.
[0025] In this way, given that two devices can directly communicate with each other, when a device determines that local data is to be overwritten due to memory storage limitations, the IMD would query other IMDs in the body area network. Devices with available space would respond and negotiate a transfer and verification. The data structure would need to contain relevant meta-data to enable that data to be merged into the correct location when the data is subsequently uploaded to its final destination.
[0026] Furthermore, in one or more examples, to conserve memory storage resources, rather than storing the data of the first IMD, the first IMD may store a compressed version of the data (e.g., compressed data). For instance, there may be instances where the first IMD cannot store the actual data, but may be able to store compressed version of the data. In some cases, the compression process may even be lossy, such as for data that tends to have limited therapeutic benefits.
[0027] However, it may be possible that the first IMD has limited compression capabilities. Accordingly, in one or more examples, the first IMD may output a query requesting whether another IMD is capable of compressing data. The first IMD may then transmit data to the other IMD for compression, and receive back from the other IMD, the compressed data for local storage.
[0028] FIG. l is a conceptual drawing illustrating an example medical device system 100 in conjunction with a patient 102. Medical device system 100 is an example of a medical device system configured to implement the techniques described herein for sharing of memory storage resources. In the illustrated example, medical device system100 includes an implantable medical device (IMD) 104 coupled to a ventricular lead 110 and an atrial lead 112. IMD 104 is an implantable cardioverter-defibrillator (ICD) capable of delivering pacing, cardioversion and defibrillation therapy to the heart 108 of a patient 102. IMD 104 is also referred to as ICD 104.
[0029] Ventricular lead 110 and atrial lead 112 are electrically coupled to ICD 104 and extend into the patient's heart 108. Ventricular lead 110 includes electrodes 114 and 116 shown positioned on the lead in the patient's right ventricle (RV) for sensing ventricular electrogram (EGM) signals and pacing in the RV. Atrial lead 112 includes electrodes 118 and 120 positioned on the lead in the patient's right atrium (RA) for sensing atrial EGM signals and pacing in the RA.
[0030] Ventricular lead 110 additionally carries a high voltage coil electrode 122, and atrial lead 112 carries a high voltage coil electrode 124, used to deliver cardioversion and defibrillation shocks. The term “anti-tachyarrhythmia shock” may be used herein to refer to both cardioversion shocks and defibrillation shocks. In other examples, ventricular lead 110 may carry both of high voltage coil electrodes 122 and 124, or may carry a high voltage coil electrode in addition to those illustrated in the example of FIG. 1.
[0031] ICD 104 may use both ventricular lead 110 and atrial lead 112 to acquire cardiac electrogram (EGM) signals from patient 102 and to deliver therapy in response to the acquired data. Medical device system 100 is shown as having a dual chamber ICD configuration, but other examples may include one or more additional leads, such as a coronary sinus lead extending into the right atrium, through the coronary sinus and into a cardiac vein to position electrodes along the left ventricle (LV) for sensing LV EGM signals and delivering pacing pulses to the LV. In other examples, a medical device system may be a single chamber system, or otherwise not include atrial lead 112.
[0032] Processing circuitry, sensing circuitry, and other circuitry configured for performing the techniques described herein are housed within a sealed housing 106. Housing 106 (or a portion thereof) may be conductive so as to serve as an electrode for pacing or sensing or as an active electrode during defibrillation. As such, housing 106 is also referred to herein as “housing electrode” 106.
[0033] ICD 104 may transmit EGM signal data and cardiac rhythm episode data acquired by ICD 104, as well as data regarding delivery of therapy by ICD 104, to an external device 128. External device 128 may be a computing device, e.g., used in ahome, ambulatory, clinic, or hospital setting, to communicate with ICD 104 via wireless telemetry. External device 128 may be coupled to a remote patient monitoring system, such as Carelink®, available from Medtronic pic, of Dublin, Ireland. External device 128 may be, as examples, a programmer, external monitor, or consumer device, e.g., smart phone.
[0034] External device 128 may be used to program commands or operating parameters into ICD 104 for controlling its functioning, e.g., when configured as a programmer for ICD 104. External device 128 may be used to interrogate ICD 104 to retrieve data, including device operational data as well as physiological data accumulated in IMD memory. The interrogation may be automatic, e.g., according to a schedule, or in response to a remote or local user command. Programmers, external monitors, and consumer devices are examples of external device 128 that may be used to interrogate ICD 104. Examples of communication techniques used by ICD 104 and external device 128 include radiofrequency (RF) telemetry, which may be an RF link established via Bluetooth, WiFi, or medical implant communication service (MICS).
[0035] In some examples, as illustrated in FIG. 1, medical device system 100 may also include a pressure-sensing IMD 126. In the illustrated example, pressure-sensing IMD 126 is implanted in the pulmonary artery of patient 102. In some examples, one or more pressure-sensing IMDs 126 may additionally or alternatively be implanted within a chamber of heart 108, or generally at other locations in the circulatory system.
[0036] In one example, pressure-sensing IMD 126 is configured to sense blood pressure of patient 102. For example, pressure-sensing IMD 126 may be arranged in the pulmonary artery and be configured to sense the pressure of blood flowing from the right ventricle outflow tract (RVOT) from the right ventricle through the pulmonary valve to the pulmonary artery. Pressure-sensing IMD 126 may therefore directly measure the pulmonary artery diastolic pressure (PAD) of patient 102. The PAD value is a pressure value that can be employed in patient monitoring. For example, PAD may be used as a basis for evaluating congestive heart failure in a patient.
[0037] In other examples, however, pressure-sensing IMD 126 may be employed to measure blood pressure values other than PAD. For example, pressure-sensing IMD 126 may be arranged in the right ventricle of heart 108 to sense RV systolic or diastolic pressure, or may sense systolic or diastolic pressures at other locations of thecardiovascular system, such as within the pulmonary artery. Pressure-sensing IMD 126 may be positioned in the main trunk of pulmonary artery. In other examples, a sensor, such as pressure-sensing IMD 126 may be either positioned in the right or left pulmonary artery beyond the bifurcation of the pulmonary artery.
[0038] Moreover, the placement of pressure-sensing IMD 126 is not restricted necessarily to the pulmonary side of the circulation. Pressure-sensing IMD 126 could potentially be placed in the systemic side of the circulation. For example, under certain conditions and with appropriate safety measures, pressure-sensing IMD 126 could even be placed in the left atrium, left ventricle, or aorta. Additionally, pressure-sensing IMD 126 is not restricted to placement within the cardiovascular system. For example, the pressuresensing IMD 126 might be placed in the renal circulation. Placement of pressure-sensing IMD 126 in the renal circulation may be beneficial, for example, to monitor the degree of renal insufficiency in the patient based on the monitoring of pressure or some other indication of renal circulation by pressure-sensing IMD 126.
[0039] In some examples, pressure-sensing IMD 126 includes a pressure sensor configured to respond to the absolute pressure inside the pulmonary artery of patient 102. Pressure-sensing IMD 126 may be, in such examples, any of a number of different types of pressure sensors. One form of pressure sensor that may be useful for measuring blood pressure is a capacitive pressure sensor. Another example pressure sensor is an inductive sensor. In some examples, pressure-sensing IMD 126 may also comprise a piezoelectric or piezoresistive pressure transducer. In some examples, pressure-sensing IMD 126 may comprise a flow sensor.
[0040] In one example, pressure-sensing IMD 126 comprises a leadless pressure sensor including capacitive pressure sensing elements configured to measure blood pressure within the pulmonary artery. Pressure-sensing IMD 126 may be in wireless communication with ICD 104 and / or external device 128, e.g., in order to transmit blood pressure measurements to one or both of the devices. Pressure-sensing IMD 126 may employ, e.g., radio frequency (RF) or other telemetry techniques for communicating with ICD 104 and other devices, including, e.g., external device 128. In another example, pressure-sensing IMD 126 may include a tissue conductance communication (TCC) system by which pressure-sensing IMD 126 employs tissue of patient 102 as an electricalcommunication medium over which to send and receive information to and from ICD 104 and / or external device 128.
[0041] ICD 104 and pressure-sensor IMD 126 may each store data on one or more respective memories. For example, ICD 104 may store ECG data and pressure-sensor IMD 126 may store pressure data. In various cases, ICD 104 and pressure-sensor IMD 126 may offload respective stored data to external device 128 for further transmission to another computing system (e.g., where external device 128 is an intermediate device, and the other computing system is a cloud computing system). ICD 104 and pressure-sensor IMD 126 may then remove that data from respective memories.
[0042] For instance, the cloud computing system may include one or more devices, including processing circuitry and storage devices, which may be distributed across multiple locations and / or multiple servers. The cloud computing system may be implemented by the Medtronic CareLink™ Network or other patient monitoring system, in some examples.
[0043] External device 128 may transmit data, including data of sensed signals and / or data of other physiological signals retrieved from ICD 104 and / or pressure-sensor IMD 126, to the cloud computing system. In some examples, the cloud computing system may also retrieve data regarding patient 102 from one or more sources of electronic health records (EHR). EHR may include data regarding historical transmission data, previous health events and treatments, disease states, comorbidities, demographics, height, weight, and body mass index (BMI), as examples, of patients including patient 102. The cloud computing system may use data from EHR to configure algorithms implemented by ICD 104 and / or pressure-sensor IMD 126 with clinician authorization.
[0044] However, due to limited memory storage capacity or if external device 128 is out of range for communication, there may be instances where ICD 104 or pressure-sensor IMD 126 may overwrite currently stored data with new data (e.g., newly sensed ECG or pressure data). For example, ICD 104 may sense and capture ECG data after the local memory of ICD 104 is full, in which case ICD 104 may overwrite the earliest sensed and captured ECG data with the newly sensed and captured ECG data. Pressure-sensor IMD 126 may operate in a similar manner, but with pressure data.
[0045] As an example, ICD 104 and pressure-sensor IMD 126 may each include shortterm memory (e.g., cache or registers) and long-term memory (e.g., flash memory). ICD104 and pressure-sensor IMD 126 may sense signals and store data indicative of the sensed signals in short-term memory, and then eventually transfer to long-term memory. For instance, processing circuitry of ICD 104 or pressure-sensor IMD 126 may evaluate whether data stored in short-term memory qualifies for storage in long-term memory, and based on the determination store the data in long-term memory. Use of short-term memory and long-term memory is merely one example, and the techniques should not be considered limited. For instance, in some examples, there may be no distinction between short-term and long-term memory.
[0046] In examples where there is both short-term memory and long-term memory, data stored in short-term memory may be continuously overwritten (e.g., once data from short-term memory is stored to long-term memory, that data is erased for storage of new data). Data stored in long-term memory may be erased when that data is written out to external device 128 or some other device, or when long-term memory is full, and data is overwritten with new data stored in short-term memory.
[0047] In some instances, overwriting of data may be undesirable. For example, a clinician may desire to more ECG data than the storage capability of ICD 104 for diagnostic purposes. Patient 102 may experience multiple cardiac events relevant for therapy and diagnostic purposes, but due to memory storage limitations, it may not be possible to store ECG data associated with all of the cardiac events. Similar scenarios where more pressure data is desirable, but exceed the storage capabilities of pressuresensor IMD 126 are possible.
[0048] In accordance with one or more examples described in this disclosure, ICD 104 and pressure-sensor IMD 126 may share memory storage resources to limit the amount of data that is overwritten, including in cases where the data is relevant for increasing therapy effectiveness or assisting with diagnosis. For example, assume that memory storage capabilities of ICD 104 are nearing their limit or are at their limit. That is, newly sensed ECG data may be stored in short-term memory, but there may not be sufficient space in long-term memory for storing the newly sensed ECG data.
[0049] ICD 104 may output a query (e.g., using TCC or some other communication scheme) to determine if there are other devices implanted in patient 102 that have available storage space that ICD 104 can utilize for storage of the newly sensed ECG data. In this example, assume that processing circuitry of pressure-sensor IMD 126 determinesthat there is sufficient memory storage space available within the memory of pressuresensor IMD 126. For example, the processing circuitry of pressure-sensor IMD 126 may estimate how many more instances there will be for pressure-sensor IMD 126 to store data before an upload to external device 128, and based on the estimation determine whether storage space is available. There may be various other techniques that pressure-sensor IMD 126 may utilize to determine if memory storage space is available, such as based on a hierarchical scheme described in more detail below.
[0050] If memory storage space is available, pressure-sensor IMD 126 may output a response to ICD 104 indicating that pressure-sensor IMD 126 is a candidate IMD for storage of the data from ICD 104. In response, ICD 104 may output data from ICD 104 the data (e.g., data generated by ICD 104 or sensed by ICD 104) to pressure-sensor IMD 126 for storage on memory of pressure sensor IMD 126. Pressure-sensor IMD 126 may then output the data from ICD 104 to external device 128 during the scheduled upload time.
[0051] In one or more examples, in addition to storing the data of ICD 104, pressuresensor IMD 126 may store additional information that indicates that the source of this particular data is from ICD 104. For instance, ICD 104 may include metadata to the data that ICD 104 transmits indicating that the data is of ICD 104. As another example, upon reception of the data, pressure-sensor IMD 126 may add metadata to the data from ICD 104 indicating that the data is of ICD 104. Metadata is one example data structure that can be used to indicate the source of the data, and other examples of data structures are possible.
[0052] When external device 128 receives the data from pressure-sensor IMD 126, external device 128 may also receive the metadata indicating which data originated from (i.e., is of) ICD 104 and which data originated from (i.e., is of) pressure-sensor IMD 126. External device 128 may then reconcile the received data so that when external device 128 further transmits the data received from ICD 104 and pressure-sensor IMD 126 to a cloud computing system, the cloud computing system can properly delineate the data. That is, from the perspective of the cloud computing system, the data is received as the data would have been received even if there was no sharing of memory storage resources.
[0053] In examples where external device 128 is not present and the data is output to the cloud computing system through a network connection (e.g., router), the cloudcomputing system may reconcile the received data based on the metadata to determine whether the data is of ICD 104 or pressure-sensor IMD 126. In examples where each of ICD 104 and pressure-sensor IMD 126 transmit to different external devices, which then each transmit data from receptive ones of ICD 104 or pressure-sensor IMD 126 to cloud computing system, the cloud computing system may reconcile the received data based on the metadata to determine whether the data is of ICD 104 or pressure-sensor IMD 126.
[0054] Although the above example techniques are described with ICD 104 transmitting data for storage on pressure-sensor IMD 126, the techniques are not so limited. For instance, in some examples, pressure-sensor IMD 126 may transmit data of pressure-sensor IMD 126 to ICD 104 based on ICD 104 having memory storage resources to dedicate to storing data of pressure-sensor IMD 126. ICD 104 may also store the metadata used to indicate whether source of the data.
[0055] Moreover, the above example techniques are described with respect to ICD 104 and pressure-sensor IMD 126, but the techniques are not so limited. The example techniques may be performed by various examples of IMDs such as cardiac monitoring devices, neuromodulation devices, cardiac rhythm management devices, or analyte monitoring devices. That is, one IMD that is transmitting data for storage on another IMD could be any one of a cardiac monitoring device, a neuromodulation device, a cardiac rhythm management device, or analyte monitoring device, and the other IMD could be any one of a cardiac monitoring device, a neuromodulation device, a cardiac rhythm management device, or analyte monitoring device. Other types of IMDs may also be utilized in accordance with the techniques described in this disclosure.
[0056] Furthermore, in some examples, memory storage may be further enhanced using compression techniques. As an example, the memory storage capability of pressuresensor IMD 126 may be nearing its limit, but there may still be some available memory storage. Rather than storing the data of pressure-sensor IMD 126 as generated or sensed by pressure-sensor IMD 126, pressure-sensor IMD 126 may store a compressed version of the data (i.e., compressed data). However, pressure-sensor IMD 126 may not include compression capabilities, but ICD 104 may include such compression capabilities.
[0057] For example, ICD 104 may include processing circuitry capable of more complex processing than the processing circuitry of pressure-sensor IMD 126, and therefore, may have compression capabilities unavailable on pressure-sensor IMD 126.As another example, if ICD 104 can be recharged wirelessly, power consumption of ICD 104 may be of less concern compared to if pressure-sensor IMD 126 cannot be recharged wirelessly. Therefore, even if compression requires the processing circuitry of ICD 104 to consume additional power, such consumption may not impact usage or longevity of ICD 104 since ICD 104 can be recharged with relative ease.
[0058] In one or more examples, pressure-sensor IMD 126 may output a request for data compression, and ICD 104 may respond indicating that ICD 104 is available for data compression. Pressure-sensor IMD 126 may output data to ICD 104 for compression. ICD 104 may compress the data, and transmit the data back to pressure-sensor IMD 126 for local storage (e.g., storage in memory of pressure-sensor IMD 126). ICD 104 may utilize lossless compression techniques to ensure that data quality is maintained. In some examples, ICD 104 may utilize lossy compression techniques, which tend to provide additional compression than lossless techniques. Lossy compression techniques may be suitable for examples where high data precision is not necessary. For instance, if the exact pressure measurement, as measured by pressure-sensor IMD 126, is not necessary for therapy or diagnosis, and an approximation of the pressure measurement may suffice, ICD 104 may utilize lossy compression techniques to ensure the compressed data can be stored on pressure-sensor IMD 126.
[0059] FIG. 2 is a conceptual drawing illustrating another example medical device system 200 that includes an extracardiovascular ICD system 210 and implantable cardiac monitor (ICM) 206 implanted within a patient. In the example of FIG. 2, extracardiovascular ICD system 210 includes ICD 204 coupled to a defibrillation lead 212.
[0060] ICD 204 and ICM 206 are examples of IMDs configured to perform example techniques of sharing memory storage resources in accordance with one or more examples described in this disclosure. As illustrated, ICD 204 and ICM 206 communicate with external device 224. External device 224 is an example of external device 128 of FIG. 1. Similar to description of FIG. 1, external device 224 may further communicate with a cloud computing system, such as the Medtronic CareLink™ Network or other patient monitoring system, in some examples.
[0061] For example, external device 224 may transmit data, including data of sensed signals and / or data of other physiological signals retrieved from ICD 204 and / or ICM 206, to the cloud computing system. In some examples, the cloud computing system may alsoretrieve data regarding patient 202 from one or more sources of EHR. The cloud computing system may use data from EHR to configure algorithms implemented by ICD 204 and / or ICM 206 with clinician authorization.
[0062] Defibrillation lead 212 extends subcutaneously above the ribcage from ICD 204. In the illustrated example, defibrillation lead 212 extends toward a center of the torso of patient 202, bends or turns near the center of the torso, and extends subcutaneously superior above the ribcage and / or sternum 220. Defibrillation lead 212 may be offset laterally to the left or the right of sternum 220 or located over sternum 220. Defibrillation lead 212 may extend substantially parallel to sternum 220 or be angled lateral from the sternum 220 at either the proximal or distal end.
[0063] Defibrillation lead 212 includes an insulative lead body having a proximal end that includes a connector 208 configured to be connected to ICD 204 and a distal portion that includes one or more electrodes. Defibrillation lead 212 also includes one or more conductors that form an electrically conductive path within the lead body and interconnect the electrical connector and respective ones of the electrodes. In the illustrated example, defibrillation lead 212 includes a single defibrillation electrode 216 toward the distal portion of defibrillation lead 212, e.g., toward the portion of defibrillation lead 212 extending along sternum 220. Defibrillation lead 212 is placed along sternum 220 such that a therapy vector between defibrillation electrode 216 and a housing electrode formed by or on ICD 204 (or other second electrode of the therapy vector) is substantially across a ventricle of heart 222.
[0064] Defibrillation lead 212 may also include one or more sensing electrodes, such as sensing electrodes 214 and 218, located along the distal portion of defibrillation lead 212. In the example illustrated in FIG. 2, sensing electrodes 214 and 218 are separated from one another by defibrillation electrode 216. In other examples, however, sensing electrodes 214 and 218 may be both distal of defibrillation electrode 216 or both proximal of defibrillation electrode 216. In other examples, lead 212 may include more or fewer electrodes at various locations proximal and / or distal to defibrillation electrode 216, and lead 212 may include multiple defibrillation electrodes.
[0065] As illustrated, system 200 also includes ICM 206, which is another example of an IMD. ICM 206 may be implanted outside of a thoracic cavity of patient 202 (e.g., subcutaneously in the pectoral location illustrated in FIG. 2). ICM 206 may be positionednear the sternum or just below the level of the heart 222 of patient 202, e.g., at least partially within the cardiac silhouette. ICM 206 includes a plurality of electrodes (not shown in FIG. 1) and is configured to sense an ECG via the plurality of electrodes. In some examples, ICM 206 takes the form of the Reveal LINQ™ or LINQ II™ ICM.
[0066] In one or more examples, ICM 206 may be a leadless, subcutaneously- implantable monitoring device. ICM 206 includes housing having a base and an insulative cover, and electrodes used for sensing may be formed or placed on an outer surface of the cover of ICM 206. Various circuitries and components of ICM 206 may be formed or placed on an inner surface of the cover 242, or within a base. In some examples, a battery or other power source of ICM 206 may be included within the base. An antenna may be formed or placed on the outer surface of the cover but may be formed or placed on the inner surface in some examples. In some examples, an insulative cover may be positioned over an open base such that the base and the cover enclose the circuitries and other components and protect them from fluids such as body fluids. The housing may be hermetically sealed and configured for subcutaneous implantation.
[0067] Once inserted subcutaneously within the patient, an outer surface of a cover of ICM 206 faces outward, toward the skin of the patient. In addition, the ends of ICM 206 may be rounded to reduce discomfort and irritation to surrounding tissue once inserted under the skin of the patient. In addition, edges of ICM 206 may be rounded.
[0068] Similar to ICD 104 and pressure-sensor HMD 126, ICD 204 and ICM 206 are examples of HMDs configured to perform the example techniques of sharing memory storage resources, as well as provide compression. For example, if the memory of ICM 206 is full or nearly full, ICM 206 may output a query to determine whether ICD 204 has available memory storage space, and in response, ICM 206 may output the data of ICM 206 to ICD 204. Similarly, if ICM 206 does not include compression capabilities, but ICD 204 does provide compression, ICM 206 may output the data of ICM 206 to ICD 204 for compression, receive back the compressed data, and store the compressed data on ICM 206.
[0069] FIG. 3 is a conceptual diagram illustrating an example of memory storage resource sharing. FIG. 3 illustrates IMD 300, IMD 302, and HMD 304 that are each implanted within a patient. Examples of IMDs 300, 302, and 304 include, but are not limited to, a cardiac monitoring device, a neuromodulation device, a cardiac rhythmmanagement device, or analyte monitoring device. For instance, any of IMD 300, 302, or 304 may be ICD 104 of FIG. 1, pressure-sensor IMD 126 of FIG. 1, ICD 204 of FIG. 2, or ICM 206 of FIG. 2.
[0070] IMDs 300, 302, and 304 may be configured to the perform the example techniques described in this disclosure. For instance, processing circuitry of IMD 300 (e.g., a first IMD) may determine that available storage space in the one or more memories of IMD 300 is limited, and output data of IMD 300 to another IMD for storage.
[0071] However, in some examples, the processing circuitry of IMD 300 may initially determine whether data of IMD 300 needs to be stored in another IMD if determined that available storage space in the one or more memories of IMD 300 is limited. For example, if the processing circuitry of IMD 300 determines that a quality of a recently sensed signal is relatively low, the processing circuitry of IMD 300 may determine that storage of data representing the sensed signal is not necessary. For example, the processing circuitry of IMD 300 may be configured to apply filtering (e.g., low-pass, band-pass, or high-pass filtering) to sensed signals, and if the output of the filtering is a signal having relatively low power or amplitude, the processing circuitry of IMD 300 may determine that the sensed signal is of low quality, and storage of such data in another IMD is not necessary. The processing circuitry of IMD 300 may analyze the data of the sensed signal for certain parameters (e.g., QT interval in an ECG signal). If the processing circuitry of IMD 300 cannot determine the parameters (e.g., due to low quality of the signal), the processing circuitry of IMD 300 may determine that the data is of low quality, and storage of such data in another IMD is not needed.
[0072] As another example, if the processing circuitry of IMD 300 determines that the data of a sensed signal does not provide useful information for therapy or diagnosis, IMD 300 may not output the data for storage in another IMD. As an example, if IMD 300 is configured to sense brain wave signals, and data of the brain wave signal indicates no change in patient status, IMD 300 may determine that storage of such data in another IMD is not needed. If IMD 300 is configured to sense posture, and the patient being in a certain posture is not helpful for therapy or diagnosis, then if the processing circuitry of IMD 300 determines that the patient is in that particular posture, IMD 300 may not output the data for storage in another IMD.
[0073] As described above, the processing circuity of IMD 300 may determine whether available storage space in the one or more memories of IMD 300 is limited. There may be various ways in which the processing circuitry of IMD 300 may determine that available storage space in the one or more memories is limited. As one example, the processing circuitry may poll how much storage space is currently available in the one or more memories. If the amount of storage space that is current available is less than a threshold, the processing circuitry may determine that available storage space in the one or more memories of IMD 300 is limited.
[0074] As another example, the processing circuitry may further determine when IMD 300 is scheduled to upload data from the one or more memories to an external device (e.g., such as external device 128, external device 224, or to a cloud computing system). The processing circuitry may estimate how much additional data is to be stored in the one or more memories of IMD 300 before the scheduled upload (e.g., based on how much data is historically stored within a time window or some other criteria). If the estimated amount of additional data to be stored in the one or more memories before the scheduled upload is greater than the available storage space, the processing circuitry may determine that available storage space in the one or more memories is limited. There may be other ways in which to determine whether available storage space in the one or more memories of IMD 300 is limited.
[0075] If the processing circuity of IMD 300 determines that available storage space in the one or more memories is limited, IMD 300 may output, to at least a second IMD (e.g., at least one of IMDs 302 or 304) data of IMD 300 (e.g., the first IMD). The processing circuitry of IMD 300 may first determine to which one of IMDs 302 or 304 to output the data of IMD 300 for storage.
[0076] For example, as illustrated in FIG. 3, IMD 300 may output a query to one or more IMDs 302 and 304 of whether storage space is available. In one or more examples, the query may include information of how much data is to be stored. The information of how much data is to be stored may be information of the actual amount of data to be stored (e.g., data is stored in short-term memory of IMD 300 and should be written in another IMD). In some examples, the information of how much data is to be stored may be an estimate of how much data is to be stored (e.g., based on an estimate of how muchmore data IMD 300 is going to generate or sense before upload of data to an external device).
[0077] IMD 300 may receive one or more responses from a subset of the one or more IMDs 302 and 304 indicating that storage space is available. As illustrated in FIG. 3, IMD 300 may receive a response from IMD 302 indicating that storage space is available on IMD 302, but may receive a response from IMD 304 indicating that storage space is available on IMD 304. However, in some examples, IMD 300 may receive a response from both IMD 302 and IMD 304 indicating that storage space is available on IMD 302 and IMD 304. There may be various ways in which IMD 302 and IMD 304 may determine whether storage space is available, as described in more detail below.
[0078] The processing circuitry of IMD 300 may select the second IMD (e.g., the IMD to which the data of IMD 300 is to be stored) from the subset of the one or more IMDs 302 and 304. For instance, in the example of FIG. 3, IMD 302 indicated that storage space is available. Therefore, the processing circuitry of IMD 300 may select IMD 302 for storage of data of IMD 300. However, if both IMD 302 and IMD 304 indicated that storage space is available, the processing circuitry of IMD 300 may select which on IMD 302 or IMD 304, or possibly select both IMD 302 and 304 for storing data of IMD 300.
[0079] There may be various factors that the processing circuitry of IMD 300 uses to select which IMD or IMDs to output data of IMD 300 for storage. For example, the processing circuitry of IMD 300 may utilize a hierarchical process based on various factors such as the type of IMDs available for storage of the data, or the type of data that is to be transmitted.
[0080] As an example, each of the IMDs 300, 302, and 304 may be assigned a rank value based on the IMD type. For instance, IMDs of an IMD type that are more valuable for therapy or diagnosis may be assigned a higher rank value, and IMDs of an IMD type that are less valuable for therapy or diagnosis may be assigned a lower rank value. For example, IMDs for cardiac therapy (e.g., cardiac type IMDs) and IMDs for neuromodulation therapy (e.g., neuro type IMDs) may be assigned a higher rank value, and IMDs for temperature sensing (e.g., temperature type IMDs) may be assigned a lower rank value. The rank values for the various IMD types or the rank value of each of IMDs 300, 302, and 304 may be stored in memory of each of IMDs 300, 302, and 304.
[0081] There may be various ways in which to classify the IMD type. For example, the IMD type may be based on a type of sensor within the IMDs. The IMD type may be based on a type of storage (e.g., amount or type of memory) of the IMDs. The IMD type may be based on a type of communication link. The IMD type may be based on a type of processing (e.g., processing capabilities). Any combination of the above or other examples are also possible for classifying the IMD type.
[0082] In some examples, the data of IMD 300 that is to be stored on another IMD may potentially overwrite data that is stored on the other IMD or require the other IMD to eventually overwrite data of the other IMD. The processing circuitry of IMD 300 may select an IMD from the subsets of IMDs that responded indicating that storage space is available based on the rank value of the IMD types. For instance, the processing circuitry of IMD 300 may be biased towards selecting an IMD with lower rank value than another IMD. This may be because there is less to minimal impact if data on an IMD having a relatively low rank value is overwritten.
[0083] As another example, the information of the IMD type may also include information of a type of memory that is available on the IMDs. For instance, IMD 302 and IMD 304 may include different types of memory. In some examples, the processing circuitry of IMD 300 may utilize information of the type of memory to determine which IMD should store data of IMD 300. For instance, IMD types that store data that is more relevant to therapy or diagnosis may include more robust (e.g., less likely to fail or lose data) memory as compared to IMD types that store data that is less relevant to therapy or diagnosis. In such cases, the processing circuitry of IMD 300 may be biased towards selecting an IMD with more robust memory as compared to another IMD.
[0084] In some examples, the processing circuitry of IMD 300 may select which IMD should store data of IMD 300 based on the type of data that is to be stored. The processing circuitry of IMD 300 may assign a priority value to the data, and use the priority value to select the IMD where the data should be stored. For example, if IMD 300 is accelerometer, and the data indicates that that the patient fell, such information may be given a higher priority value since patient falling may be useful information for therapy or diagnosis. As another example, if IMD 300 is an ICM or ICD, and the ECG data of a sensed signal indicates an arrythmia or the signal was captured in response to patient input(i.e., the ECG data is for a patient activate signal), such data may be more useful for therapy or diagnosis, as compared to other data, and may be given a higher priority value.
[0085] As further examples, if IMD 300 is a defibrillator, IMD 300 may assign a relatively high priority value to patient information and device information, which are also examples of data of IMD 300, corresponding to when IMD 300 delivered a shock. That is, the data may be shock related metrics such as posture, movement, activity, etc. As another example, if IMD 300 senses different types of signals (e.g., temperature and ECG), the processing circuitry may assign a higher priority value to data representing ECG signals and data of the temperature. As another example, if IMD 300 senses different cardiac signals using different vectors (e.g., measurements between different pairs of electrodes), the processing circuitry may assign a higher priority value to vectors that indicate more relevant cardiac data for therapy or diagnosis as compared to others.
[0086] The above describes some example factors that the processing circuitry of IMD 300 may evaluate to select which one of IMDs 302 or 304, or whether both IMDs 302 and 304 are to store data of IMD 300. For instance, IMD 300 may utilize IMD type, memory type, and signal type information to select the IMD or IMDs that store data of IMD 300. A rank value for the IMD type and / or memory type, and a priority value for the signal type are examples of factors that the processing circuitry of IMD 300 may evaluate to select an IMD or IMDs where the data of IMD 300 is stored.
[0087] In one or more examples, the processing circuitry of IMD 300 may be configured to weigh the different factors to select the IMD or IMDs where the data is to be stored. For example, if the priority value indicates relatively high priority for the data, but IMD 302 has a relatively high rank value, the processing circuitry of IMD 300 may still select IMD 302 as the IMD that stores the data of IMD 300 even though IMD 302 has a relatively high rank value, and lower rank valued HMDs are preferred, because the priority value indicates high priority for the data that is to be stored. There may be other ways in which the processing circuitry of IMD 300 may weigh the different factors to select the IMD or IMDs where the data is to be stored.
[0088] The above described some example techniques to determine whether data of IMD 300 is to be stored off of IMD 300, and techniques to select which IMD or IMDs are to store the data. However, the example techniques are not so limited. In some examples, the processing circuitry of IMD 300 may determine that, although memory space islimited and the data cannot be stored in the one or more memories of IMD 300, a compressed version of the data can be stored. The processing circuitry may determine whether the priority of the data is such that the compressed version of the data should be compressed using lossless or lossy techniques. For instance, for low priority data, lossy compression may be suitable, but for high priority data, lossless compression may be suitable.
[0089] As another example, there may be data that is already stored in memory of IMD 300 that can be compressed so that memory space is available for data of more recently sensed signals. For instance, if there is already stored data with relatively low priority, that same data may be compressed (e.g., lossy or lossless), and restored back on the memory of IMD 300. In this case, since the compressed data would utilize less memory space than the original data, there may be additional memory space available for data of more recently sensed signals.
[0090] In some cases, the processing circuitry of IMD 300 may not have the processing capabilities to perform compression. In some examples, IMD 300 may initially output a request to IMDs 302 and 304 to determine whether IMDs 302 and 304 have compression capabilities. If one of IMDs 302 or 304 has compression capabilities, IMD 300 may output the data (e.g., for recently sensed signals or already stored data) to the IMD that has compression capabilities. IMD 300 may then receive the compressed data for storage within the memories of IMD 300. In some examples, if after such compression and local storage of data in memories of IMD 300, the processing circuitry of IMD 300 determines that there is limited memory storage space in the one or more memories of IMD 300, the processing circuitry may output a query to determine whether there are IMDs with available storage space.
[0091] After the processing circuitry 300 selects which IMD or IMDs are to store data of IMD 300, the processing circuitry of IMD 300 may establish a communication link between IMD 300 (e.g., the first IMD) and at least the second IMD (e.g., IMD 302). For example, as illustrated in FIG. 3, IMD 302 may be the IMD that stores data of IMD 302. However, in some examples, if both IMD 302 and IMD 304 have available memory storage space, the processing circuitry of IMD 300 may select both IMD 302 and IMD 304 for storage. For instance, the data to be stored may include multiple sets of data, and IMD 300 may store some of the data in IMD 302 and other data in IMD 304, or may store someof the data in memory of IMD 300, some of the data in IMD 302, and other data in IMD 304. IMD 300 may output the data after establishing the communication link.
[0092] Since HMDs 300, 302, and 304 are within the same patient, IMD 300 may be configured to output the query directly to the one or more HMDs 302 and 304 through body tissue of a patient. That is, in some examples, it may be possible that IMD 300 does not output to an external device, and request the external device to query IMDs 302 and 304 regarding available memory storage space. Rather, IMD 300 may output the query directly to (e.g., without use of intermediary device) IMDs 302 and 304. In this example, IMD 300 (e.g., the first IMD) is configured to establish the communication link directly with IMD 302 (e.g., the second IMD) through the body tissue of the patient. For example, IMD 300 may be configured to output the data using a tissue conduction communication (TCC) scheme. However, other techniques such as Bluetooth™ are possible.
[0093] In one or more examples, in addition to the data that is to be stored in IMD 302 and / or IMD 304, IMD 300 may output metadata along with the data to indicate that this particular data stored in IMD 302 and / or IMD 304 originated from IMD 300. However, in some examples, IMD 300 may not need to output the metadata. Instead, IMD 302 and / or IMD 304 may add metadata to the data received from IMD 300 indicating that that particular data originated from IMD 300.
[0094] The above examples described example ways in which IMD 300 may determine whether to transmit data to another IMD, and how to select to which IMD data is to be transmitted and stored. The IMDs (e.g., IMDs 302 and 304) that receive the query for storage space availability may perform similar operations, including the hierarchical process described above. In one or more of the following examples, the first IMD (e.g., IMD 302 or IMD 304) may be the IMD that receives the request for storage, and the second IMD (e.g., IMD 300) may be the IMD that transmits the request for storage.
[0095] For example, IMD 302 and IMD 304 (e.g., examples of a first IMD) may receive, from IMD 300 (e.g., a second IMD), a query of whether storage space is available in the one or more memories of IMD 302 or IMD 304, respectively, as illustrated in FIG. 3. IMD 302 and IMD 304 may determine whether storage is available. In the example of FIG. 3, processing circuity of IMD 302 may determine that storage space is available in the one or more memories of IMD 302. Techniques for how the processing circuitry ofIMD 302 may determine that storage space is available is described in more detail, such as using the hierarchical process.
[0096] As illustrated in FIG. 3, IMD 302 may output a response indicating that storage space is available in the one or more memories based on the determination. If IMD 302 is selected as the IMD that is to store the data of IMD 300, IMD 302 may receive, from IMD 300, data of IMD 300. The processing circuitry of IMD 302 may then store, in the one or more memories of IMD 302, the data of IMD 300.
[0097] Accordingly, in one or more examples, the one or more memories of IMD 302 may store data of IMD 300 and data of IMD 302. That is, if data of IMD 302 is first data, and data of IMD 300 is second data, the one or more memories of IMD 302 may store the first data and the second data.
[0098] In some examples, the one or more memories of IMD 302 may also store metadata indicating which data is of IMD 300 and which data is of IMD 302. For instance, in the transmit from IMD 300, IMD 300 may include the metadata. In some examples, upon reception of data from IMD 300, the processing circuitry of IMD 302 may add the metadata.
[0099] As described above, the processing circuitry of IMD 302 may determine that storage space is available in the one or more memories of IMD 302. There may be various ways in which the processing circuitry may determine storage space is available in the one or more memories of IMD 302.
[0100] As one example, the processing circuitry of IMD 302 may determine that current data stored in the one or more memories of IMD 302 would not be overwritten. For instance, the processing circuitry of IMD 302 may determine how much memory storage space is currently available and how much memory storage space would be utilized by storing data of IMD 300. If the memory storage spaced utilized by storing data of IMD 300 is less than memory storage space that is current available, the processing circuitry of IMD 302 may determine that storage space is available.
[0101] As another example, the processing circuitry of IMD 302 may determine when the offload of data stored in the memory of IMD 302 is scheduled for offloading to an external device, and use that information to determine whether storage space is available. As another example, the processing circuitry of IMD 302 may determine how much data is estimated to be sensed or generated by IMD 302 for storage before the schedule offload ofdata to an external device, and utilize that estimation to determine whether storage space is available.
[0102] In one or more examples, the processing circuitry of IMD 302 may utilize the hierarchical process based on rank value indicative of IMD type and priority value indicative of data type. For instance, the memory of IMD 302 may store rank value of IMDs 300, 302, and 304. In one or more examples, if the rank value of IMD 300 is greater than the rank value of IMD 302, even if memory storage space of IMD 302 is limited, the processing circuitry of IMD 302 may indicate that storage space is available because the data of IMD 300 takes precedence over the data of IMD 302. In this case, the processing circuitry of IMD 302 may overwrite data stored in the memory of IMD 302, or may compress, lossy or lossless compression, the data stored in the memory of IMD 302 to create space for the data of IMD 300. In this manner, the processing circuitry of IMD 302 may be configured to determine an IMD type of IMD 300, and to output the response, the processing circuitry of IMD 302 may be configured to output the response indicating that storage space is available in the one or more memories of IMD 302 based on the determination that storage space is available in the one or more memories and based on the IMD type of IMD 300.
[0103] As another example, the processing circuitry of IMD 302 may determine whether IMD 300 is of a similar IMD type as IMD 302. For instance, if IMD 300 is an ICM and IMD 302 is an ICD, IMD 300 and IMD 302 may be both of a cardiac type of IMD. In such an example, the processing circuitry of IMD 302 may determine that storage space is available on the one or more memories of IMD 302 even if storage space is limited. However, if IMD 300 is an ICD and IMD 302 is a neuromodulation device, the processing circuitry of IMD 302 may determine that the IMD type of IMD 300 is different than the IMD type of IMD 302, and on that basis may determine that memory storage space is not available, even though memory storage space is available on IMD 302.
[0104] In one or more examples, the processing circuitry of IMD 302 may utilize the priority value of the type of data that is to be stored. For example, if the type of data that is to be stored has a relatively high priority value, the processing circuitry of IMD 302 may determine that storage space is available even if storage space is not available. However, if the type of data that is to be stored has a relatively low priority value, theprocessing circuitry of IMD 302 may determine that storage space is not available even if storage space is available.
[0105] FIG. 4 is a functional block diagram illustrating an example configuration of an implantable medical device. FIG. 4 illustrates IMD 400, which is an example of an IMD that is to output data for storage in another IMD. For instance, IMD 400 may be an example of IMD 300 of FIG. 3.
[0106] As illustrated, IMD 400 includes processing circuitry 402, sensing circuitry 404, and communication circuitry 406. Processing circuitry 402, sensing circuitry 404, and communication circuitry 406 are illustrated separately simply for purposes of illustration. In some examples, the various circuitry may be combined together as common processing circuitry. Even in examples where the various circuitry are separate, the combination of the circuitry may be considered as processing circuitry. Accordingly, functionality described for the various circuitry is provided for ease of illustration, and should not be considered limiting.
[0107] Processing circuitry 402 may be implemented as one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), discrete logic, software, hardware, firmware or any combinations thereof. Processing circuitry 402 may include arithmetic logic units (ALUs), elementary function units (EFUs), digital circuits, analog circuits, and / or programmable cores, formed from programmable circuits. In examples where the operations of processing circuitry 402 are performed using software executed by the programmable circuits, long-term memory 410 may store the instructions (e.g., object code) of the software that processing circuitry 402 receives and executes, or another memory (not shown) may store such instructions.
[0108] As illustrated, IMD 400 also includes short-term memory 408 and long-term memory 410. Short-term memory 408 and long-term memory 410 are illustrated for purposes of example only. In some examples, there may not be different memories, but one memory. One example of short-term memory is cache or registers of processing circuitry 402, and one example of long-term memory may be flash memory or other examples of memory configured to store data for longer periods of time. There may be additional types of memory as well. For instance, IMD 400 may include memory that is not accessible except for the storage of specific types of data.
[0109] The various circuitry and memories may be configured to communicate with each other over bus 412. In examples where short-term memory 408 is dedicated cache or registers of processing circuitry 402, short-term memory 408 may be within processing circuitry 402, and may not communicate over bus 412.
[0110] During operation, sensing circuitry 404, which may be coupled to one or more electrodes, may sense signals within the patient and generate data indicative of the signals for storage in short-term memory 408. Processing circuitry 402 may receive the data from short-term memory 408, evaluate the data (e.g., noisy data or not, valuable for longer term storage, etc.), and store the data as sensed or patient data 414 in long-term memory 410. For instance, sensed or patient data 414 may be data that is sensed by IMD 400 or otherwise received or generated by IMD 400, such as therapy parameters, information of the status of IMD 400 (e.g., battery level, error codes, or other such information), and generally any data of the patient or IMD 400. That is, sensed or patient data 414 may be sensor data captured by IMD 400, or patient information generated by the processing circuitry 402.[oni] There may be various examples of sensor data such as physiological sensor data, biomechanical sensor data, and environmental sensor data. For instance, physiological sensor data may be sensor data captured from signals generated by the patient (e.g., neural or cardiac signals). Biomechanical sensor data may be sensor data captured due to mechanical process (e.g., accelerometer signals). Environmental sensor data may be sensor data indicative of environment (e.g., temperature).
[0112] The data in short-term memory 408 may then be overwritten with new sensed data. Processing circuitry 402 may perform similar operations for storing data in longterm memory 410 as sensed or patient data 414. When scheduled, processing circuitry 402 may access sensed or patient data 414 from long-term memory 410, and cause communication circuitry 406 to output sensed or patient data 414 to an external device (e.g., cloud computing system, a programmer, or some other device). Communication circuitry 406 may utilize Bluetooth™ or any other communication protocol to output to the external device. The memory space in long-term memory 410 used by sensed or patient data 414 may then be available for overwriting.
[0113] In some examples, the memory space allocated to store sensed or patient data 414 may become limited, and access to an external device may not be available or whendata is scheduled to be offloaded may be too far out in time. In such cases, processing circuitry 402 may overwrite sensed or patient data 414. However, in accordance with one or more examples described in this disclosure, processing circuitry 402 may attempt to store data of IMD 400 in another IMD.
[0114] For example, processing circuitry 402 may determine that available storage space in the one or more memories (e.g., storage space in long-term memory 410) is limited. Processing circuitry 402, via communication circuitry 406, may output, to at least a second IMD, data of IMD 400 based on the determination that available storage space in the one or more memories. For instance, instead of routing data from short-term memory 408 to long-term memory 410, processing circuitry 402 may output such data to another IMD. As another example, processing circuitry may access some or all of sensed or patient data 414, and output such data of IMD 400 to another IMD.
[0115] In one or more examples, processing circuitry 402 may determine which IMD or IMDs should store the data of IMD 400. For example, processing circuitry 402 may output, via communication circuitry 406, a query to one or more IMDs of whether storage space is available. Processing circuitry 402, via communication circuitry 406, may receive one or more responses from a subset (e.g., one, some, or all) of the one or more IMDs indicating that storage space is available. Processing circuitry 402 may select the second IMD (e.g., the IMD that is store at least of the data of IMD 400) from the subset of the one or more IMDs.
[0116] Processing circuitry 402, via communication circuitry 406, may establish a communication link between IMD 400 and at least the second IMD. To output the data, the processing circuitry 402 may be configured to output the information after establishing the communication link.
[0117] In one or more examples, communication circuitry 406 may output the query directly to the one or more IMDs through body tissue of a patient. That is, the query of whether storage space is available need not necessarily go through a device external to the patient. Also, IMD 400 may be configured to establish the communication link directly with the second IMD through the body tissue of the patient. That is, the communication link between IMD 400 and the second IMD can be through the patient, and not through a device external to the patient. For instance, communication circuitry 406 may utilize atissue conduction communication (TCC) scheme where body tissue is the communication medium to output the data.
[0118] As described above, processing circuitry 402 may select which IMD or IMDs are to store data of IMD 400. In some examples, processing circuitry 402 may utilize priority value for data type 416 to select which IMD or IMDs are to store data of IMD 400. In some examples, processing circuitry 402 may utilize rank value for IMD type 418 to select which IMD or IMDs are to store data of IMD 400. In some examples, processing circuitry 402 may utilize both priority value for data type 416 and rank value for IMD type 418 to select which IMD or IMDs are to store data of IMD 400. Priority value for data type 416 and rank value for IMD type 418 may be predetermined by the clinician and stored in long-term memory 410.
[0119] Priority value for data type 416 may indicate the priority level of different data types of sensed or patient data 414. For instance, certain cardiac signals, brain signals, etc. may be assigned higher priority, and other signals may be assigned lower priority. For data having higher priority as indicated by the priority value for data type 416, processing circuitry 402 may select IMD or HMDs with robust memory storage capabilities or may ensure that such data is offloaded and stored without compression. In some examples, if the priority value for data type 416 indicates that the value of the data type of a particular data is relatively low, even if long-term memory 410 has limited storage capacity, processing circuitry 402 may determine that storage of such data in another device is not needed, and may allow such data to be overwritten. In this manner, processing circuitry 402 may determine the data type of the data, and select the second IMD based on the data type of the data.
[0120] Rank value for IMD type 418 may indicate the rank value of different IMD types. For instance, certain IMD types may be given a lower rank value indicating that data from such IMD types is of less value, and other IMD types may be given a higher rank value indicating that data from such IMD types is of higher value. In one or more examples, processing circuitry 402 may be biased towards selecting HMDs having lower rank value for storing data of IMD 400 because even if data of these IMDs having the lower rank value is overwritten, there may be low impact on therapy or diagnosis. Accordingly, processing circuitry 402 may be configured to determine an IMD type of the second IMD, and select the second IMD based on the IMD type of the second IMD.
[0121] In some examples, processing circuitry 402 may determine whether other IMDs have compression capabilities, and in response, request the other IMDs to perform compression of data of IMD 400. Processing circuitry 402 may then store the compressed data in long-term memory 410. Also, based on priority value for data type 416, processing circuitry 402 may determine which data of sensed or patient data 414 has a relatively low priority value. Processing circuitry 402 may request that the data having the relatively low priority value be compressed using lossy compression for additional compression, without impacting therapy or diagnosis.
[0122] FIG. 5 is a functional block diagram illustrating another example configuration of an implantable medical device. FIG. 5 illustrates IMD 500, which is an example of an IMD that is to store data for from another IMD. For instance, IMD 500 may be an example of IMD 302 of FIG. 3.
[0123] As illustrated, IMD 500 includes processing circuitry 502, sensing circuitry 504, and communication circuitry 506. In examples where the operations of processing circuitry 502 are performed using software executed by the programmable circuits, memory 510 may store the instructions (e.g., object code) of the software that processing circuitry 502 receives and executes, or another memory (not shown) may store such instructions.
[0124] Processing circuitry 502, sensing circuitry 504, and communication circuitry 506 may be similar to processing circuitry 402, sensing circuitry 404, and communication circuitry 406 of FIG. 4. However, there may be differences between processing circuitry 402 and 502, sensing circuitry 404 and 504, and communication circuitry 406 and 506, such as based on type of signals that are sensed, type of processing that is to be performed, number of devices with which IMD 400 and IMD 500 are to communicate, etc.
[0125] Like FIG. 4, in FIG. 5, processing circuitry 502, sensing circuitry 504, and communication circuitry 506 are illustrated separately simply for purposes of illustration. In some examples, the various circuitry may be combined together as common processing circuitry. Even in examples where the various circuitry are separate, the combination of the circuitry may be considered as processing circuitry. Accordingly, functionality described for the various circuitry is provided for ease of illustration, and should not be considered limiting.
[0126] Memory 510 of IMD 500 is similar to long-term memory 410 of IMD 400.Although IMD 500 is not illustrated with a short-term memory, IMD 500 may also include short-term memory similar to short-term memory 408. The various circuitry and memories may be configured to communicate with each other over bus 512. Bus 512 may be similar to bus 412 of IMD 400.
[0127] In one or more examples, processing circuitry 502 may receive, from a second IMD (e.g., IMD 400), a query of whether storage space is available in the one or more memories (e.g., in memory 510). In the example of FIG. 5, processing circuitry 502 may determine that storage space is available in the one or more memories. For example, processing circuitry 502 may determine that current information stored in the memory 510 would not be overwritten. As another example, processing circuitry 502 may estimate how much more data is to be written in memory 510 and when data is scheduled to be offloaded from memory 510 to another device to determine whether storage space is available in memory 510. However, there may be other ways for processing circuitry 502 to determine that storage space is available in memory 510.
[0128] As one example, processing circuitry 502 may utilize priority value for data type 516 to determine whether storage space is available in memory 510. In some examples, processing circuitry 502 may utilize rank value for IMD type 518 to determine whether storage space is available in memory 510. In some examples, processing circuitry 502 may utilize both priority value for data type 516 and rank value for IMD type 518 to determine whether storage space is available in memory 510. Priority value for data type 516 and rank value for IMD type 518 may be predetermined by the clinician and stored in memory 510.
[0129] Priority value for data type 516 may indicate the priority level of different data types, similar to priority value for data type 516. For data having higher priority as indicated by the priority value for data type 516, processing circuitry 502 may determine that memory storage is available in memory 510 even if memory storage is not available. In some examples, if the priority value for data type 516 indicates that the value of the data type of a particular data is relatively low, even if memory 510 has storage capacity, processing circuitry 502 may determine that memory storage is not available to ensure that data of IMD 500 has sufficient memory for storage in memory 510. In this manner,processing circuitry 502 may determine the data type of the data, and determine whether storage space is available on memory 510 based on the data type of the data.
[0130] Rank value for IMD type 518 may indicate the rank value of different IMD types. For instance, certain IMD types may be given a lower rank value indicating that data from such IMD types is of less value, and other IMD types may be given a higher rank value indicating that data from such IMD types is of higher value. In one or more examples, processing circuitry 502 may be biased towards indicating that memory storage space is available on memory 510 even if memory storage space is not available on memory 510 if the second IMD that is requesting storage has a higher rank value. Processing circuitry 502 may be biased towards indicating that memory storage space is not available on memory 510 even if memory storage space is available on memory 510 if the second IMD that is requesting storage has a lower rank value.
[0131] As another example, processing circuitry 502 may determine whether the data to be stored on memory 510 is from an IMD of a similar IMD type as IMD 500. If the data is from an IMD of similar IMD type as IMD 500, processing circuitry 502 may be biased towards storing such data. For instance, processing circuitry 502 may determine whether IMD 400 is of a similar IMD type as IMD 500. For instance, if IMD 400 is an ICM and IMD 500 is an ICD, IMD 400 and IMD 500 may be both of a cardiac type of IMD. In such an example, the processing circuitry 502 may determine that storage space is available on memory 510 even if storage space is limited. However, if IMD 400 is an ICD and IMD 500 is a neuromodulation device, the processing circuitry 502 may determine that the IMD type of IMD 400 is different than the IMD type of IMD 500, and on that basis may determine that memory storage space is not available, even though memory storage space is available on IMD 500. Accordingly, processing circuitry 502 may be configured to determine an IMD type of the second IMD, and determine that storage space is available in the one or more memories 510 based on the IMD type.
[0132] Processing circuitry 502, via communication circuitry 506, may output a response indicating that storage space is available in the one or more memories 506 based on the determination that storage space is available. Processing circuitry 502 may receive, from the second IMD, data of the second IMD, and store, in the one or more memories 510, the data of the second IMD.
[0133] In one or more examples, to receive the query, IMD 500 may receive the query through body tissue of a patient (e.g., without going through an external device). To output the response, IMD 500 may be configured to output the response directly to the second IMD through the body tissue of the patient (e.g., without going through an external device). To receive the data, the IMD 500 may be configured to receive the data directly from the second IMD through the body tissue of the patient (e.g., without going through an external device). For example, to receive the data, IMD 500 may be configured to receive the data using a tissue conduction communication (TCC) scheme.
[0134] As illustrated in FIG. 5, memory 510 may store first data 514 and second data 515. First data 514 may be data of IMD 500, and second data 515 may be date of the IMD that transmitted data for storage on memory 510 (e.g., IMD 400). In one or more examples, processing circuitry 502 may associate (e.g., using metadata) first data 514 to IMD 500 and second data 515 to IMD 400. This way, when a cloud computing system receives first data 514 and second data 515, the cloud computing system can differentiate between data of IMD 500 and data of IMD 400.
[0135] As also illustrated in FIG. 5, IMD 500 includes compression circuitry 508, which may be configured to perform lossy or lossless compression. In one or more examples, IMD 500 may receive a request from IMD 400 to compress data of IMD 400. Compression circuitry 508 may perform the compression (e.g., lossy or lossless based on priority value of the data indicated by priority value for data type 516), and communication circuitry 506 may transmit the compressed data back to IMD 400 for storage in long-term memory 410 of IMD 400.
[0136] FIG. 6 is a flowchart illustrating an example of method of operation in accordance with one or more examples described in this disclosure. For purposes of illustration, the example of FIG. 6 is described with respect to IMD 400, where IMD 400 is a first IMD. The first IMD may include one or more memories (e.g., long-term memory 410). Processing circuitry 402 of the first IMD may be configured to determine that available storage space in the one or more memories is limited (600). For example, to determine that available storage space in the one or more memories is limited, the processing circuitry 402 may be configured to determine that current data stored in the one or more memories would be overwritten (e.g., if additional data were stored in the one or more memories). As another example, processing circuitry 402 may estimate how muchdata is going to be stored in long-term memory 410 and when data is going to be removed from long-term memory 410 to determine available storage space in the one or more memories is limited.
[0137] Processing circuitry 402 may be configured to output, to at least a second IMD, data of the first IMD based on the determination that available storage space in the one or more memories is limited (602). For example, to output the data, processing circuitry 402 may be configured to output the data using a tissue conduction communication (TCC) scheme (e.g., via communication circuitry 406). The data may be sensor data captured by the first IMD, or patient data generated by the processing circuitry 402. In some examples, processing circuitry 402 may be configured to output metadata indicating that the data that is to be stored on the second IMD originated from the first IMD (e.g., IMD 400).
[0138] As described above, there may be various examples of sensor data such as physiological sensor data, biomechanical sensor data, and environmental sensor data. For instance, physiological sensor data may be sensor data captured from signals generated by the patient (e.g., neural or cardiac signals). Biomechanical sensor data may be sensor data captured due to mechanical process (e.g., accelerometer signals). Environmental sensor data may be sensor data indicative of environment (e.g., temperature).
[0139] In some examples, prior to outputting the data, processing circuitry 402 may determine whether the data should be output for storage. For example, if processing circuitry 402 determines that a quality of a recently sensed signal is relatively low, processing circuitry 402 may determine that storage of data representing the sensed signal is not necessary. For example, processing circuitry 402 may be configured to apply filtering (e.g., low-pass, band-pass, or high-pass filtering) to sensed signals, and if the output of the filtering is a signal having relatively low power or amplitude, processing circuitry 402 may determine that the sensed signal is of low quality, and storage of such data in another IMD is not necessary. Processing circuitry 402 may analyze the data of the sensed signal for certain parameters (e.g., QT interval in an ECG signal). If processing circuitry 402 cannot determine the parameters (e.g., due to low quality of the signal), processing circuitry 402 may determine that the data is of low quality, and storage of such data in another IMD is not needed.
[0140] As another example, processing circuitry 402 determines that the data of a sensed signal does not provide useful information for therapy or diagnosis, IMD 400 may not output the data for storage in another IMD. For instance, if priority value for data type 416 indicates relatively low priority value, IMD 400 may not output the data for storage in another IMD.
[0141] Moreover, prior to outputting the data, processing circuitry 402 may select which IMD or IMDs to which data is to be outputted. Processing circuitry 402, via communication circuitry 406, may output a query to one or more IMDs of whether storage space is available. In one or more examples, the query may include information of how much data is to be stored. The information of how much data is to be stored may be information of the actual amount of data to be stored (e.g., data is stored in short-term memory 408 of IMD 400 and should be written in another IMD). In some examples, the information of how much data is to be stored may be an estimate of how much data is to be stored (e.g., based on an estimate of how much more data IMD 400 is going to generate or sense before upload of data to an external device).
[0142] Processing circuitry 402 may receive one or more responses from a subset of the one or more IMDs indicating that storage space is available. The second IMD, where the data is to be stored, may be in the subset of the one or more IMDs. Processing circuitry 402 may select the second IMD from the subset of the one or more IMDs.
[0143] There may be various factors that the processing circuitry 402 uses to select which IMD or IMDs to output data of IMD 400 for storage. As an example, processing circuity 402 may use priority value for data type 416 and / or rank value for IMD type 418. For instance, processing circuitry 402 may be biased towards selecting an IMD with lower rank value than another IMD. This may be because there is less to minimal impact if data on an IMD having a relatively low rank value is overwritten.
[0144] As another example, processing circuitry 402 may determine if an IMD is of a similar type as IMD 400. If the IMD is of a similar type, processing circuitry 402 may more likely select that IMD for storage. If the IMD is not of a similar type, processing circuitry 402 may be less likely to select that IMD for storage.
[0145] As another example, rank value for IMD type may also include the information of a type of memory that is available on the IMDs. Processing circuitry 402 may utilize information of the type of memory to determine which IMD should store data of IMD 400.For instance, IMD types that store data that is more relevant to therapy or diagnosis may include more robust (e.g., less likely to fail or lose data) memory as compared to IMD types that store data that is less relevant to therapy or diagnosis. In such cases, the processing circuitry 402 may be biased towards selecting an IMD with more robust memory as compared to another IMD.
[0146] As described above, there may be various ways in which to classify the IMD type. For example, the IMD type may be based on a type of sensor within the IMDs. The IMD type may be based on a type of storage (e.g., amount or type of memory) of the IMDs. The IMD type may be based on a type of communication link. The IMD type may be based on a type of processing (e.g., processing capabilities). Any combination of the above or other examples are also possible for classifying the IMD type.
[0147] In this manner, processing circuitry 402 may be configured to determine an IMD type of the second IMD. To select the second IMD, the processing circuitry 402 may be configured to select the second IMD based on the IMD type of the second IMD.
[0148] In some examples, processing circuitry 402 may use priority value for data type 416. For instance, if the priority value is relatively high, processing circuitry 402 may select an IMD with maximal available space, or select an IMD with more robust memory storage capabilities. In this manner, processing circuitry 402 may be configured to determine data type of the data. To select the second IMD, the processing circuitry 402 may be configured to select the second IMD based on data type of the data.
[0149] Processing circuitry 402 may establish a communication link between the first IMD (e.g., IMD 400) and at least the second IMD. To output the data, processing circuitry 402 may be configured to output the data after establishing the communication link. The first IMD (e.g., IMD 400) may be configured to output the query directly to the one or more HMDs through body tissue of a patient, and the first IMD may be configured to establish the communication link directly with the second IMD through the body tissue of the patient.
[0150] FIG. 7 is a flowchart illustrating an example of method of operation in accordance with one or more examples described in this disclosure. For purposes of illustration, the example of FIG. 7 is described with respect to IMD 500, where IMD 500 is a first IMD. The first IMD may include one or more memories (e.g., memory 510).
[0151] Processing circuitry 502 may receive, from a second IMD (e.g., IMD 400), a query of whether storage space is available in the one or more memories (700). IMD 500 may be configured to receive the query receive through body tissue of a patient.
[0152] Processing circuitry 502 may determine that storage space is available in one or more memories (702). As one example, to determine that storage space is available in the one or more memories, processing circuitry 502 may be configured to determine that current data stored in the one or more memories would not be overwritten. As another example, processing circuitry 502 may be configured to determine an IMD type of the second IMD. To determine that storage space is available, the processing circuitry 502 may be configured to determine that storage space is available in the one or more memories based on the IMD type. As another example, processing circuitry 502 may be configured to determine a data type of the data. To determine that storage space is available, the processing circuitry 502 may be configured to determine that storage space is available in the one or more memories based on the data type.
[0153] As described above, there may be various ways in which to classify the IMD type. For example, the IMD type may be based on a type of sensor within the IMDs. The IMD type may be based on a type of storage (e.g., amount or type of memory) of the IMDs. The IMD type may be based on a type of communication link. The IMD type may be based on a type of processing (e.g., processing capabilities). Any combination of the above or other examples are also possible for classifying the IMD type.
[0154] Processing circuitry 502 may output a response indicating that storage space is available in the one or more memories based on the determination (704). If selected, processing circuitry 502 may receive, from the second IMD, data of the second IMD (706), and may store, in the one or more memories, the data of the second IMD (708).
[0155] In one or more examples, the data from the second IMD may be second data 515, and the data from the first IMD (e.g., IMD 500) may be first data 514. In one or more examples, processing circuitry 502 may be configured to store metadata indicating that the second data 515 is from the second IMD and the first data 514 is from the first IMD (e.g., IMD 500).
[0156] The following describes example techniques that may be performed together or separately.
[0157] Example 1. A system comprising: a first implantable medical device (IMD) comprising: one or more memories; and processing circuitry configured to: determine that available storage space in the one or more memories is limited; and output, to at least a second IMD, data of the first IMD based on the determination that available storage space in the one or more memories is limited.
[0158] Example 2. The system of example 1, wherein the data comprises one or more of: physiological, biomechanical, or environmental sensor data captured by the first IMD; or patient data generated by the processing circuitry.
[0159] Example 3. The system of any of examples 1 and 2, wherein the processing circuitry is configured to: output a query to one or more IMDs of whether storage space is available; receive one or more responses from a subset of the one or more IMDs indicating that storage space is available, wherein the second IMD is in the subset of the one or more IMDs; select the second IMD from the subset of the one or more HMDs; and establish a communication link between the first IMD and at least the second IMD, wherein to output the data, the processing circuitry is configured to output the data after establishing the communication link.
[0160] Example 4. The system of example 3, wherein the first IMD is configured to output the query directly to the one or more HMDs through body tissue of a patient, and wherein the first IMD is configured to establish the communication link directly with the second IMD through the body tissue of the patient.
[0161] Example 5. The system of any of examples 3 and 4, wherein the processing circuitry is configured to determine an IMD type of the second IMD, and wherein to select the second IMD, the processing circuitry is configured to select the second IMD based on the IMD type of the second IMD.
[0162] Example 6. The system of any of examples 1-5, wherein to determine that available storage space in the one or more memories is limited, the processing circuitry is configured to determine that current data stored in the one or more memories would be overwritten.
[0163] Example 7. The system of any of examples 3-6, wherein the processing circuitry is configured to determine data type of the data, and wherein to select the second IMD, the processing circuitry is configured to select the second IMD based on data type of the data.
[0164] Example 8. The system of any of examples 1-7, wherein the processing circuitry is configured to output metadata indicating that the data that is to be stored on the second IMD originated from the first IMD.
[0165] Example 9. The system of any of examples 1-8, wherein to output the data, the processing circuitry is configured to output the data using a tissue conduction communication (TCC) scheme.
[0166] Example 10. The system of any of examples 1-9, wherein the first IMD comprises one of a cardiac monitoring device, a neuromodulation device, a cardiac rhythm management device, or analyte monitoring device.
[0167] Example 11. A system comprising: a first implantable medical device (IMD) comprising: one or more memories; and processing circuitry configured to: receive, from a second IMD, a query of whether storage space is available in the one or more memories; determine that storage space is available in the one or more memories; output a response indicating that storage space is available in the one or more memories based on the determination; receive, from the second IMD, data of the second IMD; and store, in the one or more memories, the data of the second IMD.
[0168] Example 12. The system of example 11, wherein the data of the second IMD comprises second data of the second IMD, and wherein the processing circuitry is configured to store, in the one or more memories, first data of the first IMD.
[0169] Example 13. The system of example 12, wherein the processing circuitry is configured to store metadata indicating that the second data is from the second IMD and the first data is from the first IMD.
[0170] Example 14. The system of example 13, wherein the processing circuitry is configured to output, to an external device, the first data of the first IMD, the second data of the second IMD, and the metadata.
[0171] Example 15. The system of any of examples 11-14, wherein the data comprises one or more of: physiological, biomechanical, or environmental sensor data captured by the second IMD; or patient data generated by the second IMD.
[0172] Example 16. The system of any of examples 11-15, wherein to receive the query, the first IMD is configured to receive the query through body tissue of a patient, wherein to output the response, the first IMD is configured to output the response directly to the second IMD through the body tissue of the patient, and wherein to receive the data,the first IMD is configured to receive the data directly from the second IMD through the body tissue of the patient.
[0173] Example 17. The system of any of examples 11-16, wherein the processing circuitry is configured to determine an IMD type of the second IMD, wherein to determine that storage space is available, the processing circuitry is configured to determine that storage space is available in the one or more memories based on the IMD type.
[0174] Example 18. The system of any of examples 11-17, wherein to receive the data, the first IMD is configured to receive the data using a tissue conduction communication (TCC) scheme.
[0175] Example 19. The system of any of examples 11-18, wherein the firstIMD is a non-cardiac monitoring device.
[0176] Example 20. The system of any of examples 11-19, wherein to determine that storage space is available in the one or more memories, the processing circuitry is configured to determine that current data stored in the one or more memories would not be overwritten.
[0177] Example 21. A method comprising: determining, with processing circuitry of a first implantable medical device (IMD), that available storage space in one or more memories of the first IMD is limited; and outputting, with the processing circuitry, to at least a second IMD, data of the first IMD based on the determination that available storage space in the one or more memories is limited.
[0178] Example 22. The method of example 21, wherein the data comprises one or more of physiological, biomechanical, or environmental sensor data captured by the first IMD; or patient data generated by the processing circuitry.
[0179] Example 23. The method of any of examples 21 and 22, further comprising: outputting a query to one or more HMDs of whether storage space is available; receiving one or more responses from a subset of the one or more HMDs indicating that storage space is available, wherein the second IMD is in the subset of the one or more IMDs; selecting the second IMD from the subset of the one or more IMDs; and establishing a communication link between the first IMD and at least the second IMD, wherein outputting the data comprises outputting the data after establishing the communication link.
[0180] Example 24. The method of example 23, wherein outputting the query comprises outputting the query directly to the one or more IMDs through body tissue of a patient, and wherein establishing the communication link comprises establishing the communication link directly with the second IMD through the body tissue of the patient.
[0181] Example 25. The method of any of examples 23 and 24, further comprising: determining an IMD type of the second IMD, and wherein selecting the second IMD comprises selecting the second IMD based on the IMD type of the second IMD.
[0182] Example 26. The method of any of examples 21-25, wherein determining that available storage space in the one or more memories is limited comprises determining that current data stored in the one or more memories would be overwritten.
[0183] Example 27. The method of any of examples 23-26, further comprising: determining data type of the data, and wherein selecting the second IMD comprises selecting the second IMD based on data type of the data.
[0184] Example 28. The method of any of examples 21-27, further comprising outputting metadata indicating that the data that is to be stored on the second IMD originated from the first IMD.
[0185] Example 29. The method of any of examples 21-28, wherein outputting the data comprises outputting the data using a tissue conduction communication (TCC) scheme.
[0186] Example 30. The method of any of examples 21-29, wherein the first IMD comprises one of a cardiac monitoring device, a neuromodulation device, a cardiac rhythm management device, or analyte monitoring device.
[0187] Example 31. A method comprising: receiving, with processing circuitry of a first implantable medical device (IMD) and from a second IMD, a query of whether storage space is available in one or more memories of the first IMD; determining that storage space is available in the one or more memories; outputting a response indicating that storage space is available in the one or more memories based on the determination; receiving, from the second IMD, data of the second IMD; and storing, in the one or more memories, the data of the second IMD.
[0188] Example 32. The method of example 31, wherein the data of the second IMD comprises second data of the second IMD, the method further comprising storing, in the one or more memories, first data of the first IMD.
[0189] Example 33. The method of example 32, further comprising storing metadata indicating that the second data is from the second IMD and the first data is from the first IMD.
[0190] Example 34. The method of example 33, further comprising outputting, to an external device, the first data of the first IMD, the second data of the second IMD, and the metadata.
[0191] Example 35. The method of any of examples 31-34, wherein the data comprises one or more of: physiological, biomechanical, or environmental sensor data captured by the second IMD; or patient data generated by the second IMD.
[0192] Example 36. The method of any of examples 31-35, wherein receiving the query comprises receiving the query through body tissue of a patient, wherein outputting the response comprises outputting the response directly to the second IMD through the body tissue of the patient, and receiving the data comprises receiving the data directly from the second IMD through the body tissue of the patient.
[0193] Example 37. The method of any of examples 31-36, further comprising determine an IMD type of the second IMD, wherein determining that storage space is available comprises determining that storage space is available in the one or more memories based on the IMD type.
[0194] Example 38. The method of any of examples 31-37, wherein receiving the data comprises receiving the data using a tissue conduction communication (TCC) scheme.
[0195] Example 39. The method of any of examples 31-38, wherein the firstIMD is a non-cardiac monitoring device.
[0196] Example 40. The method of any of examples 31-39, wherein determining that storage space is available in the one or more memories comprises determining that current data stored in the one or more memories would not be overwritten.
[0197] Example 41. A computer-readable storage medium storing instructions thereon that when executed cause one or more processors to perform the method of any of examples 21-30.
[0198] Example 42. A computer-readable storage medium storing instructions thereon that when executed cause one or more processors to perform the method of any of examples 31-40.
[0199] Various aspects of the techniques may be implemented within one or more processors, including one or more microprocessors, DSPs, ASICs, FPGAs, or any other equivalent integrated or discrete logic circuitry, as well as any combinations of such components, embodied in programmers, such as physician or patient programmers, electrical stimulators, or other devices. The term “processor” or “processing circuitry” may generally refer to any of the foregoing logic circuitry, alone or in combination with other logic circuitry, or any other equivalent circuitry.
[0200] In one or more examples, the functions described in this disclosure may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on, as one or more instructions or code, a computer-readable medium and executed by a hardware-based processing unit. Computer-readable media may include computer-readable storage media forming a tangible, non-transitory medium. Instructions may be executed by one or more processors, such as one or more DSPs, ASICs, FPGAs, general purpose microprocessors, or other equivalent integrated or discrete logic circuitry. Accordingly, the term “processor,” as used herein may refer to one or more of any of the foregoing structure or any other structure suitable for implementation of the techniques described herein.
[0201] In addition, in some aspects, the functionality described herein may be provided within dedicated hardware and / or software modules. Depiction of different features as modules or units is intended to highlight different functional aspects and does not necessarily imply that such modules or units must be realized by separate hardware or software components. Rather, functionality associated with one or more modules or units may be performed by separate hardware or software components, or integrated within common or separate hardware or software components. Also, the techniques could be fully implemented in one or more circuits or logic elements. The techniques of this disclosure may be implemented in a wide variety of devices or apparatuses, including an IMD, an external programmer, a combination of an IMD and external programmer, an integrated circuit (IC) or a set of ICs, and / or discrete electrical circuitry, residing in an IMD and / or external programmer.
[0202] Various aspects of the disclosure have been described. These and other aspects are within the scope of the following claims.
Claims
WHAT IS CLAIMED IS:
1. A system comprising: a first implantable medical device (IMD) comprising: one or more memories; and processing circuitry configured to: determine that available storage space in the one or more memories is limited; and output, to at least a second IMD, data of the first IMD based on the determination that available storage space in the one or more memories is limited.
2. The system of claim 1, wherein the data comprises one or more of: physiological, biomechanical, or environmental sensor data captured by the firstIMD; or patient data generated by the processing circuitry.
3. The system of any of claims 1 and 2, wherein the processing circuitry is configured to: output a query to one or more HMDs of whether storage space is available; receive one or more responses from a subset of the one or more IMDs indicating that storage space is available, wherein the second IMD is in the subset of the one or more IMDs; select the second IMD from the subset of the one or more HMDs; and establish a communication link between the first IMD and at least the second IMD, wherein to output the data, the processing circuitry is configured to output the data after establishing the communication link.
4. The system of claim 3, wherein the first IMD is configured to output the query directly to the one or more IMDs through body tissue of a patient, and wherein the first IMD is configured to establish the communication link directly with the second IMD through the body tissue of the patient.
5. The system of any of claims 3 and 4, wherein the processing circuitry is configured to determine an IMD type of the second IMD, and wherein to select the second IMD, the processing circuitry is configured to select the second IMD based on the IMD type of the second IMD.
6. The system of any of claims 1-5, wherein to determine that available storage space in the one or more memories is limited, the processing circuitry is configured to determine that current data stored in the one or more memories would be overwritten.
7. The system of any of claims 3-6, wherein the processing circuitry is configured to determine data type of the data, and wherein to select the second IMD, the processing circuitry is configured to select the second IMD based on data type of the data.
8. The system of any of claims 1-7, wherein the processing circuitry is configured to output metadata indicating that the data that is to be stored on the second IMD originated from the first IMD.
9. The system of any of claims 1-8, wherein to output the data, the processing circuitry is configured to output the data using a tissue conduction communication (TCC) scheme.
10. The system of any of claims 1-9, wherein the first IMD comprises one of a cardiac monitoring device, a neuromodulation device, a cardiac rhythm management device, or analyte monitoring device.
11. Am ethod compri si ng : determining, with processing circuitry of a first implantable medical device (IMD), that available storage space in one or more memories of the first IMD is limited; andoutputting, with the processing circuitry, to at least a second IMD, data of the first IMD based on the determination that available storage space in the one or more memories is limited.
12. The method of claim 11, wherein the data comprises one or more of: physiological, biomechanical, or environmental sensor data captured by the firstIMD; or patient data generated by the processing circuitry.
13. The method of any of claims 11 and 12, further comprising: outputting a query to one or more IMDs of whether storage space is available; receiving one or more responses from a subset of the one or more IMDs indicating that storage space is available, wherein the second IMD is in the subset of the one or more IMDs; selecting the second IMD from the subset of the one or more IMDs; and establishing a communication link between the first IMD and at least the second IMD, wherein outputting the data comprises outputting the data after establishing the communication link.
14. The method of claim 13, wherein outputting the query comprises outputting the query directly to the one or more IMDs through body tissue of a patient, and wherein establishing the communication link comprises establishing the communication link directly with the second IMD through the body tissue of the patient.
15. A computer-readable storage medium storing instructions thereon that when executed cause one or more processors to perform the operation of the processing circuitry of any of claims 1-10.
16. A system comprising: a first implantable medical device (IMD) comprising: one or more memories; andprocessing circuitry configured to: receive, from a second IMD, a query of whether storage space is available in the one or more memories; determine that storage space is available in the one or more memories; output a response indicating that storage space is available in the one or more memories based on the determination; receive, from the second IMD, data of the second IMD; and store, in the one or more memories, the data of the second IMD.
17. The system of claim 16, wherein the data of the second IMD comprises second data of the second IMD, and wherein the processing circuitry is configured to store, in the one or more memories, first data of the first IMD.
18. The system of claim 17, wherein the processing circuitry is configured to store metadata indicating that the second data is from the second IMD and the first data is from the first IMD.
19. The system of claim 18, wherein the processing circuitry is configured to output, to an external device, the first data of the first IMD, the second data of the second IMD, and the metadata.
20. The system of any of claims 16-19, wherein the data comprises one or more of physiological, biomechanical, or environmental sensor data captured by the secondIMD; or patient data generated by the second IMD.
21. The system of any of claims 16-20, wherein to receive the query, the first IMD is configured to receive the query through body tissue of a patient, wherein to output the response, the first IMD is configured to output the response directly to the second IMD through the body tissue of the patient, and wherein to receive the data, the first IMD isconfigured to receive the data directly from the second IMD through the body tissue of the patient.
22. The system of any of claims 16-21, wherein the processing circuitry is configured to determine an IMD type of the second IMD, wherein to determine that storage space is available, the processing circuitry is configured to determine that storage space is available in the one or more memories based on the IMD type.
23. The system of any of claims 16-22, wherein to receive the data, the first IMD is configured to receive the data using a tissue conduction communication (TCC) scheme.
24. The system of any of claims 16-23, wherein the first IMD is a non-cardiac monitoring device.
25. The system of any of claims 16-24, wherein to determine that storage space is available in the one or more memories, the processing circuitry is configured to determine that current data stored in the one or more memories would not be overwritten.
26. A method comprising: receiving, with processing circuitry of a first implantable medical device (IMD) and from a second IMD, a query of whether storage space is available in one or more memories of the first IMD; determining that storage space is available in the one or more memories; outputting a response indicating that storage space is available in the one or more memories based on the determination; receiving, from the second IMD, data of the second IMD; and storing, in the one or more memories, the data of the second IMD.
27. The method of claim 26, wherein the data of the second IMD comprises second data of the second IMD, the method further comprising storing, in the one or more memories, first data of the first IMD.
28. The method of claim 27, further comprising storing metadata indicating that the second data is from the second IMD and the first data is from the first IMD.
29. The method of claim 28, further comprising outputting, to an external device, the first data of the first IMD, the second data of the second IMD, and the metadata.
30. A computer-readable storage medium storing instructions thereon that when executed cause one or more processors to perform the operation of the processing circuitry of any of claims 1-10.
Citation Information
Patent Citations
Automatic data transmission method and system for implantable medical equipment
CN113691634A
Peripheral memory patch and access method for use with an implantable medical device
EP1171201B1
US202463637122P