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