步骤 5.1:创建测试集成文件
提示:
我们提供了信息在模板中的位置的行号,以帮助您找到信息。当您更新模板时,尤其是添加任何新行时,行号可能会丢失准确性。如果发生这种情况,您可以使用未变更的模板作为参考。- 任务 1 添加一般信息
-
- 在任何编辑器中打开集成模板。
我们建议使用适于编辑 XML(如 Notepad++)的编辑器来保留使文件更易于阅读的格式。
- 指定公司名称作为 CompanyName 元素的值:
3 <CompanyName>your_company_name</CompanyName>
这个名字在哪里使用?Oracle Clinical One Digital Gateway 将此名称用作 Oracle Clinical One Digital Gateway 和通知电子邮件中可见的唯一安全报告 ID 的一部分。(安全报告 ID 还在 Oracle Argus Safety 的“其他信息”选项卡上显示为参考 ID。)
- 添加指向 SFTP 服务器上文件夹的路径,您希望 Oracle Clinical One Digital Gateway 将 E2B+ R2 文件放置在其中进行测试并添加 SFTP 服务器的凭证密钥。按如下所示添加值:
8 <SFTPRoot>path_from_home_to_folder</SFTPRoot> 9 <SFTPUserCredentials>SFTP_credential_key_name</SFTPUserCredentials>
- 将常数值占位符替换为您要集成的研究的详细信息。
- DTDFILEPATH (模板中的第 315 行):将此字符串替换为 Oracle Argus 服务器上 DTD 文件的完整路径(例如 E:\Argus\InterchangeService\DTDFiles\ich-icsr-v2.1-services.dtd)。
- COMPANYNAME (模板中的第 327 行):替换为第 3 行中使用的相同名称。请勿删除周围的短划线 (-),因为这些短划线用作构成 Oracle Clinical One Digital Gateway 安全报告 ID 的元素之间的分隔符。
- ARGUSSTUDYNAME (模板中的第 339 行):Oracle Argus Safety 研究 ID。必须与 Oracle Argus Safety 中的值完全匹配并且区分大小写。对于测试,可以指定测试研究的 ID。
- MEDICINALPRODUCTNAME (模板中的第 349 行):将此字符串替换为完全相同的贸易名称,如同它出现在 Oracle Argus Safety 许可证中一样,否则 Oracle Argus Safety 不识别该产品,集成将失败。如果 Oracle InForm 研究未设置为发送,则此信息是必需的,但即使 Oracle InForm 发送了该信息,您也可以指定它。
- 如果研究仅调查一种药物产品,在第 349 行,将字符串 MEDICINALPRODUCTNAME 替换为确切的产品名称。
- 如果研究正在调查多个产品,则可以使用编码列表映射要用于此研究的所有产品名称。要使用代码列表(未注释行 348),请更新该代码以添加产品名称(如同它们显示在 Oracle Argus Safety 许可证中一样),然后注释掉第 349 行,如下所示:
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>
然后,根据包含产品名称的 Oracle InForm 代码列表将源值和目标值添加到 Oracle Clinical One Digital Gateway 代码列表(第 102-105 行):
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>
- 如果研究处于隐蔽状态,请在产品名称前面添加 BLINDED 作为前缀(例如,对于产品名称 Drug1275,请指定 BLINDEDDrug1275),以便产品名称不会显示在 Oracle Argus Safety 的产品名称选项卡上。
- 在任何编辑器中打开集成模板。
- 任务 2 映射编码列表
-
编辑每个代码列表元素(从模板中的第 14 行开始)以添加对应的源值。Oracle Argus Safety 的目标值已根据其预期的标准 E2B R2 代码添加到模板中。
从哪里获得源值?您可以从要集成的研究的带注释的研究手册获取 Oracle InForm 编码列表中的相应源值,即代码。源值显示在“代码”列中。
请记住:如果您已定制了 Oracle Argus Safety 代码列表,则还必须复核对应的目标值,并将其从 E2B R2 标准值更改为定制 Oracle Argus Safety 代码列表中的相应目标值。
提示:
如果不使用所有可用的代码列表,请注释掉此集成不需要的代码列表。- 为以下代码列表添加对应的源值。
注意:
Oracle Argus Safety 只能接受已指定为目标值的 E2B 值,因此请勿更改目标值。作为例外,如果您在 Oracle Argus Safety 中使用定制代码列表,并且您将相应地映射它们,则可以使用自定义代码列表中的值更新目标值。- 国家/地区
- 性别
- DRUGSAFETYREPORT_ADVERSEEVENTREPORTEDOUTCOME
- DRUGSAFETYREPORT_ACTIONTAKEN
- HS_YES_NO_UNKNOWN:用于在 Oracle Argus Safety 的“反应”选项卡上填充“接收的处理”、“RelatedToStudyConduct”和“PatientHasPriorHistory”复选框。
- HS_TRUE_FALSE:用于在 Oracle Argus Safety、产品级别(例如“正在进行”)和患者级别指示符(例如 BreastFeedingIndicator)中填充案例级别的严重性指示符。
- EVENT_LEVEL_YES_NO:用于在 Oracle Argus Safety 的“反应”选项卡上填充“严重性指示符”值。
- DRUGSAFETYREPORT_DOSAGEINTERVALUNIT
- DRUGSAFETYREPORT_SEPARATEDOSAGENUMB
- DRUGSAFETYREPORT_DOSAGEINTERVALNUM
- DRUGSAFETYREPORT_UNITOFMEASURE
- DRUGSAFETYREPORT_ADMINISTRATIONROUTE
- (可选)如果要在 Oracle InForm 中收集此数据并希望将其发送到 Oracle Argus Safety,请为以下编码列表添加相应的源值:
注意:
Oracle Argus Safety 只能接受已指定为目标值的 E2B 值。除非您在 Oracle Argus Safety 中为这些值使用定制代码列表,否则不要更改目标值。- DRUGSAFETYREPORT_QUALIFICATIONCODE
- DRUGSAFETYREPORT_AGEGROUP
- DRUGSAFETYREPORT_TERMHIGHLIGHTED
- (可选)如果要在 Oracle InForm 中收集此数据并希望将其发送到 Oracle Argus Safety,请为以下代码列表指定源值和目标值。
源列必须是从 Oracle InForm 发送的值,目标值必须是 Oracle Argus Safety 编码列表的值。
- 职业
- 种族
- DRUGSAFETYREPORT_DOSAGEFORM
- DRUGSAFETYREPORT_ADVERSEEVENTSEVERITY
- 为以下代码列表添加对应的源值。
- 任务 3 包括正确的 SpecialKeyCodeListMapper
-
为确保包含逗号的代码列表从 Oracle InForm 正确发送到 Oracle Argus Safety ,请将此特定映射器包括在集成文件中。这确定了正确发送与代码列表相关的数据(即使这些代码列表在其值中包含逗号)的集成。
注意:
对于现有集成,请确保使用新的代码列表映射器更新配置文件。然后,在 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>
- 任务 4 映射剂量频率
-
我需要这样做吗?仅当您在 Oracle InForm 中具有剂量频率的编码列表,并且您希望将此信息共享给 Oracle Argus Safety。
例如,假定您在 Oracle InForm 中有一个代码列表,它用于保存值 "twice a day" 为 "2XD" 的剂量频率,Oracle Argus Safety 共享的信息将是 2XD。但是,Oracle Argus Safety 使用 E2B 标准,该标准将此信息拆分为三个字段,而不仅仅是一个字段,因此在本例中需要映射三个不同的代码列表中的相同值 2XD。下面介绍如何在集成文件中表示此信息:
<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>
- 任务 5 映射到 Oracle Argus Safety 中的用户定义字段
-
我需要这样做吗?仅当您需要将任何 Oracle InForm 字段映射到 Oracle Argus Safety 中的用户定义字段时。
是否有任何先决条件?是的。如果您在 Oracle Argus Safety 中具有要使用 Oracle InForm 中的数据填充的用户定义字段,则必须在 Oracle Central Designer 中为该字段创建定制数据系列,并为 Oracle Argus Safety 用户定义字段使用适当的别名。
模板的“定制患者字段”部分(从第 891 行开始)具有 Oracle Argus Safety 可以接受的每个可能的用户定义字段的映射,并且已应用所需的转换,以确保发送到 Oracle Argus Safety 的目标值有效。
根据学习需要将 Oracle InForm 字段映射到用户定义的字段,如果本节中有任何您不打算使用的条目,请保留这些字段,不要映射这些字段,不要删除它们。
下面是 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>
您有两个用于映射这些字段的选项:- 直接映射:这是已设置并且将按原样发送值的默认映射。下面是来自模板的直接映射的示例:
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>
您不需要对直接映射进行任何更改,除非您在 Oracle Argus Safety 中有一个目标值的代码列表,在这种情况下,您需要编辑映射以将其转换为代码列表映射(如下所述)。
- 代码列表映射:如果需要将定制字段从 Oracle InForm 映射到 Oracle Argus Safety 中的代码列表值,请使用该映射。如果字段在 Oracle InForm 中使用代码列表,并且您希望与发送到 Oracle Argus Safety 的代码值不同,则需要在集成文件中添加 Oracle Clinical One Digital Gateway 代码列表,并将新代码列表附加到该定制字段映射。以下是 Oracle Clinical One Digital Gateway COUNTRY 代码列表用于字段以转换源值的示例:
<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>
提示:
您可以将多个源值映射到同一目标值(通过为其他源值添加其他行),但不能将相同的源值映射到多个目标值。
- 直接映射:这是已设置并且将按原样发送值的默认映射。下面是来自模板的直接映射的示例:
- 任务 6(可选)添加其他映射配置
-
我需要这样做吗?仅当您对与 Oracle Argus Safety 共享的字段有特殊需求时。您可以使用可用的定制转换器将源值自动转换为 Oracle Argus Safety 可以接受的目标值,或者在使用定制代码列表时将其转换为定制值。
使用自定义转换器,您可以:- 如果默认字段为空,则指定要发送的替代字段:如果已映射的 Oracle InForm 字段(默认字段)在某些情况下可以留空,而备选字段将用于记录数据,则使用此转换器。
当某个主题在国外旅行时遇到不利事件时,模板已使用该模板解决此情况,因此源国家/地区将保留为空,而指定发生国家/地区。在这种情况下,与转换器的字段映射标识在未指定发生国家/地区时要发送的源国家/地区。
<!-- 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>
- 将一个 Oracle InForm 字段作为前缀添加到另一个 Oracle InForm 字段:使用此转换器将一个 Oracle InForm 字段的值作为前缀添加到另一个 Oracle InForm 字段的值中,以便与 Oracle Argus Safety 共享结果值。下面是模板中的一个示例,该模板将消息接收者标识符作为站点的国家/地区代码的前缀并使用 "::" 作为连接值之间的分隔符:
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>
例如,如果主要来源国家(地区)为 "US",消息接收者标识符为 "INFARG_01",则根据上述映射,"US::INFARG_01" 将是结果值,并且将作为消息接收者标识符值发送。
- 资本化或小写从 Oracle InForm 发送到 Oracle Argus Safety 的产品名称:使用模板中显示的此转换器将用大写字母写入的产品名称发送到 Oracle Argus Safety。要以小写形式发送产品名称,请编辑转换器(模板中的第 1545 行),并为 custom-converter-param 参数添加 "toLower",如注释所示(模板中的第 1544 行)。
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>
注:
默认情况下,此 case 转换器将发送到 Oracle Argus Safety 的所有产品名称大写。
- 如果默认字段为空,则指定要发送的替代字段:如果已映射的 Oracle InForm 字段(默认字段)在某些情况下可以留空,而备选字段将用于记录数据,则使用此转换器。
- 任务 7 配置集成以处理来自 Oracle InForm 的部分安全案例说明
-
我们建议您在集成配置文件中包含此标记,以确保 Oracle Clinical One Digital Gateway 正确处理任何部分叙述性数据。在所有定制转换器和其他映射元素之后,应将此标记包含在配置文件的最末尾。标记可以设置为 true 或 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>
- 任务 8 保存对集成文件的更改
父主题: 步骤 5。创建测试集成