Abstract:

A method, apparatus and article of manufacture are provided to optimize
the time and effort required to locate all data on a given entity that
may span multiple data nodes in a distributed environment. For example,
embodiments of the invention may be used to locate nodes within the
distributed environment that store electronic healthcare records. A poll
request from a first node to a second node may include electronic records
existence data indicating data nodes known to have, or not have, records
related to a given individual. This information is used to minimize the
number of nodes that need to be polled to arrive at the complete
aggregation of patient records that exist within a given set of nodes.

Claims:

1. A computer-readable storage medium containing a program, which when
executed on a computer system performs operations for accessing
electronic records, comprising:accessing a plurality of electronic
records associated with an identified subject, wherein, the electronic
records are stored in a plurality of independent data nodes, the
accessing comprising:receiving, from a first data node, a response to a
poll request, wherein the response includes an indication of whether
records regarding the identified subject are available in the first data
node, andpolling at least a second data node to determine an availability
of electronic records regarding the identified subject at the second data
node, wherein the poll transmitted to the second data node includes the
indication received from the first node, wherein the plurality of
independent data nodes are geographically distributed nodes storing
electronic health records

2. The computer-readable storage medium of claim 1, wherein the indication
received from the first node includes a further indication of at least
one additional node, from the plurality of independent data nodes, known
to have, or to not have, electronic records regarding the identified
subject.

3. The computer-readable storage medium of claim 1, wherein the poll
request, includes an indication of at least one additional node, from the
plurality of independent data nodes, known to have, or to not have,
electronic records regarding the identified subject.

4. The computer-readable storage medium of claim 1, wherein the operation
further comprises:prior to receiving the response to the poll request,
receiving a request to locate the plurality of electronic records
associated with the identified subject;selecting at least one data node
as the first data node to poll to determine the availability of records
regarding the identified subject; andsubmitting the poll request to the
first data node.

5. The computer-readable storage medium of claim 4, wherein selecting at
least one data node to poll comprises, selecting a plurality of data
nodes, and wherein submitting the poll request to the first data node
comprises transmitting the poll request to each of the selected nodes in
parallel.

6. The computer-readable storage medium of claim 4, wherein selecting at
least one data node comprises, selecting a plurality of data nodes, and
wherein each of the selected nodes are polled sequentially, and wherein
existence data regarding the availably of electronic records regarding
the known subject received from each previously polled node, of the
sequence, is transmitted to each subsequently polled node of the
sequence.

7. The computer-readable storage medium of claim 4, wherein the request to
locate the plurality of electronic records associated with the identified
subject further specifies a set of data nodes to be polled.

8. The computer-readable storage medium of claim 1, wherein the request
includes a local ID used by a requesting entity to identify the
identified subject, wherein a given data node identifies the identified
subject using an ID assigned by the given node, and wherein the ID
assigned by the given data node is cross referenced with the local ID
used by the requesting entity using an entry in an alias table.

9. The computer-readable storage medium of claim 1, wherein each of the
plurality of independent data nodes comprises a regional health
information organization (RHIO) that includes a plurality of
participants, and wherein the identified subject is an individual with
electronic health records available from at least one of the RHIOs.

10. The computer-readable storage medium of claim 9, wherein each RHIO
includes a master index that lists the individuals with electronic
records available from a respective RHIO, and wherein the master index is
configured to store information regarding the availability of electronic
records in one or more of the other RHIOs.

11. The computer-readable storage medium of claim 9, wherein each of the
RHIOs assigns a RHIO ID to each individual with electronic records in a
given RHIO, and wherein each RHIO maintains a master index of assigned
RHIO IDs that is cross referenced with at least one local ID used by an
organization participating in the RHIO.

12. A system for accessing a plurality of electronic records associated
with an identified subject, comprising:a plurality of computer-accessible
independent data nodes, each having at least a processor and a memory,
and wherein the memory of at least one data node stores a data locator
application configured to perform operations for accessing a plurality of
electronic records associated with an identified subject, wherein the
electronic records are stored in the plurality of independent data nodes,
the operations comprising:receiving, from a first data node, a response
to a poll request, wherein the response includes an indication of whether
records regarding the identified subject are available in the first data
node, andpolling at least a second data node to determine an availability
of electronic records regarding the identified subject at the second data
node, wherein the poll transmitted to the second data node includes the
indication received from the first node, wherein the plurality of
independent data nodes are geographically distributed nodes storing
electronic health records

13. The system of claim 12, wherein the indication received from the first
node includes a further indication of at least one additional node, from
the plurality of independent data nodes, known to have, or to not have,
electronic records regarding the identified subject.

14. The system of claim 12, wherein the poll request, includes an
indication of at least one additional node, from the plurality of
independent data nodes, known to have, or to not have, electronic records
regarding the identified subject.

15. The system of claim 12, wherein the operations further comprise:prior
to receiving the response to the poll request, receiving a request to
locate the plurality of electronic records associated with the identified
subject;selecting at least one data node as the first data node to poll
to determine the availability of records regarding the identified
subject; andsubmitting the poll request to the first data node.

16. The system of claim 15, wherein selecting at least one data node to
poll comprises, selecting a plurality of data nodes, and wherein
submitting the poll request to the first data node comprises transmitting
the poll request to each of the selected nodes in parallel.

17. The system of claim 15, wherein selecting at least one data node
comprises, selecting a plurality of data nodes, and wherein each of the
selected nodes are polled sequentially, and wherein existence data
regarding the availably of electronic records regarding the known subject
received from each previously polled node, of the sequence, is
transmitted to each subsequently polled node of the sequence.

18. The system of claim 15, wherein the request to locate the plurality of
electronic records associated with the identified subject further
specifies a set of data nodes to be polled.

19. The system of claim 12, wherein the request includes a local ID used
by a requesting entity to identify the identified subject, wherein a
given data node identifies the identified subject using an ID assigned by
the given node, and wherein the ID assigned by the given data node is
cross referenced with the local ID used by the requesting entity using an
entry in an alias table.

20. The system of claim 12, wherein each of the plurality of independent
data nodes comprises a regional health information organization (RHIO)
that includes a plurality of participants, and wherein the identified
subject is an individual with electronic health records available from at
least one of the RHIOs.

21. The system of claim 20, wherein each RHIO includes a master index that
lists the individuals with electronic records available from a respective
RHIO, and wherein the master index is configured to store information
regarding the availability of electronic records in one or more of the
other RHIOs.

22. The system of claim 20, wherein each of the RHIOs assigns a RHIO ID to
each individual with electronic records in a given RHIO, and wherein each
RHIO maintains a master index of assigned RHIO IDs that is cross
referenced with at least one local ID used by an organization
participating in the RHIO.

Description:

CROSS-REFERENCE TO RELATED APPLICATION

[0001]This application is a continuation of co-pending U.S. patent
application Ser. No. 11/241,697 filed Sep. 30, 2005, which is
incorporated herein by reference.

BACKGROUND

[0002]1. Field

[0003]The present invention generally relates to data storage and
retrieval. More specifically, the present invention relates to retrieving
electronic data records related to a given subject, when such records may
be distributed among many locations.

[0004]2. Description of the Related Art

[0005]Electronic data is pervasive; electronic data records have been
created to capture details about almost every transaction or event that
occurs. Often however, electronic data is highly dispersed. For example,
electronic medical records regarding a specific individual may exist in
many locations. For example, an outpatient clinic may maintain a set of
electronic records for individual patients treated by the clinic; a
hospital emergency room may have data related to the same patient; while
at the same time, a pharmacy may maintain records for prescriptions
issued by both the clinic and the emergency room. In most cases, these
providers will not have access to the electronic records of one another.
As even this simple example illustrates, electronic medical records
related to a patient may be widely distributed across many entities.

[0006]In many cases, it would be useful to provide access to a
comprehensive set of electronic medical records related to a given
individual, including records that may be widely distributed across
multiple entities. Doing so, however, has proven to be a difficult
endeavor. One proposed method includes creating a national health
information infrastructure from many regional networks, wherein each
regional network shares access to (or stores) electronic health records
among a number of participants. Once established, these regional networks
(referred to herein as RHIOs, for Regional Health Information
Organization) may be connected to form a nation-wide infrastructure.
Thus, a national health information network may emerge from a specialized
"network of networks," making electronic medical records available to
health care providers when and where they are needed.

[0007]One significant problem faced in creating such a national (or
larger) infrastructure, however, is locating a comprehensive collection
of electronic healthcare records for an individual patient that has
records spanning multiple data nodes. For example, consider a common
scenario of treating an unconscious patient at a hospital emergency room.
In such a case, a treating physician may desire access to a complete set
of medical records regarding the patient to determine a course of
treatment, regardless of where the records are located. The physician
may, or may not, know which RHIO is associated with the patient's primary
care physician, but is unlikely to know a complete set of data nodes that
have medical records related to the patient.

[0008]One approach to sharing electronic medical records among multiple
RHIOs involves connecting the individual RHIOs using a nationwide master
patient index and registry that identifies which RHIOs contain electronic
records for an individual. In this case, the physician seeking records
for the unconscious patient would access the master patient index to
identify the various RHIOs that have electronic records regarding the
patient. However, both technical and social barriers may make this an
inadequate (or impossible) solution. First, the cost of the
infrastructure required to implement such a solution may be prohibitive.
Second, political and social concerns regarding patient privacy and the
security of electronic medical records may prevent this approach from
ever being practical, regardless of the technical obstacles and cost of
implementing it. Moreover, the master patient index may create a single
point of failure for the entire system; should the master patient index
and registry become unavailable (e.g., for technical reasons),
participants within an individual RHIO would be unable to locate
electronic records using the master patient index.

[0009]Another approach to locating a comprehensive collection of medical
records for an individual patient is to perform a brute force search of
hundreds, or even thousands, of RHIOs in an attempt to locate records
related to a given individual. However, this approach will often become
very time consuming and inefficient, especially in situations where
life-or-death decisions must be made quickly, or when used repeatedly for
multiple searches related to the same individual.

[0010]Accordingly, the approach of creating a national health care records
infrastructure from a "network of networks" presents the challenge of how
to locate records related to a given individual when the records may be
dispersed across many of the different networks. Using the RHIO as an
example, in connecting hundreds, or thousands, of RHIOs, a requesting
party must be able to efficiently determine which RHIOs contain
electronic records for a given individual.

SUMMARY

[0011]Embodiments of the invention provide techniques to optimize the time
and effort required to locate electronic records related to a given
entity when the records may span multiple data nodes in a distributed
environment. For example, embodiments of the invention may be used to
perform searches that span multiple RHIOs for electronic medical records
related to a given patient.

[0012]One embodiment of the invention provides a computer-implemented
method of accessing a plurality of electronic records associated with an
identified subject, wherein the electronic records may exist in a
plurality of independent data nodes. The method generally includes,
receiving, from a first data node, a response to a poll request, wherein
the response includes an indication of whether records regarding the
identified subject are available in the first data node, and polling at
least a second data node to determine an availability of electronic
records regarding the identified subject at the second data node, wherein
the poll transmitted to the second data node includes the indication
received from the first node. The plurality of independent data nodes may
include electronic healthcare records available from geographically
distributed nodes.

[0013]The indication received from the first node may also indicate
additional nodes, from the plurality of independent data nodes, known to
have, or to not have, electronic records regarding the identified
subject. Further, the poll request may transmit an indication of
additional nodes, from the plurality of independent data nodes, known to
have, or to not have, electronic records regarding the identified
subject.

[0014]Another embodiment of the invention provides a computer-readable
medium containing a program, which when executed on a computer system
performs operations for accessing a plurality of electronic records
associated with an identified subject, wherein the electronic records may
exist in a plurality of independent data nodes. The operations generally
include receiving, from a first data node, a response to a poll request,
wherein the response includes an indication of whether records regarding
the identified subject are available in the first data node, and polling
at least a second data node to determine an availability of electronic
records regarding the identified subject at the second data node, wherein
the poll transmitted to the second data node includes the indication
received from the first node. The plurality of independent data nodes may
include electronic healthcare records available from geographically
distributed nodes.

[0015]Still another embodiment includes a system for accessing a plurality
of electronic records associated with an identified subject. The system
generally includes a plurality of computer-accessible independent data
nodes, wherein each node includes a data locator configured to perform
operations for accessing a plurality of electronic records associated
with an identified subject, wherein the electronic records may exist in
the plurality of independent data nodes. The operations generally include
receiving, from a first data node, a response to a poll request, wherein
the response includes an indication of whether records regarding the
identified subject are available in the first data node, and polling at
least a second data node to determine an availability of electronic
records regarding the identified subject at the second data node, wherein
the poll transmitted to the second data node includes the indication
received from the first node. The plurality of independent data nodes may
include electronic healthcare records available from geographically
distributed nodes.

BRIEF DESCRIPTION OF THE DRAWINGS

[0016]So that the manner in which the above recited features, advantages
and objects of the present invention are attained and can be understood
in detail, a more particular description of the invention, briefly
summarized above, may be had by reference to the embodiments illustrated
by the appended drawings. These drawings, however, illustrate only
typical embodiments of the invention and are not limiting of its scope,
for the invention may admit to other equally effective embodiments.

[0017]FIG. 1 illustrates data communications occurring in a distributed
environment, according to one embodiment of the invention.

[0018]FIG. 2 illustrates an exemplary network topology for a RHIO,
according to one embodiment of the invention.

[0019]FIG. 3 illustrates an exemplary network topology for a RHIO,
according to one embodiment of the invention.

[0020]FIG. 4 illustrates a master index for a RHIO, according to one
embodiment of the invention.

[0021]FIG. 5 illustrates a multi-node query using an SQL-like grammar,
according to one embodiment of the invention.

[0022]FIG. 6 illustrates a method for processing a request to locate
electronic records, according to one embodiment of the invention.

[0023]FIG. 7 illustrates a plurality of message exchanged between three
distributed data nodes to share electronic records existence data,
according to one embodiment of the invention.

DETAILED DESCRIPTION

[0024]The present invention provides methods, systems, and articles of
manufacture to optimize the time and effort required to locate a
comprehensive collection of electronic records related to a given entity
in situations where the electronic records may be stored in multiple data
nodes across a distributed environment.

[0025]For example, embodiments of the invention may be used to perform
searches for electronic medical records that span multiple regional
health Information organizations (RHIOs). In such a scenario, embodiments
of the invention optimize the task of locating a comprehensive collection
of electronic health records that exist across one or more RHIOs. In one
embodiment, the query grammar used to compose a query may include
conditions used to select a set of RHIOs to poll for the existence of
electronic records related to a given individual.

[0026]Additionally, a RHIO may be configured to maintain a master index
specifying the individuals that have electronic records stored within the
RHIO. At the same time, the RHIO may also maintain information regarding
other RHIOs known to have (or to not have) records regarding a given
individual. This additional information may be used to minimize the
number of RHIOs that are polled to identify where the electronic records
related to an individual are stored. If a given RHIO is known to have, or
to not have electronic records related to an individual, then the given
RHIO need not be polled in order to determine its status. Additionally, a
polling RHIO may include information regarding RHIOs known to have, or to
not have, with a poll request. Examples of these scenarios are described
more fully below.

[0027]In the following, reference is made to embodiments of the invention.
However, it should be understood that the invention is not limited to
specific described embodiments. Instead, any combination of the following
features and elements, whether related to different embodiments or not,
is contemplated to implement and practice the invention. Furthermore, in
various embodiments the invention provides numerous advantages over the
prior art. However, although embodiments of the invention may achieve
advantages over other possible solutions and/or over the prior art,
whether or not a particular advantage is achieved by a given embodiment
is not limiting of the invention. Thus, the following aspects, features,
embodiments and advantages are merely illustrative and are not considered
elements or limitations of the appended claims except where explicitly
recited in a claim(s). Likewise, reference to "the invention" shall not
be construed as a generalization of any inventive subject matter
disclosed herein and shall not be considered to be an element or
limitation of the appended claims except where explicitly recited in a
claim(s).

[0028]Embodiments of the invention may be implemented, in part, using
computer software applications executing on existing computer systems,
e.g., desktop computers, server computers, laptop computers, tablet
computers and the like. The data communications techniques and
distributed data nodes described herein, however, are not limited to any
currently existing computing or data communications environment and may
be adapted to take advantage of new computing systems as they become
available.

[0029]Further, embodiments of the invention (including the methods
described herein) may be implemented as computer software applications
and can be contained on a variety of computer-readable media.
Illustrative computer-readable media include, but are not limited to: (i)
information permanently stored on non-writable storage media (e.g.,
read-only memory devices within a computer such as CD-ROM disks readable
by a CD-ROM drive); (ii) alterable information stored on writable storage
media (e.g., floppy disks within a diskette drive or hard-disk drive); or
(iii) information conveyed to a computer by a communications medium, such
as through a computer or telephone network, including wireless
communications. The latter embodiment specifically includes information
across the Internet and other data communications networks. Such
computer-readable media, when carrying computer-readable instructions
that direct the functions of the present invention, represent embodiments
of the present invention.

[0030]In general, program routines created to implement an embodiment of
the invention may be part of an operating system or a specific
application, component, program, module, object, or sequence of
executable instructions performed by a particular computing system. In
addition, various computer software applications described hereinafter
may be identified based upon the application for which they are
implemented in a specific embodiment of the invention. However, it should
be appreciated that any particular program nomenclature that follows is
used merely for convenience, and thus the invention is not limited to use
solely in any specific application identified and/or implied by such
nomenclature.

[0031]FIG. 1 illustrates a data communications environment 100 configured
to locate data records related to a given entity spread across multiple
data nodes 1151-n, according to one embodiment of the invention.
Illustratively, the environment 100 includes five data nodes 115, each
having access to a collection of electronic records.

[0032]In one embodiment, each data node 115 may store records regarding a
plurality of entities. Further, embodiments of the invention may allow a
data requestor 105 to locate all of the records related to a given
entity, which may exist in multiple data nodes 115. For simplicity, the
discussion herein assumes that the entity is an individual, and the data
stored by data nodes 115 may include electronic records related to many
individuals. However, embodiments of the invention that store data
related to other entities are contemplated. Additionally, for purposes of
illustration, node 1151 may be referred to as a "local data node,"
and nodes 1152-N may be referred to as "remote data nodes."

[0033]In one embodiment, each data node 115 may include a data index 130,
data repository 135, data node directory 110 and data locator 120.
Further, each data node 115 may include one or more data requestors 105
configured to submit requests for records related to a given individual.
For example, FIG. 1 illustrates multi-node record request 125 being
submitted to data locator 120.

[0034]In one embodiment, the records available from data node 115 are
stored in data repository 135. Additionally, the data index 130 may
provide a directory of individuals with records in data repository 135.
For example, the data index 130 may include a list of demographic
information related to each individual with a record in the repository
135, along with an identifier for each individual assigned by node 115.
When the data requestor 105 requests the records related to the given
individual, the data locator 120 may be configured to determine the
identifier for the individual using index 130, and to locate the
individual's records in data repository 135.

[0035]Further, data requestor 105 may submit a multi-node request 125. A
multi-node request 125 indicates that the data requestor 105 desires all
records related to a given individual, regardless of the data node 115 in
which the records are located. To optimize processing such a request, the
data index 1301 may include "remote data existence links" (or just
remote data links for short). In one embodiment, the remote data links
may indicate which remote data nodes 1152-N is known to have, or to
not have, records related to the given individual.

[0036]To process multi-node request 125, the data locator 120 may be
configured to determine whether records are available in remote
data-nodes 1152-N. In one embodiment, the data locator 120 makes
this determination by submitting a poll request to remote data nodes
1152-N. The data node directory 110 may provide a directory of all
remote data nodes 1152-N that may be polled by data locator 120.
Thus, the data locator 120 may obtain a list of nodes to poll from data
node directory 110.

[0037]In an alternative embodiment, the multi-node request 125 may specify
which remote nodes 1152-N to poll, or may specify that nodes
satisfying certain criteria are polled (e.g., nodes located in particular
geographic location). The data node directory 110 may include information
about remote data nodes 1152-N to select a set of nodes that satisfy
any criteria included in multi-node request 125. Once the set of nodes to
poll is determined, data locator 120 may submit a poll to each remote
data node 1152-N included in the set. Each remote node 1152-N
receiving a poll request may respond with an indication of whether the
remote node 1152-N has any records related to the given individual.

[0038]Additionally, in response to a poll request, a remote node
1152-N may provide a set of one or more remote data links regarding
other nodes 1152-N known to have, or to not have, information
related to a given individual. For example, as shown in FIG. 1, the data
index 1302 of node 1152 includes remote data links indicating
whether nodes 1153 and 1154 have any records regarding the
given individual. When the data locator 120 of data node 1151
submits a poll request to data node 1152, it may respond not only
with an indication of whether the polled remote node 1152 has any
relevant records, but may also provide remote data links regarding
records stored by nodes 1153 and node 1154. In this manner,
node 1151 may determine from a response to the poll submitted to
remote node 1152 whether records regarding the individual are
located in remote nodes 1153 and 1154, without having to poll
these nodes.

[0039]In one embodiment, local node 1151 may also provide remote data
links as part of a poll request submitted to a remote data node
1152-N. For example, after local node 1151 has polled remote
node 1152, it has determined whether nodes 1153 and 1154
have any records regarding the given individual. When local node
1151 subsequently polls remote node 115N, it may provide remote
data links specifying whether nodes 1151-4 have any records
regarding the individual.

[0040]The existence of data records in a remote node 1152-N may
change over time. Accordingly, the data locator 120 may be configured to
determine when a remote node 1152-N was last polled for records
regarding the individual. This allows remote record links to expire after
a given period of time. Alternatively, a remote node 1152-N may be
configured to update a poll response, should the status of records in
remote RHIO 1152-N change. For example, if remote node 1152 had
at one point provided a poll response indicating that remote node
1152 did not have any records related to the given individual, and
if such records are subsequently became available, then remote node
1152 may be configured to provide an updated poll response to node
1151.

[0041]One particular embodiment of the invention includes a data network
100 storing electronic health records, where each node 115 may comprise a
RHIO storing (or identifying) a collection of shared electronic medical
records for a plurality of RHIO participants. Each participant is a
care-providing entity (e.g., a hospital, a clinic, etc.) that has
selected to participate in the RHIO. Detailed examples of an embodiment
directed to electronic health records are described below. However, the
environment 100 illustrated in FIG. 1 may be applied to many distributed
domains that must be able to locate all information on a given subject
across a plurality of distributed nodes (e.g., electronic databases
storing criminal or arrest records maintained by different law
enforcement agencies, driver's license records maintained by different
states, or educational records maintained by different educational
institutions, among many others examples).

[0042]Further, reference made to "patients" is understood to mean any
individual for whom data is being managed in an RHIO. The individual may
or may not be currently undergoing treatment or testing for medical
purposes. Further, the data corresponding to the individual may or may
not have been derived from medical testing or treatment (e.g., the data
may have been derived from a clinical trial in which the individual
voluntarily participated). Consequently, reference to "medical records"
or "electronic records" includes data related to doctor visits, lab
tests, hospital stays, clinical trials, diagnoses (including
self-diagnoses), prognoses, records related to the purchase of healthcare
related goods and services such as nutritional supplements, weight-loss
programs, or records of alternative treatments such as chiropractic
treatments or acupuncture treatments, etc.

[0043]In the following discussion, FIGS. 2 and 3 are used to provide an
illustration of two exemplary embodiments of a regional health
information organization. Each RHIO may include records related to a
number of individuals receiving medical care from a participant of a
given RHIO. Thereafter embodiments of the invention allowing one RHIO to
locate records related to an individual that may be stored one or more
remote RHIOs are described.

[0044]Additionally, as used herein, a "polling RHIO" refers to one RHIO
submitting a poll request to another RHIO, and a "polled RHIO" refers to
the RHIO receiving the poll request. Similarly, a "local RHIO" refers to
one given RHIO, relative to others referred to as "remote RHIOs."
However, these labels are used to facilitate the description of
embodiments of the invention regarding poll messages exchanged between a
set of RHIOs, and not to imply distinct or different types of RHIOs
generally. Also, as used herein, a poll request may comprise a message
transmitted from a polling RHIO to a polled RHIO. The poll request asks
the polled RHIO to respond within an indication of whether the polled
RHIO has or does not have electronic records regarding an individual
identified in the poll request.

[0045]FIG. 2 illustrates an exemplary network topology 200 for a regional
health information organization (RHIO) 210, according to one embodiment
of the invention. The RHIO 210 allows a plurality of participants
2401-N (e.g., a hospital, clinic, pharmacy, emergency room,
treatment center, claims processor, etc.) to share and exchange
electronic healthcare records with one another. More generally, each
participant 240 may be any organization that elects to participate in
electronic record sharing as part of a given RHIO 210.

[0046]As shown in FIG. 2, the RHIO 210 may include a master index 215,
registry 140, data locator 120 and a records repository 135. In one
embodiment, the master index 215 may identify which individuals have
electronic records stored in the RHIO 210. That is, the master index 215
provides a list of individuals with electronic records available within
RHIO 210. In one embodiment, each individual with records available from
the RHIO may be assigned a RHIO ID. The master index 215 may provide a
directory of the RHIO IDs along with demographic information regarding
each individual. Additionally, the master index 215 may include remote
data links specifying remote RHIOs 230 known to have, or to not have
records related to a given individual. One embodiment of the master index
215 is illustrated in FIG. 4, below.

[0047]In one embodiment, the registry 140 may provide an index of
electronic records available in RHIO 210. The registry 140 may index the
available records using the IDs assigned by the RHIO 210. The data
locator 120 may be configured to locate records related to a given
individual using index 140. For example, the data locator 120 may receive
a request from a participant 240 to locate electronic records regarding a
given individual. If the request is limited to the local RHIO 210 (i.e.,
the request does not indicate that records in remote RHIOs 230 should be
located), then the data locator 120 consults the master index 215 to
determine whether the individual identified in the request has a RHIO ID
in master index 215. If so, the registry 140 may be used to determine
what records are available in the data repository 135.

[0048]Additionally, the data locator 120 may be configured determine which
remote RHIOs 230 have available records regarding the individual. In one
embodiment, the data locator 120 transmits poll requests to a set of
polled RHIOs 230 in order to determine which RHIOs 230 have electronic
records regarding the individual. After receiving poll responses from the
polled RHIOs 230, the polling RHIO 210 may create remote records links in
the master index 215 indicating which RHIOs 230 have, or do not have,
records regarding the individual. Thus, subsequent requests to locate
records for this individual may be highly optimized as the master index
215 of the polling RHIO will be able to identify a complete collection of
RHIOs 230 that have electronic records regarding the individual without
having to transmit any additional poll requests. Further, in one
embodiment, remote record data links may be included with poll requests
and poll responses. Thus, the knowledge of which RHIOs have electronic
records regarding a given individual may be shared during the polling
process.

[0049]Illustratively, RHIO 210 centralizes the electronic records for the
RHIO 210 in repository 135. This may allow the RHIO 210 to address issues
such as data security, privacy and authentication for each participant
240 participating in electronic record sharing using RHIO 210. Each
participant 240 may submit electronic records to and receive records
from, the RHIO 210 that are stored in repository 135. The electronic
records may be stored in a common formats (e.g., XML document or .PDF) or
structured (and/or ICD-9 coded) format. However, the electronic records
may include any patient-related data represented in a digital form.
Accordingly, text documents, images (e.g., x-rays or other imaging data)
lab-test results, doctor's notes, insurance information, patient
observations, and the like, may all be electronic records stored in
repository 135. Thus, any record submitted by a participant 240 to the
RHIO 210 may be stored in repository 135, and associated with the
individual to whom the record pertains using a RHIO ID.

[0050]FIG. 3 illustrates a second exemplary network topology 300 for a
RHIO 310. RHIO 310 also includes a master index 215, registry 140 and
data locator 120. These components may operate in the manner described
above regarding RHIO 210 in FIG. 2. Rather than store records using
repository 135, however, RHIO 310 stores records using a decentralized or
federated approach. The registry 140 may be used to identify which
participants 240 have records regarding a particular individual. Doing so
allows a given participant 240 to each store data in a data repository
320 located at the participant 240. Federated query engine 150 may be
configured to retrieve records from participants 240. Additionally, like
the RHIO 210 described in reference to FIG. 2, data locator 120 may be
used to poll other RHIOs 230 over external network 220 to determine
whether records are available regarding a given individual in remote a
remote RHIO 230.

[0051]In another embodiment, a RHIO may adopt a hybrid approach to the
storage of electronic records for the RHIO. In such a case, a storage
repository 135 may be used to store some data records, while other
records may be stored by some of the participants 240 in the repository
320 using a decentralized approach. For example, a first participant 240
may comprise a large hospital or research institution that maintains an
extensive IT infrastructure. Such a first participant 240 may chose join
a RHIO, and allow other participants 240 to access data records from
records repository 320. At the same time, a second participant 240 (e.g.,
a small clinic), may wish have electronic records in a repository 135
maintained by the RHIO.

[0052]As stated above, the master index 215 may identify which individuals
have electronic records stored in a RHIO (e.g., RHIOs 210 and 310). The
master index 215 associated with a given RHIO may include remote record
data links identifying remote RHIOs 230 known to have, or to not have
records related to a given individual. In one embodiment, remote data
links regarding the existence of records for a given individual may be
exchanged when the data locator 120 of a polling RHIO transmits a poll
request to a set of polled RHIOs to locate electronic records. FIGS. 4-7
illustrate embodiments of the invention that allow a local RHIO (e.g.,
RHIOs 210 and 310) to determine which remote RHIOs 230 have records
related to a given individual.

[0053]First, FIG. 4 illustrates an embodiment of the master index 215. As
shown, the master index 215 includes table 410 that provides an index of
individuals with records stored by a given RHIO. Each individual in table
410 may be identified within the RHIO by an assigned RHIO ID 440. The
demographic information 450 may be used to determine the RHIO ID for a
given individual. For example, the RHIO ID 440 assigned to a given
individual may be determined by cross referencing a name, age, social
security number, or other demographic information 450 stored in table 410
with a RHIO ID 440. The demographic information 450 may be provided to a
polled RHIO as part of a poll request. In response, the polled RHIO may
use the demographic information 450 to determine whether the master index
215 of the polled RHIO includes an entry for the individual identified in
the poll request.

[0054]Additionally, the information in table 410 may be cross referenced
with local alias table 430. Local alias table 430 may cross reference a
list of local IDs used by RHIO participants 240 with the RHIO ID 440.
Local alias table 430 allows a participant 240 to maintain a preexisting
local ID for a given individual. For example, a hospital may reference
each individual using a unique patient number. The patient number may be
stored as an entry in local alias table 430, cross referenced to the RHIO
ID 440 assigned to the individual. As shown, each individual (as
identified by a RHIO ID 440) may include zero or more reference links 470
in local alias table 430. Each row of table 430 identifies a participant
435 and a local ID 445 used by the participant 240 to identify the
individual.

[0055]Thus, when a participant 240 submits a request to locate electronic
records, the request may identify the individual that is the subject of
the request using a local ID (e.g., a patient number). In one embodiment,
a given participant 240 may not have, or may not be permitted to access,
demographic information 450 regarding a given individual. For example, a
technician submitting a request to locate electronic records may not have
access to an individual's social security number. However, by including a
local ID 445 with a request, the data locator 120 may be able to
determine a RHIO ID 440 for the individual using alias table 410. Using
this RHIO ID 440, the data locator 120 may retrieve demographic
information 450 for the individual from the master index 215. The polling
data locator 120 may then provide this demographic information 450 as
part of a poll request transmitted to a polled RHIO. In turn, the polled
RHIO may determine a RHIO ID 440 used by the polled RHIO to identify the
individual. This identification process may be repeated by each polled
RHIO. In another embodiment, if no local ID is provided with a request,
then a participant 240 may provide any available demographic information
450 that the data locator 120 may use to determine a RHIO ID 440
associated with the individual that is the subject of a request.

[0056]In one embodiment, master index 215 may include remote RHIO records
table 420. The records table 420 may identify remote RHIOs 230 known to
have, or to not have records regarding an individual identified in table
410. Illustratively, each row of remote RHIO records table 420 includes
the identity 455 of a particular remote RHIO 230, an indication 465 of
whether the particular remote RHIO 230 stores any records related to a
given individual, and an indication 425 of when a remote RHIO 230 was
last polled. Collectively, each row of table 420 is referred to as a
remote records data link 460. As shown, each entry identifying a
particular individual in table 410 may be cross referenced with zero or
more remote data links 460 in remote records table 420.

[0057]When a polled RHIO receives a poll request to determine whether
records related to a given individual exist in the polled RHIO, the
polled RHIO may be configured to provide an indication of whether it has
any electronic records available as part of a poll response. In addition,
the polled RHIO may also provide any remote record data links 460 as part
of a poll response. This allows the polling RHIO to learn whether a RHIO
identified in a remote records data link 460 has any electronic records
available, without having to submit a poll request to the RHIO identified
in a remote records links 460.

[0058]In one embodiment, the participant 240 may submit a request to
locate a comprehensive collection of medical records related to a
particular individual. In response, the data locator 120 may be
configured to determine which remote RHIOs 230 have such records. First,
the data locator 120 may be configured to identify the subject of a
request, for example, by cross referencing a participant's local ID 445
with a RHIO ID 440 for a given individual. Once a RHIO ID 440 is
determined, the demographic information 450 associated with RHIO ID 440
may be transmitted to remote RHIOs 230 as part of a polling message. The
poll asks the remote RHIOs to determine whether any records are available
regarding the individual identified in the poll. After determining a set
of RHIOs known to have records related to the individual is determined,
any relevant electronic records may be assembled by retrieving the
records from RHIOs identified to have records regarding the individual.

[0059]In one embodiment, the request submitted by a participant 240 may
specify a particular set of RHIOs to poll, and optionally, criteria
identifying how comprehensive of a search to perform. FIG. 5 illustrates
components of a record request supplied as part of a multi-node request
125 using an SQL-like grammar. The request grammar illustrated in FIG. 5
is provided solely for illustrative purposes, and other request grammars
may be used. As illustrated in FIG. 5, the multi-node request 125
includes four components: <completeness_criteria> 510,
<return_data> 520, <RHIO_selection> 530 and,
<individual_selection_predicates> 540. Different embodiments may
provide some, or all of the illustrated components, or may provide
different components to allow a participant 240 to submit a request to
locate records regarding a given individual.

[0060]The <completeness_criteria> 510 indicates whether the
participant 240 is requesting all electronic records associated with a
given individual, or a subset thereof. For example, allowed values for
this query component may include "ALL" (retrieve all records across RHIOs
specified in RHIO selection component 530), or a request may be limited
to a specific number of records to retrieve before halting the search.
The <return_data> component 520 specifies which electronic records
should be returned in response to the query.

[0061]The <RHIO_selection> component 530 may be used to indicate the
set of RHIOs to include when searching for records regarding the
individual. In one embodiment, the data locator 120 may default to
locating only records from the RHIO that includes the participant 240
submitting the request 125. The <RHIO_selection> component 530 may
specify that records from remote RHIOS should also be located in response
to the request 125. For example, a <RHIO_selection> component 530
included in the multi-node record request 125, may use a "wildcard" value
such as the "*" character to indicate that all records from any known
RHIO should be located. Alternatively, a particular set of remote RHIOs
230 may be specified. As another alternative, <RHIO_selection>
component 530 may provide selection criteria (e.g., find records for
Individual X from RHIOs located in Minnesota). As described above
regarding FIG. 1, a data node directory 110 may provide a directory of
remote RHIOs that may be polled. In one embodiment, the data locator 120
may use information from the data node directory 110 to determine a set
of RHIOs to poll in order to locate records regarding an individual
identified in request 125.

[0062]The <individual_selection_predicates> 540 may be used to
specify the individual that is the subject of the request. That is, it
identifies whose electronic records the participant 240 is requesting the
data locator 120 to locate. Accordingly, in one embodiment,
<individual_selection_predicates> 540 may include a local ID 445,
used by participant 240 to identify the individual and available
demographic attributes 450. The data locator 120 may use this information
to cross reference the local ID 445, with the RHIO ID 440. In one
embodiment, the request 125 may include additional conditions, such as
what type of record the participant 240 is requesting. For example, a
request 125 may specify that data locater 120 should locate a
comprehensive collection X-rays for the individual.

[0063]FIG. 6 illustrates a method 600 for a polling RHIO to determine a
set of RHIOs that have electronic records regarding a given individual,
according to one embodiment of the invention. At step 610, the data
locator 120 receives a request to locate records for the given
individual. If the data locator 120 determines the request does not
specify records from remote RHIOs should be located, then the request may
be processed without regard to remote RHIOs 230. In such a case, the RHIO
ID 440 for the individual specified in the request is identified, and
registry 140 may be used to locate records in repository 135 that are
available from the RHIO.

[0064]Alternatively, if the request specifies that records from remote
RHIOs 230 should be located, then data locator 120 may be configured to
poll a set of remote RHIOs to determine which ones store records related
to the individual. At step 620, the <RHIO_selection> component 530
is used to determine a set of remote RHIOs 230 to be polled. For example,
the data locator 120 may determine a set of remote RHIOs 230 listed in
directory 110 that satisfy any <RHIO_selection> criteria.
Alternatively, all RHIOs listed in directory 110 may be polled. Before
transmitting poll requests to the set of remote RHIOs 230, however, the
data locator 120 may retrieve data links 460 from records table 420. In
one embodiment, the data locator 120 may be configured to skip submitting
a poll request to any RHIOs identified in a remote records data link 460.
Also, the data links 460 may be included in subsequent poll messages
transmitted to additional polled RHIOs 230. Thus, a poll request may not
only request information from a polled RHIO 230, but may also inform the
polled RHIO 230 regarding RHIOs known to have, or to not have electronic
records regarding the individual that is the subject of the poll request.

[0065]At step 630, the data locator 120 determines whether any
completeness criteria specified in the request is satisfied. For example,
if the remote record table 420 identifies an adequate number of remote
RHIOs 230 known to have electronic records related to the patient, or if
a sufficient number of RHIOs have been polled, the method proceeds to
step 670 and terminates. Otherwise, the data locator 120 polls a remote
RHIO to learn whether the remote RHIO has any records regarding the
individual. At step 640, a loop begins that includes step 650, 660, 670
and 630. During each iteration of the loop, a poll request is sent to a
remote RHIO 230. In one embodiment, the remote RHIO 230 provides a poll
response indicating whether the remote RHIO 230 has any records related
to the individual. Furthermore, the poll response may also include remote
record links 460 indicating other remote RHIOs 230 known to have (or to
not have) records regarding the individual.

[0066]The loop begins at step 650 where a RHIO from the set selected at
step 620 is polled to determine whether it includes electronic records
related to the individual. In one embodiment, the data locator 120 of a
given RHIO (210, 310) sends the RHIO ID 440 and the demographic
attributes 450 for the individual to a remote RHIO 230 being polled. The
remote RHIO 230 receiving the poll request uses this information to first
determine whether an entry in the master index 125 of the remote RHIO
exists for the individual. If so, then records are available for this
individual from the remote RHIO 230, and the poll is answered
affirmatively.

[0067]In addition, a polled RHIO 230 may have remote records data links
460 indicating other RHIOs known to have, or to not have, records related
to the individual identified in the poll request. If so, the polled RHIO
230 may include the data links 460 in a poll response transmitted to a
polling RHIO. Similarly, the polling RHIO may include remote records data
links 460 regarding other RHIOs known to have, or to not have electronic
records related to the individual. This information may be recorded by
the polled RHIO 230 in its master index 215. Thereafter, if one of the
polled RHIOs receives a request to locate records regarding the given
individual, then the polled RHIO may avoid polling some or all of the
potential RHIOs.

[0068]In one embodiment, the polling RHIO performs steps 660 and 670 to
process a response to a poll request. First, the polling RHIO may create
a remote data link 460 indicating whether the polled RHIO has any records
regarding the individual identified in the poll request. In addition, a
polled RHIO may include a list of remote record data links 460 as part of
a poll response. Using this list, the data locator 120 of the polling
RHIO may be configured to update its master index 215 to record any links
460 included in the poll response in remote record table 420.
Additionally, if the poll response includes a link 460 corresponding to a
remote RHIO 230 that is also in the set of RHIOs to be polled, such a
RHIO may be removed from the set.

[0069]After processing a poll response, the method 600 returns to step 630
and determines whether a sufficient number of RHIOs have been polled,
according to <completeness_criteria> 510. If not, the polling RHIO
begins another iteration of steps 650 through 670.

[0070]Although the method 600 illustrates a serial polling process, other
embodiments of the invention may perform a parallel or partially parallel
polling process. In such embodiments, a polling RHIO may transmit a poll
request to multiple polled RHIOs simultaneously. After the polling RHIO
receives responses from the polled RHIOs, the polling RHIO may update its
master index 215 with the set of poll responses and any remote record
data links 460 transmitted with the responses. Additionally, the polling
RHIO may be configured to resolve any conflicts in poll responses. For
example, where a first response indicates that a given RHIO has
electronic records regarding the individual, and a second response
indicates that the same particular RHIO does not have any such records,
the polling RHIO may be configured to disregard any remote record data
links 460. In such a case, the polling RHIO may transmit a poll request
to clarify the status of the particular RHIO.

[0071]Furthermore, once each of the polled RHIOs has provided a poll
response, the polling RHIO may broadcast a follow-up message to the set
of polled RHIOs. In the follow-up message, the polling RHIO may provide
the polled RHIOs with a set of remote data links 460. This allows the
polling RHIO to share a comprehensive set of data links 460 for a given
individual 460 with the each of the polled RHIOs. Thereafter, if the
polling RHIO, or one of the polled RHIOs, receives a request to locate
electronic records regarding the given individual, then a comprehensive
set of RHIOs that have electronic records regarding the individual may be
determined without any poll requests being transmitted at all. In other
words, once the first round of poll requests and responses are exchanged,
each RHIO may have an up-to-date set of data links regarding the
existence of electronic records in the set of polled RHIOs.

[0072]Additionally, as a RHIO processes poll responses, the date/time at
which a particular RHIO was polled may be recorded (e.g., in timestamp
column 470 of remote record table 420). Because the state of a given RHIO
may change over time, a RHIO known to not have records relating to a
given individual, may subsequently obtain such records. Accordingly,
embodiments of the invention may be configured to determine whether
electronic existence data may have become inaccurate or obsolete.

[0073]For example, in one embodiment, remote record data links 460
provided by with a poll response from a remote RHIO may be associated
with an expiration date. If so, a data locator 120 may be configured to
ignore (or delete) a particular data link 460 once it is a certain age
(e.g., one day, one week, one year, etc). If remote record data links 460
from a remote RHIO 230 has expired, the remote RHIO 230 may be polled to
discover the current status of records within the remote RHIO 230.

[0074]In an alternative embodiment, a polled RHIO may periodically review
past poll requests responded to, and selectively notify the respective
polling RHIOs of a change in the status of the polled RHIO (such as when
new records have become available within the polled RHIO since responding
to a given poll request). In one embodiment, the notification may include
only an indication of the status change without specifying the particular
information that has changed. In response, the RHIO receiving an update
modifies its master index 125 to indicate the change of status regarding
the existence of electronic records for the given individual. In another
embodiment, the notification may specify the particular data that has
changed, allowing the polling RHIO being notified to update its data
records. If the RHIO had also shared the (now inaccurate) electronic
records existence data with other remote RHIOs, then the change in status
(or the changed information itself) may be propagated to these other
RHIOs as well.

[0075]FIG. 7 illustrates an example of three RHIOs (RHIO A, RHIO B, and
RHIO C) sending and responding to poll messages, according to one
embodiment of the invention In this example, RHIO A and RHIO C include
data records 705 and 715 related to a particular individual. When a
participant 240 of RHIO A submits a request to locate records related to
this individual, the data locator 120 polls RHIO B and RHIO C, as
represented by poll 1 arrow 720 and poll 2 arrow 730. First, RHIO A
transmits a poll request to RHIO B. Along with the poll request, RHIO A
transmits a remote record data link 460 indicating that RHIO A is known
to have records related to the individual (i.e., records 705).

[0076]In processing the poll request, RHIO B determines that it does not
have any records related to the individual. This information is
transmitted to RHIO A in a poll response message, as indicated by poll 1
response arrow 730. RHIO B also updates its master index 215 to indicate
that RHIO A has records related to the individual.

[0077]RHIO A then transmits a poll request to RHIO C. The poll request
transmitted to RHIO C includes remote record data links 460 indicating
that RHIO A has records regarding the individual. Further, because RHIO A
has received a poll response from RHIO B, the poll transmitted to RHIO C
includes a remote record data links 460 regarding RHIO B, as well. In
processing the poll request, RHIO C determines that it does have records
related to the individual (i.e., records 715). This information is
transmitted to RHIO A, as indicated by poll 2 response arrow 730. Also,
RHIO C updates its master index 215 to indicate (1) that RHIO A does have
records related to the individual, and (2) that RHIO B does not. From
this exchange, RHIOs B and C have learned that RHIO A has records
regarding the individual, without having to poll RHIO A. Similarly, RHIO
C has learned that RHIO B does not have information related to the
patient, without ever querying RHIO B. Subsequently, when a participant
240 in RHIO A requests records related to the individual, it can be
determined that only RHIO C needs to be contacted to retrieve records.

[0078]Thus, the status of each of the three RHIOS is updated and more
knowledgeable about which records are in others. By sharing remote record
data links as part of the poll requests and poll responses, each RHIO
becomes more knowledgeable about which RHIOs have records regarding
particular individuals. Doing so decreases network traffic, and leads to
more efficient data retrieval. Those skilled in the art will recognize
that this method of implementing cross RHIO queries has a number of
distinct advantages over other approaches. For example, embodiments of
the invention do not require a nation-wide, master patient index to
identify all RHIOs that have electronic health records regarding a given
individual. This avoids the technical complexity and privacy issues that
would have to be resolved to create a massive central index. In many
cases, embodiments of the invention will identify a complete set of all
RHIOs containing data for a given individual, without the need to poll
each RHIO for this information. If there have been any previous polls for
the records related to a given individual, embodiments of the invention
require less polling than a brute-force approach.

[0079]Furthermore, subsequent requests for information for the same
patient will be greatly optimized since the master index 215 of the
requesting RHIO has complete information regarding which remote RHIOs 230
contain data for the patient. Because requests for electronic records
related to a given individual may be infrequent and bursty, once the set
of RHIOs that have electronic records related to a given individual, a
number of subsequent requests may be processed in a highly efficient
manner. For example, consider again the unconscious patient in an
emergency room. An initial request for record access may determine the
set of RHIOs that contain data for the individual. Thereafter, as the
individual receives care, a number of follow up queries may be directed
to the RHIOs known to have information related to the individual, without
the need for polling at all. Once the patient is discharged, the patient
may go some time without receiving any further medical care. In such a
case, the remote data links shared among a plurality of RHIOs may expire.
Thus, for the period when requests are most likely to occur, each RHIO
may be aware of what RHIOs to contact for information regarding the
individual. Furthermore, rather than maintain a massive nationwide index
at each RHIO, remote records data may be shared among RHIOs for
individuals with records commonly accessed from multiple RHIOs, without
also maintaining records existence data for individuals whose records are
not the subject of requests for records from other RHIOs.

[0080]While the foregoing is directed to embodiments of the present
invention, other and further embodiments of the invention may be devised
without departing from the basic scope thereof and the scope thereof is
determined by the claims that follow.