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