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.DataRequirement30_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.TriggerDefinition30_50;
009import org.hl7.fhir.convertors.conv30_50.datatypes30_50.UsageContext30_50;
010import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.CodeableConcept30_50;
011import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.Coding30_50;
012import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.Duration30_50;
013import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.Identifier30_50;
014import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.Period30_50;
015import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Boolean30_50;
016import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Date30_50;
017import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.DateTime30_50;
018import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Id30_50;
019import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.MarkDown30_50;
020import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.String30_50;
021import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Uri30_50;
022import org.hl7.fhir.dstu3.model.ContactDetail;
023import org.hl7.fhir.dstu3.model.Contributor.ContributorType;
024import org.hl7.fhir.dstu3.model.Enumeration;
025import org.hl7.fhir.dstu3.model.PlanDefinition;
026import org.hl7.fhir.exceptions.FHIRException;
027import org.hl7.fhir.r5.model.DataRequirement;
028import org.hl7.fhir.r5.model.Enumerations;
029import org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionActionInputComponent;
030import org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionActionOutputComponent;
031
032public class PlanDefinition30_50 {
033
034  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.PlanDefinition.ActionCardinalityBehavior> convertActionCardinalityBehavior(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.ActionCardinalityBehavior> src) throws FHIRException {
035      if (src == null || src.isEmpty())
036          return null;
037      Enumeration<PlanDefinition.ActionCardinalityBehavior> tgt = new Enumeration<>(new PlanDefinition.ActionCardinalityBehaviorEnumFactory());
038      ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
039      if (src.getValue() == null) {
040          tgt.setValue(null);
041      } else {
042          switch (src.getValue()) {
043              case SINGLE:
044                  tgt.setValue(PlanDefinition.ActionCardinalityBehavior.SINGLE);
045                  break;
046              case MULTIPLE:
047                  tgt.setValue(PlanDefinition.ActionCardinalityBehavior.MULTIPLE);
048                  break;
049              default:
050                  tgt.setValue(PlanDefinition.ActionCardinalityBehavior.NULL);
051                  break;
052          }
053      }
054      return tgt;
055  }
056
057  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.ActionCardinalityBehavior> convertActionCardinalityBehavior(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.PlanDefinition.ActionCardinalityBehavior> src) throws FHIRException {
058      if (src == null || src.isEmpty())
059          return null;
060      org.hl7.fhir.r5.model.Enumeration<Enumerations.ActionCardinalityBehavior> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new Enumerations.ActionCardinalityBehaviorEnumFactory());
061      ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
062      if (src.getValue() == null) {
063          tgt.setValue(null);
064      } else {
065          switch (src.getValue()) {
066              case SINGLE:
067                  tgt.setValue(Enumerations.ActionCardinalityBehavior.SINGLE);
068                  break;
069              case MULTIPLE:
070                  tgt.setValue(Enumerations.ActionCardinalityBehavior.MULTIPLE);
071                  break;
072              default:
073                  tgt.setValue(Enumerations.ActionCardinalityBehavior.NULL);
074                  break;
075          }
076      }
077      return tgt;
078  }
079
080  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.ActionConditionKind> convertActionConditionKind(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.PlanDefinition.ActionConditionKind> src) throws FHIRException {
081      if (src == null || src.isEmpty())
082          return null;
083      org.hl7.fhir.r5.model.Enumeration<Enumerations.ActionConditionKind> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new Enumerations.ActionConditionKindEnumFactory());
084      ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
085      if (src.getValue() == null) {
086          tgt.setValue(null);
087      } else {
088          switch (src.getValue()) {
089              case APPLICABILITY:
090                  tgt.setValue(Enumerations.ActionConditionKind.APPLICABILITY);
091                  break;
092              case START:
093                  tgt.setValue(Enumerations.ActionConditionKind.START);
094                  break;
095              case STOP:
096                  tgt.setValue(Enumerations.ActionConditionKind.STOP);
097                  break;
098              default:
099                  tgt.setValue(Enumerations.ActionConditionKind.NULL);
100                  break;
101          }
102      }
103      return tgt;
104  }
105
106  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.PlanDefinition.ActionConditionKind> convertActionConditionKind(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.ActionConditionKind> src) throws FHIRException {
107      if (src == null || src.isEmpty())
108          return null;
109      Enumeration<PlanDefinition.ActionConditionKind> tgt = new Enumeration<>(new PlanDefinition.ActionConditionKindEnumFactory());
110      ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
111      if (src.getValue() == null) {
112          tgt.setValue(null);
113      } else {
114          switch (src.getValue()) {
115              case APPLICABILITY:
116                  tgt.setValue(PlanDefinition.ActionConditionKind.APPLICABILITY);
117                  break;
118              case START:
119                  tgt.setValue(PlanDefinition.ActionConditionKind.START);
120                  break;
121              case STOP:
122                  tgt.setValue(PlanDefinition.ActionConditionKind.STOP);
123                  break;
124              default:
125                  tgt.setValue(PlanDefinition.ActionConditionKind.NULL);
126                  break;
127          }
128      }
129      return tgt;
130  }
131
132  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.ActionGroupingBehavior> convertActionGroupingBehavior(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.PlanDefinition.ActionGroupingBehavior> src) throws FHIRException {
133      if (src == null || src.isEmpty())
134          return null;
135      org.hl7.fhir.r5.model.Enumeration<Enumerations.ActionGroupingBehavior> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new Enumerations.ActionGroupingBehaviorEnumFactory());
136      ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
137      if (src.getValue() == null) {
138          tgt.setValue(null);
139      } else {
140          switch (src.getValue()) {
141              case VISUALGROUP:
142                  tgt.setValue(Enumerations.ActionGroupingBehavior.VISUALGROUP);
143                  break;
144              case LOGICALGROUP:
145                  tgt.setValue(Enumerations.ActionGroupingBehavior.LOGICALGROUP);
146                  break;
147              case SENTENCEGROUP:
148                  tgt.setValue(Enumerations.ActionGroupingBehavior.SENTENCEGROUP);
149                  break;
150              default:
151                  tgt.setValue(Enumerations.ActionGroupingBehavior.NULL);
152                  break;
153          }
154      }
155      return tgt;
156  }
157
158  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.PlanDefinition.ActionGroupingBehavior> convertActionGroupingBehavior(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.ActionGroupingBehavior> src) throws FHIRException {
159      if (src == null || src.isEmpty())
160          return null;
161      Enumeration<PlanDefinition.ActionGroupingBehavior> tgt = new Enumeration<>(new PlanDefinition.ActionGroupingBehaviorEnumFactory());
162      ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
163      if (src.getValue() == null) {
164          tgt.setValue(null);
165      } else {
166          switch (src.getValue()) {
167              case VISUALGROUP:
168                  tgt.setValue(PlanDefinition.ActionGroupingBehavior.VISUALGROUP);
169                  break;
170              case LOGICALGROUP:
171                  tgt.setValue(PlanDefinition.ActionGroupingBehavior.LOGICALGROUP);
172                  break;
173              case SENTENCEGROUP:
174                  tgt.setValue(PlanDefinition.ActionGroupingBehavior.SENTENCEGROUP);
175                  break;
176              default:
177                  tgt.setValue(PlanDefinition.ActionGroupingBehavior.NULL);
178                  break;
179          }
180      }
181      return tgt;
182  }
183
184  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.ActionParticipantType> convertActionParticipantType(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.PlanDefinition.ActionParticipantType> src) throws FHIRException {
185      if (src == null || src.isEmpty())
186          return null;
187      org.hl7.fhir.r5.model.Enumeration<Enumerations.ActionParticipantType> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new Enumerations.ActionParticipantTypeEnumFactory());
188      ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
189      if (src.getValue() == null) {
190          tgt.setValue(null);
191      } else {
192          switch (src.getValue()) {
193              case PATIENT:
194                  tgt.setValue(Enumerations.ActionParticipantType.PATIENT);
195                  break;
196              case PRACTITIONER:
197                  tgt.setValue(Enumerations.ActionParticipantType.PRACTITIONER);
198                  break;
199              case RELATEDPERSON:
200                  tgt.setValue(Enumerations.ActionParticipantType.RELATEDPERSON);
201                  break;
202              default:
203                  tgt.setValue(Enumerations.ActionParticipantType.NULL);
204                  break;
205          }
206      }
207      return tgt;
208  }
209
210  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.PlanDefinition.ActionParticipantType> convertActionParticipantType(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.ActionParticipantType> src) throws FHIRException {
211      if (src == null || src.isEmpty())
212          return null;
213      Enumeration<PlanDefinition.ActionParticipantType> tgt = new Enumeration<>(new PlanDefinition.ActionParticipantTypeEnumFactory());
214      ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
215      if (src.getValue() == null) {
216          tgt.setValue(null);
217      } else {
218          switch (src.getValue()) {
219              case PATIENT:
220                  tgt.setValue(PlanDefinition.ActionParticipantType.PATIENT);
221                  break;
222              case PRACTITIONER:
223                  tgt.setValue(PlanDefinition.ActionParticipantType.PRACTITIONER);
224                  break;
225              case RELATEDPERSON:
226                  tgt.setValue(PlanDefinition.ActionParticipantType.RELATEDPERSON);
227                  break;
228              default:
229                  tgt.setValue(PlanDefinition.ActionParticipantType.NULL);
230                  break;
231          }
232      }
233      return tgt;
234  }
235
236  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.PlanDefinition.ActionPrecheckBehavior> convertActionPrecheckBehavior(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.ActionPrecheckBehavior> src) throws FHIRException {
237      if (src == null || src.isEmpty())
238          return null;
239      Enumeration<PlanDefinition.ActionPrecheckBehavior> tgt = new Enumeration<>(new PlanDefinition.ActionPrecheckBehaviorEnumFactory());
240      ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
241      if (src.getValue() == null) {
242          tgt.setValue(null);
243      } else {
244          switch (src.getValue()) {
245              case YES:
246                  tgt.setValue(PlanDefinition.ActionPrecheckBehavior.YES);
247                  break;
248              case NO:
249                  tgt.setValue(PlanDefinition.ActionPrecheckBehavior.NO);
250                  break;
251              default:
252                  tgt.setValue(PlanDefinition.ActionPrecheckBehavior.NULL);
253                  break;
254          }
255      }
256      return tgt;
257  }
258
259  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.ActionPrecheckBehavior> convertActionPrecheckBehavior(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.PlanDefinition.ActionPrecheckBehavior> src) throws FHIRException {
260      if (src == null || src.isEmpty())
261          return null;
262      org.hl7.fhir.r5.model.Enumeration<Enumerations.ActionPrecheckBehavior> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new Enumerations.ActionPrecheckBehaviorEnumFactory());
263      ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
264      if (src.getValue() == null) {
265          tgt.setValue(null);
266      } else {
267          switch (src.getValue()) {
268              case YES:
269                  tgt.setValue(Enumerations.ActionPrecheckBehavior.YES);
270                  break;
271              case NO:
272                  tgt.setValue(Enumerations.ActionPrecheckBehavior.NO);
273                  break;
274              default:
275                  tgt.setValue(Enumerations.ActionPrecheckBehavior.NULL);
276                  break;
277          }
278      }
279      return tgt;
280  }
281
282  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.ActionRelationshipType> convertActionRelationshipType(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.PlanDefinition.ActionRelationshipType> src) throws FHIRException {
283      if (src == null || src.isEmpty())
284          return null;
285      org.hl7.fhir.r5.model.Enumeration<Enumerations.ActionRelationshipType> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new Enumerations.ActionRelationshipTypeEnumFactory());
286      ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
287      if (src.getValue() == null) {
288          tgt.setValue(null);
289      } else {
290          switch (src.getValue()) {
291              case BEFORESTART:
292                  tgt.setValue(Enumerations.ActionRelationshipType.BEFORESTART);
293                  break;
294              case BEFORE:
295                  tgt.setValue(Enumerations.ActionRelationshipType.BEFORE);
296                  break;
297              case BEFOREEND:
298                  tgt.setValue(Enumerations.ActionRelationshipType.BEFOREEND);
299                  break;
300              case CONCURRENTWITHSTART:
301                  tgt.setValue(Enumerations.ActionRelationshipType.CONCURRENTWITHSTART);
302                  break;
303              case CONCURRENT:
304                  tgt.setValue(Enumerations.ActionRelationshipType.CONCURRENT);
305                  break;
306              case CONCURRENTWITHEND:
307                  tgt.setValue(Enumerations.ActionRelationshipType.CONCURRENTWITHEND);
308                  break;
309              case AFTERSTART:
310                  tgt.setValue(Enumerations.ActionRelationshipType.AFTERSTART);
311                  break;
312              case AFTER:
313                  tgt.setValue(Enumerations.ActionRelationshipType.AFTER);
314                  break;
315              case AFTEREND:
316                  tgt.setValue(Enumerations.ActionRelationshipType.AFTEREND);
317                  break;
318              default:
319                  tgt.setValue(Enumerations.ActionRelationshipType.NULL);
320                  break;
321          }
322      }
323      return tgt;
324  }
325
326  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.PlanDefinition.ActionRelationshipType> convertActionRelationshipType(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.ActionRelationshipType> src) throws FHIRException {
327      if (src == null || src.isEmpty())
328          return null;
329      Enumeration<PlanDefinition.ActionRelationshipType> tgt = new Enumeration<>(new PlanDefinition.ActionRelationshipTypeEnumFactory());
330      ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
331      if (src.getValue() == null) {
332          tgt.setValue(null);
333      } else {
334          switch (src.getValue()) {
335              case BEFORESTART:
336                  tgt.setValue(PlanDefinition.ActionRelationshipType.BEFORESTART);
337                  break;
338              case BEFORE:
339                  tgt.setValue(PlanDefinition.ActionRelationshipType.BEFORE);
340                  break;
341              case BEFOREEND:
342                  tgt.setValue(PlanDefinition.ActionRelationshipType.BEFOREEND);
343                  break;
344              case CONCURRENTWITHSTART:
345                  tgt.setValue(PlanDefinition.ActionRelationshipType.CONCURRENTWITHSTART);
346                  break;
347              case CONCURRENT:
348                  tgt.setValue(PlanDefinition.ActionRelationshipType.CONCURRENT);
349                  break;
350              case CONCURRENTWITHEND:
351                  tgt.setValue(PlanDefinition.ActionRelationshipType.CONCURRENTWITHEND);
352                  break;
353              case AFTERSTART:
354                  tgt.setValue(PlanDefinition.ActionRelationshipType.AFTERSTART);
355                  break;
356              case AFTER:
357                  tgt.setValue(PlanDefinition.ActionRelationshipType.AFTER);
358                  break;
359              case AFTEREND:
360                  tgt.setValue(PlanDefinition.ActionRelationshipType.AFTEREND);
361                  break;
362              default:
363                  tgt.setValue(PlanDefinition.ActionRelationshipType.NULL);
364                  break;
365          }
366      }
367      return tgt;
368  }
369
370  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.PlanDefinition.ActionRequiredBehavior> convertActionRequiredBehavior(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.ActionRequiredBehavior> src) throws FHIRException {
371      if (src == null || src.isEmpty())
372          return null;
373      Enumeration<PlanDefinition.ActionRequiredBehavior> tgt = new Enumeration<>(new PlanDefinition.ActionRequiredBehaviorEnumFactory());
374      ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
375      if (src.getValue() == null) {
376          tgt.setValue(null);
377      } else {
378          switch (src.getValue()) {
379              case MUST:
380                  tgt.setValue(PlanDefinition.ActionRequiredBehavior.MUST);
381                  break;
382              case COULD:
383                  tgt.setValue(PlanDefinition.ActionRequiredBehavior.COULD);
384                  break;
385              case MUSTUNLESSDOCUMENTED:
386                  tgt.setValue(PlanDefinition.ActionRequiredBehavior.MUSTUNLESSDOCUMENTED);
387                  break;
388              default:
389                  tgt.setValue(PlanDefinition.ActionRequiredBehavior.NULL);
390                  break;
391          }
392      }
393      return tgt;
394  }
395
396  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.ActionRequiredBehavior> convertActionRequiredBehavior(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.PlanDefinition.ActionRequiredBehavior> src) throws FHIRException {
397      if (src == null || src.isEmpty())
398          return null;
399      org.hl7.fhir.r5.model.Enumeration<Enumerations.ActionRequiredBehavior> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new Enumerations.ActionRequiredBehaviorEnumFactory());
400      ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
401      if (src.getValue() == null) {
402          tgt.setValue(null);
403      } else {
404          switch (src.getValue()) {
405              case MUST:
406                  tgt.setValue(Enumerations.ActionRequiredBehavior.MUST);
407                  break;
408              case COULD:
409                  tgt.setValue(Enumerations.ActionRequiredBehavior.COULD);
410                  break;
411              case MUSTUNLESSDOCUMENTED:
412                  tgt.setValue(Enumerations.ActionRequiredBehavior.MUSTUNLESSDOCUMENTED);
413                  break;
414              default:
415                  tgt.setValue(Enumerations.ActionRequiredBehavior.NULL);
416                  break;
417          }
418      }
419      return tgt;
420  }
421
422  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.ActionSelectionBehavior> convertActionSelectionBehavior(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.PlanDefinition.ActionSelectionBehavior> src) throws FHIRException {
423      if (src == null || src.isEmpty())
424          return null;
425      org.hl7.fhir.r5.model.Enumeration<Enumerations.ActionSelectionBehavior> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new Enumerations.ActionSelectionBehaviorEnumFactory());
426      ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
427      if (src.getValue() == null) {
428          tgt.setValue(null);
429      } else {
430          switch (src.getValue()) {
431              case ANY:
432                  tgt.setValue(Enumerations.ActionSelectionBehavior.ANY);
433                  break;
434              case ALL:
435                  tgt.setValue(Enumerations.ActionSelectionBehavior.ALL);
436                  break;
437              case ALLORNONE:
438                  tgt.setValue(Enumerations.ActionSelectionBehavior.ALLORNONE);
439                  break;
440              case EXACTLYONE:
441                  tgt.setValue(Enumerations.ActionSelectionBehavior.EXACTLYONE);
442                  break;
443              case ATMOSTONE:
444                  tgt.setValue(Enumerations.ActionSelectionBehavior.ATMOSTONE);
445                  break;
446              case ONEORMORE:
447                  tgt.setValue(Enumerations.ActionSelectionBehavior.ONEORMORE);
448                  break;
449              default:
450                  tgt.setValue(Enumerations.ActionSelectionBehavior.NULL);
451                  break;
452          }
453      }
454      return tgt;
455  }
456
457  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.PlanDefinition.ActionSelectionBehavior> convertActionSelectionBehavior(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.ActionSelectionBehavior> src) throws FHIRException {
458      if (src == null || src.isEmpty())
459          return null;
460      Enumeration<PlanDefinition.ActionSelectionBehavior> tgt = new Enumeration<>(new PlanDefinition.ActionSelectionBehaviorEnumFactory());
461      ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
462      if (src.getValue() == null) {
463          tgt.setValue(null);
464      } else {
465          switch (src.getValue()) {
466              case ANY:
467                  tgt.setValue(PlanDefinition.ActionSelectionBehavior.ANY);
468                  break;
469              case ALL:
470                  tgt.setValue(PlanDefinition.ActionSelectionBehavior.ALL);
471                  break;
472              case ALLORNONE:
473                  tgt.setValue(PlanDefinition.ActionSelectionBehavior.ALLORNONE);
474                  break;
475              case EXACTLYONE:
476                  tgt.setValue(PlanDefinition.ActionSelectionBehavior.EXACTLYONE);
477                  break;
478              case ATMOSTONE:
479                  tgt.setValue(PlanDefinition.ActionSelectionBehavior.ATMOSTONE);
480                  break;
481              case ONEORMORE:
482                  tgt.setValue(PlanDefinition.ActionSelectionBehavior.ONEORMORE);
483                  break;
484              default:
485                  tgt.setValue(PlanDefinition.ActionSelectionBehavior.NULL);
486                  break;
487          }
488      }
489      return tgt;
490  }
491
492  public static org.hl7.fhir.dstu3.model.PlanDefinition convertPlanDefinition(org.hl7.fhir.r5.model.PlanDefinition src) throws FHIRException {
493    if (src == null)
494      return null;
495    org.hl7.fhir.dstu3.model.PlanDefinition tgt = new org.hl7.fhir.dstu3.model.PlanDefinition();
496    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyDomainResource(src, tgt);
497    if (src.hasUrl())
498      tgt.setUrlElement(Uri30_50.convertUri(src.getUrlElement()));
499    for (org.hl7.fhir.r5.model.Identifier t : src.getIdentifier())
500      tgt.addIdentifier(Identifier30_50.convertIdentifier(t));
501    if (src.hasVersion())
502      tgt.setVersionElement(String30_50.convertString(src.getVersionElement()));
503    if (src.hasName())
504      tgt.setNameElement(String30_50.convertString(src.getNameElement()));
505    if (src.hasTitle())
506      tgt.setTitleElement(String30_50.convertString(src.getTitleElement()));
507    if (src.hasType())
508      tgt.setType(CodeableConcept30_50.convertCodeableConcept(src.getType()));
509    if (src.hasStatus())
510      tgt.setStatusElement(Enumerations30_50.convertPublicationStatus(src.getStatusElement()));
511    if (src.hasExperimental())
512      tgt.setExperimentalElement(Boolean30_50.convertBoolean(src.getExperimentalElement()));
513    if (src.hasDate())
514      tgt.setDateElement(DateTime30_50.convertDateTime(src.getDateElement()));
515    if (src.hasPublisher())
516      tgt.setPublisherElement(String30_50.convertString(src.getPublisherElement()));
517    if (src.hasDescription())
518      tgt.setDescriptionElement(MarkDown30_50.convertMarkdown(src.getDescriptionElement()));
519    if (src.hasPurpose())
520      tgt.setPurposeElement(MarkDown30_50.convertMarkdown(src.getPurposeElement()));
521    if (src.hasUsage())
522      tgt.setUsageElement(String30_50.convertString(src.getUsageElement()));
523    if (src.hasApprovalDate())
524      tgt.setApprovalDateElement(Date30_50.convertDate(src.getApprovalDateElement()));
525    if (src.hasLastReviewDate())
526      tgt.setLastReviewDateElement(Date30_50.convertDate(src.getLastReviewDateElement()));
527    if (src.hasEffectivePeriod())
528      tgt.setEffectivePeriod(Period30_50.convertPeriod(src.getEffectivePeriod()));
529    for (org.hl7.fhir.r5.model.UsageContext t : src.getUseContext())
530      tgt.addUseContext(UsageContext30_50.convertUsageContext(t));
531    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getJurisdiction())
532      tgt.addJurisdiction(CodeableConcept30_50.convertCodeableConcept(t));
533    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getTopic())
534      tgt.addTopic(CodeableConcept30_50.convertCodeableConcept(t));
535    for (org.hl7.fhir.r5.model.ContactDetail t : src.getAuthor()) {
536      org.hl7.fhir.dstu3.model.Contributor c = new org.hl7.fhir.dstu3.model.Contributor();
537      c.setType(ContributorType.AUTHOR);
538      c.addContact(ContactDetail30_50.convertContactDetail(t));
539      tgt.addContributor(c);
540    }
541    for (org.hl7.fhir.r5.model.ContactDetail t : src.getEditor()) {
542      org.hl7.fhir.dstu3.model.Contributor c = new org.hl7.fhir.dstu3.model.Contributor();
543      c.setType(ContributorType.EDITOR);
544      c.addContact(ContactDetail30_50.convertContactDetail(t));
545      tgt.addContributor(c);
546    }
547    for (org.hl7.fhir.r5.model.ContactDetail t : src.getReviewer()) {
548      org.hl7.fhir.dstu3.model.Contributor c = new org.hl7.fhir.dstu3.model.Contributor();
549      c.setType(ContributorType.REVIEWER);
550      c.addContact(ContactDetail30_50.convertContactDetail(t));
551      tgt.addContributor(c);
552    }
553    for (org.hl7.fhir.r5.model.ContactDetail t : src.getEndorser()) {
554      org.hl7.fhir.dstu3.model.Contributor c = new org.hl7.fhir.dstu3.model.Contributor();
555      c.setType(ContributorType.ENDORSER);
556      c.addContact(ContactDetail30_50.convertContactDetail(t));
557      tgt.addContributor(c);
558    }
559    for (org.hl7.fhir.r5.model.ContactDetail t : src.getContact())
560      tgt.addContact(ContactDetail30_50.convertContactDetail(t));
561    if (src.hasCopyright())
562      tgt.setCopyrightElement(MarkDown30_50.convertMarkdown(src.getCopyrightElement()));
563    for (org.hl7.fhir.r5.model.RelatedArtifact t : src.getRelatedArtifact())
564      tgt.addRelatedArtifact(RelatedArtifact30_50.convertRelatedArtifact(t));
565    for (org.hl7.fhir.r5.model.CanonicalType t : src.getLibrary())
566      tgt.addLibrary(Reference30_50.convertCanonicalToReference(t));
567    for (org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionGoalComponent t : src.getGoal())
568      tgt.addGoal(convertPlanDefinitionGoalComponent(t));
569    for (org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionActionComponent t : src.getAction())
570      tgt.addAction(convertPlanDefinitionActionComponent(t));
571    return tgt;
572  }
573
574  public static org.hl7.fhir.r5.model.PlanDefinition convertPlanDefinition(org.hl7.fhir.dstu3.model.PlanDefinition src) throws FHIRException {
575    if (src == null)
576      return null;
577    org.hl7.fhir.r5.model.PlanDefinition tgt = new org.hl7.fhir.r5.model.PlanDefinition();
578    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyDomainResource(src, tgt);
579    if (src.hasUrl())
580      tgt.setUrlElement(Uri30_50.convertUri(src.getUrlElement()));
581    for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier())
582      tgt.addIdentifier(Identifier30_50.convertIdentifier(t));
583    if (src.hasVersion())
584      tgt.setVersionElement(String30_50.convertString(src.getVersionElement()));
585    if (src.hasName())
586      tgt.setNameElement(String30_50.convertString(src.getNameElement()));
587    if (src.hasTitle())
588      tgt.setTitleElement(String30_50.convertString(src.getTitleElement()));
589    if (src.hasType())
590      tgt.setType(CodeableConcept30_50.convertCodeableConcept(src.getType()));
591    if (src.hasStatus())
592      tgt.setStatusElement(Enumerations30_50.convertPublicationStatus(src.getStatusElement()));
593    if (src.hasExperimental())
594      tgt.setExperimentalElement(Boolean30_50.convertBoolean(src.getExperimentalElement()));
595    if (src.hasDate())
596      tgt.setDateElement(DateTime30_50.convertDateTime(src.getDateElement()));
597    if (src.hasPublisher())
598      tgt.setPublisherElement(String30_50.convertString(src.getPublisherElement()));
599    if (src.hasDescription())
600      tgt.setDescriptionElement(MarkDown30_50.convertMarkdown(src.getDescriptionElement()));
601    if (src.hasPurpose())
602      tgt.setPurposeElement(MarkDown30_50.convertMarkdown(src.getPurposeElement()));
603    if (src.hasUsage())
604      tgt.setUsageElement(String30_50.convertStringToMarkdown(src.getUsageElement()));
605    if (src.hasApprovalDate())
606      tgt.setApprovalDateElement(Date30_50.convertDate(src.getApprovalDateElement()));
607    if (src.hasLastReviewDate())
608      tgt.setLastReviewDateElement(Date30_50.convertDate(src.getLastReviewDateElement()));
609    if (src.hasEffectivePeriod())
610      tgt.setEffectivePeriod(Period30_50.convertPeriod(src.getEffectivePeriod()));
611    for (org.hl7.fhir.dstu3.model.UsageContext t : src.getUseContext())
612      tgt.addUseContext(UsageContext30_50.convertUsageContext(t));
613    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getJurisdiction())
614      tgt.addJurisdiction(CodeableConcept30_50.convertCodeableConcept(t));
615    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getTopic())
616      tgt.addTopic(CodeableConcept30_50.convertCodeableConcept(t));
617    for (org.hl7.fhir.dstu3.model.Contributor t : src.getContributor()) {
618      if (t.getType() == ContributorType.AUTHOR)
619        for (ContactDetail c : t.getContact()) tgt.addAuthor(ContactDetail30_50.convertContactDetail(c));
620      if (t.getType() == ContributorType.EDITOR)
621        for (ContactDetail c : t.getContact()) tgt.addEditor(ContactDetail30_50.convertContactDetail(c));
622      if (t.getType() == ContributorType.REVIEWER)
623        for (ContactDetail c : t.getContact()) tgt.addReviewer(ContactDetail30_50.convertContactDetail(c));
624      if (t.getType() == ContributorType.ENDORSER)
625        for (ContactDetail c : t.getContact()) tgt.addEndorser(ContactDetail30_50.convertContactDetail(c));
626    }
627    for (org.hl7.fhir.dstu3.model.ContactDetail t : src.getContact())
628      tgt.addContact(ContactDetail30_50.convertContactDetail(t));
629    if (src.hasCopyright())
630      tgt.setCopyrightElement(MarkDown30_50.convertMarkdown(src.getCopyrightElement()));
631    for (org.hl7.fhir.dstu3.model.RelatedArtifact t : src.getRelatedArtifact())
632      tgt.addRelatedArtifact(RelatedArtifact30_50.convertRelatedArtifact(t));
633    for (org.hl7.fhir.dstu3.model.Reference t : src.getLibrary())
634      tgt.getLibrary().add(Reference30_50.convertReferenceToCanonical(t));
635    for (org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionGoalComponent t : src.getGoal())
636      tgt.addGoal(convertPlanDefinitionGoalComponent(t));
637    for (org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionActionComponent t : src.getAction())
638      tgt.addAction(convertPlanDefinitionActionComponent(t));
639    return tgt;
640  }
641
642  public static org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionActionComponent convertPlanDefinitionActionComponent(org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionActionComponent src) throws FHIRException {
643    if (src == null)
644      return null;
645    org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionActionComponent tgt = new org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionActionComponent();
646    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
647    if (src.hasLabel())
648      tgt.setPrefixElement(String30_50.convertString(src.getLabelElement()));
649    if (src.hasTitle())
650      tgt.setTitleElement(String30_50.convertString(src.getTitleElement()));
651    if (src.hasDescription())
652      tgt.setDescriptionElement(String30_50.convertStringToMarkdown(src.getDescriptionElement()));
653    if (src.hasTextEquivalent())
654      tgt.setTextEquivalentElement(String30_50.convertStringToMarkdown(src.getTextEquivalentElement()));
655    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getCode())
656      tgt.setCode(CodeableConcept30_50.convertCodeableConcept(t));
657    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getReason())
658      tgt.addReason(CodeableConcept30_50.convertCodeableConcept(t));
659    for (org.hl7.fhir.dstu3.model.RelatedArtifact t : src.getDocumentation())
660      tgt.addDocumentation(RelatedArtifact30_50.convertRelatedArtifact(t));
661    for (org.hl7.fhir.dstu3.model.IdType t : src.getGoalId()) tgt.addGoalId(t.getValue());
662    for (org.hl7.fhir.dstu3.model.TriggerDefinition t : src.getTriggerDefinition())
663      tgt.addTrigger(TriggerDefinition30_50.convertTriggerDefinition(t));
664    for (org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionActionConditionComponent t : src.getCondition())
665      tgt.addCondition(convertPlanDefinitionActionConditionComponent(t));
666    for (org.hl7.fhir.dstu3.model.DataRequirement t : src.getInput())
667      tgt.addInput(wrapInput(DataRequirement30_50.convertDataRequirement(t)));
668    for (org.hl7.fhir.dstu3.model.DataRequirement t : src.getOutput())
669      tgt.addOutput(wrapOutput(DataRequirement30_50.convertDataRequirement(t)));
670    for (org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionActionRelatedActionComponent t : src.getRelatedAction())
671      tgt.addRelatedAction(convertPlanDefinitionActionRelatedActionComponent(t));
672    if (src.hasTiming())
673      tgt.setTiming(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getTiming()));
674    for (org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionActionParticipantComponent t : src.getParticipant())
675      tgt.addParticipant(convertPlanDefinitionActionParticipantComponent(t));
676    if (src.hasType())
677      tgt.getType().addCoding(Coding30_50.convertCoding(src.getType()));
678    if (src.hasGroupingBehavior())
679      tgt.setGroupingBehaviorElement(convertActionGroupingBehavior(src.getGroupingBehaviorElement()));
680    if (src.hasSelectionBehavior())
681      tgt.setSelectionBehaviorElement(convertActionSelectionBehavior(src.getSelectionBehaviorElement()));
682    if (src.hasRequiredBehavior())
683      tgt.setRequiredBehaviorElement(convertActionRequiredBehavior(src.getRequiredBehaviorElement()));
684    if (src.hasPrecheckBehavior())
685      tgt.setPrecheckBehaviorElement(convertActionPrecheckBehavior(src.getPrecheckBehaviorElement()));
686    if (src.hasCardinalityBehavior())
687      tgt.setCardinalityBehaviorElement(convertActionCardinalityBehavior(src.getCardinalityBehaviorElement()));
688    if (src.hasDefinition())
689      tgt.setDefinition(Reference30_50.convertReferenceToCanonical(src.getDefinition()));
690    if (src.hasTransform())
691      tgt.setTransformElement(Reference30_50.convertReferenceToCanonical(src.getTransform()));
692    for (org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionActionDynamicValueComponent t : src.getDynamicValue())
693      tgt.addDynamicValue(convertPlanDefinitionActionDynamicValueComponent(t));
694    for (org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionActionComponent t : src.getAction())
695      tgt.addAction(convertPlanDefinitionActionComponent(t));
696    return tgt;
697  }
698
699  private static PlanDefinitionActionOutputComponent wrapOutput(DataRequirement dr) {
700    return new PlanDefinitionActionOutputComponent().setRequirement(dr);
701  }
702
703  private static PlanDefinitionActionInputComponent wrapInput(DataRequirement dr) {
704    return new PlanDefinitionActionInputComponent().setRequirement(dr);
705  }
706
707  public static org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionActionComponent convertPlanDefinitionActionComponent(org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionActionComponent src) throws FHIRException {
708    if (src == null)
709      return null;
710    org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionActionComponent tgt = new org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionActionComponent();
711    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
712    if (src.hasPrefix())
713      tgt.setLabelElement(String30_50.convertString(src.getPrefixElement()));
714    if (src.hasTitle())
715      tgt.setTitleElement(String30_50.convertString(src.getTitleElement()));
716    if (src.hasDescription())
717      tgt.setDescriptionElement(String30_50.convertString(src.getDescriptionElement()));
718    if (src.hasTextEquivalent())
719      tgt.setTextEquivalentElement(String30_50.convertString(src.getTextEquivalentElement()));
720    if (src.hasCode()) tgt.addCode(CodeableConcept30_50.convertCodeableConcept(src.getCode()));
721    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getReason())
722      tgt.addReason(CodeableConcept30_50.convertCodeableConcept(t));
723    for (org.hl7.fhir.r5.model.RelatedArtifact t : src.getDocumentation())
724      tgt.addDocumentation(RelatedArtifact30_50.convertRelatedArtifact(t));
725    for (org.hl7.fhir.r5.model.IdType t : src.getGoalId()) tgt.addGoalId(t.getValue());
726    for (org.hl7.fhir.r5.model.TriggerDefinition t : src.getTrigger())
727      tgt.addTriggerDefinition(TriggerDefinition30_50.convertTriggerDefinition(t));
728    for (org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionActionConditionComponent t : src.getCondition())
729      tgt.addCondition(convertPlanDefinitionActionConditionComponent(t));
730    for (PlanDefinitionActionInputComponent t : src.getInput())
731      tgt.addInput(DataRequirement30_50.convertDataRequirement(t.getRequirement()));
732    for (PlanDefinitionActionOutputComponent t : src.getOutput())
733      tgt.addOutput(DataRequirement30_50.convertDataRequirement(t.getRequirement()));
734    for (org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionActionRelatedActionComponent t : src.getRelatedAction())
735      tgt.addRelatedAction(convertPlanDefinitionActionRelatedActionComponent(t));
736    if (src.hasTiming())
737      tgt.setTiming(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getTiming()));
738    for (org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionActionParticipantComponent t : src.getParticipant())
739      tgt.addParticipant(convertPlanDefinitionActionParticipantComponent(t));
740    if (src.hasType())
741      tgt.setType(Coding30_50.convertCoding(src.getType().getCodingFirstRep()));
742    if (src.hasGroupingBehavior())
743      tgt.setGroupingBehaviorElement(convertActionGroupingBehavior(src.getGroupingBehaviorElement()));
744    if (src.hasSelectionBehavior())
745      tgt.setSelectionBehaviorElement(convertActionSelectionBehavior(src.getSelectionBehaviorElement()));
746    if (src.hasRequiredBehavior())
747      tgt.setRequiredBehaviorElement(convertActionRequiredBehavior(src.getRequiredBehaviorElement()));
748    if (src.hasPrecheckBehavior())
749      tgt.setPrecheckBehaviorElement(convertActionPrecheckBehavior(src.getPrecheckBehaviorElement()));
750    if (src.hasCardinalityBehavior())
751      tgt.setCardinalityBehaviorElement(convertActionCardinalityBehavior(src.getCardinalityBehaviorElement()));
752    if (src.hasDefinitionCanonicalType())
753      tgt.setDefinition(Reference30_50.convertCanonicalToReference(src.getDefinitionCanonicalType()));
754    if (src.hasTransform())
755      tgt.setTransform(Reference30_50.convertCanonicalToReference(src.getTransformElement()));
756    for (org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionActionDynamicValueComponent t : src.getDynamicValue())
757      tgt.addDynamicValue(convertPlanDefinitionActionDynamicValueComponent(t));
758    for (org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionActionComponent t : src.getAction())
759      tgt.addAction(convertPlanDefinitionActionComponent(t));
760    return tgt;
761  }
762
763  public static org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionActionConditionComponent convertPlanDefinitionActionConditionComponent(org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionActionConditionComponent src) throws FHIRException {
764    if (src == null)
765      return null;
766    org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionActionConditionComponent tgt = new org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionActionConditionComponent();
767    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
768    if (src.hasKind())
769      tgt.setKindElement(convertActionConditionKind(src.getKindElement()));
770    if (src.hasDescription())
771      tgt.getExpression().setDescription(src.getDescription());
772    if (src.hasLanguage())
773      tgt.getExpression().setLanguage(src.getLanguage());
774    if (src.hasExpression())
775      tgt.getExpression().setExpression(src.getExpression());
776    return tgt;
777  }
778
779  public static org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionActionConditionComponent convertPlanDefinitionActionConditionComponent(org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionActionConditionComponent src) throws FHIRException {
780    if (src == null)
781      return null;
782    org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionActionConditionComponent tgt = new org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionActionConditionComponent();
783    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
784    if (src.hasKind())
785      tgt.setKindElement(convertActionConditionKind(src.getKindElement()));
786    if (src.getExpression().hasDescription())
787      tgt.setDescription(src.getExpression().getDescription());
788    if (src.getExpression().hasLanguage())
789      tgt.setLanguage(src.getExpression().getLanguage());
790    if (src.getExpression().hasExpression())
791      tgt.setExpression(src.getExpression().getExpression());
792    return tgt;
793  }
794
795  public static org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionActionDynamicValueComponent convertPlanDefinitionActionDynamicValueComponent(org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionActionDynamicValueComponent src) throws FHIRException {
796    if (src == null)
797      return null;
798    org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionActionDynamicValueComponent tgt = new org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionActionDynamicValueComponent();
799    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
800    if (src.getExpression().hasDescription())
801      tgt.setDescription(src.getExpression().getDescription());
802    if (src.hasPath())
803      tgt.setPathElement(String30_50.convertString(src.getPathElement()));
804    if (src.getExpression().hasLanguage())
805      tgt.setLanguage(src.getExpression().getLanguage());
806    if (src.getExpression().hasExpression())
807      tgt.setExpression(src.getExpression().getExpression());
808    return tgt;
809  }
810
811  public static org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionActionDynamicValueComponent convertPlanDefinitionActionDynamicValueComponent(org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionActionDynamicValueComponent src) throws FHIRException {
812    if (src == null)
813      return null;
814    org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionActionDynamicValueComponent tgt = new org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionActionDynamicValueComponent();
815    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
816    if (src.hasDescription())
817      tgt.getExpression().setDescription(src.getDescription());
818    if (src.hasPath())
819      tgt.setPathElement(String30_50.convertString(src.getPathElement()));
820    if (src.hasLanguage())
821      tgt.getExpression().setLanguage(src.getLanguage());
822    if (src.hasExpression())
823      tgt.getExpression().setExpression(src.getExpression());
824    return tgt;
825  }
826
827  public static org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionActionParticipantComponent convertPlanDefinitionActionParticipantComponent(org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionActionParticipantComponent src) throws FHIRException {
828    if (src == null)
829      return null;
830    org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionActionParticipantComponent tgt = new org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionActionParticipantComponent();
831    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
832    if (src.hasType())
833      tgt.setTypeElement(convertActionParticipantType(src.getTypeElement()));
834    if (src.hasRole())
835      tgt.setRole(CodeableConcept30_50.convertCodeableConcept(src.getRole()));
836    return tgt;
837  }
838
839  public static org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionActionParticipantComponent convertPlanDefinitionActionParticipantComponent(org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionActionParticipantComponent src) throws FHIRException {
840    if (src == null)
841      return null;
842    org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionActionParticipantComponent tgt = new org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionActionParticipantComponent();
843    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
844    if (src.hasType())
845      tgt.setTypeElement(convertActionParticipantType(src.getTypeElement()));
846    if (src.hasRole())
847      tgt.setRole(CodeableConcept30_50.convertCodeableConcept(src.getRole()));
848    return tgt;
849  }
850
851  public static org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionActionRelatedActionComponent convertPlanDefinitionActionRelatedActionComponent(org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionActionRelatedActionComponent src) throws FHIRException {
852    if (src == null)
853      return null;
854    org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionActionRelatedActionComponent tgt = new org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionActionRelatedActionComponent();
855    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
856    if (src.hasTargetId())
857      tgt.setActionIdElement(Id30_50.convertId(src.getTargetIdElement()));
858    if (src.hasRelationship())
859      tgt.setRelationshipElement(convertActionRelationshipType(src.getRelationshipElement()));
860    if (src.hasOffset())
861      tgt.setOffset(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getOffset()));
862    return tgt;
863  }
864
865  public static org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionActionRelatedActionComponent convertPlanDefinitionActionRelatedActionComponent(org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionActionRelatedActionComponent src) throws FHIRException {
866    if (src == null)
867      return null;
868    org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionActionRelatedActionComponent tgt = new org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionActionRelatedActionComponent();
869    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
870    if (src.hasActionId())
871      tgt.setTargetIdElement(Id30_50.convertId(src.getActionIdElement()));
872    if (src.hasRelationship())
873      tgt.setRelationshipElement(convertActionRelationshipType(src.getRelationshipElement()));
874    if (src.hasOffset())
875      tgt.setOffset(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getOffset()));
876    return tgt;
877  }
878
879  public static org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionGoalComponent convertPlanDefinitionGoalComponent(org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionGoalComponent src) throws FHIRException {
880    if (src == null)
881      return null;
882    org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionGoalComponent tgt = new org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionGoalComponent();
883    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
884    if (src.hasCategory())
885      tgt.setCategory(CodeableConcept30_50.convertCodeableConcept(src.getCategory()));
886    if (src.hasDescription())
887      tgt.setDescription(CodeableConcept30_50.convertCodeableConcept(src.getDescription()));
888    if (src.hasPriority())
889      tgt.setPriority(CodeableConcept30_50.convertCodeableConcept(src.getPriority()));
890    if (src.hasStart())
891      tgt.setStart(CodeableConcept30_50.convertCodeableConcept(src.getStart()));
892    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getAddresses())
893      tgt.addAddresses(CodeableConcept30_50.convertCodeableConcept(t));
894    for (org.hl7.fhir.dstu3.model.RelatedArtifact t : src.getDocumentation())
895      tgt.addDocumentation(RelatedArtifact30_50.convertRelatedArtifact(t));
896    for (org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionGoalTargetComponent t : src.getTarget())
897      tgt.addTarget(convertPlanDefinitionGoalTargetComponent(t));
898    return tgt;
899  }
900
901  public static org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionGoalComponent convertPlanDefinitionGoalComponent(org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionGoalComponent src) throws FHIRException {
902    if (src == null)
903      return null;
904    org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionGoalComponent tgt = new org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionGoalComponent();
905    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
906    if (src.hasCategory())
907      tgt.setCategory(CodeableConcept30_50.convertCodeableConcept(src.getCategory()));
908    if (src.hasDescription())
909      tgt.setDescription(CodeableConcept30_50.convertCodeableConcept(src.getDescription()));
910    if (src.hasPriority())
911      tgt.setPriority(CodeableConcept30_50.convertCodeableConcept(src.getPriority()));
912    if (src.hasStart())
913      tgt.setStart(CodeableConcept30_50.convertCodeableConcept(src.getStart()));
914    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getAddresses())
915      tgt.addAddresses(CodeableConcept30_50.convertCodeableConcept(t));
916    for (org.hl7.fhir.r5.model.RelatedArtifact t : src.getDocumentation())
917      tgt.addDocumentation(RelatedArtifact30_50.convertRelatedArtifact(t));
918    for (org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionGoalTargetComponent t : src.getTarget())
919      tgt.addTarget(convertPlanDefinitionGoalTargetComponent(t));
920    return tgt;
921  }
922
923  public static org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionGoalTargetComponent convertPlanDefinitionGoalTargetComponent(org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionGoalTargetComponent src) throws FHIRException {
924    if (src == null)
925      return null;
926    org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionGoalTargetComponent tgt = new org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionGoalTargetComponent();
927    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
928    if (src.hasMeasure())
929      tgt.setMeasure(CodeableConcept30_50.convertCodeableConcept(src.getMeasure()));
930    if (src.hasDetail())
931      tgt.setDetail(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getDetail()));
932    if (src.hasDue())
933      tgt.setDue(Duration30_50.convertDuration(src.getDue()));
934    return tgt;
935  }
936
937  public static org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionGoalTargetComponent convertPlanDefinitionGoalTargetComponent(org.hl7.fhir.r5.model.PlanDefinition.PlanDefinitionGoalTargetComponent src) throws FHIRException {
938    if (src == null)
939      return null;
940    org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionGoalTargetComponent tgt = new org.hl7.fhir.dstu3.model.PlanDefinition.PlanDefinitionGoalTargetComponent();
941    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
942    if (src.hasMeasure())
943      tgt.setMeasure(CodeableConcept30_50.convertCodeableConcept(src.getMeasure()));
944    if (src.hasDetail())
945      tgt.setDetail(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getDetail()));
946    if (src.hasDue())
947      tgt.setDue(Duration30_50.convertDuration(src.getDue()));
948    return tgt;
949  }
950}