Skip Navigation Links | |
Exit Print View | |
Developing Oracle Java CAPS Master Patient Indexes Java CAPS Documentation |
Developing Oracle Java CAPS Master Patient Indexes
Oracle Java CAPS Master Patient Index Overview
About Oracle Java CAPS Master Patient Index
The Oracle Java CAPS Master Patient Index Solution
Standardization and Matching Logic
Oracle Java CAPS Master Patient Index and HIPAA
Oracle Java CAPS Master Patient Index Repository Components
Match Engine Configuration Files
Oracle Java CAPS Master Patient Index Runtime Environment Components
Oracle Java CAPS Master Patient Index Enterprise Records
Master Index Development Process Overview
The Master Patient Index Framework and the Runtime Environment
Before You Begin Developing a Master Index
Preliminary Data Analysis for a Master Index
Planning a Master Index Project
Master Index Project Initiation Checklist
Custom Plug-ins for Master Index Custom Transaction Processing
Master Index Update Policy Plug-ins
Master Index Field Validation Plug-ins
Master Index Field Masking Plug-ins
Master Index Match Processing Logic Plug-ins
Custom Match Processing Logic Methods
Custom Match Processing Logic Plug-in Requirements
Custom Match Processing Configuration
Master Index Custom Plug-in Exception Processing
Custom Plug-Ins for Master Index Custom Components
Master Index Survivor Calculator Plug-ins
Master Index Query Builder Plug-ins
Master Index Block Picker Plug-ins
Master Index Pass Controller Plug-ins
Standardization Engine Plug-ins
Phonetic Encoders Plug-ins for a Master Index
Implementing Master Index Custom Plug-ins
Creating Master Index Custom Plug-ins
Building Master Index Custom Plug-ins
Generating the Master Index Application
To Generate the Application for the First Time
Master Index Database Scripts and Design
Master Index Database Requirements
Database Platform Requirements
Master Index Database Structure
Designing the Master Index Database
Designing for Performance Optimization
Creating the Master Index Database
Step 1: Analyze the Master Index Database Requirements
Step 2: Create a Master Index Database and User
Step 3: Define Master Index Database Indexes
Step 4: Define Master Index External Systems
Master Index Database Table Description for sbyn_systems
Step 5: Define Master Index Code Lists
To Customize Common Table Data for Oracle
To Customize Common Table Data for SQL Server
Step 6: Define Master Index User Code Lists
Master Index Database Table Description for sbyn_user_code
Step 7: Create Custom Master Index Database Scripts
Step 8: Create the Master Index Database Structure
To Create the Database Structure
Step 9: Specify a Starting EUID for a Master Index
Deleting Master Index Database Tables and Indexes
To Delete Database Tables and Indexes
Defining a Database Connection Pool Through the Application Server
Step 1: Add the Oracle Driver to the Application Server
Step 2: Create the JDBC Connection Pools
To Create the JDBC Connection Pools
The following topics provide an overview of Oracle Java CAPS Master Patient Index and how it works with other Java CAPS components. They also include descriptions of the design-time and runtime components of a master patient index.
In today’s healthcare environment, vital patient data is generated and stored in several systems throughout an organization. Each of these systems typically assigns its own, independent local identifiers, making it difficult to share information between systems and departments. It is also difficult to create a comprehensive, reliable view of each patient across a healthcare enterprise.
Patient information should flow seamlessly and rapidly between internal systems and departments throughout the entire healthcare network, and each department should have access to the most current and reliable patient data. As organizations grow, merge, and form affiliations, sharing data between different information systems becomes a complicated task. Oracle Java CAPS Master Patient Index can help you manage this task and ensure that the data you have is the most current and accurate information available.
The topics below provide information about Oracle Java CAPS Master Patient Index and how it provides a solution for sharing and cleansing patient data.
Oracle Java CAPS Master Patient Index is an enterprise-wide master patient index (EMPI) built on the Oracle Java CAPS Master Index (Repository) platform. It provides a comprehensive, reliable view of patient information by uniquely identifying patients throughout a healthcare enterprise and maintaining the most current information about those patients. With Oracle Java CAPS Master Patient Index, it is possible to create a single source of patient information that synchronizes with your existing systems.
Oracle Java CAPS Master Patient Index cross-references data from all connected systems and automates record matching across disparate systems, simplifying the process of sharing data between departments and facilities. Oracle Java CAPS Master Patient Index is highly flexible and customizable, and you can configure the master index as needed to meet your data processing needs. The master index uniquely identifies each patient record throughout an organization to ensure that the most current and accurate data is available.
Oracle Java CAPS Master Patient Index provides an automatic, common identification process regardless of the system from which data originates. Records from various locations are cross-referenced using an enterprise-wide unique identifier assigned by Oracle Java CAPS Master Patient Index, allowing the master index to use the local identifiers generated by your internal systems to create an index of patient records. In addition, Oracle Java CAPS Master Patient Index employs configurable probabilistic matching technology, which uses a matching algorithm to formulate an effective statistical measure of how closely records match based on the data fields you specify. Using this matching logic, Oracle Java CAPS Master Patient Index consistently and precisely identifies patient records, flagging potentially duplicate records and automatically joining records that are considered a match. In this way, Oracle Java CAPS Master Patient Index provides continuous data cleansing as records are processed.
Oracle Java CAPS Master Patient Index centralizes the information about the patients that participate within your organization. Maintaining a centralized database for multiple systems enablesOracle Java CAPS Master Patient Index to integrate data throughout the enterprise while allowing your existing systems to continue to operate independently. The database, which is accessible throughout the enterprise, stores copies of local system records and their associated single best records (SBRs), which represent the most accurate and complete data for each patient. To facilitate up-to-date records in each system, you can configure Oracle Java CAPS Master Patient Index to generate a message to a JMS Topic each time a record is updated, added, merged, or unmerged in the master index. Using the Oracle Java CAPS Enterprise Service Bus (ESB), this information becomes available to those systems that are able to accept incoming messages.
Oracle Java CAPS Master Patient Index provides a predefined data structure based on standard healthcare data requirements that can be used as is or can be easily customized if needed. Before deploying Oracle Java CAPS Master Patient Index, you define the components and processing capabilities of the system to suit your requirements. The matching and standardization rules, survivorship rules, queries, Patient Enterprise Data Manager (Patient EDM) appearance, and field validation rules can all be used as is or can be configured to better meet the needs of your organization. In essence, you control the data structure and the logic that determines how data is updated, standardized, weighted, and matched.
The data structure and processing logic is stored in a set of XML configuration files that are predefined but that can be customized. These files are defined within the context of Java CAPS project and are modified using the XML editor provided in NetBeans. You can also use the graphical configuration editor to customize some of the master patient index configuration.
Sharing data requires overcoming data quality problems such as name and address changes, transpositions, and phonetically similar names to be able to uniquely identify the same patient across multiple systems. Oracle Java CAPS Master Patient Index uses the Oracle Java CAPS Match Engine, a proprietary algorithm for probabilistic matching of patient records and data standardization. As records are processed through Oracle Java CAPS Master Patient Index, the standardization engine normalizes and phonetically encodes specified data and the match engine identifies records that potentially represent or do represent the same patient. The match engine uses user-defined logic, including configurable matching thresholds, comparison functions, data fields, and so on.
When comparing two records to determine the likelihood of a match, the match engine compares the match fields you specify between the records to determine a matching weight for each match field based on the reliability of the field and the comparison function used. The sum of the weights of the match fields is the total matching weight between the two records. The logic used by the standardization and match engines is highly customizable to provide the most reliable matching for the type of data you store.
Oracle Java CAPS Master Patient Index provides alias name processing in the form of custom plug-ins to help find or match patient records in cases where the patient’s name has changed or a nickname is used. In the default configuration, a name is added to a patient’s alias list when a maiden name is added or updated and when a patient’s first, last, or middle name is modified. Searches can be performed against a patient’s primary and alias names, providing broad search capabilities and improving the chance of finding a match.
The Patient EDM is the web-based user interface for Oracle Java CAPS Master Patient Index. The Patient EDM supports all the necessary features for maintaining data records. It allows you to add new records; view, update, deactivate, or reactivate existing records; and compare records for similarities and differences. From the Patient EDM, you can perform searches using a variety of criteria and search types for a specific patient or a set of patients. For certain searches, the results are assigned a matching weight that indicates the probability of a match.
One of the most important features of Oracle Java CAPS Master Patient Index is its ability to match records and identify possible duplicates. Oracle Java CAPS Master Patient Index also provides the functionality to correct any duplication. Potential duplicate records are easily corrected by either merging the records in question or marking the records as “resolved”. If you find two records to represent the same person, you should merge the records (at either the enterprise record or system record level). At the enterprise record level, you can determine which record to retain as the active record. At the system level, you can determine which record to retain and which information from each record to preserve in the resulting record.
Finally, Patient EDM provides standard reports that provide information about the current state of the data in the master index, helping you monitor stored data and determine how that data needs to be updated. Report information also helps verify that the matching logic and weight thresholds are defined correctly. Standard reports are available through a command line or the Patient EDM. You can also create custom reports using any ODBC-compliant reporting tool, SQL, or Java.
Oracle Java CAPS Master Patient Index provides full audit capabilities in support of the Health Insurance Portability and Accountability Act (HIPAA) mandates. Transaction histories are stored in the database to track every change to every record and provide before and after images as well as who made the changes and when. In addition, the audit log maintains a record of each time patient data is accessed or viewed in the master index database, including who accessed the data and when. The audit log and transaction history can both be viewed on the Patient EDM.
Oracle Java CAPS Master Patient Index has two types of components: Repository and runtime. The Repository components work within NetBeans and are used during the design and configuration phases to create and customize the master patient index and to define connectivity between external systems and Oracle Java CAPS Master Patient Index. The primary Repository components include the following:
Oracle Java CAPS Master Patient Index provides the following editors to help you customize the files in the Oracle Java CAPS Master Patient Index project.
Configuration Editor (Repository) - Allows you to customize certain portions of the XML configuration files using a graphic interface. The Configuration Editor provides validation services for file structure and syntax.
XML Editor - Allows you to review and customize the XML configuration files. The editor provides schema validation services and verification for XML syntax. The XML editor is automatically launched when you open a Oracle Java CAPS Master Patient Index configuration file.
Text Editor – Allows you to review and customize the database scripts for the master index. This editor is very similar to the XML editor but without the verification services. The text editor is automatically launched when you open a Oracle Java CAPS Master Patient Index database script or configuration file.
Java Source Editor – Allows you to create and customize custom plug-in classes for the master index application. This editor is a simple text editor, similar to the Java Source Editor in the Java Collaboration Editor. The Java source editor is automatically launched when you open a custom plug-in file.
Oracle Java CAPS Master Patient Index is implemented within a project in NetBeans. The Oracle Java CAPS Master Patient Index project includes a set of configuration files, database files, and custom plug-ins that you can modify in order to customize your master index implementation. It includes additional components that are automatically updated when you generate the project, including a method Object Type Definition (OTD), an outbound OTD, Business Process methods, database scripts, and application JAR files. To complete the project, you create a Connectivity Map and Deployment Profile.
Additional Java CAPS components can be added to the client projects that share data with Oracle Java CAPS Master Patient Index, including Services, Collaborations, OTDs, Web Connectors, Adapters, JMS Queues, JMS Topics, Business Processes, and so on.
The primary Oracle Java CAPS Master Patient Index project components include the following. Each is described in more detail below.
The following figure illustrates the project and Environment components of Oracle Java CAPS Master Patient Index.
Figure 1 Master Patient Index Design-Time Components
These files define the configuration of the runtime environment, such as the object structure, how matching is performed, how the SBR is created, and so on. The runtime components configured by these files are listed in Oracle Java CAPS Master Patient Index Runtime Environment Components
Object Definition - Defines the data structure of the object being indexed in a master patient index application.
Enterprise Data Manager - Configures the search functions and appearance of the Patient EDM, along with debug information and security information for authorization.
Candidate Select - Configures the Query Builder component of the master index application and defines the queries available for the index.
Match Field - Configures the Matching Service and defines the fields to be standardized or used for matching. It also specifies the match and standardization engines to use.
Threshold - Configures the Manager Service and defines certain system parameters, such as match thresholds, EUID attributes, and update modes. It also specifies the query from the Query Builder to use for matching queries.
Best Record - Configures the Update Manager and defines the strategies used by the survivor calculator to determine the field values for the single best record (SBR). You can define custom update procedures in this file.
Field Validation - Defines rules for validating field values. Rules are predefined for validating the local ID field and you can create custom validation rules to plug in to this file.
Security - This file is a placeholder to be used in future versions.
These scripts contain the SQL statements used to create the database and the required start-up data. A script is also included to create additional indexes against the database based on the predefined blocking query. A script to drop the database is provided for testing purposes.
Systems - Contains the SQL insert statements that add the external systems you specified in the wizard to the database. You can define additional systems in this file.
Code List - Contains the SQL statements to insert processing codes and drop-down list values into the database. Some of the entries in this file are generated by the wizard. Code lists must be defined in this file to make them available to the master index application.
Create Person database - Defines the structure of the master index database based on the object structure specified in the wizard. You can customize this file and then run it against a database instance to create a customized master index database.
Create User Indexes - Defines indexes against the fields that are defined for the blocking query in the Candidate Select file. You can define additional indexes if needed.
Create User Code Data - Provides a sample script for adding data to the sbyn_user_code table.
Drop Person database - Used primarily in testing when you need to drop existing database tables and create new ones. The delete script removes all tables related to the master index application so you can recreate a fresh database for your project.
Drop User Indexes - Used primarily in testing, when you need to drop existing indexes, or for loading large batches of data, when indexes can slow down the process. This script removes all indexes defined in the Create User Indexes script.
Custom plug-ins allow you to incorporate custom logic into Oracle Java CAPS Master Patient Index by creating user-defined Java classes. Several custom plug-ins are already provided that automatically create aliases for person names when certain updates are made to a record. For example, if the first, last, middle, or maiden name is changed during a transaction, the previous name is added as an alias.
These files define characteristics of the standardization and matching processes. The configuration files under that Match Engine node define certain weighting characteristics and constants for the match engine. The configuration files under the Standardization Engine node define how to standardize names, business names, and address fields. You can customize these files as needed.
The outbound OTD in the Oracle Java CAPS Master Patient Index project is based on the object structure define in the Object Definition file. The OTD is used for distributing information that has been added or updated in Oracle Java CAPS Master Patient Index to external systems. It includes the objects and fields defined in the Object Definition file plus additional SBR information (such as the create date and create user) and additional system object information (such as the local ID and system code). If you plan to use this OTD to make the master index application data available to external systems, you must define a JMS Topic in the master index Connectivity Map to which the master index application can publish transactions.
These methods are used in Collaborations and Business Processes to process data through the master index. These methods are generated dynamically based on the object structure defines in the Object Definition file. The names, parameter types, and return types of these methods vary based on whether you modify the object structure in the Object Definition file. These methods are described in Understanding Oracle Java CAPS Master Index Processing (Repository).
The master index project Connectivity Map consists of two required components: the web application service and the application service. Two optional components are a JMS Topic for broadcasting messages and a database Adapter for database connectivity. In client project Connectivity Maps you can use any of the standard project components to define connectivity and data flow to and from the master index application. Client projects include those created for the external systems sharing data with the index through a Collaboration or Business Process.
For client projects, you can use connectivity components from the master index server project and any standard Java CAPS connectivity components, such as OTDs, Services, Collaborations, JMS Queues, JMS Topics, and Adapters. Client project components transform and route incoming data into the master index database according to the rules contained in the Collaborations or Business Processes. They can also route the processed data back to the appropriate local systems through Adapters.
The Deployment Profile defines information about the production environment, including information about the assignment of Services and message destinations to application servers and JMS IQ Managers within the Oracle Java CAPS Master Patient Index system. Each Oracle Java CAPS Master Patient Index project must have at least one Deployment Profile, and can have several, depending on the project requirements and the number of Environments used. You need to deploy the Oracle Java CAPS Master Patient Index server project before deploying the client projects in order to make the master index application available to the client Deployment Profiles.
The Oracle Java CAPS Master Patient Index Environments define the deployment environment of the runtime components, including the Logical Host and application server. For client projects referencing the Oracle Java CAPS Master Patient Index project, an Environment might also include a JMS IQ Manager, constants, Web Connectors, and External Systems. Each Environment represents a unit of software that implements Oracle Java CAPS Master Patient Index. You must define and configure at least one Environment for Oracle Java CAPS Master Patient Index before you can deploy the application. The application server hosting Oracle Java CAPS Master Patient Index is configured within the Environment.
Regardless of how you define the data structure and configure the runtime environment for Oracle Java CAPS Master Patient Index, the final product provides a customized master patient index to help you manage data from disparate systems and ensure that the data you have is the most current and accurate information available. The runtime environment includes all of the components you create for Oracle Java CAPS Master Patient Index connectivity as well as the web-based Patient EDM, which allows you to manually monitor and maintain patient data.
As with other master indexes built on the Oracle Java CAPS Master Index (Repository) platform, the Oracle Java CAPS Master Patient Index runtime environment is made up of several components that work together to form a complete indexing system. The runtime environment includes the following primary components:
Matching Service
eView Manager Service
Query Builders
Query Manager
Update Manager
Object Persistence Service (OPS)
Database
Enterprise Data Manager
In addition, Oracle Java CAPS Master Patient Index uses the connectivity components defined in the Oracle Java CAPS Master Patient Index server and client Projects to route data between external systems and the Oracle Java CAPS Master Patient Index database. The Repository stores information about the configuration and structure of the runtime environment. Because Oracle Java CAPS Master Patient Index is deployed to an application server, it can be implemented in a distributed environment.
The following figure illustrates the runtime components of a master patient index.
Figure 2 Master Patient Index Runtime Components
For more information about the functions, features, and components of the eIndex runtime environment, see Master Index Runtime Components in Developing Oracle Java CAPS Master Indexes (Repository).
An enterprise record is identified by an EUID assigned by Oracle Java CAPS Master Patient Index and includes all components of a record that represents one patient. The structure of the data is defined in the Object Definition file.
Oracle Java CAPS Master Patient Index stores two different types of records in each enterprise record: system records and a single best record (SBR). A system record contains a patient’s information as it appears in an incoming message from an external system. An enterprise record’s SBR stores data from a combination of external systems and it represents the most reliable and current information contained in all system records for a patient. An enterprise record consists of one or more system records and one SBR.
The structure of a system record is different from the SBR in that each system record contains a system and local ID pair. The remaining information contained in the system records of an enterprise record is used to determine the best data for the corresponding SBR. If an enterprise record only contains one system record, the SBR is identical to that system record (less the system and local ID information). However, if the enterprise record contains multiple system records, the SBR might be identical to one system record but will more likely include a combination of information from all system records.
The SBR for a patient is created from the most reliable information contained in each system record representing that patient. The information used from each external system to populate the SBR is determined by the survivor calculator, which is configured in the Best Record file. This data is determined to be the most reliable information from all system records in the enterprise record. The survivor calculator can consider factors such as the relative reliability of an external system, how recent the data is, and whether the SBR contains any “locked” field values. You define the rules that select a field value to be persisted in the SBR.
In Oracle Java CAPS Master Patient Index, each system record and SBR in an enterprise record typically contain a set of objects that store different types of information about a patient. A record contains one parent object and typically contains several child objects, but it can have no child objects at all. A record can have only one instance of the parent object, but can have multiple instances of each type of child object. For example, in the default configuration, the parent object (Person) contains demographic data. A record can only contain one patient name and social security number (stored in the Person object), but the record could have multiple addresses, telephone numbers, and aliases, which are defined in different child objects (address, phone, and alias objects respectively). A record can have multiple instances of each child object, such as a home and a billing address.
Another key component of an enterprise record is the identification codes used to identify and cross-reference each patient. Each record in the master index is assigned an enterprise-wide unique identification number (EUID) in addition to the local IDs assigned by the individual systems in the network. Each unique patient has one unique identification number throughout your organization, and a unique identification number within each system with which they are registered. Patients might also have several auxiliary IDs. An auxiliary ID is an identification code that does not necessarily uniquely identify a single patient within the database, but might identify a group of patients. For example, if a family shares the same account or insurance policy, every family member would have the same identification code for that account or policy.