001package org.hl7.fhir.convertors.conv14_30.resources14_30;
002
003import org.hl7.fhir.convertors.context.ConversionContext14_30;
004import org.hl7.fhir.convertors.conv14_30.VersionConvertor_14_30;
005import org.hl7.fhir.convertors.conv14_30.datatypes14_30.Reference14_30;
006import org.hl7.fhir.convertors.conv14_30.datatypes14_30.complextypes14_30.CodeableConcept14_30;
007import org.hl7.fhir.convertors.conv14_30.datatypes14_30.complextypes14_30.ContactPoint14_30;
008import org.hl7.fhir.convertors.conv14_30.datatypes14_30.primitivetypes14_30.*;
009import org.hl7.fhir.dstu3.model.Enumerations.SearchParamType;
010import org.hl7.fhir.exceptions.FHIRException;
011import org.hl7.fhir.utilities.Utilities;
012
013public class OperationDefinition14_30 {
014
015  public static org.hl7.fhir.dstu3.model.OperationDefinition convertOperationDefinition(org.hl7.fhir.dstu2016may.model.OperationDefinition src) throws FHIRException {
016    if (src == null || src.isEmpty())
017      return null;
018    org.hl7.fhir.dstu3.model.OperationDefinition tgt = new org.hl7.fhir.dstu3.model.OperationDefinition();
019    ConversionContext14_30.INSTANCE.getVersionConvertor_14_30().copyDomainResource(src, tgt);
020    if (src.hasUrl())
021      tgt.setUrlElement(Uri14_30.convertUri(src.getUrlElement()));
022    if (src.hasVersion())
023      tgt.setVersionElement(String14_30.convertString(src.getVersionElement()));
024    if (src.hasNameElement())
025      tgt.setNameElement(String14_30.convertString(src.getNameElement()));
026    if (src.hasStatus())
027      tgt.setStatusElement(Enumerations14_30.convertConformanceResourceStatus(src.getStatusElement()));
028    if (src.hasKind())
029      tgt.setKindElement(convertOperationKind(src.getKindElement()));
030    if (src.hasExperimental())
031      tgt.setExperimentalElement(Boolean14_30.convertBoolean(src.getExperimentalElement()));
032    if (src.hasDate())
033      tgt.setDateElement(DateTime14_30.convertDateTime(src.getDateElement()));
034    if (src.hasPublisher())
035      tgt.setPublisherElement(String14_30.convertString(src.getPublisherElement()));
036    for (org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionContactComponent t : src.getContact())
037      tgt.addContact(convertOperationDefinitionContactComponent(t));
038    if (src.hasDescription())
039      tgt.setDescription(src.getDescription());
040    for (org.hl7.fhir.dstu2016may.model.CodeableConcept t : src.getUseContext())
041      if (VersionConvertor_14_30.isJurisdiction(t))
042        tgt.addJurisdiction(CodeableConcept14_30.convertCodeableConcept(t));
043      else
044        tgt.addUseContext(CodeableConcept14_30.convertCodeableConceptToUsageContext(t));
045    if (src.hasRequirements())
046      tgt.setPurpose(src.getRequirements());
047    if (src.hasIdempotent())
048      tgt.setIdempotentElement(Boolean14_30.convertBoolean(src.getIdempotentElement()));
049    if (src.hasCodeElement())
050      tgt.setCodeElement(Code14_30.convertCode(src.getCodeElement()));
051    if (src.hasComment())
052      tgt.setCommentElement(String14_30.convertString(src.getCommentElement()));
053    if (src.hasBase())
054      tgt.setBase(Reference14_30.convertReference(src.getBase()));
055    if (src.hasSystemElement())
056      tgt.setSystemElement(Boolean14_30.convertBoolean(src.getSystemElement()));
057    for (org.hl7.fhir.dstu2016may.model.CodeType t : src.getType()) tgt.addResource(t.getValue());
058    tgt.setType(tgt.hasResource());
059    if (src.hasInstanceElement())
060      tgt.setInstanceElement(Boolean14_30.convertBoolean(src.getInstanceElement()));
061    for (org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionParameterComponent t : src.getParameter())
062      tgt.addParameter(convertOperationDefinitionParameterComponent(t));
063    return tgt;
064  }
065
066  public static org.hl7.fhir.dstu2016may.model.OperationDefinition convertOperationDefinition(org.hl7.fhir.dstu3.model.OperationDefinition src) throws FHIRException {
067    if (src == null || src.isEmpty())
068      return null;
069    org.hl7.fhir.dstu2016may.model.OperationDefinition tgt = new org.hl7.fhir.dstu2016may.model.OperationDefinition();
070    ConversionContext14_30.INSTANCE.getVersionConvertor_14_30().copyDomainResource(src, tgt);
071    if (src.hasUrl())
072      tgt.setUrlElement(Uri14_30.convertUri(src.getUrlElement()));
073    if (src.hasVersion())
074      tgt.setVersionElement(String14_30.convertString(src.getVersionElement()));
075    if (src.hasNameElement())
076      tgt.setNameElement(String14_30.convertString(src.getNameElement()));
077    if (src.hasStatus())
078      tgt.setStatusElement(Enumerations14_30.convertConformanceResourceStatus(src.getStatusElement()));
079    if (src.hasKind())
080      tgt.setKindElement(convertOperationKind(src.getKindElement()));
081    if (src.hasExperimental())
082      tgt.setExperimentalElement(Boolean14_30.convertBoolean(src.getExperimentalElement()));
083    if (src.hasDate())
084      tgt.setDateElement(DateTime14_30.convertDateTime(src.getDateElement()));
085    if (src.hasPublisher())
086      tgt.setPublisherElement(String14_30.convertString(src.getPublisherElement()));
087    for (org.hl7.fhir.dstu3.model.ContactDetail t : src.getContact())
088      tgt.addContact(convertOperationDefinitionContactComponent(t));
089    if (src.hasDescription())
090      tgt.setDescription(src.getDescription());
091    for (org.hl7.fhir.dstu3.model.UsageContext t : src.getUseContext())
092      if (t.hasValueCodeableConcept())
093        tgt.addUseContext(CodeableConcept14_30.convertCodeableConcept(t.getValueCodeableConcept()));
094    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getJurisdiction())
095      tgt.addUseContext(CodeableConcept14_30.convertCodeableConcept(t));
096    if (src.hasPurpose())
097      tgt.setRequirements(src.getPurpose());
098    if (src.hasIdempotent())
099      tgt.setIdempotentElement(Boolean14_30.convertBoolean(src.getIdempotentElement()));
100    if (src.hasCodeElement())
101      tgt.setCodeElement(Code14_30.convertCode(src.getCodeElement()));
102    if (src.hasComment())
103      tgt.setCommentElement(String14_30.convertString(src.getCommentElement()));
104    if (src.hasBase())
105      tgt.setBase(Reference14_30.convertReference(src.getBase()));
106    if (src.hasSystemElement())
107      tgt.setSystemElement(Boolean14_30.convertBoolean(src.getSystemElement()));
108    if (src.getType())
109      for (org.hl7.fhir.dstu3.model.CodeType t : src.getResource()) tgt.addType(t.getValue());
110    if (src.hasInstanceElement())
111      tgt.setInstanceElement(Boolean14_30.convertBoolean(src.getInstanceElement()));
112    for (org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterComponent t : src.getParameter())
113      tgt.addParameter(convertOperationDefinitionParameterComponent(t));
114    return tgt;
115  }
116
117  public static org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionContactComponent convertOperationDefinitionContactComponent(org.hl7.fhir.dstu3.model.ContactDetail src) throws FHIRException {
118    if (src == null || src.isEmpty())
119      return null;
120    org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionContactComponent tgt = new org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionContactComponent();
121    ConversionContext14_30.INSTANCE.getVersionConvertor_14_30().copyElement(src, tgt);
122    if (src.hasName())
123      tgt.setNameElement(String14_30.convertString(src.getNameElement()));
124    for (org.hl7.fhir.dstu3.model.ContactPoint t : src.getTelecom())
125      tgt.addTelecom(ContactPoint14_30.convertContactPoint(t));
126    return tgt;
127  }
128
129  public static org.hl7.fhir.dstu3.model.ContactDetail convertOperationDefinitionContactComponent(org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionContactComponent src) throws FHIRException {
130    if (src == null || src.isEmpty())
131      return null;
132    org.hl7.fhir.dstu3.model.ContactDetail tgt = new org.hl7.fhir.dstu3.model.ContactDetail();
133    ConversionContext14_30.INSTANCE.getVersionConvertor_14_30().copyElement(src, tgt);
134    if (src.hasName())
135      tgt.setNameElement(String14_30.convertString(src.getNameElement()));
136    for (org.hl7.fhir.dstu2016may.model.ContactPoint t : src.getTelecom())
137      tgt.addTelecom(ContactPoint14_30.convertContactPoint(t));
138    return tgt;
139  }
140
141  public static org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterBindingComponent convertOperationDefinitionParameterBindingComponent(org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionParameterBindingComponent src) throws FHIRException {
142    if (src == null || src.isEmpty())
143      return null;
144    org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterBindingComponent tgt = new org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterBindingComponent();
145    ConversionContext14_30.INSTANCE.getVersionConvertor_14_30().copyElement(src, tgt);
146    if (src.hasStrength())
147      tgt.setStrengthElement(Enumerations14_30.convertBindingStrength(src.getStrengthElement()));
148    if (src.hasValueSet())
149      tgt.setValueSet(ConversionContext14_30.INSTANCE.getVersionConvertor_14_30().convertType(src.getValueSet()));
150    return tgt;
151  }
152
153  public static org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionParameterBindingComponent convertOperationDefinitionParameterBindingComponent(org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterBindingComponent src) throws FHIRException {
154    if (src == null || src.isEmpty())
155      return null;
156    org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionParameterBindingComponent tgt = new org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionParameterBindingComponent();
157    ConversionContext14_30.INSTANCE.getVersionConvertor_14_30().copyElement(src, tgt);
158    if (src.hasStrength())
159      tgt.setStrengthElement(Enumerations14_30.convertBindingStrength(src.getStrengthElement()));
160    if (src.hasValueSet())
161      tgt.setValueSet(ConversionContext14_30.INSTANCE.getVersionConvertor_14_30().convertType(src.getValueSet()));
162    return tgt;
163  }
164
165  public static org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionParameterComponent convertOperationDefinitionParameterComponent(org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterComponent src) throws FHIRException {
166    if (src == null || src.isEmpty())
167      return null;
168    org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionParameterComponent tgt = new org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionParameterComponent();
169    ConversionContext14_30.INSTANCE.getVersionConvertor_14_30().copyElement(src, tgt);
170    if (src.hasNameElement())
171      tgt.setNameElement(Code14_30.convertCode(src.getNameElement()));
172    if (src.hasUse())
173      tgt.setUseElement(convertOperationParameterUse(src.getUseElement()));
174    if (src.hasMinElement())
175      tgt.setMinElement(Integer14_30.convertInteger(src.getMinElement()));
176    if (src.hasMaxElement())
177      tgt.setMaxElement(String14_30.convertString(src.getMaxElement()));
178    if (src.hasDocumentation())
179      tgt.setDocumentationElement(String14_30.convertString(src.getDocumentationElement()));
180    if (src.hasType())
181      tgt.setTypeElement(Code14_30.convertCode(src.getTypeElement()));
182    if (src.hasSearchType())
183      tgt.setSearchTypeElement(Enumerations14_30.convertSearchParamType(src.getSearchTypeElement()));
184    if (src.hasProfile())
185      tgt.setProfile(Reference14_30.convertReference(src.getProfile()));
186    if (src.hasBinding())
187      tgt.setBinding(convertOperationDefinitionParameterBindingComponent(src.getBinding()));
188    for (org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterComponent t : src.getPart())
189      tgt.addPart(convertOperationDefinitionParameterComponent(t));
190    return tgt;
191  }
192
193  public static org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterComponent convertOperationDefinitionParameterComponent(org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionParameterComponent src) throws FHIRException {
194    if (src == null || src.isEmpty())
195      return null;
196    org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterComponent tgt = new org.hl7.fhir.dstu3.model.OperationDefinition.OperationDefinitionParameterComponent();
197    ConversionContext14_30.INSTANCE.getVersionConvertor_14_30().copyElement(src, tgt);
198    if (src.hasNameElement())
199      tgt.setNameElement(Code14_30.convertCode(src.getNameElement()));
200    if (src.hasUse())
201      tgt.setUseElement(convertOperationParameterUse(src.getUseElement()));
202    if (src.hasMinElement())
203      tgt.setMinElement(Integer14_30.convertInteger(src.getMinElement()));
204    if (src.hasMaxElement())
205      tgt.setMaxElement(String14_30.convertString(src.getMaxElement()));
206    if (src.hasDocumentation())
207      tgt.setDocumentationElement(String14_30.convertString(src.getDocumentationElement()));
208    if (Utilities.existsInList(src.getType(), "token", "reference", "composite", "number", "date", "quantity", "uri")) {
209      tgt.setType("string");
210      if (src.hasType())
211        tgt.setSearchType(SearchParamType.fromCode(src.getType()));
212    } else {
213      if (src.hasTypeElement())
214        tgt.setTypeElement(Code14_30.convertCode(src.getTypeElement()));
215    }
216    if (src.hasSearchType())
217      tgt.setSearchTypeElement(Enumerations14_30.convertSearchParamType(src.getSearchTypeElement()));
218    if (src.hasProfile())
219      tgt.setProfile(Reference14_30.convertReference(src.getProfile()));
220    if (src.hasBinding())
221      tgt.setBinding(convertOperationDefinitionParameterBindingComponent(src.getBinding()));
222    for (org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionParameterComponent t : src.getPart())
223      tgt.addPart(convertOperationDefinitionParameterComponent(t));
224    return tgt;
225  }
226
227  static public org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationKind> convertOperationKind(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.OperationDefinition.OperationKind> src) throws FHIRException {
228    if (src == null || src.isEmpty())
229      return null;
230    org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationKind> tgt = new org.hl7.fhir.dstu2016may.model.Enumeration<>(new org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationKindEnumFactory());
231    ConversionContext14_30.INSTANCE.getVersionConvertor_14_30().copyElement(src, tgt);
232    switch (src.getValue()) {
233      case OPERATION:
234        tgt.setValue(org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationKind.OPERATION);
235        break;
236      case QUERY:
237        tgt.setValue(org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationKind.QUERY);
238        break;
239      default:
240        tgt.setValue(org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationKind.NULL);
241        break;
242    }
243    return tgt;
244  }
245
246  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.OperationDefinition.OperationKind> convertOperationKind(org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationKind> src) throws FHIRException {
247    if (src == null || src.isEmpty())
248      return null;
249    org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.OperationDefinition.OperationKind> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.OperationDefinition.OperationKindEnumFactory());
250    ConversionContext14_30.INSTANCE.getVersionConvertor_14_30().copyElement(src, tgt);
251    switch (src.getValue()) {
252      case OPERATION:
253        tgt.setValue(org.hl7.fhir.dstu3.model.OperationDefinition.OperationKind.OPERATION);
254        break;
255      case QUERY:
256        tgt.setValue(org.hl7.fhir.dstu3.model.OperationDefinition.OperationKind.QUERY);
257        break;
258      default:
259        tgt.setValue(org.hl7.fhir.dstu3.model.OperationDefinition.OperationKind.NULL);
260        break;
261    }
262    return tgt;
263  }
264
265  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.OperationDefinition.OperationParameterUse> convertOperationParameterUse(org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationParameterUse> src) throws FHIRException {
266    if (src == null || src.isEmpty())
267      return null;
268    org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.OperationDefinition.OperationParameterUse> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.OperationDefinition.OperationParameterUseEnumFactory());
269    ConversionContext14_30.INSTANCE.getVersionConvertor_14_30().copyElement(src, tgt);
270    switch (src.getValue()) {
271      case IN:
272        tgt.setValue(org.hl7.fhir.dstu3.model.OperationDefinition.OperationParameterUse.IN);
273        break;
274      case OUT:
275        tgt.setValue(org.hl7.fhir.dstu3.model.OperationDefinition.OperationParameterUse.OUT);
276        break;
277      default:
278        tgt.setValue(org.hl7.fhir.dstu3.model.OperationDefinition.OperationParameterUse.NULL);
279        break;
280    }
281    return tgt;
282  }
283
284  static public org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationParameterUse> convertOperationParameterUse(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.OperationDefinition.OperationParameterUse> src) throws FHIRException {
285    if (src == null || src.isEmpty())
286      return null;
287    org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationParameterUse> tgt = new org.hl7.fhir.dstu2016may.model.Enumeration<>(new org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationParameterUseEnumFactory());
288    ConversionContext14_30.INSTANCE.getVersionConvertor_14_30().copyElement(src, tgt);
289    switch (src.getValue()) {
290      case IN:
291        tgt.setValue(org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationParameterUse.IN);
292        break;
293      case OUT:
294        tgt.setValue(org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationParameterUse.OUT);
295        break;
296      default:
297        tgt.setValue(org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationParameterUse.NULL);
298        break;
299    }
300    return tgt;
301  }
302}