001package org.hl7.fhir.convertors.conv14_30.resources14_30; 002 003import org.hl7.fhir.convertors.advisors.impl.BaseAdvisor_14_30; 004import org.hl7.fhir.convertors.context.ConversionContext14_30; 005import org.hl7.fhir.convertors.conv14_30.datatypes14_30.Extension14_30; 006import org.hl7.fhir.convertors.conv14_30.datatypes14_30.Meta14_30; 007import org.hl7.fhir.convertors.conv14_30.datatypes14_30.Narrative14_30; 008import org.hl7.fhir.exceptions.FHIRException; 009 010public class Resource14_30 { 011 012 public final BaseAdvisor_14_30 advisor; 013 014 public Resource14_30(BaseAdvisor_14_30 advisor) { 015 this.advisor = advisor; 016 } 017 018 public void copyResource(org.hl7.fhir.dstu2016may.model.Resource src, org.hl7.fhir.dstu3.model.Resource tgt) throws FHIRException { 019 if (src.hasId()) tgt.setId(src.getId()); 020 tgt.setMeta(Meta14_30.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.dstu3.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_30.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.dstu3.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_30.convertParameters((org.hl7.fhir.dstu2016may.model.Parameters) src); 036 if (src instanceof org.hl7.fhir.dstu2016may.model.Bundle) 037 return Bundle14_30.convertBundle((org.hl7.fhir.dstu2016may.model.Bundle) src); 038 if (src instanceof org.hl7.fhir.dstu2016may.model.CodeSystem) 039 return CodeSystem14_30.convertCodeSystem((org.hl7.fhir.dstu2016may.model.CodeSystem) src); 040 if (src instanceof org.hl7.fhir.dstu2016may.model.CompartmentDefinition) 041 return CompartmentDefinition14_30.convertCompartmentDefinition((org.hl7.fhir.dstu2016may.model.CompartmentDefinition) src); 042 if (src instanceof org.hl7.fhir.dstu2016may.model.ConceptMap) 043 return ConceptMap14_30.convertConceptMap((org.hl7.fhir.dstu2016may.model.ConceptMap) src); 044 if (src instanceof org.hl7.fhir.dstu2016may.model.Conformance) 045 return Conformance14_30.convertConformance((org.hl7.fhir.dstu2016may.model.Conformance) src); 046 if (src instanceof org.hl7.fhir.dstu2016may.model.DataElement) 047 return DataElement14_30.convertDataElement((org.hl7.fhir.dstu2016may.model.DataElement) src); 048 if (src instanceof org.hl7.fhir.dstu2016may.model.ImplementationGuide) 049 return ImplementationGuide14_30.convertImplementationGuide((org.hl7.fhir.dstu2016may.model.ImplementationGuide) src); 050 if (src instanceof org.hl7.fhir.dstu2016may.model.NamingSystem) 051 return NamingSystem14_30.convertNamingSystem((org.hl7.fhir.dstu2016may.model.NamingSystem) src); 052 if (src instanceof org.hl7.fhir.dstu2016may.model.OperationDefinition) 053 return OperationDefinition14_30.convertOperationDefinition((org.hl7.fhir.dstu2016may.model.OperationDefinition) src); 054 if (src instanceof org.hl7.fhir.dstu2016may.model.OperationOutcome) 055 return OperationOutcome14_30.convertOperationOutcome((org.hl7.fhir.dstu2016may.model.OperationOutcome) src); 056 if (src instanceof org.hl7.fhir.dstu2016may.model.Questionnaire) 057 return Questionnaire14_30.convertQuestionnaire((org.hl7.fhir.dstu2016may.model.Questionnaire) src); 058 if (src instanceof org.hl7.fhir.dstu2016may.model.QuestionnaireResponse) 059 return QuestionnaireResponse14_30.convertQuestionnaireResponse((org.hl7.fhir.dstu2016may.model.QuestionnaireResponse) src); 060 if (src instanceof org.hl7.fhir.dstu2016may.model.SearchParameter) 061 return SearchParameter14_30.convertSearchParameter((org.hl7.fhir.dstu2016may.model.SearchParameter) src); 062 if (src instanceof org.hl7.fhir.dstu2016may.model.StructureDefinition) 063 return StructureDefinition14_30.convertStructureDefinition((org.hl7.fhir.dstu2016may.model.StructureDefinition) src); 064 if (src instanceof org.hl7.fhir.dstu2016may.model.TestScript) 065 return TestScript14_30.convertTestScript((org.hl7.fhir.dstu2016may.model.TestScript) src); 066 if (src instanceof org.hl7.fhir.dstu2016may.model.ValueSet) 067 return ValueSet14_30.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.dstu3.model.Resource src) throws FHIRException { 076 if (src == null || src.isEmpty()) return null; 077 if (src instanceof org.hl7.fhir.dstu3.model.Parameters) 078 return Parameters14_30.convertParameters((org.hl7.fhir.dstu3.model.Parameters) src); 079 if (src instanceof org.hl7.fhir.dstu3.model.Bundle) 080 return Bundle14_30.convertBundle((org.hl7.fhir.dstu3.model.Bundle) src); 081 if (src instanceof org.hl7.fhir.dstu3.model.CodeSystem) 082 return CodeSystem14_30.convertCodeSystem((org.hl7.fhir.dstu3.model.CodeSystem) src); 083 if (src instanceof org.hl7.fhir.dstu3.model.CompartmentDefinition) 084 return CompartmentDefinition14_30.convertCompartmentDefinition((org.hl7.fhir.dstu3.model.CompartmentDefinition) src); 085 if (src instanceof org.hl7.fhir.dstu3.model.ConceptMap) 086 return ConceptMap14_30.convertConceptMap((org.hl7.fhir.dstu3.model.ConceptMap) src); 087 if (src instanceof org.hl7.fhir.dstu3.model.CapabilityStatement) 088 return Conformance14_30.convertConformance((org.hl7.fhir.dstu3.model.CapabilityStatement) src); 089 if (src instanceof org.hl7.fhir.dstu3.model.DataElement) 090 return DataElement14_30.convertDataElement((org.hl7.fhir.dstu3.model.DataElement) src); 091 if (src instanceof org.hl7.fhir.dstu3.model.ImplementationGuide) 092 return ImplementationGuide14_30.convertImplementationGuide((org.hl7.fhir.dstu3.model.ImplementationGuide) src); 093 if (src instanceof org.hl7.fhir.dstu3.model.NamingSystem) 094 return NamingSystem14_30.convertNamingSystem((org.hl7.fhir.dstu3.model.NamingSystem) src); 095 if (src instanceof org.hl7.fhir.dstu3.model.OperationDefinition) 096 return OperationDefinition14_30.convertOperationDefinition((org.hl7.fhir.dstu3.model.OperationDefinition) src); 097 if (src instanceof org.hl7.fhir.dstu3.model.OperationOutcome) 098 return OperationOutcome14_30.convertOperationOutcome((org.hl7.fhir.dstu3.model.OperationOutcome) src); 099 if (src instanceof org.hl7.fhir.dstu3.model.Questionnaire) 100 return Questionnaire14_30.convertQuestionnaire((org.hl7.fhir.dstu3.model.Questionnaire) src); 101 if (src instanceof org.hl7.fhir.dstu3.model.QuestionnaireResponse) 102 return QuestionnaireResponse14_30.convertQuestionnaireResponse((org.hl7.fhir.dstu3.model.QuestionnaireResponse) src); 103 if (src instanceof org.hl7.fhir.dstu3.model.SearchParameter) 104 return SearchParameter14_30.convertSearchParameter((org.hl7.fhir.dstu3.model.SearchParameter) src); 105 if (src instanceof org.hl7.fhir.dstu3.model.StructureDefinition) 106 return StructureDefinition14_30.convertStructureDefinition((org.hl7.fhir.dstu3.model.StructureDefinition) src); 107 if (src instanceof org.hl7.fhir.dstu3.model.TestScript) 108 return TestScript14_30.convertTestScript((org.hl7.fhir.dstu3.model.TestScript) src); 109 if (src instanceof org.hl7.fhir.dstu3.model.ValueSet) 110 return ValueSet14_30.convertValueSet((org.hl7.fhir.dstu3.model.ValueSet) src); 111 if (advisor.failFastOnNullOrUnknownEntry()) { 112 throw new FHIRException("Unknown resource " + src.fhirType()); 113 } else { 114 return null; 115 } 116 } 117 118 public void copyDomainResource(org.hl7.fhir.dstu2016may.model.DomainResource src, 119 org.hl7.fhir.dstu3.model.DomainResource tgt) throws FHIRException { 120 copyResource(src, tgt); 121 if (src.hasText()) tgt.setText(Narrative14_30.convertNarrative(src.getText())); 122 src.getContained().stream() 123 .map(this::convertResource) 124 .forEach(tgt::addContained); 125 src.getExtension().forEach(extension -> { 126 if (advisor.useAdvisorForExtension(ConversionContext14_30.INSTANCE.path(), extension)) { 127 org.hl7.fhir.dstu3.model.Extension convertExtension = new org.hl7.fhir.dstu3.model.Extension(); 128 advisor.handleExtension(ConversionContext14_30.INSTANCE.path(), extension, convertExtension); 129 tgt.addExtension(convertExtension); 130 } else if (!advisor.ignoreExtension(ConversionContext14_30.INSTANCE.path(), extension)) { 131 tgt.addExtension(Extension14_30.convertExtension(extension)); 132 } 133 }); 134 src.getModifierExtension().stream() 135 .filter(extension -> !advisor.ignoreExtension(ConversionContext14_30.INSTANCE.path(), extension)) 136 .map(Extension14_30::convertExtension) 137 .forEach(tgt::addModifierExtension); 138 } 139 140 public void copyDomainResource(org.hl7.fhir.dstu3.model.DomainResource src, 141 org.hl7.fhir.dstu2016may.model.DomainResource tgt) throws FHIRException { 142 copyResource(src, tgt); 143 if (src.hasText()) tgt.setText(Narrative14_30.convertNarrative(src.getText())); 144 src.getContained().stream() 145 .map(this::convertResource) 146 .forEach(tgt::addContained); 147 src.getExtension().forEach(extension -> { 148 if (advisor.useAdvisorForExtension(ConversionContext14_30.INSTANCE.path(), extension)) { 149 org.hl7.fhir.dstu2016may.model.Extension convertExtension = new org.hl7.fhir.dstu2016may.model.Extension(); 150 advisor.handleExtension(ConversionContext14_30.INSTANCE.path(), extension, convertExtension); 151 tgt.addExtension(convertExtension); 152 } else if (!advisor.ignoreExtension(ConversionContext14_30.INSTANCE.path(), extension)) { 153 tgt.addExtension(Extension14_30.convertExtension(extension)); 154 } 155 }); 156 src.getModifierExtension().stream() 157 .filter(extension -> !advisor.ignoreExtension(ConversionContext14_30.INSTANCE.path(), extension)) 158 .map(Extension14_30::convertExtension) 159 .forEach(tgt::addModifierExtension); 160 } 161 162}