Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
            }
        }
Exemple #4
0
        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);
            }
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
        }