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