
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.primitivetypes10_30.DateTime10_30; 008import org.hl7.fhir.dstu3.model.CommunicationRequest; 009import org.hl7.fhir.dstu3.model.Enumeration; 010import org.hl7.fhir.exceptions.FHIRException; 011 012public class CommunicationRequest10_30 { 013 014 public static org.hl7.fhir.dstu2.model.CommunicationRequest convertCommunicationRequest(org.hl7.fhir.dstu3.model.CommunicationRequest src) throws FHIRException { 015 if (src == null || src.isEmpty()) 016 return null; 017 org.hl7.fhir.dstu2.model.CommunicationRequest tgt = new org.hl7.fhir.dstu2.model.CommunicationRequest(); 018 ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt); 019 for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier()) 020 tgt.addIdentifier(Identifier10_30.convertIdentifier(t)); 021 if (src.hasCategory()) 022 tgt.setCategory(CodeableConcept10_30.convertCodeableConcept(src.getCategoryFirstRep())); 023 if (src.hasSender()) 024 tgt.setSender(Reference10_30.convertReference(src.getSender())); 025 for (org.hl7.fhir.dstu3.model.Reference t : src.getRecipient()) 026 tgt.addRecipient(Reference10_30.convertReference(t)); 027 for (org.hl7.fhir.dstu3.model.CommunicationRequest.CommunicationRequestPayloadComponent t : src.getPayload()) 028 tgt.addPayload(convertCommunicationRequestPayloadComponent(t)); 029 for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getMedium()) 030 tgt.addMedium(CodeableConcept10_30.convertCodeableConcept(t)); 031 tgt.setRequester(Reference10_30.convertReference(src.getRequester().getAgent())); 032 if (src.hasStatus()) 033 tgt.setStatusElement(convertCommunicationRequestStatus(src.getStatusElement())); 034 if (src.hasContext()) 035 tgt.setEncounter(Reference10_30.convertReference(src.getContext())); 036 if (src.hasOccurrence()) 037 tgt.setScheduled(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getOccurrence())); 038 for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getReasonCode()) 039 tgt.addReason(CodeableConcept10_30.convertCodeableConcept(t)); 040 if (src.hasAuthoredOnElement()) 041 tgt.setRequestedOnElement(DateTime10_30.convertDateTime(src.getAuthoredOnElement())); 042 if (src.hasSubject()) 043 tgt.setSubject(Reference10_30.convertReference(src.getSubject())); 044 if (src.hasPriority()) 045 tgt.setPriority(convertPriorityCode(src.getPriority())); 046 return tgt; 047 } 048 049 public static org.hl7.fhir.dstu3.model.CommunicationRequest convertCommunicationRequest(org.hl7.fhir.dstu2.model.CommunicationRequest src) throws FHIRException { 050 if (src == null || src.isEmpty()) 051 return null; 052 org.hl7.fhir.dstu3.model.CommunicationRequest tgt = new org.hl7.fhir.dstu3.model.CommunicationRequest(); 053 ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt); 054 for (org.hl7.fhir.dstu2.model.Identifier t : src.getIdentifier()) 055 tgt.addIdentifier(Identifier10_30.convertIdentifier(t)); 056 if (src.hasCategory()) 057 tgt.addCategory(CodeableConcept10_30.convertCodeableConcept(src.getCategory())); 058 if (src.hasSender()) 059 tgt.setSender(Reference10_30.convertReference(src.getSender())); 060 for (org.hl7.fhir.dstu2.model.Reference t : src.getRecipient()) 061 tgt.addRecipient(Reference10_30.convertReference(t)); 062 for (org.hl7.fhir.dstu2.model.CommunicationRequest.CommunicationRequestPayloadComponent t : src.getPayload()) 063 tgt.addPayload(convertCommunicationRequestPayloadComponent(t)); 064 for (org.hl7.fhir.dstu2.model.CodeableConcept t : src.getMedium()) 065 tgt.addMedium(CodeableConcept10_30.convertCodeableConcept(t)); 066 tgt.getRequester().setAgent(Reference10_30.convertReference(src.getRequester())); 067 if (src.hasStatus()) 068 tgt.setStatusElement(convertCommunicationRequestStatus(src.getStatusElement())); 069 if (src.hasEncounter()) 070 tgt.setContext(Reference10_30.convertReference(src.getEncounter())); 071 if (src.hasScheduled()) 072 tgt.setOccurrence(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getScheduled())); 073 for (org.hl7.fhir.dstu2.model.CodeableConcept t : src.getReason()) 074 tgt.addReasonCode(CodeableConcept10_30.convertCodeableConcept(t)); 075 if (src.hasRequestedOnElement()) 076 tgt.setAuthoredOnElement(DateTime10_30.convertDateTime(src.getRequestedOnElement())); 077 if (src.hasSubject()) 078 tgt.setSubject(Reference10_30.convertReference(src.getSubject())); 079 if (src.hasPriority()) 080 tgt.setPriority(convertPriorityCode(src.getPriority())); 081 return tgt; 082 } 083 084 public static org.hl7.fhir.dstu2.model.CommunicationRequest.CommunicationRequestPayloadComponent convertCommunicationRequestPayloadComponent(org.hl7.fhir.dstu3.model.CommunicationRequest.CommunicationRequestPayloadComponent src) throws FHIRException { 085 if (src == null || src.isEmpty()) 086 return null; 087 org.hl7.fhir.dstu2.model.CommunicationRequest.CommunicationRequestPayloadComponent tgt = new org.hl7.fhir.dstu2.model.CommunicationRequest.CommunicationRequestPayloadComponent(); 088 ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt); 089 if (src.hasContent()) 090 tgt.setContent(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getContent())); 091 return tgt; 092 } 093 094 public static org.hl7.fhir.dstu3.model.CommunicationRequest.CommunicationRequestPayloadComponent convertCommunicationRequestPayloadComponent(org.hl7.fhir.dstu2.model.CommunicationRequest.CommunicationRequestPayloadComponent src) throws FHIRException { 095 if (src == null || src.isEmpty()) 096 return null; 097 org.hl7.fhir.dstu3.model.CommunicationRequest.CommunicationRequestPayloadComponent tgt = new org.hl7.fhir.dstu3.model.CommunicationRequest.CommunicationRequestPayloadComponent(); 098 ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt); 099 if (src.hasContent()) 100 tgt.setContent(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getContent())); 101 return tgt; 102 } 103 104 static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.CommunicationRequest.CommunicationRequestStatus> convertCommunicationRequestStatus(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.CommunicationRequest.CommunicationRequestStatus> src) throws FHIRException { 105 if (src == null || src.isEmpty()) 106 return null; 107 Enumeration<CommunicationRequest.CommunicationRequestStatus> tgt = new Enumeration<>(new CommunicationRequest.CommunicationRequestStatusEnumFactory()); 108 ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt); 109 if (src.getValue() == null) { 110 tgt.setValue(null); 111 } else { 112 switch (src.getValue()) { 113 case PROPOSED: 114 tgt.setValue(CommunicationRequest.CommunicationRequestStatus.DRAFT); 115 break; 116 case PLANNED: 117 tgt.setValue(CommunicationRequest.CommunicationRequestStatus.ACTIVE); 118 break; 119 case REQUESTED: 120 tgt.setValue(CommunicationRequest.CommunicationRequestStatus.ACTIVE); 121 break; 122 case RECEIVED: 123 tgt.setValue(CommunicationRequest.CommunicationRequestStatus.ACTIVE); 124 break; 125 case ACCEPTED: 126 tgt.setValue(CommunicationRequest.CommunicationRequestStatus.ACTIVE); 127 break; 128 case INPROGRESS: 129 tgt.setValue(CommunicationRequest.CommunicationRequestStatus.ACTIVE); 130 break; 131 case COMPLETED: 132 tgt.setValue(CommunicationRequest.CommunicationRequestStatus.COMPLETED); 133 break; 134 case SUSPENDED: 135 tgt.setValue(CommunicationRequest.CommunicationRequestStatus.SUSPENDED); 136 break; 137 case REJECTED: 138 tgt.setValue(CommunicationRequest.CommunicationRequestStatus.ENTEREDINERROR); 139 break; 140 default: 141 tgt.setValue(CommunicationRequest.CommunicationRequestStatus.NULL); 142 break; 143 } 144 } 145 return tgt; 146 } 147 148 static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.CommunicationRequest.CommunicationRequestStatus> convertCommunicationRequestStatus(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.CommunicationRequest.CommunicationRequestStatus> src) throws FHIRException { 149 if (src == null || src.isEmpty()) 150 return null; 151 org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.CommunicationRequest.CommunicationRequestStatus> tgt = new org.hl7.fhir.dstu2.model.Enumeration<>(new org.hl7.fhir.dstu2.model.CommunicationRequest.CommunicationRequestStatusEnumFactory()); 152 ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt); 153 if (src.getValue() == null) { 154 tgt.setValue(null); 155 } else { 156 switch (src.getValue()) { 157 case DRAFT: 158 tgt.setValue(org.hl7.fhir.dstu2.model.CommunicationRequest.CommunicationRequestStatus.PROPOSED); 159 break; 160 case ACTIVE: 161 tgt.setValue(org.hl7.fhir.dstu2.model.CommunicationRequest.CommunicationRequestStatus.INPROGRESS); 162 break; 163 case COMPLETED: 164 tgt.setValue(org.hl7.fhir.dstu2.model.CommunicationRequest.CommunicationRequestStatus.COMPLETED); 165 break; 166 case SUSPENDED: 167 tgt.setValue(org.hl7.fhir.dstu2.model.CommunicationRequest.CommunicationRequestStatus.SUSPENDED); 168 break; 169 case ENTEREDINERROR: 170 tgt.setValue(org.hl7.fhir.dstu2.model.CommunicationRequest.CommunicationRequestStatus.REJECTED); 171 break; 172 default: 173 tgt.setValue(org.hl7.fhir.dstu2.model.CommunicationRequest.CommunicationRequestStatus.NULL); 174 break; 175 } 176 } 177 return tgt; 178 } 179 180 static public org.hl7.fhir.dstu2.model.CodeableConcept convertPriorityCode(org.hl7.fhir.dstu3.model.CommunicationRequest.CommunicationPriority priority) { 181 org.hl7.fhir.dstu2.model.CodeableConcept cc = new org.hl7.fhir.dstu2.model.CodeableConcept(); 182 switch (priority) { 183 case ROUTINE: 184 cc.addCoding().setSystem("http://hl7.org/fhir/diagnostic-order-priority").setCode("routine"); 185 break; 186 case URGENT: 187 cc.addCoding().setSystem("http://hl7.org/fhir/diagnostic-order-priority").setCode("urgent"); 188 break; 189 case STAT: 190 cc.addCoding().setSystem("http://hl7.org/fhir/diagnostic-order-priority").setCode("stat"); 191 break; 192 case ASAP: 193 cc.addCoding().setSystem("http://hl7.org/fhir/diagnostic-order-priority").setCode("asap"); 194 break; 195 default: 196 return null; 197 } 198 return cc; 199 } 200 201 static public org.hl7.fhir.dstu3.model.CommunicationRequest.CommunicationPriority convertPriorityCode(org.hl7.fhir.dstu2.model.CodeableConcept priority) { 202 for (org.hl7.fhir.dstu2.model.Coding c : priority.getCoding()) { 203 if ("http://hl7.org/fhir/diagnostic-order-priority".equals(c.getSystem()) && "routine".equals(c.getCode())) 204 return org.hl7.fhir.dstu3.model.CommunicationRequest.CommunicationPriority.ROUTINE; 205 if ("http://hl7.org/fhir/diagnostic-order-priority".equals(c.getSystem()) && "urgent".equals(c.getCode())) 206 return org.hl7.fhir.dstu3.model.CommunicationRequest.CommunicationPriority.URGENT; 207 if ("http://hl7.org/fhir/diagnostic-order-priority".equals(c.getSystem()) && "stat".equals(c.getCode())) 208 return org.hl7.fhir.dstu3.model.CommunicationRequest.CommunicationPriority.STAT; 209 if ("http://hl7.org/fhir/diagnostic-order-priority".equals(c.getSystem()) && "asap".equals(c.getCode())) 210 return org.hl7.fhir.dstu3.model.CommunicationRequest.CommunicationPriority.ASAP; 211 } 212 return null; 213 } 214}