ES2692209T3 - Sistema de gestión de datos y método - Google Patents
Sistema de gestión de datos y método Download PDFInfo
- Publication number
- ES2692209T3 ES2692209T3 ES07801979.1T ES07801979T ES2692209T3 ES 2692209 T3 ES2692209 T3 ES 2692209T3 ES 07801979 T ES07801979 T ES 07801979T ES 2692209 T3 ES2692209 T3 ES 2692209T3
- Authority
- ES
- Spain
- Prior art keywords
- data
- volatile memory
- memory
- data record
- section
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90348—Query processing by searching ordered data, e.g. alpha-numerically ordered data
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H40/00—ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices
- G16H40/60—ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices
- G16H40/63—ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices for local operation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Measuring And Recording Apparatus For Diagnosis (AREA)
- Infusion, Injection, And Reservoir Apparatuses (AREA)
Abstract
Un sistema de gestión de datos que comprende: - una primera sección de memoria no volátil (12) dividida en una pluralidad de ubicaciones de memoria dispuestas secuencialmente, cada una identificada por una dirección (14) y que incluye una primera ubicación de memoria en un extremo de la primera sección de memoria no volátil (12) y la última ubicación de memoria en el extremo opuesto de la misma, - una sección de memoria volátil (32), y - un controlador de almacenamiento (228) conectado operativamente a la primera sección de memoria no volátil (12) y a la sección de memoria volátil (32) y adaptado para - recibir una pluralidad de registros de datos (10) que incluyen registros de datos de al menos dos tipos de categorías diferentes, en donde cada registro de datos (10) comprende un valor de datos (16), una indicación (20) del tipo de categoría del registro de datos (10), y un sello de tiempo (21) que incluye una información de tiempo, - determinar el tipo de categoría de cada registro de datos recibidos (10) sobre la base de la indicación (20) del tipo de categoría del registro de datos respectivo (10), - almacenar secuencialmente uno por uno los registros de datos (10) en el orden en que se reciben en la primera sección de memoria no volátil (12) almacenando cada registro de datos (10) en una ubicación de memoria indicada por un puntero de escritura (26) que mantiene el controlador de almacenamiento (228) y que se incrementa después de cada almacenamiento de un registro de datos (10) para - indicar, en la dirección desde la primera ubicación de memoria hacia la última ubicación de memoria, la siguiente ubicación de memoria o - en caso de que el último registro de datos se haya almacenado en la última ubicación de la memoria, la primera ubicación de la memoria, de modo que cada ubicación de memoria que almacena un registro de datos (10) almacena exactamente un registro de datos (10), - para cada registro de datos recibidos (10) agregue un nuevo nodo (34) asociado con el registro de datos respectivo (10) a una lista enlazada que está almacenada en la sección de memoria volátil (32) para el tipo de categoría determinado del registro de datos respectivo (10), de modo que al almacenar todos los registros de datos recibidos (10) hay una lista vinculada separada almacenada en la sección de memoria volátil (32) para cada tipo de categoría incluida en la pluralidad de registros de datos (10), donde para cada una de dichas listas vinculadas los nodos (34) solo están asociados con registros de datos (10) del mismo tipo de categoría y la secuencia de los nodos (34) es tal que los registros de datos asociados (10) se clasifican temporalmente según su marca de tiempo (21), en donde el sistema de gestión de datos se incluye en un medidor de glucosa (200) de un sistema de glucosa en sangre. El sistema de glucosa en sangre que comprende un medio de detección de glucosa en sangre incorporado en el medidor de glucosa o en un dispositivo separado, en el que el medio de detección de glucosa en sangre incluye un transmisor y está adaptado para transmitir por medio de los registros de datos del transmisor (10) incluyendo un valor de dato (16) característico de la concentración de glucosa en sangre determinada durante una medición y un sello de tiempo (21) que indica un tiempo en el que se realizó esta medición al controlador de almacenamiento (228) para el almacenamiento.
Description
5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Sistema de gestion de datos y metodo
[0001] La presente invencion se refiere a un sistema gestion de datos y un metodo para almacenar una pluralidad de registros de datos en una seccion de memoria no volatil.
[0002] En muchos campos de la tecnologfa, se utilizan sistemas que incluyen uno o mas dispositivos que periodicamente o continuamente generan datos durante su funcionamiento, como por ejemplo, datos relativos a las condiciones de funcionamiento de los dispositivos o los datos relacionados con varias medidas de los valores ffsicos realizadas por los dispositivos. A menudo, es deseable o necesario almacenar centralmente tales datos de una manera no volatil, de modo que posteriormente se pueda recuperar un historial del funcionamiento del sistema respectivo, por ejemplo, En la forma de uno o mas informes. Para este proposito, los datos se almacenan junto con una indicacion de su relacion cronologica que permite su recuperacion en un orden cronologico. En muchos sistemas de este tipo, se generan datos de mas de un tipo de categona, tales como, por ejemplo, diferentes parametros operativos y/o diversos parametros detectados o medidos, por ejemplo, velocidades de flujo, concentraciones o presiones detectadas. En general, los datos deben almacenarse para que se puedan generar informes separados para los diferentes tipos de categonas.
[0003] Un ejemplo de tales sistemas son los sistemas de glucosa de sangre utilizados para la terapia de la diabetes y el alivio de un paciente de diabetes del uso diario de jeringuillas o plumas de insulina. Los sistemas de glucosa en sangre habitualmente comprenden un medidor de glucosa en sangre operado por batena que incluye una unidad de control y uno o mas dispositivos medicos perifericos adicionales separados, tales como, por ejemplo, una bomba de insulina operada con batena. En funcionamiento, el medidor de glucosa en sangre se usa para determinar la concentracion de glucosa en sangre, por ejemplo, al recibir muestras de sangre a traves de tiras de prueba basadas en enzimas y calcular el valor de glucosa en sangre en funcion de la reaccion enzimatica. Ventajosamente, el sistema de glucosa en sangre esta configurado de manera que el valor medido se administra automaticamente a la unidad de control. La bomba de insulina permite el suministro de insulina de manera fisiologica y puede controlarse para seguir protocolos estandar o modificados individualmente para proporcionar al paciente un mejor control glucemico en el transcurso del dfa en comparacion con la terapia manual. Se puede construir como un dispositivo implantable para la disposicion subcutanea o se puede construir como un dispositivo externo que se lleva en el cuerpo del paciente.
[0004] El funcionamiento de la bomba de insulina y de otros dispositivos puede ser controlado y modificado por medio de la unidad de control. Por ejemplo, el suministro de cantidades adecuadas de insulina por la bomba de insulina requiere que el paciente determine con frecuencia su nivel de glucosa en sangre y que este valor se proporcione a la unidad de control, que luego calcula una modificacion adecuada del protocolo de administracion de insulina predeterminado o actualmente en uso, es decir, la dosis y el momento, y posteriormente se comunica con la bomba de insulina para ajustar su funcionamiento en consecuencia. A este respecto, puede ser necesario utilizar la unidad de control cada vez que el paciente coma para indicar a la bomba que administre una cantidad espedfica de insulina para cubrir esa comida. Recientemente, se ha realizado un control de bucle mas o menos cerrado en el que la unidad de control modifica el protocolo de administracion de insulina de forma automatica.
[0005] En vista de la permanencia de la terapia y en vista del hecho de que el paciente no se encuentra bajo observacion medica permanente, existe la necesidad de almacenar los datos operativos y funcionales que permiten el seguimiento de la operacion del sistema de glucosa en sangre y del efecto del protocolo de administracion de insulina proporcionado por el sistema. Por lo tanto, el medidor de glucosa esta tfpicamente adaptado para almacenar de manera persistente los datos generados por el propio medidor o los dispositivos medicos perifericos y tener diferentes tipos de categona, como por ejemplo, una medicion de glucosa episodica, un comentario sobre la medicion de glucosa episodica. una cantidad de bolo de insulina, una tasa de bolo de insulina y/o una cantidad de insulina que permanece en el deposito de la bomba, en una memoria no volatil. Por ejemplo, al almacenar periodicamente datos de la bomba de insulina y datos de concentracion de glucosa durante varios puntos en el tiempo, es ventajosamente posible realizar una comparacion contemporanea entre los efectos de la terapia con insulina sobre la concentracion de glucosa resultante y verificar de ese modo la eficacia de los ajustes del sistema actual.
[0006] Por lo tanto, varios sistemas son conocidos en el campo medico, asf como en otros campos de la tecnologfa, en los que los datos del sistema de varios tipos se almacenan en una memoria no volatil junto con una indicacion de un orden cronologico. Un sistema ejemplar de este tipo es el sistema de procesamiento de sangre descrito en el documento US 6.542.910. Esta referencia describe un sistema de procesamiento de sangre que esta adaptado para almacenar datos de estado acerca de las condiciones operativas y funcionales del procedimiento de procesamiento, en donde los datos de estado pueden incluir velocidades de flujo de fluido, presiones detectadas y volumenes de fluido medidos. Estos datos se generan periodicamente como datos de fecha y hora y se almacenan en su orden cronologico en una memoria flash. En la memoria flash, se reservan distintas areas de almacenamiento de tamano predeterminado, cada una de las cuales se usa para almacenar datos de un solo tipo, como datos de eventos o datos de condiciones del sistema. Algunas de las areas de almacenamiento se pueden utilizar para formar un
5
10
15
20
25
30
35
40
45
50
55
60
65
archivo de anillo en el que los datos mas antiguos siempre se sobrescriben una vez que el area de almacenamiento esta llena.
[0007] Si bien este sistema de la tecnica anterior permite el almacenamiento persistente de diversos tipos de datos junto con la posibilidad de generar informes, tiene varias desventajas. Por ejemplo, dado que no se puede predecir la frecuencia con la que se generan los diversos tipos de datos, la situacion ocurre regularmente que el area de almacenamiento para un tipo de categona particular este llena y deben sobrescribirse los datos viejos, mientras que otras areas de almacenamiento no estan todavfa llenas. Por lo tanto, los datos se pierden aunque todavfa queda capacidad de memoria. Ademas, no es posible agregar capacidad de almacenamiento para nuevos tipos de datos de categona.
[0008] La memoria flash es un tipo de memoria no volatil - es decir, la memoria que, a diferencia de la memoria volatil, no necesita energfa para mantener la informacion almacenada en la misma - que se utiliza regularmente para almacenamiento de datos persistentes en los sistemas del tipo anterior. Sin embargo, cuando se usa memoria flash, las caractensticas espedficas de este tipo de memoria deben tenerse en cuenta. La memoria flash tiene las limitaciones de que las modificaciones del nivel de bits solo son posibles en una direccion desde un estado borrado a un estado programado (es decir, de "0" a "1" o de "1" a "0", pero no a ambos), y que cada operacion de borrado siempre borra un area relativamente grande que comprende una pluralidad de bytes. Por lo tanto, aunque es posible escribir y leer bits y bytes de datos de manera aleatoria, la escritura de datos en un area particular de la memoria flash generalmente requiere que esta area este en su estado borrado, es decir, que se realizo una operacion de borrado eso no solo borro el area requerida para almacenar los datos, sino tambien areas adyacentes.
[0009] El documento US 2005/154271 A1 divulga un sistema para monitorizar glucosa en un servidor. Este sistema incluye un sensor continuo de glucosa que produce un flujo de datos que indica la concentracion de glucosa de un anfitrion y un receptor integrado que recibe el flujo de datos del sensor de glucosa continuo y calibra el flujo de datos usando un monitor de glucosa.
[0010] El objeto de la presente invencion es proporcionar un sistema y un metodo para almacenar datos de diversos tipos de categonas en una memoria no volatil que proporcionan un uso optimizado de la memoria no volatil y proporcionan flexibilidad, con respecto a los tipos de categona, y que remedien las desventajas encontradas en la tecnica anterior.
[0011] Este objetivo se consigue mediante un sistema de gestion de datos con las caractensticas de la reivindicacion 1 y mediante un metodo de gestion de datos con las caractensticas de la reivindicacion 4. Otras formas de realizacion preferidas de la invencion son el objeto de las reivindicaciones dependientes respectivas.
[0012] El sistema de gestion de datos de la presente invencion comprende una primera seccion de memoria no volatil que se divide en una pluralidad de posiciones de memoria dispuestas secuencialmente, preferiblemente de igual tamano. Cada una de estas ubicaciones de memoria se identifica mediante una direccion a traves de la cual se puede acceder. La direccion puede ser una direccion ffsica o una direccion logica, como un mdice de la ubicacion de la memoria dentro de la seccion. La pluralidad de ubicaciones de memoria incluye una primera ubicacion de memoria en un extremo de la primera seccion de memoria no volatil y una ultima ubicacion de memoria en el extremo opuesto de la misma.
[0013] El sistema de gestion de datos adicional comprende una seccion de memoria volatil y un controlador de almacenamiento que esta conectado operativamente a la primera seccion de memoria no volatil y la seccion de memoria volatil. El controlador de almacenamiento, que puede comprender o proporcionarse en forma de un microprocesador adecuadamente programado, esta adaptado para recibir una pluralidad de registros de datos que incluyen registros de datos de al menos dos tipos de categonas diferentes, en donde cada registro de datos comprende un valor de datos, una indicacion del tipo de categona del registro de datos, y un sello de tiempo que incluye informacion de tiempo.
[0014] Estos registros de datos pueden ser generados por uno o mas dispositivos o ser generados a partir de datos proporcionados por uno o mas dispositivos y pueden constituir los datos operativos y/o funcionales de un sistema global del cual forma parte el sistema de gestion de datos. Tales datos operacionales y datos funcionales pueden ser, por ejemplo, datos correspondientes a mediciones de condiciones ffsicas que caracterizan el estado de los componentes del sistema o un proceso llevado a cabo por el sistema global. Por ejemplo, algunos registros de datos pueden indicar el nivel de llenado de un lfquido almacenado en un dispositivo particular, como por ejemplo, el nivel de llenado de insulina dentro de una bomba de insulina o la concentracion de una sustancia particular en un lfquido de proceso, como por ejemplo, la concentracion de glucosa en la sangre de un paciente. La marca de tiempo indica una fecha y una hora asociadas con cada registro de datos, y puede, por ejemplo, indicar la fecha y la hora en que se realizo la medicion. El tipo de categona indica el tipo de valor de datos incluido en el registro de datos, por ejemplo, nivel de llenado de un lfquido en el dispositivo A, nivel de llenado de un lfquido en el dispositivo B, concentracion medida por el dispositivo C y concentracion medida por el dispositivo D.
[0015] El controlador de almacenamiento esta adaptado ademas para determinar el tipo de categona de cada
5
10
15
20
25
30
35
40
45
50
55
60
65
registro de datos recibido sobre la base de la indicacion de la categona de tipo del respectivo registro de datos, y para almacenar secuencialmente uno a uno los registros de datos en el orden en que se reciben, sin importar su tipo de categona. En la primera seccion de memoria no volatil, almacenando cada registro de datos en una ubicacion de memoria indicada por un puntero de escritura que es mantenido por el controlador de almacenamiento y que se incrementa despues de cada almacenamiento de un registro de datos. En este contexto, incrementar significa que despues de almacenar un registro de datos, el puntero de escritura se manipula para indicar, en la direccion desde la primera ubicacion de la memoria hacia la ultima ubicacion de la memoria, la siguiente ubicacion de la memoria o, en el caso en que se almaceno el ultimo registro de datos en la ultima ubicacion de la memoria, la primera ubicacion de la memoria. En otras palabras, con respecto a la operacion de escritura, el controlador de almacenamiento esta adaptado para usar la primera seccion de memoria no volatil a modo de una memoria intermedia circular. El puntero de escritura puede proporcionarse en forma de un area de almacenamiento en una memoria, en cuyo area de almacenamiento se almacena la direccion o un valor caractenstico de la direccion de una ubicacion de memoria de la primera seccion de memoria no volatil, en donde en funcionamiento la direccion o el valor se actualiza por el controlador de almacenamiento despues del almacenamiento de cualquier registro de datos.
[0016] De esta manera, cada ubicacion de memoria que almacena un registro de datos almacena exactamente un registro de datos, y en caso de la pluralidad de registros de datos se almacenan sin edicion intermedia o borrado de registros de datos descrito mas adelante y sin llegar al extremo de la primera seccion de memoria no volatil, los registros de datos se almacenan en el orden en que se reciben y sin tener en cuenta su tipo de categona y su marca de tiempo en las ubicaciones de memoria sucesivas de la primera seccion de memoria no volatil.
[0017] El controlador de almacenamiento esta adaptado ademas para anadir para cada registro de datos recibido de un nuevo nodo asociado con el respectivo registro de datos a una lista enlazada que se almacena en la seccion de memoria volatil para el tipo de categona determinado del respectivo registro de datos, de modo que luego de almacenar todos los registros de datos recibidos hay una lista separada enlazada en la seccion de memoria volatil para cada tipo de categona incluido en la pluralidad de registros de datos, y tal que para cada lista vinculada los nodos solo estan asociados con registros de datos del mismo tipo de categona y la secuencia de los nodos es tal que los registros de datos asociados se ordenan temporalmente segun su marca de tiempo. Cada nodo constituye un conjunto de informacion perteneciente a un registro de datos particular almacenado en la primera seccion de memoria no volatil. Todos los nodos de una lista vinculada particular estan asociados con registros de datos de un tipo de categona comun y, en el caso preferido de una lista doblemente enlazada, comprenden un puntero al nodo anterior y posterior, es decir, un mdice o direccion del nodo respectivo dentro de la seccion de memoria volatil.
[0018] Este sistema de gestion de datos tiene la ventaja de que es facilmente posible almacenar registros de datos de los diferentes tipos de categonas en cada tipo de memoria no volatil, al tiempo que garantiza que los registros de datos solo se sobrescriben si esta ocupada toda la primera seccion de memoria volatil (es decir, la cantidad maxima de registros de datos puede almacenarse independientemente del tipo de registro) y pueden generarse informes cronologicos separados para cada tipo de categona. Al utilizar la lista vinculada para un tipo de categona de interes, los registros de datos de este tipo de categona pueden recuperarse selectivamente de la primera seccion de memoria no volatil ordenada segun su marca de tiempo. Dado que el numero de nodos de cada una de las diferentes listas enlazadas es generalmente mucho mas pequeno que el numero de registros de datos almacenados en la primera seccion de memoria no volatil, la insercion de un nodo en una lista enlazada es posible rapidamente. El sistema de gestion de datos es particularmente ventajoso en sistemas en los que los dispositivos entregan los registros de datos tipo por tipo y no en orden cronologico general, de modo que los registros flash no se ordenan cronologicamente, pero los registros de un tipo particular se ordenan cronologicamente.
[0019] Ademas, el sistema es capaz de manejar datos que tienen nuevos y desconocidos tipos de categonas al generar automaticamente una nueva lista vinculada para cada nuevo tipo de categona. Por ejemplo, el controlador de almacenamiento puede adaptarse para determinar para cada registro de datos que se almacenara en la primera seccion de memoria no volatil si ya hay una lista vinculada almacenada en la seccion de memoria volatil para el tipo de categona determinado del registro de datos respectivo, y si no existe tal lista vinculada para asignar una nueva lista enlazada y para agregar el nuevo nodo asociado con el registro de datos respectivo a la lista enlazada nueva.
[0020] Para un uso particularmente eficaz de la seccion de memoria volatil, la seccion de memoria volatil puede comprender una pluralidad de ubicaciones de memoria dispuestas secuencialmente, cada una vinculada por una relacion predeterminada almacenada en el controlador de almacenamiento a exactamente una posicion de memoria de la primera seccion de memoria no volatil, y el controlador de almacenamiento puede adaptarse para efectuar la adicion de un nuevo nodo a una lista vinculada almacenando el nodo en la ubicacion de memoria de la seccion de memoria volatil que esta vinculada por la relacion predeterminada a la ubicacion de memoria de la primera seccion de memoria no volatil en la que se almacena el registro de datos asociado con el nodo respectivo. En otras palabras, los nodos o conjuntos de informacion no incluyen una indicacion de una ubicacion de memoria de la primera seccion de memoria no volatil, cuya indicacion se almacena como un valor dentro del nodo o conjunto de informacion, pero las posiciones de almacenamiento relativas de los nodos o conjuntos de informacion dentro de la seccion de memoria volatil proporcionan tales indicaciones. De esta manera, las listas vinculadas dentro de la seccion de memoria volatil se cruzan ffsicamente entre sf, pero son logicamente distintas, y las ubicaciones de memoria de la seccion de memoria volatil no estan ocupadas por nodos no asociados con los registros de datos almacenados
5
10
15
20
25
30
35
40
45
50
55
60
65
actualmente.
[0021] Para proporcionar la posibilidad de suprimir los registros de datos, el controlador de almacenamiento adicional puede estar adaptado para recibir una senal de entrada que indica que un registro de datos almacenado en la primera seccion de memoria no volatil se va a eliminar, y para eliminar el registro de datos de la primera seccion de memoria no volatil manipulando al menos un bit dentro de la ubicacion de la memoria de la primera seccion de memoria no volatil en cuya ubicacion de memoria se almacena el registro de datos para indicar que la ubicacion de memoria no incluye un registro de datos valido y, al eliminar el nodo asociado con el registro de datos de la lista vinculada correspondiente almacenada en la seccion de memoria volatil. Por lo tanto, los registros de datos no se borran ffsicamente de inmediato y todavfa se pueden leer a partir de los contenidos de la memoria no volatil bruta, por ejemplo, los contenidos de la memoria flash en bruto. Sin embargo, ya no existe un nodo de una lista vinculada asociada con el registro de datos eliminado, por lo que, por ejemplo, ya no se considera al generar informes por medio de las listas vinculadas.
[0022] De manera similar, para proporcionar la posibilidad de cambiar los registros de datos, el controlador de almacenamiento puede ser adaptado adicionalmente para recibir una senal de entrada que indica que y de que manera se ha de cambiar un registro de datos almacenado en la primera seccion de memoria volatil y almacenar la version modificada del registro de datos en la ubicacion de la memoria de la primera seccion de memoria no volatil actualmente indicada por el puntero de escritura, manipular al menos un bit dentro de la ubicacion de memoria de la primera seccion de memoria no volatil en que ubicacion de memoria esta almacenada la version original del registro de datos para indicar que la ubicacion de memoria no incluye un registro de datos valido, y cambiar el nodo asociado con el registro de datos para reflejar el cambio de la ubicacion de memoria en la primera seccion de memoria no volatil en cuya ubicacion de la memoria se almacena el registro de datos. En otras palabras, el contenido de la ubicacion de memoria dentro del cual se almacena el registro de datos que se va a modificar se manipula como se describe para el caso de eliminar un registro de datos, y la version modificada del registro de datos se almacena en la ubicacion de memoria de la primera seccion de memoria no volatil actualmente indicada por el puntero de escritura. Posteriormente, el puntero de escritura se incrementa como se describio anteriormente, es decir, la version modificada del registro de datos se trata de la misma manera que los otros registros de datos. Finalmente, el nodo asociado con la version original del registro de datos se cambia para asociarse con la version modificada del registro de datos. Cabe senalar que este enfoque es particularmente adecuado y ventajoso en el caso de que la primera seccion de memoria no volatil es una memoria flash, ya que la memoria flash no permite la edicion de la informacion almacenada. Ademas, debe tenerse en cuenta que, debido a este enfoque, se destruye el orden cronologico de los registros de datos dentro de la primera seccion de memoria no volatil, cuyo orden podna haber estado presente antes de la operacion.
[0023] La primera seccion de memoria no volatil puede ser del tipo que se puede borrar, pero no sobre-escribible y que tiene una pluralidad de sectores de memoria que constituyen la unidad mas pequena que puede borrarse, y tienen que borrarse antes de reescribirse, en donde cada sector de memoria comprende una pluralidad de ubicaciones de memoria. En este caso, es ventajoso si el controlador de almacenamiento se adapta adicionalmente para determinar antes de efectuar el almacenamiento de cualquier registro de datos si el puntero de escritura indica la primera ubicacion de memoria de un sector de memoria y si esta ubicacion de memoria esta ocupada, y, si el puntero de escritura indica la primera ubicacion de memoria de un sector de memoria y si esta ubicacion de memoria esta ocupada, para borrar este sector de memoria antes de almacenar el registro de datos. En una realizacion preferida, la primera seccion de memoria no volatil es memoria flash.
[0024] El controlador de almacenamiento puede estar adaptado ademas para mantener un puntero de ocupacion que indica la ubicacion de memoria entre las posiciones de memoria ocupadas de la primera seccion de memoria no volatil para la que ha transcurrido el penodo de tiempo mas largo ya que el almacenamiento del correspondiente registro de datos fue efectuado. En este contexto, las ubicaciones de memoria ocupadas son ubicaciones de memoria en las que se almacena un registro de datos, independientemente de si es valido o no. Para mantener el puntero de ocupacion, el controlador de almacenamiento esta adaptado para actualizar el puntero de ocupacion cada vez que se realiza una operacion de borrado en la primera seccion de memoria no volatil. El puntero de ocupacion puede utilizarse para determinar cuando deben borrarse las ubicaciones de memoria antes de escribir un nuevo registro de datos. Este es el caso cuando el puntero de escritura y el puntero de ocupacion indican la misma ubicacion de memoria.
[0025] El sistema de gestion de datos puede comprender una segunda seccion de memoria no volatil que esta operativamente conectado al controlador de almacenamiento, y el controlador de almacenamiento puede estar ademas adaptado para mantener el puntero de escritura dentro de la segunda seccion de memoria no volatil, es decir, la informacion del puntero de escritura se almacena dentro de la segunda seccion de memoria no volatil. En caso de que se mantenga un puntero de ocupacion, el controlador de almacenamiento puede adaptarse ademas para mantener el puntero de ocupacion dentro de la segunda seccion de memoria no volatil, es decir, la informacion del puntero de ocupacion se almacena dentro de la segunda seccion de memoria no volatil. La segunda seccion de memoria no volatil puede ser una memoria de solo lectura programable y borrable electricamente.
[0026] El controlador de almacenamiento adicional puede ser adaptado para mantener dentro de la seccion de
5
10
15
20
25
30
35
40
45
50
55
60
65
memoria volatil para cada lista enlazada almacenada en la misma un primer puntero que indica el nodo que esta asociado con el registro de datos entre los registros de datos asociados con la lista enlazada respectiva que tiene el tiempo el sello mas temprano, un ultimo puntero que indica el nodo que esta asociado con el registro de datos entre los registros de datos asociados con la respectiva lista vinculada que tiene la marca de tiempo mas reciente, y/o un ultimo puntero insertado que indica el nodo que esta asociado con el registro de datos entre los registros de datos asociados con la lista enlazada respectiva que se almaceno mas recientemente en la primera seccion de memoria no volatil. Estos punteros pueden almacenarse dentro de la seccion de memoria volatil y servir para facilitar la gestion de los registros de datos y la generacion de informes.
[0027] El sistema de gestion de datos puede comprender un medio de registro de datos que esta conectado operativamente al controlador de almacenamiento y al menos a un dispositivo que genera datos estampados de tiempo durante el funcionamiento del sistema. Los medios de registro de datos pueden adaptarse para recibir registros de datos de al menos un dispositivo y para comunicar los registros de datos al controlador de almacenamiento para su almacenamiento. En otras palabras, los medios de registro de datos pueden cumplir simplemente la funcion de reenviar registros de datos generados por al menos un dispositivo al controlador de almacenamiento. Ademas o alternativamente, los medios de registro de datos pueden adaptarse para recibir datos de al menos un dispositivo, para generar registros de datos sobre la base de los datos recibidos, y para comunicar los registros de datos al controlador de almacenamiento para su almacenamiento. En este caso, los datos son entregados por al menos un dispositivo, por ejemplo, en un formato crudo, y los registros de datos solo son generados por los medios de registro de datos. En cualquier caso, los registros de datos comunicados por el medio de registro de datos al controlador de almacenamiento son la pluralidad de registros de datos descritos anteriormente. En consecuencia, al menos un dispositivo puede ser, por ejemplo, un medio de deteccion dentro de un medidor de glucosa de un sistema de glucosa en sangre o un dispositivo medico periferico de dicho sistema, por ejemplo, una bomba de insulina.
[0028] En una realizacion preferida, el sistema de gestion de datos esta incluido en un medidor de glucosa de un sistema de glucosa en sangre, que comprende un medio sensor de glucosa en la sangre incorporado en el medidor de glucosa o en un dispositivo separado. El sistema de glucosa en sangre preferiblemente tambien comprende una bomba de insulina como un dispositivo externo. Los medios de deteccion de glucosa en sangre y la bomba de insulina opcional incluyen un transmisor y estan adaptados para transmitirse por medio de los registros de datos del transmisor al controlador de almacenamiento para su almacenamiento. Estos registros de datos son, o en el caso de dispositivos externos adicionales, parte de la pluralidad de registros de datos descritos anteriormente. Los registros de datos transmitidos por los medios de deteccion de glucosa en sangre incluyen un valor de datos caractenstico de la concentracion de glucosa en sangre determinada durante una medicion y un sello de tiempo que indica un tiempo en el que se realizo esta medicion. Los medios de deteccion de glucosa en sangre y la bomba de insulina se pueden conectar al controlador de almacenamiento mediante una interfaz cableada o inalambrica. En el caso de que el sistema de gestion de datos forme parte de un sistema de glucosa en sangre, el tipo de categona puede ser un valor elegido del grupo que consiste en una concentracion de glucosa episodica, una concentracion continua de glucosa, una tasa de bombeo basal y una cantidad de bolo. El sistema proporciona una visualizacion particularmente rapida de los registros en el historial de la bomba.
[0029] La seccion de memoria volatil es preferiblemente una memoria de acceso aleatorio.
[0030] En una version preferida, el controlador de almacenamiento incluye un microprocesador que esta programado para afectar automaticamente una, mas o todas las operaciones descritas anteriormente del sistema de gestion de datos a fin de efectuar el almacenamiento de la pluralidad de registros de datos.
[0031] Un metodo de gestion de datos correspondiente para almacenar una pluralidad de registros de datos, incluyendo registros de datos de al menos dos tipos de categonas diferentes, en donde cada registro de datos comprende un valor de datos, una indicacion de la categona de tipo de registro de datos, y un sello de tiempo incluyendo una informacion de tiempo, en una primera seccion de memoria no volatil dividida en una pluralidad de ubicaciones de memoria dispuestas secuencialmente, preferiblemente de igual tamano, cada una identificada por una direccion e incluyendo una primera ubicacion de memoria en un extremo de la primera seccion de memoria volatil y una ultima ubicacion de memoria en el extremo opuesto de la primera seccion de memoria no volatil, comprende los siguientes pasos: recibir la pluralidad de registros de datos, determinar el tipo de categona de cada registro de datos recibidos sobre la base de la indicacion del tipo de categona del registro de datos respectivo, almacenando secuencialmente los registros de datos uno por uno en el orden en que se recibieron en la primera seccion de memoria no volatil mediante el almacenamiento de cada registro de datos en una ubicacion de memoria indicada por un puntero de escritura que se incrementa despues de cada almacenamiento de un registro de datos para indicar, en la direccion desde la primera ubicacion de memoria hacia la ultima ubicacion de memoria, la siguiente ubicacion de memoria o, en el caso en que el ultimo registro de datos se almaceno en la ultima ubicacion de memoria, la primera ubicacion de memoria, de modo que cada ubicacion de memoria que almacena un registro de datos almacena exactamente un registro de datos, y para cada registro de datos recibido, se agrega un nuevo nodo asociado con el registro de datos respectivo a una lista enlazada que esta almacenada en una seccion de memoria volatil para el tipo de categona determinado del registro de datos respectivo, de modo que al almacenar todos los registros de datos recibidos hay una lista vinculada separada almacenada en la seccion de memoria volatil
5
10
15
20
25
30
35
40
45
50
55
60
65
para cada tipo de categona incluida en la pluralidad de los registros de datos, donde para cada una de tales listas vinculadas, los nodos solo estan asociados con registros de datos del mismo tipo de categona y la secuencia de los nodos es tal que los registros de datos asociados se ordenan temporalmente segun su marca de tiempo.
[0032] El metodo puede comprender ademas los pasos de determinar para cada registro de datos que se almacena en la primera seccion de memoria no volatil si ya hay una lista enlazada almacenada en la seccion de memoria volatil para el tipo de categona determinada del respectivo registro de datos, y si no hay tal lista enlazada, se asigna una nueva lista vinculada y se agrega el nuevo nodo asociado con el registro de datos respectivo a la lista enlazada nueva.
[0033] La seccion de memoria volatil puede comprender una pluralidad de posiciones de memoria dispuestas secuencialmente, cada una vinculada por una relacion predeterminada a exactamente una posicion de memoria de la primera seccion de memoria no volatil, y el metodo puede comprender ademas las etapas de anadir un nuevo nodo a una lista vinculada mediante el almacenamiento del nodo en la ubicacion de memoria de la seccion de memoria volatil que esta unida por la relacion predeterminada a la ubicacion de memoria de la primera seccion de memoria no volatil en la que se almacena el registro de datos asociado con el nodo respectivo.
[0034] El metodo puede comprender ademas las etapas de recibir una senal de entrada que indica que se va a eliminar un registro de datos almacenado en la primera seccion de memoria no volatil, y eliminar el registro de datos de la primera seccion de memoria no volatil mediante la manipulacion en al menos un bit dentro de la ubicacion de la memoria de la primera seccion de memoria no volatil en la que se almacena la memoria almacenada para indicar que la ubicacion de la memoria no incluye un registro de datos valido, y al eliminar el nodo asociado con el registro de datos de la lista vinculada correspondiente almacenada en la seccion de memoria volatil.
[0035] El metodo puede comprender ademas las etapas de recibir una senal de entrada que indica que y en que manera se ha de cambiar un registro de datos almacenado en la primera seccion de memoria no volatil, el almacenamiento de la version modificada del registro de datos en la ubicacion de memoria de la primera seccion de memoria no volatil actualmente indicada por el puntero de escritura, manipulando al menos un bit dentro de la ubicacion de la memoria de la primera seccion de memoria no volatil en la que se almacena la version original del registro de datos con el fin de indicar que la ubicacion de la memoria no incluye un registro de datos valido y cambiando el nodo asociado con el registro de datos para reflejar el cambio de la ubicacion de la memoria en la primera seccion de memoria no volatil en la que se almacena el registro de datos.
[0036] La primera seccion de memoria no volatil puede ser del tipo que es borrable pero no sobre-escribible y tiene una pluralidad de sectores de memoria que constituyen la unidad mas pequena que puede borrarse, y tienen que borrarse antes de reescribirse, en donde cada sector de memoria comprende una pluralidad de las ubicaciones de memoria. En este caso, el metodo puede comprender ademas los pasos de determinar antes de efectuar el almacenamiento de cualquier registro de datos si el puntero de escritura indica la primera ubicacion de memoria de un sector de memoria y si esta posicion de memoria esta ocupada, y si el puntero de escritura indica la primera ubicacion de memoria del sector de memoria y si esta ocupada esta ubicacion de memoria, borrando este sector de memoria antes de almacenar el registro de datos. En una realizacion preferida, la primera seccion de memoria no volatil es memoria flash.
[0037] Ademas, un puntero de ocupacion puede mantenerse al indicar la ubicacion de memoria entre las posiciones de memoria ocupadas de la primera seccion de memoria no volatil para cuyo penodo de tiempo mas largo ha transcurrido el penodo de tiempo mas largo desde que se efectuo el almacenamiento del registro de datos correspondiente, y que se actualiza cada vez que se realiza una operacion de borrado en la primera seccion de memoria no volatil.
[0038] El puntero de escritura puede mantenerse ventajosamente dentro de una segunda seccion de memoria no volatil. Esta segunda seccion de memoria no volatil tambien se puede usar para mantener el puntero de ocupacion. La segunda seccion de memoria no volatil puede ser una memoria de solo lectura programable electricamente borrable.
[0039] Ademas, para cada lista vinculada almacenada dentro de la seccion de memoria volatil, pueden mantenerse dentro de la seccion de memoria volatil un primer puntero que indica el nodo que esta asociado con el registro de datos entre los registros de datos asociados con la lista enlazada respectiva que tiene la marca de tiempo mas temprana, un ultimo puntero que indica el nodo que esta asociado con el registro de datos entre los registros de datos asociados con la respectiva lista vinculada que tiene la marca de tiempo mas reciente, y/o un ultimo puntero insertado que indica el nodo que esta asociado con el registro de datos entre los registros de datos asociados con la respectiva lista vinculada que se almaceno mas recientemente en la primera seccion de memoria no volatil.
[0040] Cada lista vinculada almacenada en la seccion de memoria volatil puede ser una lista doblemente vinculada.
[0041] El metodo puede comprender ademas las etapas de generar la pluralidad de registros de datos en al menos un dispositivo de generacion de datos, la transmision de la pluralidad de registros de datos con al menos un
5
10
15
20
25
30
35
40
45
50
55
60
65
dispositivo de generacion de datos, y la recepcion de la pluralidad de registros de datos para el almacenamiento y/o generar datos correspondientes a la pluralidad de registros de datos en al menos un dispositivo generador de datos, transmitir los datos con al menos un dispositivo generador de datos, recibir los datos, generar la pluralidad de registros de datos sobre la base de los datos recibidos y recibir la pluralidad de registros de datos para el almacenamiento. En particular, los dispositivos pueden ser dispositivos de medicion para realizar diversas mediciones o dispositivos que tienen una funcion de medicion para realizar diversas mediciones. En cualquier caso, la pluralidad de registros de datos se comunican a un componente central para efectuar el almacenamiento central.
[0042] En una realizacion preferida, las etapas del metodo anteriormente descritas son realizadas por los
componentes de un sistema de glucosa en sangre que incluye un medidor de glucosa que comprende un controlador de almacenamiento y un medio sensor de glucosa en la sangre incorporado en el medidor de glucosa o
en un dispositivo separado, en el que los medios de deteccion de glucosa en sangre incluyen un transmisor y el
metodo comprende ademas los siguientes pasos: generar en los medios sensores de glucosa en sangre registros de datos que incluyen un valor de datos caractenstico de la concentracion de glucosa en sangre determinada durante una medicion y una marca de tiempo indicando un momento en el que se realizo esta medicion, y la transmision de los registros de datos como parte de la pluralidad de registros de datos al controlador de almacenamiento para su almacenamiento. El sistema de glucosa en sangre tambien comprende ventajosamente una bomba de insulina que incluye un transmisor, y el metodo comprende ademas los siguientes pasos: generar en los registros de datos de la bomba de insulina un valor de datos caractenstico de un parametro de bomba y un sello de tiempo que se midio el valor del parametro y se transmitieron los registros de datos como parte de la pluralidad de registros de datos al controlador de almacenamiento para su almacenamiento. En el caso de un sistema de glucosa en sangre, el tipo de categona puede ser un valor elegido del grupo que consiste en una concentracion de glucosa episodica, una
concentracion de glucosa continua, una tasa de bombeo basal y una gran cantidad.
[0043] La seccion de memoria volatil es preferiblemente una memoria de acceso aleatorio.
[0044] Preferiblemente, algunas o la totalidad de las etapas del procedimiento anteriores se realizan por medio de un microprocesador o un ordenador programado de manera adecuada.
[0045] El metodo de gestion de datos tiene las mismas ventajas como se describe para el sistema de gestion de datos.
[0046] En lo que sigue, la invencion se explica con mas detalle para una realizacion preferida con referencia a las figuras.
Figura 1 muestra una representacion esquematica de un sistema de glucosa en sangre que incluye un medidor de glucosa que se comunica con una pluralidad de dispositivos medicos perifericos que usan una senal inalambrica.
Figura 2 es una vista en perspectiva del medidor de glucosa para uso en la presente invencion.
Figura 3 es una vista esquematica simplificada que muestra los componentes funcionales del medidor de glucosa de la Figura 2 y una bomba de insulina, siendo ambos capaces de comunicacion inalambrica.
Figura 4 es una vista en planta de una tira de prueba desechable adecuada para su uso con el medidor de glucosa de la Figura 2.
Figura 5 es un diagrama esquematico que muestra una estructura de un sistema de gestion de datos de acuerdo con una realizacion de la presente invencion.
Figura 6 es un diagrama esquematico que muestra una primera seccion semiconductora no volatil del sistema de gestion de datos de la Figura 5.
Figura 7 es un diagrama esquematico que muestra una adicion de un registro de datos en la primera seccion semiconductora no volatil y el posicionamiento de un ultimo puntero (basado en la marca de tiempo mas reciente) y un ultimo puntero insertado (basado en el mas reciente escrito en la memoria).
[0047] En la Figura 1 se muestra esquematicamente un sistema de glucosa en sangre que comprende un medidor de glucosa 200 que se comunica con dispositivos medicos perifericos tales como, por ejemplo, una bomba de insulina 300, monitor de glucosa continuo 400 y un inyector de insulina 500. Tanto el medidor de glucosa 200 como los dispositivos medicos perifericos pueden enviar y/o recibir una senal inalambrica 310 que puede incluir datos o comandos. El medidor de glucosa 200 puede tener la necesidad de almacenar datos centralmente que tengan diferentes tipos de categona, tales como, por ejemplo, una medicion de glucosa episodica y un comentario sobre la medicion de glucosa episodica. Una realizacion ejemplar de un dispositivo de medicion de glucosa que almacena varios tipos de datos de categona es el medidor de glucosa UltraSmart disponible comercialmente de LifeScan, Inc. (Milpitas, California, EE.UU.). Tambien puede existir la necesidad de transferir de forma inalambrica datos para el almacenamiento central desde la bomba de insulina 300, el monitor de glucosa continuo 300 y/o el inyector de
5
10
15
20
25
30
35
40
45
50
55
60
65
insulina 500 al medidor de glucosa 200 donde tales datos pueden incluir, por ejemplo, una cantidad de bolos de insulina, una tasa de bolo de insulina, una cantidad de insulina restante en el deposito y una marca de tiempo. Por ejemplo, almacenar los datos de la bomba de insulina en el medidor de glucosa 200 que tambien tiene datos de concentracion de glucosa almacenados permitina una comparacion contemporanea entre los efectos de la terapia con insulina sobre la concentracion de glucosa resultante.
[0048] La Figura 2 es una vista en perspectiva de un medidor de glucosa 200 para uso en la presente invencion. El medidor de glucosa 200 se puede usar para medir episodicamente la glucosa en sangre y controlar de forma inalambrica la bomba de insulina 300 y/u otro dispositivo o dispositivos medicos perifericos (p. ej., monitor de glucosa continuo 400 o inyector de insulina 500). En una realizacion de esta invencion, el medidor de glucosa 200 puede ser un maestro y la bomba de insulina 300 y/u otro dispositivo o dispositivos medicos perifericos pueden ser esclavos. El medidor de glucosa 200 incluye una carcasa 201, una primera pantalla 202, un boton OK 204, un conector de puerto universal 205, un boton de bajada 206, un boton de retroceso 208, una tapa de puerto 209, un boton de subida 210, un diodo emisor de luz (LED) 212, y un conector de puerto de tira (SPC) 214.
[0049] La Figura 3 es una vista esquematica simplificada que muestra los componentes funcionales del medidor de glucosa 200 y la bomba de insulina 300. El medidor de glucosa 200 incluye los siguientes componentes funcionales tales como una primera pantalla (DIS) 202, unos primeros botones de navegacion (NAV) 216, un primer modulo de radiofrecuencia (RF) 218, un modulo de medicion de glucosa en sangre (BGM) 220, una primera batena (BAT) 222, un puerto de comunicacion por cable (COM) 224, una primera alarma (AL) 226, un primer microprocesador (MP) 228, una parte de memoria (Mem) 230 y un puerto de chip de memoria (McP) 232.
[0050] La primera pantalla 202 puede ser una pantalla de cristal lfquido (LCD) para mostrar informacion textual y grafica a un usuario. Una interfaz de usuario (IU) puede ser un menu accionado por software que se muestra en la primera pantalla 202 que permite al usuario operar el medidor de glucosa 200. Un usuario puede navegar a traves de la IU usando primeros botones de navegacion 216 que incluyen el boton ascendente 210, boton de abajo 206, boton OK 204 y boton de retroceso 208. En una realizacion de esta invencion, la IU permite a un usuario operar la bomba de insulina 300, consultar el estado de la bomba de insulina 300, medir la glucosa episodicamente, y visualizar los datos en la primera pantalla 202 desde el medidor de glucosa 200 y/o bomba de insulina 300 y/u otro(s) dispositivo(s) medico(s) periferico(s) (por ejemplo, el monitor de glucosa continuo 400 o inyector de insulina 500).
[0051] El modulo de medicion de glucosa en sangre 220 puede ser un potenciostato disenado para realizar una medicion electroqmmica episodica de un fluido fisiologico. El modulo de medicion de glucosa en sangre 220 puede aplicar un potencial constante tal como, por ejemplo, aproximadamente +0,4 V entre un electrodo de trabajo y un electrodo de referencia de una tira de prueba desechable. Una tira de prueba desechable 600 que puede ser adecuada para uso en la presente invencion es la tira de prueba One-Touch Ultra que esta disponible comercialmente de LifeScan, Inc. en Milpitas, California, EE.UU., como se muestra en la Figura 4. Se pueden encontrar mas detalles con respecto a la tira de prueba 600 desechable en la Patente de EE.UU. N° 6.733.655. Una parte de contacto electrico 601 de la tira de prueba desechable 600 puede insertarse y conectarse electricamente con el conector de puerto de tira 214. Despues de la insercion, se puede aplicar un fluido fisiologico tal como sangre a una entrada 690 de tira de prueba desechable 600 que causa el inicio de la prueba.
[0052] Una capa de reactivo (no mostrada) en la tira de ensayo desechable 600 puede convertir proporcionalmente un mediador oxidado a un mediador reducido que permite que una corriente se mida por el modulo de medicion de glucosa en sangre 220. Una parte de la corriente puede ser muestreada y convertida matematicamente a la concentracion de glucosa que se muestra en la primera pantalla 202. La capa de reactivo puede incluir productos qmmicos tales como una enzima redox y un mediador cuya selectividad reacciona con la glucosa. Ejemplos de formulaciones de reactivos o tintas adecuadas para uso en la fabricacion de la capa de reactivo se pueden encontrar en las patentes de EE.UU. Nos 5.708.247 y 6.046.051; solicitudes internacionales publicadas WO01/67099 y WO01/73124.
[0053] La bomba de insulina 300 incluye los siguientes componentes funcionales que son una segunda pantalla (DIS) 316, segundos botones de navegacion (NAV) 318, un deposito (RES) 320, un puerto de comunicaciones por infrarrojos (IR) 321, un segundo radio de modulo de frecuencia (RF) 322, una segunda batena (BAT) 324, una segunda alarma (AL) 326, y un segundo microprocesador (MP) 328. En una realizacion de esta invencion, la bomba de insulina 300 y medidor de glucosa 200 pueden comunicarse bidireccionalmente usando una senal inalambrica 310 a traves del primer modulo de RF 218 y el segundo modulo de RF 322. El deposito 320 tfpicamente contiene insulina y puede distribuirse desde la bomba de insulina 300 a traves de un tubo y una aguja que esta unida a un usuario. Los segundos botones de navegacion 318 permiten que un usuario opere y consulte el estado de la bomba de insulina 300.
[0054] En un aspecto, un medidor de glucosa 200 puede necesitar almacenar una gran cantidad de datos tal como, por ejemplo, mas que aproximadamente 20.000 registros de datos. La memoria flash puede usarse para almacenar esta gran cantidad de datos porque tiene varias ventajas, como el tamano compacto (especialmente en comparacion con las unidades de disco magneticas duras), la resistencia a los golpes, el bajo consumo de energfa y un costo
5
10
15
20
25
30
35
40
45
50
55
60
65
relativamente bajo. La parte de memoria 230 puede ser o comprender dicha memoria flash. El medidor de glucosa 200 puede mostrar un informe o grafico basado en estos datos almacenados para informar al usuario sobre su estado general de salud o la efectividad de la terapia con insulina. En la generacion de un informe o grafico, el medidor de glucosa 200 puede tener que consultar y clasificar una gran cantidad de datos que tienen varios tipos de categonas diferentes que pueden causar un retraso indeseable en la generacion de informes o graficos. Este problema de generacion lenta de informes o graficos puede verse exacerbado cuando se utiliza memoria flash porque tiene una velocidad de lectura relativamente baja en comparacion con otras formas de memoria. Por lo tanto, existe la necesidad de utilizar un sistema y un metodo de gestion de datos eficientes para consultar los datos para generar un informe o grafico cuando se utiliza la memoria flash. De lo contrario, puede haber un retraso significativo en generar y/o desplazarse a traves de un informe visualizado en el medidor de glucosa 200 que no es deseable desde el punto de vista del usuario.
[0055] Como una posibilidad para la gestion de datos, la memoria flash puede ser segregada en una pluralidad de areas de almacenamiento discretas de tal manera que cada area de almacenamiento se asigna para un tipo de categona en particular. Cada una de las areas de almacenamiento se asignana a una lista vinculada correspondiente en la RAM (memoria de acceso aleatorio) para mantener el orden cronologico de los registros. Este enfoque tiene la ventaja de proporcionar un acceso facil al mostrar un informe que esta ordenado por tipo de categona y marca de tiempo. Ademas, este enfoque permite que los registros ocupen diferentes tamanos en la memoria flash.
[0056] La desventaja principal de predefinir la asignacion de tamano para cada tipo de categona es que resulta engorrosa si hay una gran cantidad de tipos de categona en relacion con el tamano de la memoria flash. Ademas, es diffcil predecir una frecuencia de ocurrencia para un tipo de categona particular. Por ejemplo, un usuario puede tener la necesidad de almacenar principalmente datos episodicos de medicion de glucosa durante un mes, pero luego tiene que almacenar principalmente datos de bolos de insulina. Si, por ejemplo, el glucometro solo asignara el 10% de su memoria flash a datos de medicion episodica de glucosa y el 10% a datos de insulina en bolo, entonces el usuario solo podna usar una fraccion relativamente pequena de la memoria flash total que sena ineficiente. Una vez que un tipo de categona particular haya rellenado su asignacion de memoria, esto provocana la necesidad de eliminar un sector de esa area de almacenamiento particular para dejar espacio para los registros subsiguientes aunque toda la memoria flash aun no este llena. Como resultado, esto evitana el uso completo de toda la memoria flash disponible antes de tener que eliminar un sector. Tenga en cuenta que los datos guardados en la memoria flash no se pueden sobrescribir. Cuando la memoria flash esta llena, se debe borrar todo un sector antes de volver a escribir en ese sector. Debido a las limitaciones de la memoria flash, un sector contendra mas de un registro, y en esta invencion, puede ser de aproximadamente 250 registros.
[0057] En otro esquema de gestion de datos que esta en conformidad con la presente invencion, los datos se almacenan en serie en toda la capacidad de la memoria flash independiente del tipo de categona. Esto garantiza que toda la memoria flash se llene antes de tener que eliminar un sector de la memoria flash, independientemente de la distribucion de frecuencia de los tipos de categona. Por lo tanto, los registros de datos deben almacenarse en memoria flash uno despues de otro, ya que se crean independientemente de su tipo de categona. Sin embargo, este escenario tiene las desventajas de que crear un informe puede ser un proceso lento. Por ejemplo, si toda la memoria flash esta llena, entonces consultar los registros de datos para un tipo de categona particular y su marca de tiempo puede tomar una cantidad de tiempo significativa (por ejemplo, varios segundos) porque en el peor de los casos (p.ej. 20.000) cada registro puede tener que ser consultado para ubicar un registro particular.
[0058] En una realizacion de esta invencion como se muestra en la Figura 5, el sistema de gestion de datos 100 incluye tres tipos de memoria que son una primera seccion de memoria no volatil 12, una segunda seccion de memoria no volatil 22 y una seccion de memoria volatil 32. Estas tres secciones de memoria 12, 22, 32 pueden ser parte de la parte de memoria 230 del medidor de glucosa 200. El sistema de gestion de datos 100 se puede usar para almacenar una pluralidad de registros de datos 10 y generacion de informes que incluyen un subconjunto consultado de la pluralidad de registros de datos 10. Se puede usar un registro de datos para almacenar datos sobre un evento. El registro de datos puede almacenarse en una parte de la primera seccion 12 semiconductora no volatil de manera que cada registro de datos tenga el mismo tamano. Como se describira adicionalmente a continuacion, los tres tipos de memoria implementados en el medidor de glucosa 200 acoplado con un metodo impulsado por software permitiran un sistema eficiente de administracion de memoria flash para una generacion de informes rapida consultada a partir de un gran conjunto de registros de datos.
[0059] La Figura 6 es una representacion esquematica expandida de la primera seccion 12 de memoria no volatil que muestra una pluralidad de registros de datos 10 almacenados en la primera seccion 12 semiconductora no volatil. Cada registro de datos 10 tiene una parte reservada para almacenar una categona tipo 20, un registro de datos 16 y un sello temporal 21. El tipo de categona 20 puede ser un tipo de datos tal como, por ejemplo, una medicion episodica de glucosa en sangre (EBGM), una medicion continua de glucosa, un mdice de bombeo basal (B. Basal) y una cantidad de bolo. El registro de datos 16 puede ser un numero tal como, por ejemplo, 60 mg/dL para representar una concentracion de glucosa o 1 unidad para representar una cantidad de bolo de insulina. El registro de datos 16 tambien puede estar en forma de representacion de texto tal como, por ejemplo, un comentario sobre un estado de salud de un usuario cuando se realiza una medicion de glucosa. La marca de tiempo 21 puede ser una
5
10
15
20
25
30
35
40
45
50
55
60
65
fecha y hora en la que se recopilo el registro. Ejemplos de otros tipos de categona de datos adecuados para su uso en la presente invencion se refieren a alimentos, medicamentos, salud y ejercicio, todos los cuales se describen en el numero de publicacion anterior a la concesion de los Estados Unidos US 20040015102, que se incorpora por completo a la presente por referencia aqm. Los ejemplos de categonas relacionadas con los alimentos son un indicador para observar si la medicion fue una medicion pre-prandial o post-prandial, la cantidad de carbohidratos, grasas, calonas y protemas consumidas durante un desayuno, almuerzo, cena o merienda. Ejemplos de categonas relacionadas con la medicacion son un tipo de pfldora consumida, tipo de insulina, cantidad de bolos de insulina y cantidad total de insulina consumida por el dfa. Ejemplos de categonas relacionadas con la salud son como se siente el usuario (hipo, enfermo, estresado, etc.), nivel de cetona, nivel de HbAlc, nivel de microalbumina, nivel de colesterol y presion arterial. Como se puede ver, existe la necesidad de almacenar registros en el medidor de glucosa 200 que tienen diferentes tipos de categonas para ayudar a una persona con diabetes a controlar su enfermedad.
[0060] En una realizacion de esta invencion, la primera seccion de memoria no volatil 12 se puede dividir en una pluralidad de porciones de igual tamano o ubicaciones de memoria para almacenar secuencialmente una pluralidad de registros 10, como se muestra en la Figura 6. En primer lugar la seccion de memoria no volatil 12 puede tener la forma de una memoria flash. Cada registro tiene una direccion 14 que indica su ubicacion en la primera seccion de memoria no volatil 12. En una realizacion de esta invencion, la primera seccion de memoria no volatil 12 puede tener una capacidad para almacenar una pluralidad de registros 10 mas que o aproximadamente 20.000. La seccion 12 de memoria de semiconductor no volatil puede organizarse dividiendola en una pluralidad de sectores de igual tamano de cuatro kilobytes de manera que se pueden almacenar aproximadamente 256 registros en un sector. En descripciones posteriores, se usaran 256 registros para definir un sector con fines ejemplares. Las invenciones no deben interpretarse como limitadas a 256 registros por sector. Los registros se pueden rellenar en serie (es decir, uno despues del otro) independientemente del tipo de categona asociado con el registro de datos. Sin embargo, como se menciono anteriormente, una vez que la memoria flash esta llena, se debe eliminar un sector completo porque la memoria flash no permite la sobrescritura.
[0061] La segunda seccion de memoria no volatil 22 puede estar en forma de una memoria de solo lectura programable y borrable electricamente (EEPROM) como se muestra en la Figura 5. La segunda seccion de memoria no volatil 22 se puede usar para determinar la direccion 14 que se ha de usar para escribir un nuevo registro en la primera seccion de memoria no volatil 12. La segunda seccion de memoria no volatil 22 incluye el puntero usado o puntero de ocupacion 24 y un puntero libre o puntero de escritura 26. El puntero utilizado 24 puede almacenar una direccion de un primer registro 28 escrito en la primera seccion de memoria no volatil 12 como se muestra en la Figura 5. Debe observarse que en el caso de que aun no se haya realizado ninguna operacion de borrado, la primera seccion de memoria no volatil 12 no contema ningun registro antes de que el primer registro 28 se haya escrito. Como sera evidente a partir de la siguiente descripcion, despues de cada operacion de borrado, el puntero 24 usado se actualiza de manera que almacena una direccion de ese registro de datos almacenado dentro de la primera seccion 12 de memoria no volatil, para la cual el registro de datos ha sido el penodo de tiempo mas largo transcurrido desde el almacenamiento, es decir, el punto de referencia 24 siempre apunta al registro de datos mas antiguo, que no es necesariamente el registro de datos con la marca de tiempo mas antigua. El puntero libre 26 almacena una direccion de un espacio vacm 30 para escribir un nuevo registro. El espacio vacm 30 es inmediatamente posterior a un ultimo registro 31 escrito. Una vez que el espacio vacm 30 se llena con datos, el punto libre 26 se incrementa en una direccion de un espacio vacm inmediatamente posterior 33, que en este caso sena a 0x40080 como se muestra en la Figura 6. Cabe senalar que en el caso en el que el espacio vacm 30 era la ultima ubicacion de memoria de la primera seccion de memoria no volatil 12, de modo que el espacio vacm 33 esta mas alla de la primera seccion de memoria no volatil 12 o no existe en absoluto, incrementar el puntero libre 26 implica que se manipula el puntero libre 26 tal que almacena una direccion de la primera ubicacion de memoria, que en este caso sena a 0x400000. Por lo tanto, con respecto a la operacion de escritura, la primera seccion de memoria no volatil 12 se usa a la manera de una memoria intermedia circular.
[0062] La seccion de memoria volatil 32 puede tener la forma de una memoria de acceso aleatorio (RAM). La seccion de memoria volatil 32 se usa para indicar una relacion ordinal basada en un sello de tiempo para cada uno de los registros que tienen un tipo de categona comun. Un mdice 48 se refiere a una ubicacion en la seccion de memoria volatil 32 que a su vez se une a una ubicacion en la primera seccion de memoria no volatil 12 como se muestra en la Figura 5. La seccion de memoria volatil 32 almacena un conjunto de informacion vinculado 34 para cada uno de los registros almacenados en la primera seccion de memoria no volatil 12.
[0063] Para cada registro, el conjunto de informacion vinculado 34 incluye un mdice de registro inmediatamente anterior 36, un mdice de registro 40 inmediatamente posterior y una suma de comprobacion 50. Para un registro particular, el mdice de registro 36 inmediatamente anterior almacena un mdice que indica la ubicacion del conjunto de informacion 34 vinculado al registro que tiene la siguiente marca de tiempo anterior y que tiene el mismo tipo de categona que el registro particular. Sin embargo, si el registro vinculado al conjunto de informacion 34 es el registro para un tipo de categona particular que tiene la marca de tiempo mas temprana, entonces no hay un mdice aplicable de un conjunto de informacion 34 vinculado a un registro inmediatamente anterior. En tal caso, el mdice de registro anterior 36 se puede llenar con la designacion o valor "MAX_INDEX + 1" como se muestra en la Figura 5.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0064] Para un registro particular, el mdice de registro 40 inmediatamente posterior almacena un mdice que indica la ubicacion del conjunto de informacion 34 vinculado al registro que tiene la siguiente marca de tiempo mas tarde y que tienen el mismo tipo de categona como el registro en particular. Sin embargo, si el registro vinculado al conjunto de informacion 34 es el registro para un tipo de categona particular que tiene la marca de tiempo mas reciente, entonces no hay un mdice aplicable de un conjunto de informacion 34 vinculado a un registro inmediatamente posterior. En tal caso, el mdice de registro 40 inmediatamente posterior se puede llenar con la designacion o valor "MAX_INDEX + 1" como se muestra en la Figura 5.
[0065] Por lo tanto, una pluralidad de informacion vinculada fija 34 que tiene el mismo tipo de categona proporcionara la informacion necesaria para localizar todos los registros pertinentes en la primera seccion de memoria no volatil 12. Todos los conjuntos de informacion 34 vinculados a los registros de datos de los mismos tipos de categonas forman una lista vinculada con los conjuntos de informacion 34 que son los nodos de la lista vinculada. El conjunto de informacion vinculado 34 incluye ademas un primer puntero 44 y un ultimo puntero 46 para cada tipo de categona como se muestra en la Figura 5. Los punteros 44 y 46 pueden almacenarse en cada uno de los conjuntos de informacion 34 o pueden almacenarse en la seccion de memoria volatil 32 ademas de la pluralidad de conjuntos de informacion 34. El primer puntero 44 y el ultimo puntero 46 pueden usarse para leer los registros de modo que puedan encontrarse rapidamente. Para un tipo de categona particular, el primer puntero 44 incluye un mdice para el conjunto de informacion 34 vinculado a un primer registro cronologico (es decir, un registro con la marca de tiempo mas temprana) como se muestra en la Figura 5. En una realizacion de esta invencion, todas las entradas bajo el mdice de registro inmediatamente anterior 36 denotado como "MAX_INDEX +1" puede corresponder a un mdice para el primer puntero 44 para un tipo de categona particular. Para un tipo de categona particular, el ultimo puntero 46 incluye un mdice para el conjunto de informacion 34 vinculado a un ultimo registro cronologico (registro con el sello de tiempo mas reciente) como se muestra en la Figura 5. En una realizacion de esta invencion, todas las entradas bajo el mdice de registro inmediatamente posterior 40 denotado como "MAX_INDEX +1" puede corresponder a un mdice del ultimo puntero 46 para un tipo de categona particular.
[0067] El conjunto de informacion vinculado 34 incluye ademas un ultimo puntero insertado 54 para cada tipo de categona como se muestra en la Figura 5. El puntero 54 puede almacenarse en cada uno de los conjuntos de informacion 34 o puede almacenarse en la seccion de memoria volatil 32 ademas a la pluralidad de conjuntos de informacion 34. El ultimo puntero insertado 54 puede usarse para encontrar rapidamente el punto de insercion en la lista de doble enlace de la seccion de memoria volatil 32. Para un tipo de categona particular, el ultimo puntero insertado 54 incluye un mdice del conjunto de informacion 34 enlazado al ultimo registro almacenado o insertado independiente de su marca de tiempo. En la Figura 5, el ultimo puntero 46 y el ultimo puntero insertado 54 tienen el mismo mdice. Sin embargo, cuando se edita un registro, el ultimo puntero 46 y el ultimo puntero insertado 54 tendran un mdice diferente, tal como se describira en una seccion posterior.
[0068] En el uso rutinario, el medidor de glucosa 200 se almacenara continuamente nuevos registros cuando un usuario pone a prueba su nivel de glucosa y/o opera la bomba de insulina 300 hasta que la primera seccion de memoria no volatil 12 se llena (por ejemplo, los 20.000 registros han sido almacenados). Cuando esto ocurre, el sistema de gestion de datos 100 debe determinar que registro o registros deben eliminarse o sobreescribirse para que se pueda almacenar un nuevo registro. Sin embargo, si la primera seccion de memoria no volatil 12 es la memoria flash, los registros individuales no se pueden eliminar para dejar espacio para un nuevo registro que debe almacenarse. Para la memoria flash, se debe eliminar un sector completo que puede ser, por ejemplo, 256 registros.
[0069] El primer sector que se eliminara despues de llenar completamente la primera seccion de memoria no volatil 12, por primera vez pueden ser los 256 registros a partir de la direccion almacenada en el puntero libre 26. En este caso, el puntero libre 26 estara apuntando al primer registro en la primera seccion de memoria no volatil 12. Por lo tanto, los 256 registros tendran que ser desde el comienzo de la primera seccion de memoria no volatil 12 en el puntero usado 24. Por ejemplo, despues de que la primera seccion de memoria no volatil 12 se llene por primera vez, se borraran los registros correspondientes a las direcciones 0x40000 a 0x40FFF. Despues de eliminar el primer sector, el puntero 24 usado se establece al comienzo del segundo sector que esta en la direccion 0x41000, es decir, al registro de datos para el que en ese momento ha transcurrido el mayor penodo de tiempo desde que se efectuo el almacenamiento del registro de datos correspondiente. Debe observarse que el primer sector tiene que ser eliminado una vez que el puntero libre 26 apunta a la misma direccion que el puntero 24.
[0070] Una vez que el primer sector se llena con 256 registros, que es el caso una vez que el puntero 26 libre apunte nuevamente a la misma direccion que el puntero 24 usado al comienzo del segundo sector, el segundo sector debe ser eliminado, que se define como los 256 registros almacenados comenzando en la direccion almacenada en el puntero libre 26 que en este caso sena 0x41000. Despues de eliminar el segundo sector, el puntero 24 usado se establece al comienzo del tercer sector que esta en la direccion 0x42000, es decir, nuevamente al registro de datos para el que en ese momento ha transcurrido el mayor penodo de tiempo desde que se realizo el almacenamiento del registro de datos correspondiente. Cabe senalar que, similarmente a la situacion en la que el primer sector tuvo que ser eliminado, el segundo sector tiene que ser eliminado una vez que el puntero libre 26 apunta a la misma direccion que el puntero usado 24. Los sectores subsiguientes se eliminan cuando el puntero libre 26 apunta a la misma direccion que el puntero 24 usado en un forma en que se eliminan 256 registros a la vez.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0071] En dertas circunstancias, un usuario puede querer eliminar uno o mas de los registros almacenados en la primera seccion de memoria no volatil 12. Por ejemplo, un usuario puede querer borrar un registro que era una medicion de glucosa episodica practica. Para este tipo de casos, el registro que se va a borrar se marca con una bandera, por ejemplo, manipulando uno o mas bits predeterminados dentro de la ubicacion de la memoria que almacena este registro. El registro no se borra realmente y, por lo tanto, se puede leer como "datos sin formato" bajo ciertas circunstancias. Sin embargo, un registro marcado con una bandera no se incluye en los informes o consultas de la primera seccion de memoria no volatil 12. Un registro marcado con una bandera finalmente se elimina cuando se elimina el sector en el que se almacena el registro.
[0072] En otros casos, un usuario puede querer editar un registro. Por ejemplo, como se muestra en la Figura 7, un usuario puede cambiar un valor tal como una concentracion de glucosa de 60 a 75 para un registro en la direccion 0x40000. Cuando el registro se edita como se muestra en la Figura 7, se marca con un indicador 52, formado por uno o mas bits predeterminados dentro de la ubicacion de memoria en la direccion 0x40000, y luego el registro modificado se escribe en la primera seccion de memoria no volatil 12 que tiene una direccion indicada por el puntero libre 26 de la misma manera que la descrita anteriormente para un nuevo registro (Vease Figura 5). La edicion de un tiempo record desplaza el registro modificado a un penodo de tiempo futuro porque el registro inicial se reescribe en una parte posterior o descendente de la primera seccion 12 de la memoria no volatil, que en este caso esta en 0x40070. Cabe senalar que la pluralidad de registros 10 no se almacena necesariamente en el orden en que se recibieron cuando se realiza una edicion en uno de los registros. Ademas, debe observarse que, en general, la pluralidad de registros 10 no se almacenan necesariamente en orden cronologico por marca de tiempo, porque los registros de datos pueden, por ejemplo, recibirse en lotes desde diferentes dispositivos externos, donde cada dispositivo externo transmite dicho lote de vez en cuando solamente. Sin embargo, incluso si la pluralidad de registros de datos inicialmente se hubiera almacenado en orden cronologico por marca de tiempo, este orden cronologico probablemente se destruira cuando se realice una edicion en uno de los registros. Por ejemplo, en la Figura 7, el registro almacenado en la primera seccion de memoria no volatil 12 en la direccion 0x40000 tiene la marca temporal mas temprana 21, pero despues de la edicion, el registro ahora se almacena en la direccion 0x40070 que es el ultimo registro escrito. Al editar el registro mas antiguo basado en la marca de tiempo, el registro se ha desplazado hacia abajo y posiblemente a otro sector dentro de la primera seccion de memoria no volatil 12. Por lo tanto, es posible que los registros mas antiguos con la marca de tiempo mas temprana no siempre sean eliminados al eliminar un sector.
[0073] El medidor de glucosa 200 esta adaptado para generar y visualizar un informe que puede incluir una lista de registros que tienen un tipo de categona comun y listarse en orden cronologico de acuerdo con un sello de tiempo asociado con cada uno de los registros. En una realizacion de esta invencion, el conjunto de informacion enlazado 34 permite la generacion rapida de tal informe de modo que no haya retraso en desplazarse a traves del informe. Una ventaja de esta invencion es que el uso de la segunda seccion de memoria no volatil 22 y la seccion de memoria volatil 32 permite que una pluralidad de registros 10 almacenados en la primera seccion de memoria no volatil 12 se visualice como un informe organizado por tipo de categona y por marcar el tiempo mas rapidamente que si solo se usara dicha primera seccion de memoria no volatil 12. Ejemplos de tales informes pueden ser un libro de registro de glucosa o un historial de bomba de insulina en una pantalla LCD.
[0074] El medidor de glucosa 200 puede estar adaptado para realizar las funciones y operaciones descritas anteriormente por medio del microprocesador 228 siendo programado adecuadamente. En otras palabras, el microprocesador 228 esta programado adecuadamente de modo que puede operar para controlar semiautomatica o preferiblemente automaticamente el medidor de glucosa 200 de manera que realice algunas o todas las funciones y operaciones descritas anteriormente.
Claims (15)
- 5101520253035404550556065REIVINDICACIONES1. Un sistema de gestion de datos que comprende:- una primera seccion de memoria no volatil (12) dividida en una pluralidad de ubicaciones de memoria dispuestas secuencialmente, cada una identificada por una direccion (14) y que incluye una primera ubicacion de memoria en un extremo de la primera seccion de memoria no volatil (12) y la ultima ubicacion de memoria en el extremo opuesto de la misma,- una seccion de memoria volatil (32), y- un controlador de almacenamiento (228) conectado operativamente a la primera seccion de memoria no volatil (12) y a la seccion de memoria volatil (32) y adaptado para- recibir una pluralidad de registros de datos (10) que incluyen registros de datos de al menos dos tipos de categonas diferentes, en donde cada registro de datos (10) comprende un valor de datos (16), una indicacion (20) del tipo de categona del registro de datos (10), y un sello de tiempo (21) que incluye una informacion de tiempo,- determinar el tipo de categona de cada registro de datos recibidos (10) sobre la base de la indicacion (20) del tipo de categona del registro de datos respectivo (10),- almacenar secuencialmente uno por uno los registros de datos (10) en el orden en que se reciben en la primera seccion de memoria no volatil (12) almacenando cada registro de datos (10) en una ubicacion de memoria indicada por un puntero de escritura (26) que mantiene el controlador de almacenamiento (228) y que se incrementa despues de cada almacenamiento de un registro de datos (10) para- indicar, en la direccion desde la primera ubicacion de memoria hacia la ultima ubicacion de memoria, la siguiente ubicacion de memoria o- en caso de que el ultimo registro de datos se haya almacenado en la ultima ubicacion de la memoria, la primera ubicacion de la memoria,de modo que cada ubicacion de memoria que almacena un registro de datos (10) almacena exactamente un registro de datos (10),- para cada registro de datos recibidos (10) agregue un nuevo nodo (34) asociado con el registro de datos respectivo (10) a una lista enlazada que esta almacenada en la seccion de memoria volatil (32) para el tipo de categona determinado del registro de datos respectivo (10), de modo que al almacenar todos los registros de datos recibidos (10) hay una lista vinculada separada almacenada en la seccion de memoria volatil (32) para cada tipo de categona incluida en la pluralidad de registros de datos (10), donde para cada una de dichas listas vinculadas los nodos (34) solo estan asociados con registros de datos (10) del mismo tipo de categona y la secuencia de los nodos (34) es tal que los registros de datos asociados (10) se clasifican temporalmente segun su marca de tiempo (21), en donde el sistema de gestion de datos se incluye en un medidor de glucosa (200) de un sistema de glucosa en sangre. El sistema de glucosa en sangre que comprende un medio de deteccion de glucosa en sangre incorporado en el medidor de glucosa o en un dispositivo separado, en el que el medio de deteccion de glucosa en sangre incluye un transmisor y esta adaptado para transmitir por medio de los registros de datos del transmisor (10) incluyendo un valor de dato (16) caractenstico de la concentracion de glucosa en sangre determinada durante una medicion y un sello de tiempo (21) que indica un tiempo en el que se realizo esta medicion al controlador de almacenamiento (228) para el almacenamiento.
- 2. El sistema de gestion de datos segun la reivindicacion 1, en el que el sistema de glucosa en sangre comprende una bomba de insulina (300) que incluye un transmisor y esta adaptada para transmitir por medio de los registros de datos del transmisor (10) al controlador de almacenamiento (228) para el almacenamiento, el tipo de categona (20) es un valor elegido del grupo que consiste en una concentracion de glucosa episodica, una concentracion de glucosa continua, una tasa de bombeo basal y una cantidad de bolo, la pluralidad de ubicaciones de memoria dispuestas secuencialmente, en las que se divide la primera seccion de memoria no volatil (12), tienen el mismo tamano, y el controlador de almacenamiento (228) incluye un microprocesador que esta programado para afectar automaticamente las operaciones del sistema de gestion de datos con el fin de efectuar el almacenamiento de la pluralidad de registros de datos (10).
- 3. El sistema de gestion de datos segun la reivindicacion 1 o la reivindicacion 2, en el que la seccion de memoria volatil (32) es una memoria de acceso aleatorio.
- 4. Un metodo de gestion de datos para almacenar una pluralidad de registros de datos (10) que incluye registros de datos de al menos dos tipos de categonas diferentes, en el que cada registro de datos comprende un valor de datos (16), una indicacion (20) del tipo de categona del registro de datos (10), y un sello de tiempo (21) que incluye una informacion de tiempo, en una primera seccion de memoria no volatil (12) dividida en una pluralidad de ubicaciones de memoria secuencialmente dispuestas, cada una identificada por una direccion (14) e incluyendo una primera ubicacion de memoria en un extremo de la primera seccion de memoria no volatil (12) y una ultima ubicacion de memoria en el extremo opuesto de la primera seccion de memoria no volatil (12), comprendiendo el metodo los siguientes pasos:5101520253035404550556065- recibir la pluralidad de registros de datos (10),- determinar el tipo de categona de cada registro de datos recibidos (10) sobre la base de la indicacion (20) del tipo de categona del registro de datos respectivo (10),- almacenar secuencialmente los registros de datos (10) uno por uno en el orden en que se reciben en la primera seccion de memoria no volatil (12) almacenando cada registro de datos (10) en una ubicacion de memoria indicada por un puntero de escritura (26) que se incrementa despues de cada almacenamiento de un registro de datos (10) para- indicar, en la direccion desde la primera ubicacion de la memoria hacia la ultima ubicacion de la memoria, la siguiente ubicacion de la memoria o- en caso de que el ultimo registro de datos haya sido almacenado en la ultima ubicacion de la memoria, la primera ubicacion de la memoria,de modo que cada ubicacion de memoria que almacena un registro de datos almacena exactamente un registro de datos (10),para cada registro de datos recibidos (10) agregando un nuevo nodo (34) asociado con el registro de datos respectivo (10) a una lista enlazada almacenada en una seccion de memoria volatil (32) para el tipo de categona determinada del registro de datos respectivo (10), de modo que al almacenar todos los registros de datos recibidos (10) comprende una lista vinculada separada almacenada en la seccion de memoria volatil (32) para cada tipo de categona incluido en la pluralidad de registros de datos (10), en donde para cada una de dichas listas vinculadas los nodos (34) solo estan asociados con registros de datos (10) del mismo tipo de categona y la secuencia de los nodos (34) es tal que los registros de datos asociados (10) se ordenan temporalmente segun su marca de tiempo (21),en donde los pasos del metodo se realizan mediante los componentes de un sistema de glucosa en sangre que incluye un medidor de glucosa (200) que comprende un controlador de almacenamiento (228), un medio de deteccion de glucosa en sangre incorporado en el medidor de glucosa o en un dispositivo separado, donde los medios de deteccion de glucosa en sangre incluyen un transmisor y el metodo comprende ademas los siguientes pasos:- generar registros de datos (10) que incluyen un valor de datos (16) caractenstico de la concentracion de glucosa en sangre determinada durante una medicion y un sello de tiempo (21) que indica un tiempo en el que se realizo esta medicion, y- transmitir los registros de datos (10) como parte de la pluralidad de registros de datos (10) al controlador de almacenamiento (228) para el almacenamiento.
- 5. El metodo segun la reivindicacion 4, que comprende ademas las etapas de determinar para cada registro de datos (10) que se almacenara en la primera seccion de memoria no volatil (12) si ya hay una lista enlazada almacenada en la seccion de memoria volatil (32) para el tipo de categona determinada del registro de datos respectivo (10), y si no existe tal lista vinculada asignando una nueva lista enlazada y anadiendo el nuevo nodo (34) asociado con el registro de datos respectivo (10) a la nueva lista enlazada, en la que la seccion de memoria volatil (32) comprende una pluralidad de ubicaciones de memoria dispuestas secuencialmente, cada una unida por una relacion predeterminada a exactamente una ubicacion de memoria de la primera seccion de memoria no volatil (12), donde el metodo adicional comprende los pasos de agregar un nuevo nodo (34) a una lista enlazada almacenando el nodo (34) en la ubicacion de la memoria de la seccion de memoria volatil (32) que esta vinculada por la relacion predeterminada a la ubicacion de la memoria de la primera seccion de memoria no volatil (12) en donde se almacena el registro de datos (10) asociado con el nodo respectivo (34).
- 6. El metodo segun la reivindicacion 4 o la reivindicacion 5, que comprende ademas los pasos de- recibir una senal de entrada que indica que se debe borrar un registro de datos almacenado en la primera seccion de memoria no volatil (12), y- eliminar el registro de datos (10) de la primera seccion de memoria no volatil (12) manipulando al menos un bit dentro de la ubicacion de la memoria de la primera seccion de memoria no volatil (12) en donde se almacena la memoria de datos (10) para indicar que la ubicacion de la memoria no incluye un registro de datos valido, y retirando el nodo (34) asociado con el registro de datos (10) de la lista vinculada correspondiente almacenada en la seccion de memoria volatil (32);- recibir una senal de entrada que indique que se ha de cambiar un registro de datos (10) almacenado en la primera seccion de memoria no volatil (12) y de que manera,- almacenar el registro de datos modificado (10) en la ubicacion de memoria de la primera seccion de memoria no volatil (12) actualmente indicada por el puntero de escritura (26),- manipular al menos un bit dentro de la ubicacion de memoria de la primera seccion de memoria no volatil (12) en cuya ubicacion de memoria se almacena el registro de datos original (10) para indicar que la ubicacion de memoria no incluye un registro de datos valido, y- cambiar el nodo (34) asociado con el registro de datos (10) para reflejar el cambio de la ubicacion de la memoria en la primera seccion de memoria no volatil (12) en donde la ubicacion de la memoria es el registro de datos (10) almacenado.5101520253035404550556065
- 7. El metodo de acuerdo con cualquiera de las reivindicaciones 4 a 6, en el que la primera seccion de memoria no volatil (12) es borrable pero no puede escribirse en exceso y tiene una pluralidad de sectores de memoria que constituyen la unidad borrable mas pequena y se han de borrar antes de reescribirse, donde cada sector de memoria comprende una pluralidad de las ubicaciones de memoria.
- 8. El metodo de acuerdo con la reivindicacion 7, en el que la primera seccion de memoria no volatil (12) es una memoria flash.
- 9. El metodo segun la reivindicacion 7 u 8, que comprende ademas los pasos de determinar antes de efectuar el almacenamiento de cualquier registro de datos (10) si el puntero de escritura (26) indica la primera ubicacion de memoria de un sector de memoria y si esta posicion de memoria esta ocupada y si el puntero de escritura (26) indica la primera ubicacion de memoria de un sector de memoria y si esta posicion de memoria esta ocupada, borrando este sector de memoria antes de almacenar el registro de datos (10), donde se mantiene un puntero de ocupacion (24) que indica la ubicacion de la memoria entre las ubicaciones de memoria ocupadas de la primera seccion de memoria no volatil (12) para la cual ha transcurrido el mayor penodo de tiempo desde que se realizo el almacenamiento del registro de datos correspondiente (10), y que se actualiza cuando siempre se realiza una operacion de borrado en la primera seccion de memoria no volatil (12), el puntero de escritura (26) se mantiene dentro de una segunda seccion de memoria no volatil (22), y el puntero de ocupacion (24) se mantiene dentro de la segunda seccion de memoria no volatil (22).
- 10. El metodo de acuerdo con la reivindicacion 9, en el que la segunda seccion de memoria no volatil (22) es una memoria de solo lectura programable y borrable electricamente.
- 11. El metodo de acuerdo con cualquiera de las reivindicaciones 4 a 10, en el que para cada lista vinculada almacenada dentro de la seccion de memoria volatil (32)un primer puntero (44) que indica el nodo (34), asociado con el registro de datos (10) entre los registros de datos (10) asociados con la respectiva lista enlazada, que tiene la marca de tiempo mas temprana (21),- un ultimo puntero (46) que indica el nodo (34), asociado con el registro de datos (10) entre los registros de datos (10) asociados con la lista enlazada respectiva, que tiene la marca de tiempo mas reciente (21), y/o- un ultimo puntero insertado (54) que indica el nodo (34), asociado con el registro de datos (10) entre los registros de datos (10) asociados con la respectiva lista enlazada, que se almaceno mas recientemente en la primera seccion de memoria no volatil (12), se mantiene dentro de la seccion de memoria volatil (32).
- 12. El metodo de acuerdo con cualquiera de las reivindicaciones 4 a 11, en el que cada lista enlazada almacenada en la seccion de memoria volatil (32) es una lista doblemente enlazada.
- 13. El metodo segun cualquiera de las reivindicaciones 4 a 12, que comprende ademas los siguientes pasos:- generar la pluralidad de registros de datos (10) en al menos un dispositivo de generacion de datos, transmitir la pluralidad de registros de datos (10) con al menos un dispositivo de generacion de datos y recibir la pluralidad de registros de datos (10) para almacenamiento y/o- generar datos correspondientes a la pluralidad de registros de datos (10) en al menos un dispositivo de generacion de datos, transmitir los datos con al menos un dispositivo de generacion de datos, recibir los datos, generar la pluralidad de registros de datos (10) en la base de los datos recibidos, y recibir la pluralidad de registros de datos (10) para el almacenamiento.
- 14. El metodo segun cualquiera de las reivindicaciones 4 a 13, en el que el sistema de glucosa en sangre comprende una bomba de insulina (300) que incluye un transmisor y en el que el metodo comprende ademas los siguientes pasos:- generar registros de datos (10) que incluyen un valor de datos (16) caractenstico de un parametro de bomba y un sello de tiempo (21) que indica un tiempo en el que se midio el valor del parametro, y- transmitir los registros de datos (10) como parte de la pluralidad de registros de datos (10) al controlador de almacenamiento (228) para su almacenamiento,en donde el tipo de categona (20) es un valor elegido del grupo que consiste en una concentracion de glucosa episodica, una concentracion de glucosa continua, una tasa de bombeo basal y una cantidad de bolo, y la pluralidad de ubicaciones de memoria dispuestas secuencialmente, en la que la primera seccion de memoria no volatil (12) esta dividida, tienen el mismo tamano.
- 15. El metodo de acuerdo con cualquiera de las reivindicaciones 4 a 14, en el que la seccion de memoria volatil (32) comprende una memoria de acceso aleatorio.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/EP2007/007558 WO2009026946A1 (en) | 2007-08-29 | 2007-08-29 | A data management system and method |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2692209T3 true ES2692209T3 (es) | 2018-11-30 |
Family
ID=39322809
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES07801979.1T Active ES2692209T3 (es) | 2007-08-29 | 2007-08-29 | Sistema de gestión de datos y método |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US8762624B2 (es) |
| EP (1) | EP2183671B1 (es) |
| ES (1) | ES2692209T3 (es) |
| WO (1) | WO2009026946A1 (es) |
Families Citing this family (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7751907B2 (en) | 2007-05-24 | 2010-07-06 | Smiths Medical Asd, Inc. | Expert system for insulin pump therapy |
| US9282373B2 (en) * | 2009-06-19 | 2016-03-08 | Broadcom Corporation | System, method, and apparatus for managing timeshift and permanent recording in a storage device on a video broadcast receiver |
| US20100331650A1 (en) * | 2009-06-25 | 2010-12-30 | Roche Diagnostics Operations, Inc. | Episodic blood glucose monitoring system with an interactive graphical user interface and methods thereof |
| US8494607B2 (en) | 2010-10-15 | 2013-07-23 | Roche Diagnostics Operations, Inc. | Handheld diabetes management device having a database management system |
| JP5917163B2 (ja) * | 2011-01-27 | 2016-05-11 | キヤノン株式会社 | 情報処理装置、その制御方法及びプログラム並びに記憶媒体 |
| CN102831694B (zh) * | 2012-08-09 | 2015-01-14 | 广州广电运通金融电子股份有限公司 | 一种图像识别系统及图像存储控制方法 |
| US9165337B2 (en) * | 2013-05-31 | 2015-10-20 | Qualcomm Incorporated | Command instruction management |
| US9999398B2 (en) | 2013-09-04 | 2018-06-19 | Roche Diabetes Care, Inc. | Presenting data generated by a continuous glucose monitor |
| US9440086B2 (en) * | 2013-09-11 | 2016-09-13 | Medtronic, Inc. | Optimized flash memory device for miniaturized devices |
| US9486571B2 (en) | 2013-12-26 | 2016-11-08 | Tandem Diabetes Care, Inc. | Safety processor for wireless control of a drug delivery device |
| US10929858B1 (en) * | 2014-03-14 | 2021-02-23 | Walmart Apollo, Llc | Systems and methods for managing customer data |
| US9977807B1 (en) * | 2017-02-13 | 2018-05-22 | Sas Institute Inc. | Distributed data set indexing |
| US10048893B2 (en) * | 2015-05-07 | 2018-08-14 | Apple Inc. | Clock/power-domain crossing circuit with asynchronous FIFO and independent transmitter and receiver sides |
| US10789207B2 (en) | 2015-07-27 | 2020-09-29 | Sas Institute Inc. | Distributed data storage grouping |
| US11000236B2 (en) | 2017-03-24 | 2021-05-11 | Medtronic Minimed, Inc. | Patient data management systems and conversational interaction methods |
| US11246513B2 (en) | 2018-02-08 | 2022-02-15 | Senseonics, Incorporated | Data management system communications with a display device in an analyte monitoring system |
| CN108763109B (zh) * | 2018-06-13 | 2022-04-26 | 成都心吉康科技有限公司 | 数据存储方法、装置及其应用 |
| CN109634919A (zh) * | 2018-10-16 | 2019-04-16 | 西北铁道电子股份有限公司 | 一种文件管理系统 |
| GB202000274D0 (en) * | 2020-01-09 | 2020-02-26 | Smith & Nephew | Systems and methods for monitoring operational lifetime of negative pressure wound treatment apparatuses |
| IL296654A (en) * | 2020-03-25 | 2022-11-01 | Hoffmann La Roche | Method and system for storing measurement data detected by a sensor device and indicative of an analyte in a sample of a bodily fluid |
| CN112286893B (zh) * | 2020-09-23 | 2023-02-24 | 宁波水表(集团)股份有限公司 | 一种应用于嵌入式终端的日志处理方法以及设备 |
Family Cites Families (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5682497A (en) * | 1993-09-28 | 1997-10-28 | Intel Corporation | Managing file structures for a flash memory file system in a computer |
| US6256643B1 (en) | 1998-03-10 | 2001-07-03 | Baxter International Inc. | Systems and methods for storing, retrieving, and manipulating data in medical processing devices |
| US5708247A (en) | 1996-02-14 | 1998-01-13 | Selfcare, Inc. | Disposable glucose test strips, and methods and compositions for making same |
| GB2317722B (en) * | 1996-09-30 | 2001-07-18 | Nokia Mobile Phones Ltd | Memory device |
| US6046051A (en) | 1997-06-27 | 2000-04-04 | Hemosense, Inc. | Method and device for measuring blood coagulation or lysis by viscosity changes |
| US6412080B1 (en) | 1999-02-23 | 2002-06-25 | Microsoft Corporation | Lightweight persistent storage system for flash memory devices |
| US6104638A (en) | 1999-02-26 | 2000-08-15 | Hewlett-Packard Company | Use of erasable non-volatile memory for storage of changing information |
| US6535949B1 (en) * | 1999-04-19 | 2003-03-18 | Research In Motion Limited | Portable electronic device having a log-structured file system in flash memory |
| GB0005564D0 (en) | 2000-03-08 | 2000-05-03 | Inverness Medical Ltd | Measurjement of substances in liquid |
| EP1269173B1 (en) | 2000-03-28 | 2005-08-17 | Diabetes Diagnostics, Inc. | Rapid response glucose sensor |
| JP2002175211A (ja) | 2000-12-07 | 2002-06-21 | Sharp Corp | データ管理システムおよびデータ管理方法 |
| DE10128752A1 (de) | 2001-06-13 | 2002-12-19 | Bosch Gmbh Robert | Verfahren zur Ablage von Daten in einen Speicherbaustein |
| US20030046482A1 (en) | 2001-08-28 | 2003-03-06 | International Business Machines Corporation | Data management in flash memory |
| JP2003271439A (ja) | 2002-03-13 | 2003-09-26 | Seiko Epson Corp | 情報処理装置およびプログラム |
| GB2389419B (en) * | 2002-06-05 | 2006-02-22 | Diabetes Diagnostics Inc | Analyte testing device |
| US7058755B2 (en) | 2003-09-09 | 2006-06-06 | Ballard Power Systems Corporation | EEPROM emulation in flash memory |
| WO2005051170A2 (en) * | 2003-11-19 | 2005-06-09 | Dexcom, Inc. | Integrated receiver for continuous analyte sensor |
| US20060036802A1 (en) * | 2004-08-11 | 2006-02-16 | Ixi Mobile (R&D) Ltd. | Flash file system management |
| US7412560B2 (en) * | 2004-12-16 | 2008-08-12 | Sandisk Corporation | Non-volatile memory and method with multi-stream updating |
| US7558906B2 (en) * | 2005-08-03 | 2009-07-07 | Sandisk Corporation | Methods of managing blocks in nonvolatile memory |
-
2007
- 2007-08-29 US US12/674,760 patent/US8762624B2/en not_active Expired - Fee Related
- 2007-08-29 WO PCT/EP2007/007558 patent/WO2009026946A1/en not_active Ceased
- 2007-08-29 EP EP07801979.1A patent/EP2183671B1/en not_active Not-in-force
- 2007-08-29 ES ES07801979.1T patent/ES2692209T3/es active Active
Also Published As
| Publication number | Publication date |
|---|---|
| EP2183671A1 (en) | 2010-05-12 |
| EP2183671B1 (en) | 2018-08-29 |
| US20110099338A1 (en) | 2011-04-28 |
| WO2009026946A1 (en) | 2009-03-05 |
| US8762624B2 (en) | 2014-06-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2692209T3 (es) | Sistema de gestión de datos y método | |
| ES2882900T3 (es) | Sistema para gestionar datos de dosificación de insulina | |
| ES2683303T3 (es) | Programación de una bomba de insulina con función de previsualización del perfil basal | |
| JP5357265B2 (ja) | 体液サンプル中の被分析物濃度を測定するための携帯用デバイス | |
| JP6175049B2 (ja) | 患者の長期薬剤投与計画の最適化システム | |
| ES2384558T3 (es) | Monitorización de glucosa en sangre incluyendo la presentación visual conveniente de promedios y valores de mediciones | |
| JP5744919B2 (ja) | インスリン投与の際の安全警告を備えた分析物試験方法及びシステム | |
| ES2976563T3 (es) | Sistemas de optimización de insulina y procedimientos de prueba con criterio de salida ajustado que tiene en cuenta el ruido del sistema asociado con biomarcadores | |
| ES2752743T3 (es) | Dispositivo de control de la glucemia | |
| ES2207942T3 (es) | Aparato medico para ser usado por un paciente para el autotratamiento medico de la diabetes. | |
| ES2693097T3 (es) | Sistema y método para gestionar datos de salud | |
| ES2715313T3 (es) | Recogida dinámica de datos | |
| US5536249A (en) | Pen-type injector with a microprocessor and blood characteristic monitor | |
| EP1393764B1 (en) | Integrated system including medication delivery pen, blood monitoring device, and lancer | |
| US7844471B2 (en) | System and method for assessment and corrective action based on guidelines | |
| ES2711331T3 (es) | Dispositivo de recopilación de datos, sistema, método y producto de programa informático para recopilar datos relacionados con la dispensación de medios de contraste | |
| US20170007762A1 (en) | Infusion of insulin into a patient and diabetes mellitus medical methods based on the patients monitored analyte concentration | |
| US20110154237A1 (en) | Methods, systems and computer readable media for modifying parameters of a configuration file | |
| JP2012507309A (ja) | 分析物測定及び管理装置並びに関連した方法 | |
| WO2011056839A1 (en) | Apparatus and methods for taking blood glucose measurements and recommending insulin doses | |
| WO2009137661A1 (en) | Analyte measurement and management device and associated methods | |
| JP2015528725A (ja) | 糖尿病を患う人に複数の危険度指標を用いて糖尿病を管理する方法及びシステム | |
| ES3005907T3 (en) | Method and system for determining a carbohydrate intake event from glucose monitoring data indicative of a glucose level, and a non-transitory computer readable medium | |
| US8226905B2 (en) | Blood glucose measurement device | |
| CN104486988A (zh) | 基于先前生理测量的分析的提供给用户的正强化消息 |