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.ContactDetail30_50;
005import org.hl7.fhir.convertors.conv30_50.datatypes30_50.UsageContext30_50;
006import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Boolean30_50;
007import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Code30_50;
008import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.DateTime30_50;
009import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.MarkDown30_50;
010import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.String30_50;
011import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Uri30_50;
012import org.hl7.fhir.dstu3.model.CompartmentDefinition;
013import org.hl7.fhir.dstu3.model.Enumeration;
014import org.hl7.fhir.exceptions.FHIRException;
015import org.hl7.fhir.r5.model.Enumerations;
016
017public class CompartmentDefinition30_50 {
018
019  public static org.hl7.fhir.r5.model.CompartmentDefinition convertCompartmentDefinition(org.hl7.fhir.dstu3.model.CompartmentDefinition src) throws FHIRException {
020    if (src == null)
021      return null;
022    org.hl7.fhir.r5.model.CompartmentDefinition tgt = new org.hl7.fhir.r5.model.CompartmentDefinition();
023    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyDomainResource(src, tgt);
024    if (src.hasUrl())
025      tgt.setUrlElement(Uri30_50.convertUri(src.getUrlElement()));
026    if (src.hasName())
027      tgt.setNameElement(String30_50.convertString(src.getNameElement()));
028    if (src.hasTitle())
029      tgt.setTitleElement(String30_50.convertString(src.getTitleElement()));
030    if (src.hasStatus())
031      tgt.setStatusElement(Enumerations30_50.convertPublicationStatus(src.getStatusElement()));
032    if (src.hasExperimental())
033      tgt.setExperimentalElement(Boolean30_50.convertBoolean(src.getExperimentalElement()));
034    if (src.hasDate())
035      tgt.setDateElement(DateTime30_50.convertDateTime(src.getDateElement()));
036    if (src.hasPublisher())
037      tgt.setPublisherElement(String30_50.convertString(src.getPublisherElement()));
038    for (org.hl7.fhir.dstu3.model.ContactDetail t : src.getContact())
039      tgt.addContact(ContactDetail30_50.convertContactDetail(t));
040    if (src.hasDescription())
041      tgt.setDescriptionElement(MarkDown30_50.convertMarkdown(src.getDescriptionElement()));
042    if (src.hasPurpose())
043      tgt.setPurposeElement(MarkDown30_50.convertMarkdown(src.getPurposeElement()));
044    for (org.hl7.fhir.dstu3.model.UsageContext t : src.getUseContext())
045      tgt.addUseContext(UsageContext30_50.convertUsageContext(t));
046    if (src.hasCode())
047      tgt.setCodeElement(convertCompartmentType(src.getCodeElement()));
048    if (src.hasSearch())
049      tgt.setSearchElement(Boolean30_50.convertBoolean(src.getSearchElement()));
050    for (org.hl7.fhir.dstu3.model.CompartmentDefinition.CompartmentDefinitionResourceComponent t : src.getResource())
051      tgt.addResource(convertCompartmentDefinitionResourceComponent(t));
052    return tgt;
053  }
054
055  public static org.hl7.fhir.dstu3.model.CompartmentDefinition convertCompartmentDefinition(org.hl7.fhir.r5.model.CompartmentDefinition src) throws FHIRException {
056    if (src == null)
057      return null;
058    org.hl7.fhir.dstu3.model.CompartmentDefinition tgt = new org.hl7.fhir.dstu3.model.CompartmentDefinition();
059    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyDomainResource(src, tgt);
060    if (src.hasUrl())
061      tgt.setUrlElement(Uri30_50.convertUri(src.getUrlElement()));
062    if (src.hasName())
063      tgt.setNameElement(String30_50.convertString(src.getNameElement()));
064    if (src.hasTitle())
065      tgt.setTitleElement(String30_50.convertString(src.getTitleElement()));
066    if (src.hasStatus())
067      tgt.setStatusElement(Enumerations30_50.convertPublicationStatus(src.getStatusElement()));
068    if (src.hasExperimental())
069      tgt.setExperimentalElement(Boolean30_50.convertBoolean(src.getExperimentalElement()));
070    if (src.hasDate())
071      tgt.setDateElement(DateTime30_50.convertDateTime(src.getDateElement()));
072    if (src.hasPublisher())
073      tgt.setPublisherElement(String30_50.convertString(src.getPublisherElement()));
074    for (org.hl7.fhir.r5.model.ContactDetail t : src.getContact())
075      tgt.addContact(ContactDetail30_50.convertContactDetail(t));
076    if (src.hasDescription())
077      tgt.setDescriptionElement(MarkDown30_50.convertMarkdown(src.getDescriptionElement()));
078    if (src.hasPurpose())
079      tgt.setPurposeElement(MarkDown30_50.convertMarkdown(src.getPurposeElement()));
080    for (org.hl7.fhir.r5.model.UsageContext t : src.getUseContext())
081      tgt.addUseContext(UsageContext30_50.convertUsageContext(t));
082    if (src.hasCode())
083      tgt.setCodeElement(convertCompartmentType(src.getCodeElement()));
084    if (src.hasSearch())
085      tgt.setSearchElement(Boolean30_50.convertBoolean(src.getSearchElement()));
086    for (org.hl7.fhir.r5.model.CompartmentDefinition.CompartmentDefinitionResourceComponent t : src.getResource())
087      tgt.addResource(convertCompartmentDefinitionResourceComponent(t));
088    return tgt;
089  }
090
091  public static org.hl7.fhir.r5.model.CompartmentDefinition.CompartmentDefinitionResourceComponent convertCompartmentDefinitionResourceComponent(org.hl7.fhir.dstu3.model.CompartmentDefinition.CompartmentDefinitionResourceComponent src) throws FHIRException {
092    if (src == null)
093      return null;
094    org.hl7.fhir.r5.model.CompartmentDefinition.CompartmentDefinitionResourceComponent tgt = new org.hl7.fhir.r5.model.CompartmentDefinition.CompartmentDefinitionResourceComponent();
095    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
096    if (src.hasCode())
097      tgt.setCodeElement(Code30_50.convertCode(src.getCodeElement()));
098    for (org.hl7.fhir.dstu3.model.StringType t : src.getParam()) tgt.addParam(t.getValue());
099    if (src.hasDocumentation())
100      tgt.setDocumentationElement(String30_50.convertString(src.getDocumentationElement()));
101    return tgt;
102  }
103
104  public static org.hl7.fhir.dstu3.model.CompartmentDefinition.CompartmentDefinitionResourceComponent convertCompartmentDefinitionResourceComponent(org.hl7.fhir.r5.model.CompartmentDefinition.CompartmentDefinitionResourceComponent src) throws FHIRException {
105    if (src == null)
106      return null;
107    org.hl7.fhir.dstu3.model.CompartmentDefinition.CompartmentDefinitionResourceComponent tgt = new org.hl7.fhir.dstu3.model.CompartmentDefinition.CompartmentDefinitionResourceComponent();
108    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
109    if (src.hasCode())
110      tgt.setCodeElement(Code30_50.convertCode(src.getCodeElement()));
111    for (org.hl7.fhir.r5.model.StringType t : src.getParam()) tgt.addParam(t.getValue());
112    if (src.hasDocumentation())
113      tgt.setDocumentationElement(String30_50.convertString(src.getDocumentationElement()));
114    return tgt;
115  }
116
117  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.CompartmentDefinition.CompartmentType> convertCompartmentType(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.CompartmentType> src) throws FHIRException {
118      if (src == null || src.isEmpty())
119          return null;
120      Enumeration<CompartmentDefinition.CompartmentType> tgt = new Enumeration<>(new CompartmentDefinition.CompartmentTypeEnumFactory());
121      ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
122      if (src.getValue() == null) {
123          tgt.setValue(null);
124      } else {
125          switch (src.getValue()) {
126              case PATIENT:
127                  tgt.setValue(CompartmentDefinition.CompartmentType.PATIENT);
128                  break;
129              case ENCOUNTER:
130                  tgt.setValue(CompartmentDefinition.CompartmentType.ENCOUNTER);
131                  break;
132              case RELATEDPERSON:
133                  tgt.setValue(CompartmentDefinition.CompartmentType.RELATEDPERSON);
134                  break;
135              case PRACTITIONER:
136                  tgt.setValue(CompartmentDefinition.CompartmentType.PRACTITIONER);
137                  break;
138              case DEVICE:
139                  tgt.setValue(CompartmentDefinition.CompartmentType.DEVICE);
140                  break;
141              default:
142                  tgt.setValue(CompartmentDefinition.CompartmentType.NULL);
143                  break;
144          }
145      }
146      return tgt;
147  }
148
149  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.CompartmentType> convertCompartmentType(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.CompartmentDefinition.CompartmentType> src) throws FHIRException {
150      if (src == null || src.isEmpty())
151          return null;
152      org.hl7.fhir.r5.model.Enumeration<Enumerations.CompartmentType> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new Enumerations.CompartmentTypeEnumFactory());
153      ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
154      if (src.getValue() == null) {
155          tgt.setValue(null);
156      } else {
157          switch (src.getValue()) {
158              case PATIENT:
159                  tgt.setValue(Enumerations.CompartmentType.PATIENT);
160                  break;
161              case ENCOUNTER:
162                  tgt.setValue(Enumerations.CompartmentType.ENCOUNTER);
163                  break;
164              case RELATEDPERSON:
165                  tgt.setValue(Enumerations.CompartmentType.RELATEDPERSON);
166                  break;
167              case PRACTITIONER:
168                  tgt.setValue(Enumerations.CompartmentType.PRACTITIONER);
169                  break;
170              case DEVICE:
171                  tgt.setValue(Enumerations.CompartmentType.DEVICE);
172                  break;
173              default:
174                  tgt.setValue(Enumerations.CompartmentType.NULL);
175                  break;
176          }
177      }
178      return tgt;
179  }
180}