
001package org.hl7.fhir.convertors.conv43_50.resources43_50; 002 003import org.hl7.fhir.convertors.VersionConvertorConstants; 004import org.hl7.fhir.convertors.context.ConversionContext43_50; 005import org.hl7.fhir.convertors.conv43_50.datatypes43_50.general43_50.Annotation43_50; 006import org.hl7.fhir.convertors.conv43_50.datatypes43_50.general43_50.CodeableConcept43_50; 007import org.hl7.fhir.convertors.conv43_50.datatypes43_50.general43_50.Identifier43_50; 008import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.Boolean43_50; 009import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.DateTime43_50; 010import org.hl7.fhir.convertors.conv43_50.datatypes43_50.special43_50.Reference43_50; 011import org.hl7.fhir.exceptions.FHIRException; 012import org.hl7.fhir.r5.model.CodeableReference; 013import org.hl7.fhir.r5.model.Enumeration; 014import org.hl7.fhir.r5.model.Enumerations; 015 016/* 017 Copyright (c) 2011+, HL7, Inc. 018 All rights reserved. 019 020 Redistribution and use in source and binary forms, with or without modification, 021 are permitted provided that the following conditions are met: 022 023 * Redistributions of source code must retain the above copyright notice, this 024 list of conditions and the following disclaimer. 025 * Redistributions in binary form must reproduce the above copyright notice, 026 this list of conditions and the following disclaimer in the documentation 027 and/or other materials provided with the distribution. 028 * Neither the name of HL7 nor the names of its contributors may be used to 029 endorse or promote products derived from this software without specific 030 prior written permission. 031 032 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 033 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 034 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 035 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 036 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 037 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 038 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 039 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 040 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 041 POSSIBILITY OF SUCH DAMAGE. 042 043*/ 044// Generated on Sun, Feb 24, 2019 11:37+1100 for FHIR v4.0.0 045public class CommunicationRequest43_50 { 046 047 public static org.hl7.fhir.r5.model.CommunicationRequest convertCommunicationRequest(org.hl7.fhir.r4b.model.CommunicationRequest src) throws FHIRException { 048 if (src == null) 049 return null; 050 org.hl7.fhir.r5.model.CommunicationRequest tgt = new org.hl7.fhir.r5.model.CommunicationRequest(); 051 ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyDomainResource(src, tgt); 052 for (org.hl7.fhir.r4b.model.Identifier t : src.getIdentifier()) 053 tgt.addIdentifier(Identifier43_50.convertIdentifier(t)); 054 for (org.hl7.fhir.r4b.model.Reference t : src.getBasedOn()) tgt.addBasedOn(Reference43_50.convertReference(t)); 055 for (org.hl7.fhir.r4b.model.Reference t : src.getReplaces()) tgt.addReplaces(Reference43_50.convertReference(t)); 056 if (src.hasGroupIdentifier()) 057 tgt.setGroupIdentifier(Identifier43_50.convertIdentifier(src.getGroupIdentifier())); 058 if (src.hasStatus()) 059 tgt.setStatusElement(convertCommunicationRequestStatus(src.getStatusElement())); 060 if (src.hasStatusReason()) 061 tgt.setStatusReason(CodeableConcept43_50.convertCodeableConcept(src.getStatusReason())); 062 for (org.hl7.fhir.r4b.model.CodeableConcept t : src.getCategory()) 063 tgt.addCategory(CodeableConcept43_50.convertCodeableConcept(t)); 064 if (src.hasPriority()) 065 tgt.setPriorityElement(convertCommunicationPriority(src.getPriorityElement())); 066 if (src.hasDoNotPerform()) 067 tgt.setDoNotPerformElement(Boolean43_50.convertBoolean(src.getDoNotPerformElement())); 068 for (org.hl7.fhir.r4b.model.CodeableConcept t : src.getMedium()) 069 tgt.addMedium(CodeableConcept43_50.convertCodeableConcept(t)); 070 if (src.hasSubject()) 071 tgt.setSubject(Reference43_50.convertReference(src.getSubject())); 072 for (org.hl7.fhir.r4b.model.Reference t : src.getAbout()) tgt.addAbout(Reference43_50.convertReference(t)); 073 if (src.hasEncounter()) 074 tgt.setEncounter(Reference43_50.convertReference(src.getEncounter())); 075 for (org.hl7.fhir.r4b.model.CommunicationRequest.CommunicationRequestPayloadComponent t : src.getPayload()) 076 tgt.addPayload(convertCommunicationRequestPayloadComponent(t)); 077 if (src.hasOccurrence()) 078 tgt.setOccurrence(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getOccurrence())); 079 if (src.hasAuthoredOn()) 080 tgt.setAuthoredOnElement(DateTime43_50.convertDateTime(src.getAuthoredOnElement())); 081 if (src.hasRequester()) 082 tgt.setRequester(Reference43_50.convertReference(src.getRequester())); 083 for (org.hl7.fhir.r4b.model.Reference t : src.getRecipient()) tgt.addRecipient(Reference43_50.convertReference(t)); 084 if (src.hasSender()) 085 tgt.addInformationProvider(Reference43_50.convertReference(src.getSender())); 086 for (org.hl7.fhir.r4b.model.CodeableConcept t : src.getReasonCode()) 087 tgt.addReason(CodeableConcept43_50.convertCodeableConceptToCodeableReference(t)); 088 for (org.hl7.fhir.r4b.model.Reference t : src.getReasonReference()) 089 tgt.addReason(Reference43_50.convertReferenceToCodeableReference(t)); 090 for (org.hl7.fhir.r4b.model.Annotation t : src.getNote()) tgt.addNote(Annotation43_50.convertAnnotation(t)); 091 return tgt; 092 } 093 094 public static org.hl7.fhir.r4b.model.CommunicationRequest convertCommunicationRequest(org.hl7.fhir.r5.model.CommunicationRequest src) throws FHIRException { 095 if (src == null) 096 return null; 097 org.hl7.fhir.r4b.model.CommunicationRequest tgt = new org.hl7.fhir.r4b.model.CommunicationRequest(); 098 ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyDomainResource(src, tgt); 099 for (org.hl7.fhir.r5.model.Identifier t : src.getIdentifier()) 100 tgt.addIdentifier(Identifier43_50.convertIdentifier(t)); 101 for (org.hl7.fhir.r5.model.Reference t : src.getBasedOn()) tgt.addBasedOn(Reference43_50.convertReference(t)); 102 for (org.hl7.fhir.r5.model.Reference t : src.getReplaces()) tgt.addReplaces(Reference43_50.convertReference(t)); 103 if (src.hasGroupIdentifier()) 104 tgt.setGroupIdentifier(Identifier43_50.convertIdentifier(src.getGroupIdentifier())); 105 if (src.hasStatus()) 106 tgt.setStatusElement(convertCommunicationRequestStatus(src.getStatusElement())); 107 if (src.hasStatusReason()) 108 tgt.setStatusReason(CodeableConcept43_50.convertCodeableConcept(src.getStatusReason())); 109 for (org.hl7.fhir.r5.model.CodeableConcept t : src.getCategory()) 110 tgt.addCategory(CodeableConcept43_50.convertCodeableConcept(t)); 111 if (src.hasPriority()) 112 tgt.setPriorityElement(convertCommunicationPriority(src.getPriorityElement())); 113 if (src.hasDoNotPerform()) 114 tgt.setDoNotPerformElement(Boolean43_50.convertBoolean(src.getDoNotPerformElement())); 115 for (org.hl7.fhir.r5.model.CodeableConcept t : src.getMedium()) 116 tgt.addMedium(CodeableConcept43_50.convertCodeableConcept(t)); 117 if (src.hasSubject()) 118 tgt.setSubject(Reference43_50.convertReference(src.getSubject())); 119 for (org.hl7.fhir.r5.model.Reference t : src.getAbout()) tgt.addAbout(Reference43_50.convertReference(t)); 120 if (src.hasEncounter()) 121 tgt.setEncounter(Reference43_50.convertReference(src.getEncounter())); 122 for (org.hl7.fhir.r5.model.CommunicationRequest.CommunicationRequestPayloadComponent t : src.getPayload()) 123 tgt.addPayload(convertCommunicationRequestPayloadComponent(t)); 124 if (src.hasOccurrence()) 125 tgt.setOccurrence(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getOccurrence())); 126 if (src.hasAuthoredOn()) 127 tgt.setAuthoredOnElement(DateTime43_50.convertDateTime(src.getAuthoredOnElement())); 128 if (src.hasRequester()) 129 tgt.setRequester(Reference43_50.convertReference(src.getRequester())); 130 for (org.hl7.fhir.r5.model.Reference t : src.getRecipient()) tgt.addRecipient(Reference43_50.convertReference(t)); 131 if (src.hasInformationProvider()) 132 tgt.setSender(Reference43_50.convertReference(src.getInformationProviderFirstRep())); 133 for (CodeableReference t : src.getReason()) 134 if (t.hasConcept()) 135 tgt.addReasonCode(CodeableConcept43_50.convertCodeableConcept(t.getConcept())); 136 for (CodeableReference t : src.getReason()) 137 if (t.hasReference()) 138 tgt.addReasonReference(Reference43_50.convertReference(t.getReference())); 139 for (org.hl7.fhir.r5.model.Annotation t : src.getNote()) tgt.addNote(Annotation43_50.convertAnnotation(t)); 140 return tgt; 141 } 142 143 static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.RequestStatus> convertCommunicationRequestStatus(org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.Enumerations.RequestStatus> src) throws FHIRException { 144 if (src == null || src.isEmpty()) 145 return null; 146 Enumeration<Enumerations.RequestStatus> tgt = new Enumeration<>(new Enumerations.RequestStatusEnumFactory()); 147 ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt); 148 if (src.getValue() == null) { 149 tgt.setValue(null); 150 } else { 151 switch (src.getValue()) { 152 case DRAFT: 153 tgt.setValue(Enumerations.RequestStatus.DRAFT); 154 break; 155 case ACTIVE: 156 tgt.setValue(Enumerations.RequestStatus.ACTIVE); 157 break; 158 case ONHOLD: 159 tgt.setValue(Enumerations.RequestStatus.ONHOLD); 160 break; 161 case REVOKED: 162 tgt.setValue(Enumerations.RequestStatus.REVOKED); 163 break; 164 case COMPLETED: 165 tgt.setValue(Enumerations.RequestStatus.COMPLETED); 166 break; 167 case ENTEREDINERROR: 168 tgt.setValue(Enumerations.RequestStatus.ENTEREDINERROR); 169 break; 170 case UNKNOWN: 171 tgt.setValue(Enumerations.RequestStatus.UNKNOWN); 172 break; 173 default: 174 tgt.setValue(Enumerations.RequestStatus.NULL); 175 break; 176 } 177 } 178 return tgt; 179 } 180 181 static public org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.Enumerations.RequestStatus> convertCommunicationRequestStatus(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.RequestStatus> src) throws FHIRException { 182 if (src == null || src.isEmpty()) 183 return null; 184 org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.Enumerations.RequestStatus> tgt = new org.hl7.fhir.r4b.model.Enumeration<>(new org.hl7.fhir.r4b.model.Enumerations.RequestStatusEnumFactory()); 185 ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt); 186 if (src.getValue() == null) { 187 tgt.setValue(null); 188 } else { 189 switch (src.getValue()) { 190 case DRAFT: 191 tgt.setValue(org.hl7.fhir.r4b.model.Enumerations.RequestStatus.DRAFT); 192 break; 193 case ACTIVE: 194 tgt.setValue(org.hl7.fhir.r4b.model.Enumerations.RequestStatus.ACTIVE); 195 break; 196 case ONHOLD: 197 tgt.setValue(org.hl7.fhir.r4b.model.Enumerations.RequestStatus.ONHOLD); 198 break; 199 case REVOKED: 200 tgt.setValue(org.hl7.fhir.r4b.model.Enumerations.RequestStatus.REVOKED); 201 break; 202 case COMPLETED: 203 tgt.setValue(org.hl7.fhir.r4b.model.Enumerations.RequestStatus.COMPLETED); 204 break; 205 case ENTEREDINERROR: 206 tgt.setValue(org.hl7.fhir.r4b.model.Enumerations.RequestStatus.ENTEREDINERROR); 207 break; 208 case UNKNOWN: 209 tgt.setValue(org.hl7.fhir.r4b.model.Enumerations.RequestStatus.UNKNOWN); 210 break; 211 default: 212 tgt.setValue(org.hl7.fhir.r4b.model.Enumerations.RequestStatus.NULL); 213 break; 214 } 215 } 216 return tgt; 217 } 218 219 static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.RequestPriority> convertCommunicationPriority(org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.Enumerations.RequestPriority> src) throws FHIRException { 220 if (src == null || src.isEmpty()) 221 return null; 222 Enumeration<Enumerations.RequestPriority> tgt = new Enumeration<>(new Enumerations.RequestPriorityEnumFactory()); 223 ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt); 224 if (src.getValue() == null) { 225 tgt.setValue(null); 226 } else { 227 switch (src.getValue()) { 228 case ROUTINE: 229 tgt.setValue(Enumerations.RequestPriority.ROUTINE); 230 break; 231 case URGENT: 232 tgt.setValue(Enumerations.RequestPriority.URGENT); 233 break; 234 case ASAP: 235 tgt.setValue(Enumerations.RequestPriority.ASAP); 236 break; 237 case STAT: 238 tgt.setValue(Enumerations.RequestPriority.STAT); 239 break; 240 default: 241 tgt.setValue(Enumerations.RequestPriority.NULL); 242 break; 243 } 244 } 245 return tgt; 246 } 247 248 static public org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.Enumerations.RequestPriority> convertCommunicationPriority(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.RequestPriority> src) throws FHIRException { 249 if (src == null || src.isEmpty()) 250 return null; 251 org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.Enumerations.RequestPriority> tgt = new org.hl7.fhir.r4b.model.Enumeration<>(new org.hl7.fhir.r4b.model.Enumerations.RequestPriorityEnumFactory()); 252 ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt); 253 if (src.getValue() == null) { 254 tgt.setValue(null); 255 } else { 256 switch (src.getValue()) { 257 case ROUTINE: 258 tgt.setValue(org.hl7.fhir.r4b.model.Enumerations.RequestPriority.ROUTINE); 259 break; 260 case URGENT: 261 tgt.setValue(org.hl7.fhir.r4b.model.Enumerations.RequestPriority.URGENT); 262 break; 263 case ASAP: 264 tgt.setValue(org.hl7.fhir.r4b.model.Enumerations.RequestPriority.ASAP); 265 break; 266 case STAT: 267 tgt.setValue(org.hl7.fhir.r4b.model.Enumerations.RequestPriority.STAT); 268 break; 269 default: 270 tgt.setValue(org.hl7.fhir.r4b.model.Enumerations.RequestPriority.NULL); 271 break; 272 } 273 } 274 return tgt; 275 } 276 277 public static org.hl7.fhir.r5.model.CommunicationRequest.CommunicationRequestPayloadComponent convertCommunicationRequestPayloadComponent(org.hl7.fhir.r4b.model.CommunicationRequest.CommunicationRequestPayloadComponent src) throws FHIRException { 278 if (src == null) 279 return null; 280 org.hl7.fhir.r5.model.CommunicationRequest.CommunicationRequestPayloadComponent tgt = new org.hl7.fhir.r5.model.CommunicationRequest.CommunicationRequestPayloadComponent(); 281 ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt); 282 if (org.hl7.fhir.r4b.utils.ToolingExtensions.hasExtension(src, VersionConvertorConstants.EXT_PAYLOAD_CONTENT)) { 283 org.hl7.fhir.r4b.model.Extension e = org.hl7.fhir.r4b.utils.ToolingExtensions.getExtension(src, VersionConvertorConstants.EXT_PAYLOAD_CONTENT); 284 tgt.setContent(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(e.getValue())); 285 org.hl7.fhir.r5.utils.ToolingExtensions.removeExtension(tgt, VersionConvertorConstants.EXT_PAYLOAD_CONTENT); 286 } else if (src.hasContent()) { 287 org.hl7.fhir.r4b.model.DataType content = src.getContent(); 288 if (content instanceof org.hl7.fhir.r4b.model.StringType) { 289 org.hl7.fhir.r4b.model.StringType string = (org.hl7.fhir.r4b.model.StringType) content; 290 org.hl7.fhir.r5.model.CodeableConcept code = new org.hl7.fhir.r5.model.CodeableConcept(); 291 code.setTextElement((org.hl7.fhir.r5.model.StringType) ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(string)); 292 tgt.setContent(code); 293 } else 294 tgt.setContent(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(content)); 295 } 296 return tgt; 297 } 298 299 public static org.hl7.fhir.r4b.model.CommunicationRequest.CommunicationRequestPayloadComponent convertCommunicationRequestPayloadComponent(org.hl7.fhir.r5.model.CommunicationRequest.CommunicationRequestPayloadComponent src) throws FHIRException { 300 if (src == null) 301 return null; 302 org.hl7.fhir.r4b.model.CommunicationRequest.CommunicationRequestPayloadComponent tgt = new org.hl7.fhir.r4b.model.CommunicationRequest.CommunicationRequestPayloadComponent(); 303 ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt); 304 if (src.hasContent()) { 305 org.hl7.fhir.r5.model.DataType content = src.getContent(); 306 if (content instanceof org.hl7.fhir.r5.model.CodeableConcept) { 307 org.hl7.fhir.r5.model.CodeableConcept code = (org.hl7.fhir.r5.model.CodeableConcept) content; 308 if (code.hasText()) 309 tgt.setContent(new org.hl7.fhir.r4b.model.StringType(code.getText())); 310 if (code.hasCoding() || code.hasExtension()) { 311 org.hl7.fhir.r4b.model.Extension e = new org.hl7.fhir.r4b.model.Extension(VersionConvertorConstants.EXT_PAYLOAD_CONTENT); 312 e.setValue(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(code)); 313 tgt.addExtension(e); 314 } 315 } else 316 tgt.setContent(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(content)); 317 } 318 return tgt; 319 } 320}