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.Duration30_40;
009import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Identifier30_40;
010import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Period30_40;
011import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.SimpleQuantity30_40;
012import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.Boolean30_40;
013import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.DateTime30_40;
014import org.hl7.fhir.dstu3.model.Enumeration;
015import org.hl7.fhir.dstu3.model.MedicationRequest;
016import org.hl7.fhir.exceptions.FHIRException;
017
018public class MedicationRequest30_40 {
019
020  public static org.hl7.fhir.dstu3.model.MedicationRequest convertMedicationRequest(org.hl7.fhir.r4.model.MedicationRequest src) throws FHIRException {
021    if (src == null)
022      return null;
023    org.hl7.fhir.dstu3.model.MedicationRequest tgt = new org.hl7.fhir.dstu3.model.MedicationRequest();
024    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt);
025    for (org.hl7.fhir.r4.model.Identifier t : src.getIdentifier())
026      tgt.addIdentifier(Identifier30_40.convertIdentifier(t));
027    for (org.hl7.fhir.r4.model.Reference t : src.getBasedOn()) tgt.addBasedOn(Reference30_40.convertReference(t));
028    if (src.hasGroupIdentifier())
029      tgt.setGroupIdentifier(Identifier30_40.convertIdentifier(src.getGroupIdentifier()));
030    if (src.hasStatus())
031      tgt.setStatusElement(convertMedicationRequestStatus(src.getStatusElement()));
032    if (src.hasIntent())
033      tgt.setIntentElement(convertMedicationRequestIntent(src.getIntentElement()));
034    if (src.hasPriority())
035      tgt.setPriorityElement(convertMedicationRequestPriority(src.getPriorityElement()));
036    if (src.hasMedication())
037      tgt.setMedication(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getMedication()));
038    if (src.hasSubject())
039      tgt.setSubject(Reference30_40.convertReference(src.getSubject()));
040    if (src.hasEncounter())
041      tgt.setContext(Reference30_40.convertReference(src.getEncounter()));
042    for (org.hl7.fhir.r4.model.Reference t : src.getSupportingInformation())
043      tgt.addSupportingInformation(Reference30_40.convertReference(t));
044    if (src.hasAuthoredOn())
045      tgt.setAuthoredOnElement(DateTime30_40.convertDateTime(src.getAuthoredOnElement()));
046    if (src.hasRecorder())
047      tgt.setRecorder(Reference30_40.convertReference(src.getRecorder()));
048    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getReasonCode())
049      tgt.addReasonCode(CodeableConcept30_40.convertCodeableConcept(t));
050    for (org.hl7.fhir.r4.model.Reference t : src.getReasonReference())
051      tgt.addReasonReference(Reference30_40.convertReference(t));
052    for (org.hl7.fhir.r4.model.Annotation t : src.getNote()) tgt.addNote(Annotation30_40.convertAnnotation(t));
053    for (org.hl7.fhir.r4.model.Dosage t : src.getDosageInstruction())
054      tgt.addDosageInstruction(Dosage30_40.convertDosage(t));
055    if (src.hasDispenseRequest())
056      tgt.setDispenseRequest(convertMedicationRequestDispenseRequestComponent(src.getDispenseRequest()));
057    if (src.hasSubstitution())
058      tgt.setSubstitution(convertMedicationRequestSubstitutionComponent(src.getSubstitution()));
059    if (src.hasPriorPrescription())
060      tgt.setPriorPrescription(Reference30_40.convertReference(src.getPriorPrescription()));
061    for (org.hl7.fhir.r4.model.Reference t : src.getDetectedIssue())
062      tgt.addDetectedIssue(Reference30_40.convertReference(t));
063    for (org.hl7.fhir.r4.model.Reference t : src.getEventHistory())
064      tgt.addEventHistory(Reference30_40.convertReference(t));
065    if (src.hasRequester()) {
066      tgt.getRequester().setAgent(Reference30_40.convertReference(src.getRequester()));
067    }
068    return tgt;
069  }
070
071  public static org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestDispenseRequestComponent convertMedicationRequestDispenseRequestComponent(org.hl7.fhir.dstu3.model.MedicationRequest.MedicationRequestDispenseRequestComponent src) throws FHIRException {
072    if (src == null)
073      return null;
074    org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestDispenseRequestComponent tgt = new org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestDispenseRequestComponent();
075    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
076    if (src.hasValidityPeriod())
077      tgt.setValidityPeriod(Period30_40.convertPeriod(src.getValidityPeriod()));
078    if (src.hasNumberOfRepeatsAllowed())
079      tgt.setNumberOfRepeatsAllowed(src.getNumberOfRepeatsAllowed());
080    if (src.hasQuantity())
081      tgt.setQuantity(SimpleQuantity30_40.convertSimpleQuantity(src.getQuantity()));
082    if (src.hasExpectedSupplyDuration())
083      tgt.setExpectedSupplyDuration(Duration30_40.convertDuration(src.getExpectedSupplyDuration()));
084    if (src.hasPerformer())
085      tgt.setPerformer(Reference30_40.convertReference(src.getPerformer()));
086    return tgt;
087  }
088
089  public static org.hl7.fhir.dstu3.model.MedicationRequest.MedicationRequestDispenseRequestComponent convertMedicationRequestDispenseRequestComponent(org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestDispenseRequestComponent src) throws FHIRException {
090    if (src == null)
091      return null;
092    org.hl7.fhir.dstu3.model.MedicationRequest.MedicationRequestDispenseRequestComponent tgt = new org.hl7.fhir.dstu3.model.MedicationRequest.MedicationRequestDispenseRequestComponent();
093    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
094    if (src.hasValidityPeriod())
095      tgt.setValidityPeriod(Period30_40.convertPeriod(src.getValidityPeriod()));
096    if (src.hasNumberOfRepeatsAllowed())
097      tgt.setNumberOfRepeatsAllowed(src.getNumberOfRepeatsAllowed());
098    if (src.hasQuantity())
099      tgt.setQuantity(SimpleQuantity30_40.convertSimpleQuantity(src.getQuantity()));
100    if (src.hasExpectedSupplyDuration())
101      tgt.setExpectedSupplyDuration(Duration30_40.convertDuration(src.getExpectedSupplyDuration()));
102    if (src.hasPerformer())
103      tgt.setPerformer(Reference30_40.convertReference(src.getPerformer()));
104    return tgt;
105  }
106
107  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.MedicationRequest.MedicationRequestIntent> convertMedicationRequestIntent(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestIntent> src) throws FHIRException {
108      if (src == null || src.isEmpty())
109          return null;
110      Enumeration<MedicationRequest.MedicationRequestIntent> tgt = new Enumeration<>(new MedicationRequest.MedicationRequestIntentEnumFactory());
111      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
112      if (src.getValue() == null) {
113          tgt.setValue(null);
114      } else {
115          switch (src.getValue()) {
116              case PROPOSAL:
117                  tgt.setValue(MedicationRequest.MedicationRequestIntent.PROPOSAL);
118                  break;
119              case PLAN:
120                  tgt.setValue(MedicationRequest.MedicationRequestIntent.PLAN);
121                  break;
122              case ORDER:
123                  tgt.setValue(MedicationRequest.MedicationRequestIntent.ORDER);
124                  break;
125              case INSTANCEORDER:
126                  tgt.setValue(MedicationRequest.MedicationRequestIntent.INSTANCEORDER);
127                  break;
128              default:
129                  tgt.setValue(MedicationRequest.MedicationRequestIntent.NULL);
130                  break;
131          }
132      }
133      return tgt;
134  }
135
136  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestIntent> convertMedicationRequestIntent(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.MedicationRequest.MedicationRequestIntent> src) throws FHIRException {
137      if (src == null || src.isEmpty())
138          return null;
139      org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestIntent> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestIntentEnumFactory());
140      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
141      if (src.getValue() == null) {
142          tgt.setValue(null);
143      } else {
144          switch (src.getValue()) {
145              case PROPOSAL:
146                  tgt.setValue(org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestIntent.PROPOSAL);
147                  break;
148              case PLAN:
149                  tgt.setValue(org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestIntent.PLAN);
150                  break;
151              case ORDER:
152                  tgt.setValue(org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestIntent.ORDER);
153                  break;
154              case INSTANCEORDER:
155                  tgt.setValue(org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestIntent.INSTANCEORDER);
156                  break;
157              default:
158                  tgt.setValue(org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestIntent.NULL);
159                  break;
160          }
161      }
162      return tgt;
163  }
164
165  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestPriority> convertMedicationRequestPriority(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.MedicationRequest.MedicationRequestPriority> src) throws FHIRException {
166      if (src == null || src.isEmpty())
167          return null;
168      org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestPriority> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestPriorityEnumFactory());
169      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
170      if (src.getValue() == null) {
171          tgt.setValue(null);
172      } else {
173          switch (src.getValue()) {
174              case ROUTINE:
175                  tgt.setValue(org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestPriority.ROUTINE);
176                  break;
177              case URGENT:
178                  tgt.setValue(org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestPriority.URGENT);
179                  break;
180              case STAT:
181                  tgt.setValue(org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestPriority.STAT);
182                  break;
183              case ASAP:
184                  tgt.setValue(org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestPriority.ASAP);
185                  break;
186              default:
187                  tgt.setValue(org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestPriority.NULL);
188                  break;
189          }
190      }
191      return tgt;
192  }
193
194  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.MedicationRequest.MedicationRequestPriority> convertMedicationRequestPriority(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestPriority> src) throws FHIRException {
195      if (src == null || src.isEmpty())
196          return null;
197      Enumeration<MedicationRequest.MedicationRequestPriority> tgt = new Enumeration<>(new MedicationRequest.MedicationRequestPriorityEnumFactory());
198      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
199      if (src.getValue() == null) {
200          tgt.setValue(null);
201      } else {
202          switch (src.getValue()) {
203              case ROUTINE:
204                  tgt.setValue(MedicationRequest.MedicationRequestPriority.ROUTINE);
205                  break;
206              case URGENT:
207                  tgt.setValue(MedicationRequest.MedicationRequestPriority.URGENT);
208                  break;
209              case STAT:
210                  tgt.setValue(MedicationRequest.MedicationRequestPriority.STAT);
211                  break;
212              case ASAP:
213                  tgt.setValue(MedicationRequest.MedicationRequestPriority.ASAP);
214                  break;
215              default:
216                  tgt.setValue(MedicationRequest.MedicationRequestPriority.NULL);
217                  break;
218          }
219      }
220      return tgt;
221  }
222
223  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestStatus> convertMedicationRequestStatus(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.MedicationRequest.MedicationRequestStatus> src) throws FHIRException {
224      if (src == null || src.isEmpty())
225          return null;
226      org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestStatus> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestStatusEnumFactory());
227      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
228      if (src.getValue() == null) {
229          tgt.setValue(null);
230      } else {
231          switch (src.getValue()) {
232              case ACTIVE:
233                  tgt.setValue(org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestStatus.ACTIVE);
234                  break;
235              case ONHOLD:
236                  tgt.setValue(org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestStatus.ONHOLD);
237                  break;
238              case CANCELLED:
239                  tgt.setValue(org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestStatus.CANCELLED);
240                  break;
241              case COMPLETED:
242                  tgt.setValue(org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestStatus.COMPLETED);
243                  break;
244              case ENTEREDINERROR:
245                  tgt.setValue(org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestStatus.ENTEREDINERROR);
246                  break;
247              case STOPPED:
248                  tgt.setValue(org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestStatus.STOPPED);
249                  break;
250              case DRAFT:
251                  tgt.setValue(org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestStatus.DRAFT);
252                  break;
253              case UNKNOWN:
254                  tgt.setValue(org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestStatus.UNKNOWN);
255                  break;
256              default:
257                  tgt.setValue(org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestStatus.NULL);
258                  break;
259          }
260      }
261      return tgt;
262  }
263
264  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.MedicationRequest.MedicationRequestStatus> convertMedicationRequestStatus(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestStatus> src) throws FHIRException {
265      if (src == null || src.isEmpty())
266          return null;
267      Enumeration<MedicationRequest.MedicationRequestStatus> tgt = new Enumeration<>(new MedicationRequest.MedicationRequestStatusEnumFactory());
268      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
269      if (src.getValue() == null) {
270          tgt.setValue(null);
271      } else {
272          switch (src.getValue()) {
273              case ACTIVE:
274                  tgt.setValue(MedicationRequest.MedicationRequestStatus.ACTIVE);
275                  break;
276              case ONHOLD:
277                  tgt.setValue(MedicationRequest.MedicationRequestStatus.ONHOLD);
278                  break;
279              case CANCELLED:
280                  tgt.setValue(MedicationRequest.MedicationRequestStatus.CANCELLED);
281                  break;
282              case COMPLETED:
283                  tgt.setValue(MedicationRequest.MedicationRequestStatus.COMPLETED);
284                  break;
285              case ENTEREDINERROR:
286                  tgt.setValue(MedicationRequest.MedicationRequestStatus.ENTEREDINERROR);
287                  break;
288              case STOPPED:
289                  tgt.setValue(MedicationRequest.MedicationRequestStatus.STOPPED);
290                  break;
291              case DRAFT:
292                  tgt.setValue(MedicationRequest.MedicationRequestStatus.DRAFT);
293                  break;
294              case UNKNOWN:
295                  tgt.setValue(MedicationRequest.MedicationRequestStatus.UNKNOWN);
296                  break;
297              default:
298                  tgt.setValue(MedicationRequest.MedicationRequestStatus.NULL);
299                  break;
300          }
301      }
302      return tgt;
303  }
304
305  public static org.hl7.fhir.dstu3.model.MedicationRequest.MedicationRequestSubstitutionComponent convertMedicationRequestSubstitutionComponent(org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestSubstitutionComponent src) throws FHIRException {
306    if (src == null)
307      return null;
308    org.hl7.fhir.dstu3.model.MedicationRequest.MedicationRequestSubstitutionComponent tgt = new org.hl7.fhir.dstu3.model.MedicationRequest.MedicationRequestSubstitutionComponent();
309    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
310    if (src.hasAllowedBooleanType())
311      tgt.setAllowedElement(Boolean30_40.convertBoolean(src.getAllowedBooleanType()));
312    if (src.hasReason())
313      tgt.setReason(CodeableConcept30_40.convertCodeableConcept(src.getReason()));
314    return tgt;
315  }
316
317  public static org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestSubstitutionComponent convertMedicationRequestSubstitutionComponent(org.hl7.fhir.dstu3.model.MedicationRequest.MedicationRequestSubstitutionComponent src) throws FHIRException {
318    if (src == null)
319      return null;
320    org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestSubstitutionComponent tgt = new org.hl7.fhir.r4.model.MedicationRequest.MedicationRequestSubstitutionComponent();
321    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
322    if (src.hasAllowed())
323      tgt.setAllowed(Boolean30_40.convertBoolean(src.getAllowedElement()));
324    if (src.hasReason())
325      tgt.setReason(CodeableConcept30_40.convertCodeableConcept(src.getReason()));
326    return tgt;
327  }
328}