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