public static ReviewPatientFields Parse(string val) { if (val.Length == 0) { throw new ArgumentNullException("The provided value string is empty!"); } var rx = new Regex(@"MD:\s*(?<md>.+?)\s*Institution.+Diagnosis:\s*(?<diagnosis>\S*).+Patient:\s*(?<name>\S+).+DOB:\s*(?<dob>\S+).+MRN:\s*(?<mrn>\d*)"); var match = rx.Match(val); if (!match.Success) { return(null); } var name = StripDownName(match.Groups["name"].Value); DateTime.TryParse(match.Groups["dob"].Value, out DateTime dob); var mrn = new PatientMRN(match.Groups["mrn"].Value); var md = StripDownName(match.Groups["md"].Value); var diag = StripDownName(match.Groups["diagnosis"].Value); return(new ReviewPatientFields(name, dob, mrn, md, diag)); }
public ReviewPatientFields(string name, DateTime dob, PatientMRN mrn, string md, string diagnosis) : this() { Name = name; DOB = dob; MRN = mrn; MD = md; Diagnosis = diagnosis; }