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