/// <summary> /// Validates this Organisation /// </summary> /// <param name="path">The path to this object as a string</param> /// <param name="messages">the validation messages, these may be added to within this method</param> void IOrganisation.Validate(string path, List <ValidationMessage> messages) { var vb = new ValidationBuilder(path, messages); // Validate Identifiers // optional fields as organisations may not have a HPIO // vb.ArgumentRequiredCheck("Identifiers", Identifiers) if (Identifiers != null) { // Validate each Identifier for (var x = 0; x < Identifiers.Count; x++) { if (Identifiers[x] != null) { Identifiers[x].Validate(vb.Path + string.Format("Identifiers[{0}]", x), vb.Messages); } } } vb.ArgumentRequiredCheck("Name", Name); if (NameUsage.HasValue) { if (NameUsage != null) { vb.NoMatchCheck("NameUsage", NameUsage.Value, OrganisationNameUsage.Undefined); } } }
/// <summary> /// Validates this Organisation /// </summary> /// <param name="path">The path to this object as a string</param> /// <param name="messages">the validation messages, these may be added to within this method</param> public void Validate(string path, List <ValidationMessage> messages) { var vb = new ValidationBuilder(path, messages); vb.ArgumentRequiredCheck(path + "Name", Name); if (NameUsage.HasValue) { if (NameUsage != null) { vb.NoMatchCheck("NameUsage", NameUsage.Value, Enums.OrganisationNameUsage.Undefined); } } }
/// <summary> /// Validates this entitlement /// </summary> /// <param name="path">The path to this object as a string</param> /// <param name="messages">the validation messages to date, these may be added to within this method</param> public void Validate(string path, List <ValidationMessage> messages) { var vb = new ValidationBuilder(path, messages); if (vb.ArgumentRequiredCheck("Id", Id)) { if (Id != null) { Id.Validate(vb.Path + "Id", vb.Messages); } } vb.NoMatchCheck("Type", Type, EntitlementType.Undefined); }
/// <summary> /// Validates this EmploymentOrganisation. /// </summary> /// <param name="path">The path to this object as a string</param> /// <param name="messages">the validation messages, these may be added to within this method</param> void IEmploymentOrganisation.Validate(string path, List <ValidationMessage> messages) { var vb = new ValidationBuilder(path, messages); // Validate Identifiers // This is a mandatory field but has been relaxed to make the CDA library more flexible if (Identifiers != null) { // Check for HPIO //if (!Identifiers.Select(identifiers => identifiers.AssigningAuthorityName).Contains(HealthIdentifierType.HPIO.GetAttributeValue<NameAttribute, string>(x => x.Code))) //{ // vb.AddValidationMessage(vb.PathName, null, "At least one HPI-O Required"); //} // Validate each Identifier for (var x = 0; x < Identifiers.Count; x++) { if (Identifiers[x] != null) { Identifiers[x].Validate(vb.Path + string.Format("Identifiers[{0}]", x), vb.Messages); } } } //vb.ArgumentRequiredCheck("Name", Name); if (NameUsage.HasValue) { vb.NoMatchCheck("NameUsage", NameUsage.Value, OrganisationNameUsage.Undefined); } // Validate EmploymentOrganisation if (EmploymentType != null) { EmploymentType.Validate(vb.Path + "EmploymentType", vb.Messages); } if (Occupation != null) { Occupation.Validate(vb.Path + "Occupation", vb.Messages); } if (PositionInOrganisation != null) { PositionInOrganisation.Validate(vb.Path + "PositionInOrganisation", vb.Messages); } if (Addresses != null) { // Validate each Identifier for (var x = 0; x < Addresses.Count; x++) { if (Addresses[x] != null) { Addresses[x].Validate(vb.Path + string.Format("Addresses[{0}]", x), vb.Messages); } } } if (ElectronicCommunicationDetails != null) { // Validate each Identifier for (var x = 0; x < ElectronicCommunicationDetails.Count; x++) { if (ElectronicCommunicationDetails[x] != null) { ElectronicCommunicationDetails[x].Validate(vb.Path + string.Format("v[{0}]", x), vb.Messages); } } } }