找回密码
 欢迎注册
搜索
热搜: 活动 交友 discuz
查看: 2385|回复: 3

关于构造HL7消息段的问题,多谢!

[复制链接]
发表于 2008-10-20 09:59:51 | 显示全部楼层 |阅读模式
看文档上说构造一个消息需要有 SB=0x0b,EB=0x1c,CR=0x0d 等分隔符,我想知道这些分隔符是以怎样的形式加到消息段中的呢?是直接加上的吗?
比如:
   0x1b + “MSH|^~\\&|HIS||DRAGONRIS||200206281130||ADT^A01|MSG00005|D|2.3|||||GB2312”+ 0x0d   
这样显示出来的是:
   “11MSH|^~\\&|HIS||DRAGONRIS||200206281130||ADT^A01|MSG00005|D|2.3|||||GB231213”
还是用别的方式呢?直接在字符串上加<CR>?现在没有设备可以发消息,所以不知道该如何构造。

[ 本帖最后由 wmkeydown 于 2008-10-20 10:02 编辑 ]
发表于 2008-11-18 17:34:34 | 显示全部楼层

GZ

我是HL7新手,楼主的问题我目前不会,关注学习,我想借此机会问问楼主HL7用什么工具包编程,推荐一个,我的意思是说DICOM我用DCMTK工具包,但HL7我还没有找到合适的,希望楼主指点,谢谢!
发表于 2008-12-24 10:17:52 | 显示全部楼层

一点小建议

也不知道楼主这么长时间还登陆论坛不了,但楼主的问题我确实昨天才会。
可以用\r,(回车的转义字符,符合标准),我写了个控制台程序。
#include <iostream>
using namespace std ;
void main()
{
char* str= "MSH|^~\\&|Cohi|COHIE|Clinical|facility|20081025||ADT^A01^ADT_A01|messageControlId|P|2.4\rEVN|A01|200812232015||01\r";        //这其实是一行只是这里写不下了。
cout<<str1<<endl;
}
控制台输出:
MSH|^~\\&|Cohi|COHIE|Clinical|facility|20081025||ADT^A01^ADT_A01|messageControlId|P|2.4
EVN|A01|200812232015||01
楼主以后看到了可以试试。
发表于 2008-12-24 11:34:57 | 显示全部楼层

补充一句

HL7标准要求段结尾用回车CR,对应ANSI码是13,转义字符为\r,但"回车"并不等于换行,还会在本行显示,所以在实际显示上,回车后的字段会把一开始的字段覆盖掉,\r是符合标准的,但要显示在控制台上会出现覆盖现象。
所以写HL7消息用\r就可以了,但想在控制台上看一下用\n.
但标准绝对要求是\r.
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

快速回复 返回顶部 返回列表