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); }
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); } }