Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/useRecord/gyey/PatientAdmissionInfo.java =================================================================== diff -u --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/useRecord/gyey/PatientAdmissionInfo.java (revision 0) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/useRecord/gyey/PatientAdmissionInfo.java (revision 20003) @@ -0,0 +1,162 @@ +package com.forgon.disinfectsystem.entity.useRecord.gyey; + +import java.util.Date; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +/** + * gyey病人入院信息 + */ +@Entity +@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) +public class PatientAdmissionInfo { + + private Long id; + /** + * 患者姓名 + */ + private String patientName; + /** + * 年龄 + */ + private String patientAge; + /** + * 性别 + */ + private String patientSex; + /** + * 身份证号 + */ + private String patientIDCard; + /** + * 住院次数 + */ + private Long visitAmount; + /** + * 病区 + */ + private String patientArea; + /** + * 病房 + */ + private String roomNumber; + /** + * 病床 + */ + private String bedNumber; + /** + * 当前科室id + */ + private String orgunitId; + /** + * 当前科室名称 + */ + private String orgunitName; + /** + * 主治医生 + */ + private String doctorName; + /** + * 患者住院id:某一次住院的唯一编号 (内部流水号) + */ + private String hospitalNumber; + /** + * 数据存入日期 + */ + private Date time; + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + public Long getId() { + return id; + } + public void setId(Long id) { + this.id = id; + } + public String getPatientName() { + return patientName; + } + public void setPatientName(String patientName) { + this.patientName = patientName; + } + public String getPatientAge() { + return patientAge; + } + public void setPatientAge(String patientAge) { + this.patientAge = patientAge; + } + public String getPatientSex() { + return patientSex; + } + public void setPatientSex(String patientSex) { + this.patientSex = patientSex; + } + public String getPatientIDCard() { + return patientIDCard; + } + public void setPatientIDCard(String patientIDCard) { + this.patientIDCard = patientIDCard; + } + public Long getVisitAmount() { + return visitAmount; + } + public void setVisitAmount(Long visitAmount) { + this.visitAmount = visitAmount; + } + public String getPatientArea() { + return patientArea; + } + public void setPatientArea(String patientArea) { + this.patientArea = patientArea; + } + public String getRoomNumber() { + return roomNumber; + } + public void setRoomNumber(String roomNumber) { + this.roomNumber = roomNumber; + } + public String getBedNumber() { + return bedNumber; + } + public void setBedNumber(String bedNumber) { + this.bedNumber = bedNumber; + } + public String getOrgunitId() { + return orgunitId; + } + public void setOrgunitId(String orgunitId) { + this.orgunitId = orgunitId; + } + public String getOrgunitName() { + return orgunitName; + } + public void setOrgunitName(String orgunitName) { + this.orgunitName = orgunitName; + } + public String getDoctorName() { + return doctorName; + } + public void setDoctorName(String doctorName) { + this.doctorName = doctorName; + } + public String getHospitalNumber() { + return hospitalNumber; + } + public void setHospitalNumber(String hospitalNumber) { + this.hospitalNumber = hospitalNumber; + } + + public Date getTime() { + return time; + } + public void setTime(Date time) { + this.time = time; + } + +} Index: ssts-webservice/src/main/java/com/goodwillcis/HL7V2ServiceImpl.java =================================================================== diff -u -r19876 -r20003 --- ssts-webservice/src/main/java/com/goodwillcis/HL7V2ServiceImpl.java (.../HL7V2ServiceImpl.java) (revision 19876) +++ ssts-webservice/src/main/java/com/goodwillcis/HL7V2ServiceImpl.java (.../HL7V2ServiceImpl.java) (revision 20003) @@ -1,18 +1,130 @@ package com.goodwillcis; +import java.text.DateFormat; +import java.util.Calendar; +import java.util.Date; import javax.jws.WebParam; +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; +import org.dom4j.Document; +import org.springframework.beans.factory.annotation.Autowired; +import com.forgon.disinfectsystem.diposablegoods.service.DisposableGoodsStorageRecordManager; +import com.forgon.disinfectsystem.entity.useRecord.gyey.PatientAdmissionInfo; +import com.forgon.disinfectsystem.useRecord.service.gyey.PatientAdmissionInfoManager; +import com.forgon.tools.HL7ToXmlConverter; +import com.forgon.tools.MathTools; /** * 病人数据webservice接口服务实现类(广医二院) * @author shuyongfu * @since 2017-09-05 */ public class HL7V2ServiceImpl implements HL7V2Service { - + private static Logger logger = Logger.getLogger(HL7V2ServiceImpl.class); + @Autowired + private PatientAdmissionInfoManager patientAdmissionInfoManager; @Override - public String send(@WebParam(name="hl7v2") String hl7v2) { - // TODO Auto-generated method stub - return hl7v2; + public String send(@WebParam(name = "hl7v2") String hl7v2) { + logger.warn("Hl7v2=" + hl7v2); + // 针对gyey解析hl7v2成xmL + Document document = HL7ToXmlConverter.ConvertToXmlObject(hl7v2); + // 保存患者入院信息 + String returnhl7=savepatientAdmissionInfo(document); + //返回 hl7回复信息 + return returnhl7; } - + + /* + * 保存患者入院信息 + */ + public String savepatientAdmissionInfo(Document document) { + String returnhl7=null; + // 获得住院号 + String hospitalNumber = HL7ToXmlConverter.GetText(document,"PV1/PV1.19"); + if (StringUtils.isNotBlank(hospitalNumber)) { + // 获得出身日期 + String birthdayyear = HL7ToXmlConverter.GetText(document,"PID/PID.7"); + String patientAge = null; + if (StringUtils.isNotBlank(birthdayyear)) { + try { + Long patientbirthday = Long.parseLong(birthdayyear.substring(0, 4)); + Calendar cal = Calendar.getInstance(); + long year = (cal.get(Calendar.YEAR)); + // 计算年龄 + Long Age = MathTools.sub(year, patientbirthday).longValue(); + patientAge = Age.toString(); + } catch (Exception e) { + e.printStackTrace(); + return HL7ToXmlConverter.returnhl7(document,"AE","执行患者入院失败:"+e.getMessage()); + } + } + // 获得性别 + String Sex = HL7ToXmlConverter.GetText(document, "PID/PID.8"); + String patientSex = null; + if (StringUtils.isNotBlank(Sex)) { + switch (Sex) { + case "F": + patientSex = "女"; + break; + case "M": + patientSex = "男"; + break; + default: + patientSex = Sex; + break; + } + } + // 获得住院次数 + 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()); + } + } + 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"); + // 设置患者入院信息 + PatientAdmissionInfo patientAdmissionInfo = new PatientAdmissionInfo(); + try { + patientAdmissionInfo.setPatientName(patientName); + patientAdmissionInfo.setPatientSex(patientSex); + patientAdmissionInfo.setPatientAge(patientAge); + patientAdmissionInfo.setPatientIDCard(patientIDCard); + patientAdmissionInfo.setVisitAmount(visitAmount); + patientAdmissionInfo.setPatientArea(patientArea); + patientAdmissionInfo.setRoomNumber(roomNumber); + patientAdmissionInfo.setBedNumber(bedNumber); + patientAdmissionInfo.setOrgunitId(orgunitId); + patientAdmissionInfo.setOrgunitName(orgunitName); + patientAdmissionInfo.setDoctorName(doctorName); + patientAdmissionInfo.setHospitalNumber(hospitalNumber); + patientAdmissionInfo.setTime(new Date()); + } catch (Exception e) { + e.printStackTrace(); + return HL7ToXmlConverter.returnhl7(document,"AE","执行患者入院失败:"+e.getMessage()); + } + patientAdmissionInfoManager.save(patientAdmissionInfo); + return HL7ToXmlConverter.returnhl7(document,"AA","执行患者入院成功"); + } else { + logger.error("xml:PV1/PV1.19 住院号不存在"); + return HL7ToXmlConverter.returnhl7(document,"AE","执行患者入院失败:xml:PV1/PV1.19 住院号不存在"); + } + + } + } + \ No newline at end of file Index: ssts-web/src/main/resources/spring/projects/gyey/applicationContext-his-gyey.xml =================================================================== diff -u -r16814 -r20003 --- ssts-web/src/main/resources/spring/projects/gyey/applicationContext-his-gyey.xml (.../applicationContext-his-gyey.xml) (revision 16814) +++ ssts-web/src/main/resources/spring/projects/gyey/applicationContext-his-gyey.xml (.../applicationContext-his-gyey.xml) (revision 20003) @@ -41,19 +41,30 @@ class="com.forgon.disinfectsystem.datasynchronization.dwr.DataSynchronizationTableManager"> - - - + + + + - - - + + + + + + + + Index: ssts-webservice/src/main/java/com/goodwillcis/SysUserAndOrgServiceImpl.java =================================================================== diff -u -r19947 -r20003 --- ssts-webservice/src/main/java/com/goodwillcis/SysUserAndOrgServiceImpl.java (.../SysUserAndOrgServiceImpl.java) (revision 19947) +++ ssts-webservice/src/main/java/com/goodwillcis/SysUserAndOrgServiceImpl.java (.../SysUserAndOrgServiceImpl.java) (revision 20003) @@ -20,7 +20,7 @@ */ @Override public String sendOrgData(@WebParam(name="orgData") String orgData){ - logger.debug("orgData=" + orgData); + logger.warn("orgData=" + orgData); return orgData; } @@ -31,7 +31,7 @@ */ @Override public String sendUserData(@WebParam(name="userData") String userData){ - logger.debug("userData=" + userData); + logger.warn("userData=" + userData); return userData; } } Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/gyey/PatientAdmissionInfoManager.java =================================================================== diff -u --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/gyey/PatientAdmissionInfoManager.java (revision 0) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/gyey/PatientAdmissionInfoManager.java (revision 20003) @@ -0,0 +1,10 @@ +package com.forgon.disinfectsystem.useRecord.service.gyey; + +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstanceUseRecord; +import com.forgon.disinfectsystem.entity.useRecord.gyey.PatientAdmissionInfo; +import com.forgon.tools.hibernate.BasePoManager; + +public interface PatientAdmissionInfoManager extends BasePoManager { + + +} Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/gyey/PatientAdmissionInfoManagerImpl.java =================================================================== diff -u --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/gyey/PatientAdmissionInfoManagerImpl.java (revision 0) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/gyey/PatientAdmissionInfoManagerImpl.java (revision 20003) @@ -0,0 +1,13 @@ +package com.forgon.disinfectsystem.useRecord.service.gyey; + +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstanceUseRecord; +import com.forgon.disinfectsystem.entity.useRecord.gyey.PatientAdmissionInfo; +import com.forgon.disinfectsystem.useRecord.service.TousseInstanceUseRecordManager; +import com.forgon.tools.hibernate.BasePoManagerImpl; + +public class PatientAdmissionInfoManagerImpl +extends BasePoManagerImpl +implements PatientAdmissionInfoManager { + +} + Index: ssts-web/src/main/resources/config/gyey/mybatis/FindPatientInfoByHospitalNumMapper.xml =================================================================== diff -u -r18573 -r20003 --- ssts-web/src/main/resources/config/gyey/mybatis/FindPatientInfoByHospitalNumMapper.xml (.../FindPatientInfoByHospitalNumMapper.xml) (revision 18573) +++ ssts-web/src/main/resources/config/gyey/mybatis/FindPatientInfoByHospitalNumMapper.xml (.../FindPatientInfoByHospitalNumMapper.xml) (revision 20003) @@ -13,12 +13,17 @@ h.patientSex as patientSex, h.patientIDCard as patientIDCard, h.doctorName as doctorName, - h.operation as operation - FROM CSSD_HospitalNumber h + h.roomNumber as roomNumber, + h.bedNumber as bedNumber, + h.patientArea as patientArea, + h.visitAmount as visitId + + FROM PatientAdmissionInfo as h WHERE h.hospitalNumber = #{hospitalNum} - ORDER BY h.serialNumber DESC, h.operationTime DESC - ]]> + ]]> + + Index: forgon-tools/src/main/java/com/forgon/tools/HL7ToXmlConverter.java =================================================================== diff -u --- forgon-tools/src/main/java/com/forgon/tools/HL7ToXmlConverter.java (revision 0) +++ forgon-tools/src/main/java/com/forgon/tools/HL7ToXmlConverter.java (revision 20003) @@ -0,0 +1,294 @@ +package com.forgon.tools; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStreamWriter; +import java.io.Writer; +import java.util.Calendar; +import java.util.List; + +import org.apache.log4j.Logger; +import org.dom4j.Document; +import org.dom4j.DocumentHelper; +import org.dom4j.Element; +import org.dom4j.Node; +import org.dom4j.io.OutputFormat; +import org.dom4j.io.XMLWriter; + + +/** + * gyey:患者入院信息 sHL7转Xml + * @author YanWeiNing + * + */ +public class HL7ToXmlConverter { + private static Logger logger = Logger.getLogger(HL7ToXmlConverter.class); + public static String ConvertToXml(String sHL7) { + Document document = ConvertToXmlObject(sHL7); + String hl7str = document.asXML(); + return hl7str; + } + + public static String ConvertToXml(Document document) { + String hl7str = document.asXML(); + return hl7str; + } + + public static Document ConvertToXmlObject(String sHL7) { + Document document = CreateXmlDoc(); + // 把HL7分成段 + String[] sHL7Lines = sHL7.split("\n"); + // 去掉XML的关键字 + for (int i = 0; i < sHL7Lines.length; i++) { + sHL7Lines[i] = sHL7Lines[i].replace("^~\\&", "").replace("MSH","MSH|"); + } + for (int i = 0; i < sHL7Lines.length; i++) { + // 判断是否空行 + if (sHL7Lines[i] != null) { + String sHL7Line = sHL7Lines[i]; + // 通过/r 或/n 回车符分隔 + String[] sFields = GetMessgeFields(sHL7Line); + // 为段(一行)创建第一级节点 + Element el = document.getRootElement().addElement(sFields[0]); + // 循环每一行 + Boolean isMsh = true; + for (int a = 1; a < sFields.length; a++) { + // 是否包括HL7的连接符^~\\& + if (sFields[a].indexOf('^') > 0 + || sFields[a].indexOf('~') > 0 + || sFields[a].indexOf('\\') > 0 + || sFields[a].indexOf('&') > 0) {// 0:如果这一行有任一分隔符 + // 通过~分隔 + 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], + sFields[0], a, b); + } + } else {// 1:如果真的只有一个值的 0001^郭靖^体检号^EQ^AND + // 为字段创建第二级节点 + // Element fieldEl = el.addElement(sFields[0] + "." + a); + CreateComponents(el, sFields[a], sFields[0], a, 0); + // fieldEl.setText(sFields[a]+"11111111111111"); + } + } + else {// 0:如果这一行没有任何分隔符 + // 为字段创建第二级节点 + Element fieldEl = el.addElement(sFields[0] + "." + a); + fieldEl.setText(sFields[a]); + } + } + }// end if + }// end for + // 修改MSH.1 和 MSH.2的值 + document.selectSingleNode("HL7Message/MSH/MSH.1").setText("|"); + document.selectSingleNode("HL7Message/MSH/MSH.2").setText("~^\\&"); + logger.debug("XML="+ document.asXML()); + return document; + } + + @SuppressWarnings("unused") + 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); + if (subComponents.length > 1) { + // 2.如果有字组,一般是没有的。。。 子分组 用&很少用 + // 0502^1^0620^10050203&分娩病房 根据文档 xxx&xxx为同一级 + int d = 0; + // 先按^分类 + 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]); + for (int j = 0; j < subComponents2.length; j++) { + Element repetitionEl = null; + repetitionEl = componentEl.addElement(sField + "." + a + "." + (d + 1) + "." + (j + 1)); + repetitionEl.setText(subComponents2[j]); + } + } + } + } + else {// 2.如果没有了,就用^分组 + String[] sRepetitions = GetComponents(hl7Components); + if (sRepetitions.length > 1) { + Element repetitionEl = null; + for (int c = 0; c < sRepetitions.length; c++) { + repetitionEl = componentEl.addElement(sField + "." + a + + "." + (c + 1)); + // repetitionEl = componentEl.addElement(sField + "." + a + + // "." + b+"."+(c+1)); + repetitionEl.setText(sRepetitions[c]); + } + } else { + componentEl.setText(hl7Components); + } + } + return el; + + } + + // / + // / 通过|分隔 字段 + // / + // / + // / + private static String[] GetMessgeFields(String s) { + return s.split("\\|"); + } + + // / + // / 通过^分隔 组字段 + // / + // / + // / + private static String[] GetComponents(String s) { + return s.split("\\^"); + } + + // / + // / 通过&分隔 子分组组字段 + // / + // / + // / + private static String[] GetSubComponents(String s) { + return s.split("&"); + } + + // / + // / 通过~分隔 重复 + // / + // / + // / + private static String[] GetRepetitions(String s) { + return s.split("~"); + } + + // / + // / 创建XML对象 + // / + // / + private static Document CreateXmlDoc() { + Document output = DocumentHelper.createDocument(); + // 生成一个接点 + Element rootNode = output.addElement("HL7Message"); + return output; + } + + public static String GetText(Document document, String path) { + Node node = document.selectSingleNode("HL7Message/" + path); + if (node != null) { + return node.getText(); + } else { + return null; + } + } + + 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(); + } else { + return null; + } + + } + + public static List GetTexts(Document document, String path) { + List nodes = document.selectNodes("HL7Message/" + path); + return nodes; + + } + + public static void writeDocument(Document document, String filepath) { + try { + // 读取文件 + // FileWriter fileWriter = new FileWriter(filepath); + Writer writer = new OutputStreamWriter(new FileOutputStream( + filepath), "utf-8"); + + // 设置文件编码 + OutputFormat xmlFormat = new OutputFormat(); + xmlFormat.setEncoding("utf-8"); + // 创建写文件方法 + XMLWriter xmlWriter = new XMLWriter(writer, xmlFormat); + // 写入文件 + xmlWriter.write(document); + // 关闭 + xmlWriter.close(); + } catch (IOException e) { + System.out.println("文件没有找到"); + e.printStackTrace(); + } + } + + /** + * 返回gery指定格式的hl7 + * + */ + 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;//获取月份 + int day=cal.get(Calendar.DATE);//获取日 + int hour=cal.get(Calendar.HOUR_OF_DAY);//小时 + 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 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 MSA2=MSH10; + String hl71="MSH"+MSH1+""+MSH2+"|"+MSH3+"|"+MSH4+"|"+MSH5+"|"+MSH6+"|"+MSH7+"||"+MSH9+"|"+MSH10+"|"+MSH11+"|"+MSH12+"\n"+ + "MSA"+"|"+MSA1+"|"+MSA2+"|"+message; + logger.debug("ReturnHl7="+hl71); + return hl71; + } + + + /* + * public static void main(String[] args) { // String myHL7string= + * "MSH|^~\\&|455755610_0100||0200||20110624160404|000|QRY^A19^QRY_A19|0123456001|P|2.6\nQRD|||||||||0001^郭靖^体检号^EQ^AND~0002^东一区^病区号^EQ^AND\nQRF||20110627|20110803" + * ; // String + * myHL7string="PID||547188|547188^2^3^000001&黄石中心医院~000000823~~~|0|"; + * String myHL7string= + * "MSH|^~\\&|HIS|HIS|JHIP|JHIP|20141106143600||ADT^A05^ADT_A05|JHIP201503181524|P|2.4\n" + * + "EVN|A01|20141106143600||||20141106143600\n" + + * "PID||547188|547188^2^3^000001&黄石中心医院~000000823~~~|0|HeYaXian^何亚贤||19840205000000|F|||姚庄镇丁栅村16^<>||^^^^^^13758399084|^^^^^^13758399084||O||33042105120268030002|330421198402052820||||||||||||||||||||河南省郑州市|河南省郑州市高新区|北京嘉和美康信息技术有限公司|软件工程师|B\n" + * + + * "PV1|1|I|0502^2^0620^10050203&分娩病房||||3461^^陈珠凤||||||||||3257^^王建芳|01|10030169||XJ01|||||||||||||||||||||10050203||20141106101712||||||1|V\n" + * + "DG1|1|||fm||A"; + * + * Document document = HL7ToXmlConverter.ConvertToXmlObject(myHL7string); + * + * //获取事件 String eventName = HL7ToXmlConverter.GetText(document, + * "MSH/MSH.9/MSH.9.3"); System.out.println("eventName:"+eventName); + * + * + * // List nodeValue = document.selectNodes("MSH.1"); String nodeValue = + * document.selectSingleNode("HL7Message/MSH/MSH.1").getText(); String + * nodeValue2 = document.selectSingleNode("HL7Message/MSH/MSH.3").getText(); + * // DocumentElement.SelectNodes(path); + * System.out.println(nodeValue+":"+nodeValue2); + * + * + * System.out.println("HL7ToXmlConverter.ConvertToXml(myHL7string)=" + + * HL7ToXmlConverter.ConvertToXml(myHL7string)); + * + * } + */ +} Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/common/CssdUtils.java =================================================================== diff -u -r19986 -r20003 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/common/CssdUtils.java (.../CssdUtils.java) (revision 19986) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/common/CssdUtils.java (.../CssdUtils.java) (revision 20003) @@ -73,6 +73,26 @@ private static Properties prop = null; /** + * 获取器械清洗分类类型(优先取材料实例的,如果没有则取材料定义的). + * @param mi + * @return + */ + public static String getMaterialWashClassifyType(MaterialInstance mi){ + String washClassifyType = ""; + if(mi != null){ + if(StringUtils.isNotBlank(mi.getWashClassifyType())){ + washClassifyType = mi.getWashClassifyType(); + }else{ + MaterialDefinition md = mi.getMaterialDefinition(); + if(md != null && StringUtils.isNotBlank(md.getWashClassifyType())){ + washClassifyType = md.getWashClassifyType(); + } + } + } + return washClassifyType; + } + + /** * 获取回收之前器械包状态 * @param tousseInstance * @return Index: ssts-web/src/main/resources/spring/applicationContext-disinfectsystem-service.xml =================================================================== diff -u -r19799 -r20003 --- ssts-web/src/main/resources/spring/applicationContext-disinfectsystem-service.xml (.../applicationContext-disinfectsystem-service.xml) (revision 19799) +++ ssts-web/src/main/resources/spring/applicationContext-disinfectsystem-service.xml (.../applicationContext-disinfectsystem-service.xml) (revision 20003) @@ -2406,5 +2406,23 @@ + + + + + + + + + + PROPAGATION_REQUIRED + + + + + + \ No newline at end of file