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