HDR Messaging Toolkit

Oracle Healthcare Data Repository (HDR) is a healthcare application development platform that exchanges healthcare information with external applications using the HL7 Version 3 Messaging Standard.

HDR ships with predefined message specifications for a comprehensive set of domains (subject areas), such as Encounter Management, Patient Care, Lab, and Public Health. Each such specification is called a Message Type. For each predefined Message Type, the inbound and outbound message processors have access to Message Type related files and data (XSD, MIF, Composite Message Schema, cmetinfo.coremif, and seeded metadata) that help them use and generate conformant XML instances.

The HDR Messaging Toolkit (MTK) provides you with a mechanism to specify custom message types, to facilitate HDR interoperation with other healthcare applications, and to suit your specific business requirements. MTK lets you perform validation and setups necessary to support custom messages types.

MTK Workflow

The following figure displays the process for creating and persisting custom message types using MTK:

Figure 9-4 Workflow for Creating and Persisting Custom Message Types Using MTK

Workflow for Creating and Persisting Custom Message Types Using MTK

To create and persist a new custom Message Type using MTK:

  1. Create an RMIM for a custom message type in any one of the following ways:
    • Designing the RMIM from scratch.
    • Modifying an Oracle-published artifact to suit your business requirements. For more information on Oracle-published artifacts, refer to the Oracle Healthcare Data Repository Conformance Specification.
    • Using an HL7 normative artifact. For more information, refer to the HL7 website (www.hl7.org).
  2. Generate the associated schema and MIF files. If the Message Type has any Common Message Element Type (CMET) references (either Oracle-published or custom) you must create a cmetinfo.coremif file.
  3. Load the XSD and MIF files into MTK. MTK performs some tasks as described in the following sections and generates reports.
  4. Use these reports to configure HDR to support these custom Message Types.

For more information on how to implement a new Message Type, refer to the Implement a New Message Type section.

Note:

The process of testing a custom message using MTK does not affect the data in HDR or existing configurations of HDR.

MTK accepts the XSD, MIF, and cmetinfo.coremif files of a custom message type as the input and performs the following:

  1. Validates inputs.
  2. Generates the configuration reports.
  3. Generates instances with minimal manual intervention.
  4. Tests the instances for compatibility with HDR.
  5. Sets up Message Type.

Validating Inputs

MTK validates the inputs for the following:

  • The Message Type must have both the XSD and MIF files.

  • The custom CMETS referenced by Message Types must be present.

  • The cmetinfo.coremif file must be provided if the Message Type has any reference to the CMETs.

  • The contents of the corresponding XSD and MIF files must match.

After successful input validation, MTK loads the submitted artifacts into a test folder and generates related metadata.

Generating Configuration Reports

MTK generates configuration reports to help you port (or create) configurations related to the custom message into the production environment. These reports are generated in plain text or CSV format. The downloaded configuration can be loaded into a different HDR instance by using the respective messaging configuration service or by converting the data into SQL loader format.

Note:

Use these reports as an aid for creating the configuration reports to set up the message type in the production environment. These reports are not to be considered as the actual report.

Configuration Reports

Report Name

Report Format

Description

Master Catalog

CSV

Lists the Acts, Roles, and Entities missing from Master Catalog for a given Message Type. You can use this report to create the appropriate Act Concept configurations in the production environment.

Side Effect Configuration

CSV

Lists all objects that require side effect configurations for a given Message Type. This report lists the side effect configurations for a given Message Type with the master catalog entries relating to the code type ANY. The reference modifier used in the report for the objects will be Create or Overlay. You can use this report to create the appropriate Act Concept configurations in the production environment.

Act Concept Configuration

Plain Text

Lists the ambiguous complexes found in the Custom Message Type Schema. You can use this report to create appropriate Act Concept configurations in the production environment.

Generating Instances

Based on the constructs available, MTK generates one or more message instances. MTK uses dummy data to generate message instance. The data for the message instance will be drawn from the data seeded in HDR. MTK follows certain rules and logic while generating the instance.

Testing Instance

MTK tests the instance for the following:

  • Generation of configuration data: Inbound Message Processor (IMP) and Outbound Message Processor (OMP) configurations required by HDR to process a Message Type are created by MTK. These configurations will be rolled back after completing the test. For information on Sender, Receiver, Interaction, and Trigger event ID, refer to the Oracle Healthcare Data Repository HL7 Version 3 Conformance Specification.

  • Persistence of the generated MTK message instance into HDR using IMP: Once the instance(s) are generated, MTK invokes the IMP services to persist the message.

  • Generation of OMP instance: After persisting the message instance(s) successfully using IMP, MTK invokes OMP services to generate outbound instances.

  • Logging of output status along with Test ID: A unique Test Id will be generated for each test requested. The format of the Test Id is {ArtifactID}_{User ID}_{Test Date}.

Setting Up Message Type

MTK also helps users to upload the successfully tested Message Type's files onto the production environment. The Message Types loaded on the production environment can be browsed and managed using MTK Services.

Messaging Toolkit (MTK) Services

Use the oracle.apps.ctb.message.mtk package for this purpose.

Following are the MTK services:

  • oracle.apps.ctb.message.mtk.MtkTestService

  • oracle.apps.ctb.message.mtk.MtkProductionLoadService

For detailed description of the APIs provided by these MTK services, refer to the HDR Javadoc.

HL7 Message Development Process

To utilize MTK to set up custom message types, you must understand the HL7 V3 process by which message types are specified.

The following steps summarize the MTK process for specifying message types:

  1. Develop storyboards and use cases that provide requirements for the content and transactions of messages.
  2. Use the HL7 RMIM Designer to produce an RMIM for a message type based on the content requirements from the previous step. Refer to the HL7 website (www.hl7.org ) for more information on RMIM Designer.
  3. Use the HL7 Schema Generator to convert RMIM Designer output into XML schema definition files (XSDs) and Message Interchange Format files (MIF). Refer to the HL7 website (www.hl7.org ) for more information on Schema Generator.

Note:

For each type of message specified, one pair of XSD and MIF files are produced that define the structure and constraints of the message. In addition, if CMETs were used in defining the message a cmetinfo.coremif file is generated.

Implement a New Message Type

A new Message Type can be implemented in HDR using the MTK Services.

The following are the prerequisites for using MTK:

  • Tools

    Either download the tools provided by HL7 or use your own tools to generate the Schema and MIF files of a new Message Type. The tools used to generate a schema must also generate the required MIF files.

    Note:

    MTK is tested with artifacts created on:

    • HL7 RIM repository v2.14.1

    • RMIM Designer - 4.3.2

    • RoseTree - 4.0.12

    • Schema Generator - 3.0.4

  • Concept Lists

    Identify from the Javadoc the Concept List used by the attributes of the new Message Type's objects. Ensure those Concept List have concepts in them.

    Note:

    If any of the Concept List used by a new Message Types Object attribute is empty, an error is thrown by MTK and the Message Type is not processed.

  • Datatypes and VOC files

    datatypes.xsd, datatypes-base.xsd, and voc.xsd files are available for download from the Test Message Types window of the MTK Service. You can use these files in the schema generation tool to create a Schema and MIF files for the new Message Type.

Procedure

The following figure illustrates the process of implementing a new message type.

Figure 9-5 Implement New Message Type Using MTK

Implement New Message Type Using MTK

Test a New Message Type

Use the MTK Service Functions or MTK Services to test a new Message Type. Ensure that you have the following inputs for the testing process:

  • Message Type's Schema and MIF files.

  • Schema and MIF files of the custom CMETs referenced by the Message Type.

  • cmetinfo.coremif file listing all the CMETS (Oracle published and custom) referenced by the Message Type. Note that the entries of the non-referenced CMET in the cmetinfo.coremif file are ignored.

  • Comments relating to the test.

MTK uses the following process to test a new Message Type:

  1. Initial Validation:

    Once the input files are submitted, MTK validates if:

    • Message Type is present.

    • Message Type has the XSD and MIF files.

    • Custom CMETs referenced by Message Type are present.

    • cmetinfo.coremif file with proper entries is provided.

  2. Loading onto Server:

    MTK loads the test files provided on the server in a test folder. This folder will be named in the format {Artifact ID}_{User ID}_{Test Date}.

  3. Generating Metadata:

    Metadata of those files is generated and persisted in the server.

  4. Interaction:

    A test interaction ID based on the artifact ID is created and inserted in the interaction table.

  5. Composite Message Schema

    Using the test interaction created Composite Message Schema is generated.

  6. Metadata for Composite Message Schema:

    From the Composite Message Schema, metadata for the Composite Message Schema is generated and stored in the server.

  7. Reports:

    Reports for ambiguous complex types, missing Master Catalog entries, sender side effect configurations is generated.

  8. Generating Test Instance:

    Data for instance will be fetched from:

    • Schema for the structural attribute;

    • Database for non-structural, non-identity, and non-coded attributes (Use the data snippets seeded in HDR);

    • Concept list for coded attributes tied to a concept list;

    • Coding scheme based on their type for coded attributes not tied to a concept list.

  9. Generating and Loading Configurations:
    • Missing Master Catalog Data: Based on the schema file the Master catalog entries are scanned to check if any of the entries are missing. The master catalog entries scanned is of the ID type ANY. If they are found missing, those entries are created.

    • Act Concept: If the Message Type has any ambiguous complex types, Act Concept configurations for those complexes will be created in the server.

    • Sender and Receiver Configurations: Using the test Sender and Receiver IDs, records relating to sender and receiver configurations will be created.

  10. Persisting and Generating Instance Into and From HDR:

    Invoke the HDR IMP Service to persist the MTK generated instance. HDR supports object attributes, datatype and its attributes, and vocabulary content.

    Invoke the HDR OMP service to generate the persisted MTK instance.

  11. Display the Status:

    If the test is successful, a message indicating that the message type has been tested successfully is displayed. If some error occurs during the processes described above, error message is displayed.

    Hyperlinks to download the files generated by the process (including test status file, IMP, and OMP instances of the test message type) are displayed.

Using the MTK Services for Testing

For more information on the services you can use for testing, refer to the Using the MTK Services section.

Verify the Test Files

This step is the final step in testing the Message Type and is required to verify if the instance generated from MTK and the one generated from HDR using OMP are the same with the exception of known differences. Once the test process is successful, download the MTK and OMP generated instance using the hyperlinks displayed in the MTK Service. Use a file compare utility, to verify the instances.

Note:

MTK does not provide an option or tools to compare MTK and OMP generated instances.

Set Up Message Types

Setting up Message Types is required if messages based on the Message Type have to be processed by HDR. To set up successfully tested Message Types in HDR:

  • Loading Message Types

  • Configuring IMP and OMP

Load Message Types

For messages to be processed, the files relating to the Message Type must be loaded onto the server. To load Message Type provide the following inputs:

  • XSD and MIF files of the Message Types.

  • XSD and MIF files of the CMETS referenced by the Message Types. Note that only custom CMETS must be provided. Do not provide any Oracle published CMETS if the Message Type references these.

  • cmetinfo.coremif file must have a list of all the CMETS (Oracle published and custom) referenced by the Message Type.

  • MTK Services: Refer to the Setting Up a New Message Type section for details on loading successfully tested custom Message Types onto a production server using Java API.

Use the MTK Services for Testing

For more information on the services you can use for loading Message Types, refer to the Using the MTK Services section.

Configure IMP and OMP

In IMP, configure the following:

  • Trigger Event

  • Interactions

  • Sender

  • Sender Interaction

  • Sender Side Effect

In OMP, configure the following:

  • Receiver

  • Receiver vocabulary

  • Act Concept

Note:

See the Oracle Healthcare Data Repository Implementation and System Administrator Guide for more information on configuring IMP and OMP.

Use the MTK Services

This section lists details of services that help to test custom Message Types and setup custom Message Types, along with code samples. For more information on MTK Services, refer to Oracle Healthcare Data Repository Javadoc.

Test Custom Message Types

To test a custom Message Type, perform the following steps:

  1. Initialize the ServiceLocator.
  2. Create MtkTestService.
  3. Invoke the testCustomMessageType() method of MtkTestService.

If the Message Type testing is successful, the method returns an unique Test Id. If the testing is not successful, the method throws CTBException and the Test Id can be obtained from TEST_ID parameter of the CTBException instance. The files submitted for testing as well the ones generated by MTK will be loaded in a folder with the test ID name.

The following table summarizes the service and methods referenced by this section:

Service and Methods: Testing Message Type

Level

Detail

Package

oracle.apps.ctb.message.mtk

Class

MtkTestService

Methods

  • downloadTestFilesForATest

  • getMatchingTestIds

  • getTestStatus

  • removeTestFilesForATest

  • testCustomMessageType

Note:

Oracle Healthcare Data Repository Javadoc (oracle.apps.ctb.message.mtk.MtkTestService)

Example 9-9 Use the MTKTestService API

//Initializing Service Locator:
  ServiceLocator serviceLocator = ServiceLocator.getInstance();
  serviceLocator.login("username", "password");
 
   //Payload Xsd and Mif
   String  payloadXsdName = {“prpa_mt203000ht04.xsd"};
   String  payloadMifName = {“prpa_mt203000ht04.mif"};
 
   //Cmet Xsds and Mifs, referred by the Payload.
   String [] cmetXsdNames  =  { “coct_mt030202ht04.xsd",
  “coct_mt030200ht04.xsd", “coct_mt150002ht02.xsd",
  “coct_mt150000ht04.xsd", “coct_mt030202ht04.xsd"};
 
  String [] cmetMifNames  =  { “coct_mt030202ht04.mif",
  “coct_mt030200ht04.mif", “coct_mt150002ht02.mif",
  “coct_mt150000ht04.mif", “coct_mt030202ht04.mif"};
 
    //CoreMif name.
   String coreMifName ="cmetinfo.coremif";
 
  //Initializing SchemaInformation 
  SchemaInformation [] schemaInfo = new SchemaInformation [7];
 
  //Populating SchemaInformation List with values.
  for(int i=0; i< cmetXsdNames.length; i++)
  {
      String xsdContent = readFileContent(cmetXsdNames[i]);
      String mifContent = readFileContent(cmetMifNames[i]);
      String artifactID = cmetXsdNames[i].replaceAll(“.xsd", “");
      schemaInfo[i] = new SchemaInformation();
      schemaInfo[i].setXsd(xsdContent);
      schemaInfo[i].setMif(mifContent);
      schemaInfo[i].setSchemaType(SchemaInformation.CMET);
      schemaInfo.setArtifactID(artifactID);
  }
 
  //Populating payload.
  String xsdContent = readFileContent(payloadXsdName);
  String mifContent = readFileContent(payloadMifName);
  String artifactID = payloadXsdName.replaceAll(“.xsd",“");
  schemaInfo[i] = new SchemaInformation();
  schemaInfo[i].setXsd(xsdContent);
  schemaInfo[i].setMif(mifContent);
  schemaInfo[i].setSchemaType(SchemaInformation.PAYLOAD);
  schemaInfo.setArtifactID(artifactID);
 
  //Populating CoreMif.
  i++;
  String coreMifContent = readFileContent(coreMifName);
  schemaInfo[i] = new SchemaInformation();
  schemaInfo[i].setMif(coreMifContent);
  schemaInfo[i].setSchemaType(SchemaInformation.CORE_MIF);
  schemaInfo[i]. setArtifactID(coreMifName);
 
  String testDesc = “PRPA_MT203000HT04  - Message Type testing on 16-Jan-2008.";
  boolean generateReport = true;
  String testID = null;
  MtkTestService mtkTestService = null;
 
  //calling MtkTestService#testCustomMessageType()
  try
  {
     mtkTestService = serviceLocator.getMtkTestService();
     testID =
     mtkTestService.testCustomMessageType(schemaInfo,testDesc,
     generateReport); 
    }
   catch(CTBException ctbException)	
   {
      //Incase of CTBException, the TEST_ID can be retrieved from
      // CTBException instance.
      testID = (String)ctbException.getParameter(“TEST_ID");
   }

Example 9-10 Searching for Test ID

//Initializing Service Locator:
  ServiceLocator serviceLocator = ServiceLocator.getInstance();
  serviceLocator.login("username", "password");
  //search key
  String searchKey = “%PRTS%MT%";
  String [] matchingTestIDs = null;
  MtkTestService mtkTestService = null;
 
  //invoke getMatchingTestIDs()  API. 
  try
  {
    mtkTestService = serviceLocator.getMtkTestService();
    matchingTestIDs  = mtkTestService.getMatchingTestIDs(searchKey);
  }
  catch(CTBException ctbException)
  {
      //handle or re-throw the exception
  } 

Example 9-11 Downloading Test ID Files

//Initializing Service Locator:
 ServiceLocator serviceLocator = ServiceLocator.getInstance();
 serviceLocator.login("username", "password");
 
// Input Test ID
String testID = “PRTS_MT000008TK01_611521202";
TestIDData testIDData = null;
 MtkTestService mtkTestService = null;
 
//Invoke downloadTestFilesForATest() API
 try 
 {
   mtkTestService = serviceLocator.getMtkTestService();
   testIDData = mtkTestService.downloadTestFilesForATest(testID);
} 
catch(CTBException ctbException)
{
  //handle or re-throw the exception
}
 
//retrieving data from TestID object
String messageTypeID = testIDData.getPayloadID();
String masterCatalogReportContent = testIDData.getMasterCatalogReport();
String sIDeEffectReportContent = testIDData. getSIDeEffectReport();
String actConceptReportContent = testIDData.getAmbiguousComplexTypeReport();
String userComments = testtIDData.getUserComment();
TestMessage[] testMessage = testIDData.getTestMessage();
 
 for (int i = 0; i < testMessage.length; i++)
 {
   String testMessage = testMessage[i].getTestMessage();
   String generatedMessage = testMessage[i].getGeneratedMessage();
 } 
 SchemaInformation[] schemaInfo = testIDData.getSchemaInformation();

Example 9-12 Deleting Test ID Files

//Initializing Service Locator:
 ServiceLocator serviceLocator = ServiceLocator.getInstance();
serviceLocator.login("username", "password");
 
//Input Test ID
String testID = “PRTS_MT000008TK01_611521202";
MtkTestService mtkTestService = null;
 
//Invoke removeTestFilesForATest() API
try
{
mtkTestService = serviceLocator.getMtkTestService();
mtkTestService. removeTestFilesForATest(testID);
}
catch(CTBException ctbException)
{
//handle or re-throw the exception
}

Setting Up a New Message Type

To load and manage the successfully tested new Message Types onto a new environment,

  1. Initialize ServiceLocator.
  2. Create MtkProductionLoadService.

The following table summarizes the service and methods referenced by this section:

Service and Methods: Setting Up a New Message Type

Level

Detail

Package

oracle.apps.ctb.message.mtk

Class

MtkProductionLoadService

Methods

  • createCompositeMessageSchema

  • deleteInteractionSchema

  • deleteSchemas

  • fetchCompositeMessageShemasByPayload

  • fetchCustomCMETsForPayload

  • fetchSchemas

  • loadCustomMessageTypeToProductionServer

  • loadSchemas

Note:

Oracle Healthcare Data Repository Javadoc (oracle.apps.ctb.message.mtk.MtkProductionLoadService)

Example 9-13 Search for Message Types

//Initializing Service Locator:
 ServiceLocator serviceLocator = ServiceLocator.getInstance();
serviceLocator.login("username", "password");
 
//Message Type ID
String [] messageTypeID= { “PRPA_MT203000HT04"};
SchemaInformation [] schemaInfo = null;
 
try
 {
  //Getting MtkProductionLoadService
  mtkProductionLoadService = serviceLocator.getMtkProductionLoadService();
 
 //Calling fetch API 
 schemaInfo = mtkProductionLoadService.fetchSchemas (messageTypeID) ;
}
catch(CTBException ctbException)
{
  //…handle or re-throw the exception
}
 
if (schemaInfo.length == 0 ) // If  Message Type not already uploaded.
{
//…Invoke loadCustomMessageTypeToProductionServer() API
}

Example 9-14 Loading Custom Message Types

//Initializing Service Locator:
 ServiceLocator serviceLocator = ServiceLocator.getInstance();
 serviceLocator.login("username", "password");
 
   //Payload Xsd and Mif
 String  payloadXsdName = {“prpa_mt203000ht04.xsd"};
 String  payloadMifName = {“prpa_mt203000ht04.mif"};
 
 //Cmet Xsd and Mif, referred by the Payload.
 String [] cmetXsdNames  =  { “coct_mt030202ht04.xsd", “coct_mt030200ht04.xsd", “coct_mt150002ht02.xsd", “coct_mt150000ht04.xsd", “coct_mt030202ht04.xsd"};
String [] cmetMifNames  =  { “coct_mt030202ht04.mif", “coct_mt030200ht04.mif", “coct_mt150002ht02.mif", “coct_mt150000ht04.mif", “coct_mt030202ht04.mif"};
 
 //CoreMif name.
  String coreMifName ="cmetinfo.coremif";
 
 //Initializing SchemaInformation 
  SchemaInformation [] schemaInfo = new SchemaInformation [7];
 
  //Populating SchemaInformation List with values.
  for(int i=0; i< cmetXsdNames.length; i++)
{
      String xsdContent = readFileContent(cmetXsdNames[i]);
      String mifContent = readFileContent(cmetMifNames[i]);
      String artifactID = cmetXsdNames[i].replaceAll(“.xsd", “");
      schemaInfo[i] = new SchemaInformation();
      schemaInfo[i].setXsd(xsdContent);
      schemaInfo[i].setMif(mifContent);
      schemaInfo[i].setSchemaType(SchemaInformation.CMET);
      schemaInfo.setArtifactID(artifactID);
  }
 
 //Populating payload.
  String xsdContent = readFileContent(payloadXsdName);
  String mifContent = readFileContent(payloadMifName);
  String artifactID = payloadXsdName.replaceAll(“.xsd",“");
  schemaInfo[i] = new SchemaInformation();
  schemaInfo[i].setXsd(xsdContent);
  schemaInfo[i].setMif(mifContent);
  schemaInfo[i].setSchemaType(SchemaInformation.PAYLOAD);
  schemaInfo.setArtifactID(artifactID);
 
//  Populating CoreMif.
  i++;
 String coreMifContent = readFileContent(coreMifName);
 schemaInfo[i] = new SchemaInformation();
schemaInfo[i].setMif(coreMifContent);
 				schemaInfo[i].setSchemaType(SchemaInformation.CORE_MIF);
schemaInfo[i]. setArtifactID(coreMifName);
 
 MtkProductionLoadService mtkProductionLoadService = null;
  try
  {
     //Getting MtkProductionLoadService
     mtkProductionLoadService = serviceLocator. getMtkProductionLoadService();
     //Calling upload API               
     mtkProductionLoadService.loadCustomMessageTypeToProductionServer(schemaInfo);
  }
 catch(CTBException ctbException)
 {
  //handle or re-throw the exception
 }

Example 9-15 Fetch Custom CMETs

String messageTypeID= "POXX_MT111000HT02";
SchemaInformation [] schemaInfo = null;
MtkProductionLoadService mtkProductionLoadService = null;
 
try
{ 
//Getting MtkProductionLoadService
mtkProductionLoadService = serviceLocator.getMtkProductionLoadService();
//Calling fetch API
schemaInfo = mtkProductionLoadService. FetchCustomCMETsForPayload
(messageTypeID) ;
}
catch(CTBException ctbException)
{
//…handle and re-throw the exception
}

Example 9-16 Fetch Composite Message Schema

String messageTypeID= "POXX_MT111000HT02";
SchemaInformation [] schemaInfo = null;
try
{
//Getting MtkProductionLoadService
mtkProductionLoadService = serviceLocator.getMtkProductionLoadService();
//Calling fetch API
schemaInfo = mtkProductionLoadService. FetchCompositeMessageShemasByPayload
(messageTypeID) ;
}
catch(CTBException ctbException)
{
//…handle and re-throw the exception
}

Note:

SchemaInformation object will not contain MIF content for an Interaction Schema.

Example 9-17 Deleting a Schema

String [] schemas = {  "coct_mt930002ht03.xsd", "poxx_mt111000ht02.xsd"};
 
MtkProductionLoadService mtkProductionLoadService = null;
 
try
{
   //Getting MtkProductionLoadService
    mtkProductionLoadService = serviceLocator.getMtkProductionLoadService();
    //Calling delete API
    mtkProductionLoadService. deleteSchemas (schemas) ;
}
catch(CTBException ctbException)
{
  //…handle or re-throw exception
 }

Sample Exercise Using MTK Services

  • Prerequisites and Tools

  • Creating a New Message Type or Modifying an Existing Message Type

  • Generating Schema (XSD) and MIF Files for the Modified Messages

Prerequisites and Tools

The following tools are used in the process of testing a custom message and generating message instances for the custom messages.

  • Microsoft® Visio 2002 SP - 2 version 10.0.6871

  • HL7 RIM repository version 2.14.1

  • HL7 RMIM Designer version 4.3.2

  • HL7 Schema Generator version 3.0.4

Note:

The steps described in the following sections were performed using the tools listed above, and may not produce expected results if executed using versions other than those specified above.

Creating a New Message Type or Modifying an Existing Message Type

For the purpose of this sample exercise, a modified version of the HDR-published domain Message Type Person Registry (PRPA_RM201000HT03) and a modified version of the HDR-published CMET E_Person (COCT_RM030202HT04) are used.

  1. Use the RMIM Designer to modify the CMET E_Person (COCT_RM030202HT04) as follows:
    1. In the focal class Person, add an attribute educationLevelCode: CE CWE [0..1] < EducationLevel
    2. Change the name of the CMET to E_Person_Custom and the CMET code ID to COCT_RM030202TK01

      Figure 9-6

      Creating a New Message Type or Modifying an Existing Message Type
    3. Validate and save the Visio file as COCT_RM030202TK01.vsd. When you save the Visio file, the RMIM designer will automatically create the COCT_RM030202TK01.xml file.
  2. In the CMETInfo.txt file that is referred by RMIM designer, include an entry for the custom CMET as follows:

    E_Person_Custom,COCT_MT030202TK01,PSN,Entity,Custom Person CMET for testing MTK,identified/confirmable.

  3. Modify the message domain Person Registry (PRPA_RM201000HT03) as follows:
    1. In the class Employment (Person => Employment), add the following attributes:
      • salaryTypeCode: CE CWE [0..1] < EmployeeSalaryType
      • salaryQuantity: MO [0..1]
    2. Replace all references to the CMET E_Person (PSN) [identified/confirmable] (COCT_MT030202HT04) with E_Person_Custom (PSN) [identified/confirmable] (COCT_MT030202TK01).
    3. Change the name of the RMIM to Person Registry Custom and the RMIM IDcode to PRPA_RM201000TK01.

      Figure 9-7 Custom Message Person_Registry_Custom (PRPA_RM201000TK01)

      Custom Message Person_Registry_Custom (PRPA_RM201000TK01)
    4. Validate and save the Visio file as ‘PRPA_RM201000TK01.vsd'.
    5. Verify that Visio automatically generates a file ‘PRPA_RM201000TK01.xml'.

Generate Schema (XSD) and MIF Files for the Modified Messages

Use the Schema Generator generate schema and MIF files for the modified messages as follows:

  1. Copy the files PRPA_RM201000TK01.xml and COCT_RM030202TK01.xml in the following folder:

    <Schema Generator Root Folder>\InputFiles\VisioModelXmlFiles\

    Note that this folder must contain the xml files corresponding to all the CMETs that are used directly or indirectly by the message PRPA_RM201000TK01.

  2. Modify the file <Schema Generator Root Folder>\InputFiles\CommonSourceFiles\cmetInfoExport.txt to include following entry:

    E_Person_Custom,COCT_MT030202TK01,PSN,Entity,Custom Person CMET for testing MTK,identified/confirmable

  3. Ensure that the file <Schema Generator Root Folder>\InputFiles\configuration.txt includes the following setting:

    generateSchemas = true

  4. Execute the file <Schema Generator Root Folder>\runlogged.bat
  5. Upon completion of execution, view the file <Schema Generator Root Folder>\OutputFiles\generator.log for any errors and rectify them.
  6. After successful execution:
    • Schema Generator should generate the schema and MIF files for custom messages in following folders:

      <Schema Generator Root Folder>\OutputFiles\Schemas\

      <Schema Generator Root Folder>\OutputFiles\MIF\

      Verify that Schema Generator has generated following files:

      PRPA_MT201000TK01.xsd, PRPA_MT201000TK01.mif

      COCT_MT030202TK01.xsd, COCT_MT030202TK01.mif

    • Schema Generator should automatically update the following file:

      <Schema Generator Root Folder>\OutputFiles\MIF\cmetinfo.coremif

      and include a new entry for the custom CMET ‘COCT_RM030202TK01'

      Verify that appropriate details of the custom CMET are included in the file cmetinfo.coremif

Generate Test Messages Using MTK Service

Refer to the Use the MTK Services section to test the newly created message type artifacts and retrieve the test messages generated by MTK test API.

Generating Custom Message Types

You can create custom artifacts either by using RMIM or by using the artifacts published by HL7. Ensure that you give valid names for the custom messages. You must ensure that:

  • Realm code in the artifact ID must be other than HT.

  • CMET names must be different from the Oracle-published CMET names.

Note:

  • Oracle will not provide tools to design artifacts and its associated files. You have to use the tools provided by HL7 or create your own tools.

  • The tools used to generate schema must also generate MIF files.

  • MTK is tested with artifacts created on:

    • HL7 RIM repository v2.14.1

    • HL7 RMIM Designer v4.3.2

    • RoseTree v4.0.12

    • HL7 Schema Generator v3.0.4

Generating Custom Artifacts Using RMIM

RMIMs can be created in one of the following ways:

  • Modifying the RMIM of the Oracle-published Message Types.

  • Downloading and modifying the RMIM of the HL7-published normative Message Types.

  • Creating a new RMIM for a Message Type RMIM.

Once the RMIMs are created, save the RMIM in a repository. Provide the XML of the RMIM as input to the tools generating the Schema.

Generating Custom Artifacts Without Using RMIM

To generate a custom Artifact without using an RMIM, you can do one of the following:

  • Modify Oracle-published XSD and MIF files.

  • Download and modify HL7-published XSD and MIF files.

Logic for Instance Generation

MTK uses the following logic to generate a test instance:

  • Custom Message Types and CMETs are filled with default data even if they are optional items.

  • CMETs that are mandatory are filled with data irrespective of whether they are Oracle published or custom CMETs.

  • Items (Classes, CMETs, and Attributes) in custom artifacts (Message Type, CMETs) are handled using the following logic:

    Mandatory Items

    • Classes and CMETs with {1..1, 1..N, and 1..*} cardinality are filled only once.

    • Recursions with {1..1, 1..N, and 1..*} cardinality are filled once and only one level is filled.

    • Coded Attributes with {1..1, 1..N, and 1..*} cardinality are filled only once.

    • Non-coded attributes with {1..1} cardinality are filled only once.

    • Non-coded attributes with {1..N and 1..*} cardinality are filled twice.

    • Choices with 0..* or 1..* are repeated as many number of times as the number of objects in the choice to fill all the objects within the choice.

    Optional Items

    • Classes and CMETs with {0..1, 0..N, and 0..*}, cardinality are filled once.

    • Recursions with {0..1, 0..N, and 0..*} cardinality are filled once and only one level is filled.

    • Attributes (Coded and Non-Coded) with {0..1, 0..N, and 0..*} cardinality are not filled.

    • Choices with {0..1, 0..N, and 0..*}cardinality are filled only once.

  • Items (Classes, CMETs, and Attributes) relating to Oracle-published CMETs are handled using the following logic:

    Mandatory Items

    • Classes and CMETs with {1..1, 1..N, and 1..*}, cardinality are filled only once.

    • Within the mandatory CMETs, only mandatory classes with {1..1, 1..N, and 1..*} cardinality are filled with data, and only the attributes with {1..1, 1..N, and 1..*}cardinality are populated with data.

    • Recursions with {1..1, 1..N, and 1..*} cardinality are filled once and only one level is filled.

    • Coded Attributes with {1..1, 1..N, and 1..*} cardinality are filled only once.

    • Non-coded attributes with {1..1} cardinality are filled only once.

    • Non-coded attributes with {1..N and 1..*} cardinality are filled twice.

    • Choices with {1..1, 1..N, and 1..*}cardinality are filled only once.

    Optional items

    • Classes and CMETs with {0..1, 0..N, and 0..*} cardinality are not filled.

    • Recursions with {0..1, 0..N, and 0..*} cardinality are not filled.

    • Attributes (Coded and Non-Coded) with {0..1, 0..N, and 0..*} cardinality are not filled.

    • Choices with {0..1, 0..N, and 0..*} cardinality are not filled.

  • Data for Clone class attributes are populated using the following logic:

    • Data for the structural attributes is populated from the respective schema.

    • A unique test ID is assigned for each clone class object.

    • For coded attributes bound to concept lists, data is taken from the respective concept list within ETS and populated. Note that if the concept list is empty, an error is thrown

    • For coded attributes not bound to concept lists, a value from the appropriate HL7 coding scheme is populated based on their types (For example, code attribute of Act class has code from ActCode Code System)

    • Non-Coded attributes like address, name, and others are populated with data from the sample snippets seeded in HDR.

    • Attributes with Any datatype are defaulted to ST and a default value is populated.

  • Message Wrapper and Control Act wrapper:

    • Data for the Message wrapper, Act Payload Control wrapper, and Role Payload Control wrapper is seeded in HDR.

    • The Interaction ID, Trigger event code, and Sender and Receiver II attribute values are generated during each instance generation.

    Note:

    • The objective of instance generation is to cover all the objects of custom artifacts (Message Type and CMETs) irrespective of whether they are optional or not.

    • Within an instance, if the object of external artifact is covered once, the same object is not repeated unless it is mandatory.

    • External artifacts with Roles having entity choices either as Player or Scoper will always result in more than one instance. Each of the Player/Scoper choice is included in one of the instances.

    • The order of the objects in the instance generated depend on their order in the schema file.

Master Catalog and Side Effect Configuration Reports

Master Catalog Reports

This section details the validation logic followed by MTK for Master Catalog validations, and also the logic used to generate the Master Catalog report.

Master Catalog Validation Rules

MTK follows the rules listed below to validate the schema against the Master Catalog entries to verify if the entries exist:

General Rules

  • If the object in the schema has a code attribute,
    • If the code attribute is mandatory in the schema, MTK checks if an entry for that object exists in the Master Catalog (MC) configuration with Code Type as ANY. If it is not present, MTK includes that object in the MC Report.

    • If the code attribute is optional in the schema, MTK checks if an entry for that object exists in the MC Configuration with Code Type as ANY. If it does not exist, MTK includes that object in the MC Report. In addition, MTK also checks if an entry exists for that object in the MC Configuration with Code Type as NULL. It it does not exist, MTK includes that object in the MC Report.

  • If the object in the schema does not have a code attribute, MTK checks if an entry for that object exists in the MC Configuration with Code Type as NULL. If it is not present, MTK includes that object in the MC Report.

Act

The general rules apply to all objects in the schema that are Acts.

Role: Non-owned Role without Entities

The general rules apply to all objects in the schema that are Non-owned Roles without Entities.

Role: Non-owned Role with Entities

In addition to the general rules, MTK also checks if the corresponding Entity entry exists for the Non-owned Role in the MC configuration. The general rules apply for checking an individual Entity entry in the MC Configuration. If the entry does not exist, MTK includes that object in the MC Report.

ROLE: Owned Role without Non-Owning Entity

For Owned Role, in addition to the general rules, MTK also checks if the corresponding Owning Entity entry exists for the Owned Role in the MC Configuration. The general rules apply for checking an individual Entity entry in the MC configuration. If the entry does not exist, MTK includes all the corresponding objects (both missing role and the missing entities) in the MC Report.

ROLE: Owned Role with Non-Owning Entity

For Owned Role, in addition to the general rules, MTK also checks if the corresponding Owning and Non-Owning Entity for the Owned Role has appropriate entries in the MC Configuration. The general rules apply for checking an individual Entity entry in the MC Configuration. If the entry does not exist, MTK includes all corresponding objects (both missing role and the missing entities) in the MC Report.

Note:

In case of Owned Roles, MTK also checks if the entry in the ROLE_OWNER_CODE (in the MC Configuration) has P or S, depending on whether the Owning Entity is a Player or a Scoper. If the entry does not exist, MTK includes that object in the MC Report.

Master Catalog Reporting Logic

MTK populates a report based on the rules described in the Master Catalog Validation Rules section, and then based on the value in the Report column (Yes or No). If the Report column contains the value Yes, the following logic is applied while creating an entry in the Master Catalog report:

Act

  • With mandatory code attribute: Create an entry with code type ANY.

  • With optional code attribute: Create entries with code type ANY and Null.

  • Without code attribute: Create an entry with code type Null.

Non-Owned Role with Entities

  • With mandatory code attribute: Create an entry with code type ANY, and with appropriate Entity entries.

  • With optional code attribute: Create entries with code type ANY and Null, and with appropriate Entity entries.

  • Without code attribute: Create an entry with code type Null, and with appropriate Entity entries.

Non-Owned Role without Entities

  • With mandatory code attribute: Create an entry with code type ANY, and without any entities.

  • With optional code attribute: Create entries with code type ANY and Null, and without any entities.

  • Without code attribute: Create an entry with code type Null, and without any entities.

Owned Role with non-owning Entity

  • With mandatory code attribute: Create an entry with code type ANY, and with appropriate non-owning Entity entry.

  • With optional code attribute: Create entries with code type ANY and Null, and with appropriate non-owning Entity entry.

  • Without code attribute: Create an entry with code type Null, and with appropriate non-owning Entity entry.

Entity

  • With mandatory code attribute: Create an entry with code type ANY.

  • With optional code attribute: Create entries with code type ANY and Null.

  • Without code attribute: Create an entry with code type Null.

Side Effect Configuration Report

MTK applies the following rules while creating the Side Effect Configuration report:

  • Act: Create or Overlay

  • Non-Owned Role without Entities: Create or Overlay.

  • Non-Owned Role with Entities: Create or Overlay for both Role and its entities.

  • Owned Role without non-owning Entity: No entry.

  • Owned (Type II) Role with non-owning Entity: Null for Role and owning Entity. Create or Overlay for non-owning Entity.

MTK Message Types Construct Processing

  • Constructs in External Artifacts (Message Type and CMETS)

  • Constructs Within Oracle Published CMETS

Note:

The order of the objects in the instance generated depend on their order in the schema file. The objects listed in the examples might change when compared to actual instances.

Constructs in External Artifacts (Message Type and CMETs)

Act> ActChoice with {0..1 or 1..1 or 0..n or 1..n}

MTK generates n instances where n is the number of objects in the choice (and is not same as *). MTK generates two instances if a message type that has the construct described in Figure E.1. For each object within the choice, a message instance is generated.

  • First message instance has ClinicalTrialEvent > inFulfillmentOf > ObservationEvent
  • Second message instance has ClinicalTrialEvent > inFulfillmentOf > ProcedureEvent

Figure 9-8 Act > ActChoice with {1..1}

Act > ActChoice with {1..1}

Act> ActChoice with {0..* or 1..*}

MTK generates one instance with two inFulfillmentOf ActRelationship, if a message type has the construct shown in Figure E.2. For each object within the choice, an inFulfillmentOf ActRelationship is generated.

  • First instance of inFulfillmentOf ActRelationship would have ClinicalTrialEvent > inFulfillmentOf > ObservationEvent
  • Second instance of inFulfillmentOf ActRelationship would have ClinicalTrialEvent > inFulfillmentOf > ProcedureEvent

Figure 9-9 Act > ActChoice with {1..*}

Act > ActChoice with {1..*}

Act> ActChoice with {0..1 or 1..1 or 0..n or 1..n}> Act with {0..1 or 1..1 or 0..n or 1..n or 0..* or 1..*}

MTK generate n instances where n is the number of objects in the first choice. MTK generate two instances if a message type has the construct described in Figure E.3. For each object within the choice, a message instance is generated along with the target pertinentInformation ActRelationship.

  • First message instance has ClinicalTrialEvent > inFulfillmentOf > ObservationEvent > pertinentInformation > ObservationInfo
  • Second message instance has ClinicalTrialEvent > inFulfillmentOf > ProcedureEvent > pertinentInformation > ObservationInfo

Figure 9-10 Act > Choice with {1..1} > Act with {1..1}

Act > Choice with {1..1} > Act with {1..1}

Act > ActChoice with {0..* or 1..*} > Act with {0..1 or 0..* or 0..n or 1..n or 1..1 or 1..*}

MTK generates one instance with two inFulfillmentOf ActRelationship, if a message type has the construct described in Figure E.4. For each object within the choice, an inFulfillmentOf ActRelationship is generated along with one target pertinentInformation ActRelationtionship.

  • First instance of inFulfillmentOf ActRelationship has ClinicalTrialEvent > inFulfillmentOf > ObservationEvent > pertinentInformation > ObservationInfo
  • Second instance of inFulfillmentOf ActRelationship has ClinicalTrialEvent > inFulfillmentOf > ProcedureEvent > pertinentInformation > ObservationInfo

Figure 9-11 Act > ActChoice with {1..*} > Act with {1..1}

Act > ActChoice with {1..*} > Act with {1..1}

Act > ActChoice with {0..1 or 1..1 or 0..n or 1..n} > ActChoice with {0..1 or 1..1 or 0..n or 1..n}

MTK generates n instances where n is the number of objects in the first choice. MTK generates two instance if a message type has the construct described in Figure E.5. For each object within the fulfillmentActChoice, a message instance is generated along with an object from target pertinentActChoice.

  • First message instance has ClinicalTrialEvent > inFulfillmentOf > ObservationEvent > pertinentInformation > ObservationInfo
  • Second message instance has ClinicalTrialEvent > inFulfillmentOf > ProcedureEvent > pertinentInformation > ProcedureInfo

Figure 9-12 Act > ActChoice with {1..*} > ActChoice with {1..1}

Act > ActChoice with {1..*} > ActChoice with {1..1}

Act > ActChoice with {0..* or 1..*} > ActChoice with {0..1 or 1..1 or 0..n or 1..n}

MTK generate one instance with two inFulfillmentOf ActRelationship, if a message type has the construct described in Figure E.6. For each object within the choice, an inFulfillmentOf ActRelationship is generated along with an object from the target choice.

  • First instance of inFulfillmentOf ActRelationship has ClinicalTrialEvent > inFulfillmentOf > ObservationEvent > pertinentInformation > ObservationInfo
  • Second instance of inFulfillmentOf ActRelationship has ClinicalTrialEvent > inFulfillmentOf > ProcedureEvent > pertinentInformation > ProcedureInfo

Figure 9-13 Act > ActChoice with {1..*} > ActChoice with {1..1}

Act > ActChoice with {1..*} > ActChoice with {1..1}

Act > ActChoice with {0..1 or 1..1 or 0..n or 1..n} > ActChoice with {0..* or 1..*}:

MTK generates n instances where n= number of objects is in the first choice. MTK generates two instance if a message type has the construct described in Figure E.7. For each object within the inFulfillmentOf, a message instance is generated along with two pertinentInformation ActRelationships.

  • First message instance has ClinicalTrialEvent > inFulfillmentOf > ObservationEvent:
    1. pertinentInformation > ObservationInfo
    2. pertinentInformation > ProcedureInfo
  • Second message instance has ClinicalTrialEvent > inFulfillmentOf > ProcedureEvent:
    1. pertinentInformation > ObservationInfo
    2. pertinentInformation > ProcedureInfo

Figure 9-14 Act > Choice with {1..1} > ActChoice with {1..*}

Act > Choice with {1..1} > ActChoice with {1..*}

Act > ActChoice with {0..* or 1..*} > ActChoice with {0..*}

MTK generates one instance with two inFulfillmentOf ActRelationship, if a message type has the construct described in Figure E.8. The first inFulfillmentOf ActRelationship instance has the objects from the target pertinentActChoice. The other inFulfillmentOf ActRelationship instance does not have it.

  • First instance of inFulfillmentOf ActRelationship has ClinicalTrialEvent > inFulfillmentOf > ObservationEvent:
    1. pertinentInformation > ObservationInfo
    2. pertinentInformation > ProcedureInfo
  • Second instance of fulfillmentActChoice ActRelationship has ClinicalTrialEvent > inFulfillmentOf > ProcedureEvent

Figure 9-15 Act > ActChoice with {1..*} > ActChoice with {0..*}

Act > ActChoice with {1..*} > ActChoice with {0..*}

Act > ActChoice with {0..* or 1..*} > ActChoice with {1..n or 1..*}

MTK generates one instance with two inFulfillmentOf ActRelationship, if a message type has the construct described in Figure E.9. For each object within FullfillmentActChoice, a inFulfillmentOf ActRelationship is generated along with the object from the target pertinentActChoice.

  • First instance of inFulfillmentOf ActRelationship has ClinicalTrialEvent > inFulfillmentOf > ObservationEvent:
    1. pertinentInformation > ObservationInfo
    2. pertinentInformation > ProcedureInfo
  • Second instance of inFulfillmentOf ActRelationship has ClinicalTrialEvent > inFulfillmentOf > ProcedureEvent (one of the below):
    1. pertinentInformation > ObservationInfo
    2. pertinentInformation > ProcedureInfo

Figure 9-16 Act > ActChoice with {1..*} > ActChoice with {1..*}

Act > ActChoice with {1..*} > ActChoice with {1..*}

Act > Role with {0..1 or 0..n or 0..* or 1..1 or 1..n or 1..*} > Player with {0..1 or 1..1} and Scoper with {0..1 or 1..1}

MTK generates only one instance if a message type has the construct described in Figure E.10. The message instance has:

  • Message Instance: ObservationGeneral > subject > IdentifiedEntity > ScopingEntity and PlayingEntity

Figure 9-17 Act > Role with {0..*} > Player with {0..1} and Scoper with {1..1}

Act > Role with {0..*} > Player with {0..1} and Scoper with {1..1}

Act > Role with {0..1 or 0..n or 0..* or 1..1 or 1..n or 1..*} > Player with {0..1 or 1..1} and Scoper with {0..1 or 1..1} > Playedrole with {0..1 or 0..n or 0..* or 1..1 or 1..n or 1..*} > Scoper with {0..1 or 1..1}

MTK generates only one instance if a message type has the construct described in Figure E.11. The instance generated has the following:

  • Message instance: ObservationGeneral > subject > IdentifiedEntity > ScopingEntity and Playingentity<
    1. PlayingEntity > HealthChart > ScopingEntity2

Figure 9-18 Act > Role with {0..*} > Player with {0..1} and Scoper with {1..1} > Playedrole with {0..*} > Scoper with {0..1}

Act > Role with {0..*} > Player with {0..1} and Scoper with {1..1} > Playedrole with {0..*} > Scoper with {0..1}

Act > Role with {0..1 or 0..n or 0..* or 1..1 or 1..n or 1..*} > PlayerChoice with {0..1 or 1..1} and ScoperChoice with {0..1 or 1..1} > PlayedRole with {0..1 or 0..n or 0..* or 1..1 or 1..n or 1..*} > Scoper with {0..1 or 1..1}

MTK generates n instances where n is the maximum number of entities present in a single choice. In the construct described in Figure E.12, MTK generates two instances. The instances generated might be:

  • First Instance: ObservationGeneral > subject > IdentifiedEntity > ScopingEntity and PlayingEntity
    1. Playingentity > HealthChart > ScopingEntity2
  • Second Instance: ObservationGeneral > subject > IdentifiedEntity > Organization and Person
    1. Person > HealthChart > ScopingEntity2

Figure 9-19 Act > Role with {0..*} > PlayerChoice with {0..1} and ScoperChoice with {1..1} > Playedrole with {0..*} > Scoper with {0..1}

Act > Role with {0..*} > PlayerChoice with {0..1} and ScoperChoice with {1..1} > Playedrole with {0..*} > Scoper with {0..1}

Note:

Even if the cardinality of participation is 0..*, MTK generates multiple instances of the above structure to incorporate all the entities. This behavior is different from ActRelationships.

Act> Role with {0..1 or 0..n or 0..* or 1..1 or 1..n or 1..*}> PlayerChoice with {0..1} and ScoperChoice with {0..1 or 1..1}> PlayedRole with {0..1 or 0..n or 0..* or 1..1 or 1..n or 1..*}> Scoper with {0..1 or 1..1}

MTK generates n instances where n is the number of entities in the choice with Max entities. In the construct described in Figure E.13, MTK generates three instances:

  • Instances with player entities has the Owned role
  • One of the instances has only the scoper for IdentifiedEntity role. This instance does not have any Player as (i) the cardinality is 0..1 (ii) both the player entities would have been covered in the previous two messages.

The instance generated might be:

  • First Instance: ObservationGeneral > subject > IdentifiedEntity > Entity and Person
    1. Person > HealthChart > ScopingEntity2
  • Second Instance : ObservationGeneral > subject > IdentifiedEntity > Organization and Entity
    1. Entity > HealthChart > ScopingEntity2
  • Third Instance : ObservationGeneral > subject > IdentifiedEntity > Place

Figure 9-20 Act > Role with {0..*} > PlayerChoice with {0..1} and ScoperChoice with {1..1} > Playedrole with {0..*} > Scoper with {0..1}

Act > Role with {0..*} > PlayerChoice with {0..1} and ScoperChoice with {1..1} > Playedrole with {0..*} > Scoper with {0..1}

Act> Role with {0..1 or 0..n or 0..* or 1..1 or 1..n or 1..*}> PlayerChoice with {1..1} and ScoperChoice with {0..1 or 1..1}> PlayedRole with {0..1 or 0..n or 0..* or 1..1 or 1..n or 1..*}> Scoper with {0..1 or 1..1}

MTK generates n instances where n is the number of entities in the choice with Max entities. In the construct described in Figure E.14, MTK generates three instances. All the three instances have the Owned role due to the cardinality on the PlayerChoice.

The instance generated might be:

  • First Instance: ObservationGeneral > subject > IdentifiedEntity > Entity and Person
    1. Person > HealthChart > ScopingEntity2
  • Second Instance: ObservationGeneral > subject > IdentifiedEntity > Organization and Entity
    1. Entity > HealthChart > ScopingEntity2
  • Third Instance: ObservationGeneral > Subject > IdentifiedEntity > Place and Person
    1. Person > HealthChart > ScopingEntity2

Figure 9-21 Act > Role with {0..*} > PlayerChoice with {1..1} and ScoperChoice with {0..1} > PlayedRole with {0..*} > Scoper with {0..1}

Act > Role with {0..*} > PlayerChoice with {1..1} and ScoperChoice with {0..1} > PlayedRole with {0..*} > Scoper with {0..1}

Constructs Within Oracle Published CMETS

Act> ActChoice with {1..1 or 1..n or 1..*}

MTK will generate one instance. The generated instance will be one of the following:

  • ClinicalTrialEvent > inFulfillmentOf > ObservationEvent
  • ClinicalTrialEvent > inFulfillmentOf > ProcedureEvent

Note:

If the choice is {0..1 or 0..*}, the generated instance will not have the fulfillmentActChoice ActRelationship.

Figure 9-22 Act > ActChoice with {1..1}

Act > ActChoice with {1..1}

Act> ActChoice with {1..1 or 1..n or 1..*}> Act with { 1..1 or 1..n or 1..*}

MTK generates one instance. The instance will have one of the following:

  • ClinicalTrialEvent > inFulfillmentOf > ObservationEvent > pertinentInformation > ObservationInfo
  • ClinicalTrialEvent > inFulfillmentOf > ProcedureEvent > pertinentInformation > ObservationInfo

Note:

  • If the inFulfillmentOf has {0..1 or 0..*}, then the generated instance will not have the inFulfillmentOf ActRelationship and the other associated relationships
  • If the inFulfillmentOf has {1..1 or 1..*} and observationInfo has {0..1 or 0..*} then the generated instance will have inFulfillmentOf ActRelationship but not the pertinentInformation relationships

Figure 9-23 Act > ActChoice with {1..1} > ActChoice with {1..1}

Act > ActChoice with {1..1} > ActChoice with {1..1}

Act> ActChoice with {1..1 or 1..n or 1..*}> ActChoice with {1..1 or 1..n or 1..*}

MTK generates one instance, if a message type has the construct described in Figure E.17. The generated message instance has one of the following:

  • ClinicalTrialEvent > inFulfillmentOf > ObservationEvent > pertinentInformation > ObservationInfo
  • ClinicalTrialEvent > inFulfillmentOf > ProcedureEvent > pertinentInformation > ProcedureInfo

Note:

  • If the inFulfillmentOf has {0..1 or 0..*}, then the generated instance will not have the inFulfillmentOf ActRelationship and the other associated relationships.
  • If the inFulfillmentOf has {1..1 or 1..*} and if pertinentInformation has {0..1 or 0..*} then the generated instance will have inFulfillmentOf ActRelationship but not the pertinentInformation relationships.

Figure 9-24 Act > Role with {1..*} > Player with {1..1} and Scoper with {1..1}

Act > Role with {1..*} > Player with {1..1} and Scoper with {1..1}

Act > Role with {1..1 or 1..n or 1..*} > PlayerChoice with {1..1} and ScoperChoice with {1..1} > PlayedRole with {1..1 or 1..n or 1..* } > Scoper with {1..1}

In the construct described in Figure E.19, MTK generates one instance. The instance generated might be:

  • ObservationGeneral > subject > IdentifiedEntity > ScopingEntity and PlayingEntity
    1. Playingentity > HealthChart > ScopingEntity2
  • ObservationGeneral > subject > IdentifiedEntity > Organization and Person
    1. Person > HealthChart > ScopingEntity2

Note:

  • If the subject has {0..1 or 0..*} then the generated instance will not have the subject and its associated associations.
  • If the subject has {1..1 or 1..*} and Scoper and Player choice with {0..1} then the generated instance will have: ObservationGeneral > subject > IdentifiedEntity
  • If the subject has {1..1 or 1..*}, Player choice with {1..1} along with HealthChart with {1..1}, and ScoperChoice with {0..1} then the generated instance will have one of the below:
    1. ObservationGeneral > subject > IdentifiedEntity > PlayinngEntity > HealthChart > ScopingEntity2
    2. ObservationGeneral > subject > IdentifiedEntity > Person > HealthChart > ScopingEntity2

Figure 9-25 Act > Role with {1..*} > PlayerChoice with {1..1} and ScoperChoice with {1..1} > Playedrole with {1..*} > Scoper with {1..1}

Act > Role with {1..*} > PlayerChoice with {1..1} and ScoperChoice with {1..1} > Playedrole with {1..*} > Scoper with {1..1}

XML Snippets of Seeded Data

Data seeded in HDR for MTK to generate instance for the provided Message Type schema file:

Datatypes

Value 1

Value 2

AD

<[attribute] use="H" > <delimiter partType="DEL">;</delimiter> <country partType="CNT">US</country> <state partType="STA">CA</state> <city partType="CTY">Fountain Hills</city> <postalCode partType="ZIP">85268</postalCode> <streetAddressLine partType="SAL">15542 OliveWest</streetAddressLine> <houseNumberNumeric partType="BNN" >999777</houseNumberNumeric> <houseNumber partType="BNR">999777</houseNumber> <direction partType="DIR">N</direction> <streetName partType="STR">Church Street</streetName> <streetNameBase partType="STB">Church Street</streetNameBase> <streetNameType partType="STTYP">Avenue</streetNameType> <unitID partType="UNID">222222</unitID> <censusTract partType="CEN">testCensusValue</censusTract> <unitType partType="UNIT">Apartment</unitType> <useablePeriod xsi:type="IVL_TS" > <low value="20070127" inclusive="true"/> <high value="20070526" inclusive="false"/> </useablePeriod> </[attribute]>

<[attribute] use="H"> <delimiter partType="DEL">;</delimiter> <country partType="CNT">US</country> <state partType="STA">CA</state> <city partType="CTY">Fountain Hills</city> <postalCode partType="ZIP">852</postalCode> <streetAddressLine partType="SAL">142 OliveWest</streetAddressLine> <houseNumberNumeric partType="BNN" >9977</houseNumberNumeric> <houseNumber partType="BNR">9997</houseNumber> <direction partType="DIR">N</direction> <streetName partType="STR">Church Street</streetName> <streetNameBase partType="STB">Church Street</streetNameBase> <streetNameType partType="STTYP">Avenue</streetNameType> <unitID partType="UNID">222234</unitID> <censusTract partType="CEN">testCensusValue</censusTract> <unitType partType="UNIT">Apartment</unitType> <useablePeriod xsi:type="IVL_TS" > <low value="20070128" inclusive="true"/> <high value="20070527" inclusive="false"/> </useablePeriod> </[attribute]>

ANY

<[attribute] xsi:type="ST">MTK Test1</[attribute]>

<[attribute] xsi:type="ST">MTK Test2</[attribute]>

BL

<[attribute] value="true"/>

<[attribute] value="false"/>

BN

<[attribute] value="true"/>

<[attribute] value="true"/>

ControlActWrapper

<controlActProcess classCode="CACT" moodCode="EVN"> <subject typeCode="SUBJ"></subject></controlActProcess>

<controlActProcess classCode="CACT" moodCode="EVN"> <subject typeCode="SUBJ"> <registrationEvent classCode="REG" moodCode="EVN"> <code code="T" codeSystemName="ActCode"/> <subject typeCode="SBJ"> </subject> </registrationEvent> </subject> </controlActProcess>

ED

<[attribute] mediaType="text/plain" language="en-US"> <reference value="http://example.org/xrays/128s8d9ej229se32s.png"> <useablePeriod xsi:type="IVL_TS"> <low value="200007200845"/> <high value="200008200845"/> </useablePeriod> </reference>ED.Text1 </[attribute]>

<[attribute] mediaType="text/plain" language="en-US">ED.Text2 <reference value="http://example.org/xrays/128s8d9ej229se32s.png"> <useablePeriod xsi:type="IVL_TS"> <low value="200007200846"/> <high value="200008200846"/> </useablePeriod> </reference>ED.Text2 </[attribute]>

EIVL

<[attribute] xsi:type="EIVL_TS"> <event code="AC" codeSystem="2.16.840.1.113883.5.139" codeSystemName="TimingEvent"/> <offset> <low value="10" unit="h"/> <high value="20" unit="h"/> </offset> </[attribute]>

<[attribute] xsi:type="EIVL_TS"> <event code="ACD" codeSystem="2.16.840.1.113883.5.139" codeSystemName="TimingEvent"/> <offset> <low value="11" unit="h"/> <high value="21" unit="h"/> </offset> </[attribute]>

EN

<[attribute] use="L"> <family partType="FAM">John</family> <given partType="GIV">Doe</given> <validTime xsi:type="IVL_TS"> <low value="20070127" inclusive="true"/> <high value="20070526" inclusive="false"/> </validTime> </[attribute]>

<[attribute] use="L"> <family partType="FAM">John</family> <given partType="GIV">Doe</given> <validTime xsi:type="IVL_TS"> <low value="20070129" inclusive="true"/> <high value="20070529" inclusive="false"/> </validTime> </[attribute]>

II

<[attribute] root="9.989898.5.100.10" extension="MTK1" assigningAuthorityName="ORACLE"/>

<[attribute] root="9.989898.5.100.10" extension="MTK1" assigningAuthorityName="ORACLE"/>

INT

<[attribute] xsi:type="INT" value="204" />

<[attribute] xsi:type="INT" value="205" />

IVL_INT

<[attribute] xsi:type="IVL_INT"> <low value="10"/> <high value="20"/> </[attribute]>

<[attribute] xsi:type="IVL_INT"> <low value="10"/> <high value="20"/> </[attribute]>

IVL_MO

<[attribute] xsi:type="IVL_MO"> <low value="200" currency="USD"/> <width value="205" currency="USD"/> </[attribute]>

<[attribute] xsi:type="IVL_MO"> <low value="1000" currency="USD"/> <width value="2000" currency="USD" /> </[attribute]>

IVL_PQ

<[attribute] xsi:type="IVL_PQ"> <low value="10" unit="g"/> <high value="20" unit="g"/> </[attribute]>

<[attribute] xsi:type="IVL_PQ"> <low value="1100" unit="g"/> <high value="2200" unit="g"/> </[attribute]>

IVL_REAL

<[attribute] xsi:type="IVL_REAL"> <low value="10.05"/> <high value="20.05"/> </[attribute]>

<[attribute] xsi:type="IVL_REAL" value="10.05">

IVL_TS

<[attribute] xsi:type="IVL_TS"> <low value="20070127" inclusive="true"/> <high value="20070526" inclusive="false"/> </[attribute]>

<[attribute] xsi:type="IVL_TS"> <low value="20070127" inclusive="true"/> <width value="2" unit="h"/> </[attribute]>

MO

<[attribute] value="204" currency="USD"/>

<[attribute] value="204" currency="INR"/>

ON

<[attribute] use="L"> <prefix partType="PFX">Prime Health</prefix> <suffix partType="SFX">Clinic</suffix> </[attribute]>

<[attribute] use="L"> <prefix partType="PFX">Prime Health</prefix> <suffix partType="SFX">Speciality Center</suffix> </[attribute]>

PIVL

<[attribute] xsi:type="PIVL_TS" alignment="DW" institutionSpecified="false"> <phase> <low value="20070319" inclusive="true"/> <high value="20070324" inclusive="false"/> </phase> <period value="1" unit="wk"/> </[attribute]>

<[attribute] xsi:type="PIVL_TS" alignment="HD" operator="A"> <phase> <low value="200703190900" inclusive="true"/> <high value="200703191700" inclusive="false"/> </phase> <period value="1" unit="d"/> </[attribute]>

PN

<[attribute] use="L"> <family partType="FAM">Levin</family> <given partType="GIV">Henry Jr</given> </[attribute]>

<[attribute] use="L"> <family partType="FAM" qualifier="VV">Levin</family> <given partType="GIV">Henry Sr</given> </[attribute]>

PQ

<[attribute] xsi:type="PQ" value="204" unit="g"/>

<[attribute] xsi:type="PQ" value="205" unit="g"/>

REAL

<[attribute] xsi:type="REAL" value="204" />

<[attribute] xsi:type="REAL" value="205" />

RTO_INT

<[attribute] xsi:type="RTO_INT"> <numerator value="204"/> <denominator value="204"/> </[attribute]>

<[attribute] xsi:type="RTO_INT"> <numerator value="205"/> <denominator value="205"/> </[attribute]>

RTO_MO_PQ

<[attribute] xsi:type="RTO_MO_PQ"> <numerator value="204" currency="USD"/> <denominator value="204" unit="g"/> </[attribute]>

<[attribute] xsi:type="RTO_MO_PQ"> <numerator value="205" currency="USD"/> <denominator value="205" unit="g"/> </[attribute]>

RTO_PQ

<[attribute] xsi:type="RTO_PQ_PQ"> <numerator xsi:type="PQ" value="2" unit="g"/> <denominator xsi:type="PQ" value="1" unit="1"/> </[attribute]>

<[attribute] xsi:type="RTO_PQ_PQ"> <numerator xsi:type="PQ" value="4" unit="g"/> <denominator xsi:type="PQ" value="2" unit="1"/> </[attribute]>

RTO_PQ_PQ

<[attribute] xsi:type="RTO_PQ_PQ"> <numerator xsi:type="PQ" value="2" unit="g"/> <denominator xsi:type="PQ" value="1" unit="1"/> </[attribute]>

<[attribute] xsi:type="RTO_PQ_PQ"> <numerator xsi:type="PQ" value="4" unit="g"/> <denominator xsi:type="PQ" value="2" unit="1"/> </[attribute]>

RTO_QTY_QTY

<[attribute] xsi:type="RTO_QTY_QTY"> <numerator xsi:type="PQ" value="2" unit="g"/> <denominator xsi:type="PQ" value="1" unit="1"/> </[attribute]>

<[attribute] xsi:type="RTO_QTY_QTY"> <numerator xsi:type="PQ" value="4" unit="g"/> <denominator xsi:type="PQ" value="2" unit="1"/> </[attribute]>

ST

<[attribute]>MTK Test1</[attribute]>

<[attribute]>MTK Test2</[attribute]>

SXCM_TS

<[attribute] xsi:type="SXPR_TS"> <comp xsi:type="IVL_TS"> <low value="20050603" /> <high value="20050603" /> </comp> <comp xsi:type="PIVL_TS" operator="A" institutionSpecified="true"> <period value="6" unit="h" /> </comp> </[attribute]>

<[attribute] xsi:type="SXPR_TS"> <comp xsi:type="IVL_TS"> <low value="20050604" /> <high value="20050604" /> </comp> <comp xsi:type="PIVL_TS" operator="A" institutionSpecified="true"> <period value="7" unit="h" /> </comp> </[attribute]

TEL

<[attribute] value="tel:1-690-555-1111" use="H" />

<[attribute] value="tel:1-690-555-2222" use="WP" />

TN

<[attribute]>Babel Fish</[attribute]>

<[attribute]>Red Herring</[attribute]>

TransmissionWrapper

<MCCI_MT000100HT04.Message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:hl7-org:v3" xmlns:xsip="urn:hl7-org:v3" xmlns:htb="http://xmlns.oracle.com/apps/ctb/messaging" ITSVersion= "XML_1.0"> <creationTime value="20040719080000-0800"/> <responseModeCode code="C"/> <versionCode code="V3PR1"/> <interactionId root="9.989898.5.100" extension="PRPA_HN400000"/> <profileId root="9.989898.5.1" extension="v2.14.1.01"/> <processingCode code="P"/> <processingModeCode code="T"/> <acceptAckCode code="AL"/> <receiver typeCode= "RCV"> <device classCode="DEV" determinerCode="INSTANCE" > <id root="9.989898.5.100" extension="DEV1000"/> <asAgent classCode="AGNT" > <representedOrganization classCode="ORG" determinerCode="INSTANCE" > <id root="9.989898.5.100" extension="ORG1000"/> </representedOrganization> </asAgent> </device> </receiver> <respondTo typeCode ="RSP"> <device classCode="DEV" determinerCode="INSTANCE" > <id root="9.481456.5.1" extension="DEV1001"/> <asAgent classCode="AGNT" > <representedOrganization classCode="ORG" determinerCode="INSTANCE"> <id root="9.481456.5.1" extension="ORG1001"/> </representedOrganization> </asAgent> </device> </respondTo> <sender typeCode ="SND"> <device classCode="DEV" determinerCode="INSTANCE" > <id root="9.481456.5.6" extension="MTKTest"/> <asAgent classCode="AGNT" > <representedOrganization classCode="ORG" determinerCode="INSTANCE"> <id root="9.481456.5.1" extension="ORG1001"/> </representedOrganization> </asAgent> </device> </sender> </MCCI_MT000100HT04.Message>

TS

<[attribute] value="20070719080000-0800" />

<[attribute] value="20070719080000-0801" />

URL

<[attribute] value="www.Oracle.com"/>

<[attribute] value="http://www.hl7.org/"/>

Expected Differences in Instances

Extra Internal ID Elements

The objects in the generated message can contain one extra ID attribute when compared to the corresponding object in the input message. This is not an issue, provided this extra id attribute represents the internal id of the object.

For person and organization entity objects, three IDs are generated and for other elements two IDs are generated.

Tasks:

Example 9-18 Input XML Element

<Person type="Person" classCode="PSN" determinerCode="INSTANCE" htb:association="player">
<id root="9.989898.5.1" extension="PSN9002"/>
<name use="L">
<family partType="FAM" encoding="TXT">Mart</family>
<given partType="GIV" encoding="TXT">Bob</given>
</name>
</Person>

Example 9-19 Corresponding Output

<Person type="Person" classCode="PSN" determinerCode="INSTANCE" htb:association="player">
<id root="9.101010.5" extension="23617" displayable="false"/>
<id root="9.989898.5.1" extension="PSN9002"/>displayable="false"/>
<id root="9.989898.5" extension="5321906" displayable="false"/>
<name use="L"><family partType="FAM" encoding="TXT">Mart</family>
<given partType="GIV" encoding="TXT">Bob</given>
</name>
</Person>

Extra XML Attributes in Coded Values

The XML representations of coded values will contain their full complement of attributes in the generated message, even though some of these attributes were absent in the persisted message. This is not an issue.

Tasks:

Example 9-20 Input XML Element

<code code="PORR_TE100001" codeSystemName="HDR Supplemental"/>

Example 9-21 Corresponding Output

<code code="PORR_TE100001" 
codeSystemName="HDR Supplemental" 
codeSystem="2.16.840.1.113894.1004.100.100.2.5" 
codeSystemVersion="HDR Supplemental (2005-02-28)" 
displayName="Christian: Assembly of God"/>

Order Differences in Collection Attributes

The order of the constituent elements in collection attributes (those of type SET or BAG) may not be preserved in the generated message.

Tasks:

Example 9-22 Input XML Element

<statusCode code = "active"/><telecom value="tel:1-690-555-1111" use="H" /><telecom value="tel:1-690-555-1111" use="WP"/>

Example 9-23 Corresponding Output

<statusCode code = "active"/> 
<telecom value="tel:1-690-555-1111" use="WP" />
<telecom value="tel:1-690-555-1111" use="H"/>

Order Differences Due to Choice Elements

When a ActRelationship has cardinality greater than one, and the target's type is a choice, then the order of the output elements may not match the order of the input elements.

Tasks:

Example 9-24 Input XML Element

<PORR_MT100001HT01.InvestigationEvent …>
…
<component typeCode="COMP" >
<SubstanceAdministrationEvent classCode="SBADM" moodCode="EVN" negationInd="false"">
…
</SubstanceAdministrationEvent>
</component>
<component typeCode="COMP" >
<SpecimenObservationEvent classCode="SPCOBS" moodCode="EVN" negationInd="false" >
…
</SpecimenObservationEvent>
</component>
<component typeCode="COMP" >
<ObservationEventGeneral classCode="OBS" moodCode="EVN" negationInd="false" >
…
</ObservationEventGeneral>
</component>
<component typeCode="COMP" >
<EncounterEvent classCode="ENC" moodCode="EVN" >
…
</EncounterEvent>
</component>
…
</PORR_MT100001HT01.InvestigationEvent >

Example 9-25 Corresponding Output

<PORR_MT100001HT01.InvestigationEvent …>
…
<component typeCode="COMP" >
<SpecimenObservationEvent type="Observation" classCode="SPCOBS" moodCode="EVN" negationInd="false" >
…
</SpecimenObservationEvent>
</component>
<component typeCode="COMP" >
<SubstanceAdministrationEvent classCode="SBADM" moodCode="EVN" negationInd="false" >
…
</SubstanceAdministrationEvent>
</component>
<component typeCode="COMP" >
<EncounterEvent classCode="ENC" moodCode="EVN" >
…
</EncounterEvent>
</component>
<component typeCode="COMP" >
<ObservationEventGeneral type="Observation" classCode="OBS" moodCode="EVN" negationInd="false" >
…
</ObservationEventGeneral>
</component>
…
</PORR_MT100001HT01.InvestigationEvent >

Differences in the Order of XML Attributes

The order of XML attributes of an element may be different in the input and output messages. The order of the attributes of an XML element is not significant.

Tasks:

Example 9-26 Input XML Element

<telecom value="tel:1-490-555-2222" use="H"/>
<POXX_MT121000HT02.SpecimenObservationOrder moodCode="RQO" classCode="SPCOBS"  negationInd="false" >

Example 9-27 Corresponding Output

<telecom use="H" value="tel:1-490-555-2222"/>
<POXX_MT121000HT02.SpecimenObservationOrder classCode="SPCOBS" moodCode="RQO" negationInd="false">

Differences Due to Time Zones

A generated message may contain different literal values for time values than is present in the input message, as the generated time values are represented in the time zone of the database.

Example 9-28 Input XML Element

<id root="9.481456.5.30" extension="NC001"/>
	<creationTime value="20040719080000-0800"/>
	<versionCode code="V3PR1"/>
	<profileId root="9.989898.5.1" extension=" v2.14.1.01"/>
	<processingCode code="P"/>

Example 9-29 Corresponding Output

<id root="9.481456.5.30" extension="NC001"/>
   <creationTime value="20070719080000-0800"/>
   <versionCode code="V3PR1"/>
   <profileId root="9.989898.5.1" extension=" v2.14.1.01"/>
   <processingCode code="P"/>

Differences Due to Vocabulary Configuration

OMP can be configured to translate coded attributes before sending them out. In such cases, the input and output values for the coded attribute will be different.

Tasks:

Example 9-30 Input XML Element

<raceCode code="15754" codeSystemName="HL7"/>

Example 9-31 Corresponding Output

<raceCode code="15643001 " codeSystemName="SNOMED-CT" codeSystem="2.16.840.1.113883.6.96 " codeSystemVersion="2.01.4" displayName="White"/>

Differences in the Message Wrapper

Message wrapper of the input message is not persisted by inbound message processor. So, Outbound Message Processor will not generate the same message wrapper again.

MTK generates the test instance by using a seeded message wrapper. This message wrapper is the same for all the test messages. The only difference is the message ids. As outbound message generator does not know what is the content of the inbound message, there will be difference between the following attribute values in both the messages:

  • Message id

  • creationTime

  • responseModeCode

  • interactionId

  • acceptAckCode

  • receiver.device.id

  • respondTo.device.id

  • sender.deviceid

  • receiver. representedOrganization .Id

  • profileId

Tasks:

Example 9-32 Input XML Element

<MFFI_IN000101 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:hl7-org:v3"  xmlns:xsip="urn:hl7-org:v3" xmlns:htb="http://xmlns.oracle.com/apps/ctb/messaging" ITSVersion= "XML_1.0">
<id root = "1.2.3" extension = "158933102"/>
<creationTime value="20040719080000-0800"/>
<responseModeCode code="C"/>
<versionCode code="V3PR1"/>
<interactionId root="9.989898.5.100" extension="PRPA_HN400000"/>
<processingCode code="P"/>
<processingModeCode code="T"/>
<acceptAckCode code="AL"/>
<receiver typeCode= "RCV">
<device classCode="DEV" determinerCode="INSTANCE" >
<id root="9.989898.5.100" extension="DEV1000"/>
<asAgent  classCode="AGNT" >
<representedOrganization  classCode="ORG" determinerCode="INSTANCE" >
<id root="9.989898.5.100" extension="ORG1000"/>
</representedOrganization>
</asAgent>
</device>
</receiver>
<respondTo typeCode ="RSP">
<device classCode="DEV" determinerCode="INSTANCE" >
<id root="9.481456.5.1" extension="DEV1001"/>
<asAgent  classCode="AGNT" >
<representedOrganization  classCode="ORG" determinerCode="INSTANCE">
<id root="9.481456.5.1" extension="ORG1001"/>
</representedOrganization>
</asAgent>
</device>
</respondTo>
<sender typeCode ="SND">
<device classCode="DEV" determinerCode="INSTANCE" >
<id root="9.481456.5.6" extension="MTKTest"/>
<asAgent  classCode="AGNT" >
<representedOrganization  classCode="ORG" determinerCode="INSTANCE">
<id root="9.481456.5.1" extension="ORG1001"/>
</representedOrganization>
</asAgent>
</device>
</sender>
---------------

Example 9-33 Output XML Element

< MFFI_IN000101 xmlns="urn:hl7-org:v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsip="urn:hl7-org:v3" xmlns:htb="http://xmlns.oracle.com/apps/ctb/messaging" ITSVersion="XML_1.0">
   <id root="9.989898.5" extension="MTKTest"/>
   <creationTime value="20071129155115-0800"/>
   <responseModeCode code="D"/>
   <versionCode code="V3PR1"/>
   <interactionId root="9.989898.5" extension="MFPM_IN010000"/>
   <profileId root="9.989898.5" extension="2.14.1.01"/>
   <processingCode code="P"/>
   <processingModeCode code="T"/>
   <acceptAckCode code="NE"/>
   <receiver typeCode="RCV">
      <device classCode="DEV" determinerCode="INSTANCE">
         <id root="9.989898.5.100" extension="ORG1000" displayable="false"/>
         <asAgent classCode="AGNT">
            <representedOrganization classCode="ORG" determinerCode="INSTANCE">
               <id root="9.989898.5.100" extension="ORG1000" displayable="false"/>
            </representedOrganization>
         </asAgent>
      </device>
   </receiver>
   <respondTo typeCode="RSP">
      <device classCode="DEV" determinerCode="INSTANCE">
         <id root="9.989898.5" extension="1"/>
         <asAgent classCode="AGNT">
            <representedOrganization classCode="ORG" determinerCode="INSTANCE">
               <id root="9.989898.5" extension="1"/>
            </representedOrganization>
         </asAgent>
      </device>
   </respondTo>
   <sender typeCode="SND">
      <device classCode="DEV" determinerCode="INSTANCE">
         <id root="9.989898.5" extension="1"/>
         <asAgent classCode="AGNT">
            <representedOrganization classCode="ORG" determinerCode="INSTANCE">
               <id root="9.989898.5" extension="1"/>
            </representedOrganization>
         </asAgent>
      </device>
   </sender>
--------------

Sample Test Message and Corresponding Generated Message

Task Examples:

Example 9-34 Input XML Element

<MFFI_IN000101 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:hl7-org:v3"  xmlns:xsip="urn:hl7-org:v3" xmlns:htb="http://xmlns.oracle.com/apps/ctb/messaging" ITSVersion= "XML_1.0">
<id root = "1.2.3" extension = "158933102"/>
<creationTime value="20040719080000-0800"/>
<responseModeCode code="C"/>
<versionCode code="V3PR1"/>
<interactionId root="9.989898.5.100" extension="PRPA_HN400000"/>
<profileId root="9.989898.5.1" extension="v2.14.1.01"/>
<processingCode code="P"/>
<processingModeCode code="T"/>
<acceptAckCode code="AL"/>
<receiver typeCode= "RCV">
<device classCode="DEV" determinerCode="INSTANCE" >
<id root="9.989898.5.100" extension="DEV1000"/>
<asAgent  classCode="AGNT" >
<representedOrganization  classCode="ORG" determinerCode="INSTANCE" >
<id root="9.989898.5.100" extension="ORG1000"/>
</representedOrganization>
</asAgent>
</device>
</receiver>
<respondTo typeCode ="RSP">
<device classCode="DEV" determinerCode="INSTANCE" >
<id root="9.481456.5.1" extension="DEV1001"/>
<asAgent  classCode="AGNT" >
<representedOrganization  classCode="ORG" determinerCode="INSTANCE">
<id root="9.481456.5.1" extension="ORG1001"/>
</representedOrganization>
</asAgent>
</device>
</respondTo>
<sender typeCode ="SND">
<device classCode="DEV" determinerCode="INSTANCE" >
<id root="9.481456.5.6" extension="MTKTest"/>
<asAgent  classCode="AGNT" >
<representedOrganization  classCode="ORG" determinerCode="INSTANCE">
<id root="9.481456.5.1" extension="ORG1001"/>
</representedOrganization>
</asAgent>
</device>
</sender>
<controlActProcess  classCode="CACT" moodCode="EVN">
<code code = "MFFI_TE000101" codeSystemName = "HDR Supplemental"/>
<subject typeCode="SUBJ">
<registrationEvent classCode="REG" moodCode="EVN">
<code code="T" codeSystemName="ActCode"/>
<subject typeCode="SBJ">
<employmentStaff classCode="EMP">
  <id root = "1.2.3" extension = "158931102"/>
  <code code = "DEPEN" codeSystemName = "RoleCode"/>
  <addr use="H" ><delimiter partType="DEL">;</delimiter>
<country partType="CNT">US</country>
<state partType="STA">CA</state>
<city partType="CTY">Fountain Hills</city>
<postalCode partType="ZIP">85268</postalCode>
<streetAddressLine partType="SAL">15542 OliveWest</streetAddressLine>
<houseNumberNumeric partType="BNN" >999777</houseNumberNumeric>
<houseNumber partType="BNR">999777</houseNumber>
<direction partType="DIR">N</direction>
<streetName partType="STR">Church Street</streetName>
<streetNameBase partType="STB">Church Street</streetNameBase>
<streetNameType partType="STTYP">Avenue</streetNameType>
<unitID partType="UNID">222222</unitID>
<censusTract partType="CEN">testCensusValue</censusTract>
<unitType partType="UNIT">Apartment</unitType>
<useablePeriod xsi:type="IVL_TS" >
    <low value="20070127" inclusive="true"/>
    <high value="20070526" inclusive="false"/>
</useablePeriod>
</addr>
  <addr use="H">
<delimiter partType="DEL">;</delimiter>
<country partType="CNT">US</country>
<state partType="STA">CA</state>
<city partType="CTY">Fountain Hills</city>
<postalCode partType="ZIP">852</postalCode>
<streetAddressLine partType="SAL">142 OliveWest</streetAddressLine>
<houseNumberNumeric partType="BNN" >9977</houseNumberNumeric>
<houseNumber partType="BNR">9997</houseNumber>
<direction partType="DIR">N</direction>
<streetName partType="STR">Church Street</streetName>
<streetNameBase partType="STB">Church Street</streetNameBase>
<streetNameType partType="STTYP">Avenue</streetNameType>
<unitID partType="UNID">222234</unitID>
<censusTract partType="CEN">testCensusValue</censusTract>
<unitType partType="UNIT">Apartment</unitType>
<useablePeriod xsi:type="IVL_TS" >
    <low value="20070127" inclusive="true"/>
    <high value="20070526" inclusive="false"/>
</useablePeriod>
</addr>
   <telecom value="tel:1-690-555-1111" use="H" />
  <telecom value="tel:1-690-555-1111" use="WP"/>
  <statusCode code = "active"/>
  <effectiveTime xsi:type="IVL_TS">
    <low value="20070127"/>
    <high value="20070526"/>
</effectiveTime>
  <employeePerson determinerCode="INSTANCE" classCode="PSN">
    <id root = "1.2.3" extension = "158931402"/>
    <id root = "1.2.3" extension = "158931502"/>
    <name use="L">
  <family partType="FAM" >Levin</family>
  <given partType="GIV" >Henry Jr</given>
</name>
     <name use="L">
  <family partType="FAM" qualifier="VV">Levin</family>
  <given partType="GIV">Henry Sr</given>
</name>
    <desc mediaType="image/png" language="en-US" compression="GZ"  integrityCheck="3454bfb019d0e7d47a253b59cf234bc49a0e0cf8">
   <reference value="http://example.org/xrays/128s8d9ej229se32s.png">
      <useablePeriod xsi:type="IVL_TS">
         <low value="200007200845"/>
         <high value="200008200845"/>
      </useablePeriod>
   </reference>
   <thumbnail mediaType="image/jpeg" language="en-US" representation="B64"/>
      MNYD83jmMdomSJUEdmde9j44zmMir6edjzMMIjdMDSsWdIJdksIJR3373jeu83
      6edjzMMIjdMDSsWdIJdksIJR3373jeu83MNYD83jmMdomSJUEdmde9j44zmMir
      omSJUEdmde9j44zmMiromSJUEdmde9j44zmMirdMDSsWdIJdksIJR3373jeu83
      4zmMir6edjzMMIjdMDSsWdIJdksIJR3373jeu83==</desc>
    <statusCode code = "active"/>
     <telecom value="tel:1-690-555-1111" use="H" />
    <telecom value="tel:1-690-555-1111" use="WP"/>
    <administrativeGenderCode code = "F" codeSystemName = "AdministrativeGender"/>
    <birthTime value="20060719080000-0800" />
    <deceasedInd value="true"/>
    <deceasedTime value="20060719080000-0800" />
    <multipleBirthInd value="true"/>
    <multipleBirthOrderNumber xsi:type="INT" value="204"/>
    <organDonorInd value="true"/>
    <addr use="H" ><delimiter partType="DEL">;</delimiter>
<country partType="CNT">US</country>
<state partType="STA">CA</state>
<city partType="CTY">Fountain Hills</city>
<postalCode partType="ZIP">85268</postalCode>
<streetAddressLine partType="SAL">15542 OliveWest</streetAddressLine>
<houseNumberNumeric partType="BNN" >999777</houseNumberNumeric>
<houseNumber partType="BNR">999777</houseNumber>
<direction partType="DIR">N</direction>
<streetName partType="STR">Church Street</streetName>
<streetNameBase partType="STB">Church Street</streetNameBase>
<streetNameType partType="STTYP">Avenue</streetNameType>
<unitID partType="UNID">222222</unitID>
<censusTract partType="CEN">testCensusValue</censusTract>
<unitType partType="UNIT">Apartment</unitType>
<useablePeriod xsi:type="IVL_TS" >
    <low value="20070127" inclusive="true"/>
    <high value="20070526" inclusive="false"/>
</useablePeriod>
</addr>
    <addr use="H">
<delimiter partType="DEL">;</delimiter>
<country partType="CNT">US</country>
<state partType="STA">CA</state>
<city partType="CTY">Fountain Hills</city>
<postalCode partType="ZIP">852</postalCode>
<streetAddressLine partType="SAL">142 OliveWest</streetAddressLine>
<houseNumberNumeric partType="BNN" >9977</houseNumberNumeric>
<houseNumber partType="BNR">9997</houseNumber>
<direction partType="DIR">N</direction>
<streetName partType="STR">Church Street</streetName>
<streetNameBase partType="STB">Church Street</streetNameBase>
<streetNameType partType="STTYP">Avenue</streetNameType>
<unitID partType="UNID">222234</unitID>
<censusTract partType="CEN">testCensusValue</censusTract>
<unitType partType="UNIT">Apartment</unitType>
<useablePeriod xsi:type="IVL_TS" >
    <low value="20070127" inclusive="true"/>
    <high value="20070526" inclusive="false"/>
</useablePeriod>
</addr>
    <maritalStatusCode code = "A" codeSystemName = "MaritalStatus"/>
    <disabilityCode code = "1" codeSystemName = "PersonDisabilityType"/>
    <livingArrangementCode code = "G" codeSystemName = "LivingArrangement"/>
    <religiousAffiliationCode code = "1001" codeSystemName = "ReligiousAffiliation"/>
    <raceCode code = "1008-2" codeSystemName = "Race"/>
    <ethnicGroupCode code = "2135-2" codeSystemName = "Ethnicity"/>
    <languageCommunication>
      <languageCode code = "EncounterStatus" codeSystemName = "HDR Supplemental"/>
      <modeCode code = "ESGN" codeSystemName = "LanguageAbilityMode"/>
      <proficiencyLevelCode code = "E" codeSystemName = "LanguageAbilityProficiency"/>
      <preferenceInd value="true"/>
    </languageCommunication>
  </employeePerson>
  <employerOrganization determinerCode="INSTANCE" classCode="ORG">
    <id root = "1.2.3" extension = "158931702"/>
    <id root = "1.2.3" extension = "158931802"/>
    <code code = "NDA17" codeSystemName = "EntityCode"/>
    <name use="L">
   <prefix partType="PFX" >Prime Health</prefix>
   <suffix partType="SFX" >Clinic</suffix>
</name>
    <name use="L">
   <prefix partType="PFX" >Prime Health</prefix>
   <suffix partType="SFX" >Speciality Center</suffix>
</name>
    <desc mediaType="image/png" language="en-US" compression="GZ"  integrityCheck="3454bfb019d0e7d47a253b59cf234bc49a0e0cf8">
   <reference value="http://example.org/xrays/128s8d9ej229se32s.png">
      <useablePeriod xsi:type="IVL_TS">
         <low value="200007200845"/>
         <high value="200008200845"/>
      </useablePeriod>
   </reference>
   <thumbnail mediaType="image/jpeg" language="en-US" representation="B64"/>
      MNYD83jmMdomSJUEdmde9j44zmMir6edjzMMIjdMDSsWdIJdksIJR3373jeu83
      6edjzMMIjdMDSsWdIJdksIJR3373jeu83MNYD83jmMdomSJUEdmde9j44zmMir
      omSJUEdmde9j44zmMiromSJUEdmde9j44zmMirdMDSsWdIJdksIJR3373jeu83
      4zmMir6edjzMMIjdMDSsWdIJdksIJR3373jeu83==</desc>
    <statusCode code = "active"/>
     <telecom value="tel:1-690-555-1111" use="H" />
    <telecom value="tel:1-690-555-1111" use="WP"/>
    <addr use="H" ><delimiter partType="DEL">;</delimiter>
<country partType="CNT">US</country>
<state partType="STA">CA</state>
<city partType="CTY">Fountain Hills</city>
<postalCode partType="ZIP">85268</postalCode>
<streetAddressLine partType="SAL">15542 OliveWest</streetAddressLine>
<houseNumberNumeric partType="BNN" >999777</houseNumberNumeric>
<houseNumber partType="BNR">999777</houseNumber>
<direction partType="DIR">N</direction>
<streetName partType="STR">Church Street</streetName>
<streetNameBase partType="STB">Church Street</streetNameBase>
<streetNameType partType="STTYP">Avenue</streetNameType>
<unitID partType="UNID">222222</unitID>
<censusTract partType="CEN">testCensusValue</censusTract>
<unitType partType="UNIT">Apartment</unitType>
<useablePeriod xsi:type="IVL_TS" >
    <low value="20070127" inclusive="true"/>
    <high value="20070526" inclusive="false"/>
</useablePeriod>
</addr>
    <addr use="H">
<delimiter partType="DEL">;</delimiter>
<country partType="CNT">US</country>
<state partType="STA">CA</state>
<city partType="CTY">Fountain Hills</city>
<postalCode partType="ZIP">852</postalCode>
<streetAddressLine partType="SAL">142 OliveWest</streetAddressLine>
<houseNumberNumeric partType="BNN" >9977</houseNumberNumeric>
<houseNumber partType="BNR">9997</houseNumber>
<direction partType="DIR">N</direction>
<streetName partType="STR">Church Street</streetName>
<streetNameBase partType="STB">Church Street</streetNameBase>
<streetNameType partType="STTYP">Avenue</streetNameType>
<unitID partType="UNID">222234</unitID>
<censusTract partType="CEN">testCensusValue</censusTract>
<unitType partType="UNIT">Apartment</unitType>
<useablePeriod xsi:type="IVL_TS" >
    <low value="20070127" inclusive="true"/>
    <high value="20070526" inclusive="false"/>
</useablePeriod></addr>
    <standardIndustryClassCode code = "001662" codeSystemName = "HDR Supplemental"/>
    <asPartOfWhole classCode="PART">
      <id root = "1.2.3" extension = "158932002"/>
      <id root = "1.2.3" extension = "158932102"/>
      <code code = "DEPEN" codeSystemName = "RoleCode"/>
      <statusCode code = "active"/>
      <effectiveTime xsi:type="IVL_TS">
    <low value="20070127"/>
    <high value="20070526"/>
</effectiveTime>
    </asPartOfWhole>
    <contactParty classCode="CON">
      <id root = "1.2.3" extension = "158932302"/>
      <id root = "1.2.3" extension = "158932402"/>
      <code code = "DEPEN" codeSystemName = "RoleCode"/>
       <telecom value="tel:1-690-555-1111" use="H" />
      <telecom value="tel:1-690-555-1111" use="WP"/>
      <contactPerson determinerCode="INSTANCE" classCode="PSN">
        <name use="L">
  <family partType="FAM" >Levin</family>
  <given partType="GIV" >Henry Jr</given>
</name>
         <name use="L">
  <family partType="FAM" qualifier="VV">Levin</family>
  <given partType="GIV">Henry Sr</given>
</name>
         <telecom value="tel:1-690-555-1111" use="H" />
        <telecom value="tel:1-690-555-1111" use="WP"/>
        <asPersonDomain classCode="IDENT">
          <id root = "1.2.3" extension = "158932602"/>
          <code code = "DEPEN" codeSystemName = "RoleCode"/>
        </asPersonDomain>
      </contactPerson>
    </contactParty>
  </employerOrganization>
</employmentStaff>
</subject>
</registrationEvent>
</subject>
</controlActProcess>
</MFFI_IN000101>

Example 9-35 Output XML Element

<MFPM_IN000101  xmlns="urn:hl7-org:v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsip="urn:hl7-org:v3" xmlns:htb="http://xmlns.oracle.com/apps/ctb/messaging" ITSVersion="XML_1.0">
   <id root="9.989898.5" extension="MTKTest"/>
   <creationTime value="20071129155115-0800"/>
   <responseModeCode code="D"/>
   <versionCode code="V3PR1"/>
   <interactionId root="9.989898.5" extension="MFPM_IN010000"/>
   <profileId root="9.989898.5" extension="2.14.1.01"/>
   <processingCode code="P"/>
   <processingModeCode code="T"/>
   <acceptAckCode code="NE"/>
   <receiver typeCode="RCV">
      <device classCode="DEV" determinerCode="INSTANCE">
         <id root="9.989898.5.100" extension="ORG1000" displayable="false"/>
         <asAgent classCode="AGNT">
            <representedOrganization classCode="ORG" determinerCode="INSTANCE">
               <id root="9.989898.5.100" extension="ORG1000" displayable="false"/>
            </representedOrganization>
         </asAgent>
      </device>
   </receiver>
   <respondTo typeCode="RSP">
      <device classCode="DEV" determinerCode="INSTANCE">
         <id root="9.989898.5" extension="1"/>
         <asAgent classCode="AGNT">
            <representedOrganization classCode="ORG" determinerCode="INSTANCE">
               <id root="9.989898.5" extension="1"/>
            </representedOrganization>
         </asAgent>
      </device>
   </respondTo>
   <sender typeCode="SND">
      <device classCode="DEV" determinerCode="INSTANCE">
         <id root="9.989898.5" extension="1"/>
         <asAgent classCode="AGNT">
            <representedOrganization classCode="ORG" determinerCode="INSTANCE">
               <id root="9.989898.5" extension="1"/>
            </representedOrganization>
         </asAgent>
      </device>
   </sender>
   <controlActProcess classCode="CACT" moodCode="EVN">
      <id root="9.989898.5" extension="158933802" displayable="false"/>
      <code code="EncounterStatus" codeSystemName="HDR Supplemental" codeSystem="2.16.840.1.113894.1004.100.100.2.5" codeSystemVersion="HDR Supplemental (2005-07-28)" displayName="EncounterStatus"/>
      <subject typeCode="SUBJ">
         <registrationEvent classCode="REG" moodCode="EVN">
            <id root="9.989898.5" extension="158933702" displayable="false"/>
            <code code="T" codeSystemName="ActCode" codeSystem="2.16.840.1.113883.5.4" codeSystemVersion="2.01.4" displayName="tea only"/>
            <subject typeCode="SBJ">
               <employmentStaff classCode="EMP">
                  <id root="1.2.3" extension="158931102" displayable="false"/>
                  <code code="DEPEN" codeSystemName="RoleCode" codeSystem="2.16.840.1.113883.5.111" codeSystemVersion="2.01.4" displayName="DEPEN"/>
                  <addr use="H">
                     <delimiter partType="DEL" representation="TXT">;</delimiter>
                     <country partType="CNT" representation="TXT">US</country>
                     <state partType="STA" representation="TXT">CA</state>
                     <city partType="CTY" representation="TXT">Fountain Hills</city>
                     <postalCode partType="ZIP" representation="TXT">85268</postalCode>
                     <streetAddressLine partType="SAL" representation="TXT">15542 OliveWest</streetAddressLine>
                     <houseNumberNumeric partType="BNN" representation="TXT">999777</houseNumberNumeric>
                     <houseNumber partType="BNR" representation="TXT">999777</houseNumber>
                     <direction partType="DIR" representation="TXT">N</direction>
                     <streetName partType="STR" representation="TXT">Church Street</streetName>
                     <streetNameBase partType="STB" representation="TXT">Church Street</streetNameBase>
                     <streetNameType partType="STTYP" representation="TXT">Avenue</streetNameType>
                     <unitID partType="UNID" representation="TXT">222222</unitID>
                     <censusTract partType="CEN" representation="TXT">testCensusValue</censusTract>
                     <unitType partType="UNIT" representation="TXT">Apartment</unitType>
                     <useablePeriod xsi:type="IVL_TS">
                        <low value="20070127" inclusive="true"/>
                        <high value="20070526" inclusive="false"/>
                     </useablePeriod>
                  </addr>
                  <addr use="H">
                     <delimiter partType="DEL" representation="TXT">;</delimiter>
                     <country partType="CNT" representation="TXT">US</country>
                     <state partType="STA" representation="TXT">CA</state>
                     <city partType="CTY" representation="TXT">Fountain Hills</city>
                     <postalCode partType="ZIP" representation="TXT">852</postalCode>
                     <streetAddressLine partType="SAL" representation="TXT">142 OliveWest</streetAddressLine>
                     <houseNumberNumeric partType="BNN" representation="TXT">9977</houseNumberNumeric>
                     <houseNumber partType="BNR" representation="TXT">9997</houseNumber>
                     <direction partType="DIR" representation="TXT">N</direction>
                     <streetName partType="STR" representation="TXT">Church Street</streetName>
                     <streetNameBase partType="STB" representation="TXT">Church Street</streetNameBase>
                     <streetNameType partType="STTYP" representation="TXT">Avenue</streetNameType>
                     <unitID partType="UNID" representation="TXT">222234</unitID>
                     <censusTract partType="CEN" representation="TXT">testCensusValue</censusTract>
                     <unitType partType="UNIT" representation="TXT">Apartment</unitType>
                     <useablePeriod xsi:type="IVL_TS">
                        <low value="20070127" inclusive="true"/>
                        <high value="20070526" inclusive="false"/>
                     </useablePeriod>
                  </addr>
                  <telecom use="H" value="tel:1-690-555-1111"/>
                  <telecom use="WP" value="tel:1-690-555-1111"/>
                  <statusCode code="active"/>
                  <effectiveTime xsi:type="IVL_TS">
                     <low value="20070127" inclusive="true"/>
                     <high value="20070526" inclusive="true"/>
                  </effectiveTime>
                  <employeePerson classCode="PSN" determinerCode="INSTANCE">
                     <id root="9.101010.5" extension="1086238" displayable="false"/>
                     <id root="1.2.3" extension="158931502" displayable="false"/>
                     <id root="1.2.3" extension="158931402" displayable="false"/>
                     <id root="9.989898.5" extension="158933405" displayable="false"/>
                     <name use="L">
                        <family partType="FAM" representation="TXT" qualifier="VV">Levin</family>
                        <given partType="GIV" representation="TXT">Henry Sr</given>
                     </name>
                     <name use="L">
                        <family partType="FAM" representation="TXT">Levin</family>
                        <given partType="GIV" representation="TXT">Henry Jr</given>
                     </name>
                     <desc mediaType="image/png" compression="GZ" integrityCheck="3454bfb019d0e7d47a253b59cf234bc49a0e0cf8" representation="TXT">MNYD83jmMdomSJUEdmde9j44zmMir6edjzMMIjdMDSsWdIJdksIJR3373jeu83
      6edjzMMIjdMDSsWdIJdksIJR3373jeu83MNYD83jmMdomSJUEdmde9j44zmMir
      omSJUEdmde9j44zmMiromSJUEdmde9j44zmMirdMDSsWdIJdksIJR3373jeu83
      4zmMir6edjzMMIjdMDSsWdIJdksIJR3373jeu83==<reference value="http://example.org/xrays/128s8d9ej229se32s.png"><useablePeriod xsi:type="IVL_TS"><low value="200007200845" inclusive="true"/><high value="200008200845" inclusive="true"/></useablePeriod></reference><thumbnail mediaType="image/jpeg" representation="B64"></thumbnail></desc>
                     <statusCode code="active"/>
                     <telecom use="H" value="tel:1-690-555-1111"/>
                     <telecom use="WP" value="tel:1-690-555-1111"/>
                     <administrativeGenderCode code="F" codeSystemName="AdministrativeGender" codeSystem="2.16.840.1.113883.5.1" codeSystemVersion="2.01.4" displayName="Female"/>
                     <birthTime value="20060719080000-0800"/>
                     <deceasedInd value="true"/>
                     <deceasedTime value="20060719080000-0800"/>
                     <multipleBirthInd value="true"/>
                     <multipleBirthOrderNumber value="204"/>
                     <organDonorInd value="true"/>
                     <addr use="H">
                        <delimiter partType="DEL" representation="TXT">;</delimiter>
                        <country partType="CNT" representation="TXT">US</country>
                        <state partType="STA" representation="TXT">CA</state>
                        <city partType="CTY" representation="TXT">Fountain Hills</city>
                        <postalCode partType="ZIP" representation="TXT">85268</postalCode>
                        <streetAddressLine partType="SAL" representation="TXT">15542 OliveWest</streetAddressLine>
                        <houseNumberNumeric partType="BNN" representation="TXT">999777</houseNumberNumeric>
                        <houseNumber partType="BNR" representation="TXT">999777</houseNumber>
                        <direction partType="DIR" representation="TXT">N</direction>
                        <streetName partType="STR" representation="TXT">Church Street</streetName>
                        <streetNameBase partType="STB" representation="TXT">Church Street</streetNameBase>
                        <streetNameType partType="STTYP" representation="TXT">Avenue</streetNameType>
                        <unitID partType="UNID" representation="TXT">222222</unitID>
                        <censusTract partType="CEN" representation="TXT">testCensusValue</censusTract>
                        <unitType partType="UNIT" representation="TXT">Apartment</unitType>
                        <useablePeriod xsi:type="IVL_TS">
                           <low value="20070127" inclusive="true"/>
                           <high value="20070526" inclusive="false"/>
                        </useablePeriod>
                     </addr>
                     <addr use="H">
                        <delimiter partType="DEL" representation="TXT">;</delimiter>
                        <country partType="CNT" representation="TXT">US</country>
                        <state partType="STA" representation="TXT">CA</state>
                        <city partType="CTY" representation="TXT">Fountain Hills</city>
                        <postalCode partType="ZIP" representation="TXT">852</postalCode>
                        <streetAddressLine partType="SAL" representation="TXT">142 OliveWest</streetAddressLine>
                        <houseNumberNumeric partType="BNN" representation="TXT">9977</houseNumberNumeric>
                        <houseNumber partType="BNR" representation="TXT">9997</houseNumber>
                        <direction partType="DIR" representation="TXT">N</direction>
                        <streetName partType="STR" representation="TXT">Church Street</streetName>
                        <streetNameBase partType="STB" representation="TXT">Church Street</streetNameBase>
                        <streetNameType partType="STTYP" representation="TXT">Avenue</streetNameType>
                        <unitID partType="UNID" representation="TXT">222234</unitID>
                        <censusTract partType="CEN" representation="TXT">testCensusValue</censusTract>
                        <unitType partType="UNIT" representation="TXT">Apartment</unitType>
                        <useablePeriod xsi:type="IVL_TS">
                           <low value="20070127" inclusive="true"/>
                           <high value="20070526" inclusive="false"/>
                        </useablePeriod>
                     </addr>
                     <maritalStatusCode code="A" codeSystemName="MaritalStatus" codeSystem="2.16.840.1.113883.5.2" codeSystemVersion="2.01.4" displayName="Annulled"/>
                     <disabilityCode code="1" codeSystemName="PersonDisabilityType" codeSystem="2.16.840.1.113883.5.93" codeSystemVersion="2.01.4" displayName="Vision impaired"/>
                     <livingArrangementCode code="G" codeSystemName="LivingArrangement" codeSystem="2.16.840.1.113883.5.63" codeSystemVersion="2.01.4" displayName="Group Home"/>
                     <religiousAffiliationCode code="1001" codeSystemName="ReligiousAffiliation" codeSystem="2.16.840.1.113883.5.1076" codeSystemVersion="2.01.4" displayName="Adventist"/>
                     <raceCode code="1008-2" codeSystemName="Race" codeSystem="2.16.840.1.113883.5.104" codeSystemVersion="2.01.4" displayName="Algonquian"/>
                     <ethnicGroupCode code="2135-2" codeSystemName="Ethnicity" codeSystem="2.16.840.1.113883.5.50" codeSystemVersion="2.01.4" displayName="Hispanic or Latino"/>
                     <languageCommunication>
                        <languageCode code="EncounterStatus" codeSystemName="HDR Supplemental" codeSystem="2.16.840.1.113894.1004.100.100.2.5" codeSystemVersion="HDR Supplemental (2005-07-28)" displayName="EncounterStatus"/>
                        <modeCode code="ESGN" codeSystemName="LanguageAbilityMode" codeSystem="2.16.840.1.113883.5.60" codeSystemVersion="2.01.4" displayName="Expressed signed"/>
                        <proficiencyLevelCode code="E" codeSystemName="LanguageAbilityProficiency" codeSystem="2.16.840.1.113883.5.61" codeSystemVersion="2.01.4" displayName="Excellent"/>
                        <preferenceInd value="true"/>
                     </languageCommunication>
                  </employeePerson>
                  <employerOrganization classCode="ORG" determinerCode="INSTANCE">
                     <id root="1.2.3" extension="158931702" displayable="false"/>
                     <id root="9.989898.5" extension="158933406" displayable="false"/>
                     <id root="1.2.3" extension="158931802" displayable="false"/>
                     <id root="9.101010.5" extension="1086239" displayable="false"/>
                     <code code="NDA17" codeSystemName="EntityCode" codeSystem="2.16.840.1.113883.5.1060" codeSystemVersion="2.01.4" displayName="NDA17"/>
                     <name use="L">
                        <prefix partType="PFX" representation="TXT">Prime Health</prefix>
                        <suffix partType="SFX" representation="TXT">Clinic</suffix>
                     </name>
                     <name use="L">
                        <prefix partType="PFX" representation="TXT">Prime Health</prefix>
                        <suffix partType="SFX" representation="TXT">Speciality Center</suffix>
                     </name>
                     <desc mediaType="image/png" compression="GZ" integrityCheck="3454bfb019d0e7d47a253b59cf234bc49a0e0cf8" representation="TXT">MNYD83jmMdomSJUEdmde9j44zmMir6edjzMMIjdMDSsWdIJdksIJR3373jeu83
      6edjzMMIjdMDSsWdIJdksIJR3373jeu83MNYD83jmMdomSJUEdmde9j44zmMir
      omSJUEdmde9j44zmMiromSJUEdmde9j44zmMirdMDSsWdIJdksIJR3373jeu83
      4zmMir6edjzMMIjdMDSsWdIJdksIJR3373jeu83==<reference value="http://example.org/xrays/128s8d9ej229se32s.png"><useablePeriod xsi:type="IVL_TS"><low value="200007200845" inclusive="true"/><high value="200008200845" inclusive="true"/></useablePeriod></reference><thumbnail mediaType="image/jpeg" representation="B64"></thumbnail></desc>
                     <statusCode code="active"/>
                     <telecom use="H" value="tel:1-690-555-1111"/>
                     <addr use="H">
                        <delimiter partType="DEL" representation="TXT">;</delimiter>
                        <country partType="CNT" representation="TXT">US</country>
                        <state partType="STA" representation="TXT">CA</state>
                        <city partType="CTY" representation="TXT">Fountain Hills</city>
                        <postalCode partType="ZIP" representation="TXT">852</postalCode>
                        <streetAddressLine partType="SAL" representation="TXT">142 OliveWest</streetAddressLine>
                        <houseNumberNumeric partType="BNN" representation="TXT">9977</houseNumberNumeric>
                        <houseNumber partType="BNR" representation="TXT">9997</houseNumber>
                        <direction partType="DIR" representation="TXT">N</direction>
                        <streetName partType="STR" representation="TXT">Church Street</streetName>
                        <streetNameBase partType="STB" representation="TXT">Church Street</streetNameBase>
                        <streetNameType partType="STTYP" representation="TXT">Avenue</streetNameType>
                        <unitID partType="UNID" representation="TXT">222234</unitID>
                        <censusTract partType="CEN" representation="TXT">testCensusValue</censusTract>
                        <unitType partType="UNIT" representation="TXT">Apartment</unitType>
                        <useablePeriod xsi:type="IVL_TS">
                           <low value="20070127" inclusive="true"/>
                           <high value="20070526" inclusive="false"/>
                        </useablePeriod>
                     </addr>
                     <addr use="H">
                        <delimiter partType="DEL" representation="TXT">;</delimiter>
                        <country partType="CNT" representation="TXT">US</country>
                        <state partType="STA" representation="TXT">CA</state>
                        <city partType="CTY" representation="TXT">Fountain Hills</city>
                        <postalCode partType="ZIP" representation="TXT">85268</postalCode>
                        <streetAddressLine partType="SAL" representation="TXT">15542 OliveWest</streetAddressLine>
                        <houseNumberNumeric partType="BNN" representation="TXT">999777</houseNumberNumeric>
                        <houseNumber partType="BNR" representation="TXT">999777</houseNumber>
                        <direction partType="DIR" representation="TXT">N</direction>
                        <streetName partType="STR" representation="TXT">Church Street</streetName>
                        <streetNameBase partType="STB" representation="TXT">Church Street</streetNameBase>
                        <streetNameType partType="STTYP" representation="TXT">Avenue</streetNameType>
                        <unitID partType="UNID" representation="TXT">222222</unitID>
                        <censusTract partType="CEN" representation="TXT">testCensusValue</censusTract>
                        <unitType partType="UNIT" representation="TXT">Apartment</unitType>
                        <useablePeriod xsi:type="IVL_TS">
                           <low value="20070127" inclusive="true"/>
                           <high value="20070526" inclusive="false"/>
                        </useablePeriod>
                     </addr>
                     <standardIndustryClassCode code="001662" codeSystemName="HDR Supplemental" codeSystem="2.16.840.1.113894.1004.100.100.2.5" codeSystemVersion="HDR Supplemental (2005-07-28)" displayName="Snack"/>
                     <asPartOfWhole classCode="PART">
                        <id root="1.2.3" extension="158932002" displayable="false"/>
                        <id root="1.2.3" extension="158932102" displayable="false"/>
                        <code code="DEPEN" codeSystemName="RoleCode" codeSystem="2.16.840.1.113883.5.111" codeSystemVersion="2.01.4" displayName="DEPEN"/>
                        <statusCode code="active"/>
                        <effectiveTime xsi:type="IVL_TS">
                           <low value="20070127" inclusive="true"/>
                           <high value="20070526" inclusive="true"/>
                        </effectiveTime>
                     </asPartOfWhole>
                     <contactParty classCode="CON">
                        <id root="1.2.3" extension="158932302" displayable="false"/>
                        <id root="1.2.3" extension="158932402" displayable="false"/>
                        <code code="DEPEN" codeSystemName="RoleCode" codeSystem="2.16.840.1.113883.5.111" codeSystemVersion="2.01.4" displayName="DEPEN"/>
                        <telecom use="H" value="tel:1-690-555-1111"/>
                        <telecom use="WP" value="tel:1-690-555-1111"/>
                        <contactPerson classCode="PSN" determinerCode="INSTANCE">
                           <name use="L">
                              <family partType="FAM" representation="TXT">Levin</family>
                              <given partType="GIV" representation="TXT">Henry Jr</given>
                           </name>
                           <name use="L">
                              <family partType="FAM" representation="TXT" qualifier="VV">Levin</family>
                              <given partType="GIV" representation="TXT">Henry Sr</given>
                           </name>
                           <telecom use="H" value="tel:1-690-555-1111"/>
                           <telecom use="WP" value="tel:1-690-555-1111"/>
                           <asPersonDomain classCode="IDENT">
                              <id root="1.2.3" extension="158932602" displayable="false"/>
                              <code code="DEPEN" codeSystemName="RoleCode" codeSystem="2.16.840.1.113883.5.111" codeSystemVersion="2.01.4" displayName="DEPEN"/>
                           </asPersonDomain>
                        </contactPerson>
                     </contactParty>
                  </employerOrganization>
               </employmentStaff>
            </subject>
         </registrationEvent>
      </subject>
   </controlActProcess>
</ MFPM_IN000101 >

Error Messages

Note:

The & sign in the Error Message column of the above table indicates variable name. MTK displays the value of these variable at runtime.

Error Code

Exception Type

Error Message

Error Description

CTB_MTK_NO_SCHEMA_INFO

CTBValidationRuntimeException

There is no SCHEMA in the list provided to test. Client application has passed a null SCHEMAINFORMATION object.

This error shows that schemainformation object is not passed to the API .Please create schemainformation object array of xsds and mifs which are to be tested and pass it to the API.

CTB_MTK_NO_MIF_CONTENT

CTBValidationRuntimeException

The content of the MIF file &MIF_FILE_NAME is empty.

In schemainformation object only MIF file name is set but the content of the file is not set . Please set the MIF file content as well on the schemainformation object.

CTB_MTK_NO_XSD_CONTENT

CTBValidationRuntimeException

The content of the XSD file &XSD_FILE_NAME is empty.

In schemainformation object only XSD file name is set but the content of the file is not set . Please set the XSD file content as well on the schemainformation object.

CTB_MTK_NO_MIF_AND_XSD_CONTENT

CTBValidationRuntimeException

Both XSD &XSD_FILE_NAME and MIF &MIF_FILE_NAME are not present.

In schemainformation object both XSD and MIF file name is set but the content of the files are not set . Please set the XSD and MIF file content as well on the schemainformation object.

CTB_MTK_INVALID_SCHEMA_TYPE

CTBValidationRuntimeException

Validation of input parameters failed. SCHEMA INFORMATION TYPE &SCHEMA_INFO_TYPE is not supported.

SchemaInformation object requires a SCHEMA INFORMATION TYPE parameter to be set which can have following values 1.PAYLOAD 2.CMET 3. COREMIF. If another value other than these 3 values set for SCHEMA INFORMATION TYPE is encountered, this error is thrown . Please use the correct SCHEMA INFORMATION TYPE values in uploaded schemainformation object.

CTB_MTK_DUPLICATE_XSD

CTBValidationRuntimeException

XSD &XSD_FILE_NAME already exists as oracle ARTIFACTs. Please rename the ARTIFACT.

This error shows that the xsd which user is trying to upload is already present as an Oracle supplied artifact . Please change the name of xsd (other than oracle supported ones) and set it on the schemainformation object.

CTB_MTK_NO_CORE_MIF

CTBValidationRuntimeException

The content of file CMETINFO.COREMIF file is empty.

MTK throws this error when in the schemainformation object schema_type is set as coremif but the content of the files on the object are null. Please pass the coremif content as well in the schemainformation object.

CTB_MTK_PAYLOAD_NT_FOUND

CTBValidationRuntimeException

PAYLOAD XSD is not present in the SCHEMA information passed to MESSAGING TOOL KIT.

MTK throws this error when in the schemainformation object does not contain payload xsd . Please pass the payload xsd information in schemainformation object.

CTB_MTK_DUPLICATE_PAYLOAD

CTBValidationRuntimeException

More than one PAYLOAD present in the SCHEMA information passed to MESSAGING TOOL KIT.

MTK throws this error when in the schemainformation object array have more than one payload schemainformation objects . Please upload only one payload in schemainformation object array.

CTB_MTK_UNSUPPORTED_RIM_CLASS

CTBRuntimeException

PAYLOAD CLASS type '&PAYLOAD_TYPE' is unknown.

If the payload entry point class is not of type ROLE or ACT, this error is thrown. Please use only ROLE or ACT payload types i.e the payload must have ROLE or ACT as entry point class.

CTB_MTK_INTR_XSD_BUILD_FAILED

CTBRuntimeException

INTERACTION SCHEMA validation failed. INTERACTION SCHEMA path: &INTR_SCHEMA. CAUSE: &CAUSE

This error occurs when the uploaded xsds are incorrect or which have the datatypes or vocabulary values which are not supported in HDR. Please check that xsds generated by schema generator tool are correct and recheck the datatypes and vocabulary values used in RMIM (those have to be supported in HDR).

Schema validation failure for interaction schema.

CTB_MTK_MSG_PARSING_FAILED

CTBRuntimeException

XML message parsing failed. CAUSE: &CAUSE

This is a program error where MTK is not able to parse the test message to persist it.

CTB_MTK_TRG_NOT_FOUND

CTBRuntimeException

TRIGGER CODE &TRIGGER_EVENT_CODE is not available in CODE SYSTEM &CODE_SYSTEM_NAME. CAUSE: &CAUSE

This is a program error where the triggerCode generated in test message is an invalid concept.

CTB_MTK_RIM_ASSOCIATION_NT_FND

CTBRuntimeException

RIM ASSOCIATION not found in METADATA for ELEMENT name: &ELEMENT_NAME and parent COMPLEX TYPE&PARENT_COMPLEX_TYPE. MIF or XSD for this complex type may be invalid.

MTK throws this error when it is unable to find the RIM association metadata for a RIM class from the database. As the metadata is generated from MIF file. Please check the MIF file is correct. The MIF file name can be found out from the complex type name given in the error message.

CTB_MTK_PARNT_CMPLX_TYP_NT_FND

CTBRuntimeException

The parent COMPLEX TYPE for the ELEMENT '&ELEMENT_NAME' is not found in METADATA. MIF or XSD for the complex type may be invalid

MTK throws this error when it is not able to find parent complex type for an element from MIF metadata. Please check the MIF file is correct. The MIF file name can be found out from the complex type name given in the error message.

CTB_MTK_CODING_SCHEME_NT_FOUND

CTBRuntimeException

Unable to get coding scheme, for CODE: &CODE, and CODE System Name: &CODE_SYSTEM_NAME. CAUSE: &CAUSE

This is a Program error where MTK is not able to find the code and code system name present in the test message from ETS.

CTB_MTK_PAYLOAD_INFO_NT_FOUND

CTBRuntimeException

Unable to parse PAYLOAD MIF file. PAYLOAD MIF file does not contain PAYLOAD ELEMENT, COMPLEX TYPE information.

This is a program error which occurs due to failure in parsing of payload mif file.

CTB_MTK_CMPLX_TYPE_NT_FOUND

CTBRuntimeException

XSD COMPEX TYPE object for the COMPLEX TYPE name &COMPLEX_TYPE_NAME is not found in the xsd.

This is a program error. This error occurs when MTK does not find a complex type in the xsd.

CTB_MTK_INCORRECT_FOCAL_CLASS

CTBValidationRuntimeException

The PAYLOAD XSD has unsupported focal CLASS. It should be either role or act.

If the payload entry point class is not of type ROLE or ACT, this error is thrown. Please use only ROLE or ACT payload types i.e the payload must have ROLE or ACT as entry point class.

CTB_MTK_FILE_READ_FAILED

CTBRuntimeException

Unable to read file &FILE_NAME

This is a program error when MTK is unable to read a file from disk.

CTB_MTK_FILE_WRITE_FAILED

CTBRuntimeException

Unable to write into the FILE: &FILE_NAME. CAUSE: &CAUSE

This is a program error when MTK is unable to write a file to disk.

CTB_MTK_METDATA_NOT_FOUND

CTBRuntimeException

Unable to find METADATA for COMPLEX TYPE &COMPLEX_TYPE_NAME

MTK throws this error when its not able to find metadata for a complex type. Please check the MIF file is correct. The MIF file name can be found out from the complex type name given in the error message.

CTB_MTK_CLASS_CODE_NT_FOUND

CTBRuntimeException

Unable to find CLASS CODE value for COMPLEX TYPE &COMPLEX_TYPE_NAME

This is program error where MTK is not able to find a value for class Code attribute for particular xsd complex type. The error occurs when MTK is trying to generate the test message.

CTB_MTK_PAYLOAD_NOT_FOUND

CTBValidationRuntimeException

Unable to find PAYLOAD in INTERACTION SCHEMA.

This is a program error, When MTK tries to find the payload complex type from interaction schema to generate the test instance, it does not find that and throws this error.

CTB_MTK_INCORRECT_INSTANCE

CTBValidationRuntimeException

Test message generation failed for INTERACTION SCHEMA &INTERACTIONS_SCHEMA. CAUSE: &CAUSE

This is a program error, This error occurs when MTK generates and incorrect test message and the schema validation for the message fails.

CTB_MTK_CODED_ATTR_NOT_CREATED

CTBRuntimeException

Unable to create XML fragment for CODED attribute for ELEMENT &ELEMENT_NAME. CAUSE: &CAUSE

This is a program error. This error occurs when MTK is unable to fetch ETS data for coded attributes to generate the test instance.

CTB_MTK_NOT_ENOUGH_VAL

CTBValidationRuntimeException

Concept list for CODEd attribute has less than two values for CONCEPT LIST &COCEPTLIST_NAME and XML ELEMENT name &ELEMENT_NAME

If a concept list for a coded attribute has less than 2 concepts then this error is thrown . Please insert minimum of 2 concepts in all the extensible concept list.

CTB_MTK_II_FRAGMNT_NT_CREATED

CTBRuntimeException

Unable to create XML fragment for CODED attribute for ELEMENT &ELEMENT_NAME. CAUSE: &CAUSE

This is a program error. This error occurs when MTK is not able to create id attribute data to generate a test instance.

CTB_MTK_XML_FRAGMENT_NT_FOUND

CTBRuntimeException

XML fragment is not seeded for data type &DATA_TYPE

When MTK does not find a xml fragment for a datatype to generate a test message, this error is thrown. Please verify the only HDR supported datatypes are used in the RMIM.

CTB_MTK_ELMT_METADATA_NOTFOUND

CTBRuntimeException

Metadata not found for an element name &ELEMENT_NAME and parent complex type name &COMPLEX_TYPE_NAME

MTK throws this error when its not able to find metadata for a complex type. Please check the MIF file is correct or not. The MIF file name can be found out from the complex type name given in the error message.

CTB_MTK_MSG_NT_PERSISTED

CTBValidationRuntimeException

IMP persistence failed. Acknowledgement message is &ACKNOWLEDGEMENT

When MTK tries to persist the message through IMP and it fails in persistence, this error is thrown. Please fix the error shown in acknowledgement message and rerun the test case.

CTB_MTK_ATTR_VAL_NT_FOUND

CTBRuntimeException

Unable to generate test INSTANCE . No default value found in XSD for ATTRIBUTE &ATTR_NAME present in COMPLEX TYPE &COMPLEX_TYPE_NAME

This is a program error. When MTK is not able to find a value for a structural attribute value from xsd or mif this error is thrown .

CTB_MTK_INVALID_ACTRELATION

CTBValidationRuntimeException

Validation of input SCHEMA failed. ACTRELATIONSHIP COMPLEX TYPE &COMPLEX_TYPE do not have TARGET ACT.

This error occurs when MTK finds the an act relationship in xsd does not have a target act . Please fix the RMIM and XSD to have a target act for the corresponding act relationship.

CTB_MTK_XSD_LOAD_FAILED

CTBRuntimeException

Loading of Schema &XSD_PATH has failed. CAUSE: &CAUSE

This error is thrown by MTK when the validation of uploaded xsd is failed . Please check the input xsds are correct.

CTB_MTK_INVALID_OB_PRTCPN

CTBValidationRuntimeException

Validation of input SCHEMA failed. OUTBOUND PARTICIPATION COMPLEX TYPE &COMPLEX_TYPE do not have target ROLE.

This error occurs when MTK finds the a participation in xsd does not have a participant role . Please fix the RMIM and XSD to have a participant role for the corresponding participation.

CTB_MTK_INVALID_IB_PRTCPN

CTBValidationRuntimeException

Validation of input SCHEMA failed. INBOUND PARTICIPATION COMPLEX TYPE &COMPLEX_TYPE do not have TARGET ACT.

This error occurs when MTK finds the an inbound participation in xsd does not have target act . Please fix the RMIM and XSD to have a target act for the corresponding participation.

CTB_MTK_XSD_MIF_ELMT_MISMATCH

CTBValidationRuntimeException

Input SCHEMA and MIF files does not match. Element &ELEMENT_NAME found in SCHEMA COMPLEX TYPE &COMPLEX_TYPE is missing in corresponding MIF file.

This error occurs when there is a mismatch between MIF and XSD file of the same artifact i.e an element found XSD file is missing from the MIF file.

CTB_MTK_XSDMIF_CMPXTY_MISMATCH

CTBValidationRuntimeException

Input SCHEMA and MIF files does not match. SCHEMA COMPLEX TYPE &COMPLEX_TYPE is missing in corresponding MIF file.

This error occurs when there is a mismatch between MIF and XSD file of the same artifact, that is, a complex type found XSD file is missing from the MIF file.

CTB_MTK_MS_SCM_VALIDATN_FAIL

CTBValidationRuntimeException

Message generated by OMP failed to validate against the schema. CAUSE: &CAUSE

This is a program error. When MTK generates the persisted test message using OMP, the generated message fails schema validation and this error is thrown . Please contact your system administrator.

CTB_MTK_COREMIF_PARSE_FAILED

CTBValidationRuntimeException

Unable to merge the existing CMETINFO.COREMIF with the one provided as input, because parsing of &CORE_MIF failed. CAUSE: &CAUSE.

For merging the CMETINFO.COREMIF file new uploaded CMETINFO.COREMIF has to be parsed, if the CMETINFO.COREMIF is not a valid xml file then MTK throws this error. Please fix CMETINFO.COREMIF and upload again.

CTB_MTK_NO_DEFAULT_CONCEPT

CTBValidationRuntimeException

CONCEPT LIST &CONCEPT_LIST should contain at least one CONCEPT from default CODING SCHEME VERSION.

MTK throws this error when the default coding scheme has no valid concepts . Please ensure that all coding schemes have default version and should have at least one valid concept and concept list. These should have concepts from default coding schemes.

CTB_MTK_ACTIVE_STATUSCD_NTFND

CTBValidationRuntimeException

Test message generation failed. STATUS CODE CONCEPT LIST &CONCEPT_LIST do not have CONCEPT with CONCEPT CODE ACTIVE

MTK throws an error while generating a test instance,when it does not find an "ACTIVE" statusCode in the system conceptlist . Please ensure that ACTIVE concept is available in the concept list.

CTB_MTK_MANDT_INPUT_MISSING

CTBValidationRuntimeException

The input parameter &TOKEN_NAME is passed as null. The request cannot be processed,because mandatory parameter &TOKEN_NAME has null value.

MTK throws this error when any mandatory input parameter is not passed by the user.

CTB_MS_CMET_INFO_NOT_FOUND

CTBValidationRuntimeException

Unable to extract METADATA. CMET info file &CMETINFO_FILENAME not found.

MTK throws this error from metadataservice when metadataservice is not able to find the CMETINFO.COREMIF file. Please check the CMETINFO.CORE MIF file is available on the server.

CTB_MS_CMET_TYPE_NOT_FOUND

CTBValidationRuntimeException

Unable to extract METADATA. CMET reference &REFERENCE in MIF file &MIFFILE is missing in CMETINFO.COREMIF file.

MTK throws this error from metadataservice when metadataservice is not able to find the an entry of cmet in CMETINFO.COREMIF file. Please check the corresponding CMET entry is present in CMETINFO.COREMIF file.

CTB_MS_MIFFILE_NOT_FOUND

CTBValidationRuntimeException

Unable to extract METADATA. MIF file &MIFFILE not found .

MTK throws this error from metadataservice when metadataservice is not able to find the MIF file to load the metadata. Please check the corresponding MIF file is available on the server.

CTB_MS_MIF_PARSING_FAILED

CTBValidationRuntimeException

Unable to extract METADATA. Unable to parse MIF file &MIFFILE.

MTK throws this error from metadataservice when metadataservice is not able to parse a MIF file. Please check all MIF files are valid xmls.

CTB_MS_CMETINFO_PARSING_FAILED

CTBValidationRuntimeException

Unable to extract METADATA. Unable to parse CMET info file &CMETINFO_FILENAME.

MTK throws this error from metadataservice when metadataservice is not able to parse CMETINFO.COREMIF. Please check CMETINFO.COREMIF file is valid xmls.

CTB_MS_INTR_SCHEMA_NOT_FOUND

CTBValidationRuntimeException

Unable to extract METADATA. INTERACTION SCHEMA file [&INTERACTION_SCHEMA] not found.

MTK throws this error from metadataservice when metadataservice is not able to find interaction schema on the server.

CTB_MS_SCHEMA_PARSING_FAILED

CTBValidationRuntimeException

Unable to extract METADATA. Unable to parse INTERACTION SCHEMA &SCHEMA_FILE.

MTK throws this error from metadataservice when metadataservice is not able to parse interaction schema on the server. Please contact your system administrator.

CTB_MS_MIF_DIR_NOT_FOUND

CTBValidationRuntimeException

Unable to extract METADATA. MIF directory &DIR_PATH not found.

MTK throws this error from metadataservice when metadataservice is not able to find the directory for MIF files on the server.

CTB_MS_WRAPPER_METADT_NOTFOUND

CTBValidationRuntimeException

Unable to load metadata for an INTERACTION SCHEMA &SCHEMAFILE. Unable to find metadata for parent COMPLEX TYPE &COMPLEXTYPE of PAYLOAD &PAYLOAD_ELEMENT.

MTK throws this error from metadataservice when metadataservice is not able to find metadata for the parent complex type element of the payload element in the database.

CTB_MTK_STATUS_FILE_NT_FOUND

CTBValidationRuntimeException

The STATUS file '&STATUS_FILE' is not available on the server

MTK throws this error when it tries to download the status file from TEST_ID folder but does not find the folder with that TEST_ID name on the server . Please pass the correct TEST_ID name.

CTB_MTK_TEST_ID_DIR_NOT_FND

CTBValidationRuntimeException

The TEST ID directory &TEST_ID is not present on the server

MTK throws this error when the Test ID folder is not found in the server.

CTB_MTK_CMET_ID_CONFLICT

CTBValidationRuntimeException

Unable to merge existing CMETINFO.COREMIF with user provided CMETINFO.COREMIF. CMET name &CMET_NAME already exists with different CMET ID. Existing CMET id &EXISTING_CMET_ID and new CMET ID &NEW_CMET_ID.

This error occurs when user try to upload a CMETINFO.COREMIF file which has an entry with same cmet name as that of the one which is already uploaded but the corresponding CMET IDs for the new one and existing one are different .So if the new file is merged with the existing file , then there will be 2 entries of the same CMET name with a different CMET ID. This is incorrect. Please upload unique CMET names at all times and not applied to other CMET IDs.

CTB_MTK_CMET_NAME_CONFLICT

CTBValidationRuntimeException

Unable to merge existing CMETINFO.COREMIF with user provided CMETINFO.COREMIF. CMET id &CMET_ID already exists with different CMET name. Existing CMET name &EXISTING_CMET_NAME and new CMET name &NEW_CMET_NAME.

This error occurs when user try to upload a CMETINFO.COREMIF file which has an entry with same CMET ID as that of the one which is already uploaded. These have different CMET names .Therefore if the new file is merged with the existing file, then there will be two entries of the same CMET ID with different CMET names. To avoid this error please upload unique CMET IDs which are not already used with other CMET names.

CTB_MTK_DUPLICATE_INTR_ID

CTBRuntimeException

The INTERACTION detail for the INTERACTION ID &INTERACTION_ID already exists. Unable to create INTERACTION detail

When MTK tries to create a record for interaction ID in the database but the same interaction ID is already present then this error is thrown . Please use a different interaction ID which is not already seeded.

CTB_MTK_UNSUPPORTED_IP_PARAMS

CTBRuntimeException

Unable to create Composite Message Schema. The input parameter &TOKEN_VALUE for &TOKEN_NAME is not supported

MTK throws this error when any input parameter is passed incorrectly; for example if a transmission wrapper ID passed by the user does not match with the transmission wrapper ID which HDR supports MTK throws this error. Please pass the correct input values.

CTB_MTK_PAYLOAD_ID_NOT_EXISTS

CTBValidationRuntimeException

Unable to create INTERACTION SCHEMA PAYLOAD ID does not exist for the given INTERACTION ID: &INTERACTION_ID

MTK throws this error when it does not find payload xsd on the server to create an interaction schema for it. Please upload the payload xsd first and then create the interaction schemas for it.

CTB_MTK_PAYLOAD_XSD_NT_FOUND

CTBValidationRuntimeException

Unable to generate INTERACTION SCHEMA because Message Type XSD &XSD_PATH is not available.

This error occurs when MTK does not find payload xsd on server with name given by the user . Please pass the correct payload ID as input.

CTB_MTK_SCHEMA_IN_USE

CTBValidationRuntimeException

Unable to delete the SCHEMA &SCHEMA from server.The SCHEMA is referred by the PAYLOAD &PAYLOAD.

The error occurs when a schema is tried to be deleted, is referred by a payload present on the server. To delete the schema please delete the referring payload first.

CTB_MTK_HTB_ARTIFACT_FOUND

CTBValidationRuntimeException

Unable to delete ARTIFACTS. Customer cannot delete HDR specific ARTIFACT &ARTIFACT.

MTK throws this error when user tries to delete Oracle artifacts . You are not supposed to delete Oracle artifacts.

CTB_MTK_INTR_SCHEMA_REF

CTBValidationRuntimeException

Can not delete PAYLOAD SCHEMA &PAYLOAD_SCHEMA as INTERACTION IDS &INTERACTION_IDS are configured for this PAYLOAD.

MTK throws this error when you tries to delete a payload and that payload has a interaction ID configured in the table. Please delete the interaction IDs for the payload and then delete the payload.

CTB_MTK_XSD_NOT_EXISTS

CTBValidationRuntimeException

Unable to remove XSD &XSD_FILE, as it does not exist.

This error occurs when an xsd is tried to be deleted which is not present on the server. In this case the xsd file name might be incorrectly passed. Please pass the correct xsd file name.

CTB_MTK_PAYLOAD_FOUND

CTBValidationRuntimeException

Invalid input data because input contains a SCHEMA of a PAYLOAD. LOADSCHEMA API accepts SCHEMAS of CMETS only. Instead use API LOADCUSTOMMESSAGETYPETOPRODUCTIONSERVER.

MTK throws this error when the uploaded schema is of type PAYLOAD . Only CMETS are allowed to upload using this API. Please upload only CMETS.

CTB_MTK_INTR_DETAIL_NT_FND

CTBValidationRuntimeException

INTERACTION detail for INTERACTION ID &INTERACTION_ID is not available. Can not delete the INTERACTION detail entry.

When MTK tries to delete an interaction schema on the server ,and if it does not find a record for the corresponding interaction ID in the interactions table, it throws this error . Please ensure that interaction ID record is available in the interactions table before deleting it.

CTB_MTK_INTR_RECV_CONFIG_EXIST

CTBValidationRuntimeException

Can not delete INTERACTION SCHEMA for INTERACTION ID &INTERACTION_ID as RECEIVERS are configured for this INTERACTION ID.

When MTK tries to delete the interaction schema and for that interaction ID receivers are already configured then MTK cannot delete the interaction schema and throws this error. Please ensure that no receivers are configured for the interaction schema which is to be deleted.

CTB_MTK_INTR_SENDER_CONF_EXIST

CTBValidationRuntimeException

Can not delete INTERACTION SCHEMA for INTERACTION ID &INTERACTION_ID as SENDERS are configured for this INTERACTION ID.

When MTK tries to delete the interaction schema and for that interaction ID senders are already configured then MTK cannot delete the interaction schema and throws this error. Please ensure that no senders are configured for the interaction schema which is to be deleted.