/// <summary> /// Validates this result group /// </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> void IImagingResultGroup.Validate(string path, List <ValidationMessage> messages) { var resultGroup = (IImagingResultGroup)this; var results = resultGroup.Results; var validationBuilder = new ValidationBuilder(path, messages); if (validationBuilder.ArgumentRequiredCheck("ResultGroupName", ResultGroupName)) { if (ResultGroupName != null) { ResultGroupName.ValidateMandatory(validationBuilder.Path + "ResultGroupName", messages); } } if (validationBuilder.ArgumentRequiredCheck("Results", results)) { if (validationBuilder.RangeCheck("Results", results, 1, Int32.MaxValue)) { if (results != null) { results.ForEach(testResult => testResult.Validate(validationBuilder.Path + "Results", messages)); } } } if (AnatomicalSite != null) { if (AnatomicalSite != null) { AnatomicalSite.Validate(validationBuilder.Path + "AnatomicalSite", messages); } } }
/// <summary> /// Validates this imaging examination result /// </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("ExaminationResultName", ExaminationResultName)) { if (ExaminationResultName != null) { ExaminationResultName.ValidateMandatory(vb.Path + "ExaminationResultName", messages); } } vb.ArgumentRequiredCheck("ResultDateTime", ResultDateTime); if (Modality != null) { Modality.Validate(vb.Path + "Modality", messages); } if (AnatomicalSite != null && AnatomicalSite.Any()) { AnatomicalSite.ForEach(anatomicalSite => anatomicalSite.Validate(vb.Path + "AnatomicalSite", messages)); } if (ExaminationRequestDetails != null) { ExaminationRequestDetails.ForEach(ExaminationRequestDetail => ExaminationRequestDetail.Validate(vb.Path + "ExaminationRequestDetails", messages)); } if (ResultGroup != null && ResultGroup.Any()) { ResultGroup.ForEach(imagingResultGroup => imagingResultGroup.Validate(vb.Path + "ResultGroup", messages)); } }
void IHealthPersonOrOrganisation.Validate(string path, List <ValidationMessage> messages) { var healthPersonOrOrganisation = (IHealthPersonOrOrganisation)this; var person = ((IHealthPersonOrOrganisation)this).Person; var addresses = ((IHealthPersonOrOrganisation)this).Addresses; var vb = new ValidationBuilder(path, messages); // Check for correct Person / Organisation structure if ((person == null && healthPersonOrOrganisation.Organisation == null) || (person != null && healthPersonOrOrganisation.Organisation != null)) { vb.AddValidationMessage(vb.PathName, null, "A Person or a Organisation must be provided"); } else { // A Person if (person != null) { if (vb.ArgumentRequiredCheck("Person", person)) { person.Validate(vb.Path + "Person", vb.Messages); } vb.ArgumentRequiredCheck("Addresses", addresses); } // An Organisation if (healthPersonOrOrganisation.Organisation != null) { if (vb.ArgumentRequiredCheck("Organisation", healthPersonOrOrganisation.Organisation)) { healthPersonOrOrganisation.Organisation.Validate("Organisation", vb.Messages); } } } if (addresses != null) { 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) { for (var x = 0; x < ElectronicCommunicationDetails.Count; x++) { if (ElectronicCommunicationDetails[x] != null) { ElectronicCommunicationDetails[x].Validate( vb.Path + string.Format("ElectronicCommunicationDetails[{0}]", x), vb.Messages); } } } }
/// <summary> /// Validates this Qualifier Code /// </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 validationBuilder = new ValidationBuilder(path, messages); validationBuilder.ArgumentRequiredCheck("Name", Name); validationBuilder.ArgumentRequiredCheck("Value", Value); }
/// <summary> /// Validates this result group /// </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> void ITestResultGroup.Validate(string path, List <ValidationMessage> messages) { var resultGroup = (ITestResultGroup)this; var results = resultGroup.Results; var validationBuilder = new ValidationBuilder(path, messages); if (validationBuilder.ArgumentRequiredCheck("ResultGroupName", ResultGroupName)) { if (ResultGroupName != null) { ResultGroupName.Validate(validationBuilder.Path + "ResultGroupName", messages); } } if (validationBuilder.ArgumentRequiredCheck("Results", results)) { if (validationBuilder.RangeCheck("Results", results, 1, Int32.MaxValue)) { if (results != null) { results.ForEach(testResult => testResult.Validate(validationBuilder.Path + "Results", messages)); } } } if (ResultGroupSpecimenDetail != null) { ResultGroupSpecimenDetail.Validate(validationBuilder.Path + "ResultGroupSpecimenDetail", messages); } }
/// <summary> /// Adds an attachment to the CDA Package. /// </summary> /// <param name="fileName">The name of the file.</param> /// <param name="fileContent">The content of the file.</param> public void AddDocumentAttachment( string fileName, byte[] fileContent) { // Validation var vb = new ValidationBuilder(); vb.ArgumentRequiredCheck("fileName", fileName); vb.ArgumentRequiredCheck("fileContent", fileContent); if (vb.Messages.Count > 0) { throw new ValidationException(vb.Messages); } var file = new CDAPackageFile(); // Indicate that this is a document attachment file.CDAPackageFileType = CDAPackageFile.FileType.Attachment; // User specified fields file.FileName = fileName; file.FileContent = fileContent; if (CDADocumentAttachments == null) { CDADocumentAttachments = new List <CDAPackageFile>(); } CDADocumentAttachments.Add(file); }
/// <summary> /// Validate the SCS Content for the Medicare DVA Funded Service /// </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("DateOfService", DateOfService); if (vb.ArgumentRequiredCheck("MedicareMBSDVAItem", MedicareMBSDVAItem)) { MedicareMBSDVAItem.Validate(path + "MedicareMBSDVAItem", messages); } if (ServiceRequester != null) { ServiceRequester.Validate(path + "ServiceRequester", messages); } if (ServiceProvider != null) { ServiceProvider.Validate(path + "ServiceProvider", messages); } vb.ArgumentRequiredCheck("MedicareDVAFundedServicesDocumentProvenance", MedicareDVAFundedServicesDocumentLink); if (MedicareDVAFundedServicesDocumentLink != null) { MedicareDVAFundedServicesDocumentLink.Validate(vb.Path + "MedicareDVAFundedService", vb.Messages); } }
/// <summary> /// Validate the Content for this Order Details /// </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("Description", Description); vb.ArgumentRequiredCheck("Url", Url); }
/// <summary> /// Validates this RequestedService /// </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); vb.ArgumentRequiredCheck("RequestedServiceDateTime", RequestedServiceDateTime); if (ServiceCommencementWindow != null) { ServiceCommencementWindow.Validate(vb.Path + "ServiceCommencementWindow", vb.Messages); } // var choice1 = new Dictionary<string, object> // { // { "ServiceCommencementWindow", ServiceCommencementWindow }, // { "ServiceScheduled", ServiceScheduled } // }; // // vb.ChoiceCheck(choice1); // if (vb.ArgumentRequiredCheck("RequestedServiceDescription", RequestedServiceDescription)) { if (RequestedServiceDescription != null) { RequestedServiceDescription.ValidateMandatory(vb.Path + "RequestedServiceDescription", vb.Messages); } } vb.ArgumentRequiredCheck("ServiceBookingStatus", ServiceBookingStatus); if (ServiceProvider != null) { ServiceProvider.Validate(vb.Path + "ServiceProvider", vb.Messages); } }
/// <summary> /// Validates this Person as an IPersonPrescriberInstructionRecipient /// </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 IPersonPrescriberInstructionRecipient.Validate(string path, List <ValidationMessage> messages) { var vb = new ValidationBuilder(path, messages); if (vb.ArgumentRequiredCheck("Identifiers", Identifiers)) { vb.RangeCheck("Identifiers", Identifiers, 1, 1); for (var x = 0; x < Identifiers.Count; x++) { Identifiers[x].Validate( vb.Path + string.Format("Identifiers[{0}]", x), vb.Messages); } } if (vb.ArgumentRequiredCheck("PersonNames", PersonNames)) { vb.RangeCheck("PersonNames", PersonNames, 1, 1); if (PersonNames != null) { for (var x = 0; x < PersonNames.Count; x++) { PersonNames[x].Validate(vb.Path + string.Format("PersonName[{0}]", x), vb.Messages); } } } }
/// <summary> /// Validates this Response /// </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 ((Procedures == null && Diagnoses == null && OtherDiagnosisEntries == null) || (Procedures == null || !Procedures.Any()) && (Diagnoses == null || !Diagnoses.Any()) && (OtherDiagnosisEntries == null || !OtherDiagnosisEntries.Any())) { vb.AddValidationMessage("Response Details", null, "Response Details - 'section' tag shall have either an 'PROCEDURE' or 'DIAGNOSIS' or 'OTHER DIAGNOSIS PROCEDURE ENTRY'"); } if (Procedures != null) { Procedures.ForEach(procedure => procedure.Validate(vb.Path + "Procedure", messages)); } if (Diagnoses != null && Diagnoses.Any()) { Diagnoses.ForEach(diagnosis => diagnosis.Validate(vb.Path + "Diagnosis", messages)); } if (OtherDiagnosisEntries != null && OtherDiagnosisEntries.Any()) { for (int x = 0; x < OtherDiagnosisEntries.Count; x++) { vb.ArgumentRequiredCheck(string.Format("OtherDiagnosisEntries[{0}]", x), OtherDiagnosisEntries[x]); } } vb.ArgumentRequiredCheck("ResponseNarrative", ResponseNarrative); }
void IPendingDiagnosticInvestigation.Validate(string path, List <ValidationMessage> messages) { var vb = new ValidationBuilder(path, messages); if (ReasonForService != null) { ReasonForService.Validate(vb.Path + "ReasonForService", vb.Messages); } if (vb.ArgumentRequiredCheck("ServiceDescription", ServiceDescription)) { ServiceDescription.Validate(vb.Path + "ServiceDescription", vb.Messages); } if (ServiceCommencementWindow != null) { ServiceCommencementWindow.Validate(vb.Path + "ServiceCommencementWindow", vb.Messages); } vb.ArgumentRequiredCheck("ServiceBookingStatus", ServiceBookingStatus); if (ServiceProvider != null) { ServiceProvider.Validate(vb.Path + "ServiceProvider", vb.Messages); } vb.ArgumentRequiredCheck("RequestedServiceDateTime", RequestedServiceDateTime); }
void ICurrentService.Validate(string path, List <ValidationMessage> messages) { var vb = new ValidationBuilder(path, messages); if (ServiceBookingStatus != EventTypes.Event) { vb.AddValidationMessage(vb.PathName, string.Empty, "ServiceBookingStatus for CurrentService needs to be an EVENT"); } if (ServiceCategory != null) { ServiceCategory.Validate(vb.Path + "ServiceCategory", vb.Messages); } if (ServiceDescription != null) { ServiceDescription.Validate(vb.Path + "ServiceDescription", vb.Messages); } if (vb.ArgumentRequiredCheck("ServiceProvider", ServiceProvider)) { ServiceProvider.Validate(vb.Path + "ServiceProvider", vb.Messages); } vb.ArgumentRequiredCheck("RequestedServiceDateTime", RequestedServiceDateTime); }
/// <summary> /// Validates this CDA Context /// </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 ValidateWithMandatoryLegalAuthenticator(string path, List <ValidationMessage> messages) { var vb = new ValidationBuilder(path, messages); if (vb.ArgumentRequiredCheck("LegalAuthenticator", LegalAuthenticator)) { LegalAuthenticator.Validate(vb.Path + "LegalAuthenticator", vb.Messages); } if (InformationRecipients != null) { for (var x = 0; x < InformationRecipients.Count; x++) { InformationRecipients[x].Validate(vb.Path + string.Format("InformationRecipients[{0}]", x), vb.Messages); } } if (vb.ArgumentRequiredCheck("Custodian", Custodian)) { if (Custodian != null) { Custodian.Validate(vb.Path + "Custodian", vb.Messages); } } }
/// <summary> /// Validate the SCS Content for the Medicare View Exclusion Statement /// </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("GeneralStatement", GeneralStatement); vb.ArgumentRequiredCheck("SectionTitle", SectionTitle); }
/// <summary> /// Validates this quantity range /// </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 validationBuilder = new ValidationBuilder(path, messages); validationBuilder.ArgumentRequiredCheck("High", High); validationBuilder.ArgumentRequiredCheck("Low", Low); validationBuilder.ArgumentRequiredCheck("Unit", Units); }
/// <summary> /// Validate the CDA Context for Link /// </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("RepositoryIdentifier", RepositoryIdentifier); vb.ArgumentRequiredCheck("DocumentIdentifier", DocumentIdentifier); vb.ArgumentRequiredCheck("TemplateId", TemplateId); }
/// <summary> /// Validates this PhysicalMeasurementBodyMassIndex item /// </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("BodyMassIndex", BodyMassIndex)) { BodyMassIndex.Validate(vb.Path + "BodyMassIndex", vb.Messages); } if (BodyMassIndexReferenceRangeDetails != null) { for (var x = 0; x < BodyMassIndexReferenceRangeDetails.Count; x++) { BodyMassIndexReferenceRangeDetails[x].Validate(vb.Path + string.Format("BodyMassIndexReferenceRangeDetails[{0}]", x), vb.Messages); } } if (Method != null) { Method.Validate(vb.Path + "Method", vb.Messages); } if (InformationProvider != null) { if (InformationProvider is Device) { var device = InformationProvider as Device; device.Validate(vb.Path + "Device", vb.Messages); } // Both types are of type Participation so use the Participant to determin the type if (InformationProvider is Participation) { var informationProviderHealthcareProvider = InformationProvider as IParticipationInformationProviderHealthcareProvider; if (informationProviderHealthcareProvider.Participant != null) { informationProviderHealthcareProvider.Validate(vb.Path + "IParticipationInformationProviderHealthcareProvider", vb.Messages); } var informationProviderNonHealthcareProvider = InformationProvider as IParticipationInformationProviderNonHealthcareProvider; if (informationProviderNonHealthcareProvider.Participant != null) { informationProviderNonHealthcareProvider.Validate(vb.Path + "IParticipationInformationProviderNonHealthcareProvider", vb.Messages); } } } vb.ArgumentRequiredCheck("BodyMassIndexDateTime", BodyMassIndexDateTime); if (vb.ArgumentRequiredCheck("BodyMassIndexInstanceIdentifier", BodyMassIndexInstanceIdentifier)) { BodyMassIndexInstanceIdentifier.Validate(vb.Path + "BodyMassIndexInstanceIdentifier", vb.Messages); } }
/// <summary> /// Validates this Body Weight /// </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("Quantity", Quantity)) { Quantity.Validate(vb.Path + "Quantity", messages); } vb.ArgumentRequiredCheck("BodyWeightObservationTime", BodyWeightObservationTime); }
/// <summary> /// Validates this electronic communication detail /// </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); vb.ArgumentRequiredCheck("Address", Address); if (vb.ArgumentRequiredCheck("Usage", Usage)) { vb.RangeCheck("Usage", Usage, 1, Int32.MaxValue); } }
/// <summary> /// Validates the Achievement /// </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); vb.ArgumentRequiredCheck("AchievementDate", AchievementDate); if (vb.ArgumentRequiredCheck("InformationProvider", InformationProvider)) { InformationProvider.Validate(vb.Path + "InformationProvider", vb.Messages); } }
/// <summary> /// Validates this recomendation /// </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); vb.ArgumentRequiredCheck("TimeFrame", TimeFrame); vb.ArgumentRequiredCheck("Narrative", Narrative); if (vb.ArgumentRequiredCheck("Addressee", Addressee)) { Addressee.Validate(vb.Path + "Addressee", messages); } }
/// <summary> /// Validates this IImmunisation /// </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> void IImmunisation.Validate(string path, List <ValidationMessage> messages) { var vb = new ValidationBuilder(path, messages); vb.ArgumentRequiredCheck("Medicine", Medicine); vb.ArgumentRequiredCheck("DateTime", DateTime); if (Medicine != null) { Medicine.ValidateMandatory(path + ".Medicine", messages); } }
/// <summary> /// Validate the SCS Content for the Australian Organ Donor Register Entry /// </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("DateOfInitialRegistration", DateOfInitialRegistration); vb.ArgumentRequiredCheck("DonationDecision", DonationDecision); if (OrganAndTissueDonationDetails != null) { OrganAndTissueDonationDetails.Validate(path + "OrganAndTissueDonationDetails", messages); } }
/// <summary> /// Validate the Content for this Related Document /// </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 IDocumentDetails.Validate(string path, List <ValidationMessage> messages) { var vb = new ValidationBuilder(path, messages); if (vb.ArgumentRequiredCheck("ExternalData", ExternalData)) { ExternalData.Validate(path + "ExternalData", messages); } if (vb.ArgumentRequiredCheck("DocumentProvenance", DocumentProvenance)) { DocumentProvenance.Validate(path + "DocumentProvenance", messages); } }
/// <summary> /// Validates this IPrescription Item /// </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> void IPCEHRPrescriptionItemView.Validate(string path, List <ValidationMessage> messages) { var vb = new ValidationBuilder(path, messages); vb.ArgumentRequiredCheck("DateTimePrescriptionWritten", DateTimePrescriptionWritten); if (vb.ArgumentRequiredCheck("PrescriptionRecordLink", PrescriptionRecordLink)) { PrescriptionRecordLink.Validate(vb.Path + "PrescriptionRecordLink", vb.Messages); } Validate(path, messages); }
/// <summary> /// Validates this Other Test Result /// </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); vb.ArgumentRequiredCheck("ReportName", ReportName); vb.ArgumentRequiredCheck("ReportContent", ReportContent); if (ReportContent != null) { ReportContent.Validate(path + ".ReportContent", messages); } }
/// <summary> /// Validates this Medication /// </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> void IMedication.Validate(string path, List <ValidationMessage> messages) { var vb = new ValidationBuilder(path, messages); if (vb.ArgumentRequiredCheck("Medicine", Medicine)) { Medicine.ValidateMandatory(vb.Path + "Medicine", vb.Messages); } if (vb.ArgumentRequiredCheck("Directions", Directions)) { Directions.Validate(vb.Path + "Directions", vb.Messages); } }
/// <summary> /// Validate the SCS Content for the Australian Organ Donor Register Details /// </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); if (vb.ArgumentRequiredCheck("AustralianOrganDonorRegisterEntry", AustralianOrganDonorRegisterEntry)) { AustralianOrganDonorRegisterEntry.Validate("AustralianOrganDonorRegisterEntry", messages); } if (vb.ArgumentRequiredCheck("AustralianOrganDonorRegisterDetailsProvenanceLink", AustralianOrganDonorRegisterDetailsDocumentLink)) { AustralianOrganDonorRegisterDetailsDocumentLink.Validate("AustralianOrganDonorRegisterDetailsProvenanceLink", messages); } }
/// <summary> /// Validates this test procedure name /// </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); if (vb.ArgumentRequiredCheck("DocumentTarget", DocumentTarget)) { DocumentTarget.Validate(path + "DocumentTarget", messages); } if (vb.ArgumentRequiredCheck("DocumentDetails", DocumentDetails)) { DocumentDetails.Validate(path + "DocumentDetails", messages); } }