001package org.hl7.fhir.convertors.conv14_40.resources14_40; 002 003import org.hl7.fhir.convertors.advisors.impl.BaseAdvisor_14_40; 004import org.hl7.fhir.convertors.context.ConversionContext14_40; 005import org.hl7.fhir.convertors.conv14_40.datatypes14_40.Extension14_40; 006import org.hl7.fhir.convertors.conv14_40.datatypes14_40.Meta14_40; 007import org.hl7.fhir.convertors.conv14_40.datatypes14_40.Narrative14_40; 008import org.hl7.fhir.exceptions.FHIRException; 009 010public class Resource14_40 { 011 012 public final BaseAdvisor_14_40 advisor; 013 014 public Resource14_40(BaseAdvisor_14_40 advisor) { 015 this.advisor = advisor; 016 } 017 018 public void copyResource(org.hl7.fhir.dstu2016may.model.Resource src, org.hl7.fhir.r4.model.Resource tgt) throws FHIRException { 019 if (src.hasId()) tgt.setId(src.getId()); 020 tgt.setMeta(Meta14_40.convertMeta(src.getMeta())); 021 if (src.hasImplicitRules()) tgt.setImplicitRules(src.getImplicitRules()); 022 if (src.hasLanguage()) tgt.setLanguage(src.getLanguage()); 023 } 024 025 public void copyResource(org.hl7.fhir.r4.model.Resource src, org.hl7.fhir.dstu2016may.model.Resource tgt) throws FHIRException { 026 if (src.hasId()) tgt.setId(src.getId()); 027 if (src.hasMeta()) tgt.setMeta(Meta14_40.convertMeta(src.getMeta())); 028 if (src.hasImplicitRules()) tgt.setImplicitRules(src.getImplicitRules()); 029 if (src.hasLanguage()) tgt.setLanguage(src.getLanguage()); 030 } 031 032 public org.hl7.fhir.r4.model.Resource convertResource(org.hl7.fhir.dstu2016may.model.Resource src) throws FHIRException { 033 if (src == null || src.isEmpty()) return null; 034 if (src instanceof org.hl7.fhir.dstu2016may.model.Parameters) 035 return Parameters14_40.convertParameters((org.hl7.fhir.dstu2016may.model.Parameters) src); 036 if (src instanceof org.hl7.fhir.dstu2016may.model.Bundle) 037 return Bundle14_40.convertBundle((org.hl7.fhir.dstu2016may.model.Bundle) src); 038 if (src instanceof org.hl7.fhir.dstu2016may.model.CodeSystem) 039 return CodeSystem14_40.convertCodeSystem((org.hl7.fhir.dstu2016may.model.CodeSystem) src); 040 if (src instanceof org.hl7.fhir.dstu2016may.model.CompartmentDefinition) 041 return CompartmentDefinition14_40.convertCompartmentDefinition((org.hl7.fhir.dstu2016may.model.CompartmentDefinition) src); 042 if (src instanceof org.hl7.fhir.dstu2016may.model.ConceptMap) 043 return ConceptMap14_40.convertConceptMap((org.hl7.fhir.dstu2016may.model.ConceptMap) src); 044 if (src instanceof org.hl7.fhir.dstu2016may.model.Conformance) 045 return Conformance14_40.convertConformance((org.hl7.fhir.dstu2016may.model.Conformance) src); 046 if (src instanceof org.hl7.fhir.dstu2016may.model.DataElement) 047 return DataElement14_40.convertDataElement((org.hl7.fhir.dstu2016may.model.DataElement) src); 048 if (src instanceof org.hl7.fhir.dstu2016may.model.ImplementationGuide) 049 return ImplementationGuide14_40.convertImplementationGuide((org.hl7.fhir.dstu2016may.model.ImplementationGuide) src); 050 if (src instanceof org.hl7.fhir.dstu2016may.model.NamingSystem) 051 return NamingSystem14_40.convertNamingSystem((org.hl7.fhir.dstu2016may.model.NamingSystem) src); 052 if (src instanceof org.hl7.fhir.dstu2016may.model.OperationDefinition) 053 return OperationDefinition14_40.convertOperationDefinition((org.hl7.fhir.dstu2016may.model.OperationDefinition) src); 054 if (src instanceof org.hl7.fhir.dstu2016may.model.OperationOutcome) 055 return OperationOutcome14_40.convertOperationOutcome((org.hl7.fhir.dstu2016may.model.OperationOutcome) src); 056 if (src instanceof org.hl7.fhir.dstu2016may.model.Questionnaire) 057 return Questionnaire14_40.convertQuestionnaire((org.hl7.fhir.dstu2016may.model.Questionnaire) src); 058 if (src instanceof org.hl7.fhir.dstu2016may.model.QuestionnaireResponse) 059 return QuestionnaireResponse14_40.convertQuestionnaireResponse((org.hl7.fhir.dstu2016may.model.QuestionnaireResponse) src); 060 if (src instanceof org.hl7.fhir.dstu2016may.model.SearchParameter) 061 return SearchParameter14_40.convertSearchParameter((org.hl7.fhir.dstu2016may.model.SearchParameter) src); 062 if (src instanceof org.hl7.fhir.dstu2016may.model.StructureDefinition) 063 return StructureDefinition14_40.convertStructureDefinition((org.hl7.fhir.dstu2016may.model.StructureDefinition) src); 064 if (src instanceof org.hl7.fhir.dstu2016may.model.StructureMap) 065 return StructureMap14_40.convertStructureMap((org.hl7.fhir.dstu2016may.model.StructureMap) src); 066 if (src instanceof org.hl7.fhir.dstu2016may.model.ValueSet) 067 return ValueSet14_40.convertValueSet((org.hl7.fhir.dstu2016may.model.ValueSet) src); 068 if (advisor.failFastOnNullOrUnknownEntry()) { 069 throw new FHIRException("Unknown resource " + src.fhirType()); 070 } else { 071 return null; 072 } 073 } 074 075 public org.hl7.fhir.dstu2016may.model.Resource convertResource(org.hl7.fhir.r4.model.Resource src) throws FHIRException { 076 if (src == null || src.isEmpty()) return null; 077 if (src instanceof org.hl7.fhir.r4.model.Parameters) 078 return Parameters14_40.convertParameters((org.hl7.fhir.r4.model.Parameters) src); 079 if (src instanceof org.hl7.fhir.r4.model.Bundle) 080 return Bundle14_40.convertBundle((org.hl7.fhir.r4.model.Bundle) src); 081 if (src instanceof org.hl7.fhir.r4.model.CodeSystem) 082 return CodeSystem14_40.convertCodeSystem((org.hl7.fhir.r4.model.CodeSystem) src); 083 if (src instanceof org.hl7.fhir.r4.model.CompartmentDefinition) 084 return CompartmentDefinition14_40.convertCompartmentDefinition((org.hl7.fhir.r4.model.CompartmentDefinition) src); 085 if (src instanceof org.hl7.fhir.r4.model.ConceptMap) 086 return ConceptMap14_40.convertConceptMap((org.hl7.fhir.r4.model.ConceptMap) src); 087 if (src instanceof org.hl7.fhir.r4.model.CapabilityStatement) 088 return Conformance14_40.convertConformance((org.hl7.fhir.r4.model.CapabilityStatement) src); 089 if (src instanceof org.hl7.fhir.r4.model.ImplementationGuide) 090 return ImplementationGuide14_40.convertImplementationGuide((org.hl7.fhir.r4.model.ImplementationGuide) src); 091 if (src instanceof org.hl7.fhir.r4.model.NamingSystem) 092 return NamingSystem14_40.convertNamingSystem((org.hl7.fhir.r4.model.NamingSystem) src); 093 if (src instanceof org.hl7.fhir.r4.model.OperationDefinition) 094 return OperationDefinition14_40.convertOperationDefinition((org.hl7.fhir.r4.model.OperationDefinition) src); 095 if (src instanceof org.hl7.fhir.r4.model.OperationOutcome) 096 return OperationOutcome14_40.convertOperationOutcome((org.hl7.fhir.r4.model.OperationOutcome) src); 097 if (src instanceof org.hl7.fhir.r4.model.Questionnaire) 098 return Questionnaire14_40.convertQuestionnaire((org.hl7.fhir.r4.model.Questionnaire) src); 099 if (src instanceof org.hl7.fhir.r4.model.QuestionnaireResponse) 100 return QuestionnaireResponse14_40.convertQuestionnaireResponse((org.hl7.fhir.r4.model.QuestionnaireResponse) src); 101 if (src instanceof org.hl7.fhir.r4.model.SearchParameter) 102 return SearchParameter14_40.convertSearchParameter((org.hl7.fhir.r4.model.SearchParameter) src); 103 if (src instanceof org.hl7.fhir.r4.model.StructureDefinition) 104 return StructureDefinition14_40.convertStructureDefinition((org.hl7.fhir.r4.model.StructureDefinition) src); 105 if (src instanceof org.hl7.fhir.r4.model.StructureMap) 106 return StructureMap14_40.convertStructureMap((org.hl7.fhir.r4.model.StructureMap) src); 107 if (src instanceof org.hl7.fhir.r4.model.ValueSet) 108 return ValueSet14_40.convertValueSet((org.hl7.fhir.r4.model.ValueSet) src); 109 if (advisor.failFastOnNullOrUnknownEntry()) { 110 throw new FHIRException("Unknown resource " + src.fhirType()); 111 } else { 112 return null; 113 } 114 } 115 116 public void copyDomainResource(org.hl7.fhir.dstu2016may.model.DomainResource src, 117 org.hl7.fhir.r4.model.DomainResource tgt) throws FHIRException { 118 copyResource(src, tgt); 119 if (src.hasText()) tgt.setText(Narrative14_40.convertNarrative(src.getText())); 120 src.getContained().stream() 121 .map(this::convertResource) 122 .forEach(tgt::addContained); 123 src.getExtension().forEach(extension -> { 124 if (advisor.useAdvisorForExtension(ConversionContext14_40.INSTANCE.path(), extension)) { 125 org.hl7.fhir.r4.model.Extension convertExtension = new org.hl7.fhir.r4.model.Extension(); 126 advisor.handleExtension(ConversionContext14_40.INSTANCE.path(), extension, convertExtension); 127 tgt.addExtension(convertExtension); 128 } else if (!advisor.ignoreExtension(ConversionContext14_40.INSTANCE.path(), extension)) { 129 tgt.addExtension(Extension14_40.convertExtension(extension)); 130 } 131 }); 132 src.getModifierExtension().stream() 133 .filter(extension -> !advisor.ignoreExtension(ConversionContext14_40.INSTANCE.path(), extension)) 134 .map(Extension14_40::convertExtension) 135 .forEach(tgt::addModifierExtension); 136 } 137 138 public void copyDomainResource(org.hl7.fhir.r4.model.DomainResource src, 139 org.hl7.fhir.dstu2016may.model.DomainResource tgt) throws FHIRException { 140 copyResource(src, tgt); 141 if (src.hasText()) tgt.setText(Narrative14_40.convertNarrative(src.getText())); 142 src.getContained().stream() 143 .map(this::convertResource) 144 .forEach(tgt::addContained); 145 src.getExtension().forEach(extension -> { 146 if (advisor.useAdvisorForExtension(ConversionContext14_40.INSTANCE.path(), extension)) { 147 org.hl7.fhir.dstu2016may.model.Extension convertExtension = new org.hl7.fhir.dstu2016may.model.Extension(); 148 advisor.handleExtension(ConversionContext14_40.INSTANCE.path(), extension, convertExtension); 149 tgt.addExtension(convertExtension); 150 } else if (!advisor.ignoreExtension(ConversionContext14_40.INSTANCE.path(), extension)) { 151 tgt.addExtension(Extension14_40.convertExtension(extension)); 152 } 153 }); 154 src.getModifierExtension().stream() 155 .filter(extension -> !advisor.ignoreExtension(ConversionContext14_40.INSTANCE.path(), extension)) 156 .map(Extension14_40::convertExtension) 157 .forEach(tgt::addModifierExtension); 158 } 159 160}