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