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