
001package org.hl7.fhir.convertors.conv10_30.resources10_30; 002 003import org.hl7.fhir.convertors.context.ConversionContext10_30; 004import org.hl7.fhir.convertors.conv10_30.datatypes10_30.Reference10_30; 005import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.CodeableConcept10_30; 006import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Duration10_30; 007import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Identifier10_30; 008import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Period10_30; 009import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Ratio10_30; 010import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.SimpleQuantity10_30; 011import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Timing10_30; 012import org.hl7.fhir.dstu2.model.MedicationOrder; 013import org.hl7.fhir.dstu3.model.MedicationRequest; 014import org.hl7.fhir.dstu3.model.StringType; 015import org.hl7.fhir.exceptions.FHIRException; 016 017public class MedicationRequest10_30 { 018 public static org.hl7.fhir.dstu3.model.MedicationRequest convertMedicationOrder(org.hl7.fhir.dstu2.model.MedicationOrder src) throws FHIRException { 019 if (src == null || src.isEmpty()) 020 return null; 021 org.hl7.fhir.dstu3.model.MedicationRequest tgt = new org.hl7.fhir.dstu3.model.MedicationRequest(); 022 ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt); 023 tgt.setIntent(MedicationRequest.MedicationRequestIntent.ORDER); 024 for (org.hl7.fhir.dstu2.model.Identifier t : src.getIdentifier()) 025 tgt.addIdentifier(Identifier10_30.convertIdentifier(t)); 026 if (src.hasDateWritten()) 027 tgt.setAuthoredOn(src.getDateWritten()); 028 if (src.hasStatus()) 029 tgt.setStatus(MedicationRequest.MedicationRequestStatus.fromCode(src.getStatus().toCode())); 030 if (src.hasPatient()) 031 tgt.setSubject(Reference10_30.convertReference(src.getPatient())); 032 if (src.hasPrescriber()) 033 tgt.setRequester(medRequestor(src)); 034 if (src.hasEncounter()) 035 tgt.setContext(Reference10_30.convertReference(src.getEncounter())); 036 if (src.hasReasonCodeableConcept()) 037 tgt.addReasonCode(CodeableConcept10_30.convertCodeableConcept(src.getReasonCodeableConcept())); 038 if (src.hasReasonReference()) 039 tgt.addReasonReference(Reference10_30.convertReference(src.getReasonReference())); 040 if (src.hasNote()) 041 tgt.addNote(new org.hl7.fhir.dstu3.model.Annotation(new StringType(src.getNote()))); 042 if (src.hasMedication()) 043 tgt.setMedication(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getMedication())); 044 for (MedicationOrder.MedicationOrderDosageInstructionComponent dosage : src.getDosageInstruction()) 045 tgt.addDosageInstruction(medDosageInstruction(dosage)); 046 if (src.hasDispenseRequest()) 047 tgt.setDispenseRequest(medDispenseRequest(src.getDispenseRequest())); 048 if (src.hasSubstitution()) 049 tgt.setSubstitution(medSubstitution(src.getSubstitution())); 050 if (src.hasPriorPrescription()) 051 tgt.setPriorPrescription(Reference10_30.convertReference(src.getPriorPrescription())); 052 return tgt; 053 } 054 055 private static org.hl7.fhir.dstu3.model.Dosage medDosageInstruction(org.hl7.fhir.dstu2.model.MedicationOrder.MedicationOrderDosageInstructionComponent src) { 056 if (src == null || src.isEmpty()) 057 return null; 058 org.hl7.fhir.dstu3.model.Dosage tgt = new org.hl7.fhir.dstu3.model.Dosage(); 059 if (src.hasText()) 060 tgt.setText(src.getText()); 061 if (src.hasAdditionalInstructions()) 062 tgt.addAdditionalInstruction(CodeableConcept10_30.convertCodeableConcept(src.getAdditionalInstructions())); 063 if (src.hasTiming()) 064 tgt.setTiming(Timing10_30.convertTiming(src.getTiming())); 065 if (src.hasAsNeeded()) 066 tgt.setAsNeeded(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getAsNeeded())); 067 if (src.hasSiteCodeableConcept()) 068 tgt.setSite(CodeableConcept10_30.convertCodeableConcept(src.getSiteCodeableConcept())); 069 if (src.hasRoute()) 070 tgt.setRoute(CodeableConcept10_30.convertCodeableConcept(src.getRoute())); 071 if (src.hasMethod()) 072 tgt.setMethod(CodeableConcept10_30.convertCodeableConcept(src.getMethod())); 073 if (src.hasDose()) 074 tgt.setDose(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getDose())); 075 if (src.hasRate()) 076 tgt.setRate(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getRate())); 077 if (src.hasMaxDosePerPeriod()) 078 tgt.setMaxDosePerPeriod(Ratio10_30.convertRatio(src.getMaxDosePerPeriod())); 079 return tgt; 080 } 081 082 private static org.hl7.fhir.dstu3.model.MedicationRequest.MedicationRequestDispenseRequestComponent medDispenseRequest(org.hl7.fhir.dstu2.model.MedicationOrder.MedicationOrderDispenseRequestComponent src) { 083 if (src == null || src.isEmpty()) 084 return null; 085 org.hl7.fhir.dstu3.model.MedicationRequest.MedicationRequestDispenseRequestComponent tgt = new org.hl7.fhir.dstu3.model.MedicationRequest.MedicationRequestDispenseRequestComponent(); 086 if (src.hasValidityPeriod()) 087 tgt.setValidityPeriod(Period10_30.convertPeriod(src.getValidityPeriod())); 088 if (src.hasNumberOfRepeatsAllowed()) 089 tgt.setNumberOfRepeatsAllowed(src.getNumberOfRepeatsAllowed()); 090 if (src.hasQuantity()) 091 tgt.setQuantity(SimpleQuantity10_30.convertSimpleQuantity(src.getQuantity())); 092 if (src.hasExpectedSupplyDuration()) 093 tgt.setExpectedSupplyDuration(Duration10_30.convertDuration(src.getExpectedSupplyDuration())); 094 return tgt; 095 } 096 097 private static org.hl7.fhir.dstu3.model.MedicationRequest.MedicationRequestSubstitutionComponent medSubstitution(org.hl7.fhir.dstu2.model.MedicationOrder.MedicationOrderSubstitutionComponent src) { 098 if (src == null || src.isEmpty()) 099 return null; 100 org.hl7.fhir.dstu3.model.MedicationRequest.MedicationRequestSubstitutionComponent tgt = new MedicationRequest.MedicationRequestSubstitutionComponent(); 101 if (src.hasReason()) 102 tgt.setReason(CodeableConcept10_30.convertCodeableConcept(src.getReason())); 103 return tgt; 104 } 105 106 public static org.hl7.fhir.dstu3.model.MedicationRequest.MedicationRequestRequesterComponent 107 medRequestor(org.hl7.fhir.dstu2.model.MedicationOrder src) { 108 org.hl7.fhir.dstu3.model.MedicationRequest.MedicationRequestRequesterComponent tgt = new org.hl7.fhir.dstu3.model.MedicationRequest.MedicationRequestRequesterComponent(); 109 tgt.setAgent(Reference10_30.convertReference(src.getPrescriber())); 110 return tgt; 111 } 112}