C# XPath 读取HL7-V3消息格式 xml 文件信息
HL7 卫生信息交换标准(Health Level 7)
标准化的卫生信息传输协议,是医疗领域不同应用之间电子传输的协议。HL7汇集了不同厂商用来设计应用软件之间接口的标准格式,它将允许各个医疗机构在异构系统之间,进行数据交互。
HL7的主要应用领域是HIS/RIS,主要是规范HIS/RIS系统及其设备之间的通信,它涉及到病房和病人信息管理、化验系统、药房系统、放射系统、收费系统等各个方面。HL7的宗旨是开发和研制医院数据信息传输协议和标准,规范临床医学和管理信息格式,降低医院信息系统互连的成本,提高医院信息系统之间数据信息共享的程度。
Health Level 7中的“Level 7”是指OSI的七层模型中的最高一层,第七层。但这并不是说它遵循OSI第七层的定义数据元素,它只是用来构成它自己的抽象数据类型和编码规则。它也没有规定规范说明如何支持OSI第一到第六层的数据。
1,首先没有接触过Xpath的去这里学习下:XPath Tutorialhttp://www.zvon.org/xxl/XPathTutorial/Output_chi/
2,HL7-V3格式的XML文件如下
<PRPA_IN201311UV02 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ITSVersion="XML_1.0" xmlns="urn:hl7-org:v3">
<id root="2.16.156.10011.0" extension="22a0f9e0-4454-11dc-a6be-3603d6866807"/>
<creationTime value="20070803130624"/>
<interactionId root="2.16.840.1.113883.1.6" extension="PRPA_IN201311UV02"/>
<processingCode code="P"/>
<processingModeCode code="R"/>
<acceptAckCode code="AL"/>
<receiver>
<device>
<id root="2.16.156.10011.0.1.1" extension="2.16.156.10011.0.1.1"/>
</device>
</receiver>
<sender>
<device>
<id root="2.16.156.10011.0.1.2" extension="2.16.156.10011.0.1.2"/>
</device>
</sender>
<controlActProcess>
<subject>
<registrationRequest>
<statusCode/>
<subject1>
<patient>
<!--本地系统的患者ID -->
<id root="2.16.156.10011.0.2.2" extension="F9EE9DCE-6A18-4E98-8E68-FBCAAD379261"/>
<statusCode code="active"/>
<effectiveTime value="20111212141414"/>
<patientPerson>
<!--身份证号-->
<id root="2.16.156.10011.1.3" extension="3425456456666666"/>
<!--姓名-->
<name>ggboy</name>
<!--联系电话-->
<telecom value="028-2222444"/>
<!--手机号码 新增-->
<phone value="15111111111"/>
<!--死亡日期 新增-->
<deadDate value=""/>
<!--国家 新增-->
<country code="156" codeSystem="2.16.156.10011.2.3.3.1" displayName="国家"/>
<!--文化程度 新增-->
<educationalLevel code="10" codeSystem="2.16.156.10011.2.3.3.6" displayName="学历"/>
<!--ABO血型 新增-->
<abo code="2" codeSystem="2.16.156.10011.2.3.1.85" displayName="abo血型"/>
<!--RH血型 新增-->
<rh code="2" codeSystem="2.16.156.10011.2.3.1.250" displayName="rh血型"/>
<!--户口地址 新增-->
<accountAddr value="合肥市蜀山区"/>
<!--出生地址 新增-->
<bornAddr value="六安市霍山县"/>
<!--数据来源 新增-->
<domainId value="90572a5f73be4e35909822e861019073"/>
<!--性别-->
<administrativeGenderCode code="1" codeSystem="2.16.156.10011.2.3.3.4" displayName="性别"/>
<!--出生时间-->
<birthTime value="1993-09-14"/>
<!--联系地址-->
<addr>
<!--非结构化地址(完整地址描述) -->
<streetAddressLine>完整地址描述</streetAddressLine>
<!--地址-省(自治区、直辖市) -->
<state>省</state>
<!--地址-市(地区) -->
<city>市</city>
<!--地址-县(区) -->
<county>区</county>
<!-- 地址-乡(镇、街道办事处) -->
<streetNameBase>乡</streetNameBase>
<!-- 地址-村(街、路、弄等) -->
<streetName>村</streetName>
<!-- 地址-门牌号码 -->
<houseNumber>门牌号码 </houseNumber>
<!-- 邮政编码-->
<postalCode>邮政编码</postalCode>
</addr>
<!--婚姻状况-->
<maritalStatusCode code="20" codeSystem="2.16.156.10011.2.3.3.5" displayName="未婚"/>
<!--民族-->
<ethnicGroupCode code="1" codeSystem="2.16.156.10011.2.3.3.3" displayName="汉族"/>
<!--职业类别代码-->
<asEmployee>
<occupationCode code="13" codeSystem="2.16.156.10011.2.3.3.7" displayName="专业技术人员"/>
<employerOrganization>
<!--工作单位名称-->
<name>公司</name>
<contactParty>
<!--工作联系电话-->
<telecom value="xxx-xxxxxx"/>
<!--工作地址 新增-->
<unitAddr>工作地址</unitAddr>
</contactParty>
</employerOrganization>
</asEmployee>
<asOtherIDs>
<!--健康卡号-->
<id root="2.16.156.10011.1.19" extension="123456"/>
<scopingOrganization>
<!--健康卡发放机构代码-->
<id root="2.16.156.10011.1.5" extension="123456"/>
</scopingOrganization>
</asOtherIDs>
<asOtherIDs>
<!--城乡居民健康档案编号-->
<id root="2.16.156.10011.1.2" extension="38273N237"/>
<scopingOrganization>
<!--建档医疗机构组织机构代码-->
<id root="2.16.156.10011.1.5" extension=""/>
</scopingOrganization>
</asOtherIDs>
<!--联系人-->
<personalRelationship>
<code/>
<!--联系人电话-->
<telecom value=""/>
<relationshipHolder1>
<!--联系人姓名-->
<name></name>
<!--家庭关系 新增-->
<contactRelation code="" codeSystem="2.16.156.10011.2.3.3.8" displayName="家庭关系"/>
</relationshipHolder1>
</personalRelationship>
</patientPerson>
<providerOrganization>
<id root="2.16.156.10011.1.5" extension="123456"/>
<name>xxx医院</name>
<contactParty/>
</providerOrganization>
<!--医疗保险信息-->
<coveredPartyOf>
<coverageRecord>
<beneficiary>
<id root="" codeSystem="2.16.156.10011.2.3.1.248" displayName="城镇职工基本医疗保险"/>
</beneficiary>
</coverageRecord>
</coveredPartyOf>
</patient>
</subject1>
<author>
<assignedEntity>
<id root="2.16.156.10011.0.3.2" extension="12346"/>
<assignedPerson>
<name>测试</name>
</assignedPerson>
</assignedEntity>
</author>
</registrationRequest>
</subject>
</controlActProcess>
</PRPA_IN201311UV02>
3,Xpath读取xml
首先我们先来看看第一行 PRPA_IN201311UV02 的 xmlns="urn:hl7-org:v3",因为它是一个命名空间,所以我们得先注册下命名空间,不然获取出来的值为null。
XmlNamespaceManager nsmgr = new XmlNamespaceManager(xmldoc.NameTable);
nsmgr.AddNamespace("x", xmldoc.DocumentElement.NamespaceURI);
好了基本的设置好了,现在来读取下xml 。
例如:读取第二行 id 的 属性extension的值 (注意 x 是你上面注册下命名空间的)
XmlNode node = xmldoc.SelectSingleNode("//x:id/@extension", nsmgr);
string nodeValue = node.Value;
Console.WriteLine(nodeValue);
下面完整代码:
//获取xml路径string xmlFilePath = System.AppDomain.CurrentDomain.BaseDirectory + "F01.xml";var xmldoc = new XmlDocument();//读取xmlxmldoc.Load(xmlFilePath);//注册命名空间XmlNamespaceManager nsmgr = new XmlNamespaceManager(xmldoc.NameTable);nsmgr.AddNamespace("x", xmldoc.DocumentElement.NamespaceURI);//使用xpath 读取xml 里面元素的值XmlNode node = xmldoc.SelectSingleNode("//x:id/@extension", nsmgr);string nodeValue = node.Value;Console.WriteLine(nodeValue);
C# XPath 读取HL7-V3消息格式 xml 文件信息相关推荐
- 【VOC格式xml文件解析】——Python
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2021/4/26 12:49 # @Author : @linlianqin # @S ...
- tinyxml 读取文本节点_TinyXml 读写XML文件
使用Tinyxml创建和读取XML文件的优点:1,可在Windows和Linux中使用:2,方便易学,易用,可在http://sourceforge.net/projects/tinyxml/获取源代 ...
- C#中读取带有Xmlns命名空间的XML文件
XML文件格式如下: <?xml version="1.0" encoding="utf-8"?> <Resume xmlns="h ...
- 从MySql 数据库中导出数据并生成指定格式xml文件
最近网站需要做数据迁移,需要我将网站的数据从mysql数据库中导出,并按照要求生成指定格式的xml文件. xml格式要求: 代码: package com.epsoft.gjjisp;import j ...
- python读取txt、csv以及xml文件
1.读取txt文件 txt文件是经常需要被操作的文件类型,python提供了以下几种常见的读取txt文件的方式: * read(): 读取整个文件 * readline(): ...
- python读取xml文件信息失败_通过XML读取XML文件时出错。
我试图用python读取XML文件xml.etree但有时对于某些文件,我在解析文件时会出现内存错误.我的XML文件大小是912Mb,这个问题与文件大小有关吗?在 代码:from xml.etree ...
- 如何读取、插入、更新xml文件
XML 指可扩展标记语言,XML 被设计用来传输和存储数据.现在做了个小项目,不想把数据存到数据库,直接保存到本地xml文件,这就需要对xml文件进行增删改查.以下就是思明新建的xml处理工具类 Xm ...
- python读取xml文件信息_python读取xml文件方法解析
关于python读取xml文章很多,但大多文章都是贴一个xml文件,然后再贴个处理文件的代码.这样并不利于初学者的学习,希望这篇文章可以更通俗易懂的教如何使用python来读取xml文件. 什么是xm ...
- 【Python】计算VOC格式XML文件中目标面积和长宽比并生成直方图
1.Introduction 最近目标检测的精度上不去,看看别人的文章,发现可以针对anchor进行参数优化,RPN网络生成的anchor数量与种类很大程度上影响着检测精度,anchor与检测目标越接 ...
最新文章
- OpenCV的cvLoadImage函数
- PB初体验 class one
- php新闻列表页模块,PHP开发简单新闻发布系统之新闻列表页整体功能实现
- EventBus设计与实现分析——特性介绍
- opengl如何画出一个球_少儿美术绘画教程:毛线球
- 通过分区在Kafka中实现订单保证人
- 史上最牛研究生已成院士,给出“维持科研创新能力”的秘诀
- 十大经典排序算法与算法复杂度
- 西门子1200控制台达A2伺服458通讯控制博图V15.1
- WPS Office 绿色版|WPS Office 2019绿色专业版下载 v11.8.2.8053(免注册)
- 名字打架小游戏flash版
- 跨省市跳槽,社保公积金处理办法
- 在Debian中网卡的设置
- 有没有测试牙齿需不需要修正的软件,测一测,你的牙齿需要矫正吗?
- Greedy Method
- Redis统计用户访问量
- 从借呗借了100元,看背后的系统架构
- 【Scrum模式语言15】发布计划(Release Plan)
- MBA教不了的创富课
- 如何通过WWW下载图片 学习笔记
热门文章
- Python中浅拷贝和深拷贝的理解与研究 1
- python集合类型应用场景_简述Python的深浅拷贝以及应用场景
- 红日靶场(vulnstack)一 超全面详细的渗透测试学习笔记
- 关于web 服务打印
- Day108.尚医通:医院模拟系统接口对接 - 医院|科室|排班 增删改分页条件查询
- 古代不止有冰激凌,自制空调的方法可供现代借鉴
- MySQL删除数据库的命令_删除数据库的命令是什么?
- Python相关工具使用01_设置双击直接打开.ipynb文件
- PHA关闭测试网、预备网即将正式上线!
- AWD个人总结--开场工作