001package org.hl7.fhir.convertors.conv14_50.resources14_50;
002
003import org.hl7.fhir.convertors.context.ConversionContext14_50;
004import org.hl7.fhir.convertors.conv14_50.datatypes14_50.complextypes14_50.ContactPoint14_50;
005import org.hl7.fhir.convertors.conv14_50.datatypes14_50.primitivetypes14_50.Boolean14_50;
006import org.hl7.fhir.convertors.conv14_50.datatypes14_50.primitivetypes14_50.Code14_50;
007import org.hl7.fhir.convertors.conv14_50.datatypes14_50.primitivetypes14_50.DateTime14_50;
008import org.hl7.fhir.convertors.conv14_50.datatypes14_50.primitivetypes14_50.String14_50;
009import org.hl7.fhir.convertors.conv14_50.datatypes14_50.primitivetypes14_50.Uri14_50;
010import org.hl7.fhir.dstu2016may.model.CompartmentDefinition;
011import org.hl7.fhir.exceptions.FHIRException;
012import org.hl7.fhir.r5.model.Enumeration;
013import org.hl7.fhir.r5.model.Enumerations;
014
015public class CompartmentDefinition14_50 {
016
017  public static org.hl7.fhir.dstu2016may.model.CompartmentDefinition convertCompartmentDefinition(org.hl7.fhir.r5.model.CompartmentDefinition src) throws FHIRException {
018    if (src == null || src.isEmpty())
019      return null;
020    org.hl7.fhir.dstu2016may.model.CompartmentDefinition tgt = new org.hl7.fhir.dstu2016may.model.CompartmentDefinition();
021    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyDomainResource(src, tgt);
022    if (src.hasUrlElement())
023      tgt.setUrlElement(Uri14_50.convertUri(src.getUrlElement()));
024    if (src.hasNameElement())
025      tgt.setNameElement(String14_50.convertString(src.getNameElement()));
026    if (src.hasStatus())
027      tgt.setStatusElement(Enumerations14_50.convertConformanceResourceStatus(src.getStatusElement()));
028    if (src.hasExperimental())
029      tgt.setExperimentalElement(Boolean14_50.convertBoolean(src.getExperimentalElement()));
030    if (src.hasPublisher())
031      tgt.setPublisherElement(String14_50.convertString(src.getPublisherElement()));
032    for (org.hl7.fhir.r5.model.ContactDetail t : src.getContact())
033      tgt.addContact(convertCompartmentDefinitionContactComponent(t));
034    if (src.hasDate())
035      tgt.setDateElement(DateTime14_50.convertDateTime(src.getDateElement()));
036    if (src.hasDescription())
037      tgt.setDescription(src.getDescription());
038    if (src.hasPurpose())
039      tgt.setRequirements(src.getPurpose());
040    if (src.hasCode())
041      tgt.setCodeElement(convertCompartmentType(src.getCodeElement()));
042    if (src.hasSearchElement())
043      tgt.setSearchElement(Boolean14_50.convertBoolean(src.getSearchElement()));
044    for (org.hl7.fhir.r5.model.CompartmentDefinition.CompartmentDefinitionResourceComponent t : src.getResource())
045      tgt.addResource(convertCompartmentDefinitionResourceComponent(t));
046    return tgt;
047  }
048
049  public static org.hl7.fhir.r5.model.CompartmentDefinition convertCompartmentDefinition(org.hl7.fhir.dstu2016may.model.CompartmentDefinition src) throws FHIRException {
050    if (src == null || src.isEmpty())
051      return null;
052    org.hl7.fhir.r5.model.CompartmentDefinition tgt = new org.hl7.fhir.r5.model.CompartmentDefinition();
053    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyDomainResource(src, tgt);
054    if (src.hasUrlElement())
055      tgt.setUrlElement(Uri14_50.convertUri(src.getUrlElement()));
056    if (src.hasNameElement())
057      tgt.setNameElement(String14_50.convertString(src.getNameElement()));
058    if (src.hasStatus())
059      tgt.setStatusElement(Enumerations14_50.convertConformanceResourceStatus(src.getStatusElement()));
060    if (src.hasExperimental())
061      tgt.setExperimentalElement(Boolean14_50.convertBoolean(src.getExperimentalElement()));
062    if (src.hasPublisher())
063      tgt.setPublisherElement(String14_50.convertString(src.getPublisherElement()));
064    for (org.hl7.fhir.dstu2016may.model.CompartmentDefinition.CompartmentDefinitionContactComponent t : src.getContact())
065      tgt.addContact(convertCompartmentDefinitionContactComponent(t));
066    if (src.hasDate())
067      tgt.setDateElement(DateTime14_50.convertDateTime(src.getDateElement()));
068    if (src.hasDescription())
069      tgt.setDescription(src.getDescription());
070    if (src.hasRequirements())
071      tgt.setPurpose(src.getRequirements());
072    if (src.hasCode())
073      tgt.setCodeElement(convertCompartmentType(src.getCodeElement()));
074    if (src.hasSearchElement())
075      tgt.setSearchElement(Boolean14_50.convertBoolean(src.getSearchElement()));
076    for (org.hl7.fhir.dstu2016may.model.CompartmentDefinition.CompartmentDefinitionResourceComponent t : src.getResource())
077      tgt.addResource(convertCompartmentDefinitionResourceComponent(t));
078    return tgt;
079  }
080
081  public static org.hl7.fhir.dstu2016may.model.CompartmentDefinition.CompartmentDefinitionContactComponent convertCompartmentDefinitionContactComponent(org.hl7.fhir.r5.model.ContactDetail src) throws FHIRException {
082    if (src == null || src.isEmpty())
083      return null;
084    org.hl7.fhir.dstu2016may.model.CompartmentDefinition.CompartmentDefinitionContactComponent tgt = new org.hl7.fhir.dstu2016may.model.CompartmentDefinition.CompartmentDefinitionContactComponent();
085    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyElement(src, tgt);
086    if (src.hasName())
087      tgt.setNameElement(String14_50.convertString(src.getNameElement()));
088    for (org.hl7.fhir.r5.model.ContactPoint t : src.getTelecom())
089      tgt.addTelecom(ContactPoint14_50.convertContactPoint(t));
090    return tgt;
091  }
092
093  public static org.hl7.fhir.r5.model.ContactDetail convertCompartmentDefinitionContactComponent(org.hl7.fhir.dstu2016may.model.CompartmentDefinition.CompartmentDefinitionContactComponent src) throws FHIRException {
094    if (src == null || src.isEmpty())
095      return null;
096    org.hl7.fhir.r5.model.ContactDetail tgt = new org.hl7.fhir.r5.model.ContactDetail();
097    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyElement(src, tgt);
098    if (src.hasName())
099      tgt.setNameElement(String14_50.convertString(src.getNameElement()));
100    for (org.hl7.fhir.dstu2016may.model.ContactPoint t : src.getTelecom())
101      tgt.addTelecom(ContactPoint14_50.convertContactPoint(t));
102    return tgt;
103  }
104
105  public static org.hl7.fhir.dstu2016may.model.CompartmentDefinition.CompartmentDefinitionResourceComponent convertCompartmentDefinitionResourceComponent(org.hl7.fhir.r5.model.CompartmentDefinition.CompartmentDefinitionResourceComponent src) throws FHIRException {
106    if (src == null || src.isEmpty())
107      return null;
108    org.hl7.fhir.dstu2016may.model.CompartmentDefinition.CompartmentDefinitionResourceComponent tgt = new org.hl7.fhir.dstu2016may.model.CompartmentDefinition.CompartmentDefinitionResourceComponent();
109    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyBackboneElement(src,tgt);
110    if (src.hasCode()) {
111      if (src.hasCodeElement())
112        tgt.setCodeElement(Code14_50.convertCode(src.getCodeElement()));
113    }
114    for (org.hl7.fhir.r5.model.StringType t : src.getParam()) tgt.addParam(t.getValue());
115    if (src.hasDocumentation())
116      tgt.setDocumentationElement(String14_50.convertString(src.getDocumentationElement()));
117    return tgt;
118  }
119
120  public static org.hl7.fhir.r5.model.CompartmentDefinition.CompartmentDefinitionResourceComponent convertCompartmentDefinitionResourceComponent(org.hl7.fhir.dstu2016may.model.CompartmentDefinition.CompartmentDefinitionResourceComponent src) throws FHIRException {
121    if (src == null || src.isEmpty())
122      return null;
123    org.hl7.fhir.r5.model.CompartmentDefinition.CompartmentDefinitionResourceComponent tgt = new org.hl7.fhir.r5.model.CompartmentDefinition.CompartmentDefinitionResourceComponent();
124    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyBackboneElement(src,tgt);
125    if (src.hasCodeElement())
126      tgt.setCodeElement(Code14_50.convertCode(src.getCodeElement()));
127    for (org.hl7.fhir.dstu2016may.model.StringType t : src.getParam()) tgt.addParam(t.getValue());
128    if (src.hasDocumentation())
129      tgt.setDocumentationElement(String14_50.convertString(src.getDocumentationElement()));
130    return tgt;
131  }
132
133  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.CompartmentType> convertCompartmentType(org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.CompartmentDefinition.CompartmentType> src) throws FHIRException {
134      if (src == null || src.isEmpty())
135          return null;
136      Enumeration<Enumerations.CompartmentType> tgt = new Enumeration<>(new Enumerations.CompartmentTypeEnumFactory());
137      ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyElement(src, tgt);
138      if (src.getValue() == null) {
139          tgt.setValue(null);
140      } else {
141          switch (src.getValue()) {
142              case PATIENT:
143                  tgt.setValue(Enumerations.CompartmentType.PATIENT);
144                  break;
145              case ENCOUNTER:
146                  tgt.setValue(Enumerations.CompartmentType.ENCOUNTER);
147                  break;
148              case RELATEDPERSON:
149                  tgt.setValue(Enumerations.CompartmentType.RELATEDPERSON);
150                  break;
151              case PRACTITIONER:
152                  tgt.setValue(Enumerations.CompartmentType.PRACTITIONER);
153                  break;
154              case DEVICE:
155                  tgt.setValue(Enumerations.CompartmentType.DEVICE);
156                  break;
157              default:
158                  tgt.setValue(Enumerations.CompartmentType.NULL);
159                  break;
160          }
161      }
162      return tgt;
163  }
164
165  static public org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.CompartmentDefinition.CompartmentType> convertCompartmentType(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.CompartmentType> src) throws FHIRException {
166      if (src == null || src.isEmpty())
167          return null;
168      org.hl7.fhir.dstu2016may.model.Enumeration<CompartmentDefinition.CompartmentType> tgt = new org.hl7.fhir.dstu2016may.model.Enumeration<>(new CompartmentDefinition.CompartmentTypeEnumFactory());
169      ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyElement(src, tgt);
170      if (src.getValue() == null) {
171          tgt.setValue(null);
172      } else {
173          switch (src.getValue()) {
174              case PATIENT:
175                  tgt.setValue(CompartmentDefinition.CompartmentType.PATIENT);
176                  break;
177              case ENCOUNTER:
178                  tgt.setValue(CompartmentDefinition.CompartmentType.ENCOUNTER);
179                  break;
180              case RELATEDPERSON:
181                  tgt.setValue(CompartmentDefinition.CompartmentType.RELATEDPERSON);
182                  break;
183              case PRACTITIONER:
184                  tgt.setValue(CompartmentDefinition.CompartmentType.PRACTITIONER);
185                  break;
186              case DEVICE:
187                  tgt.setValue(CompartmentDefinition.CompartmentType.DEVICE);
188                  break;
189              default:
190                  tgt.setValue(CompartmentDefinition.CompartmentType.NULL);
191                  break;
192          }
193      }
194      return tgt;
195  }
196}