
001package org.hl7.fhir.convertors.conv30_40.resources30_40; 002 003import java.util.List; 004 005import org.hl7.fhir.convertors.context.ConversionContext30_40; 006import org.hl7.fhir.convertors.conv30_40.datatypes30_40.Reference30_40; 007import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Annotation30_40; 008import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.CodeableConcept30_40; 009import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Identifier30_40; 010import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.Boolean30_40; 011import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.DateTime30_40; 012import org.hl7.fhir.dstu3.model.ProcedureRequest; 013import org.hl7.fhir.exceptions.FHIRException; 014import org.hl7.fhir.r4.model.Enumeration; 015import org.hl7.fhir.r4.model.Reference; 016import org.hl7.fhir.r4.model.ServiceRequest; 017 018public class ProcedureRequest30_40 { 019 020 static public org.hl7.fhir.r4.model.ServiceRequest convertProcedureRequest(org.hl7.fhir.dstu3.model.ProcedureRequest src) throws FHIRException { 021 if (src == null) 022 return null; 023 org.hl7.fhir.r4.model.ServiceRequest tgt = new org.hl7.fhir.r4.model.ServiceRequest(); 024 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt); 025 for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier()) { 026 tgt.addIdentifier(Identifier30_40.convertIdentifier(t)); 027 } 028 for (org.hl7.fhir.dstu3.model.Reference t : src.getBasedOn()) { 029 tgt.addBasedOn(Reference30_40.convertReference(t)); 030 } 031 for (org.hl7.fhir.dstu3.model.Reference t : src.getReplaces()) { 032 tgt.addReplaces(Reference30_40.convertReference(t)); 033 } 034 if (src.hasRequisition()) { 035 if (src.hasRequisition()) 036 tgt.setRequisition(Identifier30_40.convertIdentifier(src.getRequisition())); 037 } 038 if (src.hasStatus()) { 039 if (src.hasStatus()) 040 tgt.setStatusElement(convertProcedureRequestStatus(src.getStatusElement())); 041 } 042 if (src.hasIntent()) { 043 if (src.hasIntent()) 044 tgt.setIntentElement(convertProcedureRequestIntent(src.getIntentElement())); 045 } 046 if (src.hasPriority()) { 047 if (src.hasPriority()) 048 tgt.setPriorityElement(convertProcedureRequestPriority(src.getPriorityElement())); 049 } 050 if (src.hasDoNotPerform()) { 051 if (src.hasDoNotPerformElement()) 052 tgt.setDoNotPerformElement(Boolean30_40.convertBoolean(src.getDoNotPerformElement())); 053 } 054 for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getCategory()) { 055 tgt.addCategory(CodeableConcept30_40.convertCodeableConcept(t)); 056 } 057 if (src.hasCode()) { 058 if (src.hasCode()) 059 tgt.setCode(CodeableConcept30_40.convertCodeableConcept(src.getCode())); 060 } 061 if (src.hasSubject()) { 062 if (src.hasSubject()) 063 tgt.setSubject(Reference30_40.convertReference(src.getSubject())); 064 } 065 if (src.hasContext()) { 066 if (src.hasContext()) 067 tgt.setEncounter(Reference30_40.convertReference(src.getContext())); 068 } 069 if (src.hasOccurrence()) { 070 if (src.hasOccurrence()) 071 tgt.setOccurrence(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getOccurrence())); 072 } 073 if (src.hasAsNeeded()) { 074 if (src.hasAsNeeded()) 075 tgt.setAsNeeded(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getAsNeeded())); 076 } 077 if (src.hasAuthoredOn()) { 078 if (src.hasAuthoredOnElement()) 079 tgt.setAuthoredOnElement(DateTime30_40.convertDateTime(src.getAuthoredOnElement())); 080 } 081 if (src.hasRequester()) { 082 org.hl7.fhir.dstu3.model.ProcedureRequest.ProcedureRequestRequesterComponent requester = src.getRequester(); 083 if (requester.hasAgent()) { 084 tgt.setRequester(Reference30_40.convertReference(requester.getAgent())); 085 } 086 } 087 if (src.hasPerformerType()) { 088 if (src.hasPerformerType()) 089 tgt.setPerformerType(CodeableConcept30_40.convertCodeableConcept(src.getPerformerType())); 090 } 091 if (src.hasPerformer()) { 092 if (src.hasPerformer()) 093 tgt.addPerformer(Reference30_40.convertReference(src.getPerformer())); 094 } 095 for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getReasonCode()) { 096 tgt.addReasonCode(CodeableConcept30_40.convertCodeableConcept(t)); 097 } 098 for (org.hl7.fhir.dstu3.model.Reference t : src.getReasonReference()) { 099 tgt.addReasonReference(Reference30_40.convertReference(t)); 100 } 101 for (org.hl7.fhir.dstu3.model.Reference t : src.getSupportingInfo()) { 102 tgt.addSupportingInfo(Reference30_40.convertReference(t)); 103 } 104 for (org.hl7.fhir.dstu3.model.Reference t : src.getSpecimen()) { 105 tgt.addSpecimen(Reference30_40.convertReference(t)); 106 } 107 for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getBodySite()) { 108 tgt.addBodySite(CodeableConcept30_40.convertCodeableConcept(t)); 109 } 110 for (org.hl7.fhir.dstu3.model.Annotation t : src.getNote()) { 111 tgt.addNote(Annotation30_40.convertAnnotation(t)); 112 } 113 for (org.hl7.fhir.dstu3.model.Reference t : src.getRelevantHistory()) { 114 tgt.addRelevantHistory(Reference30_40.convertReference(t)); 115 } 116 return tgt; 117 } 118 119 static public org.hl7.fhir.dstu3.model.ProcedureRequest convertProcedureRequest(org.hl7.fhir.r4.model.ServiceRequest src) throws FHIRException { 120 if (src == null) 121 return null; 122 org.hl7.fhir.dstu3.model.ProcedureRequest tgt = new org.hl7.fhir.dstu3.model.ProcedureRequest(); 123 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt); 124 for (org.hl7.fhir.r4.model.Identifier t : src.getIdentifier()) { 125 tgt.addIdentifier(Identifier30_40.convertIdentifier(t)); 126 } 127 for (org.hl7.fhir.r4.model.Reference t : src.getBasedOn()) { 128 tgt.addBasedOn(Reference30_40.convertReference(t)); 129 } 130 for (org.hl7.fhir.r4.model.Reference t : src.getReplaces()) { 131 tgt.addReplaces(Reference30_40.convertReference(t)); 132 } 133 if (src.hasRequisition()) { 134 if (src.hasRequisition()) 135 tgt.setRequisition(Identifier30_40.convertIdentifier(src.getRequisition())); 136 } 137 if (src.hasStatus()) { 138 if (src.hasStatus()) 139 tgt.setStatusElement(convertProcedureRequestStatus(src.getStatusElement())); 140 } 141 if (src.hasIntent()) { 142 if (src.hasIntent()) 143 tgt.setIntentElement(convertProcedureRequestIntent(src.getIntentElement())); 144 } 145 if (src.hasPriority()) { 146 if (src.hasPriority()) 147 tgt.setPriorityElement(convertProcedureRequestPriority(src.getPriorityElement())); 148 } 149 if (src.hasDoNotPerform()) { 150 if (src.hasDoNotPerformElement()) 151 tgt.setDoNotPerformElement(Boolean30_40.convertBoolean(src.getDoNotPerformElement())); 152 } 153 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getCategory()) { 154 tgt.addCategory(CodeableConcept30_40.convertCodeableConcept(t)); 155 } 156 if (src.hasCode()) { 157 if (src.hasCode()) 158 tgt.setCode(CodeableConcept30_40.convertCodeableConcept(src.getCode())); 159 } 160 if (src.hasSubject()) { 161 if (src.hasSubject()) 162 tgt.setSubject(Reference30_40.convertReference(src.getSubject())); 163 } 164 if (src.hasEncounter()) { 165 if (src.hasEncounter()) 166 tgt.setContext(Reference30_40.convertReference(src.getEncounter())); 167 } 168 if (src.hasOccurrence()) { 169 if (src.hasOccurrence()) 170 tgt.setOccurrence(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getOccurrence())); 171 } 172 if (src.hasAsNeeded()) { 173 if (src.hasAsNeeded()) 174 tgt.setAsNeeded(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getAsNeeded())); 175 } 176 if (src.hasAuthoredOn()) { 177 if (src.hasAuthoredOnElement()) 178 tgt.setAuthoredOnElement(DateTime30_40.convertDateTime(src.getAuthoredOnElement())); 179 } 180 if (src.hasRequester()) { 181 tgt.setRequester(new org.hl7.fhir.dstu3.model.ProcedureRequest.ProcedureRequestRequesterComponent(Reference30_40.convertReference(src.getRequester()))); 182 } 183 if (src.hasPerformerType()) { 184 if (src.hasPerformerType()) 185 tgt.setPerformerType(CodeableConcept30_40.convertCodeableConcept(src.getPerformerType())); 186 } 187 List<Reference> performers = src.getPerformer(); 188 if (performers.size() > 0) { 189 tgt.setPerformer(Reference30_40.convertReference(performers.get(0))); 190 if (performers.size() > 1) { 191 } 192 } 193 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getReasonCode()) { 194 tgt.addReasonCode(CodeableConcept30_40.convertCodeableConcept(t)); 195 } 196 for (org.hl7.fhir.r4.model.Reference t : src.getReasonReference()) { 197 tgt.addReasonReference(Reference30_40.convertReference(t)); 198 } 199 for (org.hl7.fhir.r4.model.Reference t : src.getSupportingInfo()) { 200 tgt.addSupportingInfo(Reference30_40.convertReference(t)); 201 } 202 for (org.hl7.fhir.r4.model.Reference t : src.getSpecimen()) { 203 tgt.addSpecimen(Reference30_40.convertReference(t)); 204 } 205 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getBodySite()) { 206 tgt.addBodySite(CodeableConcept30_40.convertCodeableConcept(t)); 207 } 208 for (org.hl7.fhir.r4.model.Annotation t : src.getNote()) { 209 tgt.addNote(Annotation30_40.convertAnnotation(t)); 210 } 211 for (org.hl7.fhir.r4.model.Reference t : src.getRelevantHistory()) { 212 tgt.addRelevantHistory(Reference30_40.convertReference(t)); 213 } 214 return tgt; 215 } 216 217 static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ServiceRequest.ServiceRequestIntent> convertProcedureRequestIntent(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ProcedureRequest.ProcedureRequestIntent> src) throws FHIRException { 218 if (src == null || src.isEmpty()) 219 return null; 220 Enumeration<ServiceRequest.ServiceRequestIntent> tgt = new Enumeration<>(new ServiceRequest.ServiceRequestIntentEnumFactory()); 221 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt); 222 if (src.getValue() == null) { 223 tgt.setValue(null); 224 } else { 225 switch (src.getValue()) { 226 case FILLERORDER: 227 tgt.setValue(ServiceRequest.ServiceRequestIntent.FILLERORDER); 228 break; 229 case INSTANCEORDER: 230 tgt.setValue(ServiceRequest.ServiceRequestIntent.INSTANCEORDER); 231 break; 232 case OPTION: 233 tgt.setValue(ServiceRequest.ServiceRequestIntent.OPTION); 234 break; 235 case ORDER: 236 tgt.setValue(ServiceRequest.ServiceRequestIntent.ORDER); 237 break; 238 case ORIGINALORDER: 239 tgt.setValue(ServiceRequest.ServiceRequestIntent.ORIGINALORDER); 240 break; 241 case PLAN: 242 tgt.setValue(ServiceRequest.ServiceRequestIntent.PLAN); 243 break; 244 case PROPOSAL: 245 tgt.setValue(ServiceRequest.ServiceRequestIntent.PROPOSAL); 246 break; 247 case REFLEXORDER: 248 tgt.setValue(ServiceRequest.ServiceRequestIntent.REFLEXORDER); 249 break; 250 default: 251 tgt.setValue(ServiceRequest.ServiceRequestIntent.NULL); 252 break; 253 } 254 } 255 return tgt; 256 } 257 258 static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ProcedureRequest.ProcedureRequestIntent> convertProcedureRequestIntent(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ServiceRequest.ServiceRequestIntent> src) throws FHIRException { 259 if (src == null || src.isEmpty()) 260 return null; 261 org.hl7.fhir.dstu3.model.Enumeration<ProcedureRequest.ProcedureRequestIntent> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new ProcedureRequest.ProcedureRequestIntentEnumFactory()); 262 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt); 263 if (src.getValue() == null) { 264 tgt.setValue(null); 265 } else { 266 switch (src.getValue()) { 267 case DIRECTIVE: 268 tgt.setValue(ProcedureRequest.ProcedureRequestIntent.NULL); 269 break; 270 case FILLERORDER: 271 tgt.setValue(ProcedureRequest.ProcedureRequestIntent.FILLERORDER); 272 break; 273 case INSTANCEORDER: 274 tgt.setValue(ProcedureRequest.ProcedureRequestIntent.INSTANCEORDER); 275 break; 276 case OPTION: 277 tgt.setValue(ProcedureRequest.ProcedureRequestIntent.OPTION); 278 break; 279 case ORDER: 280 tgt.setValue(ProcedureRequest.ProcedureRequestIntent.ORDER); 281 break; 282 case ORIGINALORDER: 283 tgt.setValue(ProcedureRequest.ProcedureRequestIntent.ORIGINALORDER); 284 break; 285 case PLAN: 286 tgt.setValue(ProcedureRequest.ProcedureRequestIntent.PLAN); 287 break; 288 case PROPOSAL: 289 tgt.setValue(ProcedureRequest.ProcedureRequestIntent.PROPOSAL); 290 break; 291 case REFLEXORDER: 292 tgt.setValue(ProcedureRequest.ProcedureRequestIntent.REFLEXORDER); 293 break; 294 default: 295 tgt.setValue(ProcedureRequest.ProcedureRequestIntent.NULL); 296 break; 297 } 298 } 299 return tgt; 300 } 301 302 static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ProcedureRequest.ProcedureRequestPriority> convertProcedureRequestPriority(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ServiceRequest.ServiceRequestPriority> src) throws FHIRException { 303 if (src == null || src.isEmpty()) 304 return null; 305 org.hl7.fhir.dstu3.model.Enumeration<ProcedureRequest.ProcedureRequestPriority> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new ProcedureRequest.ProcedureRequestPriorityEnumFactory()); 306 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt); 307 if (src.getValue() == null) { 308 tgt.setValue(null); 309 } else { 310 switch (src.getValue()) { 311 case ASAP: 312 tgt.setValue(ProcedureRequest.ProcedureRequestPriority.ASAP); 313 break; 314 case ROUTINE: 315 tgt.setValue(ProcedureRequest.ProcedureRequestPriority.ROUTINE); 316 break; 317 case STAT: 318 tgt.setValue(ProcedureRequest.ProcedureRequestPriority.STAT); 319 break; 320 case URGENT: 321 tgt.setValue(ProcedureRequest.ProcedureRequestPriority.URGENT); 322 break; 323 default: 324 tgt.setValue(ProcedureRequest.ProcedureRequestPriority.NULL); 325 break; 326 } 327 } 328 return tgt; 329 } 330 331 static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ServiceRequest.ServiceRequestPriority> convertProcedureRequestPriority(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ProcedureRequest.ProcedureRequestPriority> src) throws FHIRException { 332 if (src == null || src.isEmpty()) 333 return null; 334 Enumeration<ServiceRequest.ServiceRequestPriority> tgt = new Enumeration<>(new ServiceRequest.ServiceRequestPriorityEnumFactory()); 335 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt); 336 if (src.getValue() == null) { 337 tgt.setValue(null); 338 } else { 339 switch (src.getValue()) { 340 case ASAP: 341 tgt.setValue(ServiceRequest.ServiceRequestPriority.ASAP); 342 break; 343 case ROUTINE: 344 tgt.setValue(ServiceRequest.ServiceRequestPriority.ROUTINE); 345 break; 346 case STAT: 347 tgt.setValue(ServiceRequest.ServiceRequestPriority.STAT); 348 break; 349 case URGENT: 350 tgt.setValue(ServiceRequest.ServiceRequestPriority.URGENT); 351 break; 352 default: 353 tgt.setValue(ServiceRequest.ServiceRequestPriority.NULL); 354 break; 355 } 356 } 357 return tgt; 358 } 359 360 static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ProcedureRequest.ProcedureRequestStatus> convertProcedureRequestStatus(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ServiceRequest.ServiceRequestStatus> src) throws FHIRException { 361 if (src == null || src.isEmpty()) 362 return null; 363 org.hl7.fhir.dstu3.model.Enumeration<ProcedureRequest.ProcedureRequestStatus> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new ProcedureRequest.ProcedureRequestStatusEnumFactory()); 364 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt); 365 if (src.getValue() == null) { 366 tgt.setValue(null); 367 } else { 368 switch (src.getValue()) { 369 case ACTIVE: 370 tgt.setValue(ProcedureRequest.ProcedureRequestStatus.ACTIVE); 371 break; 372 case COMPLETED: 373 tgt.setValue(ProcedureRequest.ProcedureRequestStatus.COMPLETED); 374 break; 375 case DRAFT: 376 tgt.setValue(ProcedureRequest.ProcedureRequestStatus.DRAFT); 377 break; 378 case ENTEREDINERROR: 379 tgt.setValue(ProcedureRequest.ProcedureRequestStatus.ENTEREDINERROR); 380 break; 381 case ONHOLD: 382 tgt.setValue(ProcedureRequest.ProcedureRequestStatus.SUSPENDED); 383 break; 384 case REVOKED: 385 tgt.setValue(ProcedureRequest.ProcedureRequestStatus.CANCELLED); 386 break; 387 case UNKNOWN: 388 tgt.setValue(ProcedureRequest.ProcedureRequestStatus.UNKNOWN); 389 break; 390 default: 391 tgt.setValue(ProcedureRequest.ProcedureRequestStatus.NULL); 392 break; 393 } 394 } 395 return tgt; 396 } 397 398 static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ServiceRequest.ServiceRequestStatus> convertProcedureRequestStatus(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ProcedureRequest.ProcedureRequestStatus> src) throws FHIRException { 399 if (src == null || src.isEmpty()) 400 return null; 401 Enumeration<ServiceRequest.ServiceRequestStatus> tgt = new Enumeration<>(new ServiceRequest.ServiceRequestStatusEnumFactory()); 402 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt); 403 if (src.getValue() == null) { 404 tgt.setValue(null); 405 } else { 406 switch (src.getValue()) { 407 case ACTIVE: 408 tgt.setValue(ServiceRequest.ServiceRequestStatus.ACTIVE); 409 break; 410 case CANCELLED: 411 tgt.setValue(ServiceRequest.ServiceRequestStatus.REVOKED); 412 break; 413 case COMPLETED: 414 tgt.setValue(ServiceRequest.ServiceRequestStatus.COMPLETED); 415 break; 416 case DRAFT: 417 tgt.setValue(ServiceRequest.ServiceRequestStatus.DRAFT); 418 break; 419 case ENTEREDINERROR: 420 tgt.setValue(ServiceRequest.ServiceRequestStatus.ENTEREDINERROR); 421 break; 422 case SUSPENDED: 423 tgt.setValue(ServiceRequest.ServiceRequestStatus.ONHOLD); 424 break; 425 case UNKNOWN: 426 tgt.setValue(ServiceRequest.ServiceRequestStatus.UNKNOWN); 427 break; 428 default: 429 tgt.setValue(ServiceRequest.ServiceRequestStatus.NULL); 430 break; 431 } 432 } 433 return tgt; 434 } 435}