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.CodeableConcept30_40;
006import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Coding30_40;
007import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Period30_40;
008import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Signature30_40;
009import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.Instant30_40;
010import org.hl7.fhir.exceptions.FHIRException;
011import org.hl7.fhir.r4.model.*;
012
013public class Provenance30_40 {
014
015  public static org.hl7.fhir.r4.model.CodeableConcept convertCodingToCodeableConcept(org.hl7.fhir.dstu3.model.Coding src) throws FHIRException {
016    if (src == null)
017      return null;
018    org.hl7.fhir.r4.model.CodeableConcept tgt = new org.hl7.fhir.r4.model.CodeableConcept();
019    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
020    if (src.hasSystem())
021      tgt.getCodingFirstRep().setSystem(src.getSystem());
022    if (src.hasVersion())
023      tgt.getCodingFirstRep().setVersion(src.getVersion());
024    if (src.hasCode())
025      tgt.getCodingFirstRep().setCode(src.getCode());
026    if (src.hasDisplay())
027      tgt.getCodingFirstRep().setDisplay(src.getDisplay());
028    if (src.hasUserSelected())
029      tgt.getCodingFirstRep().setUserSelected(src.getUserSelected());
030    return tgt;
031  }
032
033  public static org.hl7.fhir.dstu3.model.Provenance convertProvenance(org.hl7.fhir.r4.model.Provenance src) throws FHIRException {
034    if (src == null)
035      return null;
036    org.hl7.fhir.dstu3.model.Provenance tgt = new org.hl7.fhir.dstu3.model.Provenance();
037    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt);
038    for (org.hl7.fhir.r4.model.Reference t : src.getTarget()) tgt.addTarget(Reference30_40.convertReference(t));
039    if (src.hasOccurredPeriod())
040      tgt.setPeriod(Period30_40.convertPeriod(src.getOccurredPeriod()));
041    if (src.hasRecorded())
042      tgt.setRecordedElement(Instant30_40.convertInstant(src.getRecordedElement()));
043    for (org.hl7.fhir.r4.model.UriType t : src.getPolicy()) tgt.addPolicy(t.getValue());
044    if (src.hasLocation())
045      tgt.setLocation(Reference30_40.convertReference(src.getLocation()));
046    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getReason())
047      for (org.hl7.fhir.r4.model.Coding tc : t.getCoding()) tgt.addReason(Coding30_40.convertCoding(tc));
048    if (src.hasActivity())
049      tgt.setActivity(Coding30_40.convertCoding(src.getActivity()));
050    for (org.hl7.fhir.r4.model.Provenance.ProvenanceAgentComponent t : src.getAgent())
051      tgt.addAgent(convertProvenanceAgentComponent(t));
052    for (org.hl7.fhir.r4.model.Provenance.ProvenanceEntityComponent t : src.getEntity())
053      tgt.addEntity(convertProvenanceEntityComponent(t));
054    for (org.hl7.fhir.r4.model.Signature t : src.getSignature()) tgt.addSignature(Signature30_40.convertSignature(t));
055    return tgt;
056  }
057
058  public static org.hl7.fhir.r4.model.Provenance convertProvenance(org.hl7.fhir.dstu3.model.Provenance src) throws FHIRException {
059    if (src == null)
060      return null;
061    org.hl7.fhir.r4.model.Provenance tgt = new org.hl7.fhir.r4.model.Provenance();
062    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt);
063    for (org.hl7.fhir.dstu3.model.Reference t : src.getTarget()) tgt.addTarget(Reference30_40.convertReference(t));
064    if (src.hasPeriod())
065      tgt.setOccurred(Period30_40.convertPeriod(src.getPeriod()));
066    if (src.hasRecorded())
067      tgt.setRecordedElement(Instant30_40.convertInstant(src.getRecordedElement()));
068    for (org.hl7.fhir.dstu3.model.UriType t : src.getPolicy()) tgt.addPolicy(t.getValue());
069    if (src.hasLocation())
070      tgt.setLocation(Reference30_40.convertReference(src.getLocation()));
071    for (org.hl7.fhir.dstu3.model.Coding t : src.getReason()) tgt.addReason(convertCodingToCodeableConcept(t));
072    if (src.hasActivity())
073      tgt.setActivity(convertCodingToCodeableConcept(src.getActivity()));
074    for (org.hl7.fhir.dstu3.model.Provenance.ProvenanceAgentComponent t : src.getAgent())
075      tgt.addAgent(convertProvenanceAgentComponent(t));
076    for (org.hl7.fhir.dstu3.model.Provenance.ProvenanceEntityComponent t : src.getEntity())
077      tgt.addEntity(convertProvenanceEntityComponent(t));
078    for (org.hl7.fhir.dstu3.model.Signature t : src.getSignature())
079      tgt.addSignature(Signature30_40.convertSignature(t));
080    return tgt;
081  }
082
083  public static org.hl7.fhir.dstu3.model.Provenance.ProvenanceAgentComponent convertProvenanceAgentComponent(org.hl7.fhir.r4.model.Provenance.ProvenanceAgentComponent src) throws FHIRException {
084    if (src == null)
085      return null;
086    org.hl7.fhir.dstu3.model.Provenance.ProvenanceAgentComponent tgt = new org.hl7.fhir.dstu3.model.Provenance.ProvenanceAgentComponent();
087    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
088    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getRole())
089      tgt.addRole(CodeableConcept30_40.convertCodeableConcept(t));
090    if (src.hasWho())
091      tgt.setWho(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getWho()));
092    if (src.hasOnBehalfOf())
093      tgt.setOnBehalfOf(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getOnBehalfOf()));
094    return tgt;
095  }
096
097  public static org.hl7.fhir.r4.model.Provenance.ProvenanceAgentComponent convertProvenanceAgentComponent(org.hl7.fhir.dstu3.model.Provenance.ProvenanceAgentComponent src) throws FHIRException {
098    if (src == null)
099      return null;
100    org.hl7.fhir.r4.model.Provenance.ProvenanceAgentComponent tgt = new org.hl7.fhir.r4.model.Provenance.ProvenanceAgentComponent();
101    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
102    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getRole())
103      tgt.addRole(CodeableConcept30_40.convertCodeableConcept(t));
104    if (src.hasWho()) {
105      Type t = ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getWho());
106      if (t instanceof Reference)
107        tgt.setWho((Reference) t);
108      if (t instanceof UriType)
109        tgt.getWho().setReference(t.primitiveValue());
110    }
111    if (src.hasOnBehalfOf()) {
112      Type t = ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getOnBehalfOf());
113      if (t instanceof Reference)
114        tgt.setOnBehalfOf((Reference) t);
115      if (t instanceof UriType)
116        tgt.getOnBehalfOf().setReference(t.primitiveValue());
117    }
118    return tgt;
119  }
120
121  public static org.hl7.fhir.dstu3.model.Provenance.ProvenanceEntityComponent convertProvenanceEntityComponent(org.hl7.fhir.r4.model.Provenance.ProvenanceEntityComponent src) throws FHIRException {
122    if (src == null)
123      return null;
124    org.hl7.fhir.dstu3.model.Provenance.ProvenanceEntityComponent tgt = new org.hl7.fhir.dstu3.model.Provenance.ProvenanceEntityComponent();
125    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
126    if (src.hasRole())
127      tgt.setRoleElement(convertProvenanceEntityRole(src.getRoleElement()));
128    if (src.hasWhat())
129      tgt.setWhat(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getWhat()));
130    for (org.hl7.fhir.r4.model.Provenance.ProvenanceAgentComponent t : src.getAgent())
131      tgt.addAgent(convertProvenanceAgentComponent(t));
132    return tgt;
133  }
134
135  public static org.hl7.fhir.r4.model.Provenance.ProvenanceEntityComponent convertProvenanceEntityComponent(org.hl7.fhir.dstu3.model.Provenance.ProvenanceEntityComponent src) throws FHIRException {
136    if (src == null)
137      return null;
138    org.hl7.fhir.r4.model.Provenance.ProvenanceEntityComponent tgt = new org.hl7.fhir.r4.model.Provenance.ProvenanceEntityComponent();
139    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
140    if (src.hasRole())
141      tgt.setRoleElement(convertProvenanceEntityRole(src.getRoleElement()));
142    if (src.hasWhat()) {
143      Type t = ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getWhat());
144      if (t instanceof Reference)
145        tgt.setWhat((Reference) t);
146      else if (t instanceof Identifier)
147        tgt.getWhat().setIdentifier((Identifier) t);
148      else if (t instanceof UriType)
149        tgt.getWhat().setReference(t.primitiveValue());
150    }
151    for (org.hl7.fhir.dstu3.model.Provenance.ProvenanceAgentComponent t : src.getAgent())
152      tgt.addAgent(convertProvenanceAgentComponent(t));
153    return tgt;
154  }
155
156  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Provenance.ProvenanceEntityRole> convertProvenanceEntityRole(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Provenance.ProvenanceEntityRole> src) throws FHIRException {
157      if (src == null || src.isEmpty())
158          return null;
159      Enumeration<Provenance.ProvenanceEntityRole> tgt = new Enumeration<>(new Provenance.ProvenanceEntityRoleEnumFactory());
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 DERIVATION:
166                  tgt.setValue(Provenance.ProvenanceEntityRole.DERIVATION);
167                  break;
168              case REVISION:
169                  tgt.setValue(Provenance.ProvenanceEntityRole.REVISION);
170                  break;
171              case QUOTATION:
172                  tgt.setValue(Provenance.ProvenanceEntityRole.QUOTATION);
173                  break;
174              case SOURCE:
175                  tgt.setValue(Provenance.ProvenanceEntityRole.SOURCE);
176                  break;
177              case REMOVAL:
178                  tgt.setValue(Provenance.ProvenanceEntityRole.REMOVAL);
179                  break;
180              default:
181                  tgt.setValue(Provenance.ProvenanceEntityRole.NULL);
182                  break;
183          }
184      }
185      return tgt;
186  }
187
188  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Provenance.ProvenanceEntityRole> convertProvenanceEntityRole(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Provenance.ProvenanceEntityRole> src) throws FHIRException {
189      if (src == null || src.isEmpty())
190          return null;
191      org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Provenance.ProvenanceEntityRole> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.Provenance.ProvenanceEntityRoleEnumFactory());
192      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
193      if (src.getValue() == null) {
194          tgt.setValue(null);
195      } else {
196          switch (src.getValue()) {
197              case DERIVATION:
198                  tgt.setValue(org.hl7.fhir.dstu3.model.Provenance.ProvenanceEntityRole.DERIVATION);
199                  break;
200              case REVISION:
201                  tgt.setValue(org.hl7.fhir.dstu3.model.Provenance.ProvenanceEntityRole.REVISION);
202                  break;
203              case QUOTATION:
204                  tgt.setValue(org.hl7.fhir.dstu3.model.Provenance.ProvenanceEntityRole.QUOTATION);
205                  break;
206              case SOURCE:
207                  tgt.setValue(org.hl7.fhir.dstu3.model.Provenance.ProvenanceEntityRole.SOURCE);
208                  break;
209              case REMOVAL:
210                  tgt.setValue(org.hl7.fhir.dstu3.model.Provenance.ProvenanceEntityRole.REMOVAL);
211                  break;
212              default:
213                  tgt.setValue(org.hl7.fhir.dstu3.model.Provenance.ProvenanceEntityRole.NULL);
214                  break;
215          }
216      }
217      return tgt;
218  }
219}