Exemple #1
0
        private static void SetMessageHeader(Model.V251.Message.OML_O21 msg, string messageCode, string messageTriggerEvent, string processingId)
        {
            var msh = msg.MSH;

            Terser.Set(msh, 1, 0, 1, 1, "|");
            Terser.Set(msh, 2, 0, 1, 1, "^~\\&");
            Terser.Set(msh, 7, 0, 1, 1, DateTime.Now.ToString("yyyyMMddHHmmssK"));
            Terser.Set(msh, 9, 0, 1, 1, messageCode);
            Terser.Set(msh, 9, 0, 2, 1, messageTriggerEvent);
            Terser.Set(msh, 10, 0, 1, 1, Guid.NewGuid().ToString());
            Terser.Set(msh, 11, 0, 1, 1, processingId);
            Terser.Set(msh, 12, 0, 1, 1, msg.Version);
        }
Exemple #2
0
        public void GreedyMode()
        {
            var msg = new Model.V251.Message.OML_O21();

            SetMessageHeader(msg, "OML", "O21", "T");

            for (var i = 0; i < 5; i++)
            {
                var orc  = msg.GetORDER(i).ORC;
                var obr4 = msg.GetORDER(i).OBSERVATION_REQUEST.OBR.UniversalServiceIdentifier;

                orc.OrderControl.Value = "NW";
                orc.PlacerOrderNumber.EntityIdentifier.Value = "ORCID1";
                orc.PlacerOrderNumber.NamespaceID.Value      = "HCE";
                orc.PlacerGroupNumber.EntityIdentifier.Value = "grupo";

                obr4.Identifier.Value         = "STDIO1";
                obr4.NameOfCodingSystem.Value = "LOINC";
            }

            // Parse and encode
            var parser = new PipeParser();

            msg = parser.Parse(
                parser.Encode(msg),
                new ParserOptions {
                NonGreedyMode = true
            }) as Model.V251.Message.OML_O21;
            Assert.NotNull(msg);

            for (var i = 0; i < 5; i++)
            {
                var actual = msg.GetORDER(i).ORC.OrderControl.Value;
                Assert.AreEqual("NW", actual);

                actual = msg.GetORDER(i).OBSERVATION_REQUEST.OBR.UniversalServiceIdentifier.Identifier.Value;
                Assert.AreEqual("STDIO1", actual);
            }

            // Now turn off greedy mode
            msg = parser.Parse(
                parser.Encode(msg),
                new ParserOptions {
                NonGreedyMode = false
            }) as Model.V251.Message.OML_O21;
            Assert.NotNull(msg);
            {
                var actual = msg.GetORDER(0).ORC.OrderControl.Value;
                Assert.AreEqual("NW", actual);

                actual = msg.GetORDER(0).OBSERVATION_REQUEST.OBR.UniversalServiceIdentifier.Identifier.Value;
                Assert.AreEqual("STDIO1", actual);
            }

            for (var i = 1; i < 5; i++)
            {
                var actual = msg.GetORDER(i).ORC.OrderControl.Value;
                Assert.IsNull(actual);

                actual = msg.GetORDER(i).OBSERVATION_REQUEST.OBR.UniversalServiceIdentifier.Identifier.Value;
                Assert.IsNull(actual);
            }
        }