×

Generic data compression for heart diagnosis

  • US 9,477,701 B1
  • Filed: 11/30/2015
  • Issued: 10/25/2016
  • Est. Priority Date: 11/30/2015
  • Status: Expired due to Fees
First Claim
Patent Images

1. A generic data-compression system comprising a processor, a memory coupled to the processor, two or more communications interfaces, at least one of which is wireless, and a computer-readable hardware storage device coupled to the processor and containing program code configured to be run by the processor via the memory to implement a method for generic data compression, the method comprising:

  • the processor directly or indirectly receiving data captured by a medical-monitoring device, wherein the monitoring device monitors a physical condition of a patient, wherein the received data characterizes the monitored physical condition, and wherein the processor receives the data through a first interface of the two or more communications interfaces;

    the processor transforming the received data, wherein the transforming comprises encoding the received data into a sequence of ASCII characters,wherein the transforming comprises encoding into printable ASCII characters, by means of a lossless compression algorithm, information represented by an array V of eight numeric data elements comprised by the received data, wherein the eight data elements are labeled V(0), V(1), V(2), V(3), V(4), V(5), V(6), and V(7) and represent eight consecutive voltage measurements, and wherein the lossless compression algorithm comprises the following steps;

    the processor creating an eight-element bit array CorrPos and a five-element bit array CorrVars and initializing all elements of CorrPos and CorrVars to a value of 0;

    the processor successively replacing each data element V(n) with a value equal to (V(n)−

    V(n−

    1)) for 0<

    n<

    =7;

    the processor creating an 8-element bit array S of binary variables S(0), S(1), S(2), S(3), S(4), S(5), S(6), and S(7), wherein S(n)=1 if a value of a corresponding V(n) is less than zero and S(n)=0 otherwise;

    the processor interpreting the resulting array S as an 8-bit binary representation of a base-10 integer;

    the processor replacing each value V(n) stored in array V with an absolute magnitude of value V(n);

    the processor dividing the value of V(0) by 255, storing a quotient of this division in an integer variable Q, and replacing the value of V(0) with a remainder of this division;

    the processor applying a special-correction operation to the base-10 integer value stored in S, wherein the special-correction operation performs the following steps upon a value to which the operation is applied;

    i) if the value to which the operation is applied is 10, 13, 26, or 255, then the processor decrements the value by one and the operation returns a value of 1;

    ii) if the value to which the operation is applied inclusively falls within a range of 128 through 159, then the processor adds 32 to the value and the operation returns a value of 1; and

    iii) otherwise the operation returns a value of 0;

    the processor setting the first data element of five-element array CorrVars to a value returned by the special-correction operation performed upon the value stored in S;

    the processor further applying the special-correction operation upon each value V(n) stored in array V, 0<

    =n<

    =7, and storing a value returned by the special-correction operation upon each value V(n) in a corresponding nth position of eight-element array CorrPos;

    the processor interpreting the resulting array CorrPos as an 8-bit binary representation of a base-10 integer;

    the processor applying the special-correction operation to the base-10 integer value stored in CorrPos and setting the second data element of five-element array CorrVars to the value returned by the special-correction operation performed upon the value stored in CorrPos;

    the processor generating three eight-element bit arrays LGRP, RGRP, and UNGRP and initializing each binary element of these arrays to a value of zero;

    the processor generating a seven-element array G, comprising data elements G(0), G(1), G(2), G(3), G(4), G(5), and G(6), wherein each G(n) is set to a value according to the following rules;

    i) if (V[n]*100+V[n+1])<

    255, then the processor sets G(n)=(V[n]*100+V[n+1]) and the processor sets a corresponding nth element of array RGRP to a value of 1;

    ii) if (V[n]+V[n+1]*100)<

    255, then the processor sets G(n)=(V[n]+V[n+1]*100) and the processor sets a corresponding nth element of array LGRP to a value of 1; and

    iii) Otherwise the processor sets G(n)=v(n) and the processor sets a corresponding nth element of array UNGRP to a value of 1;

    the processor interpreting each of the resulting 8-bit values stored in arrays RGRP, LGRP, and UNGRP as an 8-bit binary representation of a base-10 integer;

    the processor applying the special-correction operation to the base-10 integer represented by the value stored in array RGRP and setting the third data element of five-element array CorrVars to a value returned by the special-correction operation performed upon the value stored in RGRP;

    the processor applying the special-correction operation to the base-10 integer represented by the value stored in array LGRP and setting the fourth data element of five-element array CorrVars to a value returned by the special-correction operation performed upon the value stored in LGRP;

    the processor applying the special-correction operation to the base-10 integer represented by the value stored in array UNGRP and setting the fifth data element of five-element array CorrVars to a value returned by the special-correction operation performed upon the value stored in UNGRP;

    the processor interpreting the five-bit value stored in array CorrVars as a base-10 integer value and applying the special-correction operation to this base-10 integer value;

    the processor setting a binary variable R to a value returned by the special-correction operation performed upon the base-10 representation of the value stored in CorrVars; and

    the processor encoding into printable ASCII characters the resulting integer values of LGRP, RGRP, UNGRP, CorrPos, CorrVars, each data element G(n), and a value equal to (R*100)+Q; and

    the processor transmitting the sequence of ASCII characters to a target device through a second interface of the two or more communications interfaces, wherein the transmitting is performed by means of a wireless text-messaging protocol, and wherein the target device is configured to reverse the transforming in order to extract from the ASCII characters a reproduction of the data captured by the medical-monitoring device.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×