001package org.hl7.fhir.convertors.conv10_40.resources10_40; 002 003import org.hl7.fhir.convertors.context.ConversionContext10_40; 004import org.hl7.fhir.convertors.conv10_40.VersionConvertor_10_40; 005import org.hl7.fhir.convertors.conv10_40.datatypes10_40.ElementDefinition10_40; 006import org.hl7.fhir.convertors.conv10_40.datatypes10_40.complextypes10_40.CodeableConcept10_40; 007import org.hl7.fhir.convertors.conv10_40.datatypes10_40.complextypes10_40.ContactPoint10_40; 008import org.hl7.fhir.convertors.conv10_40.datatypes10_40.complextypes10_40.Identifier10_40; 009import org.hl7.fhir.convertors.conv10_40.datatypes10_40.primitivetypes10_40.*; 010import org.hl7.fhir.exceptions.FHIRException; 011import org.hl7.fhir.r4.model.StructureDefinition.StructureDefinitionKind; 012import org.hl7.fhir.r4.model.StructureDefinition.TypeDerivationRule; 013 014import java.util.ArrayList; 015import java.util.List; 016 017public class DataElement10_40 { 018 019 public static org.hl7.fhir.r4.model.StructureDefinition convertDataElement(org.hl7.fhir.dstu2.model.DataElement src) throws FHIRException { 020 if (src == null || src.isEmpty()) 021 return null; 022 org.hl7.fhir.r4.model.StructureDefinition tgt = new org.hl7.fhir.r4.model.StructureDefinition(); 023 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyDomainResource(src, tgt); 024 if (src.hasUrl()) 025 tgt.setUrl(src.getUrl().replace("/DataElement/", "/StructureDefinition/de-")); 026 for (org.hl7.fhir.dstu2.model.Identifier t : src.getIdentifier()) 027 tgt.addIdentifier(Identifier10_40.convertIdentifier(t)); 028 if (src.hasVersionElement()) 029 tgt.setVersionElement(String10_40.convertString(src.getVersionElement())); 030 if (src.hasStatus()) 031 tgt.setStatusElement(Enumerations10_40.convertConformanceResourceStatus(src.getStatusElement())); 032 if (src.hasExperimental()) 033 tgt.setExperimentalElement(Boolean10_40.convertBoolean(src.getExperimentalElement())); 034 if (src.hasPublisherElement()) 035 tgt.setPublisherElement(String10_40.convertString(src.getPublisherElement())); 036 if (src.hasDate()) 037 tgt.setDateElement(DateTime10_40.convertDateTime(src.getDateElement())); 038 if (src.hasNameElement()) 039 tgt.setNameElement(String10_40.convertString(src.getNameElement())); 040 for (org.hl7.fhir.dstu2.model.DataElement.DataElementContactComponent t : src.getContact()) 041 tgt.addContact(convertDataElementContactComponent(t)); 042 for (org.hl7.fhir.dstu2.model.CodeableConcept t : src.getUseContext()) 043 if (VersionConvertor_10_40.isJurisdiction(t)) 044 tgt.addJurisdiction(CodeableConcept10_40.convertCodeableConcept(t)); 045 else 046 tgt.addUseContext(CodeableConcept10_40.convertCodeableConceptToUsageContext(t)); 047 if (src.hasCopyright()) 048 tgt.setCopyright(src.getCopyright()); 049 for (org.hl7.fhir.dstu2.model.DataElement.DataElementMappingComponent t : src.getMapping()) 050 tgt.addMapping(convertDataElementMappingComponent(t)); 051 List<String> slicePaths = new ArrayList<String>(); 052 for (org.hl7.fhir.dstu2.model.ElementDefinition t : src.getElement()) { 053 if (t.hasSlicing()) 054 slicePaths.add(t.getPath()); 055 tgt.getSnapshot().addElement(ElementDefinition10_40.convertElementDefinition(t, slicePaths, src.getElement(), src.getElement().indexOf(t))); 056 } 057 tgt.setKind(StructureDefinitionKind.COMPLEXTYPE); 058 tgt.setAbstract(false); 059 tgt.setType(tgt.getName()); 060 tgt.setBaseDefinition("http://hl7.org/fhir/StructureDefinition/Element"); 061 tgt.setDerivation(TypeDerivationRule.SPECIALIZATION); 062 return tgt; 063 } 064 065 public static org.hl7.fhir.dstu2.model.DataElement.DataElementContactComponent convertDataElementContactComponent(org.hl7.fhir.r4.model.ContactDetail src) throws FHIRException { 066 if (src == null || src.isEmpty()) 067 return null; 068 org.hl7.fhir.dstu2.model.DataElement.DataElementContactComponent tgt = new org.hl7.fhir.dstu2.model.DataElement.DataElementContactComponent(); 069 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyElement(src, tgt); 070 if (src.hasNameElement()) 071 tgt.setNameElement(String10_40.convertString(src.getNameElement())); 072 for (org.hl7.fhir.r4.model.ContactPoint t : src.getTelecom()) 073 tgt.addTelecom(ContactPoint10_40.convertContactPoint(t)); 074 return tgt; 075 } 076 077 public static org.hl7.fhir.r4.model.ContactDetail convertDataElementContactComponent(org.hl7.fhir.dstu2.model.DataElement.DataElementContactComponent src) throws FHIRException { 078 if (src == null || src.isEmpty()) 079 return null; 080 org.hl7.fhir.r4.model.ContactDetail tgt = new org.hl7.fhir.r4.model.ContactDetail(); 081 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyElement(src, tgt); 082 if (src.hasNameElement()) 083 tgt.setNameElement(String10_40.convertString(src.getNameElement())); 084 for (org.hl7.fhir.dstu2.model.ContactPoint t : src.getTelecom()) 085 tgt.addTelecom(ContactPoint10_40.convertContactPoint(t)); 086 return tgt; 087 } 088 089 public static org.hl7.fhir.r4.model.StructureDefinition.StructureDefinitionMappingComponent convertDataElementMappingComponent(org.hl7.fhir.dstu2.model.DataElement.DataElementMappingComponent src) throws FHIRException { 090 if (src == null || src.isEmpty()) 091 return null; 092 org.hl7.fhir.r4.model.StructureDefinition.StructureDefinitionMappingComponent tgt = new org.hl7.fhir.r4.model.StructureDefinition.StructureDefinitionMappingComponent(); 093 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyElement(src, tgt); 094 if (src.hasIdentityElement()) 095 tgt.setIdentityElement(Id10_40.convertId(src.getIdentityElement())); 096 if (src.hasUriElement()) 097 tgt.setUriElement(Uri10_40.convertUri(src.getUriElement())); 098 if (src.hasNameElement()) 099 tgt.setNameElement(String10_40.convertString(src.getNameElement())); 100 if (src.hasCommentsElement()) 101 tgt.setCommentElement(String10_40.convertString(src.getCommentsElement())); 102 return tgt; 103 } 104}