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