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