//Constructor public Assertion(HL7Message msg, AllCDMCodes acs) { DataTable t = GetCMM(); foreach (Segment s in msg) { string segName = s.value.Substring(0, 3); Console.WriteLine(segName + " segName");//---------------------------debug DataRow[] r = t.Select("Segment = '" + segName + "'"); if (string.IsNullOrEmpty(r.ToString())) { Console.WriteLine("empty"); } else { DataRow[] fieldAndSubfields = t.Select("Segment like '" + segName + "'"); foreach (DataRow item in fieldAndSubfields) { //get CMM field\subfield values try { if (!string.IsNullOrEmpty(s.Fields[3].value)) {//if this field has a value... Console.WriteLine(s.Fields[3].value + " 1 is clearly not null"); if (!string.IsNullOrEmpty(s.Fields[3].SubFields[0].value)) { Console.WriteLine(s.Fields[3].SubFields[0].value + " 2 is clearly not null"); if (!string.IsNullOrEmpty(s.Fields[3].SubFields[0].SubSubFields[0].value)) { Console.WriteLine(s.Fields[3].SubFields[0].SubSubFields[0].value + " 3 is clearly not null"); } } } } catch (ArgumentOutOfRangeException ex) { Console.WriteLine("ArgumentOutOfRangeException ex"); } } } } }
private void BtnValidate_Click(object sender, EventArgs e) { string cdmFilename = txtCDMCodeFile.Text; string HL7FileName = txtHL7MessageFile.Text; string f = File.ReadAllText(HL7FileName); MessageSample messageSample = new MessageSample(f); string[] c = File.ReadAllLines(cdmFilename); AllCDMCodes allCDMCodes = new AllCDMCodes(c); List <string> cdmCodes = allCDMCodes.SegmentsInCDM();//TODO: refactor as a member variable #region Call the validation processes here foreach (HL7Message message in messageSample) { Assertion a = new Assertion(message, allCDMCodes); } //in a OneOf() method compare Assert.HL7Message.component.OneOf(); #endregion }