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