001package org.hl7.fhir.convertors.conv40_50.resources40_50;
002
003import java.util.Arrays;
004
005import org.hl7.fhir.convertors.advisors.impl.BaseAdvisor_40_50;
006import org.hl7.fhir.convertors.context.ConversionContext40_50;
007import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Code40_50;
008import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Id40_50;
009import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Uri40_50;
010import org.hl7.fhir.convertors.conv40_50.datatypes40_50.special40_50.Extension40_50;
011import org.hl7.fhir.convertors.conv40_50.datatypes40_50.special40_50.Meta40_50;
012import org.hl7.fhir.convertors.conv40_50.datatypes40_50.special40_50.Narrative40_50;
013import org.hl7.fhir.exceptions.FHIRException;
014import org.hl7.fhir.r4.model.Basic;
015
016public class Resource40_50 {
017
018  public final BaseAdvisor_40_50 advisor;
019
020  public Resource40_50(BaseAdvisor_40_50 advisor) {
021    this.advisor = advisor;
022  }
023
024  public void copyResource(org.hl7.fhir.r4.model.Resource src, org.hl7.fhir.r5.model.Resource tgt) throws FHIRException {
025    if (src.hasId()) tgt.setIdElement(Id40_50.convertId(src.getIdElement()));
026    if (src.hasMeta()) tgt.setMeta(Meta40_50.convertMeta(src.getMeta()));
027    if (src.hasImplicitRules()) tgt.setImplicitRulesElement(Uri40_50.convertUri(src.getImplicitRulesElement()));
028    if (src.hasLanguage()) tgt.setLanguageElement(Code40_50.convertCode(src.getLanguageElement()));
029  }
030
031  public void copyResource(org.hl7.fhir.r5.model.Resource src, org.hl7.fhir.r4.model.Resource tgt) throws FHIRException {
032    if (src.hasId()) tgt.setIdElement(Id40_50.convertId(src.getIdElement()));
033    if (src.hasMeta()) tgt.setMeta(Meta40_50.convertMeta(src.getMeta()));
034    if (src.hasImplicitRules()) tgt.setImplicitRulesElement(Uri40_50.convertUri(src.getImplicitRulesElement()));
035    if (src.hasLanguage()) tgt.setLanguageElement(Code40_50.convertCode(src.getLanguageElement()));
036  }
037
038  public org.hl7.fhir.r5.model.Resource convertResource(org.hl7.fhir.r4.model.Resource src) throws FHIRException {
039    if (src == null) return null;
040    if (src instanceof org.hl7.fhir.r4.model.Parameters)
041      return Parameters40_50.convertParameters((org.hl7.fhir.r4.model.Parameters) src);
042    if (src instanceof org.hl7.fhir.r4.model.Account)
043      return Account40_50.convertAccount((org.hl7.fhir.r4.model.Account) src);
044    if (src instanceof org.hl7.fhir.r4.model.ActivityDefinition)
045      return ActivityDefinition40_50.convertActivityDefinition((org.hl7.fhir.r4.model.ActivityDefinition) src);
046    if (src instanceof org.hl7.fhir.r4.model.AllergyIntolerance)
047      return AllergyIntolerance40_50.convertAllergyIntolerance((org.hl7.fhir.r4.model.AllergyIntolerance) src);
048    if (src instanceof org.hl7.fhir.r4.model.Appointment)
049      return Appointment40_50.convertAppointment((org.hl7.fhir.r4.model.Appointment) src);
050    if (src instanceof org.hl7.fhir.r4.model.AppointmentResponse)
051      return AppointmentResponse40_50.convertAppointmentResponse((org.hl7.fhir.r4.model.AppointmentResponse) src);
052    if (src instanceof org.hl7.fhir.r4.model.AuditEvent)
053      return AuditEvent40_50.convertAuditEvent((org.hl7.fhir.r4.model.AuditEvent) src);
054    if (src instanceof org.hl7.fhir.r4.model.Basic) {
055      org.hl7.fhir.r4.model.Basic basic = (Basic) src;
056      if (basic.getCode().hasCoding("http://hl7.org/fhir/fhir-types", "ActorDefinition")) {
057        return ActorDefinition40_50.convertActorDefinition((org.hl7.fhir.r4.model.Basic) src);
058      } else if (basic.getCode().hasCoding("http://hl7.org/fhir/fhir-types", "Requirements")) {
059        return Requirements40_50.convertRequirements((org.hl7.fhir.r4.model.Basic) src);
060      } else if (basic.getCode().hasCoding("http://hl7.org/fhir/fhir-types", "TestPlan")) {
061        return TestPlan40_50.convertTestPlan((org.hl7.fhir.r4.model.Basic) src);
062      } else if (basic.getCode().hasCoding("http://hl7.org/fhir/fhir-types", "SubscriptionTopic")) {
063        return SubscriptionTopic40_50.convertSubscriptionTopic((org.hl7.fhir.r4.model.Basic) src);
064      } else {
065        return Basic40_50.convertBasic((org.hl7.fhir.r4.model.Basic) src);
066      }
067    }
068    if (src instanceof org.hl7.fhir.r4.model.Binary)
069      return Binary40_50.convertBinary((org.hl7.fhir.r4.model.Binary) src);
070    if (src instanceof org.hl7.fhir.r4.model.BiologicallyDerivedProduct)
071      return BiologicallyDerivedProduct40_50.convertBiologicallyDerivedProduct((org.hl7.fhir.r4.model.BiologicallyDerivedProduct) src);
072    if (src instanceof org.hl7.fhir.r4.model.BodyStructure)
073      return BodyStructure40_50.convertBodyStructure((org.hl7.fhir.r4.model.BodyStructure) src);
074    if (src instanceof org.hl7.fhir.r4.model.Bundle)
075      return Bundle40_50.convertBundle((org.hl7.fhir.r4.model.Bundle) src);
076    if (src instanceof org.hl7.fhir.r4.model.CapabilityStatement)
077      return CapabilityStatement40_50.convertCapabilityStatement((org.hl7.fhir.r4.model.CapabilityStatement) src);
078    if (src instanceof org.hl7.fhir.r4.model.CarePlan)
079      return CarePlan40_50.convertCarePlan((org.hl7.fhir.r4.model.CarePlan) src);
080    if (src instanceof org.hl7.fhir.r4.model.CareTeam)
081      return CareTeam40_50.convertCareTeam((org.hl7.fhir.r4.model.CareTeam) src);
082    if (src instanceof org.hl7.fhir.r4.model.ChargeItem)
083      return ChargeItem40_50.convertChargeItem((org.hl7.fhir.r4.model.ChargeItem) src);
084    if (src instanceof org.hl7.fhir.r4.model.ChargeItemDefinition)
085      return ChargeItemDefinition40_50.convertChargeItemDefinition((org.hl7.fhir.r4.model.ChargeItemDefinition) src);
086    if (src instanceof org.hl7.fhir.r4.model.Claim) return Claim40_50.convertClaim((org.hl7.fhir.r4.model.Claim) src);
087    if (src instanceof org.hl7.fhir.r4.model.ClaimResponse)
088      return ClaimResponse40_50.convertClaimResponse((org.hl7.fhir.r4.model.ClaimResponse) src);
089    if (src instanceof org.hl7.fhir.r4.model.ClinicalImpression)
090      return ClinicalImpression40_50.convertClinicalImpression((org.hl7.fhir.r4.model.ClinicalImpression) src);
091    if (src instanceof org.hl7.fhir.r4.model.CodeSystem)
092      return CodeSystem40_50.convertCodeSystem((org.hl7.fhir.r4.model.CodeSystem) src);
093    if (src instanceof org.hl7.fhir.r4.model.Communication)
094      return Communication40_50.convertCommunication((org.hl7.fhir.r4.model.Communication) src);
095    if (src instanceof org.hl7.fhir.r4.model.CommunicationRequest)
096      return CommunicationRequest40_50.convertCommunicationRequest((org.hl7.fhir.r4.model.CommunicationRequest) src);
097    if (src instanceof org.hl7.fhir.r4.model.CompartmentDefinition)
098      return CompartmentDefinition40_50.convertCompartmentDefinition((org.hl7.fhir.r4.model.CompartmentDefinition) src);
099    if (src instanceof org.hl7.fhir.r4.model.Composition)
100      return Composition40_50.convertComposition((org.hl7.fhir.r4.model.Composition) src);
101    if (src instanceof org.hl7.fhir.r4.model.ConceptMap)
102      return ConceptMap40_50.convertConceptMap((org.hl7.fhir.r4.model.ConceptMap) src);
103    if (src instanceof org.hl7.fhir.r4.model.Condition)
104      return Condition40_50.convertCondition((org.hl7.fhir.r4.model.Condition) src);
105    if (src instanceof org.hl7.fhir.r4.model.Consent)
106      return Consent40_50.convertConsent((org.hl7.fhir.r4.model.Consent) src);
107    if (src instanceof org.hl7.fhir.r4.model.Contract)
108      return Contract40_50.convertContract((org.hl7.fhir.r4.model.Contract) src);
109    if (src instanceof org.hl7.fhir.r4.model.Coverage)
110      return Coverage40_50.convertCoverage((org.hl7.fhir.r4.model.Coverage) src);
111    if (src instanceof org.hl7.fhir.r4.model.CoverageEligibilityRequest)
112      return CoverageEligibilityRequest40_50.convertCoverageEligibilityRequest((org.hl7.fhir.r4.model.CoverageEligibilityRequest) src);
113    if (src instanceof org.hl7.fhir.r4.model.DetectedIssue)
114      return DetectedIssue40_50.convertDetectedIssue((org.hl7.fhir.r4.model.DetectedIssue) src);
115    if (src instanceof org.hl7.fhir.r4.model.Device)
116      return Device40_50.convertDevice((org.hl7.fhir.r4.model.Device) src);
117    if (src instanceof org.hl7.fhir.r4.model.DeviceDefinition)
118      return DeviceDefinition40_50.convertDeviceDefinition((org.hl7.fhir.r4.model.DeviceDefinition) src);
119    if (src instanceof org.hl7.fhir.r4.model.DeviceMetric)
120      return DeviceMetric40_50.convertDeviceMetric((org.hl7.fhir.r4.model.DeviceMetric) src);
121    if (src instanceof org.hl7.fhir.r4.model.DeviceRequest)
122      return DeviceRequest40_50.convertDeviceRequest((org.hl7.fhir.r4.model.DeviceRequest) src);
123    if (src instanceof org.hl7.fhir.r4.model.DeviceUseStatement)
124      return DeviceUseStatement40_50.convertDeviceUseStatement((org.hl7.fhir.r4.model.DeviceUseStatement) src);
125    if (src instanceof org.hl7.fhir.r4.model.DiagnosticReport)
126      return DiagnosticReport40_50.convertDiagnosticReport((org.hl7.fhir.r4.model.DiagnosticReport) src);
127//    if (src instanceof org.hl7.fhir.r4.model.DocumentManifest)
128//      return DocumentManifest40_50.convertDocumentManifest((org.hl7.fhir.r4.model.DocumentManifest) src);
129    if (src instanceof org.hl7.fhir.r4.model.DocumentReference)
130      return DocumentReference40_50.convertDocumentReference((org.hl7.fhir.r4.model.DocumentReference) src);
131    if (src instanceof org.hl7.fhir.r4.model.Encounter)
132      return Encounter40_50.convertEncounter((org.hl7.fhir.r4.model.Encounter) src);
133    if (src instanceof org.hl7.fhir.r4.model.Endpoint)
134      return Endpoint40_50.convertEndpoint((org.hl7.fhir.r4.model.Endpoint) src);
135    if (src instanceof org.hl7.fhir.r4.model.EnrollmentRequest)
136      return EnrollmentRequest40_50.convertEnrollmentRequest((org.hl7.fhir.r4.model.EnrollmentRequest) src);
137    if (src instanceof org.hl7.fhir.r4.model.EpisodeOfCare)
138      return EpisodeOfCare40_50.convertEpisodeOfCare((org.hl7.fhir.r4.model.EpisodeOfCare) src);
139    if (src instanceof org.hl7.fhir.r4.model.EventDefinition)
140      return EventDefinition40_50.convertEventDefinition((org.hl7.fhir.r4.model.EventDefinition) src);
141    if (src instanceof org.hl7.fhir.r4.model.ExampleScenario)
142      return ExampleScenario40_50.convertExampleScenario((org.hl7.fhir.r4.model.ExampleScenario) src);
143    if (src instanceof org.hl7.fhir.r4.model.ExplanationOfBenefit)
144      return ExplanationOfBenefit40_50.convertExplanationOfBenefit((org.hl7.fhir.r4.model.ExplanationOfBenefit) src);
145    if (src instanceof org.hl7.fhir.r4.model.FamilyMemberHistory)
146      return FamilyMemberHistory40_50.convertFamilyMemberHistory((org.hl7.fhir.r4.model.FamilyMemberHistory) src);
147    if (src instanceof org.hl7.fhir.r4.model.Flag) return Flag40_50.convertFlag((org.hl7.fhir.r4.model.Flag) src);
148    if (src instanceof org.hl7.fhir.r4.model.Goal) return Goal40_50.convertGoal((org.hl7.fhir.r4.model.Goal) src);
149    if (src instanceof org.hl7.fhir.r4.model.GraphDefinition)
150      return GraphDefinition40_50.convertGraphDefinition((org.hl7.fhir.r4.model.GraphDefinition) src);
151    if (src instanceof org.hl7.fhir.r4.model.Group) return Group40_50.convertGroup((org.hl7.fhir.r4.model.Group) src);
152    if (src instanceof org.hl7.fhir.r4.model.GuidanceResponse)
153      return GuidanceResponse40_50.convertGuidanceResponse((org.hl7.fhir.r4.model.GuidanceResponse) src);
154    if (src instanceof org.hl7.fhir.r4.model.HealthcareService)
155      return HealthcareService40_50.convertHealthcareService((org.hl7.fhir.r4.model.HealthcareService) src);
156    if (src instanceof org.hl7.fhir.r4.model.ImagingStudy)
157      return ImagingStudy40_50.convertImagingStudy((org.hl7.fhir.r4.model.ImagingStudy) src);
158    if (src instanceof org.hl7.fhir.r4.model.Immunization)
159      return Immunization40_50.convertImmunization((org.hl7.fhir.r4.model.Immunization) src);
160    if (src instanceof org.hl7.fhir.r4.model.ImmunizationEvaluation)
161      return ImmunizationEvaluation40_50.convertImmunizationEvaluation((org.hl7.fhir.r4.model.ImmunizationEvaluation) src);
162    if (src instanceof org.hl7.fhir.r4.model.ImmunizationRecommendation)
163      return ImmunizationRecommendation40_50.convertImmunizationRecommendation((org.hl7.fhir.r4.model.ImmunizationRecommendation) src);
164    if (src instanceof org.hl7.fhir.r4.model.ImplementationGuide)
165      return ImplementationGuide40_50.convertImplementationGuide((org.hl7.fhir.r4.model.ImplementationGuide) src);
166    if (src instanceof org.hl7.fhir.r4.model.InsurancePlan)
167      return InsurancePlan40_50.convertInsurancePlan((org.hl7.fhir.r4.model.InsurancePlan) src);
168    if (src instanceof org.hl7.fhir.r4.model.Invoice)
169      return Invoice40_50.convertInvoice((org.hl7.fhir.r4.model.Invoice) src);
170    if (src instanceof org.hl7.fhir.r4.model.Library)
171      return Library40_50.convertLibrary((org.hl7.fhir.r4.model.Library) src);
172    if (src instanceof org.hl7.fhir.r4.model.Linkage)
173      return Linkage40_50.convertLinkage((org.hl7.fhir.r4.model.Linkage) src);
174    if (src instanceof org.hl7.fhir.r4.model.ListResource)
175      return ListResource40_50.convertListResource((org.hl7.fhir.r4.model.ListResource) src);
176    if (src instanceof org.hl7.fhir.r4.model.Location)
177      return Location40_50.convertLocation((org.hl7.fhir.r4.model.Location) src);
178    if (src instanceof org.hl7.fhir.r4.model.Measure)
179      return Measure40_50.convertMeasure((org.hl7.fhir.r4.model.Measure) src);
180    if (src instanceof org.hl7.fhir.r4.model.MeasureReport)
181      return MeasureReport40_50.convertMeasureReport((org.hl7.fhir.r4.model.MeasureReport) src);
182    if (src instanceof org.hl7.fhir.r4.model.Media) return Media40_50.convertMedia((org.hl7.fhir.r4.model.Media) src);
183    if (src instanceof org.hl7.fhir.r4.model.Medication)
184      return Medication40_50.convertMedication((org.hl7.fhir.r4.model.Medication) src);
185    if (src instanceof org.hl7.fhir.r4.model.MedicationAdministration)
186      return MedicationAdministration40_50.convertMedicationAdministration((org.hl7.fhir.r4.model.MedicationAdministration) src);
187    if (src instanceof org.hl7.fhir.r4.model.MedicationDispense)
188      return MedicationDispense40_50.convertMedicationDispense((org.hl7.fhir.r4.model.MedicationDispense) src);
189    if (src instanceof org.hl7.fhir.r4.model.MedicationKnowledge)
190      return MedicationKnowledge40_50.convertMedicationKnowledge((org.hl7.fhir.r4.model.MedicationKnowledge) src);
191    if (src instanceof org.hl7.fhir.r4.model.MedicationRequest)
192      return MedicationRequest40_50.convertMedicationRequest((org.hl7.fhir.r4.model.MedicationRequest) src);
193    if (src instanceof org.hl7.fhir.r4.model.MedicationStatement)
194      return MedicationStatement40_50.convertMedicationStatement((org.hl7.fhir.r4.model.MedicationStatement) src);
195    if (src instanceof org.hl7.fhir.r4.model.MessageDefinition)
196      return MessageDefinition40_50.convertMessageDefinition((org.hl7.fhir.r4.model.MessageDefinition) src);
197    if (src instanceof org.hl7.fhir.r4.model.MessageHeader)
198      return MessageHeader40_50.convertMessageHeader((org.hl7.fhir.r4.model.MessageHeader) src);
199    if (src instanceof org.hl7.fhir.r4.model.NamingSystem)
200      return NamingSystem40_50.convertNamingSystem((org.hl7.fhir.r4.model.NamingSystem) src);
201    if (src instanceof org.hl7.fhir.r4.model.NutritionOrder)
202      return NutritionOrder40_50.convertNutritionOrder((org.hl7.fhir.r4.model.NutritionOrder) src);
203    if (src instanceof org.hl7.fhir.r4.model.Observation)
204      return Observation40_50.convertObservation((org.hl7.fhir.r4.model.Observation) src);
205    if (src instanceof org.hl7.fhir.r4.model.ObservationDefinition)
206      return ObservationDefinition40_50.convertObservationDefinition((org.hl7.fhir.r4.model.ObservationDefinition) src);
207    if (src instanceof org.hl7.fhir.r4.model.OperationDefinition)
208      return OperationDefinition40_50.convertOperationDefinition((org.hl7.fhir.r4.model.OperationDefinition) src);
209    if (src instanceof org.hl7.fhir.r4.model.OperationOutcome)
210      return OperationOutcome40_50.convertOperationOutcome((org.hl7.fhir.r4.model.OperationOutcome) src);
211    if (src instanceof org.hl7.fhir.r4.model.Organization)
212      return Organization40_50.convertOrganization((org.hl7.fhir.r4.model.Organization) src);
213    if (src instanceof org.hl7.fhir.r4.model.OrganizationAffiliation)
214      return OrganizationAffiliation40_50.convertOrganizationAffiliation((org.hl7.fhir.r4.model.OrganizationAffiliation) src);
215    if (src instanceof org.hl7.fhir.r4.model.Patient)
216      return Patient40_50.convertPatient((org.hl7.fhir.r4.model.Patient) src);
217    if (src instanceof org.hl7.fhir.r4.model.PaymentNotice)
218      return PaymentNotice40_50.convertPaymentNotice((org.hl7.fhir.r4.model.PaymentNotice) src);
219    if (src instanceof org.hl7.fhir.r4.model.Person)
220      return Person40_50.convertPerson((org.hl7.fhir.r4.model.Person) src);
221    if (src instanceof org.hl7.fhir.r4.model.PlanDefinition)
222      return PlanDefinition40_50.convertPlanDefinition((org.hl7.fhir.r4.model.PlanDefinition) src);
223    if (src instanceof org.hl7.fhir.r4.model.Practitioner)
224      return Practitioner40_50.convertPractitioner((org.hl7.fhir.r4.model.Practitioner) src);
225    if (src instanceof org.hl7.fhir.r4.model.PractitionerRole)
226      return PractitionerRole40_50.convertPractitionerRole((org.hl7.fhir.r4.model.PractitionerRole) src);
227    if (src instanceof org.hl7.fhir.r4.model.Procedure)
228      return Procedure40_50.convertProcedure((org.hl7.fhir.r4.model.Procedure) src);
229    if (src instanceof org.hl7.fhir.r4.model.Provenance)
230      return Provenance40_50.convertProvenance((org.hl7.fhir.r4.model.Provenance) src);
231    if (src instanceof org.hl7.fhir.r4.model.Questionnaire)
232      return Questionnaire40_50.convertQuestionnaire((org.hl7.fhir.r4.model.Questionnaire) src);
233    if (src instanceof org.hl7.fhir.r4.model.QuestionnaireResponse)
234      return QuestionnaireResponse40_50.convertQuestionnaireResponse((org.hl7.fhir.r4.model.QuestionnaireResponse) src);
235    if (src instanceof org.hl7.fhir.r4.model.RelatedPerson)
236      return RelatedPerson40_50.convertRelatedPerson((org.hl7.fhir.r4.model.RelatedPerson) src);
237    if (src instanceof org.hl7.fhir.r4.model.RiskAssessment)
238      return RiskAssessment40_50.convertRiskAssessment((org.hl7.fhir.r4.model.RiskAssessment) src);
239    if (src instanceof org.hl7.fhir.r4.model.Schedule)
240      return Schedule40_50.convertSchedule((org.hl7.fhir.r4.model.Schedule) src);
241    if (src instanceof org.hl7.fhir.r4.model.SearchParameter)
242      return SearchParameter40_50.convertSearchParameter((org.hl7.fhir.r4.model.SearchParameter) src);
243    if (src instanceof org.hl7.fhir.r4.model.ServiceRequest)
244      return ServiceRequest40_50.convertServiceRequest((org.hl7.fhir.r4.model.ServiceRequest) src);
245    if (src instanceof org.hl7.fhir.r4.model.Slot) return Slot40_50.convertSlot((org.hl7.fhir.r4.model.Slot) src);
246    if (src instanceof org.hl7.fhir.r4.model.Specimen)
247      return Specimen40_50.convertSpecimen((org.hl7.fhir.r4.model.Specimen) src);
248    if (src instanceof org.hl7.fhir.r4.model.SpecimenDefinition)
249      return SpecimenDefinition40_50.convertSpecimenDefinition((org.hl7.fhir.r4.model.SpecimenDefinition) src);
250    if (src instanceof org.hl7.fhir.r4.model.StructureDefinition)
251      return StructureDefinition40_50.convertStructureDefinition((org.hl7.fhir.r4.model.StructureDefinition) src);
252    if (src instanceof org.hl7.fhir.r4.model.StructureMap)
253      return StructureMap40_50.convertStructureMap((org.hl7.fhir.r4.model.StructureMap) src);
254    if (src instanceof org.hl7.fhir.r4.model.Substance)
255      return Substance40_50.convertSubstance((org.hl7.fhir.r4.model.Substance) src);
256    if (src instanceof org.hl7.fhir.r4.model.SubstanceNucleicAcid)
257      return SubstanceNucleicAcid40_50.convertSubstanceNucleicAcid((org.hl7.fhir.r4.model.SubstanceNucleicAcid) src);
258    if (src instanceof org.hl7.fhir.r4.model.SubstancePolymer)
259      return SubstancePolymer40_50.convertSubstancePolymer((org.hl7.fhir.r4.model.SubstancePolymer) src);
260    if (src instanceof org.hl7.fhir.r4.model.SubstanceProtein)
261      return SubstanceProtein40_50.convertSubstanceProtein((org.hl7.fhir.r4.model.SubstanceProtein) src);
262    if (src instanceof org.hl7.fhir.r4.model.SubstanceReferenceInformation)
263      return SubstanceReferenceInformation40_50.convertSubstanceReferenceInformation((org.hl7.fhir.r4.model.SubstanceReferenceInformation) src);
264    if (src instanceof org.hl7.fhir.r4.model.SubstanceSourceMaterial)
265      return SubstanceSourceMaterial40_50.convertSubstanceSourceMaterial((org.hl7.fhir.r4.model.SubstanceSourceMaterial) src);
266    if (src instanceof org.hl7.fhir.r4.model.SupplyDelivery)
267      return SupplyDelivery40_50.convertSupplyDelivery((org.hl7.fhir.r4.model.SupplyDelivery) src);
268    if (src instanceof org.hl7.fhir.r4.model.SupplyRequest)
269      return SupplyRequest40_50.convertSupplyRequest((org.hl7.fhir.r4.model.SupplyRequest) src);
270    if (src instanceof org.hl7.fhir.r4.model.Task) return Task40_50.convertTask((org.hl7.fhir.r4.model.Task) src);
271    if (src instanceof org.hl7.fhir.r4.model.TerminologyCapabilities)
272      return TerminologyCapabilities40_50.convertTerminologyCapabilities((org.hl7.fhir.r4.model.TerminologyCapabilities) src);
273    if (src instanceof org.hl7.fhir.r4.model.TestReport)
274      return TestReport40_50.convertTestReport((org.hl7.fhir.r4.model.TestReport) src);
275    if (src instanceof org.hl7.fhir.r4.model.TestScript)
276      return TestScript40_50.convertTestScript((org.hl7.fhir.r4.model.TestScript) src);
277    if (src instanceof org.hl7.fhir.r4.model.ValueSet)
278      return ValueSet40_50.convertValueSet((org.hl7.fhir.r4.model.ValueSet) src);
279    if (src instanceof org.hl7.fhir.r4.model.VerificationResult)
280      return VerificationResult40_50.convertVerificationResult((org.hl7.fhir.r4.model.VerificationResult) src);
281    if (src instanceof org.hl7.fhir.r4.model.VisionPrescription)
282      return VisionPrescription40_50.convertVisionPrescription((org.hl7.fhir.r4.model.VisionPrescription) src);
283    if (advisor.failFastOnNullOrUnknownEntry()) {
284      throw new FHIRException("The resource " + src.fhirType()+" cannot be converted from R4 to R5");
285    } else {
286      return null;
287    }
288  }
289
290  public org.hl7.fhir.r4.model.Resource convertResource(org.hl7.fhir.r5.model.Resource src) throws FHIRException {
291    if (src == null) return null;
292    if (src instanceof org.hl7.fhir.r5.model.Parameters)
293      return Parameters40_50.convertParameters((org.hl7.fhir.r5.model.Parameters) src);
294    if (src instanceof org.hl7.fhir.r5.model.Account)
295      return Account40_50.convertAccount((org.hl7.fhir.r5.model.Account) src);
296    if (src instanceof org.hl7.fhir.r5.model.ActivityDefinition)
297      return ActivityDefinition40_50.convertActivityDefinition((org.hl7.fhir.r5.model.ActivityDefinition) src);
298    if (src instanceof org.hl7.fhir.r5.model.AllergyIntolerance)
299      return AllergyIntolerance40_50.convertAllergyIntolerance((org.hl7.fhir.r5.model.AllergyIntolerance) src);
300    if (src instanceof org.hl7.fhir.r5.model.ActorDefinition)
301      return ActorDefinition40_50.convertActorDefinition((org.hl7.fhir.r5.model.ActorDefinition) src);
302    if (src instanceof org.hl7.fhir.r5.model.Appointment)
303      return Appointment40_50.convertAppointment((org.hl7.fhir.r5.model.Appointment) src);
304    if (src instanceof org.hl7.fhir.r5.model.AppointmentResponse)
305      return AppointmentResponse40_50.convertAppointmentResponse((org.hl7.fhir.r5.model.AppointmentResponse) src);
306    if (src instanceof org.hl7.fhir.r5.model.AuditEvent)
307      return AuditEvent40_50.convertAuditEvent((org.hl7.fhir.r5.model.AuditEvent) src);
308    if (src instanceof org.hl7.fhir.r5.model.Basic) return Basic40_50.convertBasic((org.hl7.fhir.r5.model.Basic) src);
309    if (src instanceof org.hl7.fhir.r5.model.Binary)
310      return Binary40_50.convertBinary((org.hl7.fhir.r5.model.Binary) src);
311    if (src instanceof org.hl7.fhir.r5.model.BiologicallyDerivedProduct)
312      return BiologicallyDerivedProduct40_50.convertBiologicallyDerivedProduct((org.hl7.fhir.r5.model.BiologicallyDerivedProduct) src);
313    if (src instanceof org.hl7.fhir.r5.model.BodyStructure)
314      return BodyStructure40_50.convertBodyStructure((org.hl7.fhir.r5.model.BodyStructure) src);
315    if (src instanceof org.hl7.fhir.r5.model.Bundle)
316      return Bundle40_50.convertBundle((org.hl7.fhir.r5.model.Bundle) src);
317    if (src instanceof org.hl7.fhir.r5.model.CapabilityStatement)
318      return CapabilityStatement40_50.convertCapabilityStatement((org.hl7.fhir.r5.model.CapabilityStatement) src);
319    if (src instanceof org.hl7.fhir.r5.model.CarePlan)
320      return CarePlan40_50.convertCarePlan((org.hl7.fhir.r5.model.CarePlan) src);
321    if (src instanceof org.hl7.fhir.r5.model.CareTeam)
322      return CareTeam40_50.convertCareTeam((org.hl7.fhir.r5.model.CareTeam) src);
323    if (src instanceof org.hl7.fhir.r5.model.ChargeItem)
324      return ChargeItem40_50.convertChargeItem((org.hl7.fhir.r5.model.ChargeItem) src);
325    if (src instanceof org.hl7.fhir.r5.model.ChargeItemDefinition)
326      return ChargeItemDefinition40_50.convertChargeItemDefinition((org.hl7.fhir.r5.model.ChargeItemDefinition) src);
327    if (src instanceof org.hl7.fhir.r5.model.Claim) return Claim40_50.convertClaim((org.hl7.fhir.r5.model.Claim) src);
328    if (src instanceof org.hl7.fhir.r5.model.ClaimResponse)
329      return ClaimResponse40_50.convertClaimResponse((org.hl7.fhir.r5.model.ClaimResponse) src);
330    if (src instanceof org.hl7.fhir.r5.model.ClinicalImpression)
331      return ClinicalImpression40_50.convertClinicalImpression((org.hl7.fhir.r5.model.ClinicalImpression) src);
332    if (src instanceof org.hl7.fhir.r5.model.CodeSystem)
333      return CodeSystem40_50.convertCodeSystem((org.hl7.fhir.r5.model.CodeSystem) src);
334    if (src instanceof org.hl7.fhir.r5.model.Communication)
335      return Communication40_50.convertCommunication((org.hl7.fhir.r5.model.Communication) src);
336    if (src instanceof org.hl7.fhir.r5.model.CommunicationRequest)
337      return CommunicationRequest40_50.convertCommunicationRequest((org.hl7.fhir.r5.model.CommunicationRequest) src);
338    if (src instanceof org.hl7.fhir.r5.model.CompartmentDefinition)
339      return CompartmentDefinition40_50.convertCompartmentDefinition((org.hl7.fhir.r5.model.CompartmentDefinition) src);
340    if (src instanceof org.hl7.fhir.r5.model.Composition)
341      return Composition40_50.convertComposition((org.hl7.fhir.r5.model.Composition) src);
342    if (src instanceof org.hl7.fhir.r5.model.ConceptMap)
343      return ConceptMap40_50.convertConceptMap((org.hl7.fhir.r5.model.ConceptMap) src);
344    if (src instanceof org.hl7.fhir.r5.model.Condition)
345      return Condition40_50.convertCondition((org.hl7.fhir.r5.model.Condition) src);
346    if (src instanceof org.hl7.fhir.r5.model.Consent)
347      return Consent40_50.convertConsent((org.hl7.fhir.r5.model.Consent) src);
348    if (src instanceof org.hl7.fhir.r5.model.Contract)
349      return Contract40_50.convertContract((org.hl7.fhir.r5.model.Contract) src);
350    if (src instanceof org.hl7.fhir.r5.model.Coverage)
351      return Coverage40_50.convertCoverage((org.hl7.fhir.r5.model.Coverage) src);
352    if (src instanceof org.hl7.fhir.r5.model.CoverageEligibilityRequest)
353      return CoverageEligibilityRequest40_50.convertCoverageEligibilityRequest((org.hl7.fhir.r5.model.CoverageEligibilityRequest) src);
354    if (src instanceof org.hl7.fhir.r5.model.DetectedIssue)
355      return DetectedIssue40_50.convertDetectedIssue((org.hl7.fhir.r5.model.DetectedIssue) src);
356    if (src instanceof org.hl7.fhir.r5.model.Device)
357      return Device40_50.convertDevice((org.hl7.fhir.r5.model.Device) src);
358    if (src instanceof org.hl7.fhir.r5.model.DeviceDefinition)
359      return DeviceDefinition40_50.convertDeviceDefinition((org.hl7.fhir.r5.model.DeviceDefinition) src);
360    if (src instanceof org.hl7.fhir.r5.model.DeviceMetric)
361      return DeviceMetric40_50.convertDeviceMetric((org.hl7.fhir.r5.model.DeviceMetric) src);
362    if (src instanceof org.hl7.fhir.r5.model.DeviceRequest)
363      return DeviceRequest40_50.convertDeviceRequest((org.hl7.fhir.r5.model.DeviceRequest) src);
364    if (src instanceof org.hl7.fhir.r5.model.DeviceUsage)
365      return DeviceUseStatement40_50.convertDeviceUseStatement((org.hl7.fhir.r5.model.DeviceUsage) src);
366    if (src instanceof org.hl7.fhir.r5.model.DiagnosticReport)
367      return DiagnosticReport40_50.convertDiagnosticReport((org.hl7.fhir.r5.model.DiagnosticReport) src);
368//    if (src instanceof org.hl7.fhir.r5.model.DocumentManifest)
369//      return DocumentManifest40_50.convertDocumentManifest((org.hl7.fhir.r5.model.DocumentManifest) src);
370    if (src instanceof org.hl7.fhir.r5.model.DocumentReference)
371      return DocumentReference40_50.convertDocumentReference((org.hl7.fhir.r5.model.DocumentReference) src);
372    if (src instanceof org.hl7.fhir.r5.model.Encounter)
373      return Encounter40_50.convertEncounter((org.hl7.fhir.r5.model.Encounter) src);
374    if (src instanceof org.hl7.fhir.r5.model.Endpoint)
375      return Endpoint40_50.convertEndpoint((org.hl7.fhir.r5.model.Endpoint) src);
376    if (src instanceof org.hl7.fhir.r5.model.EnrollmentRequest)
377      return EnrollmentRequest40_50.convertEnrollmentRequest((org.hl7.fhir.r5.model.EnrollmentRequest) src);
378    if (src instanceof org.hl7.fhir.r5.model.EpisodeOfCare)
379      return EpisodeOfCare40_50.convertEpisodeOfCare((org.hl7.fhir.r5.model.EpisodeOfCare) src);
380    if (src instanceof org.hl7.fhir.r5.model.EventDefinition)
381      return EventDefinition40_50.convertEventDefinition((org.hl7.fhir.r5.model.EventDefinition) src);
382    if (src instanceof org.hl7.fhir.r5.model.ExampleScenario)
383      return ExampleScenario40_50.convertExampleScenario((org.hl7.fhir.r5.model.ExampleScenario) src);
384    if (src instanceof org.hl7.fhir.r5.model.ExplanationOfBenefit)
385      return ExplanationOfBenefit40_50.convertExplanationOfBenefit((org.hl7.fhir.r5.model.ExplanationOfBenefit) src);
386    if (src instanceof org.hl7.fhir.r5.model.FamilyMemberHistory)
387      return FamilyMemberHistory40_50.convertFamilyMemberHistory((org.hl7.fhir.r5.model.FamilyMemberHistory) src);
388    if (src instanceof org.hl7.fhir.r5.model.Flag) return Flag40_50.convertFlag((org.hl7.fhir.r5.model.Flag) src);
389    if (src instanceof org.hl7.fhir.r5.model.Goal) return Goal40_50.convertGoal((org.hl7.fhir.r5.model.Goal) src);
390    if (src instanceof org.hl7.fhir.r5.model.GraphDefinition)
391      return GraphDefinition40_50.convertGraphDefinition((org.hl7.fhir.r5.model.GraphDefinition) src);
392    if (src instanceof org.hl7.fhir.r5.model.Group) return Group40_50.convertGroup((org.hl7.fhir.r5.model.Group) src);
393    if (src instanceof org.hl7.fhir.r5.model.GuidanceResponse)
394      return GuidanceResponse40_50.convertGuidanceResponse((org.hl7.fhir.r5.model.GuidanceResponse) src);
395    if (src instanceof org.hl7.fhir.r5.model.HealthcareService)
396      return HealthcareService40_50.convertHealthcareService((org.hl7.fhir.r5.model.HealthcareService) src);
397    if (src instanceof org.hl7.fhir.r5.model.ImagingStudy)
398      return ImagingStudy40_50.convertImagingStudy((org.hl7.fhir.r5.model.ImagingStudy) src);
399    if (src instanceof org.hl7.fhir.r5.model.Immunization)
400      return Immunization40_50.convertImmunization((org.hl7.fhir.r5.model.Immunization) src);
401    if (src instanceof org.hl7.fhir.r5.model.ImmunizationEvaluation)
402      return ImmunizationEvaluation40_50.convertImmunizationEvaluation((org.hl7.fhir.r5.model.ImmunizationEvaluation) src);
403    if (src instanceof org.hl7.fhir.r5.model.ImmunizationRecommendation)
404      return ImmunizationRecommendation40_50.convertImmunizationRecommendation((org.hl7.fhir.r5.model.ImmunizationRecommendation) src);
405    if (src instanceof org.hl7.fhir.r5.model.ImplementationGuide)
406      return ImplementationGuide40_50.convertImplementationGuide((org.hl7.fhir.r5.model.ImplementationGuide) src, advisor.produceIllegalParameters());
407    if (src instanceof org.hl7.fhir.r5.model.InsurancePlan)
408      return InsurancePlan40_50.convertInsurancePlan((org.hl7.fhir.r5.model.InsurancePlan) src);
409    if (src instanceof org.hl7.fhir.r5.model.Invoice)
410      return Invoice40_50.convertInvoice((org.hl7.fhir.r5.model.Invoice) src);
411    if (src instanceof org.hl7.fhir.r5.model.Library)
412      return Library40_50.convertLibrary((org.hl7.fhir.r5.model.Library) src);
413    if (src instanceof org.hl7.fhir.r5.model.Linkage)
414      return Linkage40_50.convertLinkage((org.hl7.fhir.r5.model.Linkage) src);
415    if (src instanceof org.hl7.fhir.r5.model.ListResource)
416      return ListResource40_50.convertListResource((org.hl7.fhir.r5.model.ListResource) src);
417    if (src instanceof org.hl7.fhir.r5.model.Location)
418      return Location40_50.convertLocation((org.hl7.fhir.r5.model.Location) src);
419    if (src instanceof org.hl7.fhir.r5.model.Measure)
420      return Measure40_50.convertMeasure((org.hl7.fhir.r5.model.Measure) src);
421    if (src instanceof org.hl7.fhir.r5.model.MeasureReport)
422      return MeasureReport40_50.convertMeasureReport((org.hl7.fhir.r5.model.MeasureReport) src);
423    if (src instanceof org.hl7.fhir.r5.model.DocumentReference)
424      return Media40_50.convertMedia((org.hl7.fhir.r5.model.DocumentReference) src);
425    if (src instanceof org.hl7.fhir.r5.model.Medication)
426      return Medication40_50.convertMedication((org.hl7.fhir.r5.model.Medication) src);
427    if (src instanceof org.hl7.fhir.r5.model.MedicationAdministration)
428      return MedicationAdministration40_50.convertMedicationAdministration((org.hl7.fhir.r5.model.MedicationAdministration) src);
429    if (src instanceof org.hl7.fhir.r5.model.MedicationDispense)
430      return MedicationDispense40_50.convertMedicationDispense((org.hl7.fhir.r5.model.MedicationDispense) src);
431    if (src instanceof org.hl7.fhir.r5.model.MedicationKnowledge)
432      return MedicationKnowledge40_50.convertMedicationKnowledge((org.hl7.fhir.r5.model.MedicationKnowledge) src);
433    if (src instanceof org.hl7.fhir.r5.model.MedicationRequest)
434      return MedicationRequest40_50.convertMedicationRequest((org.hl7.fhir.r5.model.MedicationRequest) src);
435    if (src instanceof org.hl7.fhir.r5.model.MedicationStatement)
436      return MedicationStatement40_50.convertMedicationStatement((org.hl7.fhir.r5.model.MedicationStatement) src);
437    if (src instanceof org.hl7.fhir.r5.model.MessageDefinition)
438      return MessageDefinition40_50.convertMessageDefinition((org.hl7.fhir.r5.model.MessageDefinition) src);
439    if (src instanceof org.hl7.fhir.r5.model.MessageHeader)
440      return MessageHeader40_50.convertMessageHeader((org.hl7.fhir.r5.model.MessageHeader) src);
441    if (src instanceof org.hl7.fhir.r5.model.NamingSystem)
442      return NamingSystem40_50.convertNamingSystem((org.hl7.fhir.r5.model.NamingSystem) src);
443    if (src instanceof org.hl7.fhir.r5.model.NutritionOrder)
444      return NutritionOrder40_50.convertNutritionOrder((org.hl7.fhir.r5.model.NutritionOrder) src);
445    if (src instanceof org.hl7.fhir.r5.model.Observation)
446      return Observation40_50.convertObservation((org.hl7.fhir.r5.model.Observation) src);
447    if (src instanceof org.hl7.fhir.r5.model.ObservationDefinition)
448      return ObservationDefinition40_50.convertObservationDefinition((org.hl7.fhir.r5.model.ObservationDefinition) src);
449    if (src instanceof org.hl7.fhir.r5.model.OperationDefinition)
450      return OperationDefinition40_50.convertOperationDefinition((org.hl7.fhir.r5.model.OperationDefinition) src);
451    if (src instanceof org.hl7.fhir.r5.model.OperationOutcome)
452      return OperationOutcome40_50.convertOperationOutcome((org.hl7.fhir.r5.model.OperationOutcome) src);
453    if (src instanceof org.hl7.fhir.r5.model.Organization)
454      return Organization40_50.convertOrganization((org.hl7.fhir.r5.model.Organization) src);
455    if (src instanceof org.hl7.fhir.r5.model.OrganizationAffiliation)
456      return OrganizationAffiliation40_50.convertOrganizationAffiliation((org.hl7.fhir.r5.model.OrganizationAffiliation) src);
457    if (src instanceof org.hl7.fhir.r5.model.Patient)
458      return Patient40_50.convertPatient((org.hl7.fhir.r5.model.Patient) src);
459    if (src instanceof org.hl7.fhir.r5.model.PaymentNotice)
460      return PaymentNotice40_50.convertPaymentNotice((org.hl7.fhir.r5.model.PaymentNotice) src);
461    if (src instanceof org.hl7.fhir.r5.model.Person)
462      return Person40_50.convertPerson((org.hl7.fhir.r5.model.Person) src);
463    if (src instanceof org.hl7.fhir.r5.model.PlanDefinition)
464      return PlanDefinition40_50.convertPlanDefinition((org.hl7.fhir.r5.model.PlanDefinition) src);
465    if (src instanceof org.hl7.fhir.r5.model.Practitioner)
466      return Practitioner40_50.convertPractitioner((org.hl7.fhir.r5.model.Practitioner) src);
467    if (src instanceof org.hl7.fhir.r5.model.PractitionerRole)
468      return PractitionerRole40_50.convertPractitionerRole((org.hl7.fhir.r5.model.PractitionerRole) src);
469    if (src instanceof org.hl7.fhir.r5.model.Procedure)
470      return Procedure40_50.convertProcedure((org.hl7.fhir.r5.model.Procedure) src);
471    if (src instanceof org.hl7.fhir.r5.model.Provenance)
472      return Provenance40_50.convertProvenance((org.hl7.fhir.r5.model.Provenance) src);
473    if (src instanceof org.hl7.fhir.r5.model.Questionnaire)
474      return Questionnaire40_50.convertQuestionnaire((org.hl7.fhir.r5.model.Questionnaire) src);
475    if (src instanceof org.hl7.fhir.r5.model.QuestionnaireResponse)
476      return QuestionnaireResponse40_50.convertQuestionnaireResponse((org.hl7.fhir.r5.model.QuestionnaireResponse) src);
477    if (src instanceof org.hl7.fhir.r5.model.RelatedPerson)
478      return RelatedPerson40_50.convertRelatedPerson((org.hl7.fhir.r5.model.RelatedPerson) src);
479    if (src instanceof org.hl7.fhir.r5.model.Requirements)
480      return Requirements40_50.convertRequirements((org.hl7.fhir.r5.model.Requirements) src);
481    if (src instanceof org.hl7.fhir.r5.model.RiskAssessment)
482      return RiskAssessment40_50.convertRiskAssessment((org.hl7.fhir.r5.model.RiskAssessment) src);
483    if (src instanceof org.hl7.fhir.r5.model.Schedule)
484      return Schedule40_50.convertSchedule((org.hl7.fhir.r5.model.Schedule) src);
485    if (src instanceof org.hl7.fhir.r5.model.SearchParameter)
486      return SearchParameter40_50.convertSearchParameter((org.hl7.fhir.r5.model.SearchParameter) src);
487    if (src instanceof org.hl7.fhir.r5.model.ServiceRequest)
488      return ServiceRequest40_50.convertServiceRequest((org.hl7.fhir.r5.model.ServiceRequest) src);
489    if (src instanceof org.hl7.fhir.r5.model.Slot) return Slot40_50.convertSlot((org.hl7.fhir.r5.model.Slot) src);
490    if (src instanceof org.hl7.fhir.r5.model.Specimen)
491      return Specimen40_50.convertSpecimen((org.hl7.fhir.r5.model.Specimen) src);
492    if (src instanceof org.hl7.fhir.r5.model.SpecimenDefinition)
493      return SpecimenDefinition40_50.convertSpecimenDefinition((org.hl7.fhir.r5.model.SpecimenDefinition) src);
494    if (src instanceof org.hl7.fhir.r5.model.StructureDefinition)
495      return StructureDefinition40_50.convertStructureDefinition((org.hl7.fhir.r5.model.StructureDefinition) src);
496    if (src instanceof org.hl7.fhir.r5.model.StructureMap)
497      return StructureMap40_50.convertStructureMap((org.hl7.fhir.r5.model.StructureMap) src);
498    if (src instanceof org.hl7.fhir.r5.model.SubscriptionTopic)
499      return SubscriptionTopic40_50.convertSubscriptionTopic((org.hl7.fhir.r5.model.SubscriptionTopic) src);
500    if (src instanceof org.hl7.fhir.r5.model.Substance)
501      return Substance40_50.convertSubstance((org.hl7.fhir.r5.model.Substance) src);
502    if (src instanceof org.hl7.fhir.r5.model.SubstanceNucleicAcid)
503      return SubstanceNucleicAcid40_50.convertSubstanceNucleicAcid((org.hl7.fhir.r5.model.SubstanceNucleicAcid) src);
504    if (src instanceof org.hl7.fhir.r5.model.SubstancePolymer)
505      return SubstancePolymer40_50.convertSubstancePolymer((org.hl7.fhir.r5.model.SubstancePolymer) src);
506    if (src instanceof org.hl7.fhir.r5.model.SubstanceProtein)
507      return SubstanceProtein40_50.convertSubstanceProtein((org.hl7.fhir.r5.model.SubstanceProtein) src);
508    if (src instanceof org.hl7.fhir.r5.model.SubstanceReferenceInformation)
509      return SubstanceReferenceInformation40_50.convertSubstanceReferenceInformation((org.hl7.fhir.r5.model.SubstanceReferenceInformation) src);
510    if (src instanceof org.hl7.fhir.r5.model.SubstanceSourceMaterial)
511      return SubstanceSourceMaterial40_50.convertSubstanceSourceMaterial((org.hl7.fhir.r5.model.SubstanceSourceMaterial) src);
512    if (src instanceof org.hl7.fhir.r5.model.SupplyDelivery)
513      return SupplyDelivery40_50.convertSupplyDelivery((org.hl7.fhir.r5.model.SupplyDelivery) src);
514    if (src instanceof org.hl7.fhir.r5.model.SupplyRequest)
515      return SupplyRequest40_50.convertSupplyRequest((org.hl7.fhir.r5.model.SupplyRequest) src);
516    if (src instanceof org.hl7.fhir.r5.model.Task) return Task40_50.convertTask((org.hl7.fhir.r5.model.Task) src);
517    if (src instanceof org.hl7.fhir.r5.model.TerminologyCapabilities)
518      return TerminologyCapabilities40_50.convertTerminologyCapabilities((org.hl7.fhir.r5.model.TerminologyCapabilities) src);
519    if (src instanceof org.hl7.fhir.r5.model.TestPlan)
520      return TestPlan40_50.convertTestPlan((org.hl7.fhir.r5.model.TestPlan)src);
521    if (src instanceof org.hl7.fhir.r5.model.TestReport)
522      return TestReport40_50.convertTestReport((org.hl7.fhir.r5.model.TestReport) src);
523    if (src instanceof org.hl7.fhir.r5.model.TestScript)
524      return TestScript40_50.convertTestScript((org.hl7.fhir.r5.model.TestScript) src);
525    if (src instanceof org.hl7.fhir.r5.model.ValueSet)
526      return ValueSet40_50.convertValueSet((org.hl7.fhir.r5.model.ValueSet) src);
527    if (src instanceof org.hl7.fhir.r5.model.VerificationResult)
528      return VerificationResult40_50.convertVerificationResult((org.hl7.fhir.r5.model.VerificationResult) src);
529    if (src instanceof org.hl7.fhir.r5.model.VisionPrescription)
530      return VisionPrescription40_50.convertVisionPrescription((org.hl7.fhir.r5.model.VisionPrescription) src);
531    if (advisor.failFastOnNullOrUnknownEntry()) {
532      throw new FHIRException("The resource " + src.fhirType()+" cannot be converted from R5 to R4");
533    } else {
534      return null;
535    }
536  }
537
538  public void copyDomainResource(org.hl7.fhir.r4.model.DomainResource src, org.hl7.fhir.r5.model.DomainResource tgt, String... extensionUrlsToIgnore) throws FHIRException {
539    copyResource(src, tgt);
540    if (src.hasText()) tgt.setText(Narrative40_50.convertNarrative(src.getText()));
541    src.getContained().stream()
542      .map(this::convertResource)
543      .forEach(tgt::addContained);
544    src.getExtension().forEach(extension -> {
545      if (advisor.useAdvisorForExtension(ConversionContext40_50.INSTANCE.path(), extension)) {
546        org.hl7.fhir.r5.model.Extension convertExtension = new org.hl7.fhir.r5.model.Extension();
547        advisor.handleExtension(ConversionContext40_50.INSTANCE.path(), extension, convertExtension);
548        tgt.addExtension(convertExtension);
549      } else if (!advisor.ignoreExtension(ConversionContext40_50.INSTANCE.path(), extension) && !Arrays.asList(extensionUrlsToIgnore).contains(extension.getUrl())) {
550        tgt.addExtension(Extension40_50.convertExtension(extension));
551      }
552    });
553    src.getModifierExtension().stream()
554      .filter(extension -> !advisor.ignoreExtension(ConversionContext40_50.INSTANCE.path(), extension))
555      .map(Extension40_50::convertExtension)
556      .forEach(tgt::addModifierExtension);
557  }
558
559  public void copyDomainResource(org.hl7.fhir.r5.model.DomainResource src, org.hl7.fhir.r4.model.DomainResource tgt,  String... extensionUrlsToIgnore) throws FHIRException {
560    copyResource(src, tgt);
561    if (src.hasText()) tgt.setText(Narrative40_50.convertNarrative(src.getText()));
562    src.getContained().stream()
563      .map(this::convertResource)
564      .forEach(tgt::addContained);
565    src.getExtension().forEach(extension -> {
566      if (advisor.useAdvisorForExtension(ConversionContext40_50.INSTANCE.path(), extension)) {
567        org.hl7.fhir.r4.model.Extension convertExtension = new org.hl7.fhir.r4.model.Extension();
568        advisor.handleExtension(ConversionContext40_50.INSTANCE.path(), extension, convertExtension);
569        tgt.addExtension(convertExtension);
570      } else if (!advisor.ignoreExtension(ConversionContext40_50.INSTANCE.path(), extension) && !Arrays.asList(extensionUrlsToIgnore).contains(extension.getUrl())) {
571        tgt.addExtension(Extension40_50.convertExtension(extension));
572      }
573    });
574    src.getModifierExtension().stream()
575      .filter(extension -> !advisor.ignoreExtension(ConversionContext40_50.INSTANCE.path(), extension))
576      .map(Extension40_50::convertExtension)
577      .forEach(tgt::addModifierExtension);
578  }
579}