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.Identifier40_50;
006import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Timing40_50;
007import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Instant40_50;
008import org.hl7.fhir.convertors.conv40_50.datatypes40_50.special40_50.Reference40_50;
009import org.hl7.fhir.exceptions.FHIRException;
010
011/*
012  Copyright (c) 2011+, HL7, Inc.
013  All rights reserved.
014  
015  Redistribution and use in source and binary forms, with or without modification, 
016  are permitted provided that the following conditions are met:
017  
018   * Redistributions of source code must retain the above copyright notice, this 
019     list of conditions and the following disclaimer.
020   * Redistributions in binary form must reproduce the above copyright notice, 
021     this list of conditions and the following disclaimer in the documentation 
022     and/or other materials provided with the distribution.
023   * Neither the name of HL7 nor the names of its contributors may be used to 
024     endorse or promote products derived from this software without specific 
025     prior written permission.
026  
027  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
028  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
029  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
030  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
031  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
032  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
033  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
034  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
035  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
036  POSSIBILITY OF SUCH DAMAGE.
037  
038*/
039// Generated on Sun, Feb 24, 2019 11:37+1100 for FHIR v4.0.0
040public class DeviceMetric40_50 {
041
042  public static org.hl7.fhir.r5.model.DeviceMetric convertDeviceMetric(org.hl7.fhir.r4.model.DeviceMetric src) throws FHIRException {
043    if (src == null)
044      return null;
045    org.hl7.fhir.r5.model.DeviceMetric tgt = new org.hl7.fhir.r5.model.DeviceMetric();
046    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt);
047    for (org.hl7.fhir.r4.model.Identifier t : src.getIdentifier())
048      tgt.addIdentifier(Identifier40_50.convertIdentifier(t));
049    if (src.hasType())
050      tgt.setType(CodeableConcept40_50.convertCodeableConcept(src.getType()));
051    if (src.hasUnit())
052      tgt.setUnit(CodeableConcept40_50.convertCodeableConcept(src.getUnit()));
053    if (src.hasSource())
054      tgt.setSource(Reference40_50.convertReference(src.getSource()));
055    if (src.hasParent())
056      tgt.setParent(Reference40_50.convertReference(src.getParent()));
057    if (src.hasOperationalStatus())
058      tgt.setOperationalStatusElement(convertDeviceMetricOperationalStatus(src.getOperationalStatusElement()));
059    if (src.hasColor())
060      tgt.setColorElement(convertDeviceMetricColor(src.getColorElement()));
061    if (src.hasCategory())
062      tgt.setCategoryElement(convertDeviceMetricCategory(src.getCategoryElement()));
063    if (src.hasMeasurementPeriod())
064      tgt.setMeasurementPeriod(Timing40_50.convertTiming(src.getMeasurementPeriod()));
065    for (org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCalibrationComponent t : src.getCalibration())
066      tgt.addCalibration(convertDeviceMetricCalibrationComponent(t));
067    return tgt;
068  }
069
070  public static org.hl7.fhir.r4.model.DeviceMetric convertDeviceMetric(org.hl7.fhir.r5.model.DeviceMetric src) throws FHIRException {
071    if (src == null)
072      return null;
073    org.hl7.fhir.r4.model.DeviceMetric tgt = new org.hl7.fhir.r4.model.DeviceMetric();
074    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt);
075    for (org.hl7.fhir.r5.model.Identifier t : src.getIdentifier())
076      tgt.addIdentifier(Identifier40_50.convertIdentifier(t));
077    if (src.hasType())
078      tgt.setType(CodeableConcept40_50.convertCodeableConcept(src.getType()));
079    if (src.hasUnit())
080      tgt.setUnit(CodeableConcept40_50.convertCodeableConcept(src.getUnit()));
081    if (src.hasSource())
082      tgt.setSource(Reference40_50.convertReference(src.getSource()));
083    if (src.hasParent())
084      tgt.setParent(Reference40_50.convertReference(src.getParent()));
085    if (src.hasOperationalStatus())
086      tgt.setOperationalStatusElement(convertDeviceMetricOperationalStatus(src.getOperationalStatusElement()));
087    if (src.hasColor())
088      tgt.setColorElement(convertDeviceMetricColor(src.getColorElement()));
089    if (src.hasCategory())
090      tgt.setCategoryElement(convertDeviceMetricCategory(src.getCategoryElement()));
091    if (src.hasMeasurementPeriod())
092      tgt.setMeasurementPeriod(Timing40_50.convertTiming(src.getMeasurementPeriod()));
093    for (org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationComponent t : src.getCalibration())
094      tgt.addCalibration(convertDeviceMetricCalibrationComponent(t));
095    return tgt;
096  }
097
098  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricOperationalStatus> convertDeviceMetricOperationalStatus(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricOperationalStatus> src) throws FHIRException {
099    if (src == null || src.isEmpty())
100      return null;
101    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricOperationalStatus> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricOperationalStatusEnumFactory());
102    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
103    switch (src.getValue()) {
104      case ON:
105        tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricOperationalStatus.ON);
106        break;
107      case OFF:
108        tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricOperationalStatus.OFF);
109        break;
110      case STANDBY:
111        tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricOperationalStatus.STANDBY);
112        break;
113      case ENTEREDINERROR:
114        tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricOperationalStatus.ENTEREDINERROR);
115        break;
116      default:
117        tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricOperationalStatus.NULL);
118        break;
119    }
120    return tgt;
121  }
122
123  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricOperationalStatus> convertDeviceMetricOperationalStatus(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricOperationalStatus> src) throws FHIRException {
124    if (src == null || src.isEmpty())
125      return null;
126    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricOperationalStatus> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricOperationalStatusEnumFactory());
127    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
128    switch (src.getValue()) {
129      case ON:
130        tgt.setValue(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricOperationalStatus.ON);
131        break;
132      case OFF:
133        tgt.setValue(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricOperationalStatus.OFF);
134        break;
135      case STANDBY:
136        tgt.setValue(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricOperationalStatus.STANDBY);
137        break;
138      case ENTEREDINERROR:
139        tgt.setValue(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricOperationalStatus.ENTEREDINERROR);
140        break;
141      default:
142        tgt.setValue(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricOperationalStatus.NULL);
143        break;
144    }
145    return tgt;
146  }
147
148  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricColor> convertDeviceMetricColor(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricColor> src) throws FHIRException {
149    if (src == null || src.isEmpty())
150      return null;
151    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricColor> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricColorEnumFactory());
152    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
153    switch (src.getValue()) {
154      case BLACK:
155        tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricColor.BLACK);
156        break;
157      case RED:
158        tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricColor.RED);
159        break;
160      case GREEN:
161        tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricColor.GREEN);
162        break;
163      case YELLOW:
164        tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricColor.YELLOW);
165        break;
166      case BLUE:
167        tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricColor.BLUE);
168        break;
169      case MAGENTA:
170        tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricColor.MAGENTA);
171        break;
172      case CYAN:
173        tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricColor.CYAN);
174        break;
175      case WHITE:
176        tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricColor.WHITE);
177        break;
178      default:
179        tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricColor.NULL);
180        break;
181    }
182    return tgt;
183  }
184
185  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricColor> convertDeviceMetricColor(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricColor> src) throws FHIRException {
186    if (src == null || src.isEmpty())
187      return null;
188    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricColor> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricColorEnumFactory());
189    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
190    switch (src.getValue()) {
191      case BLACK:
192        tgt.setValue(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricColor.BLACK);
193        break;
194      case RED:
195        tgt.setValue(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricColor.RED);
196        break;
197      case GREEN:
198        tgt.setValue(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricColor.GREEN);
199        break;
200      case YELLOW:
201        tgt.setValue(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricColor.YELLOW);
202        break;
203      case BLUE:
204        tgt.setValue(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricColor.BLUE);
205        break;
206      case MAGENTA:
207        tgt.setValue(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricColor.MAGENTA);
208        break;
209      case CYAN:
210        tgt.setValue(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricColor.CYAN);
211        break;
212      case WHITE:
213        tgt.setValue(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricColor.WHITE);
214        break;
215      default:
216        tgt.setValue(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricColor.NULL);
217        break;
218    }
219    return tgt;
220  }
221
222  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCategory> convertDeviceMetricCategory(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCategory> src) throws FHIRException {
223    if (src == null || src.isEmpty())
224      return null;
225    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCategory> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCategoryEnumFactory());
226    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
227    switch (src.getValue()) {
228      case MEASUREMENT:
229        tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCategory.MEASUREMENT);
230        break;
231      case SETTING:
232        tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCategory.SETTING);
233        break;
234      case CALCULATION:
235        tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCategory.CALCULATION);
236        break;
237      case UNSPECIFIED:
238        tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCategory.UNSPECIFIED);
239        break;
240      default:
241        tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCategory.NULL);
242        break;
243    }
244    return tgt;
245  }
246
247  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCategory> convertDeviceMetricCategory(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCategory> src) throws FHIRException {
248    if (src == null || src.isEmpty())
249      return null;
250    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCategory> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCategoryEnumFactory());
251    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
252    switch (src.getValue()) {
253      case MEASUREMENT:
254        tgt.setValue(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCategory.MEASUREMENT);
255        break;
256      case SETTING:
257        tgt.setValue(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCategory.SETTING);
258        break;
259      case CALCULATION:
260        tgt.setValue(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCategory.CALCULATION);
261        break;
262      case UNSPECIFIED:
263        tgt.setValue(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCategory.UNSPECIFIED);
264        break;
265      default:
266        tgt.setValue(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCategory.NULL);
267        break;
268    }
269    return tgt;
270  }
271
272  public static org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationComponent convertDeviceMetricCalibrationComponent(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCalibrationComponent src) throws FHIRException {
273    if (src == null)
274      return null;
275    org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationComponent tgt = new org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationComponent();
276    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
277    if (src.hasType())
278      tgt.setTypeElement(convertDeviceMetricCalibrationType(src.getTypeElement()));
279    if (src.hasState())
280      tgt.setStateElement(convertDeviceMetricCalibrationState(src.getStateElement()));
281    if (src.hasTime())
282      tgt.setTimeElement(Instant40_50.convertInstant(src.getTimeElement()));
283    return tgt;
284  }
285
286  public static org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCalibrationComponent convertDeviceMetricCalibrationComponent(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationComponent src) throws FHIRException {
287    if (src == null)
288      return null;
289    org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCalibrationComponent tgt = new org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCalibrationComponent();
290    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
291    if (src.hasType())
292      tgt.setTypeElement(convertDeviceMetricCalibrationType(src.getTypeElement()));
293    if (src.hasState())
294      tgt.setStateElement(convertDeviceMetricCalibrationState(src.getStateElement()));
295    if (src.hasTime())
296      tgt.setTimeElement(Instant40_50.convertInstant(src.getTimeElement()));
297    return tgt;
298  }
299
300  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationType> convertDeviceMetricCalibrationType(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCalibrationType> src) throws FHIRException {
301    if (src == null || src.isEmpty())
302      return null;
303    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationType> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationTypeEnumFactory());
304    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
305    switch (src.getValue()) {
306      case UNSPECIFIED:
307        tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationType.UNSPECIFIED);
308        break;
309      case OFFSET:
310        tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationType.OFFSET);
311        break;
312      case GAIN:
313        tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationType.GAIN);
314        break;
315      case TWOPOINT:
316        tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationType.TWOPOINT);
317        break;
318      default:
319        tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationType.NULL);
320        break;
321    }
322    return tgt;
323  }
324
325  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCalibrationType> convertDeviceMetricCalibrationType(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationType> src) throws FHIRException {
326    if (src == null || src.isEmpty())
327      return null;
328    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCalibrationType> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCalibrationTypeEnumFactory());
329    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
330    switch (src.getValue()) {
331      case UNSPECIFIED:
332        tgt.setValue(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCalibrationType.UNSPECIFIED);
333        break;
334      case OFFSET:
335        tgt.setValue(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCalibrationType.OFFSET);
336        break;
337      case GAIN:
338        tgt.setValue(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCalibrationType.GAIN);
339        break;
340      case TWOPOINT:
341        tgt.setValue(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCalibrationType.TWOPOINT);
342        break;
343      default:
344        tgt.setValue(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCalibrationType.NULL);
345        break;
346    }
347    return tgt;
348  }
349
350  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationState> convertDeviceMetricCalibrationState(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCalibrationState> src) throws FHIRException {
351    if (src == null || src.isEmpty())
352      return null;
353    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationState> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationStateEnumFactory());
354    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
355    switch (src.getValue()) {
356      case NOTCALIBRATED:
357        tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationState.NOTCALIBRATED);
358        break;
359      case CALIBRATIONREQUIRED:
360        tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationState.CALIBRATIONREQUIRED);
361        break;
362      case CALIBRATED:
363        tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationState.CALIBRATED);
364        break;
365      case UNSPECIFIED:
366        tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationState.UNSPECIFIED);
367        break;
368      default:
369        tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationState.NULL);
370        break;
371    }
372    return tgt;
373  }
374
375  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCalibrationState> convertDeviceMetricCalibrationState(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationState> src) throws FHIRException {
376    if (src == null || src.isEmpty())
377      return null;
378    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCalibrationState> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCalibrationStateEnumFactory());
379    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
380    switch (src.getValue()) {
381      case NOTCALIBRATED:
382        tgt.setValue(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCalibrationState.NOTCALIBRATED);
383        break;
384      case CALIBRATIONREQUIRED:
385        tgt.setValue(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCalibrationState.CALIBRATIONREQUIRED);
386        break;
387      case CALIBRATED:
388        tgt.setValue(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCalibrationState.CALIBRATED);
389        break;
390      case UNSPECIFIED:
391        tgt.setValue(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCalibrationState.UNSPECIFIED);
392        break;
393      default:
394        tgt.setValue(org.hl7.fhir.r4.model.DeviceMetric.DeviceMetricCalibrationState.NULL);
395        break;
396    }
397    return tgt;
398  }
399}