001package org.hl7.fhir.convertors.conv30_40.datatypes30_40;
002
003import org.hl7.fhir.convertors.VersionConvertorConstants;
004import org.hl7.fhir.convertors.context.ConversionContext30_40;
005import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Coding30_40;
006import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.Code30_40;
007import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.String30_40;
008import org.hl7.fhir.exceptions.FHIRException;
009import org.hl7.fhir.r4.model.TriggerDefinition;
010import org.hl7.fhir.r4.model.Type;
011
012public class TriggerDefinition30_40 {
013  public static org.hl7.fhir.r4.model.TriggerDefinition convertTriggerDefinition(org.hl7.fhir.dstu3.model.TriggerDefinition src) throws FHIRException {
014    if (src == null) return null;
015    org.hl7.fhir.r4.model.TriggerDefinition tgt = new org.hl7.fhir.r4.model.TriggerDefinition();
016    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
017    if (src.hasType()) tgt.setTypeElement(convertTriggerType(src.getTypeElement()));
018    if (src.hasEventName()) tgt.setNameElement(String30_40.convertString(src.getEventNameElement()));
019    if (src.hasEventTiming())
020      tgt.setTiming(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getEventTiming()));
021    if (src.hasEventData()) tgt.addData(convertDataRequirement(src.getEventData()));
022    return tgt;
023  }
024
025  public static org.hl7.fhir.dstu3.model.TriggerDefinition convertTriggerDefinition(org.hl7.fhir.r4.model.TriggerDefinition src) throws FHIRException {
026    if (src == null) return null;
027    org.hl7.fhir.dstu3.model.TriggerDefinition tgt = new org.hl7.fhir.dstu3.model.TriggerDefinition();
028    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
029    if (src.hasType()) tgt.setTypeElement(convertTriggerType(src.getTypeElement()));
030    if (src.hasName()) tgt.setEventNameElement(String30_40.convertString(src.getNameElement()));
031    if (src.hasTiming())
032      tgt.setEventTiming(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getTiming()));
033    if (src.hasData()) tgt.setEventData(convertDataRequirement(src.getDataFirstRep()));
034    return tgt;
035  }
036
037  public static org.hl7.fhir.r4.model.DataRequirement convertDataRequirement(org.hl7.fhir.dstu3.model.DataRequirement src) throws FHIRException {
038    if (src == null) return null;
039    org.hl7.fhir.r4.model.DataRequirement tgt = new org.hl7.fhir.r4.model.DataRequirement();
040    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
041    if (src.hasType()) tgt.setTypeElement(Code30_40.convertCode(src.getTypeElement()));
042    for (org.hl7.fhir.dstu3.model.UriType t : src.getProfile()) tgt.addProfile(t.getValue());
043    for (org.hl7.fhir.dstu3.model.StringType t : src.getMustSupport()) tgt.addMustSupport(t.getValue());
044    for (org.hl7.fhir.dstu3.model.DataRequirement.DataRequirementCodeFilterComponent t : src.getCodeFilter())
045      tgt.addCodeFilter(convertDataRequirementCodeFilterComponent(t));
046    for (org.hl7.fhir.dstu3.model.DataRequirement.DataRequirementDateFilterComponent t : src.getDateFilter())
047      tgt.addDateFilter(convertDataRequirementDateFilterComponent(t));
048    return tgt;
049  }
050
051  public static org.hl7.fhir.dstu3.model.DataRequirement convertDataRequirement(org.hl7.fhir.r4.model.DataRequirement src) throws FHIRException {
052    if (src == null) return null;
053    org.hl7.fhir.dstu3.model.DataRequirement tgt = new org.hl7.fhir.dstu3.model.DataRequirement();
054    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
055    if (src.hasType()) tgt.setTypeElement(Code30_40.convertCode(src.getTypeElement()));
056    for (org.hl7.fhir.r4.model.UriType t : src.getProfile()) tgt.addProfile(t.getValue());
057    for (org.hl7.fhir.r4.model.StringType t : src.getMustSupport()) tgt.addMustSupport(t.getValue());
058    for (org.hl7.fhir.r4.model.DataRequirement.DataRequirementCodeFilterComponent t : src.getCodeFilter())
059      tgt.addCodeFilter(convertDataRequirementCodeFilterComponent(t));
060    for (org.hl7.fhir.r4.model.DataRequirement.DataRequirementDateFilterComponent t : src.getDateFilter())
061      tgt.addDateFilter(convertDataRequirementDateFilterComponent(t));
062    return tgt;
063  }
064
065  public static org.hl7.fhir.r4.model.DataRequirement.DataRequirementCodeFilterComponent convertDataRequirementCodeFilterComponent(org.hl7.fhir.dstu3.model.DataRequirement.DataRequirementCodeFilterComponent src) throws FHIRException {
066    if (src == null) return null;
067    org.hl7.fhir.r4.model.DataRequirement.DataRequirementCodeFilterComponent tgt = new org.hl7.fhir.r4.model.DataRequirement.DataRequirementCodeFilterComponent();
068    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
069    if (src.hasPath()) tgt.setPathElement(String30_40.convertString(src.getPathElement()));
070    if (src.hasValueSet()) {
071      Type t = ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getValueSet());
072      if (t instanceof org.hl7.fhir.r4.model.Reference)
073        tgt.setValueSet(((org.hl7.fhir.r4.model.Reference) t).getReference());
074      else tgt.setValueSet(t.primitiveValue());
075      tgt.setValueSet(VersionConvertorConstants.refToVS(tgt.getValueSet()));
076    }
077    for (org.hl7.fhir.dstu3.model.CodeType t : src.getValueCode()) tgt.addCode(Coding30_40.convertCoding(t));
078    for (org.hl7.fhir.dstu3.model.Coding t : src.getValueCoding()) tgt.addCode(Coding30_40.convertCoding(t));
079    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getValueCodeableConcept())
080      tgt.addCode(Coding30_40.convertCoding(t));
081    return tgt;
082  }
083
084  public static org.hl7.fhir.dstu3.model.DataRequirement.DataRequirementCodeFilterComponent convertDataRequirementCodeFilterComponent(org.hl7.fhir.r4.model.DataRequirement.DataRequirementCodeFilterComponent src) throws FHIRException {
085    if (src == null) return null;
086    org.hl7.fhir.dstu3.model.DataRequirement.DataRequirementCodeFilterComponent tgt = new org.hl7.fhir.dstu3.model.DataRequirement.DataRequirementCodeFilterComponent();
087    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
088    if (src.hasPath()) tgt.setPathElement(String30_40.convertString(src.getPathElement()));
089    if (src.hasValueSet()) {
090      String vsr = VersionConvertorConstants.vsToRef(src.getValueSet());
091      if (vsr != null) tgt.setValueSet(new org.hl7.fhir.dstu3.model.UriType(vsr));
092      else tgt.setValueSet(new org.hl7.fhir.dstu3.model.Reference(src.getValueSet()));
093    }
094    for (org.hl7.fhir.r4.model.Coding t : src.getCode()) {
095      tgt.addValueCoding(Coding30_40.convertCoding(t));
096    }
097    return tgt;
098  }
099
100  public static org.hl7.fhir.r4.model.DataRequirement.DataRequirementDateFilterComponent convertDataRequirementDateFilterComponent(org.hl7.fhir.dstu3.model.DataRequirement.DataRequirementDateFilterComponent src) throws FHIRException {
101    if (src == null) return null;
102    org.hl7.fhir.r4.model.DataRequirement.DataRequirementDateFilterComponent tgt = new org.hl7.fhir.r4.model.DataRequirement.DataRequirementDateFilterComponent();
103    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
104    if (src.hasPath()) tgt.setPathElement(String30_40.convertString(src.getPathElement()));
105    if (src.hasValue())
106      tgt.setValue(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getValue()));
107    return tgt;
108  }
109
110  public static org.hl7.fhir.dstu3.model.DataRequirement.DataRequirementDateFilterComponent convertDataRequirementDateFilterComponent(org.hl7.fhir.r4.model.DataRequirement.DataRequirementDateFilterComponent src) throws FHIRException {
111    if (src == null) return null;
112    org.hl7.fhir.dstu3.model.DataRequirement.DataRequirementDateFilterComponent tgt = new org.hl7.fhir.dstu3.model.DataRequirement.DataRequirementDateFilterComponent();
113    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
114    if (src.hasPath()) tgt.setPathElement(String30_40.convertString(src.getPathElement()));
115    if (src.hasValue())
116      tgt.setValue(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getValue()));
117    return tgt;
118  }
119
120  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.TriggerDefinition.TriggerType> convertTriggerType(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.TriggerDefinition.TriggerType> src) throws FHIRException {
121    if (src == null || src.isEmpty()) return null;
122    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.TriggerDefinition.TriggerType> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.TriggerDefinition.TriggerTypeEnumFactory());
123    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
124    if (src.getValue() == null) {
125    tgt.setValue(null);
126} else {
127      switch(src.getValue()) {
128        case NAMEDEVENT:
129            tgt.setValue(TriggerDefinition.TriggerType.NAMEDEVENT);
130            break;
131          case PERIODIC:
132            tgt.setValue(TriggerDefinition.TriggerType.PERIODIC);
133            break;
134          case DATAADDED:
135            tgt.setValue(TriggerDefinition.TriggerType.DATAADDED);
136            break;
137          case DATAMODIFIED:
138            tgt.setValue(TriggerDefinition.TriggerType.DATAMODIFIED);
139            break;
140          case DATAREMOVED:
141            tgt.setValue(TriggerDefinition.TriggerType.DATAREMOVED);
142            break;
143          case DATAACCESSED:
144            tgt.setValue(TriggerDefinition.TriggerType.DATAACCESSED);
145            break;
146          case DATAACCESSENDED:
147            tgt.setValue(TriggerDefinition.TriggerType.DATAACCESSENDED);
148            break;
149          default:
150            tgt.setValue(TriggerDefinition.TriggerType.NULL);
151            break;
152       }
153}
154    return tgt;
155  }
156
157  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.TriggerDefinition.TriggerType> convertTriggerType(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.TriggerDefinition.TriggerType> src) throws FHIRException {
158    if (src == null || src.isEmpty()) return null;
159    org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.TriggerDefinition.TriggerType> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.TriggerDefinition.TriggerTypeEnumFactory());
160    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
161    if (src.getValue() == null) {
162    tgt.setValue(null);
163} else {
164      switch(src.getValue()) {
165        case NAMEDEVENT:
166            tgt.setValue(org.hl7.fhir.dstu3.model.TriggerDefinition.TriggerType.NAMEDEVENT);
167            break;
168          case PERIODIC:
169            tgt.setValue(org.hl7.fhir.dstu3.model.TriggerDefinition.TriggerType.PERIODIC);
170            break;
171          case DATAADDED:
172            tgt.setValue(org.hl7.fhir.dstu3.model.TriggerDefinition.TriggerType.DATAADDED);
173            break;
174          case DATAMODIFIED:
175            tgt.setValue(org.hl7.fhir.dstu3.model.TriggerDefinition.TriggerType.DATAMODIFIED);
176            break;
177          case DATAREMOVED:
178            tgt.setValue(org.hl7.fhir.dstu3.model.TriggerDefinition.TriggerType.DATAREMOVED);
179            break;
180          case DATAACCESSED:
181            tgt.setValue(org.hl7.fhir.dstu3.model.TriggerDefinition.TriggerType.DATAACCESSED);
182            break;
183          case DATAACCESSENDED:
184            tgt.setValue(org.hl7.fhir.dstu3.model.TriggerDefinition.TriggerType.DATAACCESSENDED);
185            break;
186          default:
187            tgt.setValue(org.hl7.fhir.dstu3.model.TriggerDefinition.TriggerType.NULL);
188            break;
189       }
190}
191    return tgt;
192  }
193}