HL7消息分析器

HL7p的Python项目详细描述


HL7PY
===
MIT许可证


版权所有(C)2012 Nicholas Orlowski

g但不限于
使用、复制、修改、合并、发布、分发、再授权和/或出售
软件副本的权利,以及允许向其提供软件的人这样做的权利,但须符合以下条件:

n通知应包含在软件的所有副本或实质性部分中。


软件按"原样"提供,无任何形式的明示或暗示保证,包括但不限于适销性保证,
适用于特定目的和非附带性保证。。在任何情况下,
作者或版权持有人均不对任何索赔、损害或其他
lililililililililililililililililililililililililililililililililililililililililililililililililililililililililililililililililililililililililililililililililililililililililililililililililililililililililililililililililihein in in actactactactactactactactactactactactactactactactactactactactactactactactactactactactactactactactactactactactactactactactactactactactactactactactactactactor contcontact

用python编写的hl7健康数据交换格式的解析器。提供对正确数据类型的
类似属性的访问,并提供从字典构造hl7
消息的能力。


hl7传输协议是对管道和传输返回的一种令人困惑的度量。这个包提供了对消息中属性的简单pythonic访问。有很多领域的知识<
<
有段段段名和字段名的知识,但下面是一些基本的例子,下面是一些基本的段名和字段名的基本例子,下面是一些<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<200501<10045504||ADT^A01|599102|P|2.3|||
EVN|A01|20050110045502|||||
PID|1||10006579^^^1^MRN^1||DUCK^DONALD^D||19241010|M||1|111 DUCK ST^^FOWL^CA^999990000^^M|1|8885551212|8885551212|1|2||40007716^^^AccMgr^VN^1|123121234|||||||||||NO NK1|1|DUCK^HUEY|SO|3583 DUCK RD^^FOWL^CA^999990000|8885552222||Y||||||||||||||
PV1|1|I|PREOP^101^1^1^^^S|3|||37^DISNEY^WALT^^^^^^AccMgr^^^^CI|||01||||1|||37^DISNEY^WALT^^^^^^AccMgr^^^^CI|2|40007716^^^AccMgr^VN|4|||||||||||||||||||1||G|||20050110045253||||||
GT1|1|8291|DUCK^DONALD^D||111^DUCK ST^^FOWL^CA^999990000|8885551212||19241010|M||1|123121234||||#Cartoon Ducks Inc|111^DUCK ST^^FOWL^CA^999990000|8885551212||PT| DG1|1|I9|71596^OSTEOARTHROS NOS-L/LEG ^I9|OSTEOARTHROS NOS-L/LEG ||A|
IN1|1|MEDICARE|3|MEDICARE|||||||Cartoon Ducks Inc|19891001|||4|DUCK^DONALD^D|1|19241010|111^DUCK ST^^FOWL^CA^999990000|||||||||||||||||123121234A||||||PT|M|111 DUCK ST^^FOWL^CA^999990000|||||8291
IN2|1||123121234|Cartoon Ducks Inc|||123121234A|||||||||||||||||||||||||||||||||||||||||||||||||||||||||8885551212 IN1|2|NON-PRIMARY|9|MEDICAL MUTUAL CALIF.|PO BOX 94776^^HOLLYWOOD^CA^441414776||8003621279|PUBSUMB|||Cartoon Ducks Inc||||7|DUCK^DONALD^D|1|19241010|111 DUCK ST^^FOWL^CA^999990000|||||||||||||||||056269770||||||PT|M|111^DUCK ST^^FOWL^CA^999990000|||||8291 IN2|2||123121234|Cartoon Ducks Inc||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||8885551212
IN1|3|SELF PAY|1|SELF PAY|||||||||||5||1


(不是为了情感效果而包装的行)



=seg.some attribute.data'访问字典(如果该字段有子字段)或解析为正确数据类型(如datetime或numeric)的值。
2.seg.some'u attribute.hl7'使消息构造与
属性及其所有后续段和子段等效的hl7。

seg.some'u attribute.some'u timestamp.data=datetime.datetime.now()'允许您设置
注/段。请参阅测试中的示例。



示例:

'duck'
我的信息。in1[0].ins_company_name.hl7
'医疗保险'
我的信息。in1[0].ins_company_name.data
'医疗保险'
我的信息。in1[1].ins_company_name.hl7
'自费'
我的信息。in1_list
[in1,in1]
对于in1_list:insINS.INS_company_name.hl7
"医疗保险"
"自付"部分是一个特例。NTE sections can come after any other section and
are assembled into the .note attribute for a segment.



PID|1|123456789|112233|1234567|Test^Patient||19820620|F|||123 Fake St.^^SumCity^ST^12345-||(123)456-7890||||||
ORC|RE|29117637990^LAB|291176379902012^LAB||||||201210170000|||1366445686^Doctor^M^^^^^N
OBR|1|29117637990^LAB|291176379902012^LAB|001321^Iron and TIBC^L|||201210171632|||||||201210171934||||M542856833||29117637990||201210180743|||F
OBX|1|NM|001347^Iron Bind.Cap.(TIBC)^L||476|ug/dL|250-450|H||N|F|19840622||201210180726|BN
OBX|2|NM|001348^UIBC^L||462|ug/dL|150-375|H||N|F|19940518||201210180726|BN
NTE|1|L|Results confirmed on
NTE|2|L|dilution.

The following would occur:

print my_message.ORC.OBR.OBX_list[1].note
'Results confirmed on dilution'

=================消息创建示例=====
通过组装段并将它们添加到消息中来创建消息。
以下是我们的emr ankhos如何构造adt/a08消息的示例。chart.to-dict()
方法从图表统计信息等构造相关字段的字典。


msg=message()
msh-u data=dict(
recv-app={'app-name':'their-app'},
send-app={'app-name':'ankhos'},
msg-type=dict(message_code='adt',
事件代码='a08'),
接受确认类型='al',
应用确认类型='al',
过程id='p',
版本='2.3',
消息控制id=control id,
编码字符='^~\&;',
timestamp=datetime.datetime.now())
msh=segment(code='msh',data=msh\u data)
evn\u data=dict(event\u code=event\u code,timestamp=dict(time=datetime.datetime.now(),
resolution='s')
evn=segment(code='evn',data=evn\u data)
pid=segment(code='pid',data=chart.to_dict())
pv1_data={…}
pv1=segment(code='pv1',data=pv1_data)
msg.add_segments([msh,evn,pid,pv1])


print msg.hl7



只要数据字典遵循hl7fields.py规范中的签名,就应该正确构造段。在include hl7fields.py文件中有许多hl7指定的段
,但只有少数段。我们只是还没有使用过其中的大部分
,但是如果我们使用了,我将确保更新hl7fields规范字典。



当前限制:
1。不支持添加操作。(非常低优先级)
2.尚未支持域内重复
3。包括的测试只是烟雾测试,以确保基本的东西没有打破!
HL7用于生命关键系统。再一次。请测试您自己的软件!
如果时间允许,将添加更多真实的测试。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在Eclipse中使用多个调用在一行上打印java   javajackson序列化问题。只有同一实体的第一个对象可以很好地序列化   Java中Deflate函数的等价充气   使用customlitview的java Android actionbar搜索   java“<T>T get()”是什么意思?(它有用吗?)   目标c使用CommonCrypto使用AES256加密,使用OpenSSL或Java解密   java在运行时更新资源文件   fileinputstream在java中访问并将数据写入现有文件   带集群的java Android Mapbox我希望每个功能都有不同的标记图像   java JDK8>JDK10:PKIX路径生成失败:SunCertPathBuilderException:找不到请求目标的有效证书路径   java使用Hk2生成具有指定构造函数参数的实例   为什么这个系统。出来Java中的println()打印到控制台?   java目录和文件名连接不起作用   使用mockito和通配符绘图的java