public string get(string sSegmentName, int iSegmentOccurence, int iFieldPos, int iFieldOccurence, int iComponentPos, int iSubComponentPos) { String sString = ""; HL7Segment segment = getHL7Segment(sSegmentName, iSegmentOccurence); sString = segment.toString(); if (iFieldPos > 0) { HL7Field field = segment.getField(iFieldPos); sString = field.toString(); if (iFieldOccurence > 0) { HL7FieldItem fieldItem = field.getFieldItem(iFieldOccurence); sString = fieldItem.toString(); if (iComponentPos > 0) { HL7Component component = fieldItem.getComponent(iComponentPos); sString = component.toString(); if (iSubComponentPos > 0) { HL7SubComponent subComponent = component.getSubComponent(iSubComponentPos); sString = subComponent.toString(); } } } } return(sString); }
private string convertToHL7(XmlDocument xMsg) { String sHL7Message = ""; XmlElement rootElement = (XmlElement)xMsg.FirstChild; XmlElement messageHeaderElement = (XmlElement)rootElement.GetElementsByTagName(MESSAGE_HEADER)[0]; XmlElement fieldSepartorElement = (XmlElement)messageHeaderElement.GetElementsByTagName(FIELD_SERARATOR_FIELD_POS)[0]; XmlElement encodingCharactersElement = (XmlElement)messageHeaderElement.GetElementsByTagName(ENCODING_CHARACTER_FIELD_POS)[0]; string sDel = fieldSepartorElement.InnerText + encodingCharactersElement.InnerText; delimeters = new HL7Delimeters(sDel); XmlNodeList segmentList = rootElement.ChildNodes; int iSegmentTotal = segmentList.Count; for (int i = 0; i < iSegmentTotal; i++) { XmlElement segmentElement = (XmlElement)segmentList[i]; HL7Segment segment = new HL7Segment(segmentElement, delimeters); if (segment.getLength() > 0) { sHL7Message = sHL7Message + segment.toString() + SEGMENT_DELIMETER; } } return(sHL7Message); }
private HL7Segment getHL7Segment(String sSegmentName, int iSegmentOccurence) { String sSegment = ""; HL7Segment seg = null; bool bFound = false; int iSegmentCount = 1; if (iSegmentOccurence == 0) { iSegmentOccurence = 1; } try { int i = 1; do { if (i > deMessage.getLength(SEGMENT_DELIMETER)) { break; } sSegment = deMessage.getString(SEGMENT_DELIMETER, i); seg = new HL7Segment(sSegment, delimeters); if (sSegmentName.Equals(seg.getName())) { if (iSegmentCount == iSegmentOccurence) { bFound = true; break; } iSegmentCount++; } i++; } while(true); } catch (InvalidSegmentException e) { throw new SegmentNotFoundException(e.Message); } catch (UnableToGetStringException e) { throw new SegmentNotFoundException(e.Message); } if (!bFound) { throw new SegmentNotFoundException(""); } else { return(seg); } }
private void initializeHL7(string sHL7Message) { deMessage = new HL7DataElement(sHL7Message.Trim()); try { HL7Segment messageHeader = getMessageHeader(); HL7Field field = messageHeader.getField(MESSAGE_TYPE_POS); HL7FieldItem fieldItem = field.getFieldItem(1); HL7Component messageType = fieldItem.getComponent(1); string sMessageID = ""; try { HL7Component messageID = fieldItem.getComponent(2); sMessageID = messageID.toString(); } catch (ComponentNotFoundException componentnotfoundexception) { } if (sMessageID.Length > 0) { sMessageType = messageType.toString() + "_" + sMessageID; } else { sMessageType = messageType.toString(); } try { field = messageHeader.getField(MESSAGE_ENCODING_POS); sHL7Encoding = field.toString(); sXMLEncoding = "UTF-8";//characterSet.getXML(sHL7Encoding); } catch (FieldNotFoundException e) { //debug("Character set not found in HL7. Using system defaults."); sHL7Encoding = ""; sXMLEncoding = "UTF-8"; } } catch (ComponentNotFoundException e) { throw new InvalidMessageTypeException(e.Message); } catch (FieldNotFoundException e) { throw new MessageTypeNotFoundException(e.Message); } catch (SegmentNotFoundException e) { throw new MessageHeaderNotFoundException(e.Message); } }
private HL7Segment getHL7Segment(int iSegmentIndex) { HL7Segment seg = null; try { String sSegment = deMessage.getString(SEGMENT_DELIMETER, iSegmentIndex); seg = new HL7Segment(sSegment, delimeters); } catch (UnableToGetStringException e) { throw new InvalidSegmentException(e.Message); } return(seg); }
private XmlDocument convertToXML() { xmlMessage = new XmlDocument(); HL7Segment segment = new HL7Segment("", delimeters); XmlElement rootElement = xmlMessage.CreateElement(getType()); for (int i = 1; i <= getLength(); i++) { segment = getHL7Segment(i); if (!segment.getName().Trim().Equals("")) { segment.buildXML(xmlMessage, rootElement); } } xmlMessage.AppendChild(rootElement); return(xmlMessage); }