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.CodeableConcept30_40;
008import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.ContactPoint30_40;
009import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Identifier30_40;
010import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Period30_40;
011import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.Boolean30_40;
012import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.String30_40;
013import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.Time30_40;
014import org.hl7.fhir.exceptions.FHIRException;
015import org.hl7.fhir.r4.model.PractitionerRole;
016
017public class PractitionerRole30_40 {
018
019  public static org.hl7.fhir.r4.model.PractitionerRole convertPractitionerRole(org.hl7.fhir.dstu3.model.PractitionerRole src) throws FHIRException {
020    if (src == null)
021      return null;
022    org.hl7.fhir.r4.model.PractitionerRole tgt = new org.hl7.fhir.r4.model.PractitionerRole();
023    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt);
024    for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier())
025      tgt.addIdentifier(Identifier30_40.convertIdentifier(t));
026    if (src.hasActive())
027      tgt.setActiveElement(Boolean30_40.convertBoolean(src.getActiveElement()));
028    if (src.hasPeriod())
029      tgt.setPeriod(Period30_40.convertPeriod(src.getPeriod()));
030    if (src.hasPractitioner())
031      tgt.setPractitioner(Reference30_40.convertReference(src.getPractitioner()));
032    if (src.hasOrganization())
033      tgt.setOrganization(Reference30_40.convertReference(src.getOrganization()));
034    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getCode())
035      tgt.addCode(CodeableConcept30_40.convertCodeableConcept(t));
036    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getSpecialty())
037      tgt.addSpecialty(CodeableConcept30_40.convertCodeableConcept(t));
038    for (org.hl7.fhir.dstu3.model.Reference t : src.getLocation()) tgt.addLocation(Reference30_40.convertReference(t));
039    for (org.hl7.fhir.dstu3.model.Reference t : src.getHealthcareService())
040      tgt.addHealthcareService(Reference30_40.convertReference(t));
041    for (org.hl7.fhir.dstu3.model.ContactPoint t : src.getTelecom())
042      tgt.addTelecom(ContactPoint30_40.convertContactPoint(t));
043    for (org.hl7.fhir.dstu3.model.PractitionerRole.PractitionerRoleAvailableTimeComponent t : src.getAvailableTime())
044      tgt.addAvailableTime(convertPractitionerRoleAvailableTimeComponent(t));
045    for (org.hl7.fhir.dstu3.model.PractitionerRole.PractitionerRoleNotAvailableComponent t : src.getNotAvailable())
046      tgt.addNotAvailable(convertPractitionerRoleNotAvailableComponent(t));
047    if (src.hasAvailabilityExceptions())
048      tgt.setAvailabilityExceptionsElement(String30_40.convertString(src.getAvailabilityExceptionsElement()));
049    for (org.hl7.fhir.dstu3.model.Reference t : src.getEndpoint()) tgt.addEndpoint(Reference30_40.convertReference(t));
050    return tgt;
051  }
052
053  public static org.hl7.fhir.dstu3.model.PractitionerRole convertPractitionerRole(org.hl7.fhir.r4.model.PractitionerRole src) throws FHIRException {
054    if (src == null)
055      return null;
056    org.hl7.fhir.dstu3.model.PractitionerRole tgt = new org.hl7.fhir.dstu3.model.PractitionerRole();
057    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt);
058    for (org.hl7.fhir.r4.model.Identifier t : src.getIdentifier())
059      tgt.addIdentifier(Identifier30_40.convertIdentifier(t));
060    if (src.hasActive())
061      tgt.setActiveElement(Boolean30_40.convertBoolean(src.getActiveElement()));
062    if (src.hasPeriod())
063      tgt.setPeriod(Period30_40.convertPeriod(src.getPeriod()));
064    if (src.hasPractitioner())
065      tgt.setPractitioner(Reference30_40.convertReference(src.getPractitioner()));
066    if (src.hasOrganization())
067      tgt.setOrganization(Reference30_40.convertReference(src.getOrganization()));
068    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getCode())
069      tgt.addCode(CodeableConcept30_40.convertCodeableConcept(t));
070    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getSpecialty())
071      tgt.addSpecialty(CodeableConcept30_40.convertCodeableConcept(t));
072    for (org.hl7.fhir.r4.model.Reference t : src.getLocation()) tgt.addLocation(Reference30_40.convertReference(t));
073    for (org.hl7.fhir.r4.model.Reference t : src.getHealthcareService())
074      tgt.addHealthcareService(Reference30_40.convertReference(t));
075    for (org.hl7.fhir.r4.model.ContactPoint t : src.getTelecom())
076      tgt.addTelecom(ContactPoint30_40.convertContactPoint(t));
077    for (org.hl7.fhir.r4.model.PractitionerRole.PractitionerRoleAvailableTimeComponent t : src.getAvailableTime())
078      tgt.addAvailableTime(convertPractitionerRoleAvailableTimeComponent(t));
079    for (org.hl7.fhir.r4.model.PractitionerRole.PractitionerRoleNotAvailableComponent t : src.getNotAvailable())
080      tgt.addNotAvailable(convertPractitionerRoleNotAvailableComponent(t));
081    if (src.hasAvailabilityExceptions())
082      tgt.setAvailabilityExceptionsElement(String30_40.convertString(src.getAvailabilityExceptionsElement()));
083    for (org.hl7.fhir.r4.model.Reference t : src.getEndpoint()) tgt.addEndpoint(Reference30_40.convertReference(t));
084    return tgt;
085  }
086
087  public static org.hl7.fhir.dstu3.model.PractitionerRole.PractitionerRoleAvailableTimeComponent convertPractitionerRoleAvailableTimeComponent(org.hl7.fhir.r4.model.PractitionerRole.PractitionerRoleAvailableTimeComponent src) throws FHIRException {
088    if (src == null)
089      return null;
090    org.hl7.fhir.dstu3.model.PractitionerRole.PractitionerRoleAvailableTimeComponent tgt = new org.hl7.fhir.dstu3.model.PractitionerRole.PractitionerRoleAvailableTimeComponent();
091    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
092    tgt.setDaysOfWeek(src.getDaysOfWeek().stream()
093      .map(PractitionerRole30_40::convertDaysOfWeek)
094      .collect(Collectors.toList()));
095    if (src.hasAllDay())
096      tgt.setAllDayElement(Boolean30_40.convertBoolean(src.getAllDayElement()));
097    if (src.hasAvailableStartTime())
098      tgt.setAvailableStartTimeElement(Time30_40.convertTime(src.getAvailableStartTimeElement()));
099    if (src.hasAvailableEndTime())
100      tgt.setAvailableEndTimeElement(Time30_40.convertTime(src.getAvailableEndTimeElement()));
101    return tgt;
102  }
103
104  public static org.hl7.fhir.r4.model.PractitionerRole.PractitionerRoleAvailableTimeComponent convertPractitionerRoleAvailableTimeComponent(org.hl7.fhir.dstu3.model.PractitionerRole.PractitionerRoleAvailableTimeComponent src) throws FHIRException {
105    if (src == null)
106      return null;
107    org.hl7.fhir.r4.model.PractitionerRole.PractitionerRoleAvailableTimeComponent tgt = new org.hl7.fhir.r4.model.PractitionerRole.PractitionerRoleAvailableTimeComponent();
108    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
109    tgt.setDaysOfWeek(src.getDaysOfWeek().stream()
110      .map(PractitionerRole30_40::convertDaysOfWeek)
111      .collect(Collectors.toList()));
112    if (src.hasAllDay())
113      tgt.setAllDayElement(Boolean30_40.convertBoolean(src.getAllDayElement()));
114    if (src.hasAvailableStartTime())
115      tgt.setAvailableStartTimeElement(Time30_40.convertTime(src.getAvailableStartTimeElement()));
116    if (src.hasAvailableEndTime())
117      tgt.setAvailableEndTimeElement(Time30_40.convertTime(src.getAvailableEndTimeElement()));
118    return tgt;
119  }
120
121  public static org.hl7.fhir.r4.model.PractitionerRole.PractitionerRoleNotAvailableComponent convertPractitionerRoleNotAvailableComponent(org.hl7.fhir.dstu3.model.PractitionerRole.PractitionerRoleNotAvailableComponent src) throws FHIRException {
122    if (src == null)
123      return null;
124    org.hl7.fhir.r4.model.PractitionerRole.PractitionerRoleNotAvailableComponent tgt = new org.hl7.fhir.r4.model.PractitionerRole.PractitionerRoleNotAvailableComponent();
125    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
126    if (src.hasDescription())
127      tgt.setDescriptionElement(String30_40.convertString(src.getDescriptionElement()));
128    if (src.hasDuring())
129      tgt.setDuring(Period30_40.convertPeriod(src.getDuring()));
130    return tgt;
131  }
132
133  public static org.hl7.fhir.dstu3.model.PractitionerRole.PractitionerRoleNotAvailableComponent convertPractitionerRoleNotAvailableComponent(org.hl7.fhir.r4.model.PractitionerRole.PractitionerRoleNotAvailableComponent src) throws FHIRException {
134    if (src == null)
135      return null;
136    org.hl7.fhir.dstu3.model.PractitionerRole.PractitionerRoleNotAvailableComponent tgt = new org.hl7.fhir.dstu3.model.PractitionerRole.PractitionerRoleNotAvailableComponent();
137    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
138    if (src.hasDescription())
139      tgt.setDescriptionElement(String30_40.convertString(src.getDescriptionElement()));
140    if (src.hasDuring())
141      tgt.setDuring(Period30_40.convertPeriod(src.getDuring()));
142    return tgt;
143  }
144
145  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.PractitionerRole.DaysOfWeek> convertDaysOfWeek(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.PractitionerRole.DaysOfWeek> src) throws FHIRException {
146    if (src == null || src.isEmpty()) return null;
147    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.PractitionerRole.DaysOfWeek> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.PractitionerRole.DaysOfWeekEnumFactory());
148    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
149    if (src.getValue() == null) {
150    tgt.setValue(null);
151} else {
152      switch(src.getValue()) {
153        case MON:
154                    tgt.setValue(PractitionerRole.DaysOfWeek.MON);
155                    break;
156                case TUE:
157                    tgt.setValue(PractitionerRole.DaysOfWeek.TUE);
158                    break;
159                case WED:
160                    tgt.setValue(PractitionerRole.DaysOfWeek.WED);
161                    break;
162                case THU:
163                    tgt.setValue(PractitionerRole.DaysOfWeek.THU);
164                    break;
165                case FRI:
166                    tgt.setValue(PractitionerRole.DaysOfWeek.FRI);
167                    break;
168                case SAT:
169                    tgt.setValue(PractitionerRole.DaysOfWeek.SAT);
170                    break;
171                case SUN:
172                    tgt.setValue(PractitionerRole.DaysOfWeek.SUN);
173                    break;
174                default:
175                    tgt.setValue(PractitionerRole.DaysOfWeek.NULL);
176                    break;
177       }
178}
179    return tgt;
180  }
181
182  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.PractitionerRole.DaysOfWeek> convertDaysOfWeek(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.PractitionerRole.DaysOfWeek> src) throws FHIRException {
183    if (src == null || src.isEmpty()) return null;
184    org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.PractitionerRole.DaysOfWeek> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.PractitionerRole.DaysOfWeekEnumFactory());
185    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
186    if (src.getValue() == null) {
187    tgt.setValue(null);
188} else {
189      switch(src.getValue()) {
190        case MON:
191                    tgt.setValue(org.hl7.fhir.dstu3.model.PractitionerRole.DaysOfWeek.MON);
192                    break;
193                case TUE:
194                    tgt.setValue(org.hl7.fhir.dstu3.model.PractitionerRole.DaysOfWeek.TUE);
195                    break;
196                case WED:
197                    tgt.setValue(org.hl7.fhir.dstu3.model.PractitionerRole.DaysOfWeek.WED);
198                    break;
199                case THU:
200                    tgt.setValue(org.hl7.fhir.dstu3.model.PractitionerRole.DaysOfWeek.THU);
201                    break;
202                case FRI:
203                    tgt.setValue(org.hl7.fhir.dstu3.model.PractitionerRole.DaysOfWeek.FRI);
204                    break;
205                case SAT:
206                    tgt.setValue(org.hl7.fhir.dstu3.model.PractitionerRole.DaysOfWeek.SAT);
207                    break;
208                case SUN:
209                    tgt.setValue(org.hl7.fhir.dstu3.model.PractitionerRole.DaysOfWeek.SUN);
210                    break;
211                default:
212                    tgt.setValue(org.hl7.fhir.dstu3.model.PractitionerRole.DaysOfWeek.NULL);
213                    break;
214       }
215}
216    return tgt;
217  }
218}