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.complextypes30_40.Quantity30_40;
009import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.SimpleQuantity30_40;
010import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.String30_40;
011import org.hl7.fhir.dstu3.model.SimpleQuantity;
012import org.hl7.fhir.exceptions.FHIRException;
013
014public class MedicationAdministration30_40 {
015
016  public static org.hl7.fhir.dstu3.model.MedicationAdministration convertMedicationAdministration(org.hl7.fhir.r4.model.MedicationAdministration src) throws FHIRException {
017    if (src == null)
018      return null;
019    org.hl7.fhir.dstu3.model.MedicationAdministration tgt = new org.hl7.fhir.dstu3.model.MedicationAdministration();
020    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt);
021    for (org.hl7.fhir.r4.model.Identifier t : src.getIdentifier())
022      tgt.addIdentifier(Identifier30_40.convertIdentifier(t));
023    for (org.hl7.fhir.r4.model.UriType t : src.getInstantiates()) tgt.addDefinition().setReference(t.getValue());
024    for (org.hl7.fhir.r4.model.Reference t : src.getPartOf()) tgt.addPartOf(Reference30_40.convertReference(t));
025    if (src.hasStatus())
026      tgt.setStatusElement(convertMedicationAdministrationStatus(src.getStatusElement()));
027    if (src.hasCategory())
028      tgt.setCategory(CodeableConcept30_40.convertCodeableConcept(src.getCategory()));
029    if (src.hasMedication())
030      tgt.setMedication(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getMedication()));
031    if (src.hasSubject())
032      tgt.setSubject(Reference30_40.convertReference(src.getSubject()));
033    if (src.hasContext())
034      tgt.setContext(Reference30_40.convertReference(src.getContext()));
035    for (org.hl7.fhir.r4.model.Reference t : src.getSupportingInformation())
036      tgt.addSupportingInformation(Reference30_40.convertReference(t));
037    if (src.hasEffective())
038      tgt.setEffective(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getEffective()));
039    for (org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationPerformerComponent t : src.getPerformer())
040      tgt.addPerformer(convertMedicationAdministrationPerformerComponent(t));
041    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getReasonCode())
042      tgt.addReasonCode(CodeableConcept30_40.convertCodeableConcept(t));
043    for (org.hl7.fhir.r4.model.Reference t : src.getReasonReference())
044      tgt.addReasonReference(Reference30_40.convertReference(t));
045    if (src.hasRequest())
046      tgt.setPrescription(Reference30_40.convertReference(src.getRequest()));
047    for (org.hl7.fhir.r4.model.Reference t : src.getDevice()) tgt.addDevice(Reference30_40.convertReference(t));
048    for (org.hl7.fhir.r4.model.Annotation t : src.getNote()) tgt.addNote(Annotation30_40.convertAnnotation(t));
049    if (src.hasDosage())
050      tgt.setDosage(convertMedicationAdministrationDosageComponent(src.getDosage()));
051    for (org.hl7.fhir.r4.model.Reference t : src.getEventHistory())
052      tgt.addEventHistory(Reference30_40.convertReference(t));
053    return tgt;
054  }
055
056  public static org.hl7.fhir.r4.model.MedicationAdministration convertMedicationAdministration(org.hl7.fhir.dstu3.model.MedicationAdministration src) throws FHIRException {
057    if (src == null)
058      return null;
059    org.hl7.fhir.r4.model.MedicationAdministration tgt = new org.hl7.fhir.r4.model.MedicationAdministration();
060    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt);
061    for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier())
062      tgt.addIdentifier(Identifier30_40.convertIdentifier(t));
063    for (org.hl7.fhir.dstu3.model.Reference t : src.getDefinition()) tgt.addInstantiates(t.getReference());
064    for (org.hl7.fhir.dstu3.model.Reference t : src.getPartOf()) tgt.addPartOf(Reference30_40.convertReference(t));
065    if (src.hasStatus())
066      tgt.setStatusElement(convertMedicationAdministrationStatus(src.getStatusElement()));
067    if (src.hasCategory())
068      tgt.setCategory(CodeableConcept30_40.convertCodeableConcept(src.getCategory()));
069    if (src.hasMedication())
070      tgt.setMedication(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getMedication()));
071    if (src.hasSubject())
072      tgt.setSubject(Reference30_40.convertReference(src.getSubject()));
073    if (src.hasContext())
074      tgt.setContext(Reference30_40.convertReference(src.getContext()));
075    for (org.hl7.fhir.dstu3.model.Reference t : src.getSupportingInformation())
076      tgt.addSupportingInformation(Reference30_40.convertReference(t));
077    if (src.hasEffective())
078      tgt.setEffective(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getEffective()));
079    for (org.hl7.fhir.dstu3.model.MedicationAdministration.MedicationAdministrationPerformerComponent t : src.getPerformer())
080      tgt.addPerformer(convertMedicationAdministrationPerformerComponent(t));
081    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getReasonCode())
082      tgt.addReasonCode(CodeableConcept30_40.convertCodeableConcept(t));
083    for (org.hl7.fhir.dstu3.model.Reference t : src.getReasonReference())
084      tgt.addReasonReference(Reference30_40.convertReference(t));
085    if (src.hasPrescription())
086      tgt.setRequest(Reference30_40.convertReference(src.getPrescription()));
087    for (org.hl7.fhir.dstu3.model.Reference t : src.getDevice()) tgt.addDevice(Reference30_40.convertReference(t));
088    for (org.hl7.fhir.dstu3.model.Annotation t : src.getNote()) tgt.addNote(Annotation30_40.convertAnnotation(t));
089    if (src.hasDosage())
090      tgt.setDosage(convertMedicationAdministrationDosageComponent(src.getDosage()));
091    for (org.hl7.fhir.dstu3.model.Reference t : src.getEventHistory())
092      tgt.addEventHistory(Reference30_40.convertReference(t));
093    return tgt;
094  }
095
096  public static org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationDosageComponent convertMedicationAdministrationDosageComponent(org.hl7.fhir.dstu3.model.MedicationAdministration.MedicationAdministrationDosageComponent src) throws FHIRException {
097    if (src == null)
098      return null;
099    org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationDosageComponent tgt = new org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationDosageComponent();
100    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
101    if (src.hasText())
102      tgt.setTextElement(String30_40.convertString(src.getTextElement()));
103    if (src.hasSite())
104      tgt.setSite(CodeableConcept30_40.convertCodeableConcept(src.getSite()));
105    if (src.hasRoute())
106      tgt.setRoute(CodeableConcept30_40.convertCodeableConcept(src.getRoute()));
107    if (src.hasMethod())
108      tgt.setMethod(CodeableConcept30_40.convertCodeableConcept(src.getMethod()));
109    if (src.hasDose())
110      tgt.setDose(SimpleQuantity30_40.convertSimpleQuantity(src.getDose()));
111    if (src.hasRate())
112      tgt.setRate(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getRate()));
113    return tgt;
114  }
115
116  public static org.hl7.fhir.dstu3.model.MedicationAdministration.MedicationAdministrationDosageComponent convertMedicationAdministrationDosageComponent(org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationDosageComponent src) throws FHIRException {
117    if (src == null)
118      return null;
119    org.hl7.fhir.dstu3.model.MedicationAdministration.MedicationAdministrationDosageComponent tgt = new org.hl7.fhir.dstu3.model.MedicationAdministration.MedicationAdministrationDosageComponent();
120    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
121    if (src.hasText())
122      tgt.setTextElement(String30_40.convertString(src.getTextElement()));
123    if (src.hasSite())
124      tgt.setSite(CodeableConcept30_40.convertCodeableConcept(src.getSite()));
125    if (src.hasRoute())
126      tgt.setRoute(CodeableConcept30_40.convertCodeableConcept(src.getRoute()));
127    if (src.hasMethod())
128      tgt.setMethod(CodeableConcept30_40.convertCodeableConcept(src.getMethod()));
129    if (src.hasDose())
130      tgt.setDose(SimpleQuantity30_40.convertSimpleQuantity(src.getDose()));
131    if (src.hasRate()) {
132      if (src.hasRateQuantity()) {
133        tgt.setRate(new SimpleQuantity());
134        Quantity30_40.copyQuantity(src.getRateQuantity(), tgt.getRateSimpleQuantity());
135      } else {
136        tgt.setRate(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getRate()));
137      }
138    }
139    return tgt;
140  }
141
142  public static org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationPerformerComponent convertMedicationAdministrationPerformerComponent(org.hl7.fhir.dstu3.model.MedicationAdministration.MedicationAdministrationPerformerComponent src) throws FHIRException {
143    if (src == null)
144      return null;
145    org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationPerformerComponent tgt = new org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationPerformerComponent();
146    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
147    if (src.hasActor())
148      tgt.setActor(Reference30_40.convertReference(src.getActor()));
149    return tgt;
150  }
151
152  public static org.hl7.fhir.dstu3.model.MedicationAdministration.MedicationAdministrationPerformerComponent convertMedicationAdministrationPerformerComponent(org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationPerformerComponent src) throws FHIRException {
153    if (src == null)
154      return null;
155    org.hl7.fhir.dstu3.model.MedicationAdministration.MedicationAdministrationPerformerComponent tgt = new org.hl7.fhir.dstu3.model.MedicationAdministration.MedicationAdministrationPerformerComponent();
156    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
157    if (src.hasActor())
158      tgt.setActor(Reference30_40.convertReference(src.getActor()));
159    return tgt;
160  }
161
162  private static org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.MedicationAdministration.MedicationAdministrationStatus> convertMedicationAdministrationStatus(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationStatus> src) {
163    if (src == null)
164      return null;
165    org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.MedicationAdministration.MedicationAdministrationStatus> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.MedicationAdministration.MedicationAdministrationStatusEnumFactory());
166    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
167    //
168    switch (src.getValue()) {
169      case COMPLETED:
170        tgt.setValue(org.hl7.fhir.dstu3.model.MedicationAdministration.MedicationAdministrationStatus.COMPLETED);
171        break;
172      case ENTEREDINERROR:
173        tgt.setValue(org.hl7.fhir.dstu3.model.MedicationAdministration.MedicationAdministrationStatus.ENTEREDINERROR);
174        break;
175      case INPROGRESS:
176        tgt.setValue(org.hl7.fhir.dstu3.model.MedicationAdministration.MedicationAdministrationStatus.INPROGRESS);
177        break;
178      case NOTDONE:
179        tgt.setValue(org.hl7.fhir.dstu3.model.MedicationAdministration.MedicationAdministrationStatus.STOPPED);
180        break;
181      case NULL:
182        tgt.setValue(org.hl7.fhir.dstu3.model.MedicationAdministration.MedicationAdministrationStatus.NULL);
183        break;
184      case ONHOLD:
185        tgt.setValue(org.hl7.fhir.dstu3.model.MedicationAdministration.MedicationAdministrationStatus.ONHOLD);
186        break;
187      case STOPPED:
188        tgt.setValue(org.hl7.fhir.dstu3.model.MedicationAdministration.MedicationAdministrationStatus.STOPPED);
189        break;
190      case UNKNOWN:
191        tgt.setValue(org.hl7.fhir.dstu3.model.MedicationAdministration.MedicationAdministrationStatus.UNKNOWN);
192        break;
193    }
194    return tgt;
195  }
196
197  private static org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationStatus> convertMedicationAdministrationStatus(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.MedicationAdministration.MedicationAdministrationStatus> src) {
198    if (src == null)
199      return null;
200    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationStatus> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationStatusEnumFactory());
201    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
202    //
203    switch (src.getValue()) {
204      case COMPLETED:
205        tgt.setValue(org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationStatus.COMPLETED);
206        break;
207      case ENTEREDINERROR:
208        tgt.setValue(org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationStatus.ENTEREDINERROR);
209        break;
210      case INPROGRESS:
211        tgt.setValue(org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationStatus.INPROGRESS);
212        break;
213      case NULL:
214        tgt.setValue(org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationStatus.NULL);
215        break;
216      case ONHOLD:
217        tgt.setValue(org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationStatus.ONHOLD);
218        break;
219      case STOPPED:
220        tgt.setValue(org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationStatus.STOPPED);
221        break;
222      case UNKNOWN:
223        tgt.setValue(org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationStatus.UNKNOWN);
224        break;
225    }
226    return tgt;
227  }
228}