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 文件信息相关推荐

  1. 【VOC格式xml文件解析】——Python

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2021/4/26 12:49 # @Author : @linlianqin # @S ...

  2. tinyxml 读取文本节点_TinyXml 读写XML文件

    使用Tinyxml创建和读取XML文件的优点:1,可在Windows和Linux中使用:2,方便易学,易用,可在http://sourceforge.net/projects/tinyxml/获取源代 ...

  3. C#中读取带有Xmlns命名空间的XML文件

    XML文件格式如下: <?xml version="1.0" encoding="utf-8"?> <Resume xmlns="h ...

  4. 从MySql 数据库中导出数据并生成指定格式xml文件

    最近网站需要做数据迁移,需要我将网站的数据从mysql数据库中导出,并按照要求生成指定格式的xml文件. xml格式要求: 代码: package com.epsoft.gjjisp;import j ...

  5. python读取txt、csv以及xml文件

    1.读取txt文件 txt文件是经常需要被操作的文件类型,python提供了以下几种常见的读取txt文件的方式: * read():              读取整个文件 * readline(): ...

  6. python读取xml文件信息失败_通过XML读取XML文件时出错。

    我试图用python读取XML文件xml.etree但有时对于某些文件,我在解析文件时会出现内存错误.我的XML文件大小是912Mb,这个问题与文件大小有关吗?在 代码:from xml.etree ...

  7. 如何读取、插入、更新xml文件

    XML 指可扩展标记语言,XML 被设计用来传输和存储数据.现在做了个小项目,不想把数据存到数据库,直接保存到本地xml文件,这就需要对xml文件进行增删改查.以下就是思明新建的xml处理工具类 Xm ...

  8. python读取xml文件信息_python读取xml文件方法解析

    关于python读取xml文章很多,但大多文章都是贴一个xml文件,然后再贴个处理文件的代码.这样并不利于初学者的学习,希望这篇文章可以更通俗易懂的教如何使用python来读取xml文件. 什么是xm ...

  9. 【Python】计算VOC格式XML文件中目标面积和长宽比并生成直方图

    1.Introduction 最近目标检测的精度上不去,看看别人的文章,发现可以针对anchor进行参数优化,RPN网络生成的anchor数量与种类很大程度上影响着检测精度,anchor与检测目标越接 ...

最新文章

  1. OpenCV的cvLoadImage函数
  2. PB初体验 class one
  3. php新闻列表页模块,PHP开发简单新闻发布系统之新闻列表页整体功能实现
  4. EventBus设计与实现分析——特性介绍
  5. opengl如何画出一个球_少儿美术绘画教程:毛线球
  6. 通过分区在Kafka中实现订单保证人
  7. 史上最牛研究生已成院士,给出“维持科研创新能力”的秘诀
  8. 十大经典排序算法与算法复杂度
  9. 西门子1200控制台达A2伺服458通讯控制博图V15.1
  10. WPS Office 绿色版|WPS Office 2019绿色专业版下载 v11.8.2.8053(免注册)
  11. 名字打架小游戏flash版
  12. 跨省市跳槽,社保公积金处理办法
  13. 在Debian中网卡的设置
  14. 有没有测试牙齿需不需要修正的软件,测一测,你的牙齿需要矫正吗?
  15. Greedy Method
  16. Redis统计用户访问量
  17. 从借呗借了100元,看背后的系统架构
  18. 【Scrum模式语言15】发布计划(Release Plan)
  19. MBA教不了的创富课
  20. 如何通过WWW下载图片 学习笔记

热门文章

  1. Python中浅拷贝和深拷贝的理解与研究 1
  2. python集合类型应用场景_简述Python的深浅拷贝以及应用场景
  3. 红日靶场(vulnstack)一 超全面详细的渗透测试学习笔记
  4. 关于web 服务打印
  5. Day108.尚医通:医院模拟系统接口对接 - 医院|科室|排班 增删改分页条件查询
  6. 古代不止有冰激凌,自制空调的方法可供现代借鉴
  7. MySQL删除数据库的命令_删除数据库的命令是什么?
  8. Python相关工具使用01_设置双击直接打开.ipynb文件
  9. PHA关闭测试网、预备网即将正式上线!
  10. AWD个人总结--开场工作