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