CROSS-REFERENCE TO RELATED APPLICATIONS  
       [0001]     This application is a continuation-in-part of U.S. patent application Ser. No. 11/042,904, filed Jan. 25, 2005, currently pending, which itself is a continuation of U.S. patent application Ser. No. 09/561,745, filed Apr. 28, 2000, now abandoned, which itself claims the benefit of U.S. Provisional Patent Application No. 60/131,434, filed Apr. 28, 1999. Further, this application claims the benefit of U.S. Provisional Patent Application No. 60/783,008, filed Mar. 15, 2006, and now pending. The contents of these U.S. patent application Ser. Nos. 11/042,904, 09/561,745, 60/131,434, and 60/783,008, are all hereby incorporated by reference in their entirety. 
     
    
     BACKGROUND OF THE INVENTION  
       [0002]     1. Field of the Invention  
         [0003]     The present application relates to medical records, and specifically, to a method, system, and apparatus for sharing medical records among a set of disparate healthcare databases.  
         [0004]     2. Related Art  
         [0005]     Development has been underway for years to connect disparate healthcare systems to provide access to a complete medical history for a patient. Such efforts are known as “healthcare interoperability” or “interoperable health IT” (see www.hhs.gov/healthit/). A number of architectural approaches have been proposed, discussed and piloted, but there is not yet any single model that has gained wide acceptance and success.  
         [0006]     A model is needed to provide automatic, ongoing updates to a Hub from Provider healthcare systems within the context of a fully functional healthcare interoperability project.  
       SUMMARY OF THE INVENTION  
       [0007]     The invention disclosed here provides an apparatus that initializes and updates Domains, according to a wide variety of possible configurations. One or more instances of the invention, along with any Hubs required by the desired configuration, are added to existing legacy healthcare systems. The operation of the invention thus facilitates the building and maintenance of a network for healthcare information exchange. The invention was created to allow for automatic, ongoing updates to a Hub from Provider healthcare systems within the context of a fully functional healthcare interoperability project. This can only be accomplished if correctness of the data is guaranteed to be maintained.  
         [0008]     Accordingly, in some embodiments, a method is disclosed for updating a database of records having person attributes using an input record containing person attributes and authorization information, wherein the database is associated with a set of authorized provider IDs and wherein each record of the database has a unique provider ID and wherein the authorization information contains either a unique provider ID or a prior-use indicator. The method comprises the steps of comparing a person attribute of the input record to a person attribute for each record in the database and identifying a record in the database as a matched record upon a match therebetween; creating a composite record from the input record and the matched record; writing at least a portion of the input record to the database if the authorization information contains either an authorized provider ID or a prior-use indicator; and generating an output record wherein the output record consists of the input record and wherein the authorization information of the output record contains a prior-use indicator.  
         [0009]     In some embodiments, an apparatus is disclosed which implements Notifications, constrained by a mechanism (a Filter) for enforcing the Single Source Rule.  
         [0010]     In some embodiments, by implementing the Single Source Rule and its concomitant Transactional Integrity Rule, Provider control over its own data is maintained. This feature may be seen as a prerequisite to Provider participation in healthcare interoperability, given Provider fiduciary responsibilities toward their patients, as well as liability, competitive, and privacy concerns, and more.  
         [0011]     In some embodiments, a Display design is disclosed which supports the enforcement of the Single Source Rule.  
         [0012]     In some embodiments, Queries are disclosed which provide for greater flexibility in configuring Domains and providing for additional functionality within healthcare interoperability systems. Queries enable Medical Records to be retrieved from higher-Tier Domains upon demand, and reduce the need to store data locally, or re-enter it.  
         [0013]     In some embodiments, Medical Records belonging to the same Individual Person may be matched.  
         [0014]     In some embodiments, a mechanism is disclosed for assigning Person Identifiers. It may support various Domains configurations, including Tiers, and superset, subset and peer-to-peer relationships among Databases.  
         [0015]     In some embodiments, various mechanisms are provided for filtering data. These include recording the source location of data, screening certain data fields from sharing or display, and processing data in various fashions as passes through the apparatus.  
         [0016]     In some embodiments, cascading is provided. This feature allows it to be used repeatedly to create a widespread and complex network of healthcare interoperability.  
         [0017]     It will be clear to one skilled in the art that the disclosed methods may be implemented in many ways. As non-limiting examples, the databases may be maintained on physical storage devices on one or more servers at different physical locations which can communicate with each other or with a central control microprocessor by TCP/IP or any known network protocol. The same or a different network protocol may also be used for communication between any such control microprocessor and a display recipient or data modifier, or with another server. Alternately, databases may be maintained on a single system (for example, in an intranet environment), where the system also interacts directly with the users. Interfaces may be provided in HTML, in PHP pages, in XML format, in JAVA formats, or in any other appropriate format. SQL, MySQL, Oracle or any such equivalent database format may be used. The database can be embodied, read and written to in other ways known to those skilled in the art; these are only examples.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0018]      FIG. 1  depicts a Trivial Case of a Patient View in accordance with the invention.  
         [0019]      FIG. 2  depicts a Multi-Tiered Patient View in accordance with the invention.  
         [0020]      FIG. 3  depicts a Two-Tiered Domain in accordance with the invention.  
         [0021]      FIG. 4  depicts Person Identifiers Associated with a Tier in accordance with the invention.  
         [0022]      FIG. 5  depicts Person Identifiers in a Two-Tiered Domain in accordance with the invention.  
         [0023]      FIG. 6  depicts a Set of Patient Views Contained in a Hub of a Two-Tiered Domain in accordance with the invention.  
         [0024]      FIG. 7  depicts a Multi-Tiered Domain in accordance with the invention.  
         [0025]      FIG. 8  depicts a Master Person Index for a Multi-Tiered Domain in accordance with the invention.  
         [0026]      FIG. 9  depicts a Peer-to-Peer Relationship Between Hubs in accordance with the invention.  
         [0027]      FIG. 10  depicts Person Identifiers in a Peer-to-Peer Domain in accordance with the invention.  
         [0028]      FIG. 11  depicts a Master Person Index for X Hub of Peer-to-Peer Relationship in accordance with the invention.  
         [0029]      FIG. 12  depicts a Master Person Index for Y Hub of Peer-to-Peer Relationship in accordance with the invention.  
         [0030]      FIG. 13  charts the operation of an embodiment in accordance with the invention.  
         [0031]      FIG. 14  depicts an Example Display Screen in accordance with the Invention.  
         [0032]      FIG. 15  depicts an example of Providers, Users, and Databases in accordance with the invention.  
         [0033]      FIG. 16  depicts an example of a Provider with No Associated Databases in accordance with the invention.  
         [0034]      FIG. 17  depicts an example of a Provider Associated with Multiple Databases in accordance with the invention.  
         [0035]      FIG. 18  depicts an example of an initial configuration of Databases in accordance with the invention.  
         [0036]      FIG. 19  depicts Databases and Hubs in an example configuration of a Domain in accordance with the invention.  
         [0037]      FIG. 20  depicts Subset-Superset Relationships, Replicate Relationships, and Peer-to-Peer Relationships in accordance with the invention.  
         [0038]      FIG. 21  depicts a Topology generated by an example configuration of a Domain in accordance with the invention.  
         [0039]      FIG. 22  depicts an example of Relationships Among Databases in accordance with the invention.  
         [0040]      FIG. 23  depicts an example of initializing a Hub in accordance with the invention.  
         [0041]      FIG. 24  depicts an Example Provider Database After Initialization in accordance with the invention.  
         [0042]      FIG. 25  depicts an example of an Operation of Query Services to Retrieve a Patient View in accordance with the invention. 
     
    
     DETAILED DESCRIPTION  
     Overview  
       [0043]     An apparatus is disclosed for sharing medical records among a set of disparate healthcare databases. The invention provides a cascadable apparatus, one instance of which is connected with each healthcare database. The operation of the apparatus produces a healthcare information network in which all medical records for any individual person can be accessed without compromising control of those records by the provider who generated them.  
         [0044]     The invention takes the approach of controlling the ability to add, update or delete data. The ability to read or view data, on the other hand, may be shared, within configurable limits.  
         [0045]     The invention is built around a body of database computer science theory that is easily understood by anyone with ordinary skill in the art. It keys off of data replication theory, since, practically speaking, all healthcare interoperability projects involve some sort of data replication, even if it is restricted to the replication of demographic data for purposes of building a Master Person Index (MPI). By respecting the design principles of data replication models, the invention ensures that the data sharing actions of healthcare interoperability maintain correctness of the demographic and clinical data presented.  
         [0046]     The apparatus may be disposed as a library of software modules which can be used at the core of a single interoperability application, or which can be installed repeatedly across a set of heterogeneous applications and connected to each other to create a flexible topology over a network of interoperable healthcare systems.  
         [0047]     The invention may alternatively be disposed as an N-tier, web-based application which serves as an out-of-the-box complete healthcare interoperability application, demonstrating the full functionality of the invention.  
         [0048]     For clarity, a framework of definitions and an architectural model bearing similarities to that described in Donham et. al. will now be described. The following definitions are intended to be non-limiting, and are provided only to facilitate review of the specification.  
         [0049]     As used herein, the term “Storage Medium” may refer to any physical medium for storing a database, including RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. A storage medium may be coupled to a processor such that the processor may read information from, and write information to, the storage medium.  
         [0050]     As used herein, the term “Individual Person” may refer to an actual person (as opposed to a computer record associated with a person).  
         [0051]     As used herein, the term “Person Identifier” may refer to a unique identifier indicating an Individual Person.  
         [0052]     As used herein, the term “Demographic Data” may refer to data describing an Individual Person, such as his name, date of birth, address, and so forth.  
         [0053]     As used herein, the term “Clinical Data” may refer to data describing an Individual Person&#39;s medical history or medical condition, such as his lab test results, medication history, immunization history, and so forth.  
         [0054]     As used herein, the term “Meta Data” may refer to other data that is derived from Demographic Data and Clinical Data for an Individual Person, such as the location of Clinical Data, decision support data, disclosure/consent status, and so forth.  
         [0055]     As used herein, the term “Medical Data” may refer to any combination of Demographic Data, Clinical Data and Meta Data.  
         [0056]     As used herein, the term “Location Data” may refer to a special case of Meta Data that indicates the location of an Individual Person&#39;s data across zero or more Databases.  
         [0057]     As used herein, the term “Provider” may refer to an entity that controls particular Medical Data. These Medical Data are said to be “associated with” the particular Provider.  
         [0058]     As used herein, the term “User” may refer to an Individual Person associated with a Provider who can edit and view certain Medical Data associated with that Provider.  
         [0059]     A Provider is usually an organization, with many Users associated with it. In the trivial case, a Provider can be associated with a single Individual Person. This feature allows accommodation of the consumer or patient who wishes to access his own Personal Health Record (PHR).  
         [0060]     As used herein, the term “Medical Record” may refer to the Person Identifier and Medical Data generated by a Provider for an Individual Person.  
         [0061]     As used herein, the term “Patient View” may refer to a recursive assembly of one or more Medical Records and Patient Views, plus a Person Identifier. A single Medical Record is the trivial case of a Patient View.  
         [0062]     As used herein, the term “Matching Algorithm” may refer to a computer software module that determines that two or more Patient Views are in fact associated with the same Individual Person and can be assembled (or “merged”) to create a single Patient View.  
         [0063]     As used herein, the term “Database” may refer to a set of Patient Views, possibly in a persistent data store (such as hard disks, etc.) A database is a computer organization of data in which a unique identifier is assigned to each row in each table. In this discussion, the entire software application including the database may be referred to as a Database, even though software applications may include much more than a “database”—i.e. graphical user interfaces, application servers, etc., and these too are part of the term “Database” as used herein.  
         [0064]     As used herein, the term “Provider View” may refer to the set of all Patient Views in a Database associated with a particular Provider.  
         [0065]     As used herein, the term “Hub” may refer to a Database that stores a plurality of Provider Views.  
         [0066]     As used herein, the term “Master Person Index (MPI)” may refer to the Person Identifier and Demographic Data portions of a Hub.  
         [0067]     As used herein, the term “Display” may refer to any computer workstation, handheld device, terminal, etc. that allows a User to view and edit Patient Views.  
         [0068]     As used herein, the term “Service” may refer to a software program that is made available for use by other software programs through a defined interface.  
         [0069]     As used herein, the term “Query” may refer to an atomic (completed all or none) sequence of Services that retrieves a Patient View from a Database.  
         [0070]     As used herein, the term “Notification” may refer to an atomic (completed either all or none) sequence of Services that sends a Patient View unsolicited from one Database to another. Also called a “Push”.  
         [0071]     As used herein, the term “Issue Query” may refer to a Service that initiates a Query.  
         [0072]     As used herein, the term “Accept Query” may refer to a Service that accepts and processes an Issue Query.  
         [0073]     As used herein, the term “Issue Response” may refer to a Service that responds to an Accept Query.  
         [0074]     As used herein, the term “Accept Response” may refer to a Service that accepts and processes an Issue Response.  
         [0075]     As used herein, the term “Issue Push” may refer to a Service that initiates a Notification.  
         [0076]     As used herein, the term “Accept Push” may refer to a Service that accepts and processes an Issue Notification.  
         [0077]     As used herein, the term “Issue Ack” may refer to a Service that responds to an Accept Notification.  
         [0078]     As used herein, the term “Accept Ack” may refer to a Service that accepts and processes an Issue Ack.  
         [0079]     As used herein, the term “Filter” may refer to a Service that processes a Patient View in some way, often producing Meta Data as output.  
         [0080]     As used herein, the term “Domain” may refer to a network of interconnected Databases in which a path exists (by one or more links) from each Database to every other Database.  
         [0081]     As used herein, the term “Subdomain” may refer to a subset of a Domain which is in itself a Domain.  
         [0082]     As used herein, the term “Tier” may refer to a layer of assembly of Patient Views in which an additional stream of Person Identifiers is necessitated or implied.  
         [0083]     As used herein, the term “Data Replication” may refer to an activity that causes data such as a Patient View to be copied from one Database to another.  
         [0084]     As used herein, the term “Single Source Rule” may refer to a design principle of Data Replication that states that, for any row-column subset of data, one and only one copy within the Domain is editable, and the rest are view-only replicas. The editable copy is referred to as the Single Source.  
         [0085]     As used herein, the term “Transactional Integrity Rule” may refer to a design principle of Data Replication which states that all adds, updates, and deletes applied at the Single Source are to be effectively applied in order to all other replicas.  
         [0086]     Patient View  
         [0087]     The Patient View, defined above, is an abstraction which provides the foundational data structure representing the heterogeneous systems found throughout the healthcare economy. The Patient View is consistent with typical clinical data models. Clinical data models include, for example, the Continuity of Care Document (CCD) published by the American Society for Testing and Materials (ASTM) and Health Level 7 (HL7); and data models supported by Electronic Medical Record (EMR) systems.  
         [0088]     A Patient View may contain just one Medical Record, as depicted in  FIG. 1 . As Medical Records are shared, a multi-Tiered Patient View, depicted in  FIG. 2 , may be aggregated. Such a Patient View is recursively built by associating existing Patient Views with each other and linking them with Person Identifiers from using successive identifier streams.  
       Structure  
       [0089]     An example of the underlying structure of an embodiment of the invention will now be described with reference to  FIGS. 1-12 .  
         [0090]     Domains and Tiers  
         [0091]     Domains and Tiers will now be illustrated with reference to  FIGS. 1-6 .  
         [0092]     Healthcare interoperability implies a network of interconnected Databases. The set of interconnected Databases may be referred to as a “Domain.” To share data, communication should exist, at least temporarily, between each Database and every other Database in the network. The path between any pair of Databases can be via a single communication link or a series of links. In the trivial case, a Domain contains a single Database and no connections.  
         [0093]     A “Tier” is a level of aggregation of Patient Views in which a new system of Person Identifiers is required. For each Tier, some mechanism assigns the new Person Identifiers. In the trivial case, a Database contains a single system of Person Identifiers, as in the case of a Database containing Medical Records. Indexing Tiers to 0, the trivial case is referred to as a “Database”.  
         [0094]     In multi-Tiered Domains, the new Person Identifiers may be stored in a Hub. The new Person Identifiers plus their mappings to Person Identifiers of connected Databases is referred to as a Master Person Index (MPI). Such a Hub may or may not also store other portions of Patient Views, such as Clinical Data.  
         [0095]     In the example of the MPI, in order to aggregate the Demographic Data necessary for building the Hub, connections must be established between the Hub and the Databases in the Domain. A Two-Tiered Domain might contain a single Hub connected to several healthcare Databases, as illustrated in  FIG. 3 .  
         [0096]     The Person Identifiers of the Hub of  FIG. 3  are illustrated in  FIG. 4 . Column 2, “Hub ID”, is the new system of Person Identifiers.  
         [0097]      FIG. 5  also illustrates the Person Identifiers associated the Hub of  FIG. 3 , but includes the mapping of the Tier  1  Person Identifiers to the Person Identifiers of the Tier  0  Databases of the Domain. The association of Columns 3 and 4 to Column 2 gives the mapping of Tier  1  Person Identifiers to Tier  0  Person Identifiers.  
         [0098]     Observe that  FIG. 6  illustrates a Master Person Index, or MPI. Note that  FIG. 5  also includes some Location Data, as it indicates the source of the Person Identifier in Column 3. Finally, note that while Column 2 uniquely identifies an Individual Person, the combination of Columns 3 and 4 also identify an Individual Person. It is an artifact of MPIs that a combination of the source Database, as in column 3, and the unique Person Identifier within that Database, as in column 4, also uniquely identifies an Individual Person. However, for a variety of reasons not discussed here, a new system of Person Identifiers, as in Column 2, is usually created as well.  
         [0099]     For each Tier, some mechanism, such as a Service, must assign the associated Person Identifiers.  
         [0100]      FIG. 5  can also be extended to include other data such as Clinical Data. This is given in  FIG. 6 . Although  FIG. 4  through  FIG. 6  each illustrates a set of Patient Views,  FIG. 4  and  FIG. 5  contain smaller subsets of each Patient View, and  FIG. 6  contains a more complete set of the Medical Data within each Patient View.  
         [0101]     Building Domains  
         [0102]     The model of Tiers and Domains may be extensible to additional Tiers, as will now be illustrated with reference to  FIGS. 7-12 .  
         [0103]     A Multi-Tiered Domain is illustrated in  FIG. 7 .  FIG. 8  shows the Person Identifiers of the Tier  2  Hub of  FIG. 7 . Note a match between a Patient View of Tier  1  Hub X and a Patient View of Tier  1  Hub Y is reflected in the association of Rows 2 and 3 with Row 4 for Patient 2.  
         [0104]     The Tiers of Person Identifiers are reflected on a macro level in the architecture of the Domain, and in the micro level in the Patient View.  
         [0105]     A Domain may also be a combination of Domains. The key is that a connection exists from any Database in the Domain to any other. A subset of a Domain, such as that illustrated by A, B, C, D, and Tier  1  X in  FIG. 7 , is called a “Subdomain.” 
         [0106]     Multi-Tiered Domains contain Single-Tiered Subdomains. The relationship between the each Tier  1  Hub and the Tier  2  Hub of  FIG. 7  is a Subset-Superset relationship. The Tier  2  Hub contains all the Patient Views of each Tier  1  Hub, but neither Tier  1  Hub is required to contain all the Patient Views of the Tier  2  Hub.  
         [0107]     Databases in two Subdomains may also be related by a Peer-to-Peer relationship. A Peer-to-Peer relationship is one in which the Person Identifiers of each Database are mapped to the Person Identifiers of the other. Peer-to-peer Databases have either an “intersection” or “replicate” relationship with each other. In an intersection relationship, a subset of the Patient Views in one Database are also a subset of the Patient Views in the other. In a replicate relationship, each Database contains all the Patient Views of the other. Peer-to-Peer Hubs have what is also known as a “point-to-point” relationship.  
         [0108]      FIG. 8  show a configuration without the Tier  2  Hub of  FIG. 7 . The MPIs of each of the Tier  1  Hubs of the Peer-to-Peer relationship of  FIG. 9  are illustrated in detail in  FIG. 11  and  FIG. 12 .  FIG. 10  depicts Person Identifiers in a Peer-to-Peer Domain in accordance with the invention.  
         [0109]     Note that while each of X and Y contains Person Identifiers for all of the Individual Persons whose Patient Views are stored within its Subdomain, neither has a complete set for the entire Domain. Thus, no single column contains a Person Identifier for each Individual Person in the Domain. If such a system of Person Identifiers is required, the Domain can be reconfigured to appear more like  FIG. 7 : two Hubs in a Peer-to-Peer relationship are interchangeable with two Hubs, each in a common Subset-Superset relationship with a higher-Tier Hub. Peer-to-Peer relationships are useful among small numbers of Databases, such as between a Hub and a Database used for analysis purposes, or between two Databases in a small Domain. In larger Domains, the use of higher-Tier Hubs shortens long chains of Peer-to-Peer relationships and minimizes the total number of connections, improving the performance of operations such as Queries and Notifications.  
       Operation  
       [0110]     An example operation of an embodiment of the invention will now be described with reference to  FIG. 13 . Note that in this and other embodiments, the invention may include a set of services that can be externally exposed, such as through web services. For example, the invention may be packaged for offering as part of a service-oriented architecture (SOA) or other modular approach.  
         [0111]     Making reference to  FIG. 13 , the dotted-line boxes labeled “1a Query Services” and “2a Notification Services” together represent a single instance or occurrence of the apparatus. In its present embodiment, both “1a Query Services” and “2a Notification Services” and all supporting Services are present. However, only “2a Notification Services” is required for a minimum embodiment.  
         [0112]     Query services  1   a  includes 
        Issue Query     Accept Query     Issue Response     Accept Response        
 
         [0117]     Notification services  2   a  includes: 
        Issue Push     Accept Push     Issue Ack (Issue Push Acknowledgement)     Accept Ack (Accept Push Acknowledgement)        
 
         [0122]     Services that support  1   a  and  2   a  include: 
        A Matching Algorithm  3   a  and  3   b.       Mechanisms for issuing Person Identifiers  4 .     A filter  5  that enforces the Single Source Rule.     Other filters  6  such as data location filters, confidentiality filters, decision support filters, etc.     Services that read and write 7 Patient Views to and from a Database.        
 
         [0128]     The user interface Display  8  provides certain Services to users who enter and edit data. These Services include: 
        Invoke a search  9  for a Patient View.     Manually verification  10  of a record match.     Create a new Patient View  11 .     Display a Patient View  12  to a user.     Accept Patient View  12  edit actions from a user.     Accept a “save Patient View”  13  action from a user.        
 
         [0135]     The above services, however, are all non-limiting examples, and the full scope of the invention is independent of any particular implementation of any Service. For example, the invention supports different Patient View models, interfaces to different relational databases, different Matching Algorithms, different Filters etc. Likewise, the Display may be built to perform the above functions, be adapted from an existing Electronic Medical Record (EMR) or other legacy application, etc.  
         [0136]     Database Reads and Writes  
         [0137]     Database reads are done during the course of the Matching Algorithm  3   a  and  3   b  in Query Services  1   a  and Notification Services  2   a  respectively. Writes  7  are done in the course of Notification Services  2   a . The read and write Services are performed on Databases associated with the apparatus of  FIG. 13 .  
         [0138]     In the present embodiment, each instance of Query Services  1   a  and Notification Services  2   a  is associated one Database. In another embodiment, the apparatus may be associated with more than one Database. Such Databases may be replicas of each other, produced for performance or fault tolerance reasons, or they may be parallel arrays of Databases.  
         [0139]     Data Replication  
         [0140]     Notification Services  2   a  implements Data Replication. In this discussion, Data Replication consists in copying a Patient View or portion thereof from one Database to another. For example, when a Hub is created with a MPI, Patient Views originating at Provider Databases are replicated to the Hub, at least in part (i.e., the Person Identifiers and the Demographic Data), through the Issue Push and Accept Push Services. Usually, Data Replication is thought of as associated with Notification Services rather than Query Services. In this invention, however, Data Replication is also an effect of executing Issue Query and Accept Response Services, followed by an Issue Push of the results into a local Database.  
         [0141]     Two principles, which are by way of this disclose believed to be clear to one ordinarily skilled in the art, ensure correctness in a system of Data Replication. 
        1. Single Source Rule: for any row-column subset of data, one and only one copy within the Domain is editable, and the rest are view-only replicas. For purposes of this discussion, this copy is called the Single Source.     2. Transactional Integrity Rule: All adds, updates, and deletes applied at the Single Source are applied in order to all other replicas.        
 
         [0144]     The “in order” part of Transactional Integrity Rule is more important than the fact that the updates are applied. If updates are not applied at all to replicas, then the replicas will be out of date with respect to the original. However, if transactions are applied out of order, or if the Single Source Rule is not respected, then the replica could actually be incorrect with respect to the original.  
         [0145]     It is thus important that correctness be maintained in any interoperability solutions involving Data Replication. The invention implements the Single Source Rule through the use of an Edit Rules Filters. The Transactional Integrity Rule is enforced through the apparatus design.  
         [0146]     Filters  
         [0147]     Note the use of Filters in  FIG. 13 . A Filter is any type of processing that is done on a Patient View, taking advantage of the fact that Medical Records from various Providers for one Individual Person have been assembled. A Filter may produce output in the form of Meta Data. A patient locator may be considered a form of filtering, as it produces Meta Data indicating that one portion of the Clinical Data for an Individual Person resides in one location and another portion elsewhere.  
         [0148]     Other Filters include: 
        Disclosure/consent, which gives information about the Individual Person&#39;s knowledge that his Medical Records are being shared, and his permission to share them;     Decision support, which applies clinical rules to the Patient View and aid Users in making clinical decisions. A Vaccine Forecast Module (VFM), which predicts the next immunizations due based upon Advisory Committee on Immunization Practices (ACIP) rules, is an example of a decision support Filter.     Data validation. A Filter that reviews an immunization history, marks all the vaccines as valid or invalid according to clinical rules, and numbers doses, is an example.     Semantic interoperability. Formatting the various Medical Records in a Patient View to use common data definition tables, such as LOINC or SNOMED codes, is an example.     Edit Rules filter. The Edit Rules Filter is a unique and essential feature of the invention. It enforces Provider control over the editing of its own data, and allows the invention to operate without introducing correctness errors into Patient Views as they are updated from multiple Provider sources.        
 
         [0154]     Edit Rules Filter  
         [0155]     Notification Services  2   a  contains an Edit Rules Filter. The Edit Rules Filter enforces the Single Source rule of Data Replication. The edit rules Filter restricts the editing of any Medical Record portion of a Patient View to Users of the Provider associated with it. Each Issue Push Service carries information about the Provider who invoked it. This information is passed from Notification Services  2   a  to Notification Services  2   c , and so forth, as the Notification Services are cascaded.  
         [0156]     Notification Services  2   a  queues any subsequent Push messages in stable storage. By doing this as part of the atomic Notification Services process, and by properly handling errors and failures, the invention may ensure that edits are cascaded throughout the Domain in the order they occur.  
         [0157]     Through the integrity of the Notification Services, the invention may conform to the Transactional Integrity Rule.  
         [0158]     Display  
         [0159]     A user interface Display  8  is also depicted in  FIG. 13 .  
         [0160]     The user interface Display may be designed to respect the edit rules enforced by the Edit Rules Filter. It may thus permit Users to edit only those portions of the Patient View associated with the same Provider the Users are associated with.  
         [0161]     An example Display is further depicted in  FIG. 14 . In the example, a top portion of a user screen displays Demographic Data generated by the Provider associated with the User&#39;s login, while Demographic Data generated by other Providers is displayed in the lower half of the screen. The top half of the screen allows editing, while the bottom half does not.  
         [0162]     In some embodiments, confidentiality filters may also be applied in this fashion. For example, some data fields may be masked for portions of the Patient View associated with other Providers, while the equivalent data fields are visible for portions of the Patient View associated with the User&#39;s Provider.  
         [0163]     Note the manual verification function  10  of  FIG. 13 . The Manual Verification  10  allows a User to consider a Patient View and manually select from a list of potentially matching Patient Views as returned by the Matching Algorithm  3   a . This occurs if and when Matching Algorithm  3   a  is unable to make a determination automatically, usually a small percentage of the time. The Manual Verification  10  may be performed in one embodiment by an operator reviewing indeterminate matches resulting from a batch load of Patient Views.  
         [0164]     Ability to Cascade  
         [0165]     Note that the Query Services  1   a  and Notification Services  2   a  of  FIG. 13  can be cascaded.  
         [0166]      FIG. 13  shows that the Query Services  1   a  activated by an Issue Query service invoked by another instance of Query Services,  1   b . Likewise, a path through the logic of  1   a  results in one or more invocations of Issue Query, received by the corresponding Accept Query of one or more instances of Query Services  1   c.    
         [0167]     Likewise, a path through the logic  FIG. 13  shows the Notification Services  2   a  activated by an Issue Push invoked by another instance of Notification Services,  2   b . A path through the logic of  2   a  results in one or more invocations of Issue Push, received by the corresponding Accept Push of one or more instances of Notification Services  2   c.    
         [0168]     The ability to cascade is an important feature of the invention that allows for the flexible configuration of Domains.  
         [0169]     Configuration  
         [0170]     Each instance of the invention may be configured to specify its connection and type of relationship with: 
        Databases.     User interfaces displays.     Other instances of the invention.     Other configurable aspects such as the Service that issues Person Identifiers. 
 
 The configuration of instances of the invention across a set of cooperating healthcare databases determines the operation of the network for interoperability. 
       
 
         [0175]     Constructing a Domain  
         [0176]     This section will illustrate how a Domain may be constructed and maintained using the invention, making reference to  FIGS. 15-18 .  
         [0177]     Consider a starting state consisting of a number of independent, heterogeneous healthcare Databases. Each Database is associated with a Provider, as in  FIG. 15 . Users associated with the Provider are authorized to view and edit the data. This association is created through logins, through which Users access a Display connected to the invention, or submit a Batch Load.  
         [0178]     It is possible that a Provider is not associated with any Databases, as in  FIG. 16 , or with more than one, as illustrated in  FIG. 17 . The former is representative of unautomated healthcare providers, and the latter is representative of large, multi-facility providers with extensive automation.  
         [0179]     Each Database may have a system of Person Identifiers assigned to its Individual Persons. Such Databases represent Tier  0  Databases.  
         [0180]     To build the Domain, all of the Databases that will be connected are identified. In the starting state, all of the Databases are unrelated, although they are available for connecting via the Internet or other network technology.  
         [0181]      FIG. 18  illustrates an example situation in which some Providers are not associated with any Database, and others with more than one Database. All of the Databases may accordingly be considered Tier  0  Databases.  
         [0182]     Creating the Topology  
         [0183]     Next, resources are added, as illustrated in  FIG. 19 . These include Hubs and instances of the invention. The invention is installed and connected to the Hubs.  
         [0184]     Optionally, the invention may be installed at Provider locations and connected to Provider Databases. These will be used to implement the Queries and Notifications between the respective Tier  0  Databases and the Hubs.  
         [0185]     Relationships  
         [0186]     Next, the instances of the invention in the Domain are configured to produce the desired architecture for interoperability, as illustrated in  FIGS. 20-22 . Connections are indicated between instances of the invention and: 
        1. Databases. Each instance of the invention may be related to 1 or more Databases for purposes of reading and writing.     2. Other instances of the invention. The relationships are based upon the sets of Patient Views stored in the Databases associated with each pair. The choices are These relationships are summarized in  FIG. 20 : 
            Subset-Superset Relationship     Replicate Relationship     Peer-to-Peer Relationship    
            3. Displays. Each instance of the invention may be associated with 1 or more Displays for purposes of interfacing with Users who are editing data and who may be resolving indeterminate matches returned by the Matching Algorithm.     4. Other configurable items such as the Service that issues Person Identifiers.        
 
         [0194]      FIG. 21  shows the eventual topology of the example Domain. Connections shown among the Tier  0  Databases and the Hubs and between pairs of Hubs are shown. The corresponding relationships are given in  FIG. 22 .  
         [0195]     Initialization  
         [0196]     Initialization is illustrated in  FIGS. 23 and 24 . An initialization process executes Notification Services, or the equivalent, on existing Medical Records to build the shared Patient Views throughout the Domain. Thereafter, Patient Views are maintained in response to edit actions (by Users), which initiate chains of Notifications.  
         [0197]     The initialization process includes building the Hubs. This is illustrated in  FIG. 23 . Recall that some Hubs may contain only MPIs; in this case, only Person Identifiers and Demographic Data may be replicated to the Hub. (Usually the Matching Algorithm uses only Demographic Data, although it is possible to use Clinical Data as well to make a match.)  
         [0198]     The Matching Algorithm is executed in creating the Patient Views. Where the Matching Algorithm is unable to decide whether two Patient Views match, the manual verification utility is invoked via the Display and a User must manually resolve the matches.  
         [0199]     Note the plurality of Provider Views within the Hub in  FIG. 23 .  
         [0200]     The Domain can also be configured to push data from Hubs back to contributing Provider Databases. Consider the example of  FIG. 24 , reflecting the state of the Database A after initialization. A in the example is configured to accept Notifications of Patient Views from the Tier  1  X Hub for their common patients. Upon receiving and matching Patient Views from other Databases such as B and C, Tier  1  Hub X is able to determine which are in common with A and forward them.  
         [0201]     Query Services  
         [0202]      FIG. 25  illustrates the operation of Query Services to retrieve a Patient View. In most installations, much data throughout the Domain will not be replicated. This is for a variety of reasons: opt-out considerations, competitive considerations, and limits to the practicality of replicating all data. Therefore, often, the Domain will be searched in response to User demand for a particular Patient View. This is accomplished via Query Services.  
         [0203]     A Patient View may be assembled on demand, viewed by a User, and discarded. In this case, a search or Query must be executed against each Database that might have a Medical Record participating in the Patient View. The Matching Algorithm must be run against each of these Databases to select the Medical Records for the Individual Person associated with the Patient View. Matching records, if any, are returned.  
         [0204]     Query Services may handle this by forwarding Issue Query requests to connected instances of the invention until a match is found, or it can be concluded that none exists. Alternatively, a Patient View may be built in stages. First, Query Services searches the Domain until a match is found in an MPI. Next, Location Data is used by a Filter to retrieve further Medical Data such as Clinical Data and assemble it in a Patient View. Other configurations may also be used.  
         [0205]     Related Systems  
         [0206]     Some contemporary systems incorporate elements similar to Notifications as described herein, but the Notifications are not practically repeatable. No contemporary system provides an apparatus that enforces the Single Source Rule, and that can be cascaded into a network. Due to the lack of explicit prohibitions to subsequent data editing at the Notification destination in all known systems, repeated, automatic updates produce data inconsistencies and incorrectness that corrupt the participating databases.  
         [0207]     An abstraction similar to the Patient View is described in U.S. Pat. No. 6,347,329 to Evans. Evans, however, is concerned with the electronic organization and management of medical data, and lacks features provided in the presently disclosed subject matter.  
         [0208]     Similar concepts appear in U.S. Pat. No. 5,560,005 to Hoover. Hoover describes what would currently be referred to as “semantic interoperability”—the mapping of heterogeneous models to a common scheme. Hoover also provides something like an “object broker”—a way to locate and retrieve such data in a network of healthcare systems. Hoover too lacks features provided in the presently disclosed subject matter.  
         [0209]     U.S. Pat. No. 5,664,109 to Johnson appears to allow for searches for patient records based upon demographic data, and links related records within a repository. However, Johnson&#39;s invention is not suitable for widespread sharing of structured data among multiple providers. Johnson does not provide the cascading that is essential to the configuration of large and complex interoperability networks, as well as other features provided in the presently disclosed subject matter.  
         [0210]     U.S. Pat. No. 5,915,240 to Karpf makes use of a concept similar to data replication from a central repository to client databases. However, Karpf also fails to provide for editing restriction based upon provider ownership of data, and hence fails to address the needs of data replication among multiple providers. Karpf also fails to teach any concept of cascading, as well as other features provided in the presently disclosed subject matter.  
         [0211]     An article by Gomer Thomas et al. (Gomer Thomas, Glenn R. Thompson, Chin-Wan Chung, Edward Barkmeyer, Fred Carter, Marjorie Templeton, Stephen Fox, Berl Hartman, “Heterogeneous Distributed Database Systems for Production Use. ACM Computing Surveys, Vol. 22, No. 3, September 1990) and Hoover (col. 4 line 51) discuss a sybase replication server, which embodies some principles of Single Source Rule, a definition for which is given above in this disclosure. This concept is believed to be understood by the developers of Sybase Replication Server as the simplest and most effective way of maintaining data correctness across data replication schemes. Sybase Replication Server, however, does not provide an apparatus which automatically enforces these rules. It relies instead upon the software developer to properly design his databases and applications to embody these concepts. It is also invasive, as it works directly off of the DBMS transaction log. Such invasiveness would not be allowed under most current healthcare system security policies today. Sybase Replication Server cannot be practically retrofitted to legacy healthcare applications on a widespread basis, and therefore fails in a number of ways compared to the present disclosure. In addition, Sybase Replication Server lacks many features provided in the presently disclosed subject matter.  
         [0212]     Another article (“Application Protocol for Electronic Data Exchange in Healthcare Environments Version 2.5”. June, 2003.) refers to Health Level Seven (HL7). The design of HL7 Version 2 and Version 3 reflect the need for both Queries and Notifications by including both types of messages. However, HL7 alone is also not sufficient to solve the objectives of the invention. HL7 contains merely definitions of different types of messages, and lacks many features provided in the presently disclosed subject matter.  
         [0213]     A model set forth in Greg W. Donham and Tony Mallia, “The Architecture of the FHIE”. Journal of AHIMA/July-August 2006 p. 60-66 describes how the Department of Defense (DoD) and Veterans Administration (VA) use “Domain Relationships” to connect existing healthcare systems. However, this model lacks many features of the presently claimed invention.  
         [0214]     In summary, the references discussed above all lack parts of the present invention. Some references incorporate Notifications, but these Notifications are not practically repeatable. Due to possibility of subsequent data editing at the Notification destination, which is not explicitly prohibited, repeated, automatic updates would produce data inconsistencies and incorrectness that would corrupt the system. Also, none of the above references provide an apparatus that can be cascaded. Queries and Notifications can been described over one or two sources and destinations, but do not provide the cascading, with supporting set of features, necessary for the complete configuration of a large and complex network.  
         [0215]     The previous description of some aspects is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects without departing from the spirit or scope of the invention. For example, one or more elements can be rearranged and/or combined, or additional elements may be added. Thus, the present invention is not intended to be limited to the aspects shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
To update a database of records having person attributes using an input record containing person attributes and authorization information, a person attribute of an input record is compared to a person attribute for each record in the database, and records in the database are identified as matched records. A composite record is created from the input record and the matched record. A portion of the input record is written to the database if the authorization information contains either an authorized provider ID or a prior-use indicator. An output record is thus generated consisting of the input record and authorization information containing a prior-use indicator. A cascade of a first instance and a second instance wherein the database comprises a first database in the first instance and a second database in the second instance may be performed.