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.Annotation40_50;
005import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.CodeableConcept40_50;
006import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.ContactPoint40_50;
007import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Identifier40_50;
008import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Quantity40_50;
009import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Boolean40_50;
010import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.String40_50;
011import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Uri40_50;
012import org.hl7.fhir.convertors.conv40_50.datatypes40_50.special40_50.Reference40_50;
013import org.hl7.fhir.exceptions.FHIRException;
014import org.hl7.fhir.r4.model.DeviceDefinition;
015import org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionClassificationComponent;
016import org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionVersionComponent;
017import org.hl7.fhir.r5.model.Enumeration;
018import org.hl7.fhir.r5.model.Enumerations;
019
020/*
021  Copyright (c) 2011+, HL7, Inc.
022  All rights reserved.
023  
024  Redistribution and use in source and binary forms, with or without modification, 
025  are permitted provided that the following conditions are met:
026  
027   * Redistributions of source code must retain the above copyright notice, this 
028     list of conditions and the following disclaimer.
029   * Redistributions in binary form must reproduce the above copyright notice, 
030     this list of conditions and the following disclaimer in the documentation 
031     and/or other materials provided with the distribution.
032   * Neither the name of HL7 nor the names of its contributors may be used to 
033     endorse or promote products derived from this software without specific 
034     prior written permission.
035  
036  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
037  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
038  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
039  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
040  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
041  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
042  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
043  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
044  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
045  POSSIBILITY OF SUCH DAMAGE.
046  
047*/
048// Generated on Sun, Feb 24, 2019 11:37+1100 for FHIR v4.0.0
049public class DeviceDefinition40_50 {
050
051  public static org.hl7.fhir.r5.model.DeviceDefinition convertDeviceDefinition(org.hl7.fhir.r4.model.DeviceDefinition src) throws FHIRException {
052    if (src == null)
053      return null;
054    org.hl7.fhir.r5.model.DeviceDefinition tgt = new org.hl7.fhir.r5.model.DeviceDefinition();
055    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt);
056    for (org.hl7.fhir.r4.model.Identifier t : src.getIdentifier())
057      tgt.addIdentifier(Identifier40_50.convertIdentifier(t));
058    for (org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionUdiDeviceIdentifierComponent t : src.getUdiDeviceIdentifier())
059      tgt.addUdiDeviceIdentifier(convertDeviceDefinitionUdiDeviceIdentifierComponent(t));
060    if (src.hasManufacturerReference())
061      tgt.setManufacturer(Reference40_50.convertReference(src.getManufacturerReference()));
062    for (org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionDeviceNameComponent t : src.getDeviceName())
063      tgt.addDeviceName(convertDeviceDefinitionDeviceNameComponent(t));
064    if (src.hasModelNumber())
065      tgt.setModelNumberElement(String40_50.convertString(src.getModelNumberElement()));
066    if (src.hasType())
067      tgt.addClassification().setType(CodeableConcept40_50.convertCodeableConcept(src.getType()));
068//    for (org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionSpecializationComponent t : src.getSpecialization())
069//      tgt.addSpecialization(convertDeviceDefinitionSpecializationComponent(t));
070    for (org.hl7.fhir.r4.model.StringType t : src.getVersion())
071      tgt.getVersion().add(new DeviceDefinitionVersionComponent().setValueElement(String40_50.convertString(t)));
072    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getSafety())
073      tgt.addSafety(CodeableConcept40_50.convertCodeableConcept(t));
074    for (org.hl7.fhir.r4.model.ProductShelfLife t : src.getShelfLifeStorage())
075      tgt.addShelfLifeStorage(ProductShelfLife40_50.convertProductShelfLife(t));
076//    if (src.hasPhysicalCharacteristics())
077//      tgt.setPhysicalCharacteristics(ProdCharacteristic40_50.convertProdCharacteristic(src.getPhysicalCharacteristics()));
078    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getLanguageCode())
079      tgt.addLanguageCode(CodeableConcept40_50.convertCodeableConcept(t));
080//    for (org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionCapabilityComponent t : src.getCapability())
081//      tgt.addCapability(convertDeviceDefinitionCapabilityComponent(t));
082    for (org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionPropertyComponent t : src.getProperty())
083      tgt.addProperty(convertDeviceDefinitionPropertyComponent(t));
084    if (src.hasOwner())
085      tgt.setOwner(Reference40_50.convertReference(src.getOwner()));
086    for (org.hl7.fhir.r4.model.ContactPoint t : src.getContact())
087      tgt.addContact(ContactPoint40_50.convertContactPoint(t));
088//    if (src.hasOnlineInformation())
089//      tgt.setOnlineInformationElement(Uri40_50.convertUri(src.getOnlineInformationElement()));
090    for (org.hl7.fhir.r4.model.Annotation t : src.getNote()) tgt.addNote(Annotation40_50.convertAnnotation(t));
091//    if (src.hasParentDevice())
092//      tgt.setParentDevice(Reference40_50.convertReference(src.getParentDevice()));
093    for (org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionMaterialComponent t : src.getMaterial())
094      tgt.addMaterial(convertDeviceDefinitionMaterialComponent(t));
095    return tgt;
096  }
097
098  public static org.hl7.fhir.r4.model.DeviceDefinition convertDeviceDefinition(org.hl7.fhir.r5.model.DeviceDefinition src) throws FHIRException {
099    if (src == null)
100      return null;
101    org.hl7.fhir.r4.model.DeviceDefinition tgt = new org.hl7.fhir.r4.model.DeviceDefinition();
102    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt);
103    for (org.hl7.fhir.r5.model.Identifier t : src.getIdentifier())
104      tgt.addIdentifier(Identifier40_50.convertIdentifier(t));
105    for (org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionUdiDeviceIdentifierComponent t : src.getUdiDeviceIdentifier())
106      tgt.addUdiDeviceIdentifier(convertDeviceDefinitionUdiDeviceIdentifierComponent(t));
107    if (src.hasManufacturer())
108      tgt.setManufacturer(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getManufacturer()));
109    for (org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionDeviceNameComponent t : src.getDeviceName())
110      tgt.addDeviceName(convertDeviceDefinitionDeviceNameComponent(t));
111    if (src.hasModelNumber())
112      tgt.setModelNumberElement(String40_50.convertString(src.getModelNumberElement()));
113    for (DeviceDefinitionClassificationComponent t : src.getClassification())
114      tgt.setType(CodeableConcept40_50.convertCodeableConcept(t.getType()));
115//    for (org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionSpecializationComponent t : src.getSpecialization())
116//      tgt.addSpecialization(convertDeviceDefinitionSpecializationComponent(t));
117    for (DeviceDefinitionVersionComponent t : src.getVersion())
118      tgt.getVersion().add(String40_50.convertString(t.getValueElement()));
119    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getSafety())
120      tgt.addSafety(CodeableConcept40_50.convertCodeableConcept(t));
121    for (org.hl7.fhir.r5.model.ProductShelfLife t : src.getShelfLifeStorage())
122      tgt.addShelfLifeStorage(ProductShelfLife40_50.convertProductShelfLife(t));
123//    if (src.hasPhysicalCharacteristics())
124//      tgt.setPhysicalCharacteristics(ProdCharacteristic40_50.convertProdCharacteristic(src.getPhysicalCharacteristics()));
125    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getLanguageCode())
126      tgt.addLanguageCode(CodeableConcept40_50.convertCodeableConcept(t));
127//    for (org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionCapabilityComponent t : src.getCapability())
128//      tgt.addCapability(convertDeviceDefinitionCapabilityComponent(t));
129    for (org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionPropertyComponent t : src.getProperty())
130      tgt.addProperty(convertDeviceDefinitionPropertyComponent(t));
131    if (src.hasOwner())
132      tgt.setOwner(Reference40_50.convertReference(src.getOwner()));
133    for (org.hl7.fhir.r5.model.ContactPoint t : src.getContact())
134      tgt.addContact(ContactPoint40_50.convertContactPoint(t));
135//    if (src.hasOnlineInformation())
136//      tgt.setOnlineInformationElement(Uri40_50.convertUri(src.getOnlineInformationElement()));
137    for (org.hl7.fhir.r5.model.Annotation t : src.getNote()) tgt.addNote(Annotation40_50.convertAnnotation(t));
138//    if (src.hasParentDevice())
139//      tgt.setParentDevice(Reference40_50.convertReference(src.getParentDevice()));
140    for (org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionMaterialComponent t : src.getMaterial())
141      tgt.addMaterial(convertDeviceDefinitionMaterialComponent(t));
142    return tgt;
143  }
144
145  public static org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionUdiDeviceIdentifierComponent convertDeviceDefinitionUdiDeviceIdentifierComponent(org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionUdiDeviceIdentifierComponent src) throws FHIRException {
146    if (src == null)
147      return null;
148    org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionUdiDeviceIdentifierComponent tgt = new org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionUdiDeviceIdentifierComponent();
149    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
150    if (src.hasDeviceIdentifier())
151      tgt.setDeviceIdentifierElement(String40_50.convertString(src.getDeviceIdentifierElement()));
152    if (src.hasIssuer())
153      tgt.setIssuerElement(Uri40_50.convertUri(src.getIssuerElement()));
154    if (src.hasJurisdiction())
155      tgt.setJurisdictionElement(Uri40_50.convertUri(src.getJurisdictionElement()));
156    return tgt;
157  }
158
159  public static org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionUdiDeviceIdentifierComponent convertDeviceDefinitionUdiDeviceIdentifierComponent(org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionUdiDeviceIdentifierComponent src) throws FHIRException {
160    if (src == null)
161      return null;
162    org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionUdiDeviceIdentifierComponent tgt = new org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionUdiDeviceIdentifierComponent();
163    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
164    if (src.hasDeviceIdentifier())
165      tgt.setDeviceIdentifierElement(String40_50.convertString(src.getDeviceIdentifierElement()));
166    if (src.hasIssuer())
167      tgt.setIssuerElement(Uri40_50.convertUri(src.getIssuerElement()));
168    if (src.hasJurisdiction())
169      tgt.setJurisdictionElement(Uri40_50.convertUri(src.getJurisdictionElement()));
170    return tgt;
171  }
172
173  public static org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionDeviceNameComponent convertDeviceDefinitionDeviceNameComponent(org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionDeviceNameComponent src) throws FHIRException {
174    if (src == null)
175      return null;
176    org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionDeviceNameComponent tgt = new org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionDeviceNameComponent();
177    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
178    if (src.hasName())
179      tgt.setNameElement(String40_50.convertString(src.getNameElement()));
180    if (src.hasType())
181      tgt.setTypeElement(convertDeviceNameType(src.getTypeElement()));
182    return tgt;
183  }
184
185  public static org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionDeviceNameComponent convertDeviceDefinitionDeviceNameComponent(org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionDeviceNameComponent src) throws FHIRException {
186    if (src == null)
187      return null;
188    org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionDeviceNameComponent tgt = new org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionDeviceNameComponent();
189    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
190    if (src.hasName())
191      tgt.setNameElement(String40_50.convertString(src.getNameElement()));
192    if (src.hasType())
193      tgt.setTypeElement(convertDeviceNameType(src.getTypeElement()));
194    return tgt;
195  }
196
197  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.DeviceNameType> convertDeviceNameType(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.DeviceDefinition.DeviceNameType> src) throws FHIRException {
198      if (src == null || src.isEmpty())
199          return null;
200      Enumeration<Enumerations.DeviceNameType> tgt = new Enumeration<>(new Enumerations.DeviceNameTypeEnumFactory());
201      ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
202      if (src.getValue() == null) {
203          tgt.setValue(null);
204      } else {
205          switch (src.getValue()) {
206              case USERFRIENDLYNAME:
207                  tgt.setValue(Enumerations.DeviceNameType.USERFRIENDLYNAME);
208                  break;
209              case PATIENTREPORTEDNAME:
210                  tgt.setValue(Enumerations.DeviceNameType.PATIENTREPORTEDNAME);
211                  break;
212              case MANUFACTURERNAME:
213                  tgt.setValue(Enumerations.DeviceNameType.REGISTEREDNAME);
214                  break;
215              case MODELNAME:
216                  tgt.setValue(Enumerations.DeviceNameType.USERFRIENDLYNAME);
217                  break;
218              default:
219                  tgt.setValue(Enumerations.DeviceNameType.NULL);
220                  break;
221          }
222      }
223      return tgt;
224  }
225
226  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.DeviceDefinition.DeviceNameType> convertDeviceNameType(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.DeviceNameType> src) throws FHIRException {
227      if (src == null || src.isEmpty())
228          return null;
229      org.hl7.fhir.r4.model.Enumeration<DeviceDefinition.DeviceNameType> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new DeviceDefinition.DeviceNameTypeEnumFactory());
230      ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
231      if (src.getValue() == null) {
232          tgt.setValue(null);
233      } else {
234          switch (src.getValue()) {
235              case USERFRIENDLYNAME:
236                  tgt.setValue(DeviceDefinition.DeviceNameType.USERFRIENDLYNAME);
237                  break;
238              case PATIENTREPORTEDNAME:
239                  tgt.setValue(DeviceDefinition.DeviceNameType.PATIENTREPORTEDNAME);
240                  break;
241              case REGISTEREDNAME:
242                  tgt.setValue(DeviceDefinition.DeviceNameType.MANUFACTURERNAME);
243                  break;
244              default:
245                  tgt.setValue(DeviceDefinition.DeviceNameType.NULL);
246                  break;
247          }
248      }
249      return tgt;
250  }
251//
252//  public static org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionSpecializationComponent convertDeviceDefinitionSpecializationComponent(org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionSpecializationComponent src) throws FHIRException {
253//    if (src == null)
254//      return null;
255//    org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionSpecializationComponent tgt = new org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionSpecializationComponent();
256//    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
257//    if (src.hasSystemType())
258//      tgt.setSystemTypeElement(String40_50.convertString(src.getSystemTypeElement()));
259//    if (src.hasVersion())
260//      tgt.setVersionElement(String40_50.convertString(src.getVersionElement()));
261//    return tgt;
262//  }
263//
264//  public static org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionSpecializationComponent convertDeviceDefinitionSpecializationComponent(org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionSpecializationComponent src) throws FHIRException {
265//    if (src == null)
266//      return null;
267//    org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionSpecializationComponent tgt = new org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionSpecializationComponent();
268//    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
269//    if (src.hasSystemType())
270//      tgt.setSystemTypeElement(String40_50.convertString(src.getSystemTypeElement()));
271//    if (src.hasVersion())
272//      tgt.setVersionElement(String40_50.convertString(src.getVersionElement()));
273//    return tgt;
274//  }
275//
276//  public static org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionCapabilityComponent convertDeviceDefinitionCapabilityComponent(org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionCapabilityComponent src) throws FHIRException {
277//    if (src == null)
278//      return null;
279//    org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionCapabilityComponent tgt = new org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionCapabilityComponent();
280//    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
281//    if (src.hasType())
282//      tgt.setType(CodeableConcept40_50.convertCodeableConcept(src.getType()));
283//    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getDescription())
284//      tgt.addDescription(CodeableConcept40_50.convertCodeableConcept(t));
285//    return tgt;
286//  }
287//
288//  public static org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionCapabilityComponent convertDeviceDefinitionCapabilityComponent(org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionCapabilityComponent src) throws FHIRException {
289//    if (src == null)
290//      return null;
291//    org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionCapabilityComponent tgt = new org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionCapabilityComponent();
292//    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
293//    if (src.hasType())
294//      tgt.setType(CodeableConcept40_50.convertCodeableConcept(src.getType()));
295//    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getDescription())
296//      tgt.addDescription(CodeableConcept40_50.convertCodeableConcept(t));
297//    return tgt;
298//  }
299
300  public static org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionPropertyComponent convertDeviceDefinitionPropertyComponent(org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionPropertyComponent src) throws FHIRException {
301    if (src == null)
302      return null;
303    org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionPropertyComponent tgt = new org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionPropertyComponent();
304    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
305    if (src.hasType())
306      tgt.setType(CodeableConcept40_50.convertCodeableConcept(src.getType()));
307    for (org.hl7.fhir.r4.model.Quantity t : src.getValueQuantity())
308      tgt.setValue(Quantity40_50.convertQuantity(t));
309    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getValueCode())
310      tgt.setValue(CodeableConcept40_50.convertCodeableConcept(t));
311    return tgt;
312  }
313
314  public static org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionPropertyComponent convertDeviceDefinitionPropertyComponent(org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionPropertyComponent src) throws FHIRException {
315    if (src == null)
316      return null;
317    org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionPropertyComponent tgt = new org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionPropertyComponent();
318    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
319    if (src.hasType())
320      tgt.setType(CodeableConcept40_50.convertCodeableConcept(src.getType()));
321    if (src.hasValueQuantity())
322      tgt.addValueQuantity(Quantity40_50.convertQuantity(src.getValueQuantity()));
323    if (src.hasValueCodeableConcept())
324      tgt.addValueCode(CodeableConcept40_50.convertCodeableConcept(src.getValueCodeableConcept()));
325    return tgt;
326  }
327
328  public static org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionMaterialComponent convertDeviceDefinitionMaterialComponent(org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionMaterialComponent src) throws FHIRException {
329    if (src == null)
330      return null;
331    org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionMaterialComponent tgt = new org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionMaterialComponent();
332    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
333    if (src.hasSubstance())
334      tgt.setSubstance(CodeableConcept40_50.convertCodeableConcept(src.getSubstance()));
335    if (src.hasAlternate())
336      tgt.setAlternateElement(Boolean40_50.convertBoolean(src.getAlternateElement()));
337    if (src.hasAllergenicIndicator())
338      tgt.setAllergenicIndicatorElement(Boolean40_50.convertBoolean(src.getAllergenicIndicatorElement()));
339    return tgt;
340  }
341
342  public static org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionMaterialComponent convertDeviceDefinitionMaterialComponent(org.hl7.fhir.r5.model.DeviceDefinition.DeviceDefinitionMaterialComponent src) throws FHIRException {
343    if (src == null)
344      return null;
345    org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionMaterialComponent tgt = new org.hl7.fhir.r4.model.DeviceDefinition.DeviceDefinitionMaterialComponent();
346    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
347    if (src.hasSubstance())
348      tgt.setSubstance(CodeableConcept40_50.convertCodeableConcept(src.getSubstance()));
349    if (src.hasAlternate())
350      tgt.setAlternateElement(Boolean40_50.convertBoolean(src.getAlternateElement()));
351    if (src.hasAllergenicIndicator())
352      tgt.setAllergenicIndicatorElement(Boolean40_50.convertBoolean(src.getAllergenicIndicatorElement()));
353    return tgt;
354  }
355}