001package org.hl7.fhir.convertors.conv10_30.resources10_30;
002
003import org.hl7.fhir.convertors.context.ConversionContext10_30;
004import org.hl7.fhir.convertors.conv10_30.VersionConvertor_10_30;
005import org.hl7.fhir.convertors.conv10_30.datatypes10_30.ElementDefinition10_30;
006import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.CodeableConcept10_30;
007import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.ContactPoint10_30;
008import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Identifier10_30;
009import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.*;
010import org.hl7.fhir.exceptions.FHIRException;
011
012import java.util.ArrayList;
013import java.util.List;
014
015public class DataElement10_30 {
016
017  public static org.hl7.fhir.dstu2.model.DataElement convertDataElement(org.hl7.fhir.dstu3.model.DataElement src) throws FHIRException {
018    if (src == null || src.isEmpty())
019      return null;
020    org.hl7.fhir.dstu2.model.DataElement tgt = new org.hl7.fhir.dstu2.model.DataElement();
021    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt);
022    if (src.hasUrlElement())
023      tgt.setUrlElement(Uri10_30.convertUri(src.getUrlElement()));
024    for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier())
025      tgt.addIdentifier(Identifier10_30.convertIdentifier(t));
026    if (src.hasVersionElement())
027      tgt.setVersionElement(String10_30.convertString(src.getVersionElement()));
028    if (src.hasStatus())
029      tgt.setStatusElement(Enumerations10_30.convertConformanceResourceStatus(src.getStatusElement()));
030    if (src.hasExperimental())
031      tgt.setExperimentalElement(Boolean10_30.convertBoolean(src.getExperimentalElement()));
032    if (src.hasPublisherElement())
033      tgt.setPublisherElement(String10_30.convertString(src.getPublisherElement()));
034    if (src.hasDate())
035      tgt.setDateElement(DateTime10_30.convertDateTime(src.getDateElement()));
036    if (src.hasNameElement())
037      tgt.setNameElement(String10_30.convertString(src.getNameElement()));
038    for (org.hl7.fhir.dstu3.model.ContactDetail t : src.getContact())
039      tgt.addContact(convertDataElementContactComponent(t));
040    for (org.hl7.fhir.dstu3.model.UsageContext t : src.getUseContext())
041      if (t.hasValueCodeableConcept())
042        tgt.addUseContext(CodeableConcept10_30.convertCodeableConcept(t.getValueCodeableConcept()));
043    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getJurisdiction())
044      tgt.addUseContext(CodeableConcept10_30.convertCodeableConcept(t));
045    if (src.hasCopyright())
046      tgt.setCopyright(src.getCopyright());
047    if (src.hasStringency())
048      tgt.setStringencyElement(convertDataElementStringency(src.getStringencyElement()));
049    for (org.hl7.fhir.dstu3.model.DataElement.DataElementMappingComponent t : src.getMapping())
050      tgt.addMapping(convertDataElementMappingComponent(t));
051    for (org.hl7.fhir.dstu3.model.ElementDefinition t : src.getElement())
052      tgt.addElement(ElementDefinition10_30.convertElementDefinition(t));
053    return tgt;
054  }
055
056  public static org.hl7.fhir.dstu3.model.DataElement convertDataElement(org.hl7.fhir.dstu2.model.DataElement src) throws FHIRException {
057    if (src == null || src.isEmpty())
058      return null;
059    org.hl7.fhir.dstu3.model.DataElement tgt = new org.hl7.fhir.dstu3.model.DataElement();
060    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt);
061    if (src.hasUrlElement())
062      tgt.setUrlElement(Uri10_30.convertUri(src.getUrlElement()));
063    for (org.hl7.fhir.dstu2.model.Identifier t : src.getIdentifier())
064      tgt.addIdentifier(Identifier10_30.convertIdentifier(t));
065    if (src.hasVersionElement())
066      tgt.setVersionElement(String10_30.convertString(src.getVersionElement()));
067    if (src.hasStatus())
068      tgt.setStatusElement(Enumerations10_30.convertConformanceResourceStatus(src.getStatusElement()));
069    if (src.hasExperimental())
070      tgt.setExperimentalElement(Boolean10_30.convertBoolean(src.getExperimentalElement()));
071    if (src.hasPublisherElement())
072      tgt.setPublisherElement(String10_30.convertString(src.getPublisherElement()));
073    if (src.hasDate())
074      tgt.setDateElement(DateTime10_30.convertDateTime(src.getDateElement()));
075    if (src.hasNameElement())
076      tgt.setNameElement(String10_30.convertString(src.getNameElement()));
077    for (org.hl7.fhir.dstu2.model.DataElement.DataElementContactComponent t : src.getContact())
078      tgt.addContact(convertDataElementContactComponent(t));
079    for (org.hl7.fhir.dstu2.model.CodeableConcept t : src.getUseContext())
080      if (VersionConvertor_10_30.isJurisdiction(t))
081        tgt.addJurisdiction(CodeableConcept10_30.convertCodeableConcept(t));
082      else
083        tgt.addUseContext(CodeableConcept10_30.convertCodeableConceptToUsageContext(t));
084    if (src.hasCopyright())
085      tgt.setCopyright(src.getCopyright());
086    if (src.hasStringency())
087      tgt.setStringencyElement(convertDataElementStringency(src.getStringencyElement()));
088    for (org.hl7.fhir.dstu2.model.DataElement.DataElementMappingComponent t : src.getMapping())
089      tgt.addMapping(convertDataElementMappingComponent(t));
090    List<String> slicePaths = new ArrayList<String>();
091    for (org.hl7.fhir.dstu2.model.ElementDefinition t : src.getElement()) {
092      if (t.hasSlicing())
093        slicePaths.add(t.getPath());
094      tgt.addElement(ElementDefinition10_30.convertElementDefinition(t, slicePaths));
095    }
096    return tgt;
097  }
098
099  public static org.hl7.fhir.dstu3.model.ContactDetail convertDataElementContactComponent(org.hl7.fhir.dstu2.model.DataElement.DataElementContactComponent src) throws FHIRException {
100    if (src == null || src.isEmpty())
101      return null;
102    org.hl7.fhir.dstu3.model.ContactDetail tgt = new org.hl7.fhir.dstu3.model.ContactDetail();
103    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
104    if (src.hasNameElement())
105      tgt.setNameElement(String10_30.convertString(src.getNameElement()));
106    for (org.hl7.fhir.dstu2.model.ContactPoint t : src.getTelecom())
107      tgt.addTelecom(ContactPoint10_30.convertContactPoint(t));
108    return tgt;
109  }
110
111  public static org.hl7.fhir.dstu2.model.DataElement.DataElementContactComponent convertDataElementContactComponent(org.hl7.fhir.dstu3.model.ContactDetail src) throws FHIRException {
112    if (src == null || src.isEmpty())
113      return null;
114    org.hl7.fhir.dstu2.model.DataElement.DataElementContactComponent tgt = new org.hl7.fhir.dstu2.model.DataElement.DataElementContactComponent();
115    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
116    if (src.hasNameElement())
117      tgt.setNameElement(String10_30.convertString(src.getNameElement()));
118    for (org.hl7.fhir.dstu3.model.ContactPoint t : src.getTelecom())
119      tgt.addTelecom(ContactPoint10_30.convertContactPoint(t));
120    return tgt;
121  }
122
123  public static org.hl7.fhir.dstu3.model.DataElement.DataElementMappingComponent convertDataElementMappingComponent(org.hl7.fhir.dstu2.model.DataElement.DataElementMappingComponent src) throws FHIRException {
124    if (src == null || src.isEmpty())
125      return null;
126    org.hl7.fhir.dstu3.model.DataElement.DataElementMappingComponent tgt = new org.hl7.fhir.dstu3.model.DataElement.DataElementMappingComponent();
127    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
128    if (src.hasIdentityElement())
129      tgt.setIdentityElement(Id10_30.convertId(src.getIdentityElement()));
130    if (src.hasUriElement())
131      tgt.setUriElement(Uri10_30.convertUri(src.getUriElement()));
132    if (src.hasNameElement())
133      tgt.setNameElement(String10_30.convertString(src.getNameElement()));
134    if (src.hasCommentsElement())
135      tgt.setCommentElement(String10_30.convertString(src.getCommentsElement()));
136    return tgt;
137  }
138
139  public static org.hl7.fhir.dstu2.model.DataElement.DataElementMappingComponent convertDataElementMappingComponent(org.hl7.fhir.dstu3.model.DataElement.DataElementMappingComponent src) throws FHIRException {
140    if (src == null || src.isEmpty())
141      return null;
142    org.hl7.fhir.dstu2.model.DataElement.DataElementMappingComponent tgt = new org.hl7.fhir.dstu2.model.DataElement.DataElementMappingComponent();
143    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
144    if (src.hasIdentityElement())
145      tgt.setIdentityElement(Id10_30.convertId(src.getIdentityElement()));
146    if (src.hasUriElement())
147      tgt.setUriElement(Uri10_30.convertUri(src.getUriElement()));
148    if (src.hasNameElement())
149      tgt.setNameElement(String10_30.convertString(src.getNameElement()));
150    if (src.hasCommentElement())
151      tgt.setCommentsElement(String10_30.convertString(src.getCommentElement()));
152    return tgt;
153  }
154
155  static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.DataElement.DataElementStringency> convertDataElementStringency(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.DataElement.DataElementStringency> src) throws FHIRException {
156    if (src == null || src.isEmpty())
157      return null;
158    org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.DataElement.DataElementStringency> tgt = new org.hl7.fhir.dstu2.model.Enumeration<>(new org.hl7.fhir.dstu2.model.DataElement.DataElementStringencyEnumFactory());
159    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
160    switch (src.getValue()) {
161      case COMPARABLE:
162        tgt.setValue(org.hl7.fhir.dstu2.model.DataElement.DataElementStringency.COMPARABLE);
163        break;
164      case FULLYSPECIFIED:
165        tgt.setValue(org.hl7.fhir.dstu2.model.DataElement.DataElementStringency.FULLYSPECIFIED);
166        break;
167      case EQUIVALENT:
168        tgt.setValue(org.hl7.fhir.dstu2.model.DataElement.DataElementStringency.EQUIVALENT);
169        break;
170      case CONVERTABLE:
171        tgt.setValue(org.hl7.fhir.dstu2.model.DataElement.DataElementStringency.CONVERTABLE);
172        break;
173      case SCALEABLE:
174        tgt.setValue(org.hl7.fhir.dstu2.model.DataElement.DataElementStringency.SCALEABLE);
175        break;
176      case FLEXIBLE:
177        tgt.setValue(org.hl7.fhir.dstu2.model.DataElement.DataElementStringency.FLEXIBLE);
178        break;
179      default:
180        tgt.setValue(org.hl7.fhir.dstu2.model.DataElement.DataElementStringency.NULL);
181        break;
182    }
183    return tgt;
184  }
185
186  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.DataElement.DataElementStringency> convertDataElementStringency(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.DataElement.DataElementStringency> src) throws FHIRException {
187    if (src == null || src.isEmpty())
188      return null;
189    org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.DataElement.DataElementStringency> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.DataElement.DataElementStringencyEnumFactory());
190    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
191    switch (src.getValue()) {
192      case COMPARABLE:
193        tgt.setValue(org.hl7.fhir.dstu3.model.DataElement.DataElementStringency.COMPARABLE);
194        break;
195      case FULLYSPECIFIED:
196        tgt.setValue(org.hl7.fhir.dstu3.model.DataElement.DataElementStringency.FULLYSPECIFIED);
197        break;
198      case EQUIVALENT:
199        tgt.setValue(org.hl7.fhir.dstu3.model.DataElement.DataElementStringency.EQUIVALENT);
200        break;
201      case CONVERTABLE:
202        tgt.setValue(org.hl7.fhir.dstu3.model.DataElement.DataElementStringency.CONVERTABLE);
203        break;
204      case SCALEABLE:
205        tgt.setValue(org.hl7.fhir.dstu3.model.DataElement.DataElementStringency.SCALEABLE);
206        break;
207      case FLEXIBLE:
208        tgt.setValue(org.hl7.fhir.dstu3.model.DataElement.DataElementStringency.FLEXIBLE);
209        break;
210      default:
211        tgt.setValue(org.hl7.fhir.dstu3.model.DataElement.DataElementStringency.NULL);
212        break;
213    }
214    return tgt;
215  }
216}