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); }
public HL7Field getField(int iFieldPos) { HL7Field field = null; try { String sField = ""; if (sName.Equals(MESSAGE_HEADER, StringComparison.CurrentCultureIgnoreCase)) { if (iFieldPos == 1) { sField = char.ToString(delimeters.getFD()); } else if (iFieldPos == 2) { sField = delimeters.toString().Substring(1); } else { sField = deSegment.getString(delimeters.getFD(), iFieldPos); } } else { sField = deSegment.getString(delimeters.getFD(), iFieldPos + 1); } field = new HL7Field(sField, delimeters); } catch (UnableToGetStringException e) { throw new FieldNotFoundException(e.Message); } return(field); }
public void buildXML(XmlDocument doc, XmlElement messageElement) { int iNumberFields = getLength(); HL7Field field = new HL7Field("", delimeters); XmlElement segmentElement = doc.CreateElement(sName); messageElement.AppendChild(segmentElement); for (int i = 1; i <= iNumberFields; i++) { XmlElement fieldElement = doc.CreateElement("FIELD." + i.ToString()); segmentElement.AppendChild(fieldElement); if (sName.Equals(MESSAGE_HEADER, StringComparison.CurrentCultureIgnoreCase) && i == 1) { fieldElement.InnerText = char.ToString(delimeters.getFD()); continue; } if (sName.Equals(MESSAGE_HEADER, StringComparison.CurrentCultureIgnoreCase) && i == 2) { fieldElement.InnerText = (delimeters.toString().Substring(1)); } else { field = getField(i); field.buildXML(doc, fieldElement); } } }
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); } }