带有HAPI样本的ORU ^ R01消息的一致性配置文件

时间:2015-05-18 03:23:52

标签: hl7 hapi hl7-v2

我无法使用HAPI api(版本2.2)验证 ORU_R01 ADT_A04 (HL7 v2.3.1 )消息从 MWB (Message Workbench)生成的一致性配置文件。

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

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

  1. 在消息
  2. 中找不到ValidationException - PATIENT_RESULT
  3. ValidationException - 结构 PIDPD1NK1NTEPV1PV2ORCOBRNTEOBXNTECTI 出现在消息中但不在个人资料中
  4. OBX段中的第二个问题是在OBX.5字段中使用的数据类型。 由于我的消息包含多个OBX,并且在OBX.2字段中还有多种数据类型,如 NM ST , 因此,我不能在一致性配置文件中为OBX.5提供固定的数据类型,因此我在OBX.5数据类型声明的一致性配置文件中尝试了HAPI api为数据类型占位符提供的“VARIES”。但这也行不通。

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

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

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

    3. 以下是消息:

      • MSH | ^〜\&安培; | AA | BB | CC | 3910 | 200903230934 || ORU ^ R01 ^ ORU_R01 | 75535037-123781 | P ^ T | 2.3.1
      • EVN | A31 | 200903230934
      • PID | 1 || 29 ^^ || Test300 ^莱蒂西亚^^^^^大号|| 19770202 | M ||
      • OBX ||的 NM | ABC ||的 121 |||||| ||˚F
      • OBX ||的 ST | DEF ||的 jaiswal |||||| ||˚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>
      

      此致 Amar Jaiswal

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

针对细分群组名称存在问题的解决方法。 (即我之前发布的第一个问题)

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

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

现在使用PIDPD1NK1NTEPV1PV2ORCOBRNTEOBXNTECTI作为段组名称时,不会抛出ProfileException。