001package org.hl7.fhir.convertors.conv10_50.resources10_50;
002
003import org.hl7.fhir.convertors.context.ConversionContext10_50;
004import org.hl7.fhir.convertors.conv10_50.datatypes10_50.Reference10_50;
005import org.hl7.fhir.convertors.conv10_50.datatypes10_50.complextypes10_50.CodeableConcept10_50;
006import org.hl7.fhir.convertors.conv10_50.datatypes10_50.complextypes10_50.Identifier10_50;
007import org.hl7.fhir.convertors.conv10_50.datatypes10_50.primitivetypes10_50.Instant10_50;
008import org.hl7.fhir.dstu2.model.DeviceMetric;
009import org.hl7.fhir.dstu2.model.Enumeration;
010import org.hl7.fhir.exceptions.FHIRException;
011
012public class DeviceMetric10_50 {
013
014  public static org.hl7.fhir.dstu2.model.DeviceMetric convertDeviceMetric(org.hl7.fhir.r5.model.DeviceMetric src) throws FHIRException {
015    if (src == null || src.isEmpty())
016      return null;
017    org.hl7.fhir.dstu2.model.DeviceMetric tgt = new org.hl7.fhir.dstu2.model.DeviceMetric();
018    ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyDomainResource(src, tgt);
019    if (src.hasType())
020      tgt.setType(CodeableConcept10_50.convertCodeableConcept(src.getType()));
021    if (src.hasIdentifier())
022      tgt.setIdentifier(Identifier10_50.convertIdentifier(src.getIdentifierFirstRep()));
023    if (src.hasUnit())
024      tgt.setUnit(CodeableConcept10_50.convertCodeableConcept(src.getUnit()));
025    if (src.hasDevice())
026      tgt.setSource(Reference10_50.convertReference(src.getDevice()));
027//    if (src.hasDevice())
028//      tgt.setParent(Reference10_50.convertReference(src.getDevice()));
029    if (src.hasOperationalStatus())
030      tgt.setOperationalStatusElement(convertDeviceMetricOperationalStatus(src.getOperationalStatusElement()));
031    if (src.hasColor())
032      tgt.setColorElement(convertDeviceMetricColor(src.getColorElement()));
033    if (src.hasCategory())
034      tgt.setCategoryElement(convertDeviceMetricCategory(src.getCategoryElement()));
035//    if (src.hasMeasurementPeriod())
036//      tgt.setMeasurementPeriod(Timing10_50.convertTiming(src.getMeasurementPeriod()));
037    for (org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationComponent t : src.getCalibration())
038      tgt.addCalibration(convertDeviceMetricCalibrationComponent(t));
039    return tgt;
040  }
041
042  public static org.hl7.fhir.r5.model.DeviceMetric convertDeviceMetric(org.hl7.fhir.dstu2.model.DeviceMetric src) throws FHIRException {
043    if (src == null || src.isEmpty())
044      return null;
045    org.hl7.fhir.r5.model.DeviceMetric tgt = new org.hl7.fhir.r5.model.DeviceMetric();
046    ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyDomainResource(src, tgt);
047    if (src.hasType())
048      tgt.setType(CodeableConcept10_50.convertCodeableConcept(src.getType()));
049    if (src.hasIdentifier())
050      tgt.addIdentifier(Identifier10_50.convertIdentifier(src.getIdentifier()));
051    if (src.hasUnit())
052      tgt.setUnit(CodeableConcept10_50.convertCodeableConcept(src.getUnit()));
053    if (src.hasSource())
054      tgt.setDevice(Reference10_50.convertReference(src.getSource()));
055    if (src.hasParent())
056      tgt.setDevice(Reference10_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(Timing10_50.convertTiming(src.getMeasurementPeriod()));
065    for (org.hl7.fhir.dstu2.model.DeviceMetric.DeviceMetricCalibrationComponent t : src.getCalibration())
066      tgt.addCalibration(convertDeviceMetricCalibrationComponent(t));
067    return tgt;
068  }
069
070  public static org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationComponent convertDeviceMetricCalibrationComponent(org.hl7.fhir.dstu2.model.DeviceMetric.DeviceMetricCalibrationComponent src) throws FHIRException {
071    if (src == null || src.isEmpty())
072      return null;
073    org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationComponent tgt = new org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationComponent();
074    ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyBackboneElement(src,tgt);
075    if (src.hasType())
076      tgt.setTypeElement(convertDeviceMetricCalibrationType(src.getTypeElement()));
077    if (src.hasState())
078      tgt.setStateElement(convertDeviceMetricCalibrationState(src.getStateElement()));
079    if (src.hasTimeElement())
080      tgt.setTimeElement(Instant10_50.convertInstant(src.getTimeElement()));
081    return tgt;
082  }
083
084  public static org.hl7.fhir.dstu2.model.DeviceMetric.DeviceMetricCalibrationComponent convertDeviceMetricCalibrationComponent(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationComponent src) throws FHIRException {
085    if (src == null || src.isEmpty())
086      return null;
087    org.hl7.fhir.dstu2.model.DeviceMetric.DeviceMetricCalibrationComponent tgt = new org.hl7.fhir.dstu2.model.DeviceMetric.DeviceMetricCalibrationComponent();
088    ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyBackboneElement(src,tgt);
089    if (src.hasType())
090      tgt.setTypeElement(convertDeviceMetricCalibrationType(src.getTypeElement()));
091    if (src.hasState())
092      tgt.setStateElement(convertDeviceMetricCalibrationState(src.getStateElement()));
093    if (src.hasTimeElement())
094      tgt.setTimeElement(Instant10_50.convertInstant(src.getTimeElement()));
095    return tgt;
096  }
097
098  static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.DeviceMetric.DeviceMetricCalibrationState> convertDeviceMetricCalibrationState(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationState> src) throws FHIRException {
099      if (src == null || src.isEmpty())
100          return null;
101      Enumeration<DeviceMetric.DeviceMetricCalibrationState> tgt = new Enumeration<>(new DeviceMetric.DeviceMetricCalibrationStateEnumFactory());
102      ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt);
103      if (src.getValue() == null) {
104          tgt.setValue(null);
105      } else {
106          switch (src.getValue()) {
107              case NOTCALIBRATED:
108                  tgt.setValue(DeviceMetric.DeviceMetricCalibrationState.NOTCALIBRATED);
109                  break;
110              case CALIBRATIONREQUIRED:
111                  tgt.setValue(DeviceMetric.DeviceMetricCalibrationState.CALIBRATIONREQUIRED);
112                  break;
113              case CALIBRATED:
114                  tgt.setValue(DeviceMetric.DeviceMetricCalibrationState.CALIBRATED);
115                  break;
116              case UNSPECIFIED:
117                  tgt.setValue(DeviceMetric.DeviceMetricCalibrationState.UNSPECIFIED);
118                  break;
119              default:
120                  tgt.setValue(DeviceMetric.DeviceMetricCalibrationState.NULL);
121                  break;
122          }
123      }
124      return tgt;
125  }
126
127  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationState> convertDeviceMetricCalibrationState(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.DeviceMetric.DeviceMetricCalibrationState> src) throws FHIRException {
128      if (src == null || src.isEmpty())
129          return null;
130      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());
131      ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt);
132      if (src.getValue() == null) {
133          tgt.setValue(null);
134      } else {
135          switch (src.getValue()) {
136              case NOTCALIBRATED:
137                  tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationState.NOTCALIBRATED);
138                  break;
139              case CALIBRATIONREQUIRED:
140                  tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationState.CALIBRATIONREQUIRED);
141                  break;
142              case CALIBRATED:
143                  tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationState.CALIBRATED);
144                  break;
145              case UNSPECIFIED:
146                  tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationState.UNSPECIFIED);
147                  break;
148              default:
149                  tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationState.NULL);
150                  break;
151          }
152      }
153      return tgt;
154  }
155
156  static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.DeviceMetric.DeviceMetricCalibrationType> convertDeviceMetricCalibrationType(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationType> src) throws FHIRException {
157      if (src == null || src.isEmpty())
158          return null;
159      Enumeration<DeviceMetric.DeviceMetricCalibrationType> tgt = new Enumeration<>(new DeviceMetric.DeviceMetricCalibrationTypeEnumFactory());
160      ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt);
161      if (src.getValue() == null) {
162          tgt.setValue(null);
163      } else {
164          switch (src.getValue()) {
165              case UNSPECIFIED:
166                  tgt.setValue(DeviceMetric.DeviceMetricCalibrationType.UNSPECIFIED);
167                  break;
168              case OFFSET:
169                  tgt.setValue(DeviceMetric.DeviceMetricCalibrationType.OFFSET);
170                  break;
171              case GAIN:
172                  tgt.setValue(DeviceMetric.DeviceMetricCalibrationType.GAIN);
173                  break;
174              case TWOPOINT:
175                  tgt.setValue(DeviceMetric.DeviceMetricCalibrationType.TWOPOINT);
176                  break;
177              default:
178                  tgt.setValue(DeviceMetric.DeviceMetricCalibrationType.NULL);
179                  break;
180          }
181      }
182      return tgt;
183  }
184
185  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationType> convertDeviceMetricCalibrationType(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.DeviceMetric.DeviceMetricCalibrationType> src) throws FHIRException {
186      if (src == null || src.isEmpty())
187          return null;
188      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());
189      ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt);
190      if (src.getValue() == null) {
191          tgt.setValue(null);
192      } else {
193          switch (src.getValue()) {
194              case UNSPECIFIED:
195                  tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationType.UNSPECIFIED);
196                  break;
197              case OFFSET:
198                  tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationType.OFFSET);
199                  break;
200              case GAIN:
201                  tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationType.GAIN);
202                  break;
203              case TWOPOINT:
204                  tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationType.TWOPOINT);
205                  break;
206              default:
207                  tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCalibrationType.NULL);
208                  break;
209          }
210      }
211      return tgt;
212  }
213
214  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCategory> convertDeviceMetricCategory(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.DeviceMetric.DeviceMetricCategory> src) throws FHIRException {
215      if (src == null || src.isEmpty())
216          return null;
217      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());
218      ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt);
219      if (src.getValue() == null) {
220          tgt.setValue(null);
221      } else {
222          switch (src.getValue()) {
223              case MEASUREMENT:
224                  tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCategory.MEASUREMENT);
225                  break;
226              case SETTING:
227                  tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCategory.SETTING);
228                  break;
229              case CALCULATION:
230                  tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCategory.CALCULATION);
231                  break;
232              case UNSPECIFIED:
233                  tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCategory.UNSPECIFIED);
234                  break;
235              default:
236                  tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCategory.NULL);
237                  break;
238          }
239      }
240      return tgt;
241  }
242
243  static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.DeviceMetric.DeviceMetricCategory> convertDeviceMetricCategory(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricCategory> src) throws FHIRException {
244      if (src == null || src.isEmpty())
245          return null;
246      Enumeration<DeviceMetric.DeviceMetricCategory> tgt = new Enumeration<>(new DeviceMetric.DeviceMetricCategoryEnumFactory());
247      ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt);
248      if (src.getValue() == null) {
249          tgt.setValue(null);
250      } else {
251          switch (src.getValue()) {
252              case MEASUREMENT:
253                  tgt.setValue(DeviceMetric.DeviceMetricCategory.MEASUREMENT);
254                  break;
255              case SETTING:
256                  tgt.setValue(DeviceMetric.DeviceMetricCategory.SETTING);
257                  break;
258              case CALCULATION:
259                  tgt.setValue(DeviceMetric.DeviceMetricCategory.CALCULATION);
260                  break;
261              case UNSPECIFIED:
262                  tgt.setValue(DeviceMetric.DeviceMetricCategory.UNSPECIFIED);
263                  break;
264              default:
265                  tgt.setValue(DeviceMetric.DeviceMetricCategory.NULL);
266                  break;
267          }
268      }
269      return tgt;
270  }
271
272  static public org.hl7.fhir.r5.model.CodeType convertDeviceMetricColor(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.DeviceMetric.DeviceMetricColor> src) throws FHIRException {
273    if (src == null || src.isEmpty())
274      return null;
275    org.hl7.fhir.r5.model.CodeType tgt = new org.hl7.fhir.r5.model.CodeType();
276    ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt);
277    tgt.setValue(src.asStringValue());
278    return tgt;
279  }
280
281  static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.DeviceMetric.DeviceMetricColor> convertDeviceMetricColor(org.hl7.fhir.r5.model.CodeType src) throws FHIRException {
282    if (src == null || src.isEmpty())
283      return null;
284    org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.DeviceMetric.DeviceMetricColor> tgt = new org.hl7.fhir.dstu2.model.Enumeration<>(new org.hl7.fhir.dstu2.model.DeviceMetric.DeviceMetricColorEnumFactory());
285    ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt);
286    switch (src.getValue()) {
287    case "black":
288      tgt.setValue(org.hl7.fhir.dstu2.model.DeviceMetric.DeviceMetricColor.BLACK);
289      break;
290    case "red":
291      tgt.setValue(org.hl7.fhir.dstu2.model.DeviceMetric.DeviceMetricColor.RED);
292      break;
293    case "green":
294      tgt.setValue(org.hl7.fhir.dstu2.model.DeviceMetric.DeviceMetricColor.GREEN);
295      break;
296    case "yellow":
297      tgt.setValue(org.hl7.fhir.dstu2.model.DeviceMetric.DeviceMetricColor.YELLOW);
298      break;
299    case "blue":
300      tgt.setValue(org.hl7.fhir.dstu2.model.DeviceMetric.DeviceMetricColor.BLUE);
301      break;
302    case "magenta":
303      tgt.setValue(org.hl7.fhir.dstu2.model.DeviceMetric.DeviceMetricColor.MAGENTA);
304      break;
305    case "cyan":
306      tgt.setValue(org.hl7.fhir.dstu2.model.DeviceMetric.DeviceMetricColor.CYAN);
307      break;
308    case "white":
309      tgt.setValue(org.hl7.fhir.dstu2.model.DeviceMetric.DeviceMetricColor.WHITE);
310      break;
311    default:
312      tgt.setValue(org.hl7.fhir.dstu2.model.DeviceMetric.DeviceMetricColor.NULL);
313      break;
314    }
315    return tgt;
316  }
317
318  static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.DeviceMetric.DeviceMetricOperationalStatus> convertDeviceMetricOperationalStatus(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricOperationalStatus> src) throws FHIRException {
319      if (src == null || src.isEmpty())
320          return null;
321      Enumeration<DeviceMetric.DeviceMetricOperationalStatus> tgt = new Enumeration<>(new DeviceMetric.DeviceMetricOperationalStatusEnumFactory());
322      ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt);
323      if (src.getValue() == null) {
324          tgt.setValue(null);
325      } else {
326          switch (src.getValue()) {
327              case ON:
328                  tgt.setValue(DeviceMetric.DeviceMetricOperationalStatus.ON);
329                  break;
330              case OFF:
331                  tgt.setValue(DeviceMetric.DeviceMetricOperationalStatus.OFF);
332                  break;
333              case STANDBY:
334                  tgt.setValue(DeviceMetric.DeviceMetricOperationalStatus.STANDBY);
335                  break;
336              default:
337                  tgt.setValue(DeviceMetric.DeviceMetricOperationalStatus.NULL);
338                  break;
339          }
340      }
341      return tgt;
342  }
343
344  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricOperationalStatus> convertDeviceMetricOperationalStatus(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.DeviceMetric.DeviceMetricOperationalStatus> src) throws FHIRException {
345      if (src == null || src.isEmpty())
346          return null;
347      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());
348      ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt);
349      if (src.getValue() == null) {
350          tgt.setValue(null);
351      } else {
352          switch (src.getValue()) {
353              case ON:
354                  tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricOperationalStatus.ON);
355                  break;
356              case OFF:
357                  tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricOperationalStatus.OFF);
358                  break;
359              case STANDBY:
360                  tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricOperationalStatus.STANDBY);
361                  break;
362              default:
363                  tgt.setValue(org.hl7.fhir.r5.model.DeviceMetric.DeviceMetricOperationalStatus.NULL);
364                  break;
365          }
366      }
367      return tgt;
368  }
369}