asda12ada 2017-12-03 13:22 采纳率: 0%
浏览 1752
已结题

java 解析hl7 这里面怎么解析循环体呢ORC怎么取出呢

public static void main(String[] args) throws Exception {
String msg = "MSH|^~\&|HIS|JHIP|JHIP|JHIP|20150118160551||ORM^O01^ORM_O01|JHIP201503181524|P|2.4\r"+
"PID||300276|300276~300276~~~|0|WuGuoXiang^吴国祥||19360603000000|M|||其他事业移交直管人员^其他事业移交直管人员"+
"||^^^^^^13429119708|||O^其他||330182D156000005000B4C5828A98E95|330126193606031311||||||||||||0||||||||河南省郑州市|河南省郑州市高"+
"新区|北京嘉和美康信息技术有限公司|软件工程师|B\r"+
"NTE|1|||^^^反复咳嗽气急 8 年,再发 9 天\r"+
"PV1|1|I|A31300^^313027^10082&呼吸内科||||314^^翁伟芳||||||||||134^^沈红卫"+
"|84|10030700||2021||||||||0|||||||||||||10082||20150118144509||||||1|V|127\r"+
"ORC|NW|1000056067|||||^^^^^4||20150118154440|||316^^陈晨|10082^^^^^^^^呼吸内科||||10082^呼吸内科|||136^1\r"+
"OBR|1|1000056067||173544^腹部(肝、胆、脾、胰)^^7^彩色多普勒超声常规检查|4|||||||10149^B 超室|||||||||||^136|7\r"+
"DG1|1|慢性阻塞性肺病||慢性阻塞性肺病||F\r"+
"ORC|NW|1000056067|||||^^^^^4||20150118154440|||316^^陈晨|10082^^^^^^^^呼吸内科||||10082^呼吸内科|||136^1\r"+
"OBR|2|1000056068||173546^泌尿系(双肾、输尿管、膀胱、前列腺、肾上腺)^^7^彩色多普勒超声常规检查|4|||||||10149^B 超室|||||||||||^136|7\r"+
"DG1|1|慢性阻塞性肺病||慢性阻塞性肺病||F\r";

    //patientGender  性别 男  patientName姓名 //如果生日不为空则set年龄   19360603000000
    //departmentCode挂号科室FSK001   *目前固定*
    //PatientType就诊类型100  *默认100  先不取了*
    //residentFlag住院标记 0     对应【患者分类】进行转换
    //patientNo就诊编号    医保卡号 PID18
    //RESERVED_001 可能是电话号码 [PID 14.7]   
    //RESIDENT_NUM住院编号[就诊 ID 或者患者住院 ID PV119]  
    //BED_NUM床位号    PV1 第三个
    //AREA_CODE挂号诊区
    PipeParser pipeParser = new PipeParser();
    Message message = pipeParser.parse(msg);
    Terser terser = new Terser(message);
    String sex=terser.get("/.PID-8").equals("M")?"男":"女";//性别
    System.out.println("性别:"+sex);
    String givenName = terser.get("/.PID-5-2");//姓名
    System.out.println("姓名:"+givenName);
    String birthDate=terser.get("/.PID-7");
    SimpleDateFormat fomater = new SimpleDateFormat("yyyyMMddHHmmss");
    //String age=String.valueOf(BaseUtils.getAge(fomater.parse(birthDate)));//年龄
    //System.out.println("年龄:"+age);
    String ybkh=terser.get("/.PID-3-1");//就诊编号
    System.out.println("医保卡号:"+ybkh);
    String hzfl=terser.get("/.PV1-2");
    String zybj=hzfl.equals("I")?"1":"0";//住院标记
    System.out.println("是否住院:"+zybj);
    String departmentCode="FSK001";//挂号科室
    String PatientType="100";//就诊类型
    //String hospitalUuid = DepartmentCache.get(departmentCode).getHospitalUuid();
    //String hospitalCode = HospitalCache.get(hospitalUuid).getHospitalCode();//医院
    String tel=terser.get("/.PID-13-7");//电话号码
    System.out.println("电话号码:"+tel);
    String zybh=terser.get("/.PV1-19");//住院编号
    System.out.println("住院编号:"+zybh);
    String cwh=terser.get("/.PV1-3-3");//床位号
    System.out.println("床位号:"+cwh);
    String ghzq="FSK001";//挂号诊区
    String jcbw=terser.get("/.OBR-4-1");//检查部位
    System.out.println("检查部位:"+jcbw+terser.get("/.OBR-4-2"));

    String sqdID=terser.get("/.OBR-4");//申请单ID
    System.out.println("申请单ID:"+sqdID);


}
  • 写回答

1条回答 默认 最新

  • Conlen 2018-10-24 09:04
    关注

    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"));

    加括号定数组下标 获取

    评论

报告相同问题?

悬赏问题

  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用