
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.Identifier10_30; 007import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Period10_30; 008import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.String10_30; 009import org.hl7.fhir.dstu2.model.CodeableConcept; 010import org.hl7.fhir.dstu2.model.Enumeration; 011import org.hl7.fhir.dstu2.model.ReferralRequest; 012import org.hl7.fhir.dstu3.model.ReferralRequest.ReferralPriority; 013import org.hl7.fhir.exceptions.FHIRException; 014 015public class ReferralRequest10_30 { 016 017 static public org.hl7.fhir.dstu2.model.CodeableConcept convertReferralPriorityCode(org.hl7.fhir.dstu3.model.ReferralRequest.ReferralPriority priority) { 018 org.hl7.fhir.dstu2.model.CodeableConcept cc = new org.hl7.fhir.dstu2.model.CodeableConcept(); 019 switch (priority) { 020 case ROUTINE: 021 cc.addCoding().setSystem("http://hl7.org/fhir/diagnostic-order-priority").setCode("routine"); 022 break; 023 case URGENT: 024 cc.addCoding().setSystem("http://hl7.org/fhir/diagnostic-order-priority").setCode("urgent"); 025 break; 026 case STAT: 027 cc.addCoding().setSystem("http://hl7.org/fhir/diagnostic-order-priority").setCode("stat"); 028 break; 029 case ASAP: 030 cc.addCoding().setSystem("http://hl7.org/fhir/diagnostic-order-priority").setCode("asap"); 031 break; 032 default: 033 return null; 034 } 035 return cc; 036 } 037 038 static public ReferralPriority convertReferralPriorityCode(CodeableConcept priority) { 039 for (org.hl7.fhir.dstu2.model.Coding c : priority.getCoding()) { 040 if ("http://hl7.org/fhir/diagnostic-order-priority".equals(c.getSystem()) && "routine".equals(c.getCode())) 041 return org.hl7.fhir.dstu3.model.ReferralRequest.ReferralPriority.ROUTINE; 042 if ("http://hl7.org/fhir/diagnostic-order-priority".equals(c.getSystem()) && "urgent".equals(c.getCode())) 043 return org.hl7.fhir.dstu3.model.ReferralRequest.ReferralPriority.URGENT; 044 if ("http://hl7.org/fhir/diagnostic-order-priority".equals(c.getSystem()) && "stat".equals(c.getCode())) 045 return org.hl7.fhir.dstu3.model.ReferralRequest.ReferralPriority.STAT; 046 if ("http://hl7.org/fhir/diagnostic-order-priority".equals(c.getSystem()) && "asap".equals(c.getCode())) 047 return org.hl7.fhir.dstu3.model.ReferralRequest.ReferralPriority.ASAP; 048 } 049 return null; 050 } 051 052 public static org.hl7.fhir.dstu2.model.ReferralRequest convertReferralRequest(org.hl7.fhir.dstu3.model.ReferralRequest src) throws FHIRException { 053 if (src == null || src.isEmpty()) 054 return null; 055 org.hl7.fhir.dstu2.model.ReferralRequest tgt = new org.hl7.fhir.dstu2.model.ReferralRequest(); 056 ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt); 057 for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier()) 058 tgt.addIdentifier(Identifier10_30.convertIdentifier(t)); 059 if (src.hasStatus()) 060 tgt.setStatusElement(convertReferralStatus(src.getStatusElement())); 061 if (src.hasType()) 062 tgt.setType(CodeableConcept10_30.convertCodeableConcept(src.getType())); 063 if (src.hasPriority()) 064 tgt.setPriority(convertReferralPriorityCode(src.getPriority())); 065 if (src.hasSubject()) 066 tgt.setPatient(Reference10_30.convertReference(src.getSubject())); 067 if (src.hasOccurrencePeriod()) 068 tgt.setFulfillmentTime(Period10_30.convertPeriod(src.getOccurrencePeriod())); 069 tgt.setRequester(Reference10_30.convertReference(src.getRequester().getAgent())); 070 if (src.hasSpecialty()) 071 tgt.setSpecialty(CodeableConcept10_30.convertCodeableConcept(src.getSpecialty())); 072 for (org.hl7.fhir.dstu3.model.Reference t : src.getRecipient()) 073 tgt.addRecipient(Reference10_30.convertReference(t)); 074 for (org.hl7.fhir.dstu3.model.CodeableConcept cc : src.getReasonCode()) 075 tgt.setReason(CodeableConcept10_30.convertCodeableConcept(cc)); 076 if (src.hasDescriptionElement()) 077 tgt.setDescriptionElement(String10_30.convertString(src.getDescriptionElement())); 078 for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getServiceRequested()) 079 tgt.addServiceRequested(CodeableConcept10_30.convertCodeableConcept(t)); 080 for (org.hl7.fhir.dstu3.model.Reference t : src.getSupportingInfo()) 081 tgt.addSupportingInformation(Reference10_30.convertReference(t)); 082 return tgt; 083 } 084 085 public static org.hl7.fhir.dstu3.model.ReferralRequest convertReferralRequest(org.hl7.fhir.dstu2.model.ReferralRequest src) throws FHIRException { 086 if (src == null || src.isEmpty()) 087 return null; 088 org.hl7.fhir.dstu3.model.ReferralRequest tgt = new org.hl7.fhir.dstu3.model.ReferralRequest(); 089 ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt); 090 for (org.hl7.fhir.dstu2.model.Identifier t : src.getIdentifier()) 091 tgt.addIdentifier(Identifier10_30.convertIdentifier(t)); 092 if (src.hasStatus()) 093 tgt.setStatusElement(convertReferralStatus(src.getStatusElement())); 094 if (src.hasType()) 095 tgt.setType(CodeableConcept10_30.convertCodeableConcept(src.getType())); 096 if (src.hasPriority()) 097 tgt.setPriority(convertReferralPriorityCode(src.getPriority())); 098 if (src.hasPatient()) 099 tgt.setSubject(Reference10_30.convertReference(src.getPatient())); 100 if (src.hasFulfillmentTime()) 101 tgt.setOccurrence(Period10_30.convertPeriod(src.getFulfillmentTime())); 102 tgt.getRequester().setAgent(Reference10_30.convertReference(src.getRequester())); 103 if (src.hasSpecialty()) 104 tgt.setSpecialty(CodeableConcept10_30.convertCodeableConcept(src.getSpecialty())); 105 for (org.hl7.fhir.dstu2.model.Reference t : src.getRecipient()) 106 tgt.addRecipient(Reference10_30.convertReference(t)); 107 if (src.hasReason()) 108 tgt.addReasonCode(CodeableConcept10_30.convertCodeableConcept(src.getReason())); 109 if (src.hasDescriptionElement()) 110 tgt.setDescriptionElement(String10_30.convertString(src.getDescriptionElement())); 111 for (org.hl7.fhir.dstu2.model.CodeableConcept t : src.getServiceRequested()) 112 tgt.addServiceRequested(CodeableConcept10_30.convertCodeableConcept(t)); 113 for (org.hl7.fhir.dstu2.model.Reference t : src.getSupportingInformation()) 114 tgt.addSupportingInfo(Reference10_30.convertReference(t)); 115 return tgt; 116 } 117 118 static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.ReferralRequest.ReferralStatus> convertReferralStatus(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ReferralRequest.ReferralRequestStatus> src) throws FHIRException { 119 if (src == null || src.isEmpty()) 120 return null; 121 Enumeration<ReferralRequest.ReferralStatus> tgt = new Enumeration<>(new ReferralRequest.ReferralStatusEnumFactory()); 122 ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt); 123 if (src.getValue() == null) { 124 tgt.setValue(null); 125 } else { 126 switch (src.getValue()) { 127 case DRAFT: 128 tgt.setValue(ReferralRequest.ReferralStatus.DRAFT); 129 break; 130 case ACTIVE: 131 tgt.setValue(ReferralRequest.ReferralStatus.ACTIVE); 132 break; 133 case CANCELLED: 134 tgt.setValue(ReferralRequest.ReferralStatus.CANCELLED); 135 break; 136 case COMPLETED: 137 tgt.setValue(ReferralRequest.ReferralStatus.COMPLETED); 138 break; 139 case ENTEREDINERROR: 140 tgt.setValue(ReferralRequest.ReferralStatus.REJECTED); 141 break; 142 default: 143 tgt.setValue(ReferralRequest.ReferralStatus.NULL); 144 break; 145 } 146 } 147 return tgt; 148 } 149 150 static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ReferralRequest.ReferralRequestStatus> convertReferralStatus(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.ReferralRequest.ReferralStatus> src) throws FHIRException { 151 if (src == null || src.isEmpty()) 152 return null; 153 org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ReferralRequest.ReferralRequestStatus> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.ReferralRequest.ReferralRequestStatusEnumFactory()); 154 ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt); 155 if (src.getValue() == null) { 156 tgt.setValue(null); 157 } else { 158 switch (src.getValue()) { 159 case DRAFT: 160 tgt.setValue(org.hl7.fhir.dstu3.model.ReferralRequest.ReferralRequestStatus.DRAFT); 161 break; 162 case REQUESTED: 163 tgt.setValue(org.hl7.fhir.dstu3.model.ReferralRequest.ReferralRequestStatus.DRAFT); 164 break; 165 case ACTIVE: 166 tgt.setValue(org.hl7.fhir.dstu3.model.ReferralRequest.ReferralRequestStatus.ACTIVE); 167 break; 168 case CANCELLED: 169 tgt.setValue(org.hl7.fhir.dstu3.model.ReferralRequest.ReferralRequestStatus.CANCELLED); 170 break; 171 case ACCEPTED: 172 tgt.setValue(org.hl7.fhir.dstu3.model.ReferralRequest.ReferralRequestStatus.ACTIVE); 173 break; 174 case REJECTED: 175 tgt.setValue(org.hl7.fhir.dstu3.model.ReferralRequest.ReferralRequestStatus.ENTEREDINERROR); 176 break; 177 case COMPLETED: 178 tgt.setValue(org.hl7.fhir.dstu3.model.ReferralRequest.ReferralRequestStatus.COMPLETED); 179 break; 180 default: 181 tgt.setValue(org.hl7.fhir.dstu3.model.ReferralRequest.ReferralRequestStatus.NULL); 182 break; 183 } 184 } 185 return tgt; 186 } 187}