Embodiments of the present invention relate generally to data communications, and in particular to methods and systems for serially transmitting records from a portable electronic medical device in XML format.
Portable electronic medical (PEM) devices, such as blood glucose (bG) meters, insulin pumps, and continuous glucose monitoring devices, are used for managing diabetes and other chronic diseases. The ability of these devices to exchange information between each other devices as well as between a device and a personal computer (PC) has become a standard feature.
Conventional methods include exchanging data in binary format as well as encoding the data in a computer language, such as XML (Extensible Markup Language), and compressing the encoded data before transmitting. However, these methods, although suitable for certain types of medical devices, may pose significant disadvantages in other devices. For example, wired and wireless communications using a binary data communication schemes often require the recipient to decode a proprietary format. Furthermore, maintaining backward and forward compatibility of the communicated data format can be challenging when new data content is introduced and/or new devices are added into a multi-device system. Also, wired and wireless communication schemes in which a header is sent followed by delimited data may require the recipient to further transform the data into an XML format. Compression schemes typically require computational and other resources to compress and decompress the data, and they may also not be able to provide random access to the data, as is common for in-memory data storage.
Data which is formatted in XML is verbose and, as such, requires more memory resources compared to binary stored data. Using the standard XML-based data format can help to maintain backward and forward compatibility for data communication even when new types of data are introduced into the data format; however, the XML data may require more memory resources as compared to binary data storage. Converting between binary data and data in XML format requires more computational resources as well. Minimizing memory and computation resources may lower the manufacturing cost of devices and may decrease power consumption as well. Consequently, a need exists for providing an XML-compliant communication scheme for PEM devices which minimizes memory and computational resources.
It is against the above background that embodiments of the present invention may provide an intelligent XML parser for records stored in a PEM device. The XML parser may provide an XML-compliant interface while conserving device memory and other resources, thereby allowing the use of the XML data format for resource-constrained devices such as, for example, blood glucose meters and insulin pumps. The XML-compliant interface may enhance utilization of device data and may reduce lifecycle maintenance costs. Embodiments described herein may take into account a system of multiple collaborating devices and the clinical categorization of the records.
In one embodiment, a method is disclosed for serially transmitting one or more records from a portable electronic medical device to an external device, wherein the portable electronic medical device comprises a memory and a processor, the memory is in electrical communication with the processor, the memory comprises the one or more records, each record comprises one or more data entries, and the method comprises: having the processor parse an XML (Extensible Markup Language) template, the XML template including one or more XML elements associated with one or more data entries; having the processor read the one or more records; having the processor append the XML elements to the associated data entries of each record such that the appended data entries are in XML format; and having the processor serially transmit the appended data entries of each record to the external device.
In another embodiment, a method is disclosed for serially transmitting one or more records from a portable electronic medical device to an external device, wherein the portable electronic medical device comprises a memory and a processor, and the method comprises: having the processor read from the memory two or more XML (Extensible Markup Language) files, wherein each XML file comprises one or more records; having the processor combine the two or more XML files into a single, combined XML file, based on a pre-determined top level element; and having the processor serially transmitting the single, combined XML file to the external device.
In yet another embodiment, a method is disclosed for serially transmitting one or more records from a portable electronic medical device to an external device, wherein the portable electronic medical device comprises a memory and a processor, and the method comprises: having the processor read from the memory two or more XML (Extensible Markup Language) files, wherein each XML file comprises one or more records; having the processor read a combining template which provides instructions on combining the two or more XML files into a single, combined XML file; having the processor combine the two or more XML files into a single, combined XML file, based on the combining template; and having the processor serially transmitting the single, combined XML file to the external device.
In still another embodiment, a portable electronic medical device comprises: a communication device; a memory for storing one or more records, each record having one or more data entries; a processor in electrical communication with the communication device and memory; and a control program accessible by the processor to direct the processing of the one or more records and data entries by the processor, the control program when executed on the processor causes the processor to: read the one or more records from the memory, parse an XML (Extensible Markup Language) template comprising one or more XML elements associated with the one or more data entries, append the XML elements to the associated data entries of each record such that the appended data entries are in XML format, and serially transmit the appended data entries of each record via the communication device.
These and other embodiments of the present invention will become readily apparent to those skilled in the art from the following detailed description of the preferred embodiments having reference to the attached figures, the invention not being limited to any particular preferred embodiment(s) disclosed.
The embodiments set forth in the drawings are illustrative and exemplary in nature and not intended to limit the inventions defined by the claims. The following detailed description of the illustrative embodiments can be understood when read in conjunction with the following drawings, where like structure is indicated with like reference numerals and in which:
The embodiments of the present invention allow communication of data in XML format between resource-constrained devices, such as blood glucose (bG) meters, insulin pumps and continuous glucose monitors, and similar devices. Such resource-constrained devices will be collectively referred to herein as portable electronic medical (PEM) devices. The methods and systems described herein may reduce the memory and computational resource requirements of the PEM devices.
The processor 104 may comprise a microprocessor, microcontroller, ASIC processor, or other suitable processing device. The processor 104 may also comprise memory, timers, and other similar peripherals. For example, the processor 104 may comprise non-volatile flash memory for storing a control program 112 and RAM for temporary storage. Alternatively, the control program 112 may be stored in the memory 102. The control program 112 may be accessible by the processor 104, such as from flash memory or memory 102, to direct the processing of the XML template 103 and records 109 by the processor 104. When executed on the processor, the control program 112 may cause the processor 104 to perform the processes and features of the inventive embodiments, such as the processes illustrated by
Continuing to refer to
In order to communicate XML data over the PEM device link 110 to the PC 108 (with or without dongle 107), the processor 104 of the PEM device 101 locates and reads the XML template 103, renders in memory 102 the records 109 into XML format, and communicates XML data via communication port 105 of the PEM device. In one embodiment, the XML template 103 may be stored in the memory 102 (as depicted in
The PEM device link 110 may be a wired link, such as Universal Serial Bus (USB) and Ethernet, or it may be a wireless link, such as Bluetooth, Zigbee, infrared, and so forth. A variety of dongles may be available, each of which may provide a specific type of link. A user of the PEM device may be able to install a USB dongle, a Bluetooth dongle, etc. Alternatively, the communication port 105 and the dongle 107 may be combined so that the PEM device 101 always supports one or more types of links. As an example, a PEM device 101 may comprise a communication port 105 which only provides Bluetooth capability. This type of PEM device may not be as flexible as one employing a dongle (which may support a variety of wired or wireless interfaces), but it may be less expensive and more compact.
The PC 108, to which the PEM device 101 communicates, may be a desktop or a laptop computer. Alternatively, the PC 108 may also be a smart phone, a personal digital assistant, or other type of personal communicator. For example, the PC 108 may be a smart phone, and the PEM device link 110 may be Bluetooth. In this example, the PEM device 101 and the smart phone may be operable to transmit data to each other. The smart phone may request that the PEM device 101 send the records stored in its memory to the smart phone. In response, the PEM device 101 may read the records stored in its memory and transmit the records in XML-format to the smart phone.
As discussed herein, the PEM device link 110 between PEM devices or between a PEM device and a PC may be wired or wireless. For example, blood glucose meters may wirelessly transmit glucose measurements via an infrared port. The infrared port may permit the PC to receive data from the blood glucose meter and transmit it to an information management host device such as a personal computer or mobile device (Smartphone, personal digital assistant, etc.)
Although the data entries 114 (as depicted in
When the processor 104 reads a variable-length data entry 114, it reads the data from the memory 102 until it reaches the end delimiter 111, which indicates to the processor 104 that it has reached the end of the data entry. The processor 104 may then discard the end delimiter and begin reading the next data entry. Variable length data entries 114 may also have a beginning delimiter (not shown). Similar to an end delimiter 111, the beginning delimiter may mark the beginning of the data entry to the processor 104. The remaining data bytes in the variable-length data entry may not use the same value as the beginning delimiter; that is, the value of the beginning delimiter must be unique within the context of a variable-length data entry.
The processor 104 may know which data entries 114 have a fixed length and which ones have a variable length. This may be set up by the manufacturer of the PEM device 101 or may be set up by the user. It is also contemplated that the length or type of data entries 114 may be changed, even after the PEM device 101 has been in operation. In this case, the processor 104 may have to re-write the records into the memory 102 in order to conform to the new format of the data entries.
The XML template 103 of
The XML template 103 may have some of the XML elements 115 indented (or tabbed), as shown in
Continuing with this example, the processor 104 may read the one or more records 109 stored in the memory 102 of the PEM device 101. The processor 104 may then append the XML elements 115 to each associated data entries 114 of the records 109 such that the appended data entries are rendered in XML format. The appended data entries are shown in
As discussed herein, the PEM device 101 may have one or more XML templates 103 stored in its memory 102. Alternatively, the PEM device 101 may receive an XML template 103 from the external device, e.g., PC 108 to which it is transmitting the records in XML format. For example, the PEM device 101 may receive the XML template 103 from the PC 108 before it receives a request to transmit its records to the PC 108. The processor 104 of the PEM device 101 may then use the received XML template 103 to serially transmit records in XML format to the PC 108 as is explained hereafter.
Still using the example from
The processor 104 may transmit additional information before and/or after the appended data entries. For example, the processor 104 may send a header identifying the version of XML and/or the type of encoding used, such as <?xml version=“1.0” encoding=“ISO-8859-1”?>. Other types of information may be transmitted as well, including other types of headers and/or footers.
Embodiments of the present invention will now be described with respect to flow diagrams and flowcharts depicted by
The method may also comprise an act of encrypting some or all of the data entries 114 of the records 109. The regulations of medical devices may place stricter requirements on therapeutically significant data, compared to therapeutically non-significant data. An example is the amount of insulin bolus to be delivered versus historical data collected over time. Since XML is plain text format, the XML template 103 may contain a privacy indication for some or all of the data entries. The method may recognize data entries with a privacy need and apply encryption to the resulting transmission of records 109 in XML format. The processor 104, after locating the XML template 103 corresponding to the record 109, may determine whether the XML template 103 indicates if any records 109 and/or data entries have a privacy attribute. The processor 104, upon receiving an indication that the record 109 and/or data entry has a “private” indication from the XML template 103, may encrypt the data entries using any conventional or yet-to-be-discovered techniques. As an example, the processor 104 may encrypt records by using an Advanced Encryption Standard (AES) adopted by the National Institute of Standards and Technology (NIST) such as the Rijndael algorithm. Other algorithms may be used as well, including but not limited to the Serpent algorithm and the Twofish algorithm. Furthermore, all records may be encrypted or only portions of the records may be encrypted. As an example, the medically relevant information may be encrypted (such as bG levels), and other information may not be encrypted (such as dates and times). Similarly, the XML tags (discussed hereinafter) may or may not be encrypted as well.
The method may also comprise the act of adding a digital signature to the data transmission. The XML template 103 may indicate whether there is medically significant data and whether the digital signature is to be applied to the resulting document transmitted from the PEM device 101. If the XML template 103 indicates that a digital signature is required, the method may add a digital signature. Methods to generate a digital signature may include but are not limited to the Digital Signature Algorithm (DSA) and the digital signature algorithm developed by the SAFE-BioPharma Association Other techniques to generate a digital signature may also be used, as is known in the art.
To determine the proper method of parsing binary data into XML, there may be four scenarios that can occur based on whether data structure is known ahead of time during device design or whether the communicated data entries are of fixed or variable length. Table 1 shows these four scenarios.
For Option 1, the data structure of the record 109 (i.e., the number and types of data entries) is defined when the meter is designed and consists of only fixed-length data entries. The data entries 114 are associated to the XML elements 115 according to pattern that can be mapped directly to the XML template 103. The XML elements are appended to each of the associated data entries until all data entries of each record are processed. This option may use but does not require an end delimiter 111 to separate data in memory.
For Option 2, the data structure of the record 109 is defined when the PEM device 101 is designed and comprises fixed-length and/or variable-length data entries 114. This option, in addition to Option 1, addresses variable-length data entries. The memory allocation now must use an end delimiter 111 to indicate the end of variable-length data entries. One possible implementation is to store fixed-length data entries in the beginning of the record 109; and after that store the variable-length data entries delimited by the known end delimiter. Each variable-length data entry is preceded by the opening XML tag, followed by the data until the end delimiter 111 is encountered. The closing XML tag may then be appended. The delimiter itself is not typically communicated into XML data. This solution requires that the end delimiter is selected appropriately so that it cannot be encountered with the data entry itself.
For Option 3, the data structure may be defined up to the time when the records 109 are to be transmitted. This is similar to Option 1, but the XML template can be modified during runtime. This implies that the original binary record storage may not correspond anymore to the new or modified XML template. As such, the original records may either be re-allocated to match the new XML template 103 or the old template may be preserved. This second option is similar to implementations that need multiple XML templates to communicate different XML data structures from the same device. Yet another option exists for situations in which the new data entries are optional and thus the existing records 109 can be rendered with empty optional data entries, without necessarily reorganizing the storage.
For Option 4, the data structure is defined at runtime and consists of fixed-length or variable-length data entries 114. The solution to this option is derived from the solutions to Option 2 and Option 3. The variable-length data entries can be represented via the end delimiter method and modifying the XML template 103 can be resolved for fixed and variable data entry lengths as specified in Option 3.
The above options assume that the XML template 103 can represent the tree-like structure of XML. In other words, one XML element 115 can consist of more sub-elements and thus represent complex structures, for example an address consisting of a street, city, state and zip code. This may not be a problem since the XML template 103 can mirror such tree structure by pointing from one template element to another part of the template that represents the sub-elements of complex structure.
If the XML element 115 is optional and does not contain any value, this element may be either left out from the final XML or may be communicated as empty element, depending on the requirements for XML data format. Any of these requirements can be fulfilled by considering an optional data entry as variable-length data entry and representing it (in memory) as an end delimiter without any data.
A system of multiple devices may require exchange of data originating from each of the multiple devices. The following situations may occur with, for example, a system with 3 devices A, B and C, which demonstrates the variability in communication needs within the system. Device A may only generate data (A-Records) (e.g. via measurement engine or historical record keeping), store data, and forward data to other devices. Device B may generate data (B-Records) and accept data from device A. Device B may either transmit only its own B-Records or combined A-Records and B-Records, depending on the presence of device A in the system. Device C may not generate its own data, but accepts A-Records from device A, B-Records from device B, or Combined Data from both devices A and B.
The XML template 103 may uniquely describe each PEM device 101, but the PEM devices may allow a combination of templates. For example, if a system has two PEM devices, A and B, device A contains may contain its own XML template, while device B may contain both XML templates A and B. In addition, template A may store activation information directly or the activation information is stored in the memory 102. The memory 102 further stores information on which data regions belong to which templates. The variation of the algorithm that uses multiple templates assumes that the device is aware of which binary records 109 in the memory 102 correspond to a particular XML template 103.
Transmitting the XML template 103 to the PEM device 101 when needed may provide flexibility in a multi-device system. Continuing with the above example, as device A is added into the system, it broadcasts its presence so it can activate XML template A in the device B and Device C. Similarly device B broadcasts its presence so its XML template can be activated on the device C. The activation of XML templates is guided by whatever pairing algorithm is used to discover devices. This will optimize the data transmission in cases where device A or Device B is not present in the system. In another embodiment, the pairing algorithm allows for transmission of the template, eliminating the need for the need of having all the templates of the system preloaded on each device.
After appending the data entries of the one or more records 109 with the XML elements 115 of the XML file, the processor 104 may temporarily or permanently store the appended data entries (in XML format) in the memory 102. The processor 104 may append other information to the data entries, as previously discussed herein, so as to create an “XML file” in memory 102. This XML file may be in XML format, and may contain one or more of the records 109 stored in the PEM device 101. Assembling and storing the XML file in memory may permit the PEM device 101 to perform additional functions, such as combining one or more XML files before transmitting the combined XML file.
While particular embodiments and aspects of the present invention have been illustrated and described herein, various other changes and modifications may be made without departing from the spirit and scope of the invention. Moreover, although various inventive aspects have been described herein, such aspects need not be utilized in combination. It is therefore intended that the appended claims cover all such changes and modifications that are within the scope of this invention.