001package org.hl7.fhir.convertors.conv14_40.resources14_40;
002
003import org.hl7.fhir.convertors.context.ConversionContext14_40;
004import org.hl7.fhir.convertors.conv14_40.VersionConvertor_14_40;
005import org.hl7.fhir.convertors.conv14_40.datatypes14_40.ElementDefinition14_40;
006import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.CodeableConcept14_40;
007import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.ContactPoint14_40;
008import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.Identifier14_40;
009import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.*;
010import org.hl7.fhir.exceptions.FHIRException;
011import org.hl7.fhir.r4.model.StructureDefinition.StructureDefinitionKind;
012
013public class DataElement14_40 {
014
015  public static org.hl7.fhir.r4.model.StructureDefinition convertDataElement(org.hl7.fhir.dstu2016may.model.DataElement src) throws FHIRException {
016    if (src == null || src.isEmpty())
017      return null;
018    org.hl7.fhir.r4.model.StructureDefinition tgt = new org.hl7.fhir.r4.model.StructureDefinition();
019    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyDomainResource(src, tgt);
020    if (src.hasUrl())
021      tgt.setUrlElement(Uri14_40.convertUri(src.getUrlElement()));
022    for (org.hl7.fhir.dstu2016may.model.Identifier t : src.getIdentifier())
023      tgt.addIdentifier(Identifier14_40.convertIdentifier(t));
024    if (src.hasVersion())
025      tgt.setVersionElement(String14_40.convertString(src.getVersionElement()));
026    if (src.hasStatus())
027      tgt.setStatusElement(Enumerations14_40.convertConformanceResourceStatus(src.getStatusElement()));
028    if (src.hasExperimental())
029      tgt.setExperimentalElement(Boolean14_40.convertBoolean(src.getExperimentalElement()));
030    if (src.hasPublisher())
031      tgt.setPublisherElement(String14_40.convertString(src.getPublisherElement()));
032    if (src.hasDate())
033      tgt.setDateElement(DateTime14_40.convertDateTime(src.getDateElement()));
034    if (src.hasName())
035      tgt.setNameElement(String14_40.convertString(src.getNameElement()));
036    for (org.hl7.fhir.dstu2016may.model.DataElement.DataElementContactComponent t : src.getContact())
037      tgt.addContact(convertDataElementContactComponent(t));
038    for (org.hl7.fhir.dstu2016may.model.CodeableConcept t : src.getUseContext())
039      if (VersionConvertor_14_40.isJurisdiction(t))
040        tgt.addJurisdiction(CodeableConcept14_40.convertCodeableConcept(t));
041      else
042        tgt.addUseContext(CodeableConcept14_40.convertCodeableConceptToUsageContext(t));
043    if (src.hasCopyright())
044      tgt.setCopyright(src.getCopyright());
045    for (org.hl7.fhir.dstu2016may.model.DataElement.DataElementMappingComponent t : src.getMapping())
046      tgt.addMapping(convertDataElementMappingComponent(t));
047    for (org.hl7.fhir.dstu2016may.model.ElementDefinition t : src.getElement())
048      tgt.getSnapshot().addElement(ElementDefinition14_40.convertElementDefinition(t, src.getElement(), src.getElement().indexOf(t)));
049    tgt.setKind(StructureDefinitionKind.COMPLEXTYPE);
050    tgt.setAbstract(false);
051    tgt.setType(tgt.getName());
052    tgt.setBaseDefinition("http://hl7.org/fhir/StructureDefinition/Element");
053    tgt.setDerivation(org.hl7.fhir.r4.model.StructureDefinition.TypeDerivationRule.SPECIALIZATION);
054    return tgt;
055  }
056
057  public static org.hl7.fhir.dstu2016may.model.DataElement.DataElementContactComponent convertDataElementContactComponent(org.hl7.fhir.r4.model.ContactDetail src) throws FHIRException {
058    if (src == null || src.isEmpty())
059      return null;
060    org.hl7.fhir.dstu2016may.model.DataElement.DataElementContactComponent tgt = new org.hl7.fhir.dstu2016may.model.DataElement.DataElementContactComponent();
061    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyElement(src, tgt);
062    if (src.hasName())
063      tgt.setNameElement(String14_40.convertString(src.getNameElement()));
064    for (org.hl7.fhir.r4.model.ContactPoint t : src.getTelecom())
065      tgt.addTelecom(ContactPoint14_40.convertContactPoint(t));
066    return tgt;
067  }
068
069  public static org.hl7.fhir.r4.model.ContactDetail convertDataElementContactComponent(org.hl7.fhir.dstu2016may.model.DataElement.DataElementContactComponent src) throws FHIRException {
070    if (src == null || src.isEmpty())
071      return null;
072    org.hl7.fhir.r4.model.ContactDetail tgt = new org.hl7.fhir.r4.model.ContactDetail();
073    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyElement(src, tgt);
074    if (src.hasName())
075      tgt.setNameElement(String14_40.convertString(src.getNameElement()));
076    for (org.hl7.fhir.dstu2016may.model.ContactPoint t : src.getTelecom())
077      tgt.addTelecom(ContactPoint14_40.convertContactPoint(t));
078    return tgt;
079  }
080
081  public static org.hl7.fhir.r4.model.StructureDefinition.StructureDefinitionMappingComponent convertDataElementMappingComponent(org.hl7.fhir.dstu2016may.model.DataElement.DataElementMappingComponent src) throws FHIRException {
082    if (src == null || src.isEmpty())
083      return null;
084    org.hl7.fhir.r4.model.StructureDefinition.StructureDefinitionMappingComponent tgt = new org.hl7.fhir.r4.model.StructureDefinition.StructureDefinitionMappingComponent();
085    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyElement(src, tgt);
086    if (src.hasIdentityElement())
087      tgt.setIdentityElement(Id14_40.convertId(src.getIdentityElement()));
088    if (src.hasUri())
089      tgt.setUriElement(Uri14_40.convertUri(src.getUriElement()));
090    if (src.hasName())
091      tgt.setNameElement(String14_40.convertString(src.getNameElement()));
092    if (src.hasComment())
093      tgt.setCommentElement(String14_40.convertString(src.getCommentElement()));
094    return tgt;
095  }
096}