
001package org.hl7.fhir.convertors.conv30_40.resources30_40; 002 003import java.util.stream.Collectors; 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.Attachment30_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.ContactPoint30_40; 010import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Identifier30_40; 011import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Period30_40; 012import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.Boolean30_40; 013import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.String30_40; 014import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.Time30_40; 015import org.hl7.fhir.exceptions.FHIRException; 016import org.hl7.fhir.r4.model.CodeableConcept; 017import org.hl7.fhir.r4.model.Enumeration; 018import org.hl7.fhir.r4.model.HealthcareService; 019import org.hl7.fhir.r4.model.HealthcareService.HealthcareServiceEligibilityComponent; 020 021public class HealthcareService30_40 { 022 023 public static org.hl7.fhir.dstu3.model.HealthcareService convertHealthcareService(org.hl7.fhir.r4.model.HealthcareService src) throws FHIRException { 024 if (src == null) 025 return null; 026 org.hl7.fhir.dstu3.model.HealthcareService tgt = new org.hl7.fhir.dstu3.model.HealthcareService(); 027 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt); 028 for (org.hl7.fhir.r4.model.Identifier t : src.getIdentifier()) 029 tgt.addIdentifier(Identifier30_40.convertIdentifier(t)); 030 if (src.hasActive()) 031 tgt.setActiveElement(Boolean30_40.convertBoolean(src.getActiveElement())); 032 if (src.hasProvidedBy()) 033 tgt.setProvidedBy(Reference30_40.convertReference(src.getProvidedBy())); 034 if (src.hasCategory()) 035 tgt.setCategory(CodeableConcept30_40.convertCodeableConcept(src.getCategoryFirstRep())); 036 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getType()) 037 tgt.addType(CodeableConcept30_40.convertCodeableConcept(t)); 038 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getSpecialty()) 039 tgt.addSpecialty(CodeableConcept30_40.convertCodeableConcept(t)); 040 for (org.hl7.fhir.r4.model.Reference t : src.getLocation()) tgt.addLocation(Reference30_40.convertReference(t)); 041 if (src.hasName()) 042 tgt.setNameElement(String30_40.convertString(src.getNameElement())); 043 if (src.hasComment()) 044 tgt.setCommentElement(String30_40.convertString(src.getCommentElement())); 045 if (src.hasExtraDetails()) 046 tgt.setExtraDetails(src.getExtraDetails()); 047 if (src.hasPhoto()) 048 tgt.setPhoto(Attachment30_40.convertAttachment(src.getPhoto())); 049 for (org.hl7.fhir.r4.model.ContactPoint t : src.getTelecom()) 050 tgt.addTelecom(ContactPoint30_40.convertContactPoint(t)); 051 for (org.hl7.fhir.r4.model.Reference t : src.getCoverageArea()) 052 tgt.addCoverageArea(Reference30_40.convertReference(t)); 053 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getServiceProvisionCode()) 054 tgt.addServiceProvisionCode(CodeableConcept30_40.convertCodeableConcept(t)); 055 if (src.hasEligibility()) { 056 tgt.setEligibility(CodeableConcept30_40.convertCodeableConcept(src.getEligibilityFirstRep().getCode())); 057 if (src.getEligibilityFirstRep().hasComment()) 058 tgt.setEligibilityNoteElement(String30_40.convertString(src.getCommentElement())); 059 } 060 for (CodeableConcept t : src.getProgram()) tgt.addProgramName(t.getText()); 061 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getCharacteristic()) 062 tgt.addCharacteristic(CodeableConcept30_40.convertCodeableConcept(t)); 063 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getReferralMethod()) 064 tgt.addReferralMethod(CodeableConcept30_40.convertCodeableConcept(t)); 065 if (src.hasAppointmentRequired()) 066 tgt.setAppointmentRequiredElement(Boolean30_40.convertBoolean(src.getAppointmentRequiredElement())); 067 for (org.hl7.fhir.r4.model.HealthcareService.HealthcareServiceAvailableTimeComponent t : src.getAvailableTime()) 068 tgt.addAvailableTime(convertHealthcareServiceAvailableTimeComponent(t)); 069 for (org.hl7.fhir.r4.model.HealthcareService.HealthcareServiceNotAvailableComponent t : src.getNotAvailable()) 070 tgt.addNotAvailable(convertHealthcareServiceNotAvailableComponent(t)); 071 if (src.hasAvailabilityExceptions()) 072 tgt.setAvailabilityExceptionsElement(String30_40.convertString(src.getAvailabilityExceptionsElement())); 073 for (org.hl7.fhir.r4.model.Reference t : src.getEndpoint()) tgt.addEndpoint(Reference30_40.convertReference(t)); 074 return tgt; 075 } 076 077 public static org.hl7.fhir.r4.model.HealthcareService convertHealthcareService(org.hl7.fhir.dstu3.model.HealthcareService src) throws FHIRException { 078 if (src == null) 079 return null; 080 org.hl7.fhir.r4.model.HealthcareService tgt = new org.hl7.fhir.r4.model.HealthcareService(); 081 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt); 082 for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier()) 083 tgt.addIdentifier(Identifier30_40.convertIdentifier(t)); 084 if (src.hasActive()) 085 tgt.setActiveElement(Boolean30_40.convertBoolean(src.getActiveElement())); 086 if (src.hasProvidedBy()) 087 tgt.setProvidedBy(Reference30_40.convertReference(src.getProvidedBy())); 088 if (src.hasCategory()) 089 tgt.addCategory(CodeableConcept30_40.convertCodeableConcept(src.getCategory())); 090 for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getType()) 091 tgt.addType(CodeableConcept30_40.convertCodeableConcept(t)); 092 for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getSpecialty()) 093 tgt.addSpecialty(CodeableConcept30_40.convertCodeableConcept(t)); 094 for (org.hl7.fhir.dstu3.model.Reference t : src.getLocation()) tgt.addLocation(Reference30_40.convertReference(t)); 095 if (src.hasName()) 096 tgt.setNameElement(String30_40.convertString(src.getNameElement())); 097 if (src.hasComment()) 098 tgt.setCommentElement(String30_40.convertString(src.getCommentElement())); 099 if (src.hasExtraDetails()) 100 tgt.setExtraDetails(src.getExtraDetails()); 101 if (src.hasPhoto()) 102 tgt.setPhoto(Attachment30_40.convertAttachment(src.getPhoto())); 103 for (org.hl7.fhir.dstu3.model.ContactPoint t : src.getTelecom()) 104 tgt.addTelecom(ContactPoint30_40.convertContactPoint(t)); 105 for (org.hl7.fhir.dstu3.model.Reference t : src.getCoverageArea()) 106 tgt.addCoverageArea(Reference30_40.convertReference(t)); 107 for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getServiceProvisionCode()) 108 tgt.addServiceProvisionCode(CodeableConcept30_40.convertCodeableConcept(t)); 109 if (src.hasEligibility() || src.hasEligibilityNote()) { 110 HealthcareServiceEligibilityComponent t = tgt.addEligibility(); 111 t.setCode(CodeableConcept30_40.convertCodeableConcept(src.getEligibility())); 112 if (src.hasEligibilityNote()) 113 t.setComment(src.getEligibilityNote()); 114 } 115 for (org.hl7.fhir.dstu3.model.StringType t : src.getProgramName()) tgt.addProgram().setText(t.getValue()); 116 for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getCharacteristic()) 117 tgt.addCharacteristic(CodeableConcept30_40.convertCodeableConcept(t)); 118 for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getReferralMethod()) 119 tgt.addReferralMethod(CodeableConcept30_40.convertCodeableConcept(t)); 120 if (src.hasAppointmentRequired()) 121 tgt.setAppointmentRequiredElement(Boolean30_40.convertBoolean(src.getAppointmentRequiredElement())); 122 for (org.hl7.fhir.dstu3.model.HealthcareService.HealthcareServiceAvailableTimeComponent t : src.getAvailableTime()) 123 tgt.addAvailableTime(convertHealthcareServiceAvailableTimeComponent(t)); 124 for (org.hl7.fhir.dstu3.model.HealthcareService.HealthcareServiceNotAvailableComponent t : src.getNotAvailable()) 125 tgt.addNotAvailable(convertHealthcareServiceNotAvailableComponent(t)); 126 if (src.hasAvailabilityExceptions()) 127 tgt.setAvailabilityExceptionsElement(String30_40.convertString(src.getAvailabilityExceptionsElement())); 128 for (org.hl7.fhir.dstu3.model.Reference t : src.getEndpoint()) tgt.addEndpoint(Reference30_40.convertReference(t)); 129 return tgt; 130 } 131 132 public static org.hl7.fhir.dstu3.model.HealthcareService.HealthcareServiceAvailableTimeComponent convertHealthcareServiceAvailableTimeComponent(org.hl7.fhir.r4.model.HealthcareService.HealthcareServiceAvailableTimeComponent src) throws FHIRException { 133 if (src == null) 134 return null; 135 org.hl7.fhir.dstu3.model.HealthcareService.HealthcareServiceAvailableTimeComponent tgt = new org.hl7.fhir.dstu3.model.HealthcareService.HealthcareServiceAvailableTimeComponent(); 136 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt); 137 tgt.setDaysOfWeek(src.getDaysOfWeek().stream() 138 .map(HealthcareService30_40::convertDaysOfWeek) 139 .collect(Collectors.toList())); 140 if (src.hasAllDay()) 141 tgt.setAllDayElement(Boolean30_40.convertBoolean(src.getAllDayElement())); 142 if (src.hasAvailableStartTime()) 143 tgt.setAvailableStartTimeElement(Time30_40.convertTime(src.getAvailableStartTimeElement())); 144 if (src.hasAvailableEndTime()) 145 tgt.setAvailableEndTimeElement(Time30_40.convertTime(src.getAvailableEndTimeElement())); 146 return tgt; 147 } 148 149 public static org.hl7.fhir.r4.model.HealthcareService.HealthcareServiceAvailableTimeComponent convertHealthcareServiceAvailableTimeComponent(org.hl7.fhir.dstu3.model.HealthcareService.HealthcareServiceAvailableTimeComponent src) throws FHIRException { 150 if (src == null) 151 return null; 152 org.hl7.fhir.r4.model.HealthcareService.HealthcareServiceAvailableTimeComponent tgt = new org.hl7.fhir.r4.model.HealthcareService.HealthcareServiceAvailableTimeComponent(); 153 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt); 154 tgt.setDaysOfWeek(src.getDaysOfWeek().stream() 155 .map(HealthcareService30_40::convertDaysOfWeek) 156 .collect(Collectors.toList())); 157 if (src.hasAllDay()) 158 tgt.setAllDayElement(Boolean30_40.convertBoolean(src.getAllDayElement())); 159 if (src.hasAvailableStartTime()) 160 tgt.setAvailableStartTimeElement(Time30_40.convertTime(src.getAvailableStartTimeElement())); 161 if (src.hasAvailableEndTime()) 162 tgt.setAvailableEndTimeElement(Time30_40.convertTime(src.getAvailableEndTimeElement())); 163 return tgt; 164 } 165 166 public static org.hl7.fhir.r4.model.HealthcareService.HealthcareServiceNotAvailableComponent convertHealthcareServiceNotAvailableComponent(org.hl7.fhir.dstu3.model.HealthcareService.HealthcareServiceNotAvailableComponent src) throws FHIRException { 167 if (src == null) 168 return null; 169 org.hl7.fhir.r4.model.HealthcareService.HealthcareServiceNotAvailableComponent tgt = new org.hl7.fhir.r4.model.HealthcareService.HealthcareServiceNotAvailableComponent(); 170 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt); 171 if (src.hasDescription()) 172 tgt.setDescriptionElement(String30_40.convertString(src.getDescriptionElement())); 173 if (src.hasDuring()) 174 tgt.setDuring(Period30_40.convertPeriod(src.getDuring())); 175 return tgt; 176 } 177 178 public static org.hl7.fhir.dstu3.model.HealthcareService.HealthcareServiceNotAvailableComponent convertHealthcareServiceNotAvailableComponent(org.hl7.fhir.r4.model.HealthcareService.HealthcareServiceNotAvailableComponent src) throws FHIRException { 179 if (src == null) 180 return null; 181 org.hl7.fhir.dstu3.model.HealthcareService.HealthcareServiceNotAvailableComponent tgt = new org.hl7.fhir.dstu3.model.HealthcareService.HealthcareServiceNotAvailableComponent(); 182 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt); 183 if (src.hasDescription()) 184 tgt.setDescriptionElement(String30_40.convertString(src.getDescriptionElement())); 185 if (src.hasDuring()) 186 tgt.setDuring(Period30_40.convertPeriod(src.getDuring())); 187 return tgt; 188 } 189 190 191 static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.HealthcareService.DaysOfWeek> convertDaysOfWeek(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.HealthcareService.DaysOfWeek> src) throws FHIRException { 192 if (src == null || src.isEmpty()) 193 return null; 194 Enumeration<HealthcareService.DaysOfWeek> tgt = new Enumeration<>(new HealthcareService.DaysOfWeekEnumFactory()); 195 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt); 196 if (src.getValue() == null) { 197 tgt.setValue(null); 198 } else { 199 switch (src.getValue()) { 200 case MON: 201 tgt.setValue(HealthcareService.DaysOfWeek.MON); 202 break; 203 case TUE: 204 tgt.setValue(HealthcareService.DaysOfWeek.TUE); 205 break; 206 case WED: 207 tgt.setValue(HealthcareService.DaysOfWeek.WED); 208 break; 209 case THU: 210 tgt.setValue(HealthcareService.DaysOfWeek.THU); 211 break; 212 case FRI: 213 tgt.setValue(HealthcareService.DaysOfWeek.FRI); 214 break; 215 case SAT: 216 tgt.setValue(HealthcareService.DaysOfWeek.SAT); 217 break; 218 case SUN: 219 tgt.setValue(HealthcareService.DaysOfWeek.SUN); 220 break; 221 default: 222 tgt.setValue(HealthcareService.DaysOfWeek.NULL); 223 break; 224 } 225 } 226 return tgt; 227 } 228 229 static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.HealthcareService.DaysOfWeek> convertDaysOfWeek(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.HealthcareService.DaysOfWeek> src) throws FHIRException { 230 if (src == null || src.isEmpty()) 231 return null; 232 org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.HealthcareService.DaysOfWeek> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.HealthcareService.DaysOfWeekEnumFactory()); 233 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt); 234 if (src.getValue() == null) { 235 tgt.setValue(null); 236 } else { 237 switch (src.getValue()) { 238 case MON: 239 tgt.setValue(org.hl7.fhir.dstu3.model.HealthcareService.DaysOfWeek.MON); 240 break; 241 case TUE: 242 tgt.setValue(org.hl7.fhir.dstu3.model.HealthcareService.DaysOfWeek.TUE); 243 break; 244 case WED: 245 tgt.setValue(org.hl7.fhir.dstu3.model.HealthcareService.DaysOfWeek.WED); 246 break; 247 case THU: 248 tgt.setValue(org.hl7.fhir.dstu3.model.HealthcareService.DaysOfWeek.THU); 249 break; 250 case FRI: 251 tgt.setValue(org.hl7.fhir.dstu3.model.HealthcareService.DaysOfWeek.FRI); 252 break; 253 case SAT: 254 tgt.setValue(org.hl7.fhir.dstu3.model.HealthcareService.DaysOfWeek.SAT); 255 break; 256 case SUN: 257 tgt.setValue(org.hl7.fhir.dstu3.model.HealthcareService.DaysOfWeek.SUN); 258 break; 259 default: 260 tgt.setValue(org.hl7.fhir.dstu3.model.HealthcareService.DaysOfWeek.NULL); 261 break; 262 } 263 } 264 return tgt; 265 } 266}