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.Dosage30_40;
005import org.hl7.fhir.convertors.conv30_40.datatypes30_40.Reference30_40;
006import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Annotation30_40;
007import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.CodeableConcept30_40;
008import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Identifier30_40;
009import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.DateTime30_40;
010import org.hl7.fhir.exceptions.FHIRException;
011
012public class MedicationStatement30_40 {
013
014  public static org.hl7.fhir.dstu3.model.MedicationStatement convertMedicationStatement(org.hl7.fhir.r4.model.MedicationStatement src) throws FHIRException {
015    if (src == null)
016      return null;
017    org.hl7.fhir.dstu3.model.MedicationStatement tgt = new org.hl7.fhir.dstu3.model.MedicationStatement();
018    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt);
019    for (org.hl7.fhir.r4.model.Identifier t : src.getIdentifier())
020      tgt.addIdentifier(Identifier30_40.convertIdentifier(t));
021    for (org.hl7.fhir.r4.model.Reference t : src.getBasedOn()) tgt.addBasedOn(Reference30_40.convertReference(t));
022    for (org.hl7.fhir.r4.model.Reference t : src.getPartOf()) tgt.addPartOf(Reference30_40.convertReference(t));
023    if (src.hasContext())
024      tgt.setContext(Reference30_40.convertReference(src.getContext()));
025    if (src.hasStatus())
026      tgt.setStatusElement(convertMedicationStatementStatus(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.hasEffective())
032      tgt.setEffective(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getEffective()));
033    if (src.hasDateAsserted())
034      tgt.setDateAssertedElement(DateTime30_40.convertDateTime(src.getDateAssertedElement()));
035    if (src.hasInformationSource())
036      tgt.setInformationSource(Reference30_40.convertReference(src.getInformationSource()));
037    if (src.hasSubject())
038      tgt.setSubject(Reference30_40.convertReference(src.getSubject()));
039    for (org.hl7.fhir.r4.model.Reference t : src.getDerivedFrom())
040      tgt.addDerivedFrom(Reference30_40.convertReference(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    for (org.hl7.fhir.r4.model.Annotation t : src.getNote()) tgt.addNote(Annotation30_40.convertAnnotation(t));
046    for (org.hl7.fhir.r4.model.Dosage t : src.getDosage()) tgt.addDosage(Dosage30_40.convertDosage(t));
047    return tgt;
048  }
049
050  public static org.hl7.fhir.r4.model.MedicationStatement convertMedicationStatement(org.hl7.fhir.dstu3.model.MedicationStatement src) throws FHIRException {
051    if (src == null)
052      return null;
053    org.hl7.fhir.r4.model.MedicationStatement tgt = new org.hl7.fhir.r4.model.MedicationStatement();
054    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt);
055    for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier())
056      tgt.addIdentifier(Identifier30_40.convertIdentifier(t));
057    for (org.hl7.fhir.dstu3.model.Reference t : src.getBasedOn()) tgt.addBasedOn(Reference30_40.convertReference(t));
058    for (org.hl7.fhir.dstu3.model.Reference t : src.getPartOf()) tgt.addPartOf(Reference30_40.convertReference(t));
059    if (src.hasContext())
060      tgt.setContext(Reference30_40.convertReference(src.getContext()));
061    if (src.hasStatus())
062      tgt.setStatusElement(convertMedicationStatementStatus(src.getStatusElement()));
063    if (src.hasCategory())
064      tgt.setCategory(CodeableConcept30_40.convertCodeableConcept(src.getCategory()));
065    if (src.hasMedication())
066      tgt.setMedication(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getMedication()));
067    if (src.hasEffective())
068      tgt.setEffective(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getEffective()));
069    if (src.hasDateAsserted())
070      tgt.setDateAssertedElement(DateTime30_40.convertDateTime(src.getDateAssertedElement()));
071    if (src.hasInformationSource())
072      tgt.setInformationSource(Reference30_40.convertReference(src.getInformationSource()));
073    if (src.hasSubject())
074      tgt.setSubject(Reference30_40.convertReference(src.getSubject()));
075    for (org.hl7.fhir.dstu3.model.Reference t : src.getDerivedFrom())
076      tgt.addDerivedFrom(Reference30_40.convertReference(t));
077    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getReasonCode())
078      tgt.addReasonCode(CodeableConcept30_40.convertCodeableConcept(t));
079    for (org.hl7.fhir.dstu3.model.Reference t : src.getReasonReference())
080      tgt.addReasonReference(Reference30_40.convertReference(t));
081    for (org.hl7.fhir.dstu3.model.Annotation t : src.getNote()) tgt.addNote(Annotation30_40.convertAnnotation(t));
082    for (org.hl7.fhir.dstu3.model.Dosage t : src.getDosage()) tgt.addDosage(Dosage30_40.convertDosage(t));
083    return tgt;
084  }
085
086  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.MedicationStatement.MedicationStatementStatus> convertMedicationStatementStatus(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MedicationStatement.MedicationStatementStatus> src) throws FHIRException {
087    if (src == null || src.isEmpty())
088      return null;
089    org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.MedicationStatement.MedicationStatementStatus> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.MedicationStatement.MedicationStatementStatusEnumFactory());
090    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
091    switch (src.getValue()) {
092      case ACTIVE:
093        tgt.setValue(org.hl7.fhir.dstu3.model.MedicationStatement.MedicationStatementStatus.ACTIVE);
094        break;
095      case COMPLETED:
096        tgt.setValue(org.hl7.fhir.dstu3.model.MedicationStatement.MedicationStatementStatus.COMPLETED);
097        break;
098      case ENTEREDINERROR:
099        tgt.setValue(org.hl7.fhir.dstu3.model.MedicationStatement.MedicationStatementStatus.ENTEREDINERROR);
100        break;
101      case INTENDED:
102        tgt.setValue(org.hl7.fhir.dstu3.model.MedicationStatement.MedicationStatementStatus.INTENDED);
103        break;
104      case STOPPED:
105        tgt.setValue(org.hl7.fhir.dstu3.model.MedicationStatement.MedicationStatementStatus.STOPPED);
106        break;
107      case ONHOLD:
108        tgt.setValue(org.hl7.fhir.dstu3.model.MedicationStatement.MedicationStatementStatus.ONHOLD);
109        break;
110      default:
111        tgt.setValue(org.hl7.fhir.dstu3.model.MedicationStatement.MedicationStatementStatus.NULL);
112        break;
113    }
114    return tgt;
115  }
116
117  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MedicationStatement.MedicationStatementStatus> convertMedicationStatementStatus(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.MedicationStatement.MedicationStatementStatus> src) throws FHIRException {
118    if (src == null || src.isEmpty())
119      return null;
120    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MedicationStatement.MedicationStatementStatus> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.MedicationStatement.MedicationStatementStatusEnumFactory());
121    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
122    switch (src.getValue()) {
123      case ACTIVE:
124        tgt.setValue(org.hl7.fhir.r4.model.MedicationStatement.MedicationStatementStatus.ACTIVE);
125        break;
126      case COMPLETED:
127        tgt.setValue(org.hl7.fhir.r4.model.MedicationStatement.MedicationStatementStatus.COMPLETED);
128        break;
129      case ENTEREDINERROR:
130        tgt.setValue(org.hl7.fhir.r4.model.MedicationStatement.MedicationStatementStatus.ENTEREDINERROR);
131        break;
132      case INTENDED:
133        tgt.setValue(org.hl7.fhir.r4.model.MedicationStatement.MedicationStatementStatus.INTENDED);
134        break;
135      case STOPPED:
136        tgt.setValue(org.hl7.fhir.r4.model.MedicationStatement.MedicationStatementStatus.STOPPED);
137        break;
138      case ONHOLD:
139        tgt.setValue(org.hl7.fhir.r4.model.MedicationStatement.MedicationStatementStatus.ONHOLD);
140        break;
141      default:
142        tgt.setValue(org.hl7.fhir.r4.model.MedicationStatement.MedicationStatementStatus.NULL);
143        break;
144    }
145    return tgt;
146  }
147}