Step 5.1: Create the test integration file

Tip:

We’ve provided the line numbers for where the information is in the template to help you find it. As you make updates to the template, particularly if you’re adding any new lines, the line numbers may lose accuracy. If that happens, you can use the unaltered template as a reference.
Task 1   Add general information
  1. Open the integration template in any editor.

    We recommend using an editor that is adequate for editing XML, such as Notepad++, to preserve the formatting that makes the file easier to read.

  2. Specify a company name as the value for the CompanyName element:
    3   <CompanyName>your_company_name</CompanyName>

    Where is this name used? This name is used by Oracle Clinical One Digital Gateway as part of the unique safety report ID which is visible in Oracle Clinical One Digital Gateway and in notification emails. (The safety report ID also appears as the Reference ID on the Additional Info tab in Oracle Argus Safety.)

  3. Add the path to the folder on the SFTP server where you want Oracle Clinical One Digital Gateway to place the E2B+ R2 files for testing and add the credential key for the SFTP server. Add the values as shown below:
    8   <SFTPRoot>path_from_home_to_folder</SFTPRoot>
    9   <SFTPUserCredentials>SFTP_credential_key_name</SFTPUserCredentials>
  4. Replace the constant value placeholders with the details for the study you are integrating.
    • DTDFILEPATH (line 315 in template): Replace this string with the full path to the DTD file on the Oracle Argus server (for example, E:\Argus\InterchangeService\DTDFiles\ich-icsr-v2.1-services.dtd).
    • COMPANYNAME (line 327 in template): Replace with the same name you used in line 3. Do not remove the surrounding dashes (-) because these act as separators between the elements that make up the Oracle Clinical One Digital Gateway safety report ID.
    • ARGUSSTUDYNAME (line 339 in template): The Oracle Argus Safety study ID. Must match the value in Oracle Argus Safety exactly and is case-sensitive. For testing, you can specify the ID of a test study.
    • MEDICINALPRODUCTNAME (line 349 in template): Replace this string with the exact trade name, as it appears on the Oracle Argus Safety license, otherwise Oracle Argus Safety won’t recognize the product and the integration will be unsuccessful. This information is necessary in case the Oracle InForm study was not set up to send it, but you can specify it even if Oracle InForm does send it.
      • If the study is investigating only one medicinal product, on line 349 replace the string MEDICINALPRODUCTNAME with the exact product name.
      • If the study is investigating multiple products, you can use a codelist to map all product names to be used for this study. To use the codelist, uncomment line 348, update it to add the product names (as they appear on the Oracle Argus Safety license), and comment out line 349, as shown below:
        348   <field custom-converter="oracle.hsgbu.clinicalone.integration.impl.mapper.DefaultCodeListMapper" custom-converter-param="INTHUBCODELIST~DRUGSAFETYREPORT_MEDICINALPRODUCTNAME">
        349   <!-- <field custom-converter="oracle.hsgbu.clinicalone.integration.impl.mapper.DefaultInitializer" custom-converter-param="MEDICINALPRODUCTNAME"> -->
        350      <a>medicinalProductName[0].value</a>
        351      <b>medicinalproduct.content</b>
        352   </field>

        Then, add the source and target values to the Oracle Clinical One Digital Gateway codelist (lines 102-105) based on the Oracle InForm codelist that holds the product name:

        102   <codelist>
        103      <ID>DRUGSAFETYREPORT_MEDICINALPRODUCTNAME</ID>
        104      <Entry Source="" Description="Medicinal product name" Target=""/>
                 <!-- Duplicate the above line for each product name and add source and target values for each. -->
        105   </codelist>
      • If the study is blinded, prefix the product name with BLINDED (for example, for a product name of Drug1275, specify BLINDEDDrug1275) so that the product name isn't shown on the product name tab in Oracle Argus Safety.
Task 2   Map codelists

Edit each codelist element (starting at line 14 in the template) to add corresponding source values. The target values for Oracle Argus Safety have already been added to the template based on the standard E2B R2 codes that it expects.

Where do I get the source values? You can get the corresponding source values, which are the codes from Oracle InForm codelists, from the Annotated Study Book for the study you are integrating. The source values appear in the Code column.

Remember: If you have customized Oracle Argus Safety codelists, you must also review corresponding target values and change them from the E2B R2 standard values to the appropriate target values in customized Oracle Argus Safety codelists.

Tip:

If you are not using all available codelists, comment out the codelists that are not necessary for this integration.
  1. Add the corresponding source values for the following codelists.

    Caution:

    Oracle Argus Safety can only accept the E2B values that are already specified as target values, so do not change the target values. As an exception, if you are using custom codelists in Oracle Argus Safety and you will be mapping them appropriately, you can and should update the target values with the ones in the custom codelist.
    • COUNTRY
    • GENDER
    • DRUGSAFETYREPORT_ADVERSEEVENTREPORTEDOUTCOME
    • DRUGSAFETYREPORT_ACTIONTAKEN
    • HS_YES_NO_UNKNOWN: Used to populate the Treatment Received, RelatedToStudyConduct, and PatientHasPriorHistory checkboxes on Reaction tab in Oracle Argus Safety.
    • HS_TRUE_FALSE: Used to populate the Seriousness Indicator at the case level in Oracle Argus Safety, Product level (for example, Ongoing) and Patient level indicators (for example, BreastFeedingIndicator).
    • EVENT_LEVEL_YES_NO: Used to populate the Seriousness Indicator values on the Reaction tab in Oracle Argus Safety.
    • DRUGSAFETYREPORT_DOSAGEINTERVALUNIT
    • DRUGSAFETYREPORT_SEPARATEDOSAGENUMB
    • DRUGSAFETYREPORT_DOSAGEINTERVALNUM
    • DRUGSAFETYREPORT_UNITOFMEASURE
    • DRUGSAFETYREPORT_ADMINISTRATIONROUTE
  2. (Optional) If you are collecting this data in Oracle InForm and want to send it to Oracle Argus Safety, also add the corresponding source values for the following codelists:

    Caution:

    Oracle Argus Safety can only accept the E2B values that are already specified as target values. Unless you are using a custom codelist in Oracle Argus Safety for these values, do not change the target values.
    • DRUGSAFETYREPORT_QUALIFICATIONCODE
    • DRUGSAFETYREPORT_AGEGROUP
    • DRUGSAFETYREPORT_TERMHIGHLIGHTED
  3. (Optional) If you are collecting this data in Oracle InForm and want to send it to Oracle Argus Safety, specify both the source and target values for the below codelists.
    The source column must be the value sent from Oracle InForm and the target value must be the value for the Oracle Argus Safety codelist.
    • OCCUPATION
    • RACE
    • DRUGSAFETYREPORT_DOSAGEFORM
    • DRUGSAFETYREPORT_ADVERSEEVENTSEVERITY
Task 3   Include the correct SpecialKeyCodeListMapper

To ensure that code lists that contain commas are properly sent from Oracle InForm to Oracle Argus Safety, include this specific mapper in your integration file. This determines the integration to properly send out data related to code lists even when these code lists contain commas in their values.

Note:

For an existing integration, make sure that you update your configuration file with the new code list mapper. Then, re-upload the configuration file in Oracle Clinical One Digital Gateway.
<mapping map-null="false" wildcard="false" trim-strings="true" type="one-way" map-id="PrimaryCountryCodeMap">
                <class-a>oracle.hsgbu.infpub.ebm.com.oracle.xmlns.informtosafety.drugsafetyreport.v1.ReportDrugSafetyReportType</class-a>
                <class-b>oracle.hsgbu.argus.e2b.r2.Safetyreportext</class-b>
            <field custom-converter="oracle.hsgbu.clinicalone.integration.impl.mapper.SpecialKeyCodeListMapper" custom-converter-param="INTHUBCODELIST~COUNTRY">
                    <a>primarySourceCountryCode.value</a>
                    <b>safetyreportid.content</b>
                </field> 
            </mapping> 
                    <mapping map-null="false" wildcard="false" trim-strings="true" type="one-way" map-id="IchicsrSafetyReportGenericMap">
                <class-a>oracle.hsgbu.infpub.ebm.com.oracle.xmlns.informtosafety.drugsafetyreport.v1.ReportDrugSafetyReportType</class-a>
                <class-b>oracle.hsgbu.argus.e2b.r2.Safetyreportext</class-b>
                <field map-id="IchicsrSafetyReportPrimarySourceMap">
                    <a>drugSafetyReportPrimarySource</a>
                    <b>primarysource</b>
                    <a-hint>oracle.hsgbu.infpub.ebm.com.oracle.xmlns.informtosafety.drugsafetyreport.v1.DrugSafetyReportPrimarySourceType</a-hint>
                    <b-hint>oracle.hsgbu.argus.e2b.r2.Primarysource</b-hint>
                </field> 
                <field custom-converter="oracle.hsgbu.clinicalone.integration.impl.mapper.SpecialKeyCodeListMapper" custom-converter-param="INTHUBCODELIST~COUNTRY">
                    <a>primarySourceCountryCode.value</a>
                    <b>primarysourcecountry.content</b>
                </field>
                          <field custom-converter="oracle.hsgbu.clinicalone.integration.impl.mapper.SpecialKeyCodeListMapper" custom-converter-param="INTHUBCODELIST~COUNTRY">
                    <a>occurrenceCountryCode.value</a>
                    <b>occurcountry.content</b>
                </field>
   
Task 4   Map dosage frequency

Do I need to do this? Only if you have a codelist in Oracle InForm for dosage frequency and you want to share this information to Oracle Argus Safety.

For example, let's say you have a codelist in Oracle InForm for dosage frequency that saves a value of "twice a day" as "2XD," the information shared to Oracle Argus Safety would be 2XD. However, Oracle Argus Safety uses the E2B standard, which splits this information into three fields instead of just one, so the same value, 2XD in our example, needs to be mapped in three different codelists. Here's how you represent this in the integration file:


   <DRUGSAFETYREPORT_SEPARATEDOSAGENUMB>
      <Entry Target="2" Description="Twice a day" Source="2XD" />
   </DRUGSAFETYREPORT_SEPARATEDOSAGENUMB>
   <DRUGSAFETYREPORT_INTERVALNUMB>
      <Entry Target="1" Description="Twice a day" Source="2XD"/>
   </DRUGSAFETYREPORT_DOSAGEINTERVALNUMB>
   <DRUGSAFETYREPORT_DOSAGEINTERVALUNIT>
      <Entry Target="804" Description="Day" Source = "2XD"/>
   </DRUGSAFETYREPORT_DOSAGEINTERVALUNIT>
Task 5   Map to user-defined fields in Oracle Argus Safety

Do I need to do this? Only if you need to map any Oracle InForm fields to user-defined fields in Oracle Argus Safety.

Are there any prerequisites? Yes. If you have user-defined fields in Oracle Argus Safety that you want to populate with data from Oracle InForm, you must have created a custom data series for the field in Oracle Central Designer and use the appropriate alias name for the Oracle Argus Safety user-defined field.

The Custom Patient Fields section of the template (starting at line 891) has mappings for each of the possible user-defined fields that Oracle Argus Safety can accept and the required conversions are already applied to make sure that the target value being sent to Oracle Argus Safety is valid.

Map Oracle InForm fields to user-defined fields as necessary for your study and, if there are any entries in this section that you don’t intend to use, leave them as they are, do not map them and do not delete them.

Here's an example from the template for the first custom date field in Oracle Argus Safety:

891   <!-- Custom Patient Fields section -->
892   <field>
         <!-- The part in bold below indicates the field type and number for each Argus Safety user-defined field. -->
893      <a map-get-method="getSpecificCustom" key="Cust_Patient_Dt_1">this</a>
894      <b>custpatientdt1Extension.content</b>
895   </field>
You have two options for mapping these fields:
  • Direct mapping: This is the default mapping that is already set up and will send the value as is. Here's an example of direct mapping from the template:
    
    458   <field>
    459      <!-- Below line is for the InForm field whose value is sent to Argus Safety. -->
    460      <a map-get-method="getSpecificCustom" key="Cust_General_Str_1">this</a>
    461      <!-- Below line is for the target Argus Safety field where the unaltered source value is placed. -->
             <b>custgeneralstr1Extension.content</b>
          </field>
    

    You don't need to make any changes to direct mappings, unless you have a codelist in Oracle Argus Safety for the target value, in which case you need to edit the mapping to turn it into a codelist mapping (described below).

  • Codelist mapping: Use if you need to map a custom field from Oracle InForm to a codelist value in Oracle Argus Safety. If the field uses a codelist in Oracle InForm and you want a different value than the code sent to Oracle Argus Safety, you need to add an Oracle Clinical One Digital Gateway codelist in the integration file and attach the new codelist to that custom field mapping. Here's an example where the Oracle Clinical One Digital Gateway COUNTRY codelist is used on a field to convert the source value:
    <field custom-converter="oracle.hsgub.clnicalone.integration.impl.mapper.DefaultCodeListMapper" custom-converter-param="INTHUBCODELIST~COUNTRY">
       <!-- The part in bold below indicates the field type and number for each Argus Safety user-defined field. -->
       <a map-get-method="getSpecificCustom" key="Cust_Patient_Dt_1">this</a>
       <b>custpatientdt1Extension.content</b>
    </field>

    Tip:

    You can map multiple source values to the same target value (by adding additional rows for the additional source values), but you cannot map the same source value to multiple target values.
Task 6   (Optional) Add other mapping configurations

Do I need to do this? Only if you have particular needs for the fields that you are sharing with Oracle Argus Safety. You can use the available custom converters to automatically convert source values into target values that Oracle Argus Safety can accept or to convert them to custom values if you use custom codelists.

With custom converters, you can:
  1. Specify an alternate field to be sent if the default field is blank: Use this converter if an already mapped Oracle InForm field (default field) can be left blank in certain situations and an alternate field would be used to record data instead.

    The template already uses it to address the case when a subject experienced an adverse event while traveling outside of the country, so the source country would remain blank and the occurrence country would be specified instead. In this case, the field mapping with the converter identifies the source country to be sent whenever no occurrence country is specified.

             
          <!-- Below line is the mapping for default field -->
    525   <field custom-converter="oracle.hsgbu.clinicalone.integration.impl.mapper.DefaultCodeListMapper" custom-converter-param="INTHUBCODELIST~COUNTRY">
    526         <a>occurrenceCountryCode.value</a> <!-- Default InForm field. -->
    527         <b>safetyreportid.content</b>
                <!-- Above line is the field in Argus Safety that is mapped to both the default and the alternate field. -->
    528   </field>
    
          <!-- Use below field mapping tag to map an alternate field to an Argus Safety field that already has a default field mapped to it. -->
          <field custom-converter="oracle.hsgbu.clinicalone.integration.impl.mapper.DefaultNVLInitializer">
             <a>primarySourceCountryCode.value</a> <!-- Alternate InForm field to send only if default is null. -->
             <b>safetyreportid.content</b>
             <!-- Above line is field in Argus Safety that is mapped to both the default and the alternate field. -->
          </field>
    
  2. Add one Oracle InForm field as a prefix to another Oracle InForm field: Use this converter to add the value of one Oracle InForm field as a prefix to the value of another Oracle InForm field to share the resulting value with Oracle Argus Safety. Here's an example from the template that prefixes the message receiver identifier with the site's country code and uses "::" as the separator between the concatenated values:
    541   <field custom-converter="oracle.hsgbu.clinicalone.integration.impl.mapper.DefaultConcatenator" custom-converter-param="::">
    542      <a>primarysourcecountry.content</a> <!-- The value of this field will be added as a prefix to the value of the second field. -->
    543      <b>messagereceiveridentifier.content</b> <!-- This is the field that will be sent to Argus Safety, if mapped. -->
    544   </field>

    For example, if the primary source country was "US" and the message receiver identifier was "INFARG_01" then, according to the above mapping, "US::INFARG_01" would be the resulting value and it would be sent as the messagereceiveridentifier value.

  3. Capitalize or lowercase product names sent from Oracle InForm to Oracle Argus Safety: Use this converter as it is shown in the template to send product names written in capital letters to Oracle Argus Safety. To send product names in lowercase, edit the converter (line 1545 in template), and add "toLower" for the custom-converter-param parameter, as shown in the comment (line 1544 in template).
    1544 <!-- custom-converter-param "toUpper" capitalizes all characters and "toLower" decapitalizes all characters  -->
    1545      <field custom-converter="oracle.hsgbu.clinicalone.integration.impl.mapper.CaseConverter" custom-converter-param="toUpper"> 
    1546          <a>this</a> 
    1547          <b>medicinalproduct.content</b> 
    1548      </field>		

    Note:

    By default, this case converter capitalizes all product names sent to Oracle Argus Safety.
Task 7   Configure the integration to process a partial safety case narrative from Oracle InForm

We recommend you include this tag in your integration configuration file to make sure that any partial narrative data is processed appropriately by Oracle Clinical One Digital Gateway. You should include this tag at the very end of your configuration file, after all custom converters and additional mapping elements. The tag can be set to either true or false.

         
1721      </p:Mappings>
1722 <p:Schedule>
1723 <p:retrycount>2</p:retrycount>
1724 </p:Schedule>
1725 <p:Notifications/>
<!–- Change the tag value to false, if needed -->
1726 <p:ProceedOnFailures>true</p:ProceedOnFailures>
1727 </p:Integration>
Task 8   Save changes to the integration file