【发布时间】:2015-05-27 13:52:11
【问题描述】:
我无法使用 HAPI api(2.2 版)验证 ORU_R01 和 ADT_A04 (HL7 v2.3.1) 消息从 MWB (Message Workbench) 生成的一致性配置文件。
- 第一个问题是关于由 MWB 在 ORU_R01 消息的一致性配置文件中分配给分段组的名称,其中 PATIENT_RESULT 是由 MWB 生成的分段组名称(消息工作台) , 而 PIDPD1NK1NTEPV1PV2ORCOBRNTEOBXNTECTI 是 HAPI 在其 api 中引用同一段组的方式。
- 如果我在配置文件中将 PATIENT_RESULT 替换为 PIDPD1NK1NTEPV1PV2ORCOBRNTEOBXNTECTI,则配置文件对 HAPI api 解析器有效。
以下是上述问题的验证日志:
- ValidationException - PATIENT_RESULT 未在消息中找到
- ValidationException - 结构 PIDPD1NK1NTEPV1PV2ORCOBRNTEOBXNTECTI 出现在消息中,但不在配置文件中
第二个问题是在 OBX 段中用于 OBX.5 字段的数据类型。 由于我的消息包含多个 OBX,并且在 OBX.2 字段中还有多种数据类型,例如 NM 和 ST, 因此,我无法在一致性配置文件中为 OBX.5 提供固定数据类型,因此我尝试了 HAPI api 为 OBX.5 数据类型声明的一致性配置文件中的数据类型占位符提供的“VARIES”。但这也没有用。
以下是上述问题的验证日志:
ValidationException - HL7 数据类型 NM 与 OBX-5 的配置文件数据类型 VARIES 不匹配
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||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>
问候, 阿马尔·贾斯瓦尔
【问题讨论】:
-
你在问什么问题?
-
抱歉,如果问题的意图不明确。 hapi api 为我从 MWB 生成的一致性配置文件提供了验证错误。 MWB 为一致性配置文件中的段组分配名称的方式,例如“PATIENT_RESULT”,hapi 抱怨为: ValidationException - 结构 PIDPD1NK1NTEPV1PV2ORCOBRNTEOBXNTECTI 出现在消息中,但不在配置文件中。那是因为hapi在解析ORU报文时,在MSH段后面有PIDPD1NK1NTEPV1PV2ORCOBRNTEOBXNTECTI下的段组。
-
第二个问题是:在 OBX.5(OBX 段的第 5 个字段)中,该值应与同一段的 OBX.2 字段中定义的数据类型一致。但是我有多个 OBX 段,每个段的 OBX.2 字段具有不同类型的数据类型,并且 OBX.5 数据类型定义为“VARIES”,即使验证失败,异常如下:HL7 数据类型 NM 与配置文件数据类型不匹配在 OBX-5 上有所不同
-
也许您可以发布您的信息,以便我们知道您指的是什么。
-
1.问题是在 OBX.2 中具有不同数据类型的单个消息中的多个 OBX,而一致性配置文件中的 OBX.5 也期望定义数据类型,因此它需要动态切换数据类型......这通过配置文件是不可能的,所以我使用“VARIES”作为 HAPI api v2.2 提供的数据类型的占位符。