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