예제 #1
0
 public void FromDelimitedString_WithIncorrectSegmentId_ThrowsArgumentException()
 {
     Assert.Throws <ArgumentException>(() =>
     {
         ISegment hl7Segment = new MsaSegment();
         hl7Segment.FromDelimitedString("MAA|^~&|3|4|5|6");
     });
 }
예제 #2
0
        public void ToDelimitedString_WithAllProperties_ReturnsCorrectlySequencedFields()
        {
            ISegment hl7Segment = new MsaSegment
            {
                AcknowledgmentCode        = "1",
                MessageControlId          = "2",
                TextMessage               = "3",
                ExpectedSequenceNumber    = 4,
                DelayedAcknowledgmentType = "5",
                ErrorCondition            = "6",
                MessageWaitingNumber      = 7,
                MessageWaitingPriority    = "8"
            };

            string expected = "MSA|1|2|3|4|5|6|7|8";
            string actual   = hl7Segment.ToDelimitedString();

            Assert.Equal(expected, actual);
        }
예제 #3
0
        public void FromDelimitedString_WithAllProperties_ReturnsCorrectlyInitializedFields()
        {
            ISegment expected = new MsaSegment
            {
                AcknowledgmentCode        = "1",
                MessageControlId          = "2",
                TextMessage               = "3",
                ExpectedSequenceNumber    = 4,
                DelayedAcknowledgmentType = "5",
                ErrorCondition            = "6",
                MessageWaitingNumber      = 7,
                MessageWaitingPriority    = "8"
            };

            ISegment actual = new MsaSegment();

            actual.FromDelimitedString("MSA|1|2|3|4|5|6|7|8");

            expected.Should().BeEquivalentTo(actual);
        }
 internal void parse(string rawMessage)
 {
     string[] segments = StringUtils.split(rawMessage, '\r');
     if (segments.Length < 4)
     {
         throw new Exception("Invalid message: needs 5 segments");
     }
     MSH = new MshSegment(segments[0]);
     MSA = new MsaSegment(segments[1]);
     QAK = new QakSegment(segments[2]);
     RDF = new RdfSegment(segments[3]);
     if (segments.Length > 4)
     {
         RDT = new RdtSegment[segments.Length - 4];
         for (int rdtIdx = 0, segIdx = 4; segIdx < segments.Length; rdtIdx++, segIdx++)
         {
             RDT[rdtIdx] = new RdtSegment(RDF, segments[segIdx]);
         }
     }
 }