U.S. patent application number 09/373136 was filed with the patent office on 2001-10-04 for method and apparatus for controlling medical monitoring devices over the internet.
Invention is credited to EADY, ROBERT, SHUSTER, BRIAN.
Application Number | 20010027349 09/373136 |
Document ID | / |
Family ID | 23471130 |
Filed Date | 2001-10-04 |
United States Patent
Application |
20010027349 |
Kind Code |
A1 |
EADY, ROBERT ; et
al. |
October 4, 2001 |
METHOD AND APPARATUS FOR CONTROLLING MEDICAL MONITORING DEVICES
OVER THE INTERNET
Abstract
An article including a computer readable medium having
instructions stored thereon, which when executed, causes receipt of
a control request for a medical-monitoring device located on a
client and determining if the control request is serviceable by the
medical-monitoring device. In addition, the instructions also
include sending the control request unaltered to the client if the
control request is serviceable by the medical-monitoring device,
and modifying the control request to a serviceable control request
if the control request is not serviceable by the medical-monitoring
device.
Inventors: |
EADY, ROBERT; (OTTAWA,
CA) ; SHUSTER, BRIAN; (BEVERLY HILLS, CA) |
Correspondence
Address: |
BLAKELY SOKOLOFF TAYLOR & ZAFMAN LLP
12400 WILSHIRE BOULEVARD SEVENTH FL
LOS ANGELES
CA
90025
|
Family ID: |
23471130 |
Appl. No.: |
09/373136 |
Filed: |
August 12, 1999 |
Current U.S.
Class: |
700/17 ;
340/870.07; 340/870.11; 600/300; 600/509; 600/523; 700/246; 700/52;
700/53; 700/65; 700/83; 709/205; 709/230 |
Current CPC
Class: |
G05B 2219/34038
20130101; G05B 2219/31156 20130101; G05B 2219/31186 20130101; G05B
2219/31422 20130101; G05B 19/0421 20130101; G05B 2219/32126
20130101 |
Class at
Publication: |
700/17 ; 700/83;
700/52; 700/53; 700/65; 709/205; 709/230; 700/246; 600/300;
600/509; 600/523; 340/870.07; 340/870.11 |
International
Class: |
G05B 015/00 |
Claims
What is claimed is:
1. An article comprising a computer readable medium having
instructions stored thereon, which when executed, causes: receipt
of a control request for a medical-monitor device located on a
client; determining if the control request is serviceable by the
medical-monitor device; and, sending the control request unaltered
to the client if the control request is serviceable by the
medical-monitor device, and modifying the control request to a
serviceable control request if the control request is not
serviceable by the medical-monitor device.
Description
FIELD OF THE INVENTION
[0001] This invention relates to the control of medical devices
over a network. Specifically, this invention describes a method and
apparatus for controlling medical monitoring devices over the
Internet.
DESCRIPTION OF RELATED ART
[0002] There are currently many ongoing efforts to provide health
information to users of the Internet. Much of the recent efforts
have been devoted to establishing online medical clinics where
people can communicate with doctors directly. At this point, other
than receiving a list of symptoms from the end user, these services
have no way of knowing the end user's actual physical
condition.
[0003] Accordingly, there is a need for a method and apparatus for
controlling and receiving information from medical monitoring
devices over the Internet. Specifically, it would be desirable to
have a device that may allow physicians to receive vital
information such as blood pressure and pulse via the Internet
through the use of a device connected to their home computer.
SUMMARY OF THE INVENTION
[0004] What is disclosed is an article including a computer
readable medium having instructions stored thereon, which when
executed, causes receipt of a control request for a
medical-monitoring device located on a client and determining if
the control request is serviceable by the medical-monitoring
device. In addition, the instructions also include sending the
control request unaltered to the client if the control request is
serviceable by the medical-monitoring device, and modifying the
control request to a serviceable control request if the control
request is not serviceable by the medical-monitoring device.
BRIEF DESCRIPTION OF THE DRAWINGS
[0005] FIG. 1 is a system block diagram of one embodiment of a
system in which the apparatus and method of the invention is
used.
[0006] FIG. 2 illustrates an exemplary processor system or user
computer system that may implement embodiments of the present
invention.
[0007] FIG. 3 illustrates a block diagram detailing portions of one
embodiment of the server of FIG. 1 configured in accordance with
one embodiment of the present invention.
DETAILED DESCRIPTION
[0008] Definitions
[0009] As discussed herein, a "computer system" is a product
including circuitry capable of processing data. The computer system
may include, but is not limited to, general purpose computer
systems (e.g., server, laptop, desktop, palmtop, personal
electronic devices, etc.), personal computers (PCs), hard copy
equipment (e.g., printer, plotter, fax machine, etc.), and the
like. In addition, a "communication link" refers to the medium or
channel of communication. The communication link may include, but
is not limited to, a telephone line, a modem connection, an
Internet connection, an Integrated Services Digital Network
("ISDN") connection, an Asynchronous Transfer Mode (ATM)
connection, a frame relay connection, an Ethernet connection, a
coaxial connection, a fiber optic connection, satellite connections
(e.g. Digital Satellite Services, etc.), wireless connections,
radio frequency (RF) links, electromagnetic links, two way paging
connections, etc., and combinations thereof.
[0010] System Overview
[0011] A description of an exemplary system, which incorporates
embodiments of the present invention, is hereinafter described.
[0012] The present invention relates to a method and apparatus for
controlling medical-monitoring devices over a network.
[0013] FIG. 1 illustrates a system 100 configured in accordance
with one embodiment of the present invention, containing a server
102, a network 104, and a set of clients 106 with a set of medical
monitoring devices 108 connected to set of clients 106.
[0014] As further described below, server 102 includes various
hardware components. This includes a processor, memory, and one or
more network interface cards. In addition, server 102 may also
include a variety of other hardware devices, including, but not
limited to, storage devices (including floppy disk drives, hard
disk drives, and optical disk drives), input devices (including a
mouse or keyboard), and output devices (including displays and
printers).
[0015] Each of the computer systems in set of clients 106 may
include a variety of hardware components that are similar to server
102. In addition, each computer system may also be equipped with a
data port for connection of one or more medical-monitoring and
other devices. In one embodiment, these include communications
ports such as serial ports, which conform to the Institute of
Electrical and Electronics Engineers (IEEE) RS-232 standard,
IEEE-1284 parallel port standard, universal serial port (USB), or
infra-red (IR) port for connection to set of medical-monitoring
devices 108.
[0016] Network 104 is a network that operates with a variety of
communications protocols to allow client-to-client and
client-to-server communications. In one embodiment, network 104 is
a network such as the Internet, implementing transfer control
protocol/internet protocol (TCP/IP).
[0017] Set of medical monitoring devices 108 can be made of various
components that have been calibrated and are capable of providing
accurate date on various vital signs. It is controlled through the
use of a respective computer in set of computer system 106 to which
it is connected.
[0018] FIG. 2 illustrates an exemplary computer system 200 that
implements embodiments of the present invention. The computer
system 200 illustrates one embodiment of server 102 and set of
clients 106 (FIG. 1), although other embodiments may be readily
used.
[0019] Referring to FIG. 2, the computer system 200 comprises a
processor or a central processing unit (CPU) 204. The illustrated
CPU 204 includes an Arithmetic Logic Unit (ALU) for performing
computations, a collection of registers for temporary storage of
data and instructions, and a control unit for controlling operation
for the system 200. In one embodiment, the CPU 204 includes any one
of the x86, Pentium.TM., Pentium II.TM., and Pentium PrO.TM.
microprocessors as marketed by Intel.TM. Corporation, the K-6
microprocessor as marketed by AMD.TM., or the 6x86MX microprocessor
as marketed by Cyrix.TM. Corp. Further examples include the
Alpha.TM. processor as marketed by Digital Equipment
Corporation.TM., the 680X0 processor as marketed by Motorola.TM.;
or the Power PC.TM. processor as marketed by IBM.TM.. In addition,
any of a variety of other processors, including those from Sun
Microsystems, MIPS, IBM, Motorola, NEC, Cyrix, AMD, Nexgen and
others may be used for implementing CPU 204. The CPU 204 is not
limited to microprocessor but may take on other forms such as
microcontrollers, digital signal processors, reduced instruction
set computers (RISC), application specific integrated circuits, and
the like. Although shown with one CPU 204, computer system 200 may
alternatively include multiple processing units.
[0020] The CPU 204 is coupled to a bus controller 212 by way of a
CPU bus 208. The bus controller 212 includes a memory controller
216 integrated therein, though the memory controller 216 may be
external to the bus controller 212. The memory controller 216
provides an interface for access by the CPU 204 or other devices to
system memory 224 via memory bus 220. In one embodiment, the system
memory 224 includes synchronous dynamic random access memory
(SDRAM). System memory 224 may optionally include any additional or
alternative high speed memory device or memory circuitry. The bus
controller 212 is coupled to a system bus 228 that may be a
peripheral component interconnect (PCI) bus, Industry Standard
Architecture (ISA) bus, etc. Coupled to the system bus 228 are a
graphics controller, a graphics engine or a video controller 232, a
mass storage device 252, a communication interface device 256, one
or more input/output (I/O) devices 268.sub.1-268.sub.N, and an
expansion bus controller 272. The video controller 232 is coupled
to a video memory 236 (e.g., 8 Megabytes) and video BIOS 240, all
of which may be integrated onto a single card or device, as
designated by numeral 244. The video memory 236 is used to contain
display data for displaying information on the display screen 248,
and the video BIOS 240 includes code and video services for
controlling the video controller 232. In another embodiment, the
video controller 232 is coupled to the CPU 204 through an Advanced
Graphics Port (AGP) bus.
[0021] The mass storage device 252 includes (but is not limited to)
a hard disk, floppy disk, CD-ROM, DVD-ROM, tape, high density
floppy, high capacity removable media, low capacity removable
media, solid state memory device, and combinations thereof. The
communication interface device 256 includes a network card, a modem
interface, or a similar communications device for accessing network
264 via communications link 260. In addition, communications
interface device 256 includes communication ports such as serial
ports (e.g., IEEE RS-232), parallel ports (e.g., IEEE-1284),
Universal Serial Bus (USB) ports, and infra-red (IR) ports.
[0022] The I/O devices 268-268.sub.N include a keyboard, mouse,
audio/sound card, printer, and the like. The expansion bus
controller 272 is coupled to nonvolatile memory 275, which includes
system firmware 276. The system firmware 276 includes system BIOS
82, which is for controlling, among other things, hardware devices
in the computer system 200. The system firmware 276 also includes
ROM 280 and flash (or EEPROM) 284. The expansion bus controller 272
is also coupled to expansion memory 288 having RAM, ROM, and/or
flash memory (not shown). The system 200 may additionally include a
memory module 290 that is coupled to the bus controller 212. In one
embodiment, the memory module 290 comprises a ROM 292 and flash (or
EEPROM) 294.
[0023] As is familiar to those skilled in the art, the computer
system 200 further includes an operating system (OS) and at least
one application program, which in one embodiment, are loaded into
system memory 224 from mass storage device 252 and launched after
POST. The OS may include any type of OS including, but not limited
or restricted to, DOS, Windows.TM. (e.g., Windows 95.TM., Windows
98.TM., Windows NT.TM.), Unix, Linux, OS/2, OS/9, Xenix, etc. The
operating system is a set of one or more programs which control the
computer system's operation and the allocation of resources. The
application program is a set of one or more software programs that
perform a task desired by the user.
[0024] In accordance with the practices of persons skilled in the
art of computer programming, the present invention is described
below with reference to symbolic representations of operations that
are performed by computer system 200, unless indicated otherwise.
Such operations are sometimes referred to as being
computer-executed. It will be appreciated that operations that are
symbolically represented include the manipulation by CPU 204 of
electrical signals representing data bits and the maintenance of
data bits at memory locations in system memory 224, as well as
other processing of signals. The memory locations where data bits
are maintained are physical locations that have particular
electrical, magnetic, optical, or organic properties corresponding
to the data bits.
[0025] When implemented in software, the elements of the present
invention are essentially the code segments to perform the
necessary tasks. The program or code segments can be stored in a
processor readable medium or transmitted by a computer data signal
embodied in a carrier wave over a transmission medium or
communication link. The "processor readable medium" may include any
medium that can store or transfer information. Examples of the
processor readable medium include an electronic circuit, a
semiconductor memory device, a ROM, a flash memory, an erasable ROM
(EROM), a floppy diskette, a CD-ROM, an optical disk, a hard disk,
a fiber optic medium, a radio frequency (RF) link, etc. The
computer data signal may include any signal that can propagate over
a transmission medium such as electronic network channels, optical
fibers, air, electromagnetic, RF links, etc. The code segments may
be downloaded via computer networks such as the Internet, Intranet,
etc.
[0026] FIG. 3 is a functional block diagram of server 102,
including an operating system 300, an http server 302, a set of
interactive hypertext mark-up language (HTML) 304, a set of common
gateway interface (CGI) 306, a medical-monitor server 308, and a
database 310. In one embodiment, operating system 300 provides
network services for such network protocols as TCP/IP. FIG. 3 also
contains a functional block diagram of client 106, which contains
an operating system 350, including network drivers for such
networks such as TCP/IP), an HTTP client 352, an medical-monitor
client 356, and an medical-monitor plug-in 354.
[0027] Server 102 provides the following capabilities:
[0028] Basic network communication with multiple remote clients
(e.g. set of clients 106) simultaneously.
[0029] Performing authentication and authorization of individual
clients to communicate with medical monitoring server 308 on server
102.
[0030] Servicing HTTP requests from clients (e.g., set of clients
106) on the World Wide Web and communicating with medical monitor
client browser plug-ins (e.g., medical-monitor plug-in 354).
[0031] HTTP server 302 is server software such as the product
marketed under the name of Netscape Enterprise Server by Netscape
Corporation, or the product marketed under the name of Internet
Information Server by Microsoft Corporation. HTTP server 302 is
capable of communicating with HTTP web clients via the HTTP
protocol. In this capacity, HTTP server 302 is able to serve web
clients with data (HTML, application output data, etc.).
[0032] Medical-monitor server 308 communicates with medical-monitor
clients (e.g., medical-monitor client 356) to configure the
medical-monitoring devices and retrieve any information necessary
from the device. When medical-monitor server 308 is initiated, it
takes control of a TCP/IP service port and listens for incoming
connections from various clients over a network such as network
104. When medical-monitor server 308 sees an incoming connection,
it then attempts to confirm the validity of the client and the data
that is being sent to medical-monitor server 308. Once this has
been established, medical-monitor server 308 may then start a
bi-directional conversation using a custom language that both the
server and the client understand.
[0033] Medical-monitor server 308 provides the following
capabilities:
[0034] Provide information on medical-monitoring devices (e.g., set
of medical-monitoring devices 108) with which it is able to
communicate.
[0035] Act as a gatekeeper between client applications (e.g.,
between client applications running on set of clients 106), thereby
controlling access to the medical-monitoring devices.
[0036] Understand and provide control of medical-monitoring devices
no matter how sophisticated the device. For example, if a user were
to attempt to control the intervals at which the device takes
pulses, and that device did not have a controllable period for
taking pulses--medical-monitor server 308 may identify this and
return what parameters were actually controllable on the device.
Medical-monitor server 308 may also be configured to alter control
requests to allow the request to be serviced. For example, if the
medical-monitor device from the example above has a controllable
period for reporting to the server to retrieve instructions, the
command may be altered to change the period of reporting, thereby
allowing the server to be set to request a pulse to be taken every
time the device reports.
[0037] Communicate with scripts/plug-ins that allow a web-server
such as HTTP server 302 to access medical-monitor server 308,
thereby allowing multiple users to access it through a web-client
without having to install or use an medical-monitor client (e.g.,
patients without a medical-monitoring device compatible with the
system may still manually provide their own information).
[0038] Set of CGI scripts 306 enable HTTP server 302 to communicate
with medical-monitor server 308, thereby allowing a web developer
to create web content capable of accessing various
medical-monitoring devices on via a standard HTTP client. In the
simplest form, set of CGI scripts 306 allows server 102 to request
a list of active medical-monitor clients accessing the server and
whether they are currently communicating and/or available for
access via server 102.
[0039] Database 310 contains data of various types and that, when
combined, forms content that is served to users via the server 102.
Database 310, in one embodiment, is actually a collection databases
containing information that may be accessed through a standard such
as open database connectivity (ODBC) standard, as promoted by
Microsoft Corporation. Information that may be contained in
database 310 includes a listing of all medical-monitoring devices
and respective clients to which they are connnected, the
capabilities of the medical-monitoring devices (e.g., what
functions the medical-monitoring devices have) and their status
(e.g., whether they are currently accessible or not), and any
information for any users that correspond to a particular
medical-monitoring device.
[0040] The functionality provided by HTTP server 302 and
medical-monitor server 308 may be implemented over several
computers. In addition, the services and data provided by database
310 may also be implemented on one or more servers. Using multiple
servers provides scalability for both the applications using the
data (e.g., the various servers-other than the database server),
and the applications providing the data (e.g., the database
servers).
[0041] Referring to FIG. 3, client 106 is capable of performing the
following functions:
[0042] Basic network communication with server 102.
[0043] Control of medical-monitoring devices (e.g.,
medical-monitoring device 108) connected to itself via an interface
port and the processing of command sequences sent to it from server
102 (e.g., medical-monitor server 308) before converting this data
into commands that it sends to the connected medical-monitoring
device.
[0044] Medical-monitor client 356 provides control for
medical-monitoring devices (e.g., medical-monitoring device 108)
and also interfaces with both medical-monitor plug-in 354 and
medical-monitor server 308. Medical-monitor client 356 may be
supplemented by software drivers for communications with any
medical-monitoring devices.
[0045] HTTP client 352 is a software program that works with HTTP,
and is also known as a "browser" application. Similar products
include the product marketed by Netscape Corporation under the name
Netscape Navigator or the product marketed by Microsoft Corporation
under the name Internet Explorer. Medical-monitor plug-in 354 is a
plug-in application that is specifically written to interface with
HTTP client 352 to provide an interface to medical-monitor client
356.
[0046] Although the present invention has been described in terms
of certain preferred embodiments, other embodiments apparent to
those of ordinary skill in the art are also within the scope of
this invention. Accordingly, the scope of the invention is intended
to be defined only by the claims that follow.
* * * * *