步骤 5.1:创建测试集成文件
提示:
我们提供了模板中信息的行号,以帮助您找到信息。当您更新模板时,特别是如果您要添加任何新行,行号可能会丢失准确性。如果发生这种情况,您可以使用未更改的模板作为参考。- 任务 1 添加常规信息
-
- 在任何编辑器中打开集成模板。
我们建议使用适合于编辑 XML 的编辑器(如 Notepad++),以保留使文件更易于阅读的格式。
- 指定公司名称作为 CompanyName 元素的值:
3 <CompanyName>your_company_name</CompanyName>
这个名字在哪里使用?Oracle Clinical One Digital Gateway 将此名称用作唯一安全报告 ID 的一部分,该 ID 在 Oracle Clinical One Digital Gateway 和通知电子邮件中可见。(安全报告 ID 也作为参考 ID 显示在 Oracle Argus Safety 的“附加信息”选项卡上。)
- 添加指向 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 中有一个用于剂量频率的代码列表,该列表将“每天两次”的值保存为“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>
注:
默认情况下,此案例转换器会大写发送到 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。创建测试集成