Index: forgon-tools/src/main/java/com/forgon/tools/HL7ToXmlConverter.java =================================================================== diff -u -r20598 -r21493 --- forgon-tools/src/main/java/com/forgon/tools/HL7ToXmlConverter.java (.../HL7ToXmlConverter.java) (revision 20598) +++ forgon-tools/src/main/java/com/forgon/tools/HL7ToXmlConverter.java (.../HL7ToXmlConverter.java) (revision 21493) @@ -22,19 +22,19 @@ */ public class HL7ToXmlConverter { private static Logger logger = Logger.getLogger(HL7ToXmlConverter.class); - public static String ConvertToXml(String sHL7) { - Document document = ConvertToXmlObject(sHL7); + public static String convertToXml(String sHL7) { + Document document = convertToXmlObject(sHL7); String hl7str = document.asXML(); return hl7str; } - public static String ConvertToXml(Document document) { + public static String convertToXml(Document document) { String hl7str = document.asXML(); return hl7str; } - public static Document ConvertToXmlObject(String sHL7) { - Document document = CreateXmlDoc(); + public static Document convertToXmlObject(String sHL7) { + Document document = createXmlDoc(); // 把HL7分成段 String[] sHL7Lines = sHL7.split("\n"); // 去掉XML的关键字 @@ -46,7 +46,7 @@ if (sHL7Lines[i] != null) { String sHL7Line = sHL7Lines[i]; // 通过/r 或/n 回车符分隔 - String[] sFields = GetMessgeFields(sHL7Line); + String[] sFields = getMessgeFields(sHL7Line); // 为段(一行)创建第一级节点 Element el = document.getRootElement().addElement(sFields[0]); // 循环每一行 @@ -58,17 +58,17 @@ || sFields[a].indexOf('\\') > 0 || sFields[a].indexOf('&') > 0) {// 0:如果这一行有任一分隔符 // 通过~分隔 - String[] sComponents = GetRepetitions(sFields[a]); + String[] sComponents = getRepetitions(sFields[a]); if (sComponents.length > 1) {// 1:如果可以分隔0001^郭靖^体检号^EQ^AND~0002^东一区^病区号^EQ^AND for (int b = 0; b < sComponents.length; b++) { // Element fieldEl1 = el.addElement(sFields[0] + "." + a); - CreateComponents(el, sComponents[b], + createComponents(el, sComponents[b], sFields[0], a, b); } } else {// 1:如果真的只有一个值的 0001^郭靖^体检号^EQ^AND // 为字段创建第二级节点 // Element fieldEl = el.addElement(sFields[0] + "." + a); - CreateComponents(el, sFields[a], sFields[0], a, 0); + createComponents(el, sFields[a], sFields[0], a, 0); // fieldEl.setText(sFields[a]+"11111111111111"); } } @@ -88,25 +88,25 @@ } @SuppressWarnings("unused") - private static Element CreateComponents(final Element el,final String hl7Components, String sField, int a, int b) { + private static Element createComponents(final Element el,final String hl7Components, String sField, int a, int b) { Element componentEl = el.addElement(sField + "." + a); // Element componentEl =el.addElement(sField + "." + a + "." + b); // 通过&分隔 - String[] subComponents = GetSubComponents(hl7Components); + String[] subComponents = getSubComponents(hl7Components); if (subComponents.length > 1) { // 2.如果有字组,一般是没有的。。。 子分组 用&很少用 // 0502^1^0620^10050203&分娩病房 根据文档 xxx&xxx为同一级 int d = 0; // 先按^分类 - String[] sRepetitions = GetComponents(hl7Components); + String[] sRepetitions = getComponents(hl7Components); for (int c = 0; c < sRepetitions.length; c++) { if (!sRepetitions[c].contains("&")) { Element repetitionEl = null; repetitionEl = componentEl.addElement(sField + "." + a + "." + (c + 1)); repetitionEl.setText(sRepetitions[c]); d++; } else {// 若有& 按&分类 - String[] subComponents2 = GetSubComponents(sRepetitions[c]); + String[] subComponents2 = getSubComponents(sRepetitions[c]); for (int j = 0; j < subComponents2.length; j++) { Element repetitionEl = null; repetitionEl = componentEl.addElement(sField + "." + a + "." + (d + 1) + "." + (j + 1)); @@ -116,7 +116,7 @@ } } else {// 2.如果没有了,就用^分组 - String[] sRepetitions = GetComponents(hl7Components); + String[] sRepetitions = getComponents(hl7Components); if (sRepetitions.length > 1) { Element repetitionEl = null; for (int c = 0; c < sRepetitions.length; c++) { @@ -139,7 +139,7 @@ // / // / // / - private static String[] GetMessgeFields(String s) { + private static String[] getMessgeFields(String s) { return s.split("\\|"); } @@ -148,7 +148,7 @@ // / // / // / - private static String[] GetComponents(String s) { + private static String[] getComponents(String s) { return s.split("\\^"); } @@ -157,7 +157,7 @@ // / // / // / - private static String[] GetSubComponents(String s) { + private static String[] getSubComponents(String s) { return s.split("&"); } @@ -166,22 +166,22 @@ // / // / // / - private static String[] GetRepetitions(String s) { + private static String[] getRepetitions(String s) { return s.split("~"); } // / // / 创建XML对象 // / // / - private static Document CreateXmlDoc() { + private static Document createXmlDoc() { Document output = DocumentHelper.createDocument(); // 生成一个接点 Element rootNode = output.addElement("HL7Message"); return output; } - public static String GetText(Document document, String path) { + public static String getText(Document document, String path) { Node node = document.selectSingleNode("HL7Message/" + path); if (node != null) { return node.getText(); @@ -190,7 +190,7 @@ } } - public static String GetText(Document document, String path, int index) { + public static String getText(Document document, String path, int index) { List nodes = document.selectNodes("HL7Message/" + path); if (nodes != null) { return ((Node) nodes.get(index)).getText(); @@ -200,7 +200,7 @@ } - public static List GetTexts(Document document, String path) { + public static List getTexts(Document document, String path) { List nodes = document.selectNodes("HL7Message/" + path); return nodes; @@ -232,7 +232,7 @@ * 返回gery指定格式的hl7 * */ - public static String returnhl7(Document document,String MSA1,String message){ + public static String returnHl7(Document document,String MSA1,String message){ Calendar cal = Calendar.getInstance(); int year = cal.get(Calendar.YEAR);//获取年份 int month=cal.get(Calendar.MONTH)+1;//获取月份 @@ -241,17 +241,17 @@ int minute=cal.get(Calendar.MINUTE);//分 int second=cal.get(Calendar.SECOND);//秒 String date=year+""+(month<10?"0"+month:month)+""+(day<10?"0"+day:day)+""+(hour<10?"0"+hour:hour)+""+(minute<10?"0"+minute:minute)+(second<10?"0"+second:second); - String MSH1=HL7ToXmlConverter.GetText(document, "MSH/MSH.1"); - String MSH2=HL7ToXmlConverter.GetText(document, "MSH/MSH.2"); - String MSH3=HL7ToXmlConverter.GetText(document, "MSH/MSH.3"); - String MSH4=HL7ToXmlConverter.GetText(document, "MSH/MSH.4"); - String MSH5=HL7ToXmlConverter.GetText(document, "MSH/MSH.5"); - String MSH6=HL7ToXmlConverter.GetText(document, "MSH/MSH.6"); + String MSH1=HL7ToXmlConverter.getText(document, "MSH/MSH.1"); + String MSH2=HL7ToXmlConverter.getText(document, "MSH/MSH.2"); + String MSH3=HL7ToXmlConverter.getText(document, "MSH/MSH.3"); + String MSH4=HL7ToXmlConverter.getText(document, "MSH/MSH.4"); + String MSH5=HL7ToXmlConverter.getText(document, "MSH/MSH.5"); + String MSH6=HL7ToXmlConverter.getText(document, "MSH/MSH.6"); String MSH7=date; String MSH9="ACK^A01^ACK"; - String MSH10=HL7ToXmlConverter.GetText(document, "MSH/MSH.10"); - String MSH11=HL7ToXmlConverter.GetText(document, "MSH/MSH.11"); - String MSH12=HL7ToXmlConverter.GetText(document, "MSH/MSH.12"); + String MSH10=HL7ToXmlConverter.getText(document, "MSH/MSH.10"); + String MSH11=HL7ToXmlConverter.getText(document, "MSH/MSH.11"); + String MSH12=HL7ToXmlConverter.getText(document, "MSH/MSH.12"); String MSA2=MSH10; String hl71="MSH"+MSH1+""+MSH2+"|"+MSH3+"|"+MSH4+"|"+MSH5+"|"+MSH6+"|"+MSH7+"||"+MSH9+"|"+MSH10+"|"+MSH11+"|"+MSH12+"\n"+ "MSA"+"|"+MSA1+"|"+MSA2+"|"+message; Index: ssts-webservice/src/main/java/com/goodwillcis/HL7V2ServiceImpl.java =================================================================== diff -u -r21402 -r21493 --- ssts-webservice/src/main/java/com/goodwillcis/HL7V2ServiceImpl.java (.../HL7V2ServiceImpl.java) (revision 21402) +++ ssts-webservice/src/main/java/com/goodwillcis/HL7V2ServiceImpl.java (.../HL7V2ServiceImpl.java) (revision 21493) @@ -27,7 +27,7 @@ public String send(@WebParam(name = "hl7v2") String hl7v2) { logger.warn("Hl7v2=" + hl7v2); // 针对gyey解析hl7v2成xmL - Document document = HL7ToXmlConverter.ConvertToXmlObject(hl7v2); + Document document = HL7ToXmlConverter.convertToXmlObject(hl7v2); // 保存患者入院信息 String returnhl7=savepatientAdmissionInfo(document); //返回 hl7回复信息 @@ -40,12 +40,12 @@ private String savepatientAdmissionInfo(Document document) { String returnhl7=null; // 获得住院流水号 - String hospitalSerialNumber = HL7ToXmlConverter.GetText(document,"PID/PID.2"); + String hospitalSerialNumber = HL7ToXmlConverter.getText(document,"PID/PID.2"); // 获得住院号 - String hospitalNumber = HL7ToXmlConverter.GetText(document,"PID/PID.3/PID.3.1"); + String hospitalNumber = HL7ToXmlConverter.getText(document,"PID/PID.3/PID.3.1"); if (StringUtils.isNotBlank(hospitalSerialNumber)) { // 获得出身日期 - String birthdayyear = HL7ToXmlConverter.GetText(document,"PID/PID.7"); + String birthdayyear = HL7ToXmlConverter.getText(document,"PID/PID.7"); String patientAge = null; if (StringUtils.isNotBlank(birthdayyear)) { try { @@ -57,11 +57,11 @@ patientAge = Age.toString(); } catch (Exception e) { e.printStackTrace(); - return HL7ToXmlConverter.returnhl7(document,"AE","执行患者入院失败:"+e.getMessage()); + return HL7ToXmlConverter.returnHl7(document,"AE","执行患者入院失败:"+e.getMessage()); } } // 获得性别 - String Sex = HL7ToXmlConverter.GetText(document, "PID/PID.8"); + String Sex = HL7ToXmlConverter.getText(document, "PID/PID.8"); String patientSex = null; if (StringUtils.isNotBlank(Sex)) { switch (Sex) { @@ -77,28 +77,28 @@ } } // 获得住院次数 - String Amount = HL7ToXmlConverter.GetText(document, "PV1/PV1.1"); + String Amount = HL7ToXmlConverter.getText(document, "PV1/PV1.1"); Long visitAmount = null; if (StringUtils.isNotBlank(Amount)) { try { visitAmount = Long.parseLong(Amount); } catch (Exception e) { e.printStackTrace(); - return HL7ToXmlConverter.returnhl7(document,"AE","执行患者入院失败:"+e.getMessage()); + return HL7ToXmlConverter.returnHl7(document,"AE","执行患者入院失败:"+e.getMessage()); } } - String Name = HL7ToXmlConverter.GetText(document,"PID/PID.5"); + String Name = HL7ToXmlConverter.getText(document,"PID/PID.5"); String patientName=Name; if(Name.contains("^")){ patientName=Name.substring(Name.indexOf("^")+1); } - String patientIDCard = HL7ToXmlConverter.GetText(document,"PID/PID.19"); - String patientArea = HL7ToXmlConverter.GetText(document,"PV1/PV1.3/PV1.3.1"); - String roomNumber = HL7ToXmlConverter.GetText(document,"PV1/PV1.3/PV1.3.2"); - String bedNumber = HL7ToXmlConverter.GetText(document,"PV1/PV1.3/PV1.3.3"); - String orgunitId = HL7ToXmlConverter.GetText(document,"PV1/PV1.3/PV1.3.4.1"); - String orgunitName = HL7ToXmlConverter.GetText(document,"PV1/PV1.3/PV1.3.4.2"); - String doctorName = HL7ToXmlConverter.GetText(document,"PV1/PV1.7/PV1.7.3"); + String patientIDCard = HL7ToXmlConverter.getText(document,"PID/PID.19"); + String patientArea = HL7ToXmlConverter.getText(document,"PV1/PV1.3/PV1.3.1"); + String roomNumber = HL7ToXmlConverter.getText(document,"PV1/PV1.3/PV1.3.2"); + String bedNumber = HL7ToXmlConverter.getText(document,"PV1/PV1.3/PV1.3.3"); + String orgunitId = HL7ToXmlConverter.getText(document,"PV1/PV1.3/PV1.3.4.1"); + String orgunitName = HL7ToXmlConverter.getText(document,"PV1/PV1.3/PV1.3.4.2"); + String doctorName = HL7ToXmlConverter.getText(document,"PV1/PV1.7/PV1.7.3"); // 设置患者入院信息 PatientAdmissionInfo patientAdmissionInfo = new PatientAdmissionInfo(); try { @@ -118,13 +118,13 @@ patientAdmissionInfo.setTime(new Date()); } catch (Exception e) { e.printStackTrace(); - return HL7ToXmlConverter.returnhl7(document,"AE","执行患者入院失败:"+e.getMessage()); + return HL7ToXmlConverter.returnHl7(document,"AE","执行患者入院失败:"+e.getMessage()); } patientAdmissionInfoManager.save(patientAdmissionInfo); - return HL7ToXmlConverter.returnhl7(document,"AA","执行患者入院成功"); + return HL7ToXmlConverter.returnHl7(document,"AA","执行患者入院成功"); } else { logger.error("xml:PID/PID.2 住院流水号不存在"); - return HL7ToXmlConverter.returnhl7(document,"AE","执行患者入院失败:xml:PID/PID.2 住院流水号不存在"); + return HL7ToXmlConverter.returnHl7(document,"AE","执行患者入院失败:xml:PID/PID.2 住院流水号不存在"); } }