001package org.hl7.fhir.convertors.conv30_40.resources30_40;
002
003import org.hl7.fhir.convertors.context.ConversionContext30_40;
004import org.hl7.fhir.convertors.conv30_40.datatypes30_40.ContactDetail30_40;
005import org.hl7.fhir.convertors.conv30_40.datatypes30_40.Dosage30_40;
006import org.hl7.fhir.convertors.conv30_40.datatypes30_40.Reference30_40;
007import org.hl7.fhir.convertors.conv30_40.datatypes30_40.RelatedArtifact30_40;
008import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.CodeableConcept30_40;
009import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Identifier30_40;
010import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Period30_40;
011import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.SimpleQuantity30_40;
012import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Timing30_40;
013import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.Boolean30_40;
014import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.Date30_40;
015import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.DateTime30_40;
016import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.MarkDown30_40;
017import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.String30_40;
018import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.Uri30_40;
019import org.hl7.fhir.dstu3.model.ContactDetail;
020import org.hl7.fhir.dstu3.model.Contributor.ContributorType;
021import org.hl7.fhir.exceptions.FHIRException;
022
023public class ActivityDefinition30_40 {
024
025  public static org.hl7.fhir.dstu3.model.ActivityDefinition convertActivityDefinition(org.hl7.fhir.r4.model.ActivityDefinition src) throws FHIRException {
026    if (src == null)
027      return null;
028    org.hl7.fhir.dstu3.model.ActivityDefinition tgt = new org.hl7.fhir.dstu3.model.ActivityDefinition();
029    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt);
030    if (src.hasUrl())
031      tgt.setUrlElement(Uri30_40.convertUri(src.getUrlElement()));
032    for (org.hl7.fhir.r4.model.Identifier t : src.getIdentifier())
033      tgt.addIdentifier(Identifier30_40.convertIdentifier(t));
034    if (src.hasVersion())
035      tgt.setVersionElement(String30_40.convertString(src.getVersionElement()));
036    if (src.hasName())
037      tgt.setNameElement(String30_40.convertString(src.getNameElement()));
038    if (src.hasTitle())
039      tgt.setTitleElement(String30_40.convertString(src.getTitleElement()));
040    if (src.hasStatus())
041      tgt.setStatusElement(Enumerations30_40.convertPublicationStatus(src.getStatusElement()));
042    if (src.hasExperimental())
043      tgt.setExperimentalElement(Boolean30_40.convertBoolean(src.getExperimentalElement()));
044    if (src.hasDateElement())
045      tgt.setDateElement(DateTime30_40.convertDateTime(src.getDateElement()));
046    if (src.hasPublisher())
047      tgt.setPublisherElement(String30_40.convertString(src.getPublisherElement()));
048    if (src.hasDescription())
049      tgt.setDescriptionElement(MarkDown30_40.convertMarkdown(src.getDescriptionElement()));
050    if (src.hasPurpose())
051      tgt.setPurposeElement(MarkDown30_40.convertMarkdown(src.getPurposeElement()));
052    if (src.hasUsage())
053      tgt.setUsageElement(String30_40.convertString(src.getUsageElement()));
054    if (src.hasApprovalDate())
055      tgt.setApprovalDateElement(Date30_40.convertDate(src.getApprovalDateElement()));
056    if (src.hasLastReviewDate())
057      tgt.setLastReviewDateElement(Date30_40.convertDate(src.getLastReviewDateElement()));
058    if (src.hasEffectivePeriod())
059      tgt.setEffectivePeriod(Period30_40.convertPeriod(src.getEffectivePeriod()));
060    for (org.hl7.fhir.r4.model.UsageContext t : src.getUseContext())
061      tgt.addUseContext(Timing30_40.convertUsageContext(t));
062    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getJurisdiction())
063      tgt.addJurisdiction(CodeableConcept30_40.convertCodeableConcept(t));
064    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getTopic())
065      tgt.addTopic(CodeableConcept30_40.convertCodeableConcept(t));
066    for (org.hl7.fhir.r4.model.ContactDetail t : src.getAuthor()) {
067      org.hl7.fhir.dstu3.model.Contributor c = new org.hl7.fhir.dstu3.model.Contributor();
068      c.setType(ContributorType.AUTHOR);
069      c.addContact(ContactDetail30_40.convertContactDetail(t));
070      tgt.addContributor(c);
071    }
072    for (org.hl7.fhir.r4.model.ContactDetail t : src.getEditor()) {
073      org.hl7.fhir.dstu3.model.Contributor c = new org.hl7.fhir.dstu3.model.Contributor();
074      c.setType(ContributorType.EDITOR);
075      c.addContact(ContactDetail30_40.convertContactDetail(t));
076      tgt.addContributor(c);
077    }
078    for (org.hl7.fhir.r4.model.ContactDetail t : src.getReviewer()) {
079      org.hl7.fhir.dstu3.model.Contributor c = new org.hl7.fhir.dstu3.model.Contributor();
080      c.setType(ContributorType.REVIEWER);
081      c.addContact(ContactDetail30_40.convertContactDetail(t));
082      tgt.addContributor(c);
083    }
084    for (org.hl7.fhir.r4.model.ContactDetail t : src.getEndorser()) {
085      org.hl7.fhir.dstu3.model.Contributor c = new org.hl7.fhir.dstu3.model.Contributor();
086      c.setType(ContributorType.ENDORSER);
087      c.addContact(ContactDetail30_40.convertContactDetail(t));
088      tgt.addContributor(c);
089    }
090    for (org.hl7.fhir.r4.model.ContactDetail t : src.getContact())
091      tgt.addContact(ContactDetail30_40.convertContactDetail(t));
092    if (src.hasCopyright())
093      tgt.setCopyrightElement(MarkDown30_40.convertMarkdown(src.getCopyrightElement()));
094    for (org.hl7.fhir.r4.model.RelatedArtifact t : src.getRelatedArtifact())
095      tgt.addRelatedArtifact(RelatedArtifact30_40.convertRelatedArtifact(t));
096    for (org.hl7.fhir.r4.model.CanonicalType t : src.getLibrary())
097      tgt.addLibrary(Reference30_40.convertCanonicalToReference(t));
098    if (src.hasKind())
099      tgt.setKindElement(convertActivityDefinitionKind(src.getKindElement()));
100    if (src.hasCode())
101      tgt.setCode(CodeableConcept30_40.convertCodeableConcept(src.getCode()));
102    if (src.hasTiming())
103      tgt.setTiming(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getTiming()));
104    if (src.hasLocation())
105      tgt.setLocation(Reference30_40.convertReference(src.getLocation()));
106    for (org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionParticipantComponent t : src.getParticipant())
107      tgt.addParticipant(convertActivityDefinitionParticipantComponent(t));
108    if (src.hasProduct())
109      tgt.setProduct(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getProduct()));
110    if (src.hasQuantity())
111      tgt.setQuantity(SimpleQuantity30_40.convertSimpleQuantity(src.getQuantity()));
112    for (org.hl7.fhir.r4.model.Dosage t : src.getDosage()) tgt.addDosage(Dosage30_40.convertDosage(t));
113    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getBodySite())
114      tgt.addBodySite(CodeableConcept30_40.convertCodeableConcept(t));
115    if (src.hasTransform())
116      tgt.setTransform(Reference30_40.convertCanonicalToReference(src.getTransformElement()));
117    for (org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionDynamicValueComponent t : src.getDynamicValue())
118      tgt.addDynamicValue(convertActivityDefinitionDynamicValueComponent(t));
119    return tgt;
120  }
121
122  public static org.hl7.fhir.r4.model.ActivityDefinition convertActivityDefinition(org.hl7.fhir.dstu3.model.ActivityDefinition src) throws FHIRException {
123    if (src == null)
124      return null;
125    org.hl7.fhir.r4.model.ActivityDefinition tgt = new org.hl7.fhir.r4.model.ActivityDefinition();
126    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt);
127    if (src.hasUrl())
128      tgt.setUrlElement(Uri30_40.convertUri(src.getUrlElement()));
129    for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier())
130      tgt.addIdentifier(Identifier30_40.convertIdentifier(t));
131    if (src.hasVersion())
132      tgt.setVersionElement(String30_40.convertString(src.getVersionElement()));
133    if (src.hasName())
134      tgt.setNameElement(String30_40.convertString(src.getNameElement()));
135    if (src.hasTitle())
136      tgt.setTitleElement(String30_40.convertString(src.getTitleElement()));
137    if (src.hasStatus())
138      tgt.setStatusElement(Enumerations30_40.convertPublicationStatus(src.getStatusElement()));
139    if (src.hasExperimental())
140      tgt.setExperimentalElement(Boolean30_40.convertBoolean(src.getExperimentalElement()));
141    if (src.hasDateElement())
142      tgt.setDateElement(DateTime30_40.convertDateTime(src.getDateElement()));
143    if (src.hasPublisher())
144      tgt.setPublisherElement(String30_40.convertString(src.getPublisherElement()));
145    if (src.hasDescription())
146      tgt.setDescriptionElement(MarkDown30_40.convertMarkdown(src.getDescriptionElement()));
147    if (src.hasPurpose())
148      tgt.setPurposeElement(MarkDown30_40.convertMarkdown(src.getPurposeElement()));
149    if (src.hasUsage())
150      tgt.setUsageElement(String30_40.convertString(src.getUsageElement()));
151    if (src.hasApprovalDate())
152      tgt.setApprovalDateElement(Date30_40.convertDate(src.getApprovalDateElement()));
153    if (src.hasLastReviewDate())
154      tgt.setLastReviewDateElement(Date30_40.convertDate(src.getLastReviewDateElement()));
155    if (src.hasEffectivePeriod())
156      tgt.setEffectivePeriod(Period30_40.convertPeriod(src.getEffectivePeriod()));
157    for (org.hl7.fhir.dstu3.model.UsageContext t : src.getUseContext())
158      tgt.addUseContext(Timing30_40.convertUsageContext(t));
159    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getJurisdiction())
160      tgt.addJurisdiction(CodeableConcept30_40.convertCodeableConcept(t));
161    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getTopic())
162      tgt.addTopic(CodeableConcept30_40.convertCodeableConcept(t));
163    for (org.hl7.fhir.dstu3.model.Contributor t : src.getContributor()) {
164      if (t.getType() == ContributorType.AUTHOR)
165        for (ContactDetail c : t.getContact()) tgt.addAuthor(ContactDetail30_40.convertContactDetail(c));
166      if (t.getType() == ContributorType.EDITOR)
167        for (ContactDetail c : t.getContact()) tgt.addEditor(ContactDetail30_40.convertContactDetail(c));
168      if (t.getType() == ContributorType.REVIEWER)
169        for (ContactDetail c : t.getContact()) tgt.addReviewer(ContactDetail30_40.convertContactDetail(c));
170      if (t.getType() == ContributorType.ENDORSER)
171        for (ContactDetail c : t.getContact()) tgt.addEndorser(ContactDetail30_40.convertContactDetail(c));
172    }
173    for (org.hl7.fhir.dstu3.model.ContactDetail t : src.getContact())
174      tgt.addContact(ContactDetail30_40.convertContactDetail(t));
175    if (src.hasCopyright())
176      tgt.setCopyrightElement(MarkDown30_40.convertMarkdown(src.getCopyrightElement()));
177    for (org.hl7.fhir.dstu3.model.RelatedArtifact t : src.getRelatedArtifact())
178      tgt.addRelatedArtifact(RelatedArtifact30_40.convertRelatedArtifact(t));
179    for (org.hl7.fhir.dstu3.model.Reference t : src.getLibrary())
180      tgt.getLibrary().add(Reference30_40.convertReferenceToCanonical(t));
181    if (src.hasKind())
182      tgt.setKindElement(convertActivityDefinitionKind(src.getKindElement()));
183    if (src.hasCode())
184      tgt.setCode(CodeableConcept30_40.convertCodeableConcept(src.getCode()));
185    if (src.hasTiming())
186      tgt.setTiming(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getTiming()));
187    if (src.hasLocation())
188      tgt.setLocation(Reference30_40.convertReference(src.getLocation()));
189    for (org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionParticipantComponent t : src.getParticipant())
190      tgt.addParticipant(convertActivityDefinitionParticipantComponent(t));
191    if (src.hasProduct())
192      tgt.setProduct(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getProduct()));
193    if (src.hasQuantity())
194      tgt.setQuantity(SimpleQuantity30_40.convertSimpleQuantity(src.getQuantity()));
195    for (org.hl7.fhir.dstu3.model.Dosage t : src.getDosage()) tgt.addDosage(Dosage30_40.convertDosage(t));
196    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getBodySite())
197      tgt.addBodySite(CodeableConcept30_40.convertCodeableConcept(t));
198    if (src.hasTransform())
199      tgt.setTransformElement(Reference30_40.convertReferenceToCanonical(src.getTransform()));
200    for (org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionDynamicValueComponent t : src.getDynamicValue())
201      tgt.addDynamicValue(convertActivityDefinitionDynamicValueComponent(t));
202    return tgt;
203  }
204
205  public static org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionDynamicValueComponent convertActivityDefinitionDynamicValueComponent(org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionDynamicValueComponent src) throws FHIRException {
206    if (src == null)
207      return null;
208    org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionDynamicValueComponent tgt = new org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionDynamicValueComponent();
209    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
210    if (src.hasDescription())
211      tgt.getExpression().setDescription(src.getDescription());
212    if (src.hasPath())
213      tgt.setPathElement(String30_40.convertString(src.getPathElement()));
214    if (src.hasLanguage())
215      tgt.getExpression().setLanguage(src.getLanguage());
216    if (src.hasExpression())
217      tgt.getExpression().setExpression(src.getExpression());
218    return tgt;
219  }
220
221  public static org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionDynamicValueComponent convertActivityDefinitionDynamicValueComponent(org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionDynamicValueComponent src) throws FHIRException {
222    if (src == null)
223      return null;
224    org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionDynamicValueComponent tgt = new org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionDynamicValueComponent();
225    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
226    if (src.hasPath())
227      tgt.setPathElement(String30_40.convertString(src.getPathElement()));
228    if (src.getExpression().hasDescription())
229      tgt.setDescription(src.getExpression().getDescription());
230    if (src.getExpression().hasLanguage())
231      tgt.setLanguage(src.getExpression().getLanguage());
232    if (src.getExpression().hasExpression())
233      tgt.setExpression(src.getExpression().getExpression());
234    return tgt;
235  }
236
237  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionKind> convertActivityDefinitionKind(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionKind> src) throws FHIRException {
238    if (src == null || src.isEmpty())
239      return null;
240    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionKind> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionKindEnumFactory());
241    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
242    switch (src.getValue()) {
243      case APPOINTMENT:
244        tgt.setValue(org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionKind.APPOINTMENT);
245        break;
246      case APPOINTMENTRESPONSE:
247        tgt.setValue(org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionKind.APPOINTMENTRESPONSE);
248        break;
249      case CAREPLAN:
250        tgt.setValue(org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionKind.CAREPLAN);
251        break;
252      case CLAIM:
253        tgt.setValue(org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionKind.CLAIM);
254        break;
255      case COMMUNICATIONREQUEST:
256        tgt.setValue(org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionKind.COMMUNICATIONREQUEST);
257        break;
258      case CONTRACT:
259        tgt.setValue(org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionKind.CONTRACT);
260        break;
261      case DEVICEREQUEST:
262        tgt.setValue(org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionKind.DEVICEREQUEST);
263        break;
264      case ENROLLMENTREQUEST:
265        tgt.setValue(org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionKind.ENROLLMENTREQUEST);
266        break;
267      case IMMUNIZATIONRECOMMENDATION:
268        tgt.setValue(org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionKind.IMMUNIZATIONRECOMMENDATION);
269        break;
270      case MEDICATIONREQUEST:
271        tgt.setValue(org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionKind.MEDICATIONREQUEST);
272        break;
273      case NUTRITIONORDER:
274        tgt.setValue(org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionKind.NUTRITIONORDER);
275        break;
276      case PROCEDUREREQUEST:
277        tgt.setValue(org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionKind.SERVICEREQUEST);
278        break;
279      case REFERRALREQUEST:
280        tgt.setValue(org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionKind.SERVICEREQUEST);
281        break;
282      case SUPPLYREQUEST:
283        tgt.setValue(org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionKind.SUPPLYREQUEST);
284        break;
285      case TASK:
286        tgt.setValue(org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionKind.TASK);
287        break;
288      case VISIONPRESCRIPTION:
289        tgt.setValue(org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionKind.VISIONPRESCRIPTION);
290        break;
291      default:
292        tgt.setValue(org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionKind.NULL);
293        break;
294    }
295    return tgt;
296  }
297
298  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionKind> convertActivityDefinitionKind(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionKind> src) throws FHIRException {
299    if (src == null || src.isEmpty())
300      return null;
301    org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionKind> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionKindEnumFactory());
302    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
303    switch (src.getValue()) {
304      case APPOINTMENT:
305        tgt.setValue(org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionKind.APPOINTMENT);
306        break;
307      case APPOINTMENTRESPONSE:
308        tgt.setValue(org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionKind.APPOINTMENTRESPONSE);
309        break;
310      case CAREPLAN:
311        tgt.setValue(org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionKind.CAREPLAN);
312        break;
313      case CLAIM:
314        tgt.setValue(org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionKind.CLAIM);
315        break;
316      case COMMUNICATIONREQUEST:
317        tgt.setValue(org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionKind.COMMUNICATIONREQUEST);
318        break;
319      case CONTRACT:
320        tgt.setValue(org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionKind.CONTRACT);
321        break;
322      case DEVICEREQUEST:
323        tgt.setValue(org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionKind.DEVICEREQUEST);
324        break;
325      case ENROLLMENTREQUEST:
326        tgt.setValue(org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionKind.ENROLLMENTREQUEST);
327        break;
328      case IMMUNIZATIONRECOMMENDATION:
329        tgt.setValue(org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionKind.IMMUNIZATIONRECOMMENDATION);
330        break;
331      case MEDICATIONREQUEST:
332        tgt.setValue(org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionKind.MEDICATIONREQUEST);
333        break;
334      case NUTRITIONORDER:
335        tgt.setValue(org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionKind.NUTRITIONORDER);
336        break;
337      case SERVICEREQUEST:
338        tgt.setValue(org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionKind.PROCEDUREREQUEST);
339        break;
340      case SUPPLYREQUEST:
341        tgt.setValue(org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionKind.SUPPLYREQUEST);
342        break;
343      case TASK:
344        tgt.setValue(org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionKind.TASK);
345        break;
346      case VISIONPRESCRIPTION:
347        tgt.setValue(org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionKind.VISIONPRESCRIPTION);
348        break;
349      default:
350        tgt.setValue(org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionKind.NULL);
351        break;
352    }
353    return tgt;
354  }
355
356  public static org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionParticipantComponent convertActivityDefinitionParticipantComponent(org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionParticipantComponent src) throws FHIRException {
357    if (src == null)
358      return null;
359    org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionParticipantComponent tgt = new org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionParticipantComponent();
360    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
361    if (src.hasType())
362      tgt.setTypeElement(convertActivityParticipantType(src.getTypeElement()));
363    if (src.hasRole())
364      tgt.setRole(CodeableConcept30_40.convertCodeableConcept(src.getRole()));
365    return tgt;
366  }
367
368  public static org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionParticipantComponent convertActivityDefinitionParticipantComponent(org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionParticipantComponent src) throws FHIRException {
369    if (src == null)
370      return null;
371    org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionParticipantComponent tgt = new org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionParticipantComponent();
372    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
373    if (src.hasType())
374      tgt.setTypeElement(convertActivityParticipantType(src.getTypeElement()));
375    if (src.hasRole())
376      tgt.setRole(CodeableConcept30_40.convertCodeableConcept(src.getRole()));
377    return tgt;
378  }
379
380  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ActivityDefinition.ActivityParticipantType> convertActivityParticipantType(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityParticipantType> src) throws FHIRException {
381    if (src == null || src.isEmpty())
382      return null;
383    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ActivityDefinition.ActivityParticipantType> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.ActivityDefinition.ActivityParticipantTypeEnumFactory());
384    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
385    switch (src.getValue()) {
386      case PATIENT:
387        tgt.setValue(org.hl7.fhir.r4.model.ActivityDefinition.ActivityParticipantType.PATIENT);
388        break;
389      case PRACTITIONER:
390        tgt.setValue(org.hl7.fhir.r4.model.ActivityDefinition.ActivityParticipantType.PRACTITIONER);
391        break;
392      case RELATEDPERSON:
393        tgt.setValue(org.hl7.fhir.r4.model.ActivityDefinition.ActivityParticipantType.RELATEDPERSON);
394        break;
395      default:
396        tgt.setValue(org.hl7.fhir.r4.model.ActivityDefinition.ActivityParticipantType.NULL);
397        break;
398    }
399    return tgt;
400  }
401
402  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityParticipantType> convertActivityParticipantType(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ActivityDefinition.ActivityParticipantType> src) throws FHIRException {
403    if (src == null || src.isEmpty())
404      return null;
405    org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityParticipantType> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityParticipantTypeEnumFactory());
406    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
407    switch (src.getValue()) {
408      case PATIENT:
409        tgt.setValue(org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityParticipantType.PATIENT);
410        break;
411      case PRACTITIONER:
412        tgt.setValue(org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityParticipantType.PRACTITIONER);
413        break;
414      case RELATEDPERSON:
415        tgt.setValue(org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityParticipantType.RELATEDPERSON);
416        break;
417      default:
418        tgt.setValue(org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityParticipantType.NULL);
419        break;
420    }
421    return tgt;
422  }
423}