001package org.hl7.fhir.convertors.conv30_50;
002
003import org.hl7.fhir.convertors.advisors.impl.BaseAdvisor_30_50;
004import org.hl7.fhir.convertors.context.ConversionContext30_50;
005import org.hl7.fhir.convertors.conv30_50.datatypes30_50.Extension30_50;
006import org.hl7.fhir.convertors.conv30_50.datatypes30_50.Meta30_50;
007import org.hl7.fhir.convertors.conv30_50.datatypes30_50.Narrative30_50;
008import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Code30_50;
009import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Id30_50;
010import org.hl7.fhir.convertors.conv30_50.resources30_50.*;
011import org.hl7.fhir.exceptions.FHIRException;
012
013public class Resource30_50 {
014
015  public final BaseAdvisor_30_50 advisor;
016
017  public Resource30_50(BaseAdvisor_30_50 advisor) {
018    this.advisor = advisor;
019  }
020
021  public void copyResource(org.hl7.fhir.dstu3.model.Resource src, org.hl7.fhir.r5.model.Resource tgt) throws FHIRException {
022    if (src.hasId()) tgt.setIdElement(Id30_50.convertId(src.getIdElement()));
023    if (src.hasMeta()) tgt.setMeta(Meta30_50.convertMeta(src.getMeta()));
024    if (src.hasImplicitRules()) tgt.setImplicitRules(src.getImplicitRules());
025    if (src.hasLanguage()) tgt.setLanguageElement(Code30_50.convertCode(src.getLanguageElement()));
026  }
027
028  public void copyResource(org.hl7.fhir.r5.model.Resource src, org.hl7.fhir.dstu3.model.Resource tgt) throws FHIRException {
029    if (src.hasId()) tgt.setIdElement(Id30_50.convertId(src.getIdElement()));
030    if (src.hasMeta()) tgt.setMeta(Meta30_50.convertMeta(src.getMeta()));
031    if (src.hasImplicitRules()) tgt.setImplicitRules(src.getImplicitRules());
032    if (src.hasLanguage()) tgt.setLanguageElement(Code30_50.convertCode(src.getLanguageElement()));
033  }
034
035  public org.hl7.fhir.r5.model.Resource convertResource(org.hl7.fhir.dstu3.model.Resource src) throws FHIRException {
036    if (src == null) return null;
037    if (src instanceof org.hl7.fhir.dstu3.model.Parameters)
038      return Parameters30_50.convertParameters((org.hl7.fhir.dstu3.model.Parameters) src);
039    if (src instanceof org.hl7.fhir.dstu3.model.ActivityDefinition)
040      return ActivityDefinition30_50.convertActivityDefinition((org.hl7.fhir.dstu3.model.ActivityDefinition) src);
041    if (src instanceof org.hl7.fhir.dstu3.model.AllergyIntolerance)
042      return AllergyIntolerance30_50.convertAllergyIntolerance((org.hl7.fhir.dstu3.model.AllergyIntolerance) src);
043    if (src instanceof org.hl7.fhir.dstu3.model.Appointment)
044      return Appointment30_50.convertAppointment((org.hl7.fhir.dstu3.model.Appointment) src);
045    if (src instanceof org.hl7.fhir.dstu3.model.AppointmentResponse)
046      return AppointmentResponse30_50.convertAppointmentResponse((org.hl7.fhir.dstu3.model.AppointmentResponse) src);
047    if (src instanceof org.hl7.fhir.dstu3.model.AuditEvent)
048      return AuditEvent30_50.convertAuditEvent((org.hl7.fhir.dstu3.model.AuditEvent) src);
049    if (src instanceof org.hl7.fhir.dstu3.model.Basic)
050      return Basic30_50.convertBasic((org.hl7.fhir.dstu3.model.Basic) src);
051    if (src instanceof org.hl7.fhir.dstu3.model.Binary)
052      return Binary30_50.convertBinary((org.hl7.fhir.dstu3.model.Binary) src);
053    if (src instanceof org.hl7.fhir.dstu3.model.BodySite)
054      return BodySite30_50.convertBodySite((org.hl7.fhir.dstu3.model.BodySite) src);
055    if (src instanceof org.hl7.fhir.dstu3.model.Bundle)
056      return Bundle30_50.convertBundle((org.hl7.fhir.dstu3.model.Bundle) src);
057    if (src instanceof org.hl7.fhir.dstu3.model.CapabilityStatement)
058      return CapabilityStatement30_50.convertCapabilityStatement((org.hl7.fhir.dstu3.model.CapabilityStatement) src);
059    if (src instanceof org.hl7.fhir.dstu3.model.CarePlan)
060      return CarePlan30_50.convertCarePlan((org.hl7.fhir.dstu3.model.CarePlan) src);
061    if (src instanceof org.hl7.fhir.dstu3.model.CareTeam)
062      return CareTeam30_50.convertCareTeam((org.hl7.fhir.dstu3.model.CareTeam) src);
063    if (src instanceof org.hl7.fhir.dstu3.model.ClinicalImpression)
064      return ClinicalImpression30_50.convertClinicalImpression((org.hl7.fhir.dstu3.model.ClinicalImpression) src);
065    if (src instanceof org.hl7.fhir.dstu3.model.CodeSystem)
066      return CodeSystem30_50.convertCodeSystem((org.hl7.fhir.dstu3.model.CodeSystem) src);
067    if (src instanceof org.hl7.fhir.dstu3.model.Communication)
068      return Communication30_50.convertCommunication((org.hl7.fhir.dstu3.model.Communication) src);
069    if (src instanceof org.hl7.fhir.dstu3.model.CompartmentDefinition)
070      return CompartmentDefinition30_50.convertCompartmentDefinition((org.hl7.fhir.dstu3.model.CompartmentDefinition) src);
071    if (src instanceof org.hl7.fhir.dstu3.model.Composition)
072      return Composition30_50.convertComposition((org.hl7.fhir.dstu3.model.Composition) src);
073    if (src instanceof org.hl7.fhir.dstu3.model.ConceptMap)
074      return ConceptMap30_50.convertConceptMap((org.hl7.fhir.dstu3.model.ConceptMap) src);
075    if (src instanceof org.hl7.fhir.dstu3.model.Condition)
076      return Condition30_50.convertCondition((org.hl7.fhir.dstu3.model.Condition) src);
077    if (src instanceof org.hl7.fhir.dstu3.model.Consent)
078      return Consent30_50.convertConsent((org.hl7.fhir.dstu3.model.Consent) src);
079    if (src instanceof org.hl7.fhir.dstu3.model.DataElement)
080      return DataElement30_50.convertDataElement((org.hl7.fhir.dstu3.model.DataElement) src);
081    if (src instanceof org.hl7.fhir.dstu3.model.DetectedIssue)
082      return DetectedIssue30_50.convertDetectedIssue((org.hl7.fhir.dstu3.model.DetectedIssue) src);
083    if (src instanceof org.hl7.fhir.dstu3.model.DeviceUseStatement)
084      return DeviceUseStatement30_50.convertDeviceUseStatement((org.hl7.fhir.dstu3.model.DeviceUseStatement) src);
085    if (src instanceof org.hl7.fhir.dstu3.model.DiagnosticReport)
086      return DiagnosticReport30_50.convertDiagnosticReport((org.hl7.fhir.dstu3.model.DiagnosticReport) src);
087    if (src instanceof org.hl7.fhir.dstu3.model.DocumentReference)
088      return DocumentReference30_50.convertDocumentReference((org.hl7.fhir.dstu3.model.DocumentReference) src);
089    if (src instanceof org.hl7.fhir.dstu3.model.Encounter)
090      return Encounter30_50.convertEncounter((org.hl7.fhir.dstu3.model.Encounter) src);
091    if (src instanceof org.hl7.fhir.dstu3.model.Endpoint)
092      return Endpoint30_50.convertEndpoint((org.hl7.fhir.dstu3.model.Endpoint) src);
093    if (src instanceof org.hl7.fhir.dstu3.model.EpisodeOfCare)
094      return EpisodeOfCare30_50.convertEpisodeOfCare((org.hl7.fhir.dstu3.model.EpisodeOfCare) src);
095    if (src instanceof org.hl7.fhir.dstu3.model.ExpansionProfile)
096      return ExpansionProfile30_50.convertExpansionProfile((org.hl7.fhir.dstu3.model.ExpansionProfile) src);
097    if (src instanceof org.hl7.fhir.dstu3.model.FamilyMemberHistory)
098      return FamilyMemberHistory30_50.convertFamilyMemberHistory((org.hl7.fhir.dstu3.model.FamilyMemberHistory) src);
099    if (src instanceof org.hl7.fhir.dstu3.model.Flag) return Flag30_50.convertFlag((org.hl7.fhir.dstu3.model.Flag) src);
100    if (src instanceof org.hl7.fhir.dstu3.model.Goal) return Goal30_50.convertGoal((org.hl7.fhir.dstu3.model.Goal) src);
101    if (src instanceof org.hl7.fhir.dstu3.model.GraphDefinition)
102      return GraphDefinition30_50.convertGraphDefinition((org.hl7.fhir.dstu3.model.GraphDefinition) src);
103    if (src instanceof org.hl7.fhir.dstu3.model.Group)
104      return Group30_50.convertGroup((org.hl7.fhir.dstu3.model.Group) src);
105    if (src instanceof org.hl7.fhir.dstu3.model.HealthcareService)
106      return HealthcareService30_50.convertHealthcareService((org.hl7.fhir.dstu3.model.HealthcareService) src);
107    if (src instanceof org.hl7.fhir.dstu3.model.ImagingStudy)
108      return ImagingStudy30_50.convertImagingStudy((org.hl7.fhir.dstu3.model.ImagingStudy) src);
109    if (src instanceof org.hl7.fhir.dstu3.model.Immunization)
110      return Immunization30_50.convertImmunization((org.hl7.fhir.dstu3.model.Immunization) src);
111    if (src instanceof org.hl7.fhir.dstu3.model.ImplementationGuide)
112      return ImplementationGuide30_50.convertImplementationGuide((org.hl7.fhir.dstu3.model.ImplementationGuide) src);
113    if (src instanceof org.hl7.fhir.dstu3.model.Library)
114      return Library30_50.convertLibrary((org.hl7.fhir.dstu3.model.Library) src);
115    if (src instanceof org.hl7.fhir.dstu3.model.Linkage)
116      return Linkage30_50.convertLinkage((org.hl7.fhir.dstu3.model.Linkage) src);
117    if (src instanceof org.hl7.fhir.dstu3.model.ListResource)
118      return List30_50.convertList((org.hl7.fhir.dstu3.model.ListResource) src);
119    if (src instanceof org.hl7.fhir.dstu3.model.Location)
120      return Location30_50.convertLocation((org.hl7.fhir.dstu3.model.Location) src);
121    if (src instanceof org.hl7.fhir.dstu3.model.Measure)
122      return Measure30_50.convertMeasure((org.hl7.fhir.dstu3.model.Measure) src);
123    if (src instanceof org.hl7.fhir.dstu3.model.Media)
124      return Media30_50.convertMedia((org.hl7.fhir.dstu3.model.Media) src);
125    if (src instanceof org.hl7.fhir.dstu3.model.Medication)
126      return Medication30_50.convertMedication((org.hl7.fhir.dstu3.model.Medication) src);
127    if (src instanceof org.hl7.fhir.dstu3.model.MedicationAdministration)
128      return MedicationAdministration30_50.convertMedicationAdministration((org.hl7.fhir.dstu3.model.MedicationAdministration) src);
129    if (src instanceof org.hl7.fhir.dstu3.model.MedicationDispense)
130      return MedicationDispense30_50.convertMedicationDispense((org.hl7.fhir.dstu3.model.MedicationDispense) src);
131    if (src instanceof org.hl7.fhir.dstu3.model.MedicationRequest)
132      return MedicationRequest30_50.convertMedicationRequest((org.hl7.fhir.dstu3.model.MedicationRequest) src);
133    if (src instanceof org.hl7.fhir.dstu3.model.MedicationStatement)
134      return MedicationStatement30_50.convertMedicationStatement((org.hl7.fhir.dstu3.model.MedicationStatement) src);
135    if (src instanceof org.hl7.fhir.dstu3.model.MessageDefinition)
136      return MessageDefinition30_50.convertMessageDefinition((org.hl7.fhir.dstu3.model.MessageDefinition) src);
137    if (src instanceof org.hl7.fhir.dstu3.model.MessageHeader)
138      return MessageHeader30_50.convertMessageHeader((org.hl7.fhir.dstu3.model.MessageHeader) src);
139    if (src instanceof org.hl7.fhir.dstu3.model.NamingSystem)
140      return NamingSystem30_50.convertNamingSystem((org.hl7.fhir.dstu3.model.NamingSystem) src);
141    if (src instanceof org.hl7.fhir.dstu3.model.Observation)
142      return Observation30_50.convertObservation((org.hl7.fhir.dstu3.model.Observation) src);
143    if (src instanceof org.hl7.fhir.dstu3.model.OperationDefinition)
144      return OperationDefinition30_50.convertOperationDefinition((org.hl7.fhir.dstu3.model.OperationDefinition) src);
145    if (src instanceof org.hl7.fhir.dstu3.model.OperationOutcome)
146      return OperationOutcome30_50.convertOperationOutcome((org.hl7.fhir.dstu3.model.OperationOutcome) src);
147    if (src instanceof org.hl7.fhir.dstu3.model.Organization)
148      return Organization30_50.convertOrganization((org.hl7.fhir.dstu3.model.Organization) src);
149    if (src instanceof org.hl7.fhir.dstu3.model.Patient)
150      return Patient30_50.convertPatient((org.hl7.fhir.dstu3.model.Patient) src);
151    if (src instanceof org.hl7.fhir.dstu3.model.PaymentNotice)
152      return PaymentNotice30_50.convertPaymentNotice((org.hl7.fhir.dstu3.model.PaymentNotice) src);
153    if (src instanceof org.hl7.fhir.dstu3.model.Person)
154      return Person30_50.convertPerson((org.hl7.fhir.dstu3.model.Person) src);
155    if (src instanceof org.hl7.fhir.dstu3.model.PlanDefinition)
156      return PlanDefinition30_50.convertPlanDefinition((org.hl7.fhir.dstu3.model.PlanDefinition) src);
157    if (src instanceof org.hl7.fhir.dstu3.model.Practitioner)
158      return Practitioner30_50.convertPractitioner((org.hl7.fhir.dstu3.model.Practitioner) src);
159    if (src instanceof org.hl7.fhir.dstu3.model.PractitionerRole)
160      return PractitionerRole30_50.convertPractitionerRole((org.hl7.fhir.dstu3.model.PractitionerRole) src);
161    if (src instanceof org.hl7.fhir.dstu3.model.Provenance)
162      return Provenance30_50.convertProvenance((org.hl7.fhir.dstu3.model.Provenance) src);
163    if (src instanceof org.hl7.fhir.dstu3.model.Questionnaire)
164      return Questionnaire30_50.convertQuestionnaire((org.hl7.fhir.dstu3.model.Questionnaire) src);
165    if (src instanceof org.hl7.fhir.dstu3.model.QuestionnaireResponse)
166      return QuestionnaireResponse30_50.convertQuestionnaireResponse((org.hl7.fhir.dstu3.model.QuestionnaireResponse) src);
167    if (src instanceof org.hl7.fhir.dstu3.model.RelatedPerson)
168      return RelatedPerson30_50.convertRelatedPerson((org.hl7.fhir.dstu3.model.RelatedPerson) src);
169    if (src instanceof org.hl7.fhir.dstu3.model.RiskAssessment)
170      return RiskAssessment30_50.convertRiskAssessment((org.hl7.fhir.dstu3.model.RiskAssessment) src);
171    if (src instanceof org.hl7.fhir.dstu3.model.Schedule)
172      return Schedule30_50.convertSchedule((org.hl7.fhir.dstu3.model.Schedule) src);
173    if (src instanceof org.hl7.fhir.dstu3.model.SearchParameter)
174      return SearchParameter30_50.convertSearchParameter((org.hl7.fhir.dstu3.model.SearchParameter) src);
175    if (src instanceof org.hl7.fhir.dstu3.model.Sequence)
176      return Sequence30_50.convertSequence((org.hl7.fhir.dstu3.model.Sequence) src);
177    if (src instanceof org.hl7.fhir.dstu3.model.Slot) return Slot30_50.convertSlot((org.hl7.fhir.dstu3.model.Slot) src);
178    if (src instanceof org.hl7.fhir.dstu3.model.Specimen)
179      return Specimen30_50.convertSpecimen((org.hl7.fhir.dstu3.model.Specimen) src);
180    if (src instanceof org.hl7.fhir.dstu3.model.StructureDefinition)
181      return StructureDefinition30_50.convertStructureDefinition((org.hl7.fhir.dstu3.model.StructureDefinition) src);
182    if (src instanceof org.hl7.fhir.dstu3.model.StructureMap)
183      return StructureMap30_50.convertStructureMap((org.hl7.fhir.dstu3.model.StructureMap) src);
184    if (src instanceof org.hl7.fhir.dstu3.model.Substance)
185      return Substance30_50.convertSubstance((org.hl7.fhir.dstu3.model.Substance) src);
186    if (src instanceof org.hl7.fhir.dstu3.model.SupplyDelivery)
187      return SupplyDelivery30_50.convertSupplyDelivery((org.hl7.fhir.dstu3.model.SupplyDelivery) src);
188    if (src instanceof org.hl7.fhir.dstu3.model.TestReport)
189      return TestReport30_50.convertTestReport((org.hl7.fhir.dstu3.model.TestReport) src);
190    if (src instanceof org.hl7.fhir.dstu3.model.TestScript)
191      return TestScript30_50.convertTestScript((org.hl7.fhir.dstu3.model.TestScript) src);
192    if (src instanceof org.hl7.fhir.dstu3.model.ValueSet)
193      return ValueSet30_50.convertValueSet((org.hl7.fhir.dstu3.model.ValueSet) src);
194    if (advisor.failFastOnNullOrUnknownEntry()) throw new FHIRException("Unknown resource " + src.fhirType());
195    else return null;
196  }
197
198  public org.hl7.fhir.dstu3.model.Resource convertResource(org.hl7.fhir.r5.model.Resource src) throws FHIRException {
199    if (src == null) return null;
200    if (src instanceof org.hl7.fhir.r5.model.Parameters) {
201      if (((org.hl7.fhir.r5.model.Parameters) src).hasParameter("profile-url"))
202        return ExpansionProfile30_50.convertExpansionProfile((org.hl7.fhir.r5.model.Parameters) src);
203      else return Parameters30_50.convertParameters((org.hl7.fhir.r5.model.Parameters) src);
204    }
205    if (src instanceof org.hl7.fhir.r5.model.ActivityDefinition)
206      return ActivityDefinition30_50.convertActivityDefinition((org.hl7.fhir.r5.model.ActivityDefinition) src);
207    if (src instanceof org.hl7.fhir.r5.model.AllergyIntolerance)
208      return AllergyIntolerance30_50.convertAllergyIntolerance((org.hl7.fhir.r5.model.AllergyIntolerance) src);
209    if (src instanceof org.hl7.fhir.r5.model.Appointment)
210      return Appointment30_50.convertAppointment((org.hl7.fhir.r5.model.Appointment) src);
211    if (src instanceof org.hl7.fhir.r5.model.AppointmentResponse)
212      return AppointmentResponse30_50.convertAppointmentResponse((org.hl7.fhir.r5.model.AppointmentResponse) src);
213    if (src instanceof org.hl7.fhir.r5.model.AuditEvent)
214      return AuditEvent30_50.convertAuditEvent((org.hl7.fhir.r5.model.AuditEvent) src);
215    if (src instanceof org.hl7.fhir.r5.model.Basic) return Basic30_50.convertBasic((org.hl7.fhir.r5.model.Basic) src);
216    if (src instanceof org.hl7.fhir.r5.model.Binary)
217      return Binary30_50.convertBinary((org.hl7.fhir.r5.model.Binary) src);
218    if (src instanceof org.hl7.fhir.r5.model.BodyStructure)
219      return BodySite30_50.convertBodySite((org.hl7.fhir.r5.model.BodyStructure) src);
220    if (src instanceof org.hl7.fhir.r5.model.Bundle)
221      return Bundle30_50.convertBundle((org.hl7.fhir.r5.model.Bundle) src);
222    if (src instanceof org.hl7.fhir.r5.model.CapabilityStatement)
223      return CapabilityStatement30_50.convertCapabilityStatement((org.hl7.fhir.r5.model.CapabilityStatement) src);
224    if (src instanceof org.hl7.fhir.r5.model.CarePlan)
225      return CarePlan30_50.convertCarePlan((org.hl7.fhir.r5.model.CarePlan) src);
226    if (src instanceof org.hl7.fhir.r5.model.CareTeam)
227      return CareTeam30_50.convertCareTeam((org.hl7.fhir.r5.model.CareTeam) src);
228    if (src instanceof org.hl7.fhir.r5.model.ClinicalImpression)
229      return ClinicalImpression30_50.convertClinicalImpression((org.hl7.fhir.r5.model.ClinicalImpression) src);
230    if (src instanceof org.hl7.fhir.r5.model.CodeSystem)
231      return CodeSystem30_50.convertCodeSystem((org.hl7.fhir.r5.model.CodeSystem) src);
232    if (src instanceof org.hl7.fhir.r5.model.Communication)
233      return Communication30_50.convertCommunication((org.hl7.fhir.r5.model.Communication) src);
234    if (src instanceof org.hl7.fhir.r5.model.CompartmentDefinition)
235      return CompartmentDefinition30_50.convertCompartmentDefinition((org.hl7.fhir.r5.model.CompartmentDefinition) src);
236    if (src instanceof org.hl7.fhir.r5.model.Composition)
237      return Composition30_50.convertComposition((org.hl7.fhir.r5.model.Composition) src);
238    if (src instanceof org.hl7.fhir.r5.model.ConceptMap)
239      return ConceptMap30_50.convertConceptMap((org.hl7.fhir.r5.model.ConceptMap) src);
240    if (src instanceof org.hl7.fhir.r5.model.Condition)
241      return Condition30_50.convertCondition((org.hl7.fhir.r5.model.Condition) src);
242    if (src instanceof org.hl7.fhir.r5.model.Consent)
243      return Consent30_50.convertConsent((org.hl7.fhir.r5.model.Consent) src);
244    if (src instanceof org.hl7.fhir.r5.model.DetectedIssue)
245      return DetectedIssue30_50.convertDetectedIssue((org.hl7.fhir.r5.model.DetectedIssue) src);
246    if (src instanceof org.hl7.fhir.r5.model.DeviceUsage)
247      return DeviceUseStatement30_50.convertDeviceUseStatement((org.hl7.fhir.r5.model.DeviceUsage) src);
248    if (src instanceof org.hl7.fhir.r5.model.DiagnosticReport)
249      return DiagnosticReport30_50.convertDiagnosticReport((org.hl7.fhir.r5.model.DiagnosticReport) src);
250    if (src instanceof org.hl7.fhir.r5.model.DocumentReference)
251      return DocumentReference30_50.convertDocumentReference((org.hl7.fhir.r5.model.DocumentReference) src);
252    if (src instanceof org.hl7.fhir.r5.model.Encounter)
253      return Encounter30_50.convertEncounter((org.hl7.fhir.r5.model.Encounter) src);
254    if (src instanceof org.hl7.fhir.r5.model.Endpoint)
255      return Endpoint30_50.convertEndpoint((org.hl7.fhir.r5.model.Endpoint) src);
256    if (src instanceof org.hl7.fhir.r5.model.EpisodeOfCare)
257      return EpisodeOfCare30_50.convertEpisodeOfCare((org.hl7.fhir.r5.model.EpisodeOfCare) src);
258    if (src instanceof org.hl7.fhir.r5.model.FamilyMemberHistory)
259      return FamilyMemberHistory30_50.convertFamilyMemberHistory((org.hl7.fhir.r5.model.FamilyMemberHistory) src);
260    if (src instanceof org.hl7.fhir.r5.model.Flag) return Flag30_50.convertFlag((org.hl7.fhir.r5.model.Flag) src);
261    if (src instanceof org.hl7.fhir.r5.model.Goal) return Goal30_50.convertGoal((org.hl7.fhir.r5.model.Goal) src);
262    if (src instanceof org.hl7.fhir.r5.model.GraphDefinition)
263      return GraphDefinition30_50.convertGraphDefinition((org.hl7.fhir.r5.model.GraphDefinition) src);
264    if (src instanceof org.hl7.fhir.r5.model.Group) return Group30_50.convertGroup((org.hl7.fhir.r5.model.Group) src);
265    if (src instanceof org.hl7.fhir.r5.model.HealthcareService)
266      return HealthcareService30_50.convertHealthcareService((org.hl7.fhir.r5.model.HealthcareService) src);
267    if (src instanceof org.hl7.fhir.r5.model.ImagingStudy)
268      return ImagingStudy30_50.convertImagingStudy((org.hl7.fhir.r5.model.ImagingStudy) src);
269    if (src instanceof org.hl7.fhir.r5.model.Immunization)
270      return Immunization30_50.convertImmunization((org.hl7.fhir.r5.model.Immunization) src);
271    if (src instanceof org.hl7.fhir.r5.model.ImplementationGuide)
272      return ImplementationGuide30_50.convertImplementationGuide((org.hl7.fhir.r5.model.ImplementationGuide) src);
273    if (src instanceof org.hl7.fhir.r5.model.Library)
274      return Library30_50.convertLibrary((org.hl7.fhir.r5.model.Library) src);
275    if (src instanceof org.hl7.fhir.r5.model.Linkage)
276      return Linkage30_50.convertLinkage((org.hl7.fhir.r5.model.Linkage) src);
277    if (src instanceof org.hl7.fhir.r5.model.ListResource)
278      return List30_50.convertList((org.hl7.fhir.r5.model.ListResource) src);
279    if (src instanceof org.hl7.fhir.r5.model.Location)
280      return Location30_50.convertLocation((org.hl7.fhir.r5.model.Location) src);
281    if (src instanceof org.hl7.fhir.r5.model.Measure)
282      return Measure30_50.convertMeasure((org.hl7.fhir.r5.model.Measure) src);
283    if (src instanceof org.hl7.fhir.r5.model.DocumentReference)
284      return Media30_50.convertMedia((org.hl7.fhir.r5.model.DocumentReference) src);
285    if (src instanceof org.hl7.fhir.r5.model.Medication)
286      return Medication30_50.convertMedication((org.hl7.fhir.r5.model.Medication) src);
287    if (src instanceof org.hl7.fhir.r5.model.MedicationAdministration)
288      return MedicationAdministration30_50.convertMedicationAdministration((org.hl7.fhir.r5.model.MedicationAdministration) src);
289    if (src instanceof org.hl7.fhir.r5.model.MedicationDispense)
290      return MedicationDispense30_50.convertMedicationDispense((org.hl7.fhir.r5.model.MedicationDispense) src);
291    if (src instanceof org.hl7.fhir.r5.model.MedicationRequest)
292      return MedicationRequest30_50.convertMedicationRequest((org.hl7.fhir.r5.model.MedicationRequest) src);
293    if (src instanceof org.hl7.fhir.r5.model.MedicationUsage)
294      return MedicationStatement30_50.convertMedicationStatement((org.hl7.fhir.r5.model.MedicationUsage) src);
295    if (src instanceof org.hl7.fhir.r5.model.MessageDefinition)
296      return MessageDefinition30_50.convertMessageDefinition((org.hl7.fhir.r5.model.MessageDefinition) src);
297    if (src instanceof org.hl7.fhir.r5.model.MessageHeader)
298      return MessageHeader30_50.convertMessageHeader((org.hl7.fhir.r5.model.MessageHeader) src);
299    if (src instanceof org.hl7.fhir.r5.model.NamingSystem)
300      return NamingSystem30_50.convertNamingSystem((org.hl7.fhir.r5.model.NamingSystem) src);
301    if (src instanceof org.hl7.fhir.r5.model.Observation)
302      return Observation30_50.convertObservation((org.hl7.fhir.r5.model.Observation) src);
303    if (src instanceof org.hl7.fhir.r5.model.OperationDefinition)
304      return OperationDefinition30_50.convertOperationDefinition((org.hl7.fhir.r5.model.OperationDefinition) src);
305    if (src instanceof org.hl7.fhir.r5.model.OperationOutcome)
306      return OperationOutcome30_50.convertOperationOutcome((org.hl7.fhir.r5.model.OperationOutcome) src);
307    if (src instanceof org.hl7.fhir.r5.model.Organization)
308      return Organization30_50.convertOrganization((org.hl7.fhir.r5.model.Organization) src);
309    if (src instanceof org.hl7.fhir.r5.model.Patient)
310      return Patient30_50.convertPatient((org.hl7.fhir.r5.model.Patient) src);
311    if (src instanceof org.hl7.fhir.r5.model.PaymentNotice)
312      return PaymentNotice30_50.convertPaymentNotice((org.hl7.fhir.r5.model.PaymentNotice) src);
313    if (src instanceof org.hl7.fhir.r5.model.Person)
314      return Person30_50.convertPerson((org.hl7.fhir.r5.model.Person) src);
315    if (src instanceof org.hl7.fhir.r5.model.PlanDefinition)
316      return PlanDefinition30_50.convertPlanDefinition((org.hl7.fhir.r5.model.PlanDefinition) src);
317    if (src instanceof org.hl7.fhir.r5.model.Practitioner)
318      return Practitioner30_50.convertPractitioner((org.hl7.fhir.r5.model.Practitioner) src);
319    if (src instanceof org.hl7.fhir.r5.model.PractitionerRole)
320      return PractitionerRole30_50.convertPractitionerRole((org.hl7.fhir.r5.model.PractitionerRole) src);
321    if (src instanceof org.hl7.fhir.r5.model.Provenance)
322      return Provenance30_50.convertProvenance((org.hl7.fhir.r5.model.Provenance) src);
323    if (src instanceof org.hl7.fhir.r5.model.Questionnaire)
324      return Questionnaire30_50.convertQuestionnaire((org.hl7.fhir.r5.model.Questionnaire) src);
325    if (src instanceof org.hl7.fhir.r5.model.QuestionnaireResponse)
326      return QuestionnaireResponse30_50.convertQuestionnaireResponse((org.hl7.fhir.r5.model.QuestionnaireResponse) src);
327    if (src instanceof org.hl7.fhir.r5.model.RelatedPerson)
328      return RelatedPerson30_50.convertRelatedPerson((org.hl7.fhir.r5.model.RelatedPerson) src);
329    if (src instanceof org.hl7.fhir.r5.model.RiskAssessment)
330      return RiskAssessment30_50.convertRiskAssessment((org.hl7.fhir.r5.model.RiskAssessment) src);
331    if (src instanceof org.hl7.fhir.r5.model.Schedule)
332      return Schedule30_50.convertSchedule((org.hl7.fhir.r5.model.Schedule) src);
333    if (src instanceof org.hl7.fhir.r5.model.SearchParameter)
334      return SearchParameter30_50.convertSearchParameter((org.hl7.fhir.r5.model.SearchParameter) src);
335    if (src instanceof org.hl7.fhir.r5.model.MolecularSequence)
336      return Sequence30_50.convertSequence((org.hl7.fhir.r5.model.MolecularSequence) src);
337    if (src instanceof org.hl7.fhir.r5.model.Slot) return Slot30_50.convertSlot((org.hl7.fhir.r5.model.Slot) src);
338    if (src instanceof org.hl7.fhir.r5.model.Specimen)
339      return Specimen30_50.convertSpecimen((org.hl7.fhir.r5.model.Specimen) src);
340    if (src instanceof org.hl7.fhir.r5.model.StructureDefinition)
341      return StructureDefinition30_50.convertStructureDefinition((org.hl7.fhir.r5.model.StructureDefinition) src);
342    if (src instanceof org.hl7.fhir.r5.model.StructureMap)
343      return StructureMap30_50.convertStructureMap((org.hl7.fhir.r5.model.StructureMap) src);
344    if (src instanceof org.hl7.fhir.r5.model.Substance)
345      return Substance30_50.convertSubstance((org.hl7.fhir.r5.model.Substance) src);
346    if (src instanceof org.hl7.fhir.r5.model.SupplyDelivery)
347      return SupplyDelivery30_50.convertSupplyDelivery((org.hl7.fhir.r5.model.SupplyDelivery) src);
348    if (src instanceof org.hl7.fhir.r5.model.TestReport)
349      return TestReport30_50.convertTestReport((org.hl7.fhir.r5.model.TestReport) src);
350    if (src instanceof org.hl7.fhir.r5.model.TestScript)
351      return TestScript30_50.convertTestScript((org.hl7.fhir.r5.model.TestScript) src);
352    if (src instanceof org.hl7.fhir.r5.model.ValueSet)
353      return ValueSet30_50.convertValueSet((org.hl7.fhir.r5.model.ValueSet) src);
354    if (advisor.failFastOnNullOrUnknownEntry()) {
355      throw new FHIRException("Unknown resource " + src.fhirType());
356    } else {
357      return null;
358    }
359  }
360
361  public void copyDomainResource(org.hl7.fhir.dstu3.model.DomainResource src,
362                                 org.hl7.fhir.r5.model.DomainResource tgt) throws FHIRException {
363    copyResource(src, tgt);
364    if (src.hasText()) tgt.setText(Narrative30_50.convertNarrative(src.getText()));
365    src.getContained().stream()
366      .map(this::convertResource)
367      .forEach(tgt::addContained);
368    src.getExtension().forEach(extension -> {
369      if (advisor.useAdvisorForExtension(ConversionContext30_50.INSTANCE.path(), extension)) {
370        org.hl7.fhir.r5.model.Extension convertExtension = new org.hl7.fhir.r5.model.Extension();
371        advisor.handleExtension(ConversionContext30_50.INSTANCE.path(), extension, convertExtension);
372        tgt.addExtension(convertExtension);
373      } else if (!advisor.ignoreExtension(ConversionContext30_50.INSTANCE.path(), extension)) {
374        tgt.addExtension(Extension30_50.convertExtension(extension));
375      }
376    });
377    src.getModifierExtension().stream()
378      .filter(extension -> !advisor.ignoreExtension(ConversionContext30_50.INSTANCE.path(), extension))
379      .map(Extension30_50::convertExtension)
380      .forEach(tgt::addModifierExtension);
381  }
382
383  public void copyDomainResource(org.hl7.fhir.r5.model.DomainResource src,
384                                 org.hl7.fhir.dstu3.model.DomainResource tgt) throws FHIRException {
385    copyResource(src, tgt);
386    if (src.hasText()) tgt.setText(Narrative30_50.convertNarrative(src.getText()));
387    src.getContained().stream()
388      .map(this::convertResource)
389      .forEach(tgt::addContained);
390    src.getExtension().forEach(extension -> {
391      if (advisor.useAdvisorForExtension(ConversionContext30_50.INSTANCE.path(), extension)) {
392        org.hl7.fhir.dstu3.model.Extension convertExtension = new org.hl7.fhir.dstu3.model.Extension();
393        advisor.handleExtension(ConversionContext30_50.INSTANCE.path(), extension, convertExtension);
394        tgt.addExtension(convertExtension);
395      } else if (!advisor.ignoreExtension(ConversionContext30_50.INSTANCE.path(), extension)) {
396        tgt.addExtension(Extension30_50.convertExtension(extension));
397      }
398    });
399    src.getModifierExtension().stream()
400      .filter(extension -> !advisor.ignoreExtension(ConversionContext30_50.INSTANCE.path(), extension))
401      .map(Extension30_50::convertExtension)
402      .forEach(tgt::addModifierExtension);
403  }
404}