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