caoweichen520 2018-06-29 06:12 采纳率: 0%
浏览 2392
已采纳

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

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还要对应到相应的药品上
  • 写回答

3条回答 默认 最新

  • 一只努力飞翔的鱼 2018-06-29 09:03
    关注

    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();
    }
    

    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已采纳回答 9月22日

悬赏问题

  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏