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