001package org.hl7.fhir.convertors.conv10_40.resources10_40;
002
003import org.hl7.fhir.convertors.advisors.impl.BaseAdvisor_10_40;
004import org.hl7.fhir.convertors.context.ConversionContext10_40;
005import org.hl7.fhir.convertors.conv10_40.datatypes10_40.Extension10_40;
006import org.hl7.fhir.convertors.conv10_40.datatypes10_40.Meta10_40;
007import org.hl7.fhir.convertors.conv10_40.datatypes10_40.Narrative10_40;
008import org.hl7.fhir.exceptions.FHIRException;
009import org.hl7.fhir.r4.model.Extension;
010
011public class Resource10_40 {
012
013  public final BaseAdvisor_10_40 advisor;
014
015  public Resource10_40(BaseAdvisor_10_40 advisor) {
016    this.advisor = advisor;
017  }
018
019  public void copyResource(org.hl7.fhir.dstu2.model.Resource src, org.hl7.fhir.r4.model.Resource tgt) throws FHIRException {
020    tgt.setId(src.getId());
021    tgt.setMeta(Meta10_40.convertMeta(src.getMeta()));
022    tgt.setImplicitRules(src.getImplicitRules());
023    tgt.setLanguage(src.getLanguage());
024  }
025
026  public void copyResource(org.hl7.fhir.r4.model.Resource src, org.hl7.fhir.dstu2.model.Resource tgt) throws FHIRException {
027    tgt.setId(src.getId());
028    if (src.hasMeta()) tgt.setMeta(Meta10_40.convertMeta(src.getMeta()));
029    if (src.hasImplicitRules()) tgt.setImplicitRules(src.getImplicitRules());
030    if (src.hasLanguage()) tgt.setLanguage(src.getLanguage());
031  }
032
033  public org.hl7.fhir.r4.model.Resource convertResource(org.hl7.fhir.dstu2.model.Resource src) throws FHIRException {
034    if (src == null || src.isEmpty()) return null;
035    if (src instanceof org.hl7.fhir.dstu2.model.Parameters)
036      return Parameters10_40.convertParameters((org.hl7.fhir.dstu2.model.Parameters) src);
037    if (src instanceof org.hl7.fhir.dstu2.model.Appointment)
038      return Appointment10_40.convertAppointment((org.hl7.fhir.dstu2.model.Appointment) src);
039    if (src instanceof org.hl7.fhir.dstu2.model.AllergyIntolerance)
040      return AllergyIntolerance10_40.convertAllergyIntolerance((org.hl7.fhir.dstu2.model.AllergyIntolerance) src);
041    if (src instanceof org.hl7.fhir.dstu2.model.AppointmentResponse)
042      return AppointmentResponse10_40.convertAppointmentResponse((org.hl7.fhir.dstu2.model.AppointmentResponse) src);
043    if (src instanceof org.hl7.fhir.dstu2.model.AuditEvent)
044      return AuditEvent10_40.convertAuditEvent((org.hl7.fhir.dstu2.model.AuditEvent) src);
045    if (src instanceof org.hl7.fhir.dstu2.model.Basic)
046      return Basic10_40.convertBasic((org.hl7.fhir.dstu2.model.Basic) src);
047    if (src instanceof org.hl7.fhir.dstu2.model.Binary)
048      return Binary10_40.convertBinary((org.hl7.fhir.dstu2.model.Binary) src);
049    if (src instanceof org.hl7.fhir.dstu2.model.Bundle)
050      return Bundle10_40.convertBundle((org.hl7.fhir.dstu2.model.Bundle) src);
051    if (src instanceof org.hl7.fhir.dstu2.model.CarePlan)
052      return CarePlan10_40.convertCarePlan((org.hl7.fhir.dstu2.model.CarePlan) src);
053    if (src instanceof org.hl7.fhir.dstu2.model.Communication)
054      return Communication10_40.convertCommunication((org.hl7.fhir.dstu2.model.Communication) src);
055    if (src instanceof org.hl7.fhir.dstu2.model.CommunicationRequest)
056      return CommunicationRequest10_40.convertCommunicationRequest((org.hl7.fhir.dstu2.model.CommunicationRequest) src);
057    if (src instanceof org.hl7.fhir.dstu2.model.Composition)
058      return Composition10_40.convertComposition((org.hl7.fhir.dstu2.model.Composition) src);
059    if (src instanceof org.hl7.fhir.dstu2.model.ConceptMap)
060      return ConceptMap10_40.convertConceptMap((org.hl7.fhir.dstu2.model.ConceptMap) src);
061    if (src instanceof org.hl7.fhir.dstu2.model.Condition)
062      return Condition10_40.convertCondition((org.hl7.fhir.dstu2.model.Condition) src);
063    if (src instanceof org.hl7.fhir.dstu2.model.Conformance)
064      return Conformance10_40.convertConformance((org.hl7.fhir.dstu2.model.Conformance) src);
065    if (src instanceof org.hl7.fhir.dstu2.model.DataElement)
066      return DataElement10_40.convertDataElement((org.hl7.fhir.dstu2.model.DataElement) src);
067    if (src instanceof org.hl7.fhir.dstu2.model.DetectedIssue)
068      return DetectedIssue10_40.convertDetectedIssue((org.hl7.fhir.dstu2.model.DetectedIssue) src);
069    if (src instanceof org.hl7.fhir.dstu2.model.DeviceMetric)
070      return DeviceMetric10_40.convertDeviceMetric((org.hl7.fhir.dstu2.model.DeviceMetric) src);
071    if (src instanceof org.hl7.fhir.dstu2.model.DeviceUseStatement)
072      return DeviceUseStatement10_40.convertDeviceUseStatement((org.hl7.fhir.dstu2.model.DeviceUseStatement) src);
073    if (src instanceof org.hl7.fhir.dstu2.model.DiagnosticReport)
074      return DiagnosticReport10_40.convertDiagnosticReport((org.hl7.fhir.dstu2.model.DiagnosticReport) src);
075    if (src instanceof org.hl7.fhir.dstu2.model.DocumentReference)
076      return DocumentReference10_40.convertDocumentReference((org.hl7.fhir.dstu2.model.DocumentReference) src);
077    if (src instanceof org.hl7.fhir.dstu2.model.Encounter)
078      return Encounter10_40.convertEncounter((org.hl7.fhir.dstu2.model.Encounter) src);
079    if (src instanceof org.hl7.fhir.dstu2.model.EnrollmentRequest)
080      return EnrollmentRequest10_40.convertEnrollmentRequest((org.hl7.fhir.dstu2.model.EnrollmentRequest) src);
081    if (src instanceof org.hl7.fhir.dstu2.model.EnrollmentResponse)
082      return EnrollmentResponse10_40.convertEnrollmentResponse((org.hl7.fhir.dstu2.model.EnrollmentResponse) src);
083    if (src instanceof org.hl7.fhir.dstu2.model.EpisodeOfCare)
084      return EpisodeOfCare10_40.convertEpisodeOfCare((org.hl7.fhir.dstu2.model.EpisodeOfCare) src);
085    if (src instanceof org.hl7.fhir.dstu2.model.FamilyMemberHistory)
086      return FamilyMemberHistory10_40.convertFamilyMemberHistory((org.hl7.fhir.dstu2.model.FamilyMemberHistory) src);
087    if (src instanceof org.hl7.fhir.dstu2.model.Flag)
088      return Flag10_40.convertFlag((org.hl7.fhir.dstu2.model.Flag) src);
089    if (src instanceof org.hl7.fhir.dstu2.model.Group)
090      return Group10_40.convertGroup((org.hl7.fhir.dstu2.model.Group) src);
091    if (src instanceof org.hl7.fhir.dstu2.model.HealthcareService)
092      return HealthcareService10_40.convertHealthcareService((org.hl7.fhir.dstu2.model.HealthcareService) src);
093    if (src instanceof org.hl7.fhir.dstu2.model.ImplementationGuide)
094      return ImplementationGuide10_40.convertImplementationGuide((org.hl7.fhir.dstu2.model.ImplementationGuide) src);
095    if (src instanceof org.hl7.fhir.dstu2.model.List_)
096      return List10_40.convertList((org.hl7.fhir.dstu2.model.List_) src);
097    if (src instanceof org.hl7.fhir.dstu2.model.Location)
098      return Location10_40.convertLocation((org.hl7.fhir.dstu2.model.Location) src);
099    if (src instanceof org.hl7.fhir.dstu2.model.MedicationDispense)
100      return MedicationDispense10_40.convertMedicationDispense((org.hl7.fhir.dstu2.model.MedicationDispense) src);
101    if (src instanceof org.hl7.fhir.dstu2.model.MedicationStatement)
102      return MedicationStatement10_40.convertMedicationStatement((org.hl7.fhir.dstu2.model.MedicationStatement) src);
103    if (src instanceof org.hl7.fhir.dstu2.model.MedicationOrder)
104      return MedicationRequest10_40.convertMedicationRequest((org.hl7.fhir.dstu2.model.MedicationOrder) src);
105    if (src instanceof org.hl7.fhir.dstu2.model.MessageHeader)
106      return MessageHeader10_40.convertMessageHeader((org.hl7.fhir.dstu2.model.MessageHeader) src);
107    if (src instanceof org.hl7.fhir.dstu2.model.NamingSystem)
108      return NamingSystem10_40.convertNamingSystem((org.hl7.fhir.dstu2.model.NamingSystem) src);
109    if (src instanceof org.hl7.fhir.dstu2.model.Observation)
110      return Observation10_40.convertObservation((org.hl7.fhir.dstu2.model.Observation) src);
111    if (src instanceof org.hl7.fhir.dstu2.model.OperationDefinition)
112      return OperationDefinition10_40.convertOperationDefinition((org.hl7.fhir.dstu2.model.OperationDefinition) src);
113    if (src instanceof org.hl7.fhir.dstu2.model.OperationOutcome)
114      return OperationOutcome10_40.convertOperationOutcome((org.hl7.fhir.dstu2.model.OperationOutcome) src);
115    if (src instanceof org.hl7.fhir.dstu2.model.Organization)
116      return Organization10_40.convertOrganization((org.hl7.fhir.dstu2.model.Organization) src);
117    if (src instanceof org.hl7.fhir.dstu2.model.Patient)
118      return Patient10_40.convertPatient((org.hl7.fhir.dstu2.model.Patient) src);
119    if (src instanceof org.hl7.fhir.dstu2.model.Person)
120      return Person10_40.convertPerson((org.hl7.fhir.dstu2.model.Person) src);
121    if (src instanceof org.hl7.fhir.dstu2.model.Practitioner)
122      return Practitioner10_40.convertPractitioner((org.hl7.fhir.dstu2.model.Practitioner) src);
123    if (src instanceof org.hl7.fhir.dstu2.model.Questionnaire)
124      return Questionnaire10_40.convertQuestionnaire((org.hl7.fhir.dstu2.model.Questionnaire) src);
125    if (src instanceof org.hl7.fhir.dstu2.model.QuestionnaireResponse)
126      return QuestionnaireResponse10_40.convertQuestionnaireResponse((org.hl7.fhir.dstu2.model.QuestionnaireResponse) src);
127    if (src instanceof org.hl7.fhir.dstu2.model.RiskAssessment)
128      return RiskAssessment10_40.convertRiskAssessment((org.hl7.fhir.dstu2.model.RiskAssessment) src);
129    if (src instanceof org.hl7.fhir.dstu2.model.Schedule)
130      return Schedule10_40.convertSchedule((org.hl7.fhir.dstu2.model.Schedule) src);
131    if (src instanceof org.hl7.fhir.dstu2.model.SearchParameter)
132      return SearchParameter10_40.convertSearchParameter((org.hl7.fhir.dstu2.model.SearchParameter) src);
133    if (src instanceof org.hl7.fhir.dstu2.model.Slot)
134      return Slot10_40.convertSlot((org.hl7.fhir.dstu2.model.Slot) src);
135    if (src instanceof org.hl7.fhir.dstu2.model.StructureDefinition)
136      return StructureDefinition10_40.convertStructureDefinition((org.hl7.fhir.dstu2.model.StructureDefinition) src);
137    if (src instanceof org.hl7.fhir.dstu2.model.Subscription)
138      return Subscription10_40.convertSubscription((org.hl7.fhir.dstu2.model.Subscription) src);
139    if (src instanceof org.hl7.fhir.dstu2.model.Substance)
140      return Substance10_40.convertSubstance((org.hl7.fhir.dstu2.model.Substance) src);
141    if (src instanceof org.hl7.fhir.dstu2.model.SupplyDelivery)
142      return SupplyDelivery10_40.convertSupplyDelivery((org.hl7.fhir.dstu2.model.SupplyDelivery) src);
143    if (src instanceof org.hl7.fhir.dstu2.model.SupplyRequest)
144      return SupplyRequest10_40.convertSupplyRequest((org.hl7.fhir.dstu2.model.SupplyRequest) src);
145    if (src instanceof org.hl7.fhir.dstu2.model.TestScript)
146      return TestScript10_40.convertTestScript((org.hl7.fhir.dstu2.model.TestScript) src);
147    if (src instanceof org.hl7.fhir.dstu2.model.ValueSet)
148      return ValueSet10_40.convertValueSet((org.hl7.fhir.dstu2.model.ValueSet) src, advisor);
149    if (src instanceof org.hl7.fhir.dstu2.model.Procedure)
150      return Procedure10_40.convertProcedure((org.hl7.fhir.dstu2.model.Procedure) src);
151    if (src instanceof org.hl7.fhir.dstu2.model.Medication)
152      return Medication10_40.convertMedication((org.hl7.fhir.dstu2.model.Medication) src);
153    if (advisor.failFastOnNullOrUnknownEntry()) {
154      throw new FHIRException("Unknown resource " + src.fhirType());
155    } else {
156      return null;
157    }
158  }
159
160  public org.hl7.fhir.dstu2.model.Resource convertResource(org.hl7.fhir.r4.model.Resource src) throws FHIRException {
161    if (src == null || src.isEmpty()) return null;
162    if (src instanceof org.hl7.fhir.r4.model.Parameters)
163      return Parameters10_40.convertParameters((org.hl7.fhir.r4.model.Parameters) src);
164    if (src instanceof org.hl7.fhir.r4.model.Appointment)
165      return Appointment10_40.convertAppointment((org.hl7.fhir.r4.model.Appointment) src);
166    if (src instanceof org.hl7.fhir.r4.model.AppointmentResponse)
167      return AppointmentResponse10_40.convertAppointmentResponse((org.hl7.fhir.r4.model.AppointmentResponse) src);
168    if (src instanceof org.hl7.fhir.r4.model.AuditEvent)
169      return AuditEvent10_40.convertAuditEvent((org.hl7.fhir.r4.model.AuditEvent) src);
170    if (src instanceof org.hl7.fhir.r4.model.Basic)
171      return Basic10_40.convertBasic((org.hl7.fhir.r4.model.Basic) src);
172    if (src instanceof org.hl7.fhir.r4.model.Binary)
173      return Binary10_40.convertBinary((org.hl7.fhir.r4.model.Binary) src);
174    if (src instanceof org.hl7.fhir.r4.model.Bundle)
175      return Bundle10_40.convertBundle((org.hl7.fhir.r4.model.Bundle) src, advisor);
176    if (src instanceof org.hl7.fhir.r4.model.CarePlan)
177      return CarePlan10_40.convertCarePlan((org.hl7.fhir.r4.model.CarePlan) src);
178    if (src instanceof org.hl7.fhir.r4.model.Communication)
179      return Communication10_40.convertCommunication((org.hl7.fhir.r4.model.Communication) src);
180    if (src instanceof org.hl7.fhir.r4.model.CommunicationRequest)
181      return CommunicationRequest10_40.convertCommunicationRequest((org.hl7.fhir.r4.model.CommunicationRequest) src);
182    if (src instanceof org.hl7.fhir.r4.model.Composition)
183      return Composition10_40.convertComposition((org.hl7.fhir.r4.model.Composition) src);
184    if (src instanceof org.hl7.fhir.r4.model.ConceptMap)
185      return ConceptMap10_40.convertConceptMap((org.hl7.fhir.r4.model.ConceptMap) src);
186    if (src instanceof org.hl7.fhir.r4.model.Condition)
187      return Condition10_40.convertCondition((org.hl7.fhir.r4.model.Condition) src);
188    if (src instanceof org.hl7.fhir.r4.model.CapabilityStatement)
189      return Conformance10_40.convertConformance((org.hl7.fhir.r4.model.CapabilityStatement) src, advisor);
190    if (src instanceof org.hl7.fhir.r4.model.DetectedIssue)
191      return DetectedIssue10_40.convertDetectedIssue((org.hl7.fhir.r4.model.DetectedIssue) src);
192    if (src instanceof org.hl7.fhir.r4.model.DeviceMetric)
193      return DeviceMetric10_40.convertDeviceMetric((org.hl7.fhir.r4.model.DeviceMetric) src);
194    if (src instanceof org.hl7.fhir.r4.model.DeviceUseStatement)
195      return DeviceUseStatement10_40.convertDeviceUseStatement((org.hl7.fhir.r4.model.DeviceUseStatement) src);
196    if (src instanceof org.hl7.fhir.r4.model.DiagnosticReport)
197      return DiagnosticReport10_40.convertDiagnosticReport((org.hl7.fhir.r4.model.DiagnosticReport) src);
198    if (src instanceof org.hl7.fhir.r4.model.DocumentReference)
199      return DocumentReference10_40.convertDocumentReference((org.hl7.fhir.r4.model.DocumentReference) src);
200    if (src instanceof org.hl7.fhir.r4.model.Encounter)
201      return Encounter10_40.convertEncounter((org.hl7.fhir.r4.model.Encounter) src);
202    if (src instanceof org.hl7.fhir.r4.model.EnrollmentRequest)
203      return EnrollmentRequest10_40.convertEnrollmentRequest((org.hl7.fhir.r4.model.EnrollmentRequest) src);
204    if (src instanceof org.hl7.fhir.r4.model.EnrollmentResponse)
205      return EnrollmentResponse10_40.convertEnrollmentResponse((org.hl7.fhir.r4.model.EnrollmentResponse) src);
206    if (src instanceof org.hl7.fhir.r4.model.EpisodeOfCare)
207      return EpisodeOfCare10_40.convertEpisodeOfCare((org.hl7.fhir.r4.model.EpisodeOfCare) src);
208    if (src instanceof org.hl7.fhir.r4.model.FamilyMemberHistory)
209      return FamilyMemberHistory10_40.convertFamilyMemberHistory((org.hl7.fhir.r4.model.FamilyMemberHistory) src);
210    if (src instanceof org.hl7.fhir.r4.model.Flag) return Flag10_40.convertFlag((org.hl7.fhir.r4.model.Flag) src);
211    if (src instanceof org.hl7.fhir.r4.model.Group)
212      return Group10_40.convertGroup((org.hl7.fhir.r4.model.Group) src);
213    if (src instanceof org.hl7.fhir.r4.model.HealthcareService)
214      return HealthcareService10_40.convertHealthcareService((org.hl7.fhir.r4.model.HealthcareService) src);
215    if (src instanceof org.hl7.fhir.r4.model.ImplementationGuide)
216      return ImplementationGuide10_40.convertImplementationGuide((org.hl7.fhir.r4.model.ImplementationGuide) src);
217    if (src instanceof org.hl7.fhir.r4.model.ListResource)
218      return List10_40.convertList((org.hl7.fhir.r4.model.ListResource) src);
219    if (src instanceof org.hl7.fhir.r4.model.Location)
220      return Location10_40.convertLocation((org.hl7.fhir.r4.model.Location) src);
221    if (src instanceof org.hl7.fhir.r4.model.MedicationDispense)
222      return MedicationDispense10_40.convertMedicationDispense((org.hl7.fhir.r4.model.MedicationDispense) src);
223    if (src instanceof org.hl7.fhir.r4.model.MedicationStatement)
224      return MedicationStatement10_40.convertMedicationStatement((org.hl7.fhir.r4.model.MedicationStatement) src);
225    if (src instanceof org.hl7.fhir.r4.model.MessageHeader)
226      return MessageHeader10_40.convertMessageHeader((org.hl7.fhir.r4.model.MessageHeader) src);
227    if (src instanceof org.hl7.fhir.r4.model.NamingSystem)
228      return NamingSystem10_40.convertNamingSystem((org.hl7.fhir.r4.model.NamingSystem) src);
229    if (src instanceof org.hl7.fhir.r4.model.Observation)
230      return Observation10_40.convertObservation((org.hl7.fhir.r4.model.Observation) src);
231    if (src instanceof org.hl7.fhir.r4.model.OperationDefinition)
232      return OperationDefinition10_40.convertOperationDefinition((org.hl7.fhir.r4.model.OperationDefinition) src);
233    if (src instanceof org.hl7.fhir.r4.model.OperationOutcome)
234      return OperationOutcome10_40.convertOperationOutcome((org.hl7.fhir.r4.model.OperationOutcome) src);
235    if (src instanceof org.hl7.fhir.r4.model.Organization)
236      return Organization10_40.convertOrganization((org.hl7.fhir.r4.model.Organization) src);
237    if (src instanceof org.hl7.fhir.r4.model.Patient)
238      return Patient10_40.convertPatient((org.hl7.fhir.r4.model.Patient) src);
239    if (src instanceof org.hl7.fhir.r4.model.Person)
240      return Person10_40.convertPerson((org.hl7.fhir.r4.model.Person) src);
241    if (src instanceof org.hl7.fhir.r4.model.Practitioner)
242      return Practitioner10_40.convertPractitioner((org.hl7.fhir.r4.model.Practitioner) src);
243    if (src instanceof org.hl7.fhir.r4.model.Questionnaire)
244      return Questionnaire10_40.convertQuestionnaire((org.hl7.fhir.r4.model.Questionnaire) src, advisor);
245    if (src instanceof org.hl7.fhir.r4.model.QuestionnaireResponse)
246      return QuestionnaireResponse10_40.convertQuestionnaireResponse((org.hl7.fhir.r4.model.QuestionnaireResponse) src);
247    if (src instanceof org.hl7.fhir.r4.model.RiskAssessment)
248      return RiskAssessment10_40.convertRiskAssessment((org.hl7.fhir.r4.model.RiskAssessment) src);
249    if (src instanceof org.hl7.fhir.r4.model.Schedule)
250      return Schedule10_40.convertSchedule((org.hl7.fhir.r4.model.Schedule) src);
251    if (src instanceof org.hl7.fhir.r4.model.SearchParameter)
252      return SearchParameter10_40.convertSearchParameter((org.hl7.fhir.r4.model.SearchParameter) src);
253    if (src instanceof org.hl7.fhir.r4.model.Slot) return Slot10_40.convertSlot((org.hl7.fhir.r4.model.Slot) src);
254    if (src instanceof org.hl7.fhir.r4.model.StructureDefinition)
255      return StructureDefinition10_40.convertStructureDefinition((org.hl7.fhir.r4.model.StructureDefinition) src);
256    if (src instanceof org.hl7.fhir.r4.model.Subscription)
257      return Subscription10_40.convertSubscription((org.hl7.fhir.r4.model.Subscription) src);
258    if (src instanceof org.hl7.fhir.r4.model.Substance)
259      return Substance10_40.convertSubstance((org.hl7.fhir.r4.model.Substance) src);
260    if (src instanceof org.hl7.fhir.r4.model.SupplyDelivery)
261      return SupplyDelivery10_40.convertSupplyDelivery((org.hl7.fhir.r4.model.SupplyDelivery) src);
262    if (src instanceof org.hl7.fhir.r4.model.SupplyRequest)
263      return SupplyRequest10_40.convertSupplyRequest((org.hl7.fhir.r4.model.SupplyRequest) src);
264    if (src instanceof org.hl7.fhir.r4.model.TestScript)
265      return TestScript10_40.convertTestScript((org.hl7.fhir.r4.model.TestScript) src);
266    if (src instanceof org.hl7.fhir.r4.model.ValueSet)
267      return ValueSet10_40.convertValueSet((org.hl7.fhir.r4.model.ValueSet) src, advisor);
268    if (advisor.failFastOnNullOrUnknownEntry()) {
269      throw new FHIRException("Unknown resource " + src.fhirType());
270    } else {
271      return null;
272    }
273  }
274
275  public void copyDomainResource(org.hl7.fhir.dstu2.model.DomainResource src,
276                                 org.hl7.fhir.r4.model.DomainResource tgt) throws FHIRException {
277    copyResource(src, tgt);
278    if (src.hasText()) tgt.setText(Narrative10_40.convertNarrative(src.getText()));
279    src.getContained().stream()
280      .map(this::convertResource)
281      .forEach(tgt::addContained);
282    src.getExtension().forEach(ext -> {
283      if (advisor.useAdvisorForExtension(ConversionContext10_40.INSTANCE.path(), ext)) {
284        Extension convertExtension = new Extension();
285        advisor.handleExtension(ConversionContext10_40.INSTANCE.path(), ext, convertExtension);
286        tgt.addExtension(convertExtension);
287      } else if (!advisor.ignoreExtension(ConversionContext10_40.INSTANCE.path(), ext)) {
288        tgt.addExtension(Extension10_40.convertExtension(ext));
289      }
290    });
291    src.getModifierExtension().stream()
292      .filter(extension -> !advisor.ignoreExtension(ConversionContext10_40.INSTANCE.path(), extension))
293      .map(Extension10_40::convertExtension)
294      .forEach(tgt::addModifierExtension);
295  }
296
297  public void copyDomainResource(org.hl7.fhir.r4.model.DomainResource src,
298                                 org.hl7.fhir.dstu2.model.DomainResource tgt) throws FHIRException {
299    copyResource(src, tgt);
300    if (src.hasText()) tgt.setText(Narrative10_40.convertNarrative(src.getText()));
301    src.getContained().stream()
302      .map(this::convertResource)
303      .forEach(tgt::addContained);
304    src.getExtension().forEach(extension -> {
305      if (advisor.useAdvisorForExtension(ConversionContext10_40.INSTANCE.path(), extension)) {
306        org.hl7.fhir.dstu2.model.Extension convertExtension = new org.hl7.fhir.dstu2.model.Extension();
307        advisor.handleExtension(ConversionContext10_40.INSTANCE.path(), extension, convertExtension);
308        tgt.addExtension(convertExtension);
309      } else if (!advisor.ignoreExtension(ConversionContext10_40.INSTANCE.path(), extension)) {
310        tgt.addExtension(Extension10_40.convertExtension(extension));
311      }
312    });
313    src.getModifierExtension().stream()
314      .filter(extension -> !advisor.ignoreExtension(ConversionContext10_40.INSTANCE.path(), extension))
315      .map(Extension10_40::convertExtension)
316      .forEach(tgt::addModifierExtension);
317  }
318}