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.Identifier30_50;
007import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.Period30_50;
008import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Boolean30_50;
009import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.String30_50;
010import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.UnsignedInt30_50;
011import org.hl7.fhir.dstu3.model.Enumeration;
012import org.hl7.fhir.dstu3.model.Group;
013import org.hl7.fhir.exceptions.FHIRException;
014import org.hl7.fhir.r5.model.Group.GroupMembershipBasis;
015
016public class Group30_50 {
017
018  public static org.hl7.fhir.r5.model.Group convertGroup(org.hl7.fhir.dstu3.model.Group src) throws FHIRException {
019    if (src == null)
020      return null;
021    org.hl7.fhir.r5.model.Group tgt = new org.hl7.fhir.r5.model.Group();
022    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyDomainResource(src, tgt);
023    for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier())
024      tgt.addIdentifier(Identifier30_50.convertIdentifier(t));
025    if (src.hasActive())
026      tgt.setActiveElement(Boolean30_50.convertBoolean(src.getActiveElement()));
027    if (src.hasType())
028      tgt.setTypeElement(convertGroupType(src.getTypeElement()));
029    if (src.hasActual())
030      tgt.setMembership(src.getActual() ? GroupMembershipBasis.ENUMERATED : GroupMembershipBasis.DEFINITIONAL);
031    if (src.hasCode())
032      tgt.setCode(CodeableConcept30_50.convertCodeableConcept(src.getCode()));
033    if (src.hasName())
034      tgt.setNameElement(String30_50.convertString(src.getNameElement()));
035    if (src.hasQuantity())
036      tgt.setQuantityElement(UnsignedInt30_50.convertUnsignedInt(src.getQuantityElement()));
037    for (org.hl7.fhir.dstu3.model.Group.GroupCharacteristicComponent t : src.getCharacteristic())
038      tgt.addCharacteristic(convertGroupCharacteristicComponent(t));
039    for (org.hl7.fhir.dstu3.model.Group.GroupMemberComponent t : src.getMember())
040      tgt.addMember(convertGroupMemberComponent(t));
041    return tgt;
042  }
043
044  public static org.hl7.fhir.dstu3.model.Group convertGroup(org.hl7.fhir.r5.model.Group src) throws FHIRException {
045    if (src == null)
046      return null;
047    org.hl7.fhir.dstu3.model.Group tgt = new org.hl7.fhir.dstu3.model.Group();
048    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyDomainResource(src, tgt);
049    for (org.hl7.fhir.r5.model.Identifier t : src.getIdentifier())
050      tgt.addIdentifier(Identifier30_50.convertIdentifier(t));
051    if (src.hasActive())
052      tgt.setActiveElement(Boolean30_50.convertBoolean(src.getActiveElement()));
053    if (src.hasType())
054      tgt.setTypeElement(convertGroupType(src.getTypeElement()));
055    if (src.hasMembership())
056      tgt.setActual(src.getMembership() == GroupMembershipBasis.ENUMERATED);
057    if (src.hasCode())
058      tgt.setCode(CodeableConcept30_50.convertCodeableConcept(src.getCode()));
059    if (src.hasName())
060      tgt.setNameElement(String30_50.convertString(src.getNameElement()));
061    if (src.hasQuantity())
062      tgt.setQuantityElement(UnsignedInt30_50.convertUnsignedInt(src.getQuantityElement()));
063    for (org.hl7.fhir.r5.model.Group.GroupCharacteristicComponent t : src.getCharacteristic())
064      tgt.addCharacteristic(convertGroupCharacteristicComponent(t));
065    for (org.hl7.fhir.r5.model.Group.GroupMemberComponent t : src.getMember())
066      tgt.addMember(convertGroupMemberComponent(t));
067    return tgt;
068  }
069
070  public static org.hl7.fhir.r5.model.Group.GroupCharacteristicComponent convertGroupCharacteristicComponent(org.hl7.fhir.dstu3.model.Group.GroupCharacteristicComponent src) throws FHIRException {
071    if (src == null)
072      return null;
073    org.hl7.fhir.r5.model.Group.GroupCharacteristicComponent tgt = new org.hl7.fhir.r5.model.Group.GroupCharacteristicComponent();
074    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
075    if (src.hasCode())
076      tgt.setCode(CodeableConcept30_50.convertCodeableConcept(src.getCode()));
077    if (src.hasValue())
078      tgt.setValue(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getValue()));
079    if (src.hasExclude())
080      tgt.setExcludeElement(Boolean30_50.convertBoolean(src.getExcludeElement()));
081    if (src.hasPeriod())
082      tgt.setPeriod(Period30_50.convertPeriod(src.getPeriod()));
083    return tgt;
084  }
085
086  public static org.hl7.fhir.dstu3.model.Group.GroupCharacteristicComponent convertGroupCharacteristicComponent(org.hl7.fhir.r5.model.Group.GroupCharacteristicComponent src) throws FHIRException {
087    if (src == null)
088      return null;
089    org.hl7.fhir.dstu3.model.Group.GroupCharacteristicComponent tgt = new org.hl7.fhir.dstu3.model.Group.GroupCharacteristicComponent();
090    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
091    if (src.hasCode())
092      tgt.setCode(CodeableConcept30_50.convertCodeableConcept(src.getCode()));
093    if (src.hasValue())
094      tgt.setValue(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getValue()));
095    if (src.hasExclude())
096      tgt.setExcludeElement(Boolean30_50.convertBoolean(src.getExcludeElement()));
097    if (src.hasPeriod())
098      tgt.setPeriod(Period30_50.convertPeriod(src.getPeriod()));
099    return tgt;
100  }
101
102  public static org.hl7.fhir.dstu3.model.Group.GroupMemberComponent convertGroupMemberComponent(org.hl7.fhir.r5.model.Group.GroupMemberComponent src) throws FHIRException {
103    if (src == null)
104      return null;
105    org.hl7.fhir.dstu3.model.Group.GroupMemberComponent tgt = new org.hl7.fhir.dstu3.model.Group.GroupMemberComponent();
106    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
107    if (src.hasEntity())
108      tgt.setEntity(Reference30_50.convertReference(src.getEntity()));
109    if (src.hasPeriod())
110      tgt.setPeriod(Period30_50.convertPeriod(src.getPeriod()));
111    if (src.hasInactive())
112      tgt.setInactiveElement(Boolean30_50.convertBoolean(src.getInactiveElement()));
113    return tgt;
114  }
115
116  public static org.hl7.fhir.r5.model.Group.GroupMemberComponent convertGroupMemberComponent(org.hl7.fhir.dstu3.model.Group.GroupMemberComponent src) throws FHIRException {
117    if (src == null)
118      return null;
119    org.hl7.fhir.r5.model.Group.GroupMemberComponent tgt = new org.hl7.fhir.r5.model.Group.GroupMemberComponent();
120    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
121    if (src.hasEntity())
122      tgt.setEntity(Reference30_50.convertReference(src.getEntity()));
123    if (src.hasPeriod())
124      tgt.setPeriod(Period30_50.convertPeriod(src.getPeriod()));
125    if (src.hasInactive())
126      tgt.setInactiveElement(Boolean30_50.convertBoolean(src.getInactiveElement()));
127    return tgt;
128  }
129
130  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Group.GroupType> convertGroupType(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Group.GroupType> src) throws FHIRException {
131      if (src == null || src.isEmpty())
132          return null;
133      Enumeration<Group.GroupType> tgt = new Enumeration<>(new Group.GroupTypeEnumFactory());
134      ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
135      if (src.getValue() == null) {
136          tgt.setValue(null);
137      } else {
138          switch (src.getValue()) {
139              case PERSON:
140                  tgt.setValue(Group.GroupType.PERSON);
141                  break;
142              case ANIMAL:
143                  tgt.setValue(Group.GroupType.ANIMAL);
144                  break;
145              case PRACTITIONER:
146                  tgt.setValue(Group.GroupType.PRACTITIONER);
147                  break;
148              case DEVICE:
149                  tgt.setValue(Group.GroupType.DEVICE);
150                  break;
151              default:
152                  tgt.setValue(Group.GroupType.NULL);
153                  break;
154          }
155      }
156      return tgt;
157  }
158
159  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Group.GroupType> convertGroupType(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Group.GroupType> src) throws FHIRException {
160      if (src == null || src.isEmpty())
161          return null;
162      org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Group.GroupType> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.Group.GroupTypeEnumFactory());
163      ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
164      if (src.getValue() == null) {
165          tgt.setValue(null);
166      } else {
167          switch (src.getValue()) {
168              case PERSON:
169                  tgt.setValue(org.hl7.fhir.r5.model.Group.GroupType.PERSON);
170                  break;
171              case ANIMAL:
172                  tgt.setValue(org.hl7.fhir.r5.model.Group.GroupType.ANIMAL);
173                  break;
174              case PRACTITIONER:
175                  tgt.setValue(org.hl7.fhir.r5.model.Group.GroupType.PRACTITIONER);
176                  break;
177              case DEVICE:
178                  tgt.setValue(org.hl7.fhir.r5.model.Group.GroupType.DEVICE);
179                  break;
180              default:
181                  tgt.setValue(org.hl7.fhir.r5.model.Group.GroupType.NULL);
182                  break;
183          }
184      }
185      return tgt;
186  }
187}