对于HL7管道分隔的数据,编码字符(x^~&)究竟是如何工作的?
是解析原始HL7数据?时字段、字段重复、组件及其子组件正确的示例。
PID|1||||||||||||1234567890^somedata&moredata^TESTEMAIL@GMAIL.COM~0987654321
Field (|):
PID13 = 1234567890^somedata&moredata^TESTEMAIL@GMAIL.COM~0987654321
Field repetition (~):
PID13~1 = 1234567890^somedata&moredata^TESTEMAIL@GMAIL.COM
PID13~2 = 0987654321
Component (^):
PID13.1 = 1234567890
PID13.2 = somedata&moredata
PID13.3 = TESTEMAIL@GMAIL.COM
Sub-component (&):
PID13.2.1 = somedata
PID13.2.2 = moredata
PID13.3.1 = TESTEMAIL@GMAIL.COM
PID13.3.2 = 发布于 2018-03-21 21:12:45
如果不了解你想要分配的东西的左边结构,就不可能告诉你你做的对不对。
然而,有一种正确的方法可以解析所讨论的段/字段。
来自HL7v2.7标准第2.5.3节:
每个字段都被分配一个数据类型,该类型定义字段的值域--它可能采取的值。
如果您拉出3.4.2.13 (PID-13)部分,您将看到每个组件和子组件的故障。从技术上讲,子组件和组件的含义可能因字段而异,但大多数情况下它们只是因数据类型而有所不同。
在您的示例中,您不将重复处理为XTN数据类型的单独实例。我将使用数组语法重写如下:
Field repetition (~):
PID13[0] = 1234567890^somedata&moredata^TESTEMAIL@GMAIL.COM
PID13[1] = 0987654321
Component (^):
PID13[0].1 = 1234567890
PID13[0].2 = somedata&moredata
PID13[0].3 = TESTEMAIL@GMAIL.COM
Sub-component (&):
PID13[0].2.1 = somedata
PID13[0].2.2 = moredata同一规范第2.6.1节中的psuedo代码也可能有帮助。
foreach occurrence in ( occurrences_of( field ) ) {
construct_occurrence( occurrence );
if not last ( populated occurrence ) insert repetition_separator;
/* e.g., ~ */
}重要的是要记住,这些不同的子组件有不同的含义,因为PID-13是一种XTN类型。
PID-13是一个有问题的例子,因为在历史上,PID-13的顺序很重要.第一次重复是“主要的”。随着时间的推移,该领域也已经成为电子邮件地址、寻呼机号码等的登陆地。因此,祝你好运,努力从现实世界的数据中弄清楚。
https://stackoverflow.com/questions/49373288
复制相似问题