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