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