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 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); } }
public HL7Segment(XmlElement segmentElement, HL7Delimeters delim) { delimeters = delim; sName = segmentElement.Name; int iLastPopulatedPos = 0; string sSegment = (sName) + char.ToString(delimeters.getFD()); try { XmlNodeList fieldList = segmentElement.ChildNodes; for (int i = 0; i < fieldList.Count; i++) { if (sName.Equals(MESSAGE_HEADER, StringComparison.CurrentCultureIgnoreCase) && i == 0) { continue; } if (sName.Equals(MESSAGE_HEADER, StringComparison.CurrentCultureIgnoreCase) && i == 1) { sSegment = sSegment + (delimeters.toString().Substring(1)) + char.ToString(delimeters.getFD()); continue; } XmlElement fieldElement = (XmlElement)fieldList[i]; HL7Field field = new HL7Field(fieldElement, delimeters); sSegment = sSegment + field.toString() + char.ToString(delimeters.getFD()); if (field.toString().Length > 0) { iLastPopulatedPos = sSegment.Length - 1; } } deSegment = new HL7DataElement(sSegment.Substring(0, iLastPopulatedPos)); } catch (InvalidFieldException e) { throw new InvalidSegmentException(e.Message); } }