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.Coding40_50;
006import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Identifier40_50;
007import org.hl7.fhir.convertors.conv40_50.datatypes40_50.metadata40_50.ContactDetail40_50;
008import org.hl7.fhir.convertors.conv40_50.datatypes40_50.metadata40_50.UsageContext40_50;
009import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.*;
010import org.hl7.fhir.convertors.conv40_50.datatypes40_50.special40_50.Reference40_50;
011import org.hl7.fhir.exceptions.FHIRException;
012import org.hl7.fhir.r4.model.ExampleScenario.FHIRResourceType;
013import org.hl7.fhir.r4.model.StringType;
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 ExampleScenario40_50 {
045  private static final String VERSION_ALGORITHM = "http://hl7.org/fhir/5.0/StructureDefinition/extension-ExampleScenario.versionAlgorithm";
046  private static final String TITLE = "http://hl7.org/fhir/5.0/StructureDefinition/extension-ExampleScenario.title";
047  private static final String DESCRIPTION = "http://hl7.org/fhir/5.0/StructureDefinition/extension-ExampleScenario.description";
048  private static final String COPYRIGHT_LABEL = "http://hl7.org/fhir/5.0/StructureDefinition/extension-ExampleScenario.copyrightLabel";
049  private static final String WORKFLOW = "http://hl7.org/fhir/4.0/StructureDefinition/extension-ExampleScenario.workflow";
050  private static final String INSTANCE_STRUCTURE_VERSION = "http://hl7.org/fhir/5.0/StructureDefinition/extension-ExampleScenario.instance.structureVersion";
051  private static final String INSTANCE_STRUCTURE_PROFILE = "http://hl7.org/fhir/5.0/StructureDefinition/extension-ExampleScenario.instance.structureProfile";
052  private static final String INSTANCE_CONTENT = "http://hl7.org/fhir/5.0/StructureDefinition/extension-ExampleScenario.instance.content";
053  private static final String INSTANCE_VERSION_TITLE = "http://hl7.org/fhir/5.0/StructureDefinition/extension-ExampleScenario.instance.version.title";
054  private static final String INSTANCE_VERSION_CONTENT = "http://hl7.org/fhir/5.0/StructureDefinition/extension-ExampleScenario.instance.version.content";
055  private static final String PROCESS_STEP_NUMBER = "http://hl7.org/fhir/5.0/StructureDefinition/extension-ExampleScenario.process.step.number";
056  private static final String PROCESS_STEP_WORKFLOW = "http://hl7.org/fhir/5.0/StructureDefinition/extension-ExampleScenario.process.step.workflow";
057
058  public static org.hl7.fhir.r5.model.ExampleScenario convertExampleScenario(org.hl7.fhir.r4.model.ExampleScenario src) throws FHIRException {
059    if (src == null)
060      return null;
061    org.hl7.fhir.r5.model.ExampleScenario tgt = new org.hl7.fhir.r5.model.ExampleScenario();
062    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt, VERSION_ALGORITHM, TITLE, DESCRIPTION, COPYRIGHT_LABEL);
063    if (src.hasUrl())
064      tgt.setUrlElement(Uri40_50.convertUri(src.getUrlElement()));
065    for (org.hl7.fhir.r4.model.Identifier t : src.getIdentifier())
066      tgt.addIdentifier(Identifier40_50.convertIdentifier(t));
067    if (src.hasVersion())
068      tgt.setVersionElement(String40_50.convertString(src.getVersionElement()));
069    if (src.hasExtension(VERSION_ALGORITHM)) {
070      if (src.getExtensionByUrl(VERSION_ALGORITHM).getValue() instanceof org.hl7.fhir.r4.model.StringType)
071        tgt.setVersionAlgorithm(String40_50.convertString((org.hl7.fhir.r4.model.StringType)src.getExtensionByUrl(VERSION_ALGORITHM).getValue()));
072      else
073        tgt.setVersionAlgorithm(Coding40_50.convertCoding((org.hl7.fhir.r4.model.Coding)src.getExtensionByUrl(VERSION_ALGORITHM).getValue()));
074    }
075    if (src.hasName())
076      tgt.setNameElement(String40_50.convertString(src.getNameElement()));
077    if (src.hasExtension(TITLE))
078      tgt.setTitleElement(String40_50.convertString((org.hl7.fhir.r4.model.StringType)src.getExtensionByUrl(TITLE).getValue()));
079    if (src.hasStatus())
080      tgt.setStatusElement(Enumerations40_50.convertPublicationStatus(src.getStatusElement()));
081    if (src.hasExperimental())
082      tgt.setExperimentalElement(Boolean40_50.convertBoolean(src.getExperimentalElement()));
083    if (src.hasDate())
084      tgt.setDateElement(DateTime40_50.convertDateTime(src.getDateElement()));
085    if (src.hasPublisher())
086      tgt.setPublisherElement(String40_50.convertString(src.getPublisherElement()));
087    for (org.hl7.fhir.r4.model.ContactDetail t : src.getContact())
088      tgt.addContact(ContactDetail40_50.convertContactDetail(t));
089    if (src.hasExtension(DESCRIPTION))
090      tgt.setDescriptionElement(MarkDown40_50.convertMarkdown((org.hl7.fhir.r4.model.MarkdownType)src.getExtensionByUrl(DESCRIPTION).getValue()));
091    for (org.hl7.fhir.r4.model.UsageContext t : src.getUseContext())
092      tgt.addUseContext(UsageContext40_50.convertUsageContext(t));
093    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getJurisdiction())
094      tgt.addJurisdiction(CodeableConcept40_50.convertCodeableConcept(t));
095    if (src.hasCopyright())
096      tgt.setCopyrightElement(MarkDown40_50.convertMarkdown(src.getCopyrightElement()));
097    if (src.hasExtension(COPYRIGHT_LABEL))
098      tgt.setCopyrightLabelElement(String40_50.convertString((org.hl7.fhir.r4.model.StringType)src.getExtensionByUrl(COPYRIGHT_LABEL).getValue()));
099    if (src.hasPurpose())
100      tgt.setPurposeElement(MarkDown40_50.convertMarkdown(src.getPurposeElement()));
101    for (org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioActorComponent t : src.getActor())
102      tgt.addActor(convertExampleScenarioActorComponent(t));
103    for (org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioInstanceComponent t : src.getInstance())
104      tgt.addInstance(convertExampleScenarioInstanceComponent(t));
105    for (org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioProcessComponent t : src.getProcess())
106      tgt.addProcess(convertExampleScenarioProcessComponent(t));
107    for (org.hl7.fhir.r4.model.CanonicalType t : src.getWorkflow())
108      tgt.addExtension(WORKFLOW, Canonical40_50.convertCanonical(t));
109    return tgt;
110  }
111
112  public static org.hl7.fhir.r4.model.ExampleScenario convertExampleScenario(org.hl7.fhir.r5.model.ExampleScenario src) throws FHIRException {
113    if (src == null)
114      return null;
115    org.hl7.fhir.r4.model.ExampleScenario tgt = new org.hl7.fhir.r4.model.ExampleScenario();
116    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt, WORKFLOW);
117    if (src.hasVersionAlgorithm()) {
118      if (src.getVersionAlgorithm() instanceof org.hl7.fhir.r5.model.StringType)
119        tgt.addExtension(VERSION_ALGORITHM, String40_50.convertString((org.hl7.fhir.r5.model.StringType)src.getVersionAlgorithm()));
120      else
121        tgt.addExtension(VERSION_ALGORITHM, Coding40_50.convertCoding((org.hl7.fhir.r5.model.Coding)src.getVersionAlgorithm()));
122    }
123    if (src.hasUrl())
124      tgt.setUrlElement(Uri40_50.convertUri(src.getUrlElement()));
125    for (org.hl7.fhir.r5.model.Identifier t : src.getIdentifier())
126      tgt.addIdentifier(Identifier40_50.convertIdentifier(t));
127    if (src.hasVersion())
128      tgt.setVersionElement(String40_50.convertString(src.getVersionElement()));
129    if (src.hasName())
130      tgt.setNameElement(String40_50.convertString(src.getNameElement()));
131    if (src.hasTitle())
132      tgt.addExtension(TITLE, String40_50.convertString(src.getTitleElement()));
133    if (src.hasStatus())
134      tgt.setStatusElement(Enumerations40_50.convertPublicationStatus(src.getStatusElement()));
135    if (src.hasExperimental())
136      tgt.setExperimentalElement(Boolean40_50.convertBoolean(src.getExperimentalElement()));
137    if (src.hasDate())
138      tgt.setDateElement(DateTime40_50.convertDateTime(src.getDateElement()));
139    if (src.hasPublisher())
140      tgt.setPublisherElement(String40_50.convertString(src.getPublisherElement()));
141    for (org.hl7.fhir.r5.model.ContactDetail t : src.getContact())
142      tgt.addContact(ContactDetail40_50.convertContactDetail(t));
143    if (src.hasDescription())
144      tgt.addExtension(DESCRIPTION, MarkDown40_50.convertMarkdown(src.getDescriptionElement()));
145    for (org.hl7.fhir.r5.model.UsageContext t : src.getUseContext())
146      tgt.addUseContext(UsageContext40_50.convertUsageContext(t));
147    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getJurisdiction())
148      tgt.addJurisdiction(CodeableConcept40_50.convertCodeableConcept(t));
149    if (src.hasCopyright())
150      tgt.setCopyrightElement(MarkDown40_50.convertMarkdown(src.getCopyrightElement()));
151    if (src.hasCopyrightLabel())
152      tgt.addExtension(COPYRIGHT_LABEL, String40_50.convertString(src.getCopyrightLabelElement()));
153    if (src.hasPurpose())
154      tgt.setPurposeElement(MarkDown40_50.convertMarkdown(src.getPurposeElement()));
155    for (org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioActorComponent t : src.getActor())
156      tgt.addActor(convertExampleScenarioActorComponent(t));
157    for (org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioInstanceComponent t : src.getInstance())
158      tgt.addInstance(convertExampleScenarioInstanceComponent(t));
159    for (org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioProcessComponent t : src.getProcess())
160      tgt.addProcess(convertExampleScenarioProcessComponent(t));
161    for (org.hl7.fhir.r5.model.Extension e : src.getExtensionsByUrl(WORKFLOW))
162      tgt.getWorkflow().add(Canonical40_50.convertCanonical(e.getValueCanonicalType()));
163
164    return tgt;
165  }
166
167  public static org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioActorComponent convertExampleScenarioActorComponent(org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioActorComponent src) throws FHIRException {
168    if (src == null)
169      return null;
170    org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioActorComponent tgt = new org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioActorComponent();
171    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
172    if (src.hasActorId())
173      tgt.setKeyElement(String40_50.convertString(src.getActorIdElement()));
174    if (src.hasType())
175      tgt.setTypeElement(convertExampleScenarioActorType(src.getTypeElement()));
176    if (src.hasName())
177      tgt.setTitleElement(String40_50.convertString(src.getNameElement()));
178    if (src.hasDescription())
179      tgt.setDescriptionElement(MarkDown40_50.convertMarkdown(src.getDescriptionElement()));
180    return tgt;
181  }
182
183  public static org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioActorComponent convertExampleScenarioActorComponent(org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioActorComponent src) throws FHIRException {
184    if (src == null)
185      return null;
186    org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioActorComponent tgt = new org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioActorComponent();
187    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
188    if (src.hasKey())
189      tgt.setActorIdElement(String40_50.convertString(src.getKeyElement()));
190    if (src.hasType())
191      tgt.setTypeElement(convertExampleScenarioActorType(src.getTypeElement()));
192    if (src.hasTitle())
193      tgt.setNameElement(String40_50.convertString(src.getTitleElement()));
194    if (src.hasDescription())
195      tgt.setDescriptionElement(MarkDown40_50.convertMarkdown(src.getDescriptionElement()));
196    return tgt;
197  }
198
199  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.ExampleScenarioActorType> convertExampleScenarioActorType(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioActorType> src) throws FHIRException {
200    if (src == null || src.isEmpty())
201      return null;
202    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.ExampleScenarioActorType> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.Enumerations.ExampleScenarioActorTypeEnumFactory());
203    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
204    switch (src.getValue()) {
205      case PERSON:
206        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.ExampleScenarioActorType.PERSON);
207        break;
208      case ENTITY:
209        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.ExampleScenarioActorType.SYSTEM);
210        break;
211      default:
212        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.ExampleScenarioActorType.NULL);
213        break;
214    }
215    return tgt;
216  }
217
218  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioActorType> convertExampleScenarioActorType(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.ExampleScenarioActorType> src) throws FHIRException {
219    if (src == null || src.isEmpty())
220      return null;
221    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioActorType> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioActorTypeEnumFactory());
222    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
223    switch (src.getValue()) {
224      case PERSON:
225        tgt.setValue(org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioActorType.PERSON);
226        break;
227      case SYSTEM:
228        tgt.setValue(org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioActorType.ENTITY);
229        break;
230      default:
231        tgt.setValue(org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioActorType.NULL);
232        break;
233    }
234    return tgt;
235  }
236
237  public static org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioInstanceComponent convertExampleScenarioInstanceComponent(org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioInstanceComponent src) throws FHIRException {
238    if (src == null)
239      return null;
240    org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioInstanceComponent tgt = new org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioInstanceComponent();
241    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt, INSTANCE_STRUCTURE_VERSION, INSTANCE_STRUCTURE_PROFILE, INSTANCE_CONTENT);
242    if (src.hasResourceId())
243      tgt.setKeyElement(String40_50.convertString(src.getResourceIdElement()));
244    if (src.hasResourceType()) {
245      tgt.getStructureType().setCode(src.getResourceType().toCode());
246      tgt.getStructureType().setSystem("http://hl7.org/fhir/fhir-types");
247    }
248    if (src.hasExtension(INSTANCE_STRUCTURE_VERSION))
249      tgt.setStructureVersionElement(String40_50.convertString((org.hl7.fhir.r4.model.StringType)src.getExtensionByUrl(INSTANCE_STRUCTURE_VERSION).getValue()));
250    if (src.hasExtension(INSTANCE_STRUCTURE_PROFILE)) {
251      if (src.getExtensionByUrl(INSTANCE_STRUCTURE_PROFILE).getValue() instanceof org.hl7.fhir.r4.model.CanonicalType)
252        tgt.setStructureProfile(Canonical40_50.convertCanonical((org.hl7.fhir.r4.model.CanonicalType)src.getExtensionByUrl(INSTANCE_STRUCTURE_PROFILE).getValue()));
253      else
254        tgt.setStructureProfile(Uri40_50.convertUri((org.hl7.fhir.r4.model.UriType)src.getExtensionByUrl(INSTANCE_STRUCTURE_PROFILE).getValue()));
255    }
256    if (src.hasName())
257      tgt.setTitleElement(String40_50.convertString(src.getNameElement()));
258    if (src.hasDescription())
259      tgt.setDescriptionElement(MarkDown40_50.convertMarkdown(src.getDescriptionElement()));
260    if (src.hasExtension(INSTANCE_CONTENT))
261      tgt.setContent(Reference40_50.convertReference((org.hl7.fhir.r4.model.Reference)src.getExtensionByUrl(INSTANCE_CONTENT).getValue()));
262    for (org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioInstanceVersionComponent t : src.getVersion())
263      tgt.addVersion(convertExampleScenarioInstanceVersionComponent(t));
264    for (org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioInstanceContainedInstanceComponent t : src.getContainedInstance())
265      tgt.addContainedInstance(convertExampleScenarioInstanceContainedInstanceComponent(t));
266    return tgt;
267  }
268
269  public static org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioInstanceComponent convertExampleScenarioInstanceComponent(org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioInstanceComponent src) throws FHIRException {
270    if (src == null)
271      return null;
272    org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioInstanceComponent tgt = new org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioInstanceComponent();
273    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
274    if (src.hasStructureVersion())
275      tgt.addExtension(INSTANCE_STRUCTURE_VERSION, String40_50.convertString(src.getStructureVersionElement()));
276    if (src.hasStructureProfile()) {
277      if (src.getStructureProfile() instanceof org.hl7.fhir.r5.model.CanonicalType)
278        tgt.addExtension(INSTANCE_STRUCTURE_PROFILE, Canonical40_50.convertCanonical((org.hl7.fhir.r5.model.CanonicalType)src.getStructureProfile()));
279      else
280        tgt.addExtension(INSTANCE_STRUCTURE_PROFILE, Uri40_50.convertUri((org.hl7.fhir.r5.model.UriType)src.getStructureProfile()));
281    }
282    if (src.hasContent())
283      tgt.addExtension(INSTANCE_CONTENT, Reference40_50.convertReference(src.getContent()));
284    if (src.hasKey())
285      tgt.setResourceIdElement(String40_50.convertString(src.getKeyElement()));
286    if (src.hasStructureType())
287      tgt.setResourceType(FHIRResourceType.fromCode(src.getStructureType().getCode()));
288    if (src.hasTitle())
289      tgt.setNameElement(String40_50.convertString(src.getTitleElement()));
290    if (src.hasDescription())
291      tgt.setDescriptionElement(MarkDown40_50.convertMarkdown(src.getDescriptionElement()));
292    for (org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioInstanceVersionComponent t : src.getVersion())
293      tgt.addVersion(convertExampleScenarioInstanceVersionComponent(t));
294    for (org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioInstanceContainedInstanceComponent t : src.getContainedInstance())
295      tgt.addContainedInstance(convertExampleScenarioInstanceContainedInstanceComponent(t));
296    return tgt;
297  }
298
299  public static org.hl7.fhir.r5.model.CodeType convertFHIRResourceType(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ExampleScenario.FHIRResourceType> src) throws FHIRException {
300    if (src == null)
301      return null;
302    org.hl7.fhir.r5.model.CodeType tgt = new org.hl7.fhir.r5.model.CodeType(src.asStringValue());
303    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
304    return tgt;
305  }
306
307  public static org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ExampleScenario.FHIRResourceType> convertFHIRResourceType(org.hl7.fhir.r5.model.CodeType src) throws FHIRException {
308    if (src == null)
309      return null;
310    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ExampleScenario.FHIRResourceType> tgt = new org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ExampleScenario.FHIRResourceType>(new org.hl7.fhir.r4.model.ExampleScenario.FHIRResourceTypeEnumFactory(), src.getCode());
311    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
312    return tgt;
313  }
314
315  public static org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioInstanceVersionComponent convertExampleScenarioInstanceVersionComponent(org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioInstanceVersionComponent src) throws FHIRException {
316    if (src == null)
317      return null;
318    org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioInstanceVersionComponent tgt = new org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioInstanceVersionComponent();
319    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt, INSTANCE_VERSION_TITLE, INSTANCE_VERSION_CONTENT);
320    if (src.hasVersionId())
321      tgt.setKeyElement(String40_50.convertString(src.getVersionIdElement()));
322    if (src.hasDescription())
323      tgt.setDescriptionElement(MarkDown40_50.convertMarkdown(src.getDescriptionElement()));
324    if (src.hasExtension(INSTANCE_VERSION_TITLE))
325      tgt.setTitleElement(String40_50.convertString((org.hl7.fhir.r4.model.StringType) src.getExtensionByUrl(INSTANCE_VERSION_TITLE).getValue()));
326    if (src.hasExtension(INSTANCE_VERSION_CONTENT))
327      tgt.setContent(Reference40_50.convertReference((org.hl7.fhir.r4.model.Reference) src.getExtensionByUrl(INSTANCE_VERSION_CONTENT).getValue()));
328    return tgt;
329  }
330
331  public static org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioInstanceVersionComponent convertExampleScenarioInstanceVersionComponent(org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioInstanceVersionComponent src) throws FHIRException {
332    if (src == null)
333      return null;
334    org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioInstanceVersionComponent tgt = new org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioInstanceVersionComponent();
335    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
336    if (src.hasKey())
337      tgt.setVersionIdElement(String40_50.convertString(src.getKeyElement()));
338    if (src.hasDescription())
339      tgt.setDescriptionElement(MarkDown40_50.convertMarkdown(src.getDescriptionElement()));
340    if (src.hasTitle())
341      tgt.addExtension(INSTANCE_VERSION_TITLE, String40_50.convertString(src.getTitleElement()));
342    if (src.hasContent())
343      tgt.addExtension(INSTANCE_VERSION_CONTENT, Reference40_50.convertReference(src.getContent()));
344    return tgt;
345  }
346
347  public static org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioInstanceContainedInstanceComponent convertExampleScenarioInstanceContainedInstanceComponent(org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioInstanceContainedInstanceComponent src) throws FHIRException {
348    if (src == null)
349      return null;
350    org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioInstanceContainedInstanceComponent tgt = new org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioInstanceContainedInstanceComponent();
351    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
352    if (src.hasResourceId())
353      tgt.setInstanceReferenceElement(String40_50.convertString(src.getResourceIdElement()));
354    if (src.hasVersionId())
355      tgt.setVersionReferenceElement(String40_50.convertString(src.getVersionIdElement()));
356    return tgt;
357  }
358
359  public static org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioInstanceContainedInstanceComponent convertExampleScenarioInstanceContainedInstanceComponent(org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioInstanceContainedInstanceComponent src) throws FHIRException {
360    if (src == null)
361      return null;
362    org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioInstanceContainedInstanceComponent tgt = new org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioInstanceContainedInstanceComponent();
363    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
364    if (src.hasInstanceReference())
365      tgt.setResourceIdElement(String40_50.convertString(src.getInstanceReferenceElement()));
366    if (src.hasVersionReference())
367      tgt.setVersionIdElement(String40_50.convertString(src.getVersionReferenceElement()));
368    return tgt;
369  }
370
371  public static org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioProcessComponent convertExampleScenarioProcessComponent(org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioProcessComponent src) throws FHIRException {
372    if (src == null)
373      return null;
374    org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioProcessComponent tgt = new org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioProcessComponent();
375    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
376    if (src.hasTitle())
377      tgt.setTitleElement(String40_50.convertString(src.getTitleElement()));
378    if (src.hasDescription())
379      tgt.setDescriptionElement(MarkDown40_50.convertMarkdown(src.getDescriptionElement()));
380    if (src.hasPreConditions())
381      tgt.setPreConditionsElement(MarkDown40_50.convertMarkdown(src.getPreConditionsElement()));
382    if (src.hasPostConditions())
383      tgt.setPostConditionsElement(MarkDown40_50.convertMarkdown(src.getPostConditionsElement()));
384    for (org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioProcessStepComponent t : src.getStep())
385      tgt.addStep(convertExampleScenarioProcessStepComponent(t));
386    return tgt;
387  }
388
389  public static org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioProcessComponent convertExampleScenarioProcessComponent(org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioProcessComponent src) throws FHIRException {
390    if (src == null)
391      return null;
392    org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioProcessComponent tgt = new org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioProcessComponent();
393    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
394    if (src.hasTitle())
395      tgt.setTitleElement(String40_50.convertString(src.getTitleElement()));
396    if (src.hasDescription())
397      tgt.setDescriptionElement(MarkDown40_50.convertMarkdown(src.getDescriptionElement()));
398    if (src.hasPreConditions())
399      tgt.setPreConditionsElement(MarkDown40_50.convertMarkdown(src.getPreConditionsElement()));
400    if (src.hasPostConditions())
401      tgt.setPostConditionsElement(MarkDown40_50.convertMarkdown(src.getPostConditionsElement()));
402    for (org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioProcessStepComponent t : src.getStep())
403      tgt.addStep(convertExampleScenarioProcessStepComponent(t));
404    return tgt;
405  }
406
407  public static org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioProcessStepComponent convertExampleScenarioProcessStepComponent(org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioProcessStepComponent src) throws FHIRException {
408    if (src == null)
409      return null;
410    org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioProcessStepComponent tgt = new org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioProcessStepComponent();
411    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt, PROCESS_STEP_NUMBER, PROCESS_STEP_WORKFLOW);
412    if (src.hasOperation())
413      tgt.setNumberElement(String40_50.convertString(src.getOperation().getNumberElement()));
414    else if (src.hasExtension(PROCESS_STEP_NUMBER))
415      tgt.setNumberElement(String40_50.convertString((org.hl7.fhir.r4.model.StringType)src.getExtensionByUrl(PROCESS_STEP_NUMBER).getValue()));
416    for (org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioProcessComponent t : src.getProcess())
417      tgt.setProcess(convertExampleScenarioProcessComponent(t));
418    if (src.hasExtension(PROCESS_STEP_WORKFLOW))
419      tgt.setWorkflowElement(Canonical40_50.convertCanonical((org.hl7.fhir.r4.model.CanonicalType)src.getExtensionByUrl(PROCESS_STEP_WORKFLOW).getValue()));
420
421    if (src.hasPause())
422      tgt.setPauseElement(Boolean40_50.convertBoolean(src.getPauseElement()));
423    if (src.hasOperation())
424      tgt.setOperation(convertExampleScenarioProcessStepOperationComponent(src.getOperation()));
425    for (org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioProcessStepAlternativeComponent t : src.getAlternative())
426      tgt.addAlternative(convertExampleScenarioProcessStepAlternativeComponent(t));
427    return tgt;
428  }
429
430  public static org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioProcessStepComponent convertExampleScenarioProcessStepComponent(org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioProcessStepComponent src) throws FHIRException {
431    if (src == null)
432      return null;
433    org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioProcessStepComponent tgt = new org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioProcessStepComponent();
434    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
435
436    if (src.hasProcess())
437      tgt.addProcess(convertExampleScenarioProcessComponent(src.getProcess()));
438    if (src.hasWorkflow())
439      tgt.addExtension(PROCESS_STEP_WORKFLOW, Canonical40_50.convertCanonical(src.getWorkflowElement()));
440    if (src.hasPause())
441      tgt.setPauseElement(Boolean40_50.convertBoolean(src.getPauseElement()));
442    if (src.hasOperation())
443      tgt.setOperation(convertExampleScenarioProcessStepOperationComponent(src.getOperation(), src.getNumber()));
444    else
445      tgt.addExtension(PROCESS_STEP_NUMBER, String40_50.convertString(src.getNumberElement()));
446    for (org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioProcessStepAlternativeComponent t : src.getAlternative())
447      tgt.addAlternative(convertExampleScenarioProcessStepAlternativeComponent(t));
448    return tgt;
449  }
450
451  public static org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioProcessStepOperationComponent convertExampleScenarioProcessStepOperationComponent(org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioProcessStepOperationComponent src) throws FHIRException {
452    if (src == null)
453      return null;
454    org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioProcessStepOperationComponent tgt = new org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioProcessStepOperationComponent();
455    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
456//    if (src.hasNumber())
457//      tgt.setNumberElement(String40_50.convertString(src.getNumberElement()));
458    if (src.hasType()) {
459      tgt.getType().setSystem("http://hl7.org/fhir/restful-interaction");
460      tgt.getType().setCode(src.getType());
461    }
462    if (src.hasName())
463      tgt.setTitleElement(String40_50.convertString(src.getNameElement()));
464    if (src.hasInitiator())
465      tgt.setInitiatorElement(String40_50.convertString(src.getInitiatorElement()));
466    if (src.hasReceiver())
467      tgt.setReceiverElement(String40_50.convertString(src.getReceiverElement()));
468    if (src.hasDescription())
469      tgt.setDescriptionElement(MarkDown40_50.convertMarkdown(src.getDescriptionElement()));
470    if (src.hasInitiatorActive())
471      tgt.setInitiatorActiveElement(Boolean40_50.convertBoolean(src.getInitiatorActiveElement()));
472    if (src.hasReceiverActive())
473      tgt.setReceiverActiveElement(Boolean40_50.convertBoolean(src.getReceiverActiveElement()));
474    if (src.hasRequest())
475      tgt.setRequest(convertExampleScenarioInstanceContainedInstanceComponent(src.getRequest()));
476    if (src.hasResponse())
477      tgt.setResponse(convertExampleScenarioInstanceContainedInstanceComponent(src.getResponse()));
478    return tgt;
479  }
480
481  public static org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioProcessStepOperationComponent convertExampleScenarioProcessStepOperationComponent(org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioProcessStepOperationComponent src, String stepPosition) throws FHIRException {
482    if (src == null)
483      return null;
484    org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioProcessStepOperationComponent tgt = new org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioProcessStepOperationComponent();
485    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
486    if (src.hasExtension("http://hl7.org/fhir/4.0/StructureDefinition/extension-ExampleScenario.process.step.operation.number"))
487      tgt.setNumber(src.getExtensionByUrl("http://hl7.org/fhir/4.0/StructureDefinition/extension-ExampleScenario.process.step.operation.number").getValueStringType().toString());
488    else
489      tgt.setNumber(stepPosition);
490    if (src.hasType())
491      tgt.setType(src.getType().getCode());
492    if (src.hasTitle())
493      tgt.setNameElement(String40_50.convertString(src.getTitleElement()));
494    if (src.hasInitiator())
495      tgt.setInitiatorElement(String40_50.convertString(src.getInitiatorElement()));
496    if (src.hasReceiver())
497      tgt.setReceiverElement(String40_50.convertString(src.getReceiverElement()));
498    if (src.hasDescription())
499      tgt.setDescriptionElement(MarkDown40_50.convertMarkdown(src.getDescriptionElement()));
500    if (src.hasInitiatorActive())
501      tgt.setInitiatorActiveElement(Boolean40_50.convertBoolean(src.getInitiatorActiveElement()));
502    if (src.hasReceiverActive())
503      tgt.setReceiverActiveElement(Boolean40_50.convertBoolean(src.getReceiverActiveElement()));
504    if (src.hasRequest())
505      tgt.setRequest(convertExampleScenarioInstanceContainedInstanceComponent(src.getRequest()));
506    if (src.hasResponse())
507      tgt.setResponse(convertExampleScenarioInstanceContainedInstanceComponent(src.getResponse()));
508    return tgt;
509  }
510
511  public static org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioProcessStepAlternativeComponent convertExampleScenarioProcessStepAlternativeComponent(org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioProcessStepAlternativeComponent src) throws FHIRException {
512    if (src == null)
513      return null;
514    org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioProcessStepAlternativeComponent tgt = new org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioProcessStepAlternativeComponent();
515    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
516    if (src.hasTitle())
517      tgt.setTitleElement(String40_50.convertString(src.getTitleElement()));
518    if (src.hasDescription())
519      tgt.setDescriptionElement(MarkDown40_50.convertMarkdown(src.getDescriptionElement()));
520    for (org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioProcessStepComponent t : src.getStep())
521      tgt.addStep(convertExampleScenarioProcessStepComponent(t));
522    return tgt;
523  }
524
525  public static org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioProcessStepAlternativeComponent convertExampleScenarioProcessStepAlternativeComponent(org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioProcessStepAlternativeComponent src) throws FHIRException {
526    if (src == null)
527      return null;
528    org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioProcessStepAlternativeComponent tgt = new org.hl7.fhir.r4.model.ExampleScenario.ExampleScenarioProcessStepAlternativeComponent();
529    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
530    if (src.hasTitle())
531      tgt.setTitleElement(String40_50.convertString(src.getTitleElement()));
532    if (src.hasDescription())
533      tgt.setDescriptionElement(MarkDown40_50.convertMarkdown(src.getDescriptionElement()));
534    for (org.hl7.fhir.r5.model.ExampleScenario.ExampleScenarioProcessStepComponent t : src.getStep())
535      tgt.addStep(convertExampleScenarioProcessStepComponent(t));
536    return tgt;
537  }
538}