1

我无法使用 HAPI api(2.2 版)针对从MWB(消息工作台)生成的一致性配置文件验证ORU_R01ADT_A04(HL7 v2.3.1 )消息。

  • 第一个问题是关于 MWB 在 ORU_R01 消息的一致性配置文件中分配给段组的名称,其中PATIENT_RESULTMWB(消息工作台)生成的段组名称,而PIDPD1NK1NTEPV1PV2ORCOBRNTEOBXNTECTI是 HAPI 在其 api 中引用同一段组的方式。
  • 如果我在配置文件中将 PATIENT_RESULT 替换PIDPD1NK1NTEPV1PV2ORCOBRNTEOBXNTECTI 则配置文件对 HAPI api 解析器有效。

以下是上述问题的验证日志:

  1. ValidationException -在消息中找不到PATIENT_RESULT
  2. ValidationException - 结构PIDPD1NK1NTEPV1PV2ORCOBRNTEOBXNTECTI出现在消息中,但不在配置文件中

第二个问题是 OBX 段中要在 OBX.5 字段中使用的数据类型。 由于我的消息包含多个 OBX,并且在 OBX.2 字段中也有多个数据类型,例如NMST,因此我不能在一致性配置文件中为 OBX.5 提供固定数据类型,所以我尝试了 HAPI api 为数据类型占位符提供的“VARIES” OBX.5 数据类型声明中的一致性配置文件。但这也没有用。

以下是上述问题的验证日志:

  1. ValidationException - HL7 数据类型NM与 OBX-5 的配置文件数据类型 VARIES 不匹配

  2. ValidationException - HL7 数据类型ST与 OBX-5 的配置文件数据类型 VARIES 不匹配


以下是留言:

  • MSH|^~\&|aa|bb|cc|3910|200903230934||ORU^R01^ORU_R01|75535037-123781|P^T|2.3.1
  • EVN|A31|200903230934
  • PID|1||29^^||Test300^Leticia^^^^^L||19770202|M||
  • OBX|| 纳米|abc|| 121 ||||||F||
  • OBX|| ST |定义|| 贾斯瓦尔||||||F||

以下是个人资料片段:

    <SegGroup Name="**PATIENT_RESULT**" LongName="PATIENT_RESULT" Usage="R" Min="1" Max="*">
        <SegGroup Name="**PATIENT**" LongName="PATIENT" Usage="O" Min="0" Max="1">
            <Segment Name="**PID**" LongName="patient identification segment" Usage="R" Min="1" Max="1">
                <Field Name="Set ID - PID" Usage="O" Min="0" Max="1" Datatype="SI" Length="4" ItemNo="00104">

    <Segment Name="OBX" LongName="observation/result segment" Usage="O" Min="0" Max="*">

        <Field Name="Set ID - OBX" Usage="O" Min="0" Max="1" Datatype="SI" Length="4" ItemNo="00569">
            <Reference>OBX-1</Reference>
        </Field>
        <Field Name="Value Type" Usage="R" Min="1" Max="1" Datatype="ID" Length="3" Table="0125" ItemNo="00570">
            <Reference>OBX-2</Reference>
        </Field>
        <Field Name="Observation Identifier" Usage="R" Min="1" Max="1" Datatype="CE" Length="1000" ItemNo="00571">
            <Reference>OBX-3</Reference>
            <Component Name="identifier" Usage="O" Datatype="ST" Length="1000">
                <Reference>OBX-3-1</Reference>
            </Component>
            <Component Name="text" Usage="O" Datatype="ST" Length="1000">
                <Reference>OBX-3-2</Reference>
            </Component>
            <Component Name="name of coding system" Usage="O" Datatype="ST" Length="3">
                <Reference>OBX-3-3</Reference>
            </Component>
            <Component Name="alternate identifier" Usage="O" Datatype="ST" Length="3">
                <Reference>OBX-3-4</Reference>
            </Component>
            <Component Name="alternate text" Usage="O" Datatype="ST" Length="3">
                <Reference>OBX-3-5</Reference>
            </Component>
            <Component Name="name of alternate coding system" Usage="O" Datatype="ST" Length="3">
                <Reference>OBX-3-6</Reference>
            </Component>
        </Field>
        <Field Name="Observation Sub-ID" Usage="O" Min="1" Max="1" Datatype="ST" Length="20" ItemNo="00572">
            <Reference>OBX-4</Reference>
        </Field>
        <Field Name="Observation Value" Usage="O" Min="0" Max="1" Datatype="**VARIES**" Length="65536" ItemNo="00573">
            <Reference>OBX-5</Reference>
        </Field>

问候, 阿马尔·贾斯瓦尔

4

2 回答 2

0

我认为您应该将ST其用作 OBX.5 的数据类型,因为我认为没有任何方法可以告诉 MWB 它需要在 OBX.2 中查找实际数据类型。

于 2015-05-19T13:34:03.673 回答
0

段组名称问题有一个解决方法。(即我之前发布的第一个问题)

需要在 hapi-base jar 中的 ca\uhn\hl7v2\conf\parser 中更改 message_profile.xml 文件的正则表达式 '([AZ]|)+'。

即在message_profile.xml 中将段组名称的正则表达式'([AZ]|)+' 替换为'([A-Z0-9]|)+' 并为hapi-base 重建jar。

现在,当使用 PIDPD1NK1NTEPV1PV2ORCOBRNTEOBXNTECTI 作为段组名称时,将不会引发 ProfileException。

于 2015-05-27T05:52:11.393 回答