
001package org.hl7.fhir.convertors.conv30_40.resources30_40; 002 003import org.hl7.fhir.convertors.context.ConversionContext30_40; 004import org.hl7.fhir.convertors.conv30_40.datatypes30_40.Reference30_40; 005import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Annotation30_40; 006import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.CodeableConcept30_40; 007import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Identifier30_40; 008import org.hl7.fhir.exceptions.FHIRException; 009import org.hl7.fhir.r4.model.Enumeration; 010import org.hl7.fhir.r4.model.Procedure; 011 012public class Procedure30_40 { 013 014 static public org.hl7.fhir.r4.model.Procedure convertProcedure(org.hl7.fhir.dstu3.model.Procedure src) throws FHIRException { 015 if (src == null) 016 return null; 017 org.hl7.fhir.r4.model.Procedure tgt = new org.hl7.fhir.r4.model.Procedure(); 018 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt); 019 for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier()) { 020 tgt.addIdentifier(Identifier30_40.convertIdentifier(t)); 021 } 022 for (org.hl7.fhir.dstu3.model.Reference t : src.getBasedOn()) { 023 tgt.addBasedOn(Reference30_40.convertReference(t)); 024 } 025 for (org.hl7.fhir.dstu3.model.Reference t : src.getPartOf()) { 026 tgt.addPartOf(Reference30_40.convertReference(t)); 027 } 028 if (src.getNotDone()) { 029 tgt.setStatus(org.hl7.fhir.r4.model.Procedure.ProcedureStatus.NOTDONE); 030 } else { 031 if (src.hasStatus()) 032 tgt.setStatusElement(convertProcedureStatus(src.getStatusElement())); 033 } 034 if (src.hasNotDoneReason()) { 035 if (src.hasNotDoneReason()) 036 tgt.setStatusReason(CodeableConcept30_40.convertCodeableConcept(src.getNotDoneReason())); 037 } 038 if (src.hasCategory()) { 039 if (src.hasCategory()) 040 tgt.setCategory(CodeableConcept30_40.convertCodeableConcept(src.getCategory())); 041 } 042 if (src.hasCode()) { 043 if (src.hasCode()) 044 tgt.setCode(CodeableConcept30_40.convertCodeableConcept(src.getCode())); 045 } 046 if (src.hasSubject()) { 047 if (src.hasSubject()) 048 tgt.setSubject(Reference30_40.convertReference(src.getSubject())); 049 } 050 if (src.hasContext()) { 051 if (src.hasContext()) 052 tgt.setEncounter(Reference30_40.convertReference(src.getContext())); 053 } 054 if (src.hasPerformed()) { 055 if (src.hasPerformed()) 056 tgt.setPerformed(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getPerformed())); 057 } 058 for (org.hl7.fhir.dstu3.model.Procedure.ProcedurePerformerComponent t : src.getPerformer()) { 059 tgt.addPerformer(convertProcedurePerformerComponent(t)); 060 } 061 if (src.hasLocation()) { 062 if (src.hasLocation()) 063 tgt.setLocation(Reference30_40.convertReference(src.getLocation())); 064 } 065 for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getReasonCode()) { 066 tgt.addReasonCode(CodeableConcept30_40.convertCodeableConcept(t)); 067 } 068 for (org.hl7.fhir.dstu3.model.Reference t : src.getReasonReference()) { 069 tgt.addReasonReference(Reference30_40.convertReference(t)); 070 } 071 for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getBodySite()) { 072 tgt.addBodySite(CodeableConcept30_40.convertCodeableConcept(t)); 073 } 074 if (src.hasOutcome()) { 075 if (src.hasOutcome()) 076 tgt.setOutcome(CodeableConcept30_40.convertCodeableConcept(src.getOutcome())); 077 } 078 for (org.hl7.fhir.dstu3.model.Reference t : src.getReport()) { 079 tgt.addReport(Reference30_40.convertReference(t)); 080 } 081 for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getComplication()) { 082 tgt.addComplication(CodeableConcept30_40.convertCodeableConcept(t)); 083 } 084 for (org.hl7.fhir.dstu3.model.Reference t : src.getComplicationDetail()) { 085 tgt.addComplicationDetail(Reference30_40.convertReference(t)); 086 } 087 for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getFollowUp()) { 088 tgt.addFollowUp(CodeableConcept30_40.convertCodeableConcept(t)); 089 } 090 for (org.hl7.fhir.dstu3.model.Annotation t : src.getNote()) { 091 tgt.addNote(Annotation30_40.convertAnnotation(t)); 092 } 093 for (org.hl7.fhir.dstu3.model.Procedure.ProcedureFocalDeviceComponent t : src.getFocalDevice()) { 094 tgt.addFocalDevice(convertProcedureFocalDeviceComponent(t)); 095 } 096 for (org.hl7.fhir.dstu3.model.Reference t : src.getUsedReference()) { 097 tgt.addUsedReference(Reference30_40.convertReference(t)); 098 } 099 for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getUsedCode()) { 100 tgt.addUsedCode(CodeableConcept30_40.convertCodeableConcept(t)); 101 } 102 return tgt; 103 } 104 105 static public org.hl7.fhir.dstu3.model.Procedure convertProcedure(org.hl7.fhir.r4.model.Procedure src) throws FHIRException { 106 if (src == null) 107 return null; 108 org.hl7.fhir.dstu3.model.Procedure tgt = new org.hl7.fhir.dstu3.model.Procedure(); 109 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt); 110 for (org.hl7.fhir.r4.model.Identifier t : src.getIdentifier()) { 111 tgt.addIdentifier(Identifier30_40.convertIdentifier(t)); 112 } 113 for (org.hl7.fhir.r4.model.Reference t : src.getBasedOn()) { 114 tgt.addBasedOn(Reference30_40.convertReference(t)); 115 } 116 for (org.hl7.fhir.r4.model.Reference t : src.getPartOf()) { 117 tgt.addPartOf(Reference30_40.convertReference(t)); 118 } 119 if (src.hasStatus()) { 120 org.hl7.fhir.r4.model.Procedure.ProcedureStatus status = src.getStatus(); 121 if (org.hl7.fhir.r4.model.Procedure.ProcedureStatus.NOTDONE.equals(status)) { 122 tgt.setStatus(org.hl7.fhir.dstu3.model.Procedure.ProcedureStatus.SUSPENDED); 123 tgt.setNotDone(true); 124 if (src.hasStatusReason()) 125 tgt.setNotDoneReason(CodeableConcept30_40.convertCodeableConcept(src.getStatusReason())); 126 } else { 127 if (src.hasStatus()) 128 tgt.setStatusElement(convertProcedureStatus(src.getStatusElement())); 129 tgt.setNotDone(false); 130 } 131 } 132 if (src.hasCategory()) { 133 if (src.hasCategory()) 134 tgt.setCategory(CodeableConcept30_40.convertCodeableConcept(src.getCategory())); 135 } 136 if (src.hasCode()) { 137 if (src.hasCode()) 138 tgt.setCode(CodeableConcept30_40.convertCodeableConcept(src.getCode())); 139 } 140 if (src.hasSubject()) { 141 if (src.hasSubject()) 142 tgt.setSubject(Reference30_40.convertReference(src.getSubject())); 143 } 144 if (src.hasEncounter()) { 145 if (src.hasEncounter()) 146 tgt.setContext(Reference30_40.convertReference(src.getEncounter())); 147 } 148 if (src.hasPerformed()) { 149 if (src.hasPerformed()) 150 tgt.setPerformed(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getPerformed())); 151 } 152 for (org.hl7.fhir.r4.model.Procedure.ProcedurePerformerComponent t : src.getPerformer()) { 153 tgt.addPerformer(convertProcedurePerformerComponent(t)); 154 } 155 if (src.hasLocation()) { 156 if (src.hasLocation()) 157 tgt.setLocation(Reference30_40.convertReference(src.getLocation())); 158 } 159 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getReasonCode()) { 160 tgt.addReasonCode(CodeableConcept30_40.convertCodeableConcept(t)); 161 } 162 for (org.hl7.fhir.r4.model.Reference t : src.getReasonReference()) { 163 tgt.addReasonReference(Reference30_40.convertReference(t)); 164 } 165 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getBodySite()) { 166 tgt.addBodySite(CodeableConcept30_40.convertCodeableConcept(t)); 167 } 168 if (src.hasOutcome()) { 169 if (src.hasOutcome()) 170 tgt.setOutcome(CodeableConcept30_40.convertCodeableConcept(src.getOutcome())); 171 } 172 for (org.hl7.fhir.r4.model.Reference t : src.getReport()) { 173 tgt.addReport(Reference30_40.convertReference(t)); 174 } 175 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getComplication()) { 176 tgt.addComplication(CodeableConcept30_40.convertCodeableConcept(t)); 177 } 178 for (org.hl7.fhir.r4.model.Reference t : src.getComplicationDetail()) { 179 tgt.addComplicationDetail(Reference30_40.convertReference(t)); 180 } 181 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getFollowUp()) { 182 tgt.addFollowUp(CodeableConcept30_40.convertCodeableConcept(t)); 183 } 184 for (org.hl7.fhir.r4.model.Annotation t : src.getNote()) { 185 tgt.addNote(Annotation30_40.convertAnnotation(t)); 186 } 187 for (org.hl7.fhir.r4.model.Procedure.ProcedureFocalDeviceComponent t : src.getFocalDevice()) { 188 tgt.addFocalDevice(convertProcedureFocalDeviceComponent(t)); 189 } 190 for (org.hl7.fhir.r4.model.Reference t : src.getUsedReference()) { 191 tgt.addUsedReference(Reference30_40.convertReference(t)); 192 } 193 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getUsedCode()) { 194 tgt.addUsedCode(CodeableConcept30_40.convertCodeableConcept(t)); 195 } 196 return tgt; 197 } 198 199 static public org.hl7.fhir.dstu3.model.Procedure.ProcedureFocalDeviceComponent convertProcedureFocalDeviceComponent(org.hl7.fhir.r4.model.Procedure.ProcedureFocalDeviceComponent src) throws FHIRException { 200 if (src == null) 201 return null; 202 org.hl7.fhir.dstu3.model.Procedure.ProcedureFocalDeviceComponent tgt = new org.hl7.fhir.dstu3.model.Procedure.ProcedureFocalDeviceComponent(); 203 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt); 204 if (src.hasAction()) { 205 if (src.hasAction()) 206 tgt.setAction(CodeableConcept30_40.convertCodeableConcept(src.getAction())); 207 } 208 if (src.hasManipulated()) { 209 if (src.hasManipulated()) 210 tgt.setManipulated(Reference30_40.convertReference(src.getManipulated())); 211 } 212 return tgt; 213 } 214 215 static public org.hl7.fhir.r4.model.Procedure.ProcedureFocalDeviceComponent convertProcedureFocalDeviceComponent(org.hl7.fhir.dstu3.model.Procedure.ProcedureFocalDeviceComponent src) throws FHIRException { 216 if (src == null) 217 return null; 218 org.hl7.fhir.r4.model.Procedure.ProcedureFocalDeviceComponent tgt = new org.hl7.fhir.r4.model.Procedure.ProcedureFocalDeviceComponent(); 219 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt); 220 if (src.hasAction()) { 221 if (src.hasAction()) 222 tgt.setAction(CodeableConcept30_40.convertCodeableConcept(src.getAction())); 223 } 224 if (src.hasManipulated()) { 225 if (src.hasManipulated()) 226 tgt.setManipulated(Reference30_40.convertReference(src.getManipulated())); 227 } 228 return tgt; 229 } 230 231 static public org.hl7.fhir.r4.model.Procedure.ProcedurePerformerComponent convertProcedurePerformerComponent(org.hl7.fhir.dstu3.model.Procedure.ProcedurePerformerComponent src) throws FHIRException { 232 if (src == null) 233 return null; 234 org.hl7.fhir.r4.model.Procedure.ProcedurePerformerComponent tgt = new org.hl7.fhir.r4.model.Procedure.ProcedurePerformerComponent(); 235 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt); 236 if (src.hasRole()) { 237 if (src.hasRole()) 238 tgt.setFunction(CodeableConcept30_40.convertCodeableConcept(src.getRole())); 239 } 240 if (src.hasActor()) { 241 if (src.hasActor()) 242 tgt.setActor(Reference30_40.convertReference(src.getActor())); 243 } 244 if (src.hasOnBehalfOf()) { 245 if (src.hasOnBehalfOf()) 246 tgt.setOnBehalfOf(Reference30_40.convertReference(src.getOnBehalfOf())); 247 } 248 return tgt; 249 } 250 251 static public org.hl7.fhir.dstu3.model.Procedure.ProcedurePerformerComponent convertProcedurePerformerComponent(org.hl7.fhir.r4.model.Procedure.ProcedurePerformerComponent src) throws FHIRException { 252 if (src == null) 253 return null; 254 org.hl7.fhir.dstu3.model.Procedure.ProcedurePerformerComponent tgt = new org.hl7.fhir.dstu3.model.Procedure.ProcedurePerformerComponent(); 255 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt); 256 if (src.hasFunction()) { 257 if (src.hasFunction()) 258 tgt.setRole(CodeableConcept30_40.convertCodeableConcept(src.getFunction())); 259 } 260 if (src.hasActor()) { 261 if (src.hasActor()) 262 tgt.setActor(Reference30_40.convertReference(src.getActor())); 263 } 264 if (src.hasOnBehalfOf()) { 265 if (src.hasOnBehalfOf()) 266 tgt.setOnBehalfOf(Reference30_40.convertReference(src.getOnBehalfOf())); 267 } 268 return tgt; 269 } 270 271 static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Procedure.ProcedureStatus> convertProcedureStatus(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Procedure.ProcedureStatus> src) throws FHIRException { 272 if (src == null || src.isEmpty()) 273 return null; 274 Enumeration<Procedure.ProcedureStatus> tgt = new Enumeration<>(new Procedure.ProcedureStatusEnumFactory()); 275 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt); 276 if (src.getValue() == null) { 277 tgt.setValue(null); 278 } else { 279 switch (src.getValue()) { 280 case PREPARATION: 281 tgt.setValue(Procedure.ProcedureStatus.PREPARATION); 282 break; 283 case INPROGRESS: 284 tgt.setValue(Procedure.ProcedureStatus.INPROGRESS); 285 break; 286 case SUSPENDED: 287 tgt.setValue(Procedure.ProcedureStatus.ONHOLD); 288 break; 289 case ABORTED: 290 tgt.setValue(Procedure.ProcedureStatus.STOPPED); 291 break; 292 case COMPLETED: 293 tgt.setValue(Procedure.ProcedureStatus.COMPLETED); 294 break; 295 case ENTEREDINERROR: 296 tgt.setValue(Procedure.ProcedureStatus.ENTEREDINERROR); 297 break; 298 case UNKNOWN: 299 tgt.setValue(Procedure.ProcedureStatus.UNKNOWN); 300 break; 301 default: 302 tgt.setValue(Procedure.ProcedureStatus.NULL); 303 break; 304 } 305 } 306 return tgt; 307 } 308 309 static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Procedure.ProcedureStatus> convertProcedureStatus(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Procedure.ProcedureStatus> src) throws FHIRException { 310 if (src == null || src.isEmpty()) 311 return null; 312 org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Procedure.ProcedureStatus> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.Procedure.ProcedureStatusEnumFactory()); 313 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt); 314 if (src.getValue() == null) { 315 tgt.setValue(null); 316 } else { 317 switch (src.getValue()) { 318 case PREPARATION: 319 tgt.setValue(org.hl7.fhir.dstu3.model.Procedure.ProcedureStatus.PREPARATION); 320 break; 321 case INPROGRESS: 322 tgt.setValue(org.hl7.fhir.dstu3.model.Procedure.ProcedureStatus.INPROGRESS); 323 break; 324 case ONHOLD: 325 tgt.setValue(org.hl7.fhir.dstu3.model.Procedure.ProcedureStatus.SUSPENDED); 326 break; 327 case STOPPED: 328 tgt.setValue(org.hl7.fhir.dstu3.model.Procedure.ProcedureStatus.ABORTED); 329 break; 330 case COMPLETED: 331 tgt.setValue(org.hl7.fhir.dstu3.model.Procedure.ProcedureStatus.COMPLETED); 332 break; 333 case ENTEREDINERROR: 334 tgt.setValue(org.hl7.fhir.dstu3.model.Procedure.ProcedureStatus.ENTEREDINERROR); 335 break; 336 case UNKNOWN: 337 tgt.setValue(org.hl7.fhir.dstu3.model.Procedure.ProcedureStatus.UNKNOWN); 338 break; 339 default: 340 tgt.setValue(org.hl7.fhir.dstu3.model.Procedure.ProcedureStatus.NULL); 341 break; 342 } 343 } 344 return tgt; 345 } 346}