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