
001package org.hl7.fhir.convertors.conv30_40.resources30_40; 002 003import org.hl7.fhir.convertors.advisors.impl.BaseAdvisor_30_40; 004import org.hl7.fhir.convertors.context.ConversionContext30_40; 005import org.hl7.fhir.convertors.conv30_40.datatypes30_40.Extension30_40; 006import org.hl7.fhir.convertors.conv30_40.datatypes30_40.Meta30_40; 007import org.hl7.fhir.convertors.conv30_40.datatypes30_40.Narrative30_40; 008import org.hl7.fhir.exceptions.FHIRException; 009 010import java.util.Arrays; 011 012public class Resource30_40 { 013 014 public final BaseAdvisor_30_40 advisor; 015 016 public Resource30_40(BaseAdvisor_30_40 advisor) { 017 this.advisor = advisor; 018 } 019 020 public void copyResource(org.hl7.fhir.dstu3.model.Resource src, org.hl7.fhir.r4.model.Resource tgt) throws FHIRException { 021 if (src.hasId()) tgt.setId(src.getId()); 022 if (src.hasMeta()) tgt.setMeta(Meta30_40.convertMeta(src.getMeta())); 023 if (src.hasImplicitRules()) tgt.setImplicitRules(src.getImplicitRules()); 024 if (src.hasLanguage()) tgt.setLanguage(src.getLanguage()); 025 } 026 027 public void copyResource(org.hl7.fhir.r4.model.Resource src, org.hl7.fhir.dstu3.model.Resource tgt) throws FHIRException { 028 if (src.hasId()) tgt.setId(src.getId()); 029 if (src.hasMeta()) tgt.setMeta(Meta30_40.convertMeta(src.getMeta())); 030 if (src.hasImplicitRules()) tgt.setImplicitRules(src.getImplicitRules()); 031 if (src.hasLanguage()) tgt.setLanguage(src.getLanguage()); 032 } 033 034 public org.hl7.fhir.r4.model.Resource convertResource(org.hl7.fhir.dstu3.model.Resource src) throws FHIRException { 035 return convertResource(src, new BaseAdvisor_30_40()); 036 } 037 038 public org.hl7.fhir.r4.model.Resource convertResource(org.hl7.fhir.dstu3.model.Resource src, BaseAdvisor_30_40 advisor) throws FHIRException { 039 if (src == null) return null; 040 if (src instanceof org.hl7.fhir.dstu3.model.Parameters) 041 return Parameters30_40.convertParameters((org.hl7.fhir.dstu3.model.Parameters) src); 042 if (src instanceof org.hl7.fhir.dstu3.model.Account) 043 return Account30_40.convertAccount((org.hl7.fhir.dstu3.model.Account) src); 044 if (src instanceof org.hl7.fhir.dstu3.model.ActivityDefinition) 045 return ActivityDefinition30_40.convertActivityDefinition((org.hl7.fhir.dstu3.model.ActivityDefinition) src); 046 if (src instanceof org.hl7.fhir.dstu3.model.AllergyIntolerance) 047 return AllergyIntolerance30_40.convertAllergyIntolerance((org.hl7.fhir.dstu3.model.AllergyIntolerance) src); 048 if (src instanceof org.hl7.fhir.dstu3.model.Appointment) 049 return Appointment30_40.convertAppointment((org.hl7.fhir.dstu3.model.Appointment) src); 050 if (src instanceof org.hl7.fhir.dstu3.model.AppointmentResponse) 051 return AppointmentResponse30_40.convertAppointmentResponse((org.hl7.fhir.dstu3.model.AppointmentResponse) src); 052 if (src instanceof org.hl7.fhir.dstu3.model.AuditEvent) 053 return AuditEvent30_40.convertAuditEvent((org.hl7.fhir.dstu3.model.AuditEvent) src); 054 if (src instanceof org.hl7.fhir.dstu3.model.Basic) 055 return Basic30_40.convertBasic((org.hl7.fhir.dstu3.model.Basic) src); 056 if (src instanceof org.hl7.fhir.dstu3.model.Binary) 057 return Binary30_40.convertBinary((org.hl7.fhir.dstu3.model.Binary) src); 058 if (src instanceof org.hl7.fhir.dstu3.model.BodySite) 059 return BodySite30_40.convertBodySite((org.hl7.fhir.dstu3.model.BodySite) src); 060 if (src instanceof org.hl7.fhir.dstu3.model.Bundle) 061 return Bundle30_40.convertBundle((org.hl7.fhir.dstu3.model.Bundle) src); 062 if (src instanceof org.hl7.fhir.dstu3.model.CapabilityStatement) 063 return CapabilityStatement30_40.convertCapabilityStatement((org.hl7.fhir.dstu3.model.CapabilityStatement) src); 064 if (src instanceof org.hl7.fhir.dstu3.model.CarePlan) 065 return CarePlan30_40.convertCarePlan((org.hl7.fhir.dstu3.model.CarePlan) src); 066 if (src instanceof org.hl7.fhir.dstu3.model.CareTeam) 067 return CareTeam30_40.convertCareTeam((org.hl7.fhir.dstu3.model.CareTeam) src); 068 if (src instanceof org.hl7.fhir.dstu3.model.ClinicalImpression) 069 return ClinicalImpression30_40.convertClinicalImpression((org.hl7.fhir.dstu3.model.ClinicalImpression) src); 070 if (src instanceof org.hl7.fhir.dstu3.model.CodeSystem) 071 return CodeSystem30_40.convertCodeSystem((org.hl7.fhir.dstu3.model.CodeSystem) src); 072 if (src instanceof org.hl7.fhir.dstu3.model.Communication) 073 return Communication30_40.convertCommunication((org.hl7.fhir.dstu3.model.Communication) src); 074 if (src instanceof org.hl7.fhir.dstu3.model.CommunicationRequest) 075 return CommunicationRequest30_40.convertCommunicationRequest((org.hl7.fhir.dstu3.model.CommunicationRequest) src); 076 if (src instanceof org.hl7.fhir.dstu3.model.CompartmentDefinition) 077 return CompartmentDefinition30_40.convertCompartmentDefinition((org.hl7.fhir.dstu3.model.CompartmentDefinition) src); 078 if (src instanceof org.hl7.fhir.dstu3.model.Composition) 079 return Composition30_40.convertComposition((org.hl7.fhir.dstu3.model.Composition) src); 080 if (src instanceof org.hl7.fhir.dstu3.model.ConceptMap) 081 return ConceptMap30_40.convertConceptMap((org.hl7.fhir.dstu3.model.ConceptMap) src); 082 if (src instanceof org.hl7.fhir.dstu3.model.Condition) 083 return Condition30_40.convertCondition((org.hl7.fhir.dstu3.model.Condition) src); 084 if (src instanceof org.hl7.fhir.dstu3.model.Consent) 085 return Consent30_40.convertConsent((org.hl7.fhir.dstu3.model.Consent) src); 086 if (src instanceof org.hl7.fhir.dstu3.model.Coverage) 087 return Coverage30_40.convertCoverage((org.hl7.fhir.dstu3.model.Coverage) src); 088 if (src instanceof org.hl7.fhir.dstu3.model.DataElement) 089 return DataElement30_40.convertDataElement((org.hl7.fhir.dstu3.model.DataElement) src); 090 if (src instanceof org.hl7.fhir.dstu3.model.DetectedIssue) 091 return DetectedIssue30_40.convertDetectedIssue((org.hl7.fhir.dstu3.model.DetectedIssue) src); 092 if (src instanceof org.hl7.fhir.dstu3.model.DeviceUseStatement) 093 return DeviceUseStatement30_40.convertDeviceUseStatement((org.hl7.fhir.dstu3.model.DeviceUseStatement) src); 094 if (src instanceof org.hl7.fhir.dstu3.model.DiagnosticReport) 095 return DiagnosticReport30_40.convertDiagnosticReport((org.hl7.fhir.dstu3.model.DiagnosticReport) src); 096 if (src instanceof org.hl7.fhir.dstu3.model.DocumentReference) 097 return DocumentReference30_40.convertDocumentReference((org.hl7.fhir.dstu3.model.DocumentReference) src); 098 if (src instanceof org.hl7.fhir.dstu3.model.Encounter) 099 return Encounter30_40.convertEncounter((org.hl7.fhir.dstu3.model.Encounter) src); 100 if (src instanceof org.hl7.fhir.dstu3.model.Endpoint) 101 return Endpoint30_40.convertEndpoint((org.hl7.fhir.dstu3.model.Endpoint) src); 102 if (src instanceof org.hl7.fhir.dstu3.model.EpisodeOfCare) 103 return EpisodeOfCare30_40.convertEpisodeOfCare((org.hl7.fhir.dstu3.model.EpisodeOfCare) src); 104 if (src instanceof org.hl7.fhir.dstu3.model.ExpansionProfile) 105 return ExpansionProfile30_40.convertExpansionProfile((org.hl7.fhir.dstu3.model.ExpansionProfile) src); 106 if (src instanceof org.hl7.fhir.dstu3.model.FamilyMemberHistory) 107 return FamilyMemberHistory30_40.convertFamilyMemberHistory((org.hl7.fhir.dstu3.model.FamilyMemberHistory) src); 108 if (src instanceof org.hl7.fhir.dstu3.model.Flag) return Flag30_40.convertFlag((org.hl7.fhir.dstu3.model.Flag) src); 109 if (src instanceof org.hl7.fhir.dstu3.model.Goal) return Goal30_40.convertGoal((org.hl7.fhir.dstu3.model.Goal) src); 110 if (src instanceof org.hl7.fhir.dstu3.model.GraphDefinition) 111 return GraphDefinition30_40.convertGraphDefinition((org.hl7.fhir.dstu3.model.GraphDefinition) src); 112 if (src instanceof org.hl7.fhir.dstu3.model.Group) 113 return Group30_40.convertGroup((org.hl7.fhir.dstu3.model.Group) src); 114 if (src instanceof org.hl7.fhir.dstu3.model.HealthcareService) 115 return HealthcareService30_40.convertHealthcareService((org.hl7.fhir.dstu3.model.HealthcareService) src); 116 if (src instanceof org.hl7.fhir.dstu3.model.ImagingStudy) 117 return ImagingStudy30_40.convertImagingStudy((org.hl7.fhir.dstu3.model.ImagingStudy) src); 118 if (src instanceof org.hl7.fhir.dstu3.model.Immunization) 119 return Immunization30_40.convertImmunization((org.hl7.fhir.dstu3.model.Immunization) src); 120 if (src instanceof org.hl7.fhir.dstu3.model.ImplementationGuide) 121 return ImplementationGuide30_40.convertImplementationGuide((org.hl7.fhir.dstu3.model.ImplementationGuide) src); 122 if (src instanceof org.hl7.fhir.dstu3.model.Library) 123 return Library30_40.convertLibrary((org.hl7.fhir.dstu3.model.Library) src); 124 if (src instanceof org.hl7.fhir.dstu3.model.Linkage) 125 return Linkage30_40.convertLinkage((org.hl7.fhir.dstu3.model.Linkage) src); 126 if (src instanceof org.hl7.fhir.dstu3.model.ListResource) 127 return List30_40.convertList((org.hl7.fhir.dstu3.model.ListResource) src); 128 if (src instanceof org.hl7.fhir.dstu3.model.Location) 129 return Location30_40.convertLocation((org.hl7.fhir.dstu3.model.Location) src); 130 if (src instanceof org.hl7.fhir.dstu3.model.Media) 131 return Media30_40.convertMedia((org.hl7.fhir.dstu3.model.Media) src); 132 if (src instanceof org.hl7.fhir.dstu3.model.Medication) 133 return Medication30_40.convertMedication((org.hl7.fhir.dstu3.model.Medication) src); 134 if (src instanceof org.hl7.fhir.dstu3.model.MedicationAdministration) 135 return MedicationAdministration30_40.convertMedicationAdministration((org.hl7.fhir.dstu3.model.MedicationAdministration) src); 136 if (src instanceof org.hl7.fhir.dstu3.model.MedicationDispense) 137 return MedicationDispense30_40.convertMedicationDispense((org.hl7.fhir.dstu3.model.MedicationDispense) src); 138 if (src instanceof org.hl7.fhir.dstu3.model.MedicationRequest) 139 return MedicationRequest30_40.convertMedicationRequest((org.hl7.fhir.dstu3.model.MedicationRequest) src); 140 if (src instanceof org.hl7.fhir.dstu3.model.MedicationStatement) 141 return MedicationStatement30_40.convertMedicationStatement((org.hl7.fhir.dstu3.model.MedicationStatement) src); 142 if (src instanceof org.hl7.fhir.dstu3.model.MessageDefinition) 143 return MessageDefinition30_40.convertMessageDefinition((org.hl7.fhir.dstu3.model.MessageDefinition) src); 144 if (src instanceof org.hl7.fhir.dstu3.model.MessageHeader) 145 return MessageHeader30_40.convertMessageHeader((org.hl7.fhir.dstu3.model.MessageHeader) src); 146 if (src instanceof org.hl7.fhir.dstu3.model.NamingSystem) 147 return NamingSystem30_40.convertNamingSystem((org.hl7.fhir.dstu3.model.NamingSystem) src); 148 if (src instanceof org.hl7.fhir.dstu3.model.Observation) 149 return Observation30_40.convertObservation((org.hl7.fhir.dstu3.model.Observation) src); 150 if (src instanceof org.hl7.fhir.dstu3.model.OperationDefinition) 151 return OperationDefinition30_40.convertOperationDefinition((org.hl7.fhir.dstu3.model.OperationDefinition) src); 152 if (src instanceof org.hl7.fhir.dstu3.model.OperationOutcome) 153 return OperationOutcome30_40.convertOperationOutcome((org.hl7.fhir.dstu3.model.OperationOutcome) src); 154 if (src instanceof org.hl7.fhir.dstu3.model.Organization) 155 return Organization30_40.convertOrganization((org.hl7.fhir.dstu3.model.Organization) src); 156 if (src instanceof org.hl7.fhir.dstu3.model.Patient) 157 return Patient30_40.convertPatient((org.hl7.fhir.dstu3.model.Patient) src); 158 if (src instanceof org.hl7.fhir.dstu3.model.PaymentNotice) 159 return PaymentNotice30_40.convertPaymentNotice((org.hl7.fhir.dstu3.model.PaymentNotice) src); 160 if (src instanceof org.hl7.fhir.dstu3.model.Person) 161 return Person30_40.convertPerson((org.hl7.fhir.dstu3.model.Person) src); 162 if (src instanceof org.hl7.fhir.dstu3.model.PlanDefinition) 163 return PlanDefinition30_40.convertPlanDefinition((org.hl7.fhir.dstu3.model.PlanDefinition) src); 164 if (src instanceof org.hl7.fhir.dstu3.model.Practitioner) 165 return Practitioner30_40.convertPractitioner((org.hl7.fhir.dstu3.model.Practitioner) src); 166 if (src instanceof org.hl7.fhir.dstu3.model.PractitionerRole) 167 return PractitionerRole30_40.convertPractitionerRole((org.hl7.fhir.dstu3.model.PractitionerRole) src); 168 if (src instanceof org.hl7.fhir.dstu3.model.Procedure) 169 return Procedure30_40.convertProcedure((org.hl7.fhir.dstu3.model.Procedure) src); 170 if (src instanceof org.hl7.fhir.dstu3.model.ProcedureRequest) 171 return ProcedureRequest30_40.convertProcedureRequest((org.hl7.fhir.dstu3.model.ProcedureRequest) src); 172 if (src instanceof org.hl7.fhir.dstu3.model.Provenance) 173 return Provenance30_40.convertProvenance((org.hl7.fhir.dstu3.model.Provenance) src); 174 if (src instanceof org.hl7.fhir.dstu3.model.Questionnaire) 175 return Questionnaire30_40.convertQuestionnaire((org.hl7.fhir.dstu3.model.Questionnaire) src); 176 if (src instanceof org.hl7.fhir.dstu3.model.QuestionnaireResponse) 177 return QuestionnaireResponse30_40.convertQuestionnaireResponse((org.hl7.fhir.dstu3.model.QuestionnaireResponse) src); 178 if (src instanceof org.hl7.fhir.dstu3.model.RelatedPerson) 179 return RelatedPerson30_40.convertRelatedPerson((org.hl7.fhir.dstu3.model.RelatedPerson) src); 180 if (src instanceof org.hl7.fhir.dstu3.model.RiskAssessment) 181 return RiskAssessment30_40.convertRiskAssessment((org.hl7.fhir.dstu3.model.RiskAssessment) src); 182 if (src instanceof org.hl7.fhir.dstu3.model.Schedule) 183 return Schedule30_40.convertSchedule((org.hl7.fhir.dstu3.model.Schedule) src); 184 if (src instanceof org.hl7.fhir.dstu3.model.SearchParameter) 185 return SearchParameter30_40.convertSearchParameter((org.hl7.fhir.dstu3.model.SearchParameter) src); 186 if (src instanceof org.hl7.fhir.dstu3.model.Sequence) 187 return Sequence30_40.convertSequence((org.hl7.fhir.dstu3.model.Sequence) src); 188 if (src instanceof org.hl7.fhir.dstu3.model.Slot) return Slot30_40.convertSlot((org.hl7.fhir.dstu3.model.Slot) src); 189 if (src instanceof org.hl7.fhir.dstu3.model.Specimen) 190 return Specimen30_40.convertSpecimen((org.hl7.fhir.dstu3.model.Specimen) src); 191 if (src instanceof org.hl7.fhir.dstu3.model.StructureDefinition) 192 return StructureDefinition30_40.convertStructureDefinition((org.hl7.fhir.dstu3.model.StructureDefinition) src); 193 if (src instanceof org.hl7.fhir.dstu3.model.StructureMap) 194 return StructureMap30_40.convertStructureMap((org.hl7.fhir.dstu3.model.StructureMap) src); 195 if (src instanceof org.hl7.fhir.dstu3.model.Subscription) 196 return Subscription30_40.convertSubscription((org.hl7.fhir.dstu3.model.Subscription) src); 197 if (src instanceof org.hl7.fhir.dstu3.model.Substance) 198 return Substance30_40.convertSubstance((org.hl7.fhir.dstu3.model.Substance) src); 199 if (src instanceof org.hl7.fhir.dstu3.model.SupplyDelivery) 200 return SupplyDelivery30_40.convertSupplyDelivery((org.hl7.fhir.dstu3.model.SupplyDelivery) src); 201 if (src instanceof org.hl7.fhir.dstu3.model.Task) 202 return Task30_40.convertTask((org.hl7.fhir.dstu3.model.Task) src); 203 if (src instanceof org.hl7.fhir.dstu3.model.TestReport) 204 return TestReport30_40.convertTestReport((org.hl7.fhir.dstu3.model.TestReport) src); 205 if (src instanceof org.hl7.fhir.dstu3.model.TestScript) 206 return TestScript30_40.convertTestScript((org.hl7.fhir.dstu3.model.TestScript) src); 207 if (src instanceof org.hl7.fhir.dstu3.model.ValueSet) 208 return ValueSet30_40.convertValueSet((org.hl7.fhir.dstu3.model.ValueSet) src); 209 if (advisor.failFastOnNullOrUnknownEntry()) { 210 throw new FHIRException("The resource " + src.fhirType()+" cannot be converted from R3 to R4"); 211 } else { 212 return null; 213 } 214 } 215 216 public org.hl7.fhir.dstu3.model.Resource convertResource(org.hl7.fhir.r4.model.Resource src) throws FHIRException { 217 return convertResource(src, new BaseAdvisor_30_40()); 218 } 219 220 public org.hl7.fhir.dstu3.model.Resource convertResource(org.hl7.fhir.r4.model.Resource src, BaseAdvisor_30_40 advisor) throws FHIRException { 221 if (src == null) return null; 222 if (src instanceof org.hl7.fhir.r4.model.Parameters) { 223// if (((org.hl7.fhir.r4.model.Parameters) src).hasParameterValue("profile-url")) 224// return ExpansionProfile30_40.convertExpansionProfile((org.hl7.fhir.r4.model.Parameters) src); 225// else 226 return Parameters30_40.convertParameters((org.hl7.fhir.r4.model.Parameters) src); 227 } 228 if (src instanceof org.hl7.fhir.r4.model.Account) 229 return Account30_40.convertAccount((org.hl7.fhir.r4.model.Account) src); 230 if (src instanceof org.hl7.fhir.r4.model.ActivityDefinition) 231 return ActivityDefinition30_40.convertActivityDefinition((org.hl7.fhir.r4.model.ActivityDefinition) src); 232 if (src instanceof org.hl7.fhir.r4.model.AllergyIntolerance) 233 return AllergyIntolerance30_40.convertAllergyIntolerance((org.hl7.fhir.r4.model.AllergyIntolerance) src); 234 if (src instanceof org.hl7.fhir.r4.model.Appointment) 235 return Appointment30_40.convertAppointment((org.hl7.fhir.r4.model.Appointment) src); 236 if (src instanceof org.hl7.fhir.r4.model.AppointmentResponse) 237 return AppointmentResponse30_40.convertAppointmentResponse((org.hl7.fhir.r4.model.AppointmentResponse) src); 238 if (src instanceof org.hl7.fhir.r4.model.AuditEvent) 239 return AuditEvent30_40.convertAuditEvent((org.hl7.fhir.r4.model.AuditEvent) src); 240 if (src instanceof org.hl7.fhir.r4.model.Basic) return Basic30_40.convertBasic((org.hl7.fhir.r4.model.Basic) src); 241 if (src instanceof org.hl7.fhir.r4.model.Binary) 242 return Binary30_40.convertBinary((org.hl7.fhir.r4.model.Binary) src); 243 if (src instanceof org.hl7.fhir.r4.model.BodyStructure) 244 return BodySite30_40.convertBodySite((org.hl7.fhir.r4.model.BodyStructure) src); 245 if (src instanceof org.hl7.fhir.r4.model.Bundle) 246 return Bundle30_40.convertBundle((org.hl7.fhir.r4.model.Bundle) src); 247 if (src instanceof org.hl7.fhir.r4.model.CapabilityStatement) 248 return CapabilityStatement30_40.convertCapabilityStatement((org.hl7.fhir.r4.model.CapabilityStatement) src); 249 if (src instanceof org.hl7.fhir.r4.model.CarePlan) 250 return CarePlan30_40.convertCarePlan((org.hl7.fhir.r4.model.CarePlan) src); 251 if (src instanceof org.hl7.fhir.r4.model.CareTeam) 252 return CareTeam30_40.convertCareTeam((org.hl7.fhir.r4.model.CareTeam) src); 253 if (src instanceof org.hl7.fhir.r4.model.ClinicalImpression) 254 return ClinicalImpression30_40.convertClinicalImpression((org.hl7.fhir.r4.model.ClinicalImpression) src); 255 if (src instanceof org.hl7.fhir.r4.model.CodeSystem) 256 return CodeSystem30_40.convertCodeSystem((org.hl7.fhir.r4.model.CodeSystem) src); 257 if (src instanceof org.hl7.fhir.r4.model.Communication) 258 return Communication30_40.convertCommunication((org.hl7.fhir.r4.model.Communication) src); 259 if (src instanceof org.hl7.fhir.r4.model.CommunicationRequest) 260 return CommunicationRequest30_40.convertCommunicationRequest((org.hl7.fhir.r4.model.CommunicationRequest) src); 261 if (src instanceof org.hl7.fhir.r4.model.CompartmentDefinition) 262 return CompartmentDefinition30_40.convertCompartmentDefinition((org.hl7.fhir.r4.model.CompartmentDefinition) src); 263 if (src instanceof org.hl7.fhir.r4.model.Composition) 264 return Composition30_40.convertComposition((org.hl7.fhir.r4.model.Composition) src); 265 if (src instanceof org.hl7.fhir.r4.model.ConceptMap) 266 return ConceptMap30_40.convertConceptMap((org.hl7.fhir.r4.model.ConceptMap) src); 267 if (src instanceof org.hl7.fhir.r4.model.Condition) 268 return Condition30_40.convertCondition((org.hl7.fhir.r4.model.Condition) src); 269 if (src instanceof org.hl7.fhir.r4.model.Consent) 270 return Consent30_40.convertConsent((org.hl7.fhir.r4.model.Consent) src); 271 if (src instanceof org.hl7.fhir.r4.model.Coverage) 272 return Coverage30_40.convertCoverage((org.hl7.fhir.r4.model.Coverage) src); 273 if (src instanceof org.hl7.fhir.r4.model.DetectedIssue) 274 return DetectedIssue30_40.convertDetectedIssue((org.hl7.fhir.r4.model.DetectedIssue) src); 275 if (src instanceof org.hl7.fhir.r4.model.Device) 276 return Device30_40.convertDevice((org.hl7.fhir.r4.model.Device) src); 277 if (src instanceof org.hl7.fhir.r4.model.DeviceUseStatement) 278 return DeviceUseStatement30_40.convertDeviceUseStatement((org.hl7.fhir.r4.model.DeviceUseStatement) src); 279 if (src instanceof org.hl7.fhir.r4.model.DiagnosticReport) 280 return DiagnosticReport30_40.convertDiagnosticReport((org.hl7.fhir.r4.model.DiagnosticReport) src); 281 if (src instanceof org.hl7.fhir.r4.model.DocumentReference) 282 return DocumentReference30_40.convertDocumentReference((org.hl7.fhir.r4.model.DocumentReference) src); 283 if (src instanceof org.hl7.fhir.r4.model.Encounter) 284 return Encounter30_40.convertEncounter((org.hl7.fhir.r4.model.Encounter) src); 285 if (src instanceof org.hl7.fhir.r4.model.Endpoint) 286 return Endpoint30_40.convertEndpoint((org.hl7.fhir.r4.model.Endpoint) src); 287 if (src instanceof org.hl7.fhir.r4.model.EpisodeOfCare) 288 return EpisodeOfCare30_40.convertEpisodeOfCare((org.hl7.fhir.r4.model.EpisodeOfCare) src); 289 if (src instanceof org.hl7.fhir.r4.model.FamilyMemberHistory) 290 return FamilyMemberHistory30_40.convertFamilyMemberHistory((org.hl7.fhir.r4.model.FamilyMemberHistory) src); 291 if (src instanceof org.hl7.fhir.r4.model.Flag) return Flag30_40.convertFlag((org.hl7.fhir.r4.model.Flag) src); 292 if (src instanceof org.hl7.fhir.r4.model.Goal) return Goal30_40.convertGoal((org.hl7.fhir.r4.model.Goal) src); 293 if (src instanceof org.hl7.fhir.r4.model.GraphDefinition) 294 return GraphDefinition30_40.convertGraphDefinition((org.hl7.fhir.r4.model.GraphDefinition) src); 295 if (src instanceof org.hl7.fhir.r4.model.Group) return Group30_40.convertGroup((org.hl7.fhir.r4.model.Group) src); 296 if (src instanceof org.hl7.fhir.r4.model.HealthcareService) 297 return HealthcareService30_40.convertHealthcareService((org.hl7.fhir.r4.model.HealthcareService) src); 298 if (src instanceof org.hl7.fhir.r4.model.ImagingStudy) 299 return ImagingStudy30_40.convertImagingStudy((org.hl7.fhir.r4.model.ImagingStudy) src); 300 if (src instanceof org.hl7.fhir.r4.model.Immunization) 301 return Immunization30_40.convertImmunization((org.hl7.fhir.r4.model.Immunization) src); 302 if (src instanceof org.hl7.fhir.r4.model.ImplementationGuide) 303 return ImplementationGuide30_40.convertImplementationGuide((org.hl7.fhir.r4.model.ImplementationGuide) src); 304 if (src instanceof org.hl7.fhir.r4.model.Library) 305 return Library30_40.convertLibrary((org.hl7.fhir.r4.model.Library) src); 306 if (src instanceof org.hl7.fhir.r4.model.Linkage) 307 return Linkage30_40.convertLinkage((org.hl7.fhir.r4.model.Linkage) src); 308 if (src instanceof org.hl7.fhir.r4.model.ListResource) 309 return List30_40.convertList((org.hl7.fhir.r4.model.ListResource) src); 310 if (src instanceof org.hl7.fhir.r4.model.Location) 311 return Location30_40.convertLocation((org.hl7.fhir.r4.model.Location) src); 312 if (src instanceof org.hl7.fhir.r4.model.Media) return Media30_40.convertMedia((org.hl7.fhir.r4.model.Media) src); 313 if (src instanceof org.hl7.fhir.r4.model.Medication) 314 return Medication30_40.convertMedication((org.hl7.fhir.r4.model.Medication) src); 315 if (src instanceof org.hl7.fhir.r4.model.MedicationAdministration) 316 return MedicationAdministration30_40.convertMedicationAdministration((org.hl7.fhir.r4.model.MedicationAdministration) src); 317 if (src instanceof org.hl7.fhir.r4.model.MedicationDispense) 318 return MedicationDispense30_40.convertMedicationDispense((org.hl7.fhir.r4.model.MedicationDispense) src); 319 if (src instanceof org.hl7.fhir.r4.model.MedicationRequest) 320 return MedicationRequest30_40.convertMedicationRequest((org.hl7.fhir.r4.model.MedicationRequest) src); 321 if (src instanceof org.hl7.fhir.r4.model.MedicationStatement) 322 return MedicationStatement30_40.convertMedicationStatement((org.hl7.fhir.r4.model.MedicationStatement) src); 323 if (src instanceof org.hl7.fhir.r4.model.MessageDefinition) 324 return MessageDefinition30_40.convertMessageDefinition((org.hl7.fhir.r4.model.MessageDefinition) src); 325 if (src instanceof org.hl7.fhir.r4.model.MessageHeader) 326 return MessageHeader30_40.convertMessageHeader((org.hl7.fhir.r4.model.MessageHeader) src); 327 if (src instanceof org.hl7.fhir.r4.model.NamingSystem) 328 return NamingSystem30_40.convertNamingSystem((org.hl7.fhir.r4.model.NamingSystem) src); 329 if (src instanceof org.hl7.fhir.r4.model.Observation) 330 return Observation30_40.convertObservation((org.hl7.fhir.r4.model.Observation) src); 331 if (src instanceof org.hl7.fhir.r4.model.OperationDefinition) 332 return OperationDefinition30_40.convertOperationDefinition((org.hl7.fhir.r4.model.OperationDefinition) src); 333 if (src instanceof org.hl7.fhir.r4.model.OperationOutcome) 334 return OperationOutcome30_40.convertOperationOutcome((org.hl7.fhir.r4.model.OperationOutcome) src); 335 if (src instanceof org.hl7.fhir.r4.model.Organization) 336 return Organization30_40.convertOrganization((org.hl7.fhir.r4.model.Organization) src); 337 if (src instanceof org.hl7.fhir.r4.model.Patient) 338 return Patient30_40.convertPatient((org.hl7.fhir.r4.model.Patient) src); 339 if (src instanceof org.hl7.fhir.r4.model.PaymentNotice) 340 return PaymentNotice30_40.convertPaymentNotice((org.hl7.fhir.r4.model.PaymentNotice) src); 341 if (src instanceof org.hl7.fhir.r4.model.Person) 342 return Person30_40.convertPerson((org.hl7.fhir.r4.model.Person) src); 343 if (src instanceof org.hl7.fhir.r4.model.PlanDefinition) 344 return PlanDefinition30_40.convertPlanDefinition((org.hl7.fhir.r4.model.PlanDefinition) src); 345 if (src instanceof org.hl7.fhir.r4.model.Practitioner) 346 return Practitioner30_40.convertPractitioner((org.hl7.fhir.r4.model.Practitioner) src); 347 if (src instanceof org.hl7.fhir.r4.model.PractitionerRole) 348 return PractitionerRole30_40.convertPractitionerRole((org.hl7.fhir.r4.model.PractitionerRole) src); 349 if (src instanceof org.hl7.fhir.r4.model.Procedure) 350 return Procedure30_40.convertProcedure((org.hl7.fhir.r4.model.Procedure) src); 351 if (src instanceof org.hl7.fhir.r4.model.ServiceRequest) 352 return ProcedureRequest30_40.convertProcedureRequest((org.hl7.fhir.r4.model.ServiceRequest) src); 353 if (src instanceof org.hl7.fhir.r4.model.Provenance) 354 return Provenance30_40.convertProvenance((org.hl7.fhir.r4.model.Provenance) src); 355 if (src instanceof org.hl7.fhir.r4.model.Questionnaire) 356 return Questionnaire30_40.convertQuestionnaire((org.hl7.fhir.r4.model.Questionnaire) src); 357 if (src instanceof org.hl7.fhir.r4.model.QuestionnaireResponse) 358 return QuestionnaireResponse30_40.convertQuestionnaireResponse((org.hl7.fhir.r4.model.QuestionnaireResponse) src); 359 if (src instanceof org.hl7.fhir.r4.model.RelatedPerson) 360 return RelatedPerson30_40.convertRelatedPerson((org.hl7.fhir.r4.model.RelatedPerson) src); 361 if (src instanceof org.hl7.fhir.r4.model.RiskAssessment) 362 return RiskAssessment30_40.convertRiskAssessment((org.hl7.fhir.r4.model.RiskAssessment) src); 363 if (src instanceof org.hl7.fhir.r4.model.Schedule) 364 return Schedule30_40.convertSchedule((org.hl7.fhir.r4.model.Schedule) src); 365 if (src instanceof org.hl7.fhir.r4.model.SearchParameter) 366 return SearchParameter30_40.convertSearchParameter((org.hl7.fhir.r4.model.SearchParameter) src); 367 if (src instanceof org.hl7.fhir.r4.model.MolecularSequence) 368 return Sequence30_40.convertSequence((org.hl7.fhir.r4.model.MolecularSequence) src); 369 if (src instanceof org.hl7.fhir.r4.model.Slot) return Slot30_40.convertSlot((org.hl7.fhir.r4.model.Slot) src); 370 if (src instanceof org.hl7.fhir.r4.model.Specimen) 371 return Specimen30_40.convertSpecimen((org.hl7.fhir.r4.model.Specimen) src); 372 if (src instanceof org.hl7.fhir.r4.model.StructureDefinition) 373 return StructureDefinition30_40.convertStructureDefinition((org.hl7.fhir.r4.model.StructureDefinition) src); 374 if (src instanceof org.hl7.fhir.r4.model.StructureMap) 375 return StructureMap30_40.convertStructureMap((org.hl7.fhir.r4.model.StructureMap) src); 376 if (src instanceof org.hl7.fhir.r4.model.Subscription) 377 return Subscription30_40.convertSubscription((org.hl7.fhir.r4.model.Subscription) src); 378 if (src instanceof org.hl7.fhir.r4.model.Substance) 379 return Substance30_40.convertSubstance((org.hl7.fhir.r4.model.Substance) src); 380 if (src instanceof org.hl7.fhir.r4.model.SupplyDelivery) 381 return SupplyDelivery30_40.convertSupplyDelivery((org.hl7.fhir.r4.model.SupplyDelivery) src); 382 if (src instanceof org.hl7.fhir.r4.model.Task) 383 return Task30_40.convertTask((org.hl7.fhir.r4.model.Task) src); 384 if (src instanceof org.hl7.fhir.r4.model.TestReport) 385 return TestReport30_40.convertTestReport((org.hl7.fhir.r4.model.TestReport) src); 386 if (src instanceof org.hl7.fhir.r4.model.TestScript) 387 return TestScript30_40.convertTestScript((org.hl7.fhir.r4.model.TestScript) src); 388 if (src instanceof org.hl7.fhir.r4.model.ValueSet) 389 return ValueSet30_40.convertValueSet((org.hl7.fhir.r4.model.ValueSet) src); 390 if (advisor.failFastOnNullOrUnknownEntry()) { 391 throw new FHIRException("The resource " + src.fhirType()+" cannot be converted from R4 to R3"); 392 } else { 393 return null; 394 } 395 } 396 397 public void copyDomainResource(org.hl7.fhir.dstu3.model.DomainResource src, 398 org.hl7.fhir.r4.model.DomainResource tgt, 399 String... extensionUrlsToIgnore) throws FHIRException { 400 copyResource(src, tgt); 401 if (src.hasText()) tgt.setText(Narrative30_40.convertNarrative(src.getText())); 402 src.getContained().stream() 403 .map(resource -> convertResource(resource, advisor)) 404 .forEach(tgt::addContained); 405 src.getExtension().forEach(extension -> { 406 407 if (advisor.useAdvisorForExtension(ConversionContext30_40.INSTANCE.path(), extension)) { 408 org.hl7.fhir.r4.model.Extension convertExtension = new org.hl7.fhir.r4.model.Extension(); 409 advisor.handleExtension(ConversionContext30_40.INSTANCE.path(), extension, convertExtension); 410 tgt.addExtension(convertExtension); 411 } else if (!advisor.ignoreExtension(ConversionContext30_40.INSTANCE.path(), extension)&& !Arrays.asList(extensionUrlsToIgnore).contains(extension.getUrl())) { 412 tgt.addExtension(Extension30_40.convertExtension(extension)); 413 } 414 }); 415 src.getModifierExtension().stream() 416 .filter(extension -> !advisor.ignoreExtension(ConversionContext30_40.INSTANCE.path(), extension)) 417 .map(Extension30_40::convertExtension) 418 .forEach(tgt::addModifierExtension); 419 } 420 421 public void copyDomainResource(org.hl7.fhir.r4.model.DomainResource src, 422 org.hl7.fhir.dstu3.model.DomainResource tgt, 423 String... extensionUrlsToIgnore) throws FHIRException { 424 copyResource(src, tgt); 425 if (src.hasText()) tgt.setText(Narrative30_40.convertNarrative(src.getText())); 426 src.getContained().stream() 427 .map(resource -> convertResource(resource, advisor)) 428 .forEach(tgt::addContained); 429 src.getExtension().forEach(extension -> { 430 if (advisor.useAdvisorForExtension(ConversionContext30_40.INSTANCE.path(), extension)) { 431 org.hl7.fhir.dstu3.model.Extension convertExtension = new org.hl7.fhir.dstu3.model.Extension(); 432 advisor.handleExtension(ConversionContext30_40.INSTANCE.path(), extension, convertExtension); 433 tgt.addExtension(convertExtension); 434 } else if (!advisor.ignoreExtension(ConversionContext30_40.INSTANCE.path(), extension) && !Arrays.asList(extensionUrlsToIgnore).contains(extension.getUrl())) { 435 tgt.addExtension(Extension30_40.convertExtension(extension)); 436 } 437 }); 438 src.getModifierExtension().stream() 439 .filter(extension -> !advisor.ignoreExtension("", extension))//TODO add path 440 .map(Extension30_40::convertExtension) 441 .forEach(tgt::addModifierExtension); 442 } 443}