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 住院流水号不存在");
}
}