/// <summary> /// Test /// </summary> /// <param name="msg"></param> /// <returns></returns> public override ValidationException[] test(NHapi.Base.Model.IMessage msg) { ValidationException[] result = new ValidationException[0]; foreach (MessageFieldMandatoryRuleElement rule in mandatoryRules) { bool flag1 = (rule.Version == "*") || (msg.Version == rule.Version); string structureName = msg.GetStructureName(); string[] sNames = structureName.Split('_'); bool flag2 = (rule.MessageType == "*") || (sNames[0] == rule.MessageType); bool flag3 = (rule.TriggerEvent == "*") || (sNames[1] == rule.TriggerEvent); if (flag1 && flag2 && flag3) { Terser terser = new Terser(msg); string value = terser.Get(rule.FieldIndicator); if (string.IsNullOrEmpty(value)) { result = new ValidationException[1] { new ValidationException(string.Format("Field '{1}' is mandatory.", value, rule.FieldIndicator)) }; } } if (result.Length > 0) { break; } } return(result); }
public void TestSpecialCharacterEntry() { PipeParser parser = new PipeParser(); ORU_R01 oru = new ORU_R01(); oru.MSH.MessageType.MessageType.Value = "ORU"; oru.MSH.MessageType.TriggerEvent.Value = "R01"; oru.MSH.EncodingCharacters.Value = @"^~\&"; oru.MSH.VersionID.VersionID.Value = "2.3.1"; oru.GetPATIENT_RESULT(0).GetORDER_OBSERVATION(0).GetOBSERVATION(0).OBX.ValueType.Value = "FT"; oru.GetPATIENT_RESULT(0).GetORDER_OBSERVATION(0).OBR.SetIDOBR.Value = "1"; NHapi.Base.Model.Varies v = oru.GetPATIENT_RESULT(0).GetORDER_OBSERVATION(0).GetOBSERVATION(0).OBX.GetObservationValue(0); ST text = new ST(oru); text.Value = @"This\.br\is\.br\A Test"; v.Data = text; string encodedData = parser.Encode(oru); Console.WriteLine(encodedData); NHapi.Base.Model.IMessage msg = parser.Parse(encodedData); Console.WriteLine(msg.GetStructureName()); oru = (ORU_R01)msg; FT data = (FT)oru.GetPATIENT_RESULT(0).GetORDER_OBSERVATION(0).GetOBSERVATION(0).OBX.GetObservationValue(0).Data; Assert.AreEqual(@"This\.br\is\.br\A Test", data.Value); }
/// <summary> /// Test /// </summary> /// <param name="msg"></param> /// <returns></returns> public override ValidationException[] test(NHapi.Base.Model.IMessage msg) { ValidationException[] result = new ValidationException[0]; foreach (MessageRegExRuleElement rule in regexRules) { bool flag1 = (rule.Version == "*") || (msg.Version == rule.Version); string structureName = msg.GetStructureName(); string[] sNames = structureName.Split('_'); bool flag2 = (rule.MessageType == "*") || (sNames[0] == rule.MessageType); bool flag3 = (rule.TriggerEvent == "*") || (sNames[1] == rule.TriggerEvent); if (flag1 && flag2 && flag3) { Terser terser = new Terser(msg); string value = terser.Get(rule.FieldIndicator); if ((value == null) && !rule.AllowNull) { result = new ValidationException[1] { new ValidationException(string.Format("Value in '{0}' may not be null.", value)) }; } else if ((value != null) && !Regex.IsMatch(value, rule.RegEx)) { result = new ValidationException[1] { new ValidationException(string.Format("Value '{0}' in '{1}' doesn't match regex '{2}'.", value, rule.FieldIndicator, rule.RegEx)) }; } } if (result.Count() > 0) { break; } } return(result); }