001package org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50; 002 003import org.hl7.fhir.convertors.context.ConversionContext40_50; 004import org.hl7.fhir.convertors.conv40_50.datatypes40_50.BackboneElement40_50; 005import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.*; 006import org.hl7.fhir.exceptions.FHIRException; 007 008import java.util.stream.Collectors; 009 010public class Timing40_50 { 011 public static org.hl7.fhir.r4.model.Timing convertTiming(org.hl7.fhir.r5.model.Timing src) throws FHIRException { 012 if (src == null) return null; 013 org.hl7.fhir.r4.model.Timing tgt = new org.hl7.fhir.r4.model.Timing(); 014 BackboneElement40_50.copyBackboneElement(src, tgt); 015 for (org.hl7.fhir.r5.model.DateTimeType t : src.getEvent()) tgt.getEvent().add(DateTime40_50.convertDateTime(t)); 016 if (src.hasRepeat()) tgt.setRepeat(convertTimingRepeatComponent(src.getRepeat())); 017 if (src.hasCode()) tgt.setCode(CodeableConcept40_50.convertCodeableConcept(src.getCode())); 018 return tgt; 019 } 020 021 public static org.hl7.fhir.r5.model.Timing convertTiming(org.hl7.fhir.r4.model.Timing src) throws FHIRException { 022 if (src == null) return null; 023 org.hl7.fhir.r5.model.Timing tgt = new org.hl7.fhir.r5.model.Timing(); 024 BackboneElement40_50.copyBackboneElement(src, tgt); 025 for (org.hl7.fhir.r4.model.DateTimeType t : src.getEvent()) tgt.getEvent().add(DateTime40_50.convertDateTime(t)); 026 if (src.hasRepeat()) tgt.setRepeat(convertTimingRepeatComponent(src.getRepeat())); 027 if (src.hasCode()) tgt.setCode(CodeableConcept40_50.convertCodeableConcept(src.getCode())); 028 return tgt; 029 } 030 031 public static org.hl7.fhir.r5.model.Timing.TimingRepeatComponent convertTimingRepeatComponent(org.hl7.fhir.r4.model.Timing.TimingRepeatComponent src) throws FHIRException { 032 if (src == null) return null; 033 org.hl7.fhir.r5.model.Timing.TimingRepeatComponent tgt = new org.hl7.fhir.r5.model.Timing.TimingRepeatComponent(); 034 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 035 if (src.hasBounds()) 036 tgt.setBounds(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getBounds())); 037 if (src.hasCount()) tgt.setCountElement(PositiveInt40_50.convertPositiveInt(src.getCountElement())); 038 if (src.hasCountMax()) tgt.setCountMaxElement(PositiveInt40_50.convertPositiveInt(src.getCountMaxElement())); 039 if (src.hasDuration()) tgt.setDurationElement(Decimal40_50.convertDecimal(src.getDurationElement())); 040 if (src.hasDurationMax()) tgt.setDurationMaxElement(Decimal40_50.convertDecimal(src.getDurationMaxElement())); 041 if (src.hasDurationUnit()) tgt.setDurationUnitElement(convertUnitsOfTime(src.getDurationUnitElement())); 042 if (src.hasFrequency()) tgt.setFrequencyElement(PositiveInt40_50.convertPositiveInt(src.getFrequencyElement())); 043 if (src.hasFrequencyMax()) 044 tgt.setFrequencyMaxElement(PositiveInt40_50.convertPositiveInt(src.getFrequencyMaxElement())); 045 if (src.hasPeriod()) tgt.setPeriodElement(Decimal40_50.convertDecimal(src.getPeriodElement())); 046 if (src.hasPeriodMax()) tgt.setPeriodMaxElement(Decimal40_50.convertDecimal(src.getPeriodMaxElement())); 047 if (src.hasPeriodUnit()) tgt.setPeriodUnitElement(convertUnitsOfTime(src.getPeriodUnitElement())); 048 tgt.setDayOfWeek(src.getDayOfWeek().stream().map(Timing40_50::convertDayOfWeek).collect(Collectors.toList())); 049 if (src.hasWhen()) 050 tgt.setWhen(src.getWhen().stream().map(Timing40_50::convertEventTiming).collect(Collectors.toList())); 051 for (org.hl7.fhir.r4.model.TimeType t : src.getTimeOfDay()) tgt.getTimeOfDay().add(Time40_50.convertTime(t)); 052 if (src.hasOffset()) tgt.setOffsetElement(UnsignedInt40_50.convertUnsignedInt(src.getOffsetElement())); 053 return tgt; 054 } 055 056 public static org.hl7.fhir.r4.model.Timing.TimingRepeatComponent convertTimingRepeatComponent(org.hl7.fhir.r5.model.Timing.TimingRepeatComponent src) throws FHIRException { 057 if (src == null) return null; 058 org.hl7.fhir.r4.model.Timing.TimingRepeatComponent tgt = new org.hl7.fhir.r4.model.Timing.TimingRepeatComponent(); 059 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 060 if (src.hasBounds()) 061 tgt.setBounds(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getBounds())); 062 if (src.hasCount()) tgt.setCountElement(PositiveInt40_50.convertPositiveInt(src.getCountElement())); 063 if (src.hasCountMax()) tgt.setCountMaxElement(PositiveInt40_50.convertPositiveInt(src.getCountMaxElement())); 064 if (src.hasDuration()) tgt.setDurationElement(Decimal40_50.convertDecimal(src.getDurationElement())); 065 if (src.hasDurationMax()) tgt.setDurationMaxElement(Decimal40_50.convertDecimal(src.getDurationMaxElement())); 066 if (src.hasDurationUnit()) tgt.setDurationUnitElement(convertUnitsOfTime(src.getDurationUnitElement())); 067 if (src.hasFrequency()) tgt.setFrequencyElement(PositiveInt40_50.convertPositiveInt(src.getFrequencyElement())); 068 if (src.hasFrequencyMax()) 069 tgt.setFrequencyMaxElement(PositiveInt40_50.convertPositiveInt(src.getFrequencyMaxElement())); 070 if (src.hasPeriod()) tgt.setPeriodElement(Decimal40_50.convertDecimal(src.getPeriodElement())); 071 if (src.hasPeriodMax()) tgt.setPeriodMaxElement(Decimal40_50.convertDecimal(src.getPeriodMaxElement())); 072 if (src.hasPeriodUnit()) tgt.setPeriodUnitElement(convertUnitsOfTime(src.getPeriodUnitElement())); 073 tgt.setDayOfWeek(src.getDayOfWeek().stream().map(Timing40_50::convertDayOfWeek).collect(Collectors.toList())); 074 if (src.hasWhen()) 075 tgt.setWhen(src.getWhen().stream().map(Timing40_50::convertEventTiming).collect(Collectors.toList())); 076 for (org.hl7.fhir.r5.model.TimeType t : src.getTimeOfDay()) tgt.getTimeOfDay().add(Time40_50.convertTime(t)); 077 if (src.hasOffset()) tgt.setOffsetElement(UnsignedInt40_50.convertUnsignedInt(src.getOffsetElement())); 078 return tgt; 079 } 080 081 static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Timing.UnitsOfTime> convertUnitsOfTime(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Timing.UnitsOfTime> src) throws FHIRException { 082 if (src == null || src.isEmpty()) return null; 083 org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Timing.UnitsOfTime> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.Timing.UnitsOfTimeEnumFactory()); 084 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 085 if (src.getValue() == null) { 086 tgt.setValue(org.hl7.fhir.r5.model.Timing.UnitsOfTime.NULL); 087 } else { 088 switch (src.getValue()) { 089 case S: 090 tgt.setValue(org.hl7.fhir.r5.model.Timing.UnitsOfTime.S); 091 break; 092 case MIN: 093 tgt.setValue(org.hl7.fhir.r5.model.Timing.UnitsOfTime.MIN); 094 break; 095 case H: 096 tgt.setValue(org.hl7.fhir.r5.model.Timing.UnitsOfTime.H); 097 break; 098 case D: 099 tgt.setValue(org.hl7.fhir.r5.model.Timing.UnitsOfTime.D); 100 break; 101 case WK: 102 tgt.setValue(org.hl7.fhir.r5.model.Timing.UnitsOfTime.WK); 103 break; 104 case MO: 105 tgt.setValue(org.hl7.fhir.r5.model.Timing.UnitsOfTime.MO); 106 break; 107 case A: 108 tgt.setValue(org.hl7.fhir.r5.model.Timing.UnitsOfTime.A); 109 break; 110 default: 111 tgt.setValue(org.hl7.fhir.r5.model.Timing.UnitsOfTime.NULL); 112 break; 113 } 114 } 115 return tgt; 116 } 117 118 static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Timing.UnitsOfTime> convertUnitsOfTime(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Timing.UnitsOfTime> src) throws FHIRException { 119 if (src == null || src.isEmpty()) return null; 120 org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Timing.UnitsOfTime> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.Timing.UnitsOfTimeEnumFactory()); 121 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 122 if (src.getValue() == null) { 123 tgt.setValue(org.hl7.fhir.r4.model.Timing.UnitsOfTime.NULL); 124 } else { 125 switch (src.getValue()) { 126 case S: 127 tgt.setValue(org.hl7.fhir.r4.model.Timing.UnitsOfTime.S); 128 break; 129 case MIN: 130 tgt.setValue(org.hl7.fhir.r4.model.Timing.UnitsOfTime.MIN); 131 break; 132 case H: 133 tgt.setValue(org.hl7.fhir.r4.model.Timing.UnitsOfTime.H); 134 break; 135 case D: 136 tgt.setValue(org.hl7.fhir.r4.model.Timing.UnitsOfTime.D); 137 break; 138 case WK: 139 tgt.setValue(org.hl7.fhir.r4.model.Timing.UnitsOfTime.WK); 140 break; 141 case MO: 142 tgt.setValue(org.hl7.fhir.r4.model.Timing.UnitsOfTime.MO); 143 break; 144 case A: 145 tgt.setValue(org.hl7.fhir.r4.model.Timing.UnitsOfTime.A); 146 break; 147 default: 148 tgt.setValue(org.hl7.fhir.r4.model.Timing.UnitsOfTime.NULL); 149 break; 150 } 151 } 152 return tgt; 153 } 154 155 static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.DaysOfWeek> convertDayOfWeek(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Timing.DayOfWeek> src) throws FHIRException { 156 if (src == null || src.isEmpty()) return null; 157 org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.DaysOfWeek> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.Enumerations.DaysOfWeekEnumFactory()); 158 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 159 if (src.getValue() == null) { 160 tgt.setValue(org.hl7.fhir.r5.model.Enumerations.DaysOfWeek.NULL); 161 } else { 162 switch (src.getValue()) { 163 case MON: 164 tgt.setValue(org.hl7.fhir.r5.model.Enumerations.DaysOfWeek.MON); 165 break; 166 case TUE: 167 tgt.setValue(org.hl7.fhir.r5.model.Enumerations.DaysOfWeek.TUE); 168 break; 169 case WED: 170 tgt.setValue(org.hl7.fhir.r5.model.Enumerations.DaysOfWeek.WED); 171 break; 172 case THU: 173 tgt.setValue(org.hl7.fhir.r5.model.Enumerations.DaysOfWeek.THU); 174 break; 175 case FRI: 176 tgt.setValue(org.hl7.fhir.r5.model.Enumerations.DaysOfWeek.FRI); 177 break; 178 case SAT: 179 tgt.setValue(org.hl7.fhir.r5.model.Enumerations.DaysOfWeek.SAT); 180 break; 181 case SUN: 182 tgt.setValue(org.hl7.fhir.r5.model.Enumerations.DaysOfWeek.SUN); 183 break; 184 default: 185 tgt.setValue(org.hl7.fhir.r5.model.Enumerations.DaysOfWeek.NULL); 186 break; 187 } 188 } 189 return tgt; 190 } 191 192 static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Timing.DayOfWeek> convertDayOfWeek(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.DaysOfWeek> src) throws FHIRException { 193 if (src == null || src.isEmpty()) return null; 194 org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Timing.DayOfWeek> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.Timing.DayOfWeekEnumFactory()); 195 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 196 if (src.getValue() == null) { 197 tgt.setValue(org.hl7.fhir.r4.model.Timing.DayOfWeek.NULL); 198 } else { 199 switch (src.getValue()) { 200 case MON: 201 tgt.setValue(org.hl7.fhir.r4.model.Timing.DayOfWeek.MON); 202 break; 203 case TUE: 204 tgt.setValue(org.hl7.fhir.r4.model.Timing.DayOfWeek.TUE); 205 break; 206 case WED: 207 tgt.setValue(org.hl7.fhir.r4.model.Timing.DayOfWeek.WED); 208 break; 209 case THU: 210 tgt.setValue(org.hl7.fhir.r4.model.Timing.DayOfWeek.THU); 211 break; 212 case FRI: 213 tgt.setValue(org.hl7.fhir.r4.model.Timing.DayOfWeek.FRI); 214 break; 215 case SAT: 216 tgt.setValue(org.hl7.fhir.r4.model.Timing.DayOfWeek.SAT); 217 break; 218 case SUN: 219 tgt.setValue(org.hl7.fhir.r4.model.Timing.DayOfWeek.SUN); 220 break; 221 default: 222 tgt.setValue(org.hl7.fhir.r4.model.Timing.DayOfWeek.NULL); 223 break; 224 } 225 } 226 return tgt; 227 } 228 229 static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Timing.EventTiming> convertEventTiming(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Timing.EventTiming> src) throws FHIRException { 230 if (src == null || src.isEmpty()) return null; 231 org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Timing.EventTiming> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.Timing.EventTimingEnumFactory()); 232 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 233 if (src.getValue() == null) { 234 tgt.setValue(org.hl7.fhir.r5.model.Timing.EventTiming.NULL); 235 } else { 236 switch (src.getValue()) { 237 case MORN: 238 tgt.setValue(org.hl7.fhir.r5.model.Timing.EventTiming.MORN); 239 break; 240 case MORN_EARLY: 241 tgt.setValue(org.hl7.fhir.r5.model.Timing.EventTiming.MORN_EARLY); 242 break; 243 case MORN_LATE: 244 tgt.setValue(org.hl7.fhir.r5.model.Timing.EventTiming.MORN_LATE); 245 break; 246 case NOON: 247 tgt.setValue(org.hl7.fhir.r5.model.Timing.EventTiming.NOON); 248 break; 249 case AFT: 250 tgt.setValue(org.hl7.fhir.r5.model.Timing.EventTiming.AFT); 251 break; 252 case AFT_EARLY: 253 tgt.setValue(org.hl7.fhir.r5.model.Timing.EventTiming.AFT_EARLY); 254 break; 255 case AFT_LATE: 256 tgt.setValue(org.hl7.fhir.r5.model.Timing.EventTiming.AFT_LATE); 257 break; 258 case EVE: 259 tgt.setValue(org.hl7.fhir.r5.model.Timing.EventTiming.EVE); 260 break; 261 case EVE_EARLY: 262 tgt.setValue(org.hl7.fhir.r5.model.Timing.EventTiming.EVE_EARLY); 263 break; 264 case EVE_LATE: 265 tgt.setValue(org.hl7.fhir.r5.model.Timing.EventTiming.EVE_LATE); 266 break; 267 case NIGHT: 268 tgt.setValue(org.hl7.fhir.r5.model.Timing.EventTiming.NIGHT); 269 break; 270 case PHS: 271 tgt.setValue(org.hl7.fhir.r5.model.Timing.EventTiming.PHS); 272 break; 273 case HS: 274 tgt.setValue(org.hl7.fhir.r5.model.Timing.EventTiming.HS); 275 break; 276 case WAKE: 277 tgt.setValue(org.hl7.fhir.r5.model.Timing.EventTiming.WAKE); 278 break; 279 case C: 280 tgt.setValue(org.hl7.fhir.r5.model.Timing.EventTiming.C); 281 break; 282 case CM: 283 tgt.setValue(org.hl7.fhir.r5.model.Timing.EventTiming.CM); 284 break; 285 case CD: 286 tgt.setValue(org.hl7.fhir.r5.model.Timing.EventTiming.CD); 287 break; 288 case CV: 289 tgt.setValue(org.hl7.fhir.r5.model.Timing.EventTiming.CV); 290 break; 291 case AC: 292 tgt.setValue(org.hl7.fhir.r5.model.Timing.EventTiming.AC); 293 break; 294 case ACM: 295 tgt.setValue(org.hl7.fhir.r5.model.Timing.EventTiming.ACM); 296 break; 297 case ACD: 298 tgt.setValue(org.hl7.fhir.r5.model.Timing.EventTiming.ACD); 299 break; 300 case ACV: 301 tgt.setValue(org.hl7.fhir.r5.model.Timing.EventTiming.ACV); 302 break; 303 case PC: 304 tgt.setValue(org.hl7.fhir.r5.model.Timing.EventTiming.PC); 305 break; 306 case PCM: 307 tgt.setValue(org.hl7.fhir.r5.model.Timing.EventTiming.PCM); 308 break; 309 case PCD: 310 tgt.setValue(org.hl7.fhir.r5.model.Timing.EventTiming.PCD); 311 break; 312 case PCV: 313 tgt.setValue(org.hl7.fhir.r5.model.Timing.EventTiming.PCV); 314 break; 315 default: 316 tgt.setValue(org.hl7.fhir.r5.model.Timing.EventTiming.NULL); 317 break; 318 } 319 } 320 return tgt; 321 } 322 323 static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Timing.EventTiming> convertEventTiming(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Timing.EventTiming> src) throws FHIRException { 324 if (src == null || src.isEmpty()) return null; 325 org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Timing.EventTiming> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.Timing.EventTimingEnumFactory()); 326 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 327 if (src.getValue() == null) { 328 tgt.setValue(org.hl7.fhir.r4.model.Timing.EventTiming.NULL); 329 } else { 330 switch (src.getValue()) { 331 case MORN: 332 tgt.setValue(org.hl7.fhir.r4.model.Timing.EventTiming.MORN); 333 break; 334 case MORN_EARLY: 335 tgt.setValue(org.hl7.fhir.r4.model.Timing.EventTiming.MORN_EARLY); 336 break; 337 case MORN_LATE: 338 tgt.setValue(org.hl7.fhir.r4.model.Timing.EventTiming.MORN_LATE); 339 break; 340 case NOON: 341 tgt.setValue(org.hl7.fhir.r4.model.Timing.EventTiming.NOON); 342 break; 343 case AFT: 344 tgt.setValue(org.hl7.fhir.r4.model.Timing.EventTiming.AFT); 345 break; 346 case AFT_EARLY: 347 tgt.setValue(org.hl7.fhir.r4.model.Timing.EventTiming.AFT_EARLY); 348 break; 349 case AFT_LATE: 350 tgt.setValue(org.hl7.fhir.r4.model.Timing.EventTiming.AFT_LATE); 351 break; 352 case EVE: 353 tgt.setValue(org.hl7.fhir.r4.model.Timing.EventTiming.EVE); 354 break; 355 case EVE_EARLY: 356 tgt.setValue(org.hl7.fhir.r4.model.Timing.EventTiming.EVE_EARLY); 357 break; 358 case EVE_LATE: 359 tgt.setValue(org.hl7.fhir.r4.model.Timing.EventTiming.EVE_LATE); 360 break; 361 case NIGHT: 362 tgt.setValue(org.hl7.fhir.r4.model.Timing.EventTiming.NIGHT); 363 break; 364 case PHS: 365 tgt.setValue(org.hl7.fhir.r4.model.Timing.EventTiming.PHS); 366 break; 367 case HS: 368 tgt.setValue(org.hl7.fhir.r4.model.Timing.EventTiming.HS); 369 break; 370 case WAKE: 371 tgt.setValue(org.hl7.fhir.r4.model.Timing.EventTiming.WAKE); 372 break; 373 case C: 374 tgt.setValue(org.hl7.fhir.r4.model.Timing.EventTiming.C); 375 break; 376 case CM: 377 tgt.setValue(org.hl7.fhir.r4.model.Timing.EventTiming.CM); 378 break; 379 case CD: 380 tgt.setValue(org.hl7.fhir.r4.model.Timing.EventTiming.CD); 381 break; 382 case CV: 383 tgt.setValue(org.hl7.fhir.r4.model.Timing.EventTiming.CV); 384 break; 385 case AC: 386 tgt.setValue(org.hl7.fhir.r4.model.Timing.EventTiming.AC); 387 break; 388 case ACM: 389 tgt.setValue(org.hl7.fhir.r4.model.Timing.EventTiming.ACM); 390 break; 391 case ACD: 392 tgt.setValue(org.hl7.fhir.r4.model.Timing.EventTiming.ACD); 393 break; 394 case ACV: 395 tgt.setValue(org.hl7.fhir.r4.model.Timing.EventTiming.ACV); 396 break; 397 case PC: 398 tgt.setValue(org.hl7.fhir.r4.model.Timing.EventTiming.PC); 399 break; 400 case PCM: 401 tgt.setValue(org.hl7.fhir.r4.model.Timing.EventTiming.PCM); 402 break; 403 case PCD: 404 tgt.setValue(org.hl7.fhir.r4.model.Timing.EventTiming.PCD); 405 break; 406 case PCV: 407 tgt.setValue(org.hl7.fhir.r4.model.Timing.EventTiming.PCV); 408 break; 409 default: 410 tgt.setValue(org.hl7.fhir.r4.model.Timing.EventTiming.NULL); 411 break; 412 } 413 } 414 return tgt; 415 } 416}