HL7消息解析----去掉校验

		最近接触医院系统使用的HL7消息,网上找解析的办法,大部分都是手工解析的,
	自己用符号拆分解析,像我这种懒人是不会用的,终于让我找到hapi框架,用起来不要太方
	便,建议使用。只要模板版本对应hl7消息的版本,就能解析,而不用去担心消息里面具体
	的内容,具体解析方法如下:

    PipeParser pipeParser = new PipeParser();
	Message message = pipeParser.parse(data);
	Terser terser = new Terser(message);
	String station = "PID-5-1";//这个位置表示的是姓名
	String val = terser.get("/." + station );
	
		这样这个值就取出来了,我们需要做的是什么呢,就是打开hl7编辑工具,找到对应的
	值的位置即可,如果要解析整个消息怎么弄?这样一个一个取我这个懒人是不干的。
	这里就用到了properties文件,把名称和位置一一对应,需要取值的时候,循环调用
    取出来放到map里面,方便好用,最主要一点是,如果切换另一家医院,用的hl7消息的版本
    不一样,里面的位置不一样,只需要改配置文件就行,不用动代码。

		其实也没那么一帆风顺,昨天就遇到问题搞了大半夜,结果解决的时候差点被自己蠢哭,
	作死如下:
		
		解析hl7消息的时候报错:
		Caused by: ca.uhn.hl7v2.validation.ValidationException: Validation failed:
		 Primitive value '15885311159' requires to be empty or a US phone number

	很明显,电话号码那里有校验没通过,hapi2.0以后的版本都加了这个校验,然后我就下载
	各种版本的hapi和框架来试,显然这种瞎猫碰死耗子肯定浪费时间又解决不了,在网上找解
	决办法就找到一两篇,把校验取出来,取了半天还是没取出来,时间过去几个小时,直接撸
	源码调试,原来在PipeParser初始化的时候就在上下文把校验加上去了!!
		查看一下PipeParser类,里面尽然藏了这么个方法:
		PipeParser pipeParser = PipeParser.getInstanceWithNoValidation();
		![在这里插入图片描述](https://img-blog.csdnimg.cn/20200414184207149.png#pic_center)
	一句话就解决的事浪费这么长时间,没文化写几句大白话祭奠一下这不好用的脑子
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
官方完整的HL7 ECG-XML例子及注释翻译如下: HL7 ECG-XML是一种用于电生理学领域的数据交换格式。该格式以XML语法表示心电图数据,并定义了一种标准的数据结构,用于准确地描述和交换心电图数据。 以下是一个官方提供的完整HL7 ECG-XML例子,以及对其注释的翻译: ```xml <?xml version="1.0" encoding="UTF-8"?> <HL7ECG> <!-- ECG submission information --> <Submission> <Date>2021-10-10</Date> <Time>09:00:00</Time> <Sender>Healthcare Center A</Sender> <Receiver>Central Hospital</Receiver> </Submission> <!-- Patient information --> <Patient> <ID>P001</ID> <Name>张三</Name> <Gender>M</Gender> <Age>45</Age> </Patient> <!-- Study information --> <Study> <ID>S001</ID> <StartTime>2021-10-09 12:00:00</StartTime> <EndTime>2021-10-09 12:10:00</EndTime> <Technician>李四</Technician> <Location>ECG Lab</Location> </Study> <!-- ECG data --> <ECGData> <Lead> <Name>I</Name> <SamplingRate>500</SamplingRate> <Values>0, 1, 2, 3, ...</Values> <!-- 数字序列,表示I导联心电图的采样值 --> </Lead> <Lead> <Name>II</Name> <SamplingRate>500</SamplingRate> <Values>0, 1, 2, 3, ...</Values> <!-- 数字序列,表示II导联心电图的采样值 --> </Lead> <!-- 其他导联信息和数据 --> </ECGData> <!-- Interpretation --> <Interpretation> <Conclusion>正常</Conclusion> <Recommendations>无特殊治疗建议</Recommendations> </Interpretation> </HL7ECG> ``` 以上是一个简单的HL7 ECG-XML示例,包含了心电图的基本信息和数据。注释提供了对各个节点的翻译和解释,以便于理解每个元素所表示的含义。提交信息包括日期、时间、发送方和接收方。患者信息包括ID、姓名、性别和年龄。研究信息包括ID、开始时间、结束时间、技术员和位置。心电图数据包括导联的名称、采样率和采样值。解读部分包括结论和建议。 这样的HL7 ECG-XML格式和示例可以帮助医疗机构和相关软件系统进行心电图数据的准确传输和解读。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值