HL7 ADT 消息解析:日期范围
HL7 ADT Message parsing: date ranges
注:
这个问题不是询问使用哪个库的建议;我自己动手。
我正在通读 HL7 v2.5.1 规范,以便为 iOS 和 Windows 制作一个解析引擎。
我的问题与 患者姓名 字段 (PID-5) 中的 姓名有效性范围 组件有关。但我认为它普遍适用于所有 DR(日期范围)组件。
在第 3 章:患者管理,第 75 页,列出了以下信息:
Components: {...omitted...} ^ <Name Validity Range (DR)> ^
{...omitted...}
Subcomponents for Name Validity Range (DR):
<Range Start Date/Time (TS)> & <Range End Date/Time (TS)>
Subcomponents for Range Start Date/Time (TS):
<Time (DTM)> & <Degree of Precision (ID)>
Subcomponents for Range End Date/Time (TS):
<Time (DTM)> & <Degree of Precision (ID)>
我了解字段、组件和子组件的结构以及它们的分隔符的使用方式……或者至少我认为我了解。但是,上述信息让我对数据的表达方式感到困惑。我已经搜索过,但找不到适合此类数据的消息样本。根据我对 HL7 数据结构的理解,数据的编码方式如下:
PID|||01234||JONES^SUSIE^Q^^^^^^^199505011201&M&199505011201&M^199505011201&M&199505011201&M
当然,这里的问题是,将子组件嵌入到子组件中会让您不确定如何解析数据以及哪些数据去了哪里。
我查看了第 2 章:控制,附录 A,并在第 160 页找到了这段文字:
Note: DR cannot be legally expressed when embedded within another data type. Its use is constrained to a segment field.
因此,PID-5 列出的标准似乎无效。我还没有从我的系统中看到任何生成此信息的消息,因此对于我的特定情况来说这可能是一个有争议的问题,但我不喜欢开发具有已知漏洞的解决方案。有人遇到过这个"in the wild"吗?
具有 DR 数据类型的项目可以细分,并且如果该项目的类型为字段 .eg,则具有精度子组件。 ARQ/11 请求开始 date/time 范围。
如果具有 DR 数据类型的项目已经是其他数据类型的一部分,则可以在数据范围子组件的开始和结束部分细分,但不能在精度子组件中细分,如您的示例 PID/5 .
患者姓名是 XPN 数据类型,它是一种复合数据类型。这基本上意味着它可以结合主要(如 ST)和其他复合材料,as shown here
现在,您正在查看 XPN.10,它是 DR 数据类型的第 10 个组件,DR 也是 2 个主要 DTM - start and end - 或 2 个子组件的组合。子组件由 &.
分隔
注:
这个问题不是询问使用哪个库的建议;我自己动手。
我正在通读 HL7 v2.5.1 规范,以便为 iOS 和 Windows 制作一个解析引擎。
我的问题与 患者姓名 字段 (PID-5) 中的 姓名有效性范围 组件有关。但我认为它普遍适用于所有 DR(日期范围)组件。
在第 3 章:患者管理,第 75 页,列出了以下信息:
Components: {...omitted...} ^ <Name Validity Range (DR)> ^ {...omitted...}
Subcomponents for Name Validity Range (DR): <Range Start Date/Time (TS)> & <Range End Date/Time (TS)>
Subcomponents for Range Start Date/Time (TS): <Time (DTM)> & <Degree of Precision (ID)>
Subcomponents for Range End Date/Time (TS): <Time (DTM)> & <Degree of Precision (ID)>
我了解字段、组件和子组件的结构以及它们的分隔符的使用方式……或者至少我认为我了解。但是,上述信息让我对数据的表达方式感到困惑。我已经搜索过,但找不到适合此类数据的消息样本。根据我对 HL7 数据结构的理解,数据的编码方式如下:
PID|||01234||JONES^SUSIE^Q^^^^^^^199505011201&M&199505011201&M^199505011201&M&199505011201&M
当然,这里的问题是,将子组件嵌入到子组件中会让您不确定如何解析数据以及哪些数据去了哪里。
我查看了第 2 章:控制,附录 A,并在第 160 页找到了这段文字:
Note: DR cannot be legally expressed when embedded within another data type. Its use is constrained to a segment field.
因此,PID-5 列出的标准似乎无效。我还没有从我的系统中看到任何生成此信息的消息,因此对于我的特定情况来说这可能是一个有争议的问题,但我不喜欢开发具有已知漏洞的解决方案。有人遇到过这个"in the wild"吗?
具有 DR 数据类型的项目可以细分,并且如果该项目的类型为字段 .eg,则具有精度子组件。 ARQ/11 请求开始 date/time 范围。
如果具有 DR 数据类型的项目已经是其他数据类型的一部分,则可以在数据范围子组件的开始和结束部分细分,但不能在精度子组件中细分,如您的示例 PID/5 .
患者姓名是 XPN 数据类型,它是一种复合数据类型。这基本上意味着它可以结合主要(如 ST)和其他复合材料,as shown here
现在,您正在查看 XPN.10,它是 DR 数据类型的第 10 个组件,DR 也是 2 个主要 DTM - start and end - 或 2 个子组件的组合。子组件由 &.
分隔