hl7消息体解析 循环遍历的问题 java版 20C

String myHL7string = "MSH|^~\&|HISPC||门急诊||20180628171851||RSP^Z10^RSP_Z10|002fee2b-307a-406b-809e-ccfc4840c1d3|P|2.6|||NE|AL||utf-8\n" +
"MSA|AA|8ba486c3ac1d4abcb98e735d72e7582c\n" +
"QAK|Z1002|||12|12|0\n" +
"QPD|Z10^查询医嘱信息|Z1002|1^9000081382^^20180624235959^20180628171900\n" +
"PID||9000081382|||测试^^^CE SHI||19960615000000|1\n" +
"PV1||1|1300314||||ADMIN^樊翠翠||||||||||||15||||||||||||||||||||LZ001|||||20180628165903\n" +
"ORC|NW|2129293|01E201806-2702248|2826230|2|1|||20180627103118|||12819^董艳芳|||||||||儿科急诊门诊^^1300314||||||||Q\n" +
"TQ1|1||1&每日一次|||1.0\n" +
"RXO|353F^注射用美洛西林钠舒巴坦钠|1||||6^皮试单||||||||||||||0^否\n" +
"ORC|NW|487722|01E201806-2800044|628116|2|0|||20180628171215|||ADMIN^樊翠翠|||||||||儿科急诊门诊^^1300314||||||||A|||中心药房^^1401003\n" +
"TQ1|1||1&每日一次|||4.0^&1|201806301000\n" +
"RXO|397F^钠钾镁钙葡萄糖注射液^^500ml/袋|1||ml||8^输液单||||||||||||||0^否||3^滴/分钟\n" +
"NTE|7||治疗1111111\n" +
"RXR|B5^静滴\n" +
"ORC|NW|487723|01E201806-2800047|628117|2|0|||20180628171232|||ADMIN^樊翠翠|||||||||儿科急诊门诊^^1300314||||||||A|||门诊西药^^1401002\n" +
"TQ1|1||1&每日一次|||4.0^&1|201806291000\n" +
"RXO|3DED^盐酸溴己新葡萄糖注射液^^100ml/瓶|1||ml||8^输液单||||||||||||||0^否||3^滴/分钟\n" +
"NTE|7||治疗1111111\n" +
"RXR|B5^静滴";
"ORC|NW|2143411|01E201806-2800186|2844311|2|0|||20180628053808|||12470^董晓知|||||||||儿科急诊门诊^^1300314||||||||A|||门诊西药^^1401002"
"TQ1|1||30&每日两次|||2.0^&1|201806281000"
"RXO|3572^氯化钠注射液(0.9%)^^50ml/袋|50||ml||8^输液单||||||||||||||0^否||20^滴/分钟"
"RXR|B5^皮内注射";

                            怎么样取出ORC 到 RXR 这两个循环里的值   第二个循环里还多一个NTE
                            像这种情况怎么取值啊   里面的数据全部取出来放到对应的数据库里面,
                            NTE还要对应到相应的药品上
0

3个回答

public class StrSplite {

public static void main(String[] args) {
    String myHL7string = "MSH|^~\\&|HISPC||门急诊||20180628171851||RSP^Z10^RSP_Z10|002fee2b-307a-406b-809e-ccfc4840c1d3|P|2.6|||NE|AL||utf-8\n" +
            "MSA|AA|8ba486c3ac1d4abcb98e735d72e7582c\n" +
            "QAK|Z1002|||12|12|0\n" +
            "QPD|Z10^查询医嘱信息|Z1002|1^9000081382^^20180624235959^20180628171900\n" +
            "PID||9000081382|||测试^^^CE SHI||19960615000000|1\n" +
            "PV1||1|1300314||||ADMIN^樊翠翠||||||||||||15||||||||||||||||||||LZ001|||||20180628165903\n" +
            "ORC|NW|487722|01E201806-2800044|628116|2|0|||20180628171215|||ADMIN^樊翠翠|||||||||儿科急诊门诊^^1300314||||||||A|||中心药房^^1401003\n" +
            "TQ1|1||1&每日一次|||4.0^&1|201806301000\n" +
            "RXO|397F^钠钾镁钙葡萄糖注射液^^500ml/袋|1||ml||8^输液单||||||||||||||0^否||3^滴/分钟\n" +
            "NTE|7||治疗1111111\n" +
            "RXR|B5^静滴\n" +
            "ORC|NW|487723|01E201806-2800047|628117|2|0|||20180628171232|||ADMIN^樊翠翠|||||||||儿科急诊门诊^^1300314||||||||A|||门诊西药^^1401002\n" +
            "TQ1|1||1&每日一次|||4.0^&1|201806291000\n" +
            "RXO|3DED^盐酸溴己新葡萄糖注射液^^100ml/瓶|1||ml||8^输液单||||||||||||||0^否||3^滴/分钟\n" +
            "NTE|7||治疗1111111\n" +
            "RXR|B5^静滴";
    int index1 = getCharacterPosition(myHL7string,"ORC", 1);
    System.out.println(index1);
    int endIndex1 = getCharacterPosition(myHL7string,"RXO", 1);
    System.out.println(endIndex1);
    String firstStr = myHL7string.substring(index1, endIndex1 + 3);
    System.out.println(firstStr);
    int index2 = getCharacterPosition(myHL7string, "ORC", 2);
    System.out.println(index2);
    int endIndex2 = getCharacterPosition(myHL7string, "RXO", 2);
    System.out.println(endIndex2);
    String secondStr = myHL7string.substring(index2, endIndex2 + 3);
    System.out.println(secondStr);
}

public static int getCharacterPosition(String url,String s,int i){
    //这里是获取"/"符号的位置 lastindexof从字符串末尾开始检索,检索到子字符
    Matcher slashMatcher = Pattern.compile(s).matcher(url);
    int mIdx = 0;
    while(slashMatcher.find()) {
       mIdx++;
       //当"/"符号第i次出现的位置
       if(mIdx == i){
          break;
       }
    }
    return slashMatcher.start();
}

}

0
caoweichen520
caoweichen520 问题数据我以更新 你可以看下
12 个月之前 回复
caoweichen520
caoweichen520 两个问题 第一 有个循环里面没有RXR(皮试单那个) 会报错. 第二RXR后面的字符没有出来 而且他后面还是不规则的
12 个月之前 回复

//str:源字符串 beginIndex:需要索引的特定字符串

//例:searchAllIndex(myHL7string, "RXO");
private static void searchAllIndex(String str, String beginIndex) {
int a = str.indexOf(beginIndex);//*第一个出现的索引位置
while (a != -1) {
System.out.print(a + "\t");
System.out.println(a + "***");
a = str.indexOf(beginIndex, a + 1);//*从这个索引往后开始第一个出现的位置
}
}

0

System.out.println("检查部位:"+jcbw+terser.get("/.OBR(0)-4-2"));

System.out.println("检查部位:"+jcbw+terser.get("/.OBR(1)-4-2"));

System.out.println("检查部位:"+jcbw+terser.get("/.OBR(2)-4-2"));

加括号定数组下标 获取

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
hl7中V2版本的ACK消息的构造
hl7 v2的ack消息即应答消息构造时有几个注意的地方。  首先,我们看下2个ack的例子: Send: MSH|^~\&|NIST_SENDER^^|NIST^^|NIST_RECEIVER^^|NIST^^|20101101160641||ADT^A01^ADT_A01|NIST-101101160641914|P|2.3.1 EVN||20101020 PID||
【原创】用反射实现HL7消息的接受的实现
  /// <summary> /// 将受到的消息进行处理 /// 作者QQ:147777583 /// </summary> public static string ManageReceiveMsg(string msg) { try...
HL7 JAVA解析版本
HL7 2.X解析(JAVA版) Hl7引擎的目标主要是解决将数据按HL7协议的要求标准化,和标准业务的集成和不同系统间标准业务数据的同步。在多年的医院信息化过程中,HL7标准组织和解析最复杂了。本次公开JAVA的
HL7解析 Java
jar包里面包含了:hapi解析HL7的代码范例,所需jar包。亲测可用。《Java版本》
java解析HL7协议报文工具(v24版)
java解析HL7协议报文工具因为项目需要解析HL7协议报文,网上找到的工具都是解析成带位置信息的xml格式或者json格式,然后需要自己根据需要获取的位置来获取信息。而在生成的HL7协议报文的时候也是需要先生成xml或json格式再进行转换。想着希望找到一个直接解析生成类然后直接用的工具。 后来我找到了这个ca.uhn.hapi,能将HL7报文直接解析成相应的类,通过调用:PipeParser.
HL7中文完整版及代码实例
HL7中文完整版pdf文档,还有一个hl7解析代码实例(JAVA版).可以了解hl7代码解析
[HL7_V2.4]HL7消息生成和反射
University Health Network 在上个月发面了HAPI项目,该项目主要是定义好了各个事件类,还有转换成HL7的传输格式和XML格式。官网:http://hl7api.sourceforge.net/index.html  先导入两个基本的jar包: hapi-base-0.6.jar hapi-structures-vXX-0.6.j
HL7消息生成解析
一个自动生成和解析HL7消息的软件,对学习HL7消息有所帮助。
HL7解析(啥都不会的新人向)
hl7 蠢新人向
HL7消息部分笔记
1、关于HL7标准 HL7是HealthLevel7的缩写,主要用于医疗领域不同的系统、应用之间的信息传递。规范各个系统间的信息传递格式。 2、字段含义: Z信息段:     Z信息段是指与HL7第二版标准其它信息段不匹配的临床或病人信息。Z信息段用来接收与HL7标准信息定义不匹配的数据,Z信息段可以插入任何信息。 ADT信息:     最常使用的HL7第二版信息类型是ADT或者允许转...
解析HL7协议
前段时间一个项目中用到了HL7协议,这个协议一般只用在医院的项目中。不与医院合作的一般还都不知道,我自己刚接触这个的时候也是一脸的懵逼,其实仔细看看就能看出点门道,主要是协议,肯定都是有一定标准的。HL7也一样,好像是美国发明的,具体我也不说了,有兴趣的同学可以去看看背景什么的。我们只知道怎么用就行了。毕竟就是个协议。网络传输协议可以分为好多层,物理层、网络层、数据链接层、应用层等。如果有做过工控
HL7 V3消息机制与CDA区别联系
《技术解决方案》中对信息模型采用了HL7 V3标准以及CDA R2标准,HL7 V3消息机制与CDA各有优势,《技术解决方案》并没有明确说明何时采用HL7 V3 消息机制,何时采用CDA R2标准。 HL7 V3 消息格式与CDA R2文档格式的优势对比 消息格式传递的优点 (1)消息可以伴随事件发生的同时传递,这就使得活动发生时的状态可以及时得到传递和表达; (2)消息的传输使.两系统之...
DELPHI解析HL7与创建HL7消息
自己写的HL7消息工具DEMO,组件是在网上下载的,这个组件非免费,对DELPHI的用户有一定的学习帮助
hl7解析的神器,附带注册码
医疗信息服务行业的同学,接触到hl7,刚开始肯定会一头雾水,消息格式摸不清,偶然的情况,我找到了这个神器,hl7所有的标准消息格式一清二楚,解析起来超方便。
【原】[HL7_V2.4] 申请检验检查的ORM_O01消息消息解析 NHapi
[code="C#"] /// /// 将受到的消息进行处理 /// 分解更新到数据库 /// private void ManageReceiveMsg(AsyTcpSocketClient client, string msg) { /* #reg...
有关HL7 的C# 源码
https://github.com/OSEHRA/mdo              C#   http://sourceforge.net/p/nhapi/code/HEAD/tree/NHapi20/                  C#
HL7 TestPanel-windows
HL7消息的结构解析,HL7消息的结构解析,HL7消息的结构解析
HL7体系入门级介绍
HL7的简单介绍1)HL7  缩写于Health Level Seven,是创建于1987年,用来发展独立卫生保健行业的电子交换交换标准,经过多年的发展,HL7已经有多个版本,     目前我们 的集成规范是 基于V2.6版本的2)简单的理解是正如市场上XML,JSON格式比较广泛一样,HL7也是一种数据格式,可以理解为一个字符串,只是这个字符串分为了好几个段而已HL7的符号介绍         ...
HL7v3 RIM 中文版
详细介绍HL7V3标准及其相关技术,具有一定的参考价值
使用NHapi解析hl7
使用NHapi解析hl7
HL7 标准及实现指南 必看的网址
V2: http://hl7book.net/index.php?title=HL7_version_2 包括HL7 的介绍,主要章节,每个版本的变化, 各种语言实现的HL7库,免费HL7工具, 最新的xml schema, 实现指南, IHE中相关章节(PIX),以及 hl7相关blog等等。 HL7 version 2 From Hl7book Jump
[HL7_V2.6]查询患者信息
 查询:QRY_A19 code:import ca.uhn.hl7v2.HL7Exception;import ca.uhn.hl7v2.model.v26.message.QRY_A19;import ca.uhn.hl7v2.model.v26.segment.MSH;import ca.uhn.hl7v2.parser.DefaultXMLParser;impo
HL7协议报文的解析脚本
常跟HL7协议打交道,虽然是文本型协议
HL7 PIX Consumer 消息解析
HL7 PIX Consumer发送的消息和接收消息的解析。HL7 2.3.1 HL7 3.5
医疗环境电子数据交换标准HL7 v3.0的新进展
<br />HL7(health level seven)是基于国际标准化组织(ISO)所公布的网络开放系统互连模型(OSI)第7层(应用层)的医学信息交换协议。它自1987年第一版诞生以来,发展迅速,1988年通过v2.0版,1994年出版v2.2版。这个版本得到了美国国家标准化协会(ANSI)的认可,并逐渐在北美、欧洲、日本和澳大利亚等一些医院中使用。1996年又发布了v2.3版。而v3.0版将于2001年11月发布,这是一个真正面向未来的概念化版本。通过这个版本,我们可以看到HL7发展及未来变化的方向
[HL7_V2.6]查询检查检验XML
观察结果及查询(参考《医疗健康信息传输与交换标准》V2.4_7.33) 查询 QRY_RO2应答 ORF_R04 ------------------------------------------------------------------------------------ 查询 QRY_RO2 codeimport ca.uhn.hl7v2.HL7Ex
HL7 V2 分隔符
Delimiter CharactersCharacterPurpose0x0DMarks the end of each segment.|Composite delimiter.^Sub-composite delimiter.&Sub-sub-composite delimiter.~Separates repeating fields.\Escape character. The foll
消息封装与解析
  程序间达成的某种包含了信息交换的形式和意义的共识称为协议,用来实现特定应用程序的协议叫做应用程序协议。大部分应用程序协议是根据由字段序列组成的离散信息定义的,其中每个字段中都包含了一段以位序列编码(即二进制字节编码,也可以使用基于文本编码的方式,但常用协议如:TCP、UDP、HTTP等在传输数据时,都是以位序列编码的)的特定信息。应用程序协议中明确定义了信息的发送者应该如何排列和解释这些
采用HL7标准的使用C#调用的开源解析库
采用HL7标准的使用C#调用的开源解析库
dcm4che dcm和jpg互转,hl7和xml互转,解析hl7,解析dcm
工作中需要用到处理dicom和hl7两种医疗存储文件,简单记录下遇到的坑,希望能帮到有需要的朋友。首先maven引入dcm4che相关的依赖包(文章末尾列出)1:dicom和jpg互转的代码: public static boolean dcm2jpg(File dcmFile,String jpgFullFilePath) { try { Fil...
[代码积累]解决HL7协议、TCP/IP通讯、16进制转字符串,中文乱码的问题。
最近在做一个流水线的接口,连接的是日立生化和雅培化学发光。流水线软件提供商提供了基于HL7的通讯协议,其要求发发送完整的病人信息。   之前和迈瑞等一些国产仪器做LIS接口时,他们提供的通讯方案,也是只支持网口,并且通讯协议是HL7,之前因为没有强制要求发送或者解析带有中文信息的数据,所以一直都是用ASCII编码,关于乱码的问题也没有处理。   而这一次仪器厂家需要病人的信息,而这些内容大都是
HL7 V2.4中文完整版
HL7 V2.4中文完整版,包括HL7规范中各子系统的规范文件。
DELPHI HL7示例
自己编写的HL7 for Delphi xe7 Demo,用了HL7组件,演示如何创建和解析HL7消息
hHL7V3参考信息模型
The HL7 RIM是一个成熟的关于医疗应用的信息模型,HL7 RIM支持interfaces and system design l 不仅仅为定义messages 使用, 还支持CDR/E.H.R. applications, Structured Documents, templates, rules, etc. l 不仅仅涉及clinical 还覆盖patient administrative, financial, public health, genomics l 不仅仅是一个MDF (message development framework), 还是HDF (health development framework)
HL7 aECG指导文件
HL7 aECG知道实现文档,从官网上下载的,有aECG各部分的详细说明和xml例子
hl7协议 +中英文版+pdf
hl7 协议,医院收费标准, hs互联互通。中英文资料+pdf文件
电子病历、HL7 DICOM3 XML讲解PPT课
电子病历、HL7 DICOM3 XML讲解PPT课
接收并解析消息体传参、解析 json 参数
1.场景:postman 发送了一个 post 请求,如下:   2. 解析方式为用一个 vo 对象来接收 json。把 json 中的每个 key 和 vo 对象的属性对应,让其自动填充。 @Slf4j @RestController @RequestMapping(&quot;/lallla&quot;) public class YunxiaoController { @Autowired...
HL7 V2.4 完整版中文版.zip.7z
HL7 V2.4 完整版中文版 为需要的人们儿提供方便,大家一起学习进步吧
HL7接口文档,很好的HL7开发规范的描述
HL7 是医疗领域的一个通讯标准,这个文档很好的描述了这个标准的开发方式,以及标准的一些说明
文章热词 CAVLC系数矩阵解析 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java循环遍历学习 java版 机器学习