/// <summary> /// Fill in additional required information in the DiagnosticImagingReport. /// </summary> /// <param name="report">The DiagnosticImagingReport to complete.</param> /// <param name="metadata">Metadata information.</param> internal static void FillInAdditionalMetadata(DiagnosticImagingReport report, DiagnosticImagingMetadata metadata) { report.SCSContext.OrderDetails.RequesterOrderIdentifier = metadata.RequesterOrderIdentifier; report.SCSContext.OrderDetails.AccessionNumber = metadata.AccessionNumber; // Author report.SCSContext.Author.Participant.Person.Organisation = BaseCDAModel.CreateEmploymentOrganisation(); report.SCSContext.Author.Participant.Person.Organisation.Identifiers = new List <Identifier> { BaseCDAModel.CreateHealthIdentifier(HealthIdentifierType.HPIO, metadata.AuthorOrganisationHpio) }; // Reporting radiologist report.SCSContext.ReportingRadiologist.Role = DiagnosticImagingReport.CreateRole(metadata.ReportingRadiologist.Role, CodingSystem.ANZSCO); report.SCSContext.ReportingRadiologist.Participant.Addresses = metadata.ReportingRadiologist.Address; report.SCSContext.ReportingRadiologist.Participant.ElectronicCommunicationDetails = metadata.ReportingRadiologist.ContactDetails; report.SCSContext.ReportingRadiologist.Participant.Person.Organisation = BaseCDAModel.CreateEmploymentOrganisation(); report.SCSContext.ReportingRadiologist.Participant.Person.Organisation.Identifiers = new List <Identifier> { BaseCDAModel.CreateHealthIdentifier(HealthIdentifierType.HPIO, metadata.ReportingRadiologist.OrganisationHpio) }; }
/// <summary> /// Creates and Hydrates a IParticipationReceivingLaboratory /// /// Note: the data used within this method is intended as a guide and should be replaced. /// </summary> /// <returns>IParticipationReceivingLaboratory</returns> private static IParticipationReportingRadiologist CreateReportingRadiologist(Boolean mandatoryOnly) { // Receiving Laboratory var reportingPathologist = BaseCDAModel.CreateReportingRadiologist(); // Document reportingPathologist > Participant reportingPathologist.Participant = BaseCDAModel.CreateParticipantForReportingRadiologist(); var person = BaseCDAModel.CreatePersonWithOrganisation(); // Participation Period reportingPathologist.ParticipationEndTime = new ISO8601DateTime(DateTime.Now); // Document reportingPathologist > Role reportingPathologist.Role = DiagnosticImagingReport.CreateRole(Occupation.Pathologist); // Document reportingPathologist > Participant > Person or Organisation or Device > Person > Person Name var name = BaseCDAModel.CreatePersonName(); name.FamilyName = "Radiologist"; person.PersonNames = new List <IPersonName> { name }; // Document reportingPathologist > Participant > Entity Identifier person.Identifiers = new List <Identifier> { BaseCDAModel.CreateHealthIdentifier(HealthIdentifierType.HPII, "8003615833334118"), }; // Employment Organisation person.Organisation = BaseCDAModel.CreateEmploymentOrganisation(); person.Organisation.Name = "Hay Bill Hospital"; person.Organisation.NameUsage = OrganisationNameUsage.Other; person.Organisation.Department = "Some department service provider"; person.Organisation.EmploymentType = BaseCDAModel.CreateCodableText("Casual"); person.Organisation.Occupation = DiagnosticImagingReport.CreateRole(Occupation.DiagnosticandInterventionalRadiologist); person.Organisation.PositionInOrganisation = BaseCDAModel.CreateCodableText("Radiologist"); person.Organisation.Identifiers = new List <Identifier> { BaseCDAModel.CreateHealthIdentifier(HealthIdentifierType.HPIO, "8003620833333789"), BaseCDAModel.CreateIdentifier("SampleReportingId", null, null, "1.2.3.4.5.66666", null) }; if (!mandatoryOnly) { // Document reportingPathologist > Participant > Electronic Communication Detail var coms1 = BaseCDAModel.CreateElectronicCommunicationDetail( "0345754566", ElectronicCommunicationMedium.Telephone, ElectronicCommunicationUsage.WorkPlace); var coms2 = BaseCDAModel.CreateElectronicCommunicationDetail( "*****@*****.**", ElectronicCommunicationMedium.Email, ElectronicCommunicationUsage.WorkPlace); reportingPathologist.Participant.ElectronicCommunicationDetails = new List <ElectronicCommunicationDetail> { coms1, coms2 }; // Document reportingPathologist > Participant > Address var address1 = BaseCDAModel.CreateAddress(); address1.AddressPurpose = AddressPurpose.Business; address1.AustralianAddress = BaseCDAModel.CreateAustralianAddress(); var address2 = BaseCDAModel.CreateAddress(); address2.AddressPurpose = AddressPurpose.Business; address2.AustralianAddress = BaseCDAModel.CreateAustralianAddress(); var addressList = new List <IAddress> { address1, address2 }; reportingPathologist.Participant.Addresses = addressList; // Participant > Entitlement 1 var medicarePharmacyApprovalNumberEntitlement = BaseCDAModel.CreateEntitlement(); var code = BaseCDAModel.CreateCodableText("11", CodingSystem.NCTISEntitlementTypeValues, "Medicare Pharmacy Approval Number", null, null); medicarePharmacyApprovalNumberEntitlement.Id = BaseCDAModel.CreateIdentifier("Pharmacy", null, "1234567892", "1.2.36.174030967.1.3.2.1", code); medicarePharmacyApprovalNumberEntitlement.Type = EntitlementType.MedicarePharmacyApprovalNumber; medicarePharmacyApprovalNumberEntitlement.ValidityDuration = BaseCDAModel.CreateInterval("1", TimeUnitOfMeasure.Year); // Participant > Entitlement 2 var medicarePrescriberNumberEntitlement = BaseCDAModel.CreateEntitlement(); var medicarePharmacyApprovalNumberCode = BaseCDAModel.CreateCodableText("10", CodingSystem.NCTISEntitlementTypeValues, "Medicare Prescriber Number", null, null); medicarePrescriberNumberEntitlement.Id = BaseCDAModel.CreateIdentifier("Prescriber", null, "049960CT", "1.2.36.174030967.0.3", medicarePharmacyApprovalNumberCode); medicarePrescriberNumberEntitlement.Type = EntitlementType.MedicarePrescriberNumber; medicarePrescriberNumberEntitlement.ValidityDuration = BaseCDAModel.CreateInterval("1", TimeUnitOfMeasure.Year); reportingPathologist.Participant.Entitlements = new List <Entitlement> { medicarePharmacyApprovalNumberEntitlement, medicarePrescriberNumberEntitlement }; name.GivenNames = new List <string> { "Good" }; name.Titles = new List <string> { "Doctor" }; name.NameUsages = new List <NameUsage> { NameUsage.Legal }; address1.AustralianAddress.UnstructuredAddressLines = new List <string> { "1 Clinician Street" }; address1.AustralianAddress.SuburbTownLocality = "Nehtaville"; address1.AustralianAddress.State = AustralianState.QLD; address1.AustralianAddress.PostCode = "5555"; address1.AustralianAddress.DeliveryPointId = 32568931; address2.AustralianAddress.UnstructuredAddressLines = new List <string> { "2 Clinician Street" }; address2.AustralianAddress.SuburbTownLocality = "Nehtaville"; address2.AustralianAddress.State = AustralianState.QLD; address2.AustralianAddress.PostCode = "5555"; address2.AustralianAddress.DeliveryPointId = 32568931; // Qualifications reportingPathologist.Participant.Qualifications = "FRACGP"; } reportingPathologist.Participant.Person = person; return(reportingPathologist); }