
001package org.hl7.fhir.convertors.conv10_40.resources10_40; 002 003import org.hl7.fhir.convertors.context.ConversionContext10_40; 004import org.hl7.fhir.convertors.conv10_40.datatypes10_40.Reference10_40; 005import org.hl7.fhir.convertors.conv10_40.datatypes10_40.complextypes10_40.CodeableConcept10_40; 006import org.hl7.fhir.convertors.conv10_40.datatypes10_40.complextypes10_40.Duration10_40; 007import org.hl7.fhir.convertors.conv10_40.datatypes10_40.complextypes10_40.Identifier10_40; 008import org.hl7.fhir.convertors.conv10_40.datatypes10_40.complextypes10_40.Period10_40; 009import org.hl7.fhir.dstu2.model.Encounter; 010import org.hl7.fhir.dstu2.model.Enumeration; 011import org.hl7.fhir.exceptions.FHIRException; 012 013public class Encounter10_40 { 014 015 public static org.hl7.fhir.dstu2.model.Encounter convertEncounter(org.hl7.fhir.r4.model.Encounter src) throws FHIRException { 016 if (src == null || src.isEmpty()) 017 return null; 018 org.hl7.fhir.dstu2.model.Encounter tgt = new org.hl7.fhir.dstu2.model.Encounter(); 019 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyDomainResource(src, tgt); 020 for (org.hl7.fhir.r4.model.Identifier t : src.getIdentifier()) 021 tgt.addIdentifier(Identifier10_40.convertIdentifier(t)); 022 if (src.hasStatus()) 023 tgt.setStatusElement(convertEncounterState(src.getStatusElement())); 024 if (src.hasClass_()) 025 tgt.setClass_(convertEncounterClass(src.getClass_())); 026 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getType()) 027 tgt.addType(CodeableConcept10_40.convertCodeableConcept(t)); 028 if (src.hasPriority()) 029 tgt.setPriority(CodeableConcept10_40.convertCodeableConcept(src.getPriority())); 030 if (src.hasSubject()) 031 tgt.setPatient(Reference10_40.convertReference(src.getSubject())); 032 for (org.hl7.fhir.r4.model.Reference t : src.getEpisodeOfCare()) 033 tgt.addEpisodeOfCare(Reference10_40.convertReference(t)); 034 for (org.hl7.fhir.r4.model.Reference t : src.getBasedOn()) 035 tgt.addIncomingReferral(Reference10_40.convertReference(t)); 036 for (org.hl7.fhir.r4.model.Encounter.EncounterParticipantComponent t : src.getParticipant()) 037 tgt.addParticipant(convertEncounterParticipantComponent(t)); 038 if (src.hasAppointment()) 039 tgt.setAppointment(Reference10_40.convertReference(src.getAppointmentFirstRep())); 040 if (src.hasPeriod()) 041 tgt.setPeriod(Period10_40.convertPeriod(src.getPeriod())); 042 if (src.hasLength()) 043 tgt.setLength(Duration10_40.convertDuration(src.getLength())); 044 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getReasonCode()) 045 tgt.addReason(CodeableConcept10_40.convertCodeableConcept(t)); 046 if (src.hasHospitalization()) 047 tgt.setHospitalization(convertEncounterHospitalizationComponent(src.getHospitalization())); 048 for (org.hl7.fhir.r4.model.Encounter.EncounterLocationComponent t : src.getLocation()) 049 tgt.addLocation(convertEncounterLocationComponent(t)); 050 if (src.hasServiceProvider()) 051 tgt.setServiceProvider(Reference10_40.convertReference(src.getServiceProvider())); 052 if (src.hasPartOf()) 053 tgt.setPartOf(Reference10_40.convertReference(src.getPartOf())); 054 return tgt; 055 } 056 057 public static org.hl7.fhir.r4.model.Encounter convertEncounter(org.hl7.fhir.dstu2.model.Encounter src) throws FHIRException { 058 if (src == null || src.isEmpty()) 059 return null; 060 org.hl7.fhir.r4.model.Encounter tgt = new org.hl7.fhir.r4.model.Encounter(); 061 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyDomainResource(src, tgt); 062 for (org.hl7.fhir.dstu2.model.Identifier t : src.getIdentifier()) 063 tgt.addIdentifier(Identifier10_40.convertIdentifier(t)); 064 if (src.hasStatus()) 065 tgt.setStatusElement(convertEncounterState(src.getStatusElement())); 066 if (src.hasClass_()) 067 tgt.setClass_(convertEncounterClass(src.getClass_())); 068 for (org.hl7.fhir.dstu2.model.CodeableConcept t : src.getType()) 069 tgt.addType(CodeableConcept10_40.convertCodeableConcept(t)); 070 if (src.hasPriority()) 071 tgt.setPriority(CodeableConcept10_40.convertCodeableConcept(src.getPriority())); 072 if (src.hasPatient()) 073 tgt.setSubject(Reference10_40.convertReference(src.getPatient())); 074 for (org.hl7.fhir.dstu2.model.Reference t : src.getEpisodeOfCare()) 075 tgt.addEpisodeOfCare(Reference10_40.convertReference(t)); 076 for (org.hl7.fhir.dstu2.model.Reference t : src.getIncomingReferral()) 077 tgt.addBasedOn(Reference10_40.convertReference(t)); 078 for (org.hl7.fhir.dstu2.model.Encounter.EncounterParticipantComponent t : src.getParticipant()) 079 tgt.addParticipant(convertEncounterParticipantComponent(t)); 080 if (src.hasAppointment()) 081 tgt.addAppointment(Reference10_40.convertReference(src.getAppointment())); 082 if (src.hasPeriod()) 083 tgt.setPeriod(Period10_40.convertPeriod(src.getPeriod())); 084 if (src.hasLength()) 085 tgt.setLength(Duration10_40.convertDuration(src.getLength())); 086 for (org.hl7.fhir.dstu2.model.CodeableConcept t : src.getReason()) 087 tgt.addReasonCode(CodeableConcept10_40.convertCodeableConcept(t)); 088 if (src.hasHospitalization()) 089 tgt.setHospitalization(convertEncounterHospitalizationComponent(src.getHospitalization())); 090 for (org.hl7.fhir.dstu2.model.Encounter.EncounterLocationComponent t : src.getLocation()) 091 tgt.addLocation(convertEncounterLocationComponent(t)); 092 if (src.hasServiceProvider()) 093 tgt.setServiceProvider(Reference10_40.convertReference(src.getServiceProvider())); 094 if (src.hasPartOf()) 095 tgt.setPartOf(Reference10_40.convertReference(src.getPartOf())); 096 return tgt; 097 } 098 099 public static org.hl7.fhir.r4.model.Coding convertEncounterClass(org.hl7.fhir.dstu2.model.Encounter.EncounterClass src) throws FHIRException { 100 if (src == null) 101 return null; 102 switch (src) { 103 case INPATIENT: 104 return new org.hl7.fhir.r4.model.Coding().setSystem("http://terminology.hl7.org/v3/ActCode").setCode("IMP"); 105 case OUTPATIENT: 106 return new org.hl7.fhir.r4.model.Coding().setSystem("http://terminology.hl7.org/v3/ActCode").setCode("AMB"); 107 case AMBULATORY: 108 return new org.hl7.fhir.r4.model.Coding().setSystem("http://terminology.hl7.org/v3/ActCode").setCode("AMB"); 109 case EMERGENCY: 110 return new org.hl7.fhir.r4.model.Coding().setSystem("http://terminology.hl7.org/v3/ActCode").setCode("EMER"); 111 case HOME: 112 return new org.hl7.fhir.r4.model.Coding().setSystem("http://terminology.hl7.org/v3/ActCode").setCode("HH"); 113 case FIELD: 114 return new org.hl7.fhir.r4.model.Coding().setSystem("http://terminology.hl7.org/v3/ActCode").setCode("FLD"); 115 case DAYTIME: 116 return new org.hl7.fhir.r4.model.Coding().setSystem("http://terminology.hl7.org/v3/ActCode").setCode("SS"); 117 case VIRTUAL: 118 return new org.hl7.fhir.r4.model.Coding().setSystem("http://terminology.hl7.org/v3/ActCode").setCode("VR"); 119 default: 120 return null; 121 } 122 } 123 124 public static org.hl7.fhir.dstu2.model.Encounter.EncounterClass convertEncounterClass(org.hl7.fhir.r4.model.Coding src) throws FHIRException { 125 if (src == null || src.isEmpty()) 126 return null; 127 if (src.getSystem().equals("http://terminology.hl7.org/v3/ActCode")) { 128 if (src.getCode().equals("IMP")) 129 return org.hl7.fhir.dstu2.model.Encounter.EncounterClass.INPATIENT; 130 if (src.getCode().equals("AMB")) 131 return org.hl7.fhir.dstu2.model.Encounter.EncounterClass.AMBULATORY; 132 if (src.getCode().equals("EMER")) 133 return org.hl7.fhir.dstu2.model.Encounter.EncounterClass.EMERGENCY; 134 if (src.getCode().equals("HH")) 135 return org.hl7.fhir.dstu2.model.Encounter.EncounterClass.HOME; 136 if (src.getCode().equals("FLD")) 137 return org.hl7.fhir.dstu2.model.Encounter.EncounterClass.FIELD; 138 if (src.getCode().equals("")) 139 return org.hl7.fhir.dstu2.model.Encounter.EncounterClass.DAYTIME; 140 if (src.getCode().equals("VR")) 141 return org.hl7.fhir.dstu2.model.Encounter.EncounterClass.VIRTUAL; 142 } 143 return org.hl7.fhir.dstu2.model.Encounter.EncounterClass.NULL; 144 } 145 146 public static org.hl7.fhir.r4.model.Encounter.EncounterHospitalizationComponent convertEncounterHospitalizationComponent(org.hl7.fhir.dstu2.model.Encounter.EncounterHospitalizationComponent src) throws FHIRException { 147 if (src == null || src.isEmpty()) 148 return null; 149 org.hl7.fhir.r4.model.Encounter.EncounterHospitalizationComponent tgt = new org.hl7.fhir.r4.model.Encounter.EncounterHospitalizationComponent(); 150 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyBackboneElement(src,tgt); 151 if (src.hasPreAdmissionIdentifier()) 152 tgt.setPreAdmissionIdentifier(Identifier10_40.convertIdentifier(src.getPreAdmissionIdentifier())); 153 if (src.hasOrigin()) 154 tgt.setOrigin(Reference10_40.convertReference(src.getOrigin())); 155 if (src.hasAdmitSource()) 156 tgt.setAdmitSource(CodeableConcept10_40.convertCodeableConcept(src.getAdmitSource())); 157 if (src.hasReAdmission()) 158 tgt.setReAdmission(CodeableConcept10_40.convertCodeableConcept(src.getReAdmission())); 159 for (org.hl7.fhir.dstu2.model.CodeableConcept t : src.getDietPreference()) 160 tgt.addDietPreference(CodeableConcept10_40.convertCodeableConcept(t)); 161 for (org.hl7.fhir.dstu2.model.CodeableConcept t : src.getSpecialCourtesy()) 162 tgt.addSpecialCourtesy(CodeableConcept10_40.convertCodeableConcept(t)); 163 for (org.hl7.fhir.dstu2.model.CodeableConcept t : src.getSpecialArrangement()) 164 tgt.addSpecialArrangement(CodeableConcept10_40.convertCodeableConcept(t)); 165 if (src.hasDestination()) 166 tgt.setDestination(Reference10_40.convertReference(src.getDestination())); 167 if (src.hasDischargeDisposition()) 168 tgt.setDischargeDisposition(CodeableConcept10_40.convertCodeableConcept(src.getDischargeDisposition())); 169 return tgt; 170 } 171 172 public static org.hl7.fhir.dstu2.model.Encounter.EncounterHospitalizationComponent convertEncounterHospitalizationComponent(org.hl7.fhir.r4.model.Encounter.EncounterHospitalizationComponent src) throws FHIRException { 173 if (src == null || src.isEmpty()) 174 return null; 175 org.hl7.fhir.dstu2.model.Encounter.EncounterHospitalizationComponent tgt = new org.hl7.fhir.dstu2.model.Encounter.EncounterHospitalizationComponent(); 176 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyBackboneElement(src,tgt); 177 if (src.hasPreAdmissionIdentifier()) 178 tgt.setPreAdmissionIdentifier(Identifier10_40.convertIdentifier(src.getPreAdmissionIdentifier())); 179 if (src.hasOrigin()) 180 tgt.setOrigin(Reference10_40.convertReference(src.getOrigin())); 181 if (src.hasAdmitSource()) 182 tgt.setAdmitSource(CodeableConcept10_40.convertCodeableConcept(src.getAdmitSource())); 183 if (src.hasReAdmission()) 184 tgt.setReAdmission(CodeableConcept10_40.convertCodeableConcept(src.getReAdmission())); 185 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getDietPreference()) 186 tgt.addDietPreference(CodeableConcept10_40.convertCodeableConcept(t)); 187 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getSpecialCourtesy()) 188 tgt.addSpecialCourtesy(CodeableConcept10_40.convertCodeableConcept(t)); 189 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getSpecialArrangement()) 190 tgt.addSpecialArrangement(CodeableConcept10_40.convertCodeableConcept(t)); 191 if (src.hasDestination()) 192 tgt.setDestination(Reference10_40.convertReference(src.getDestination())); 193 if (src.hasDischargeDisposition()) 194 tgt.setDischargeDisposition(CodeableConcept10_40.convertCodeableConcept(src.getDischargeDisposition())); 195 return tgt; 196 } 197 198 public static org.hl7.fhir.r4.model.Encounter.EncounterLocationComponent convertEncounterLocationComponent(org.hl7.fhir.dstu2.model.Encounter.EncounterLocationComponent src) throws FHIRException { 199 if (src == null || src.isEmpty()) 200 return null; 201 org.hl7.fhir.r4.model.Encounter.EncounterLocationComponent tgt = new org.hl7.fhir.r4.model.Encounter.EncounterLocationComponent(); 202 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyBackboneElement(src,tgt); 203 if (src.hasLocation()) 204 tgt.setLocation(Reference10_40.convertReference(src.getLocation())); 205 if (src.hasStatus()) 206 tgt.setStatusElement(convertEncounterLocationStatus(src.getStatusElement())); 207 if (src.hasPeriod()) 208 tgt.setPeriod(Period10_40.convertPeriod(src.getPeriod())); 209 return tgt; 210 } 211 212 public static org.hl7.fhir.dstu2.model.Encounter.EncounterLocationComponent convertEncounterLocationComponent(org.hl7.fhir.r4.model.Encounter.EncounterLocationComponent src) throws FHIRException { 213 if (src == null || src.isEmpty()) 214 return null; 215 org.hl7.fhir.dstu2.model.Encounter.EncounterLocationComponent tgt = new org.hl7.fhir.dstu2.model.Encounter.EncounterLocationComponent(); 216 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyBackboneElement(src,tgt); 217 if (src.hasLocation()) 218 tgt.setLocation(Reference10_40.convertReference(src.getLocation())); 219 if (src.hasStatus()) 220 tgt.setStatusElement(convertEncounterLocationStatus(src.getStatusElement())); 221 if (src.hasPeriod()) 222 tgt.setPeriod(Period10_40.convertPeriod(src.getPeriod())); 223 return tgt; 224 } 225 226 static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Encounter.EncounterLocationStatus> convertEncounterLocationStatus(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Encounter.EncounterLocationStatus> src) throws FHIRException { 227 if (src == null || src.isEmpty()) 228 return null; 229 Enumeration<Encounter.EncounterLocationStatus> tgt = new Enumeration<>(new Encounter.EncounterLocationStatusEnumFactory()); 230 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyElement(src, tgt); 231 if (src.getValue() == null) { 232 tgt.setValue(null); 233 } else { 234 switch (src.getValue()) { 235 case PLANNED: 236 tgt.setValue(Encounter.EncounterLocationStatus.PLANNED); 237 break; 238 case ACTIVE: 239 tgt.setValue(Encounter.EncounterLocationStatus.ACTIVE); 240 break; 241 case RESERVED: 242 tgt.setValue(Encounter.EncounterLocationStatus.RESERVED); 243 break; 244 case COMPLETED: 245 tgt.setValue(Encounter.EncounterLocationStatus.COMPLETED); 246 break; 247 default: 248 tgt.setValue(Encounter.EncounterLocationStatus.NULL); 249 break; 250 } 251 } 252 return tgt; 253 } 254 255 static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Encounter.EncounterLocationStatus> convertEncounterLocationStatus(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Encounter.EncounterLocationStatus> src) throws FHIRException { 256 if (src == null || src.isEmpty()) 257 return null; 258 org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Encounter.EncounterLocationStatus> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.Encounter.EncounterLocationStatusEnumFactory()); 259 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyElement(src, tgt); 260 if (src.getValue() == null) { 261 tgt.setValue(null); 262 } else { 263 switch (src.getValue()) { 264 case PLANNED: 265 tgt.setValue(org.hl7.fhir.r4.model.Encounter.EncounterLocationStatus.PLANNED); 266 break; 267 case ACTIVE: 268 tgt.setValue(org.hl7.fhir.r4.model.Encounter.EncounterLocationStatus.ACTIVE); 269 break; 270 case RESERVED: 271 tgt.setValue(org.hl7.fhir.r4.model.Encounter.EncounterLocationStatus.RESERVED); 272 break; 273 case COMPLETED: 274 tgt.setValue(org.hl7.fhir.r4.model.Encounter.EncounterLocationStatus.COMPLETED); 275 break; 276 default: 277 tgt.setValue(org.hl7.fhir.r4.model.Encounter.EncounterLocationStatus.NULL); 278 break; 279 } 280 } 281 return tgt; 282 } 283 284 public static org.hl7.fhir.r4.model.Encounter.EncounterParticipantComponent convertEncounterParticipantComponent(org.hl7.fhir.dstu2.model.Encounter.EncounterParticipantComponent src) throws FHIRException { 285 if (src == null || src.isEmpty()) 286 return null; 287 org.hl7.fhir.r4.model.Encounter.EncounterParticipantComponent tgt = new org.hl7.fhir.r4.model.Encounter.EncounterParticipantComponent(); 288 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyBackboneElement(src,tgt); 289 for (org.hl7.fhir.dstu2.model.CodeableConcept t : src.getType()) 290 tgt.addType(CodeableConcept10_40.convertCodeableConcept(t)); 291 if (src.hasPeriod()) 292 tgt.setPeriod(Period10_40.convertPeriod(src.getPeriod())); 293 if (src.hasIndividual()) 294 tgt.setIndividual(Reference10_40.convertReference(src.getIndividual())); 295 return tgt; 296 } 297 298 public static org.hl7.fhir.dstu2.model.Encounter.EncounterParticipantComponent convertEncounterParticipantComponent(org.hl7.fhir.r4.model.Encounter.EncounterParticipantComponent src) throws FHIRException { 299 if (src == null || src.isEmpty()) 300 return null; 301 org.hl7.fhir.dstu2.model.Encounter.EncounterParticipantComponent tgt = new org.hl7.fhir.dstu2.model.Encounter.EncounterParticipantComponent(); 302 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyBackboneElement(src,tgt); 303 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getType()) 304 tgt.addType(CodeableConcept10_40.convertCodeableConcept(t)); 305 if (src.hasPeriod()) 306 tgt.setPeriod(Period10_40.convertPeriod(src.getPeriod())); 307 if (src.hasIndividual()) 308 tgt.setIndividual(Reference10_40.convertReference(src.getIndividual())); 309 return tgt; 310 } 311 312 static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Encounter.EncounterState> convertEncounterState(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Encounter.EncounterStatus> src) throws FHIRException { 313 if (src == null || src.isEmpty()) 314 return null; 315 Enumeration<Encounter.EncounterState> tgt = new Enumeration<>(new Encounter.EncounterStateEnumFactory()); 316 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyElement(src, tgt); 317 if (src.getValue() == null) { 318 tgt.setValue(null); 319 } else { 320 switch (src.getValue()) { 321 case PLANNED: 322 tgt.setValue(Encounter.EncounterState.PLANNED); 323 break; 324 case ARRIVED: 325 tgt.setValue(Encounter.EncounterState.ARRIVED); 326 break; 327 case INPROGRESS: 328 tgt.setValue(Encounter.EncounterState.INPROGRESS); 329 break; 330 case ONLEAVE: 331 tgt.setValue(Encounter.EncounterState.ONLEAVE); 332 break; 333 case FINISHED: 334 tgt.setValue(Encounter.EncounterState.FINISHED); 335 break; 336 case CANCELLED: 337 tgt.setValue(Encounter.EncounterState.CANCELLED); 338 break; 339 default: 340 tgt.setValue(Encounter.EncounterState.NULL); 341 break; 342 } 343 } 344 return tgt; 345 } 346 347 static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Encounter.EncounterStatus> convertEncounterState(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Encounter.EncounterState> src) throws FHIRException { 348 if (src == null || src.isEmpty()) 349 return null; 350 org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Encounter.EncounterStatus> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.Encounter.EncounterStatusEnumFactory()); 351 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyElement(src, tgt); 352 if (src.getValue() == null) { 353 tgt.setValue(null); 354 } else { 355 switch (src.getValue()) { 356 case PLANNED: 357 tgt.setValue(org.hl7.fhir.r4.model.Encounter.EncounterStatus.PLANNED); 358 break; 359 case ARRIVED: 360 tgt.setValue(org.hl7.fhir.r4.model.Encounter.EncounterStatus.ARRIVED); 361 break; 362 case INPROGRESS: 363 tgt.setValue(org.hl7.fhir.r4.model.Encounter.EncounterStatus.INPROGRESS); 364 break; 365 case ONLEAVE: 366 tgt.setValue(org.hl7.fhir.r4.model.Encounter.EncounterStatus.ONLEAVE); 367 break; 368 case FINISHED: 369 tgt.setValue(org.hl7.fhir.r4.model.Encounter.EncounterStatus.FINISHED); 370 break; 371 case CANCELLED: 372 tgt.setValue(org.hl7.fhir.r4.model.Encounter.EncounterStatus.CANCELLED); 373 break; 374 default: 375 tgt.setValue(org.hl7.fhir.r4.model.Encounter.EncounterStatus.NULL); 376 break; 377 } 378 } 379 return tgt; 380 } 381}