001package org.hl7.fhir.convertors.conv30_40.resources30_40;
002
003import org.hl7.fhir.convertors.context.ConversionContext30_40;
004import org.hl7.fhir.convertors.conv30_40.datatypes30_40.Reference30_40;
005import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Annotation30_40;
006import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.CodeableConcept30_40;
007import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Identifier30_40;
008import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.DateTime30_40;
009import org.hl7.fhir.exceptions.FHIRException;
010import org.hl7.fhir.r4.model.DeviceUseStatement;
011import org.hl7.fhir.r4.model.Enumeration;
012
013public class DeviceUseStatement30_40 {
014
015  public static org.hl7.fhir.r4.model.DeviceUseStatement convertDeviceUseStatement(org.hl7.fhir.dstu3.model.DeviceUseStatement src) throws FHIRException {
016    if (src == null)
017      return null;
018    org.hl7.fhir.r4.model.DeviceUseStatement tgt = new org.hl7.fhir.r4.model.DeviceUseStatement();
019    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt);
020    for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier())
021      tgt.addIdentifier(Identifier30_40.convertIdentifier(t));
022    if (src.hasStatus())
023      tgt.setStatusElement(convertDeviceUseStatementStatus(src.getStatusElement()));
024    if (src.hasSubject())
025      tgt.setSubject(Reference30_40.convertReference(src.getSubject()));
026    if (src.hasTiming())
027      tgt.setTiming(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getTiming()));
028    if (src.hasRecordedOn())
029      tgt.setRecordedOnElement(DateTime30_40.convertDateTime(src.getRecordedOnElement()));
030    if (src.hasSource())
031      tgt.setSource(Reference30_40.convertReference(src.getSource()));
032    if (src.hasDevice())
033      tgt.setDevice(Reference30_40.convertReference(src.getDevice()));
034    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getIndication())
035      tgt.addReasonCode(CodeableConcept30_40.convertCodeableConcept(t));
036    if (src.hasBodySite())
037      tgt.setBodySite(CodeableConcept30_40.convertCodeableConcept(src.getBodySite()));
038    for (org.hl7.fhir.dstu3.model.Annotation t : src.getNote()) tgt.addNote(Annotation30_40.convertAnnotation(t));
039    return tgt;
040  }
041
042  public static org.hl7.fhir.dstu3.model.DeviceUseStatement convertDeviceUseStatement(org.hl7.fhir.r4.model.DeviceUseStatement src) throws FHIRException {
043    if (src == null)
044      return null;
045    org.hl7.fhir.dstu3.model.DeviceUseStatement tgt = new org.hl7.fhir.dstu3.model.DeviceUseStatement();
046    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt);
047    for (org.hl7.fhir.r4.model.Identifier t : src.getIdentifier())
048      tgt.addIdentifier(Identifier30_40.convertIdentifier(t));
049    if (src.hasStatus())
050      tgt.setStatusElement(convertDeviceUseStatementStatus(src.getStatusElement()));
051    if (src.hasSubject())
052      tgt.setSubject(Reference30_40.convertReference(src.getSubject()));
053    if (src.hasTiming())
054      tgt.setTiming(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getTiming()));
055    if (src.hasRecordedOn())
056      tgt.setRecordedOnElement(DateTime30_40.convertDateTime(src.getRecordedOnElement()));
057    if (src.hasSource())
058      tgt.setSource(Reference30_40.convertReference(src.getSource()));
059    if (src.hasDevice())
060      tgt.setDevice(Reference30_40.convertReference(src.getDevice()));
061    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getReasonCode())
062      tgt.addIndication(CodeableConcept30_40.convertCodeableConcept(t));
063    if (src.hasBodySite())
064      tgt.setBodySite(CodeableConcept30_40.convertCodeableConcept(src.getBodySite()));
065    for (org.hl7.fhir.r4.model.Annotation t : src.getNote()) tgt.addNote(Annotation30_40.convertAnnotation(t));
066    return tgt;
067  }
068
069  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.DeviceUseStatement.DeviceUseStatementStatus> convertDeviceUseStatementStatus(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.DeviceUseStatement.DeviceUseStatementStatus> src) throws FHIRException {
070      if (src == null || src.isEmpty())
071          return null;
072      Enumeration<DeviceUseStatement.DeviceUseStatementStatus> tgt = new Enumeration<>(new DeviceUseStatement.DeviceUseStatementStatusEnumFactory());
073      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
074      if (src.getValue() == null) {
075          tgt.setValue(null);
076      } else {
077          switch (src.getValue()) {
078              case ACTIVE:
079                  tgt.setValue(DeviceUseStatement.DeviceUseStatementStatus.ACTIVE);
080                  break;
081              case COMPLETED:
082                  tgt.setValue(DeviceUseStatement.DeviceUseStatementStatus.COMPLETED);
083                  break;
084              case ENTEREDINERROR:
085                  tgt.setValue(DeviceUseStatement.DeviceUseStatementStatus.ENTEREDINERROR);
086                  break;
087              case INTENDED:
088                  tgt.setValue(DeviceUseStatement.DeviceUseStatementStatus.INTENDED);
089                  break;
090              case STOPPED:
091                  tgt.setValue(DeviceUseStatement.DeviceUseStatementStatus.STOPPED);
092                  break;
093              case ONHOLD:
094                  tgt.setValue(DeviceUseStatement.DeviceUseStatementStatus.ONHOLD);
095                  break;
096              default:
097                  tgt.setValue(DeviceUseStatement.DeviceUseStatementStatus.NULL);
098                  break;
099          }
100      }
101      return tgt;
102  }
103
104  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.DeviceUseStatement.DeviceUseStatementStatus> convertDeviceUseStatementStatus(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.DeviceUseStatement.DeviceUseStatementStatus> src) throws FHIRException {
105      if (src == null || src.isEmpty())
106          return null;
107      org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.DeviceUseStatement.DeviceUseStatementStatus> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.DeviceUseStatement.DeviceUseStatementStatusEnumFactory());
108      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
109      if (src.getValue() == null) {
110          tgt.setValue(null);
111      } else {
112          switch (src.getValue()) {
113              case ACTIVE:
114                  tgt.setValue(org.hl7.fhir.dstu3.model.DeviceUseStatement.DeviceUseStatementStatus.ACTIVE);
115                  break;
116              case COMPLETED:
117                  tgt.setValue(org.hl7.fhir.dstu3.model.DeviceUseStatement.DeviceUseStatementStatus.COMPLETED);
118                  break;
119              case ENTEREDINERROR:
120                  tgt.setValue(org.hl7.fhir.dstu3.model.DeviceUseStatement.DeviceUseStatementStatus.ENTEREDINERROR);
121                  break;
122              case INTENDED:
123                  tgt.setValue(org.hl7.fhir.dstu3.model.DeviceUseStatement.DeviceUseStatementStatus.INTENDED);
124                  break;
125              case STOPPED:
126                  tgt.setValue(org.hl7.fhir.dstu3.model.DeviceUseStatement.DeviceUseStatementStatus.STOPPED);
127                  break;
128              case ONHOLD:
129                  tgt.setValue(org.hl7.fhir.dstu3.model.DeviceUseStatement.DeviceUseStatementStatus.ONHOLD);
130                  break;
131              default:
132                  tgt.setValue(org.hl7.fhir.dstu3.model.DeviceUseStatement.DeviceUseStatementStatus.NULL);
133                  break;
134          }
135      }
136      return tgt;
137  }
138}