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