001package org.hl7.fhir.convertors.conv14_50.resources14_50;
002
003import org.hl7.fhir.convertors.VersionConvertorConstants;
004import org.hl7.fhir.convertors.context.ConversionContext14_50;
005import org.hl7.fhir.convertors.conv14_50.datatypes14_50.complextypes14_50.CodeableConcept14_50;
006import org.hl7.fhir.convertors.conv14_50.datatypes14_50.complextypes14_50.ContactPoint14_50;
007import org.hl7.fhir.convertors.conv14_50.datatypes14_50.complextypes14_50.Period14_50;
008import org.hl7.fhir.convertors.conv14_50.datatypes14_50.primitivetypes14_50.Boolean14_50;
009import org.hl7.fhir.convertors.conv14_50.datatypes14_50.primitivetypes14_50.DateTime14_50;
010import org.hl7.fhir.convertors.conv14_50.datatypes14_50.primitivetypes14_50.String14_50;
011import org.hl7.fhir.convertors.conv14_50.datatypes14_50.primitivetypes14_50.Uri14_50;
012import org.hl7.fhir.dstu2016may.model.Extension;
013import org.hl7.fhir.dstu2016may.model.StringType;
014import org.hl7.fhir.exceptions.FHIRException;
015import org.hl7.fhir.r5.model.Enumeration;
016import org.hl7.fhir.r5.model.NamingSystem;
017
018public class NamingSystem14_50 {
019
020  public static org.hl7.fhir.r5.model.NamingSystem convertNamingSystem(org.hl7.fhir.dstu2016may.model.NamingSystem src) throws FHIRException {
021    if (src == null || src.isEmpty())
022      return null;
023
024    org.hl7.fhir.r5.model.NamingSystem tgt = new org.hl7.fhir.r5.model.NamingSystem();
025    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyDomainResource(src, tgt, VersionConvertorConstants.EXT_NAMINGSYSTEM_URL, VersionConvertorConstants.EXT_NAMINGSYSTEM_VERSION, VersionConvertorConstants.EXT_NAMINGSYSTEM_TITLE);
026    if (src.hasNameElement())
027      tgt.setNameElement(String14_50.convertString(src.getNameElement()));
028    if (src.hasExtension(VersionConvertorConstants.EXT_NAMINGSYSTEM_TITLE)) {
029      tgt.setTitleElement(String14_50.convertString((StringType) src.getExtensionByUrl(VersionConvertorConstants.EXT_NAMINGSYSTEM_TITLE).getValue()));
030    }
031    if (src.hasStatus())
032      tgt.setStatusElement(Enumerations14_50.convertConformanceResourceStatus(src.getStatusElement()));
033    if (src.hasKind())
034      tgt.setKindElement(convertNamingSystemType(src.getKindElement()));
035    if (src.hasDateElement())
036      tgt.setDateElement(DateTime14_50.convertDateTime(src.getDateElement()));
037    if (src.hasPublisher())
038      tgt.setPublisherElement(String14_50.convertString(src.getPublisherElement()));
039    for (org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemContactComponent t : src.getContact())
040      tgt.addContact(convertNamingSystemContactComponent(t));
041    if (src.hasResponsible())
042      tgt.setResponsibleElement(String14_50.convertString(src.getResponsibleElement()));
043    if (src.hasType())
044      tgt.setType(CodeableConcept14_50.convertCodeableConcept(src.getType()));
045    if (src.hasDescription())
046      tgt.setDescription(src.getDescription());
047    for (org.hl7.fhir.dstu2016may.model.CodeableConcept t : src.getUseContext())
048      if (CodeableConcept14_50.isJurisdiction(t))
049        tgt.addJurisdiction(CodeableConcept14_50.convertCodeableConcept(t));
050      else
051        tgt.addUseContext(CodeableConcept14_50.convertCodeableConceptToUsageContext(t));
052    if (src.hasUsage())
053      tgt.setUsageElement(String14_50.convertString(src.getUsageElement()));
054    for (org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemUniqueIdComponent t : src.getUniqueId())
055      tgt.addUniqueId(convertNamingSystemUniqueIdComponent(t));
056    return tgt;
057  }
058
059  public static org.hl7.fhir.dstu2016may.model.NamingSystem convertNamingSystem(org.hl7.fhir.r5.model.NamingSystem src) throws FHIRException {
060    if (src == null || src.isEmpty())
061      return null;
062    org.hl7.fhir.dstu2016may.model.NamingSystem tgt = new org.hl7.fhir.dstu2016may.model.NamingSystem();
063    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyDomainResource(src, tgt);
064    if (src.hasUrlElement()) 
065      tgt.getExtension().add(new Extension().setUrl(VersionConvertorConstants.EXT_NAMINGSYSTEM_URL).setValue(Uri14_50.convertUri(src.getUrlElement())));
066    if (src.hasVersionElement()) 
067      tgt.getExtension().add(new Extension().setUrl(VersionConvertorConstants.EXT_NAMINGSYSTEM_VERSION).setValue(String14_50.convertString(src.getVersionElement())));
068    
069    if (src.hasNameElement())
070      tgt.setNameElement(String14_50.convertString(src.getNameElement()));
071    if (src.hasTitleElement()) 
072      tgt.getExtension().add(new Extension().setUrl(VersionConvertorConstants.EXT_NAMINGSYSTEM_TITLE).setValue(String14_50.convertString(src.getTitleElement())));
073    if (src.hasStatus())
074      tgt.setStatusElement(Enumerations14_50.convertConformanceResourceStatus(src.getStatusElement()));
075    if (src.hasKind())
076      tgt.setKindElement(convertNamingSystemType(src.getKindElement()));
077    if (src.hasDateElement())
078      tgt.setDateElement(DateTime14_50.convertDateTime(src.getDateElement()));
079    if (src.hasPublisher())
080      tgt.setPublisherElement(String14_50.convertString(src.getPublisherElement()));
081    for (org.hl7.fhir.r5.model.ContactDetail t : src.getContact())
082      tgt.addContact(convertNamingSystemContactComponent(t));
083    if (src.hasResponsible())
084      tgt.setResponsibleElement(String14_50.convertString(src.getResponsibleElement()));
085    if (src.hasType())
086      tgt.setType(CodeableConcept14_50.convertCodeableConcept(src.getType()));
087    if (src.hasDescription())
088      tgt.setDescription(src.getDescription());
089    for (org.hl7.fhir.r5.model.UsageContext t : src.getUseContext())
090      if (t.hasValueCodeableConcept())
091        tgt.addUseContext(CodeableConcept14_50.convertCodeableConcept(t.getValueCodeableConcept()));
092    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getJurisdiction())
093      tgt.addUseContext(CodeableConcept14_50.convertCodeableConcept(t));
094    if (src.hasUsage())
095      tgt.setUsageElement(String14_50.convertString(src.getUsageElement()));
096    for (org.hl7.fhir.r5.model.NamingSystem.NamingSystemUniqueIdComponent t : src.getUniqueId())
097      tgt.addUniqueId(convertNamingSystemUniqueIdComponent(t));
098    return tgt;
099  }
100
101  public static org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemContactComponent convertNamingSystemContactComponent(org.hl7.fhir.r5.model.ContactDetail src) throws FHIRException {
102    if (src == null || src.isEmpty())
103      return null;
104    org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemContactComponent tgt = new org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemContactComponent();
105    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyElement(src, tgt);
106    if (src.hasName())
107      tgt.setNameElement(String14_50.convertString(src.getNameElement()));
108    for (org.hl7.fhir.r5.model.ContactPoint t : src.getTelecom())
109      tgt.addTelecom(ContactPoint14_50.convertContactPoint(t));
110    return tgt;
111  }
112
113  public static org.hl7.fhir.r5.model.ContactDetail convertNamingSystemContactComponent(org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemContactComponent src) throws FHIRException {
114    if (src == null || src.isEmpty())
115      return null;
116    org.hl7.fhir.r5.model.ContactDetail tgt = new org.hl7.fhir.r5.model.ContactDetail();
117    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyElement(src, tgt);
118    if (src.hasName())
119      tgt.setNameElement(String14_50.convertString(src.getNameElement()));
120    for (org.hl7.fhir.dstu2016may.model.ContactPoint t : src.getTelecom())
121      tgt.addTelecom(ContactPoint14_50.convertContactPoint(t));
122    return tgt;
123  }
124
125  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.NamingSystem.NamingSystemIdentifierType> convertNamingSystemIdentifierType(org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemIdentifierType> src) throws FHIRException {
126      if (src == null || src.isEmpty())
127          return null;
128      Enumeration<NamingSystem.NamingSystemIdentifierType> tgt = new Enumeration<>(new NamingSystem.NamingSystemIdentifierTypeEnumFactory());
129      ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyElement(src, tgt);
130      if (src.getValue() == null) {
131          tgt.setValue(null);
132      } else {
133          switch (src.getValue()) {
134              case OID:
135                  tgt.setValue(NamingSystem.NamingSystemIdentifierType.OID);
136                  break;
137              case UUID:
138                  tgt.setValue(NamingSystem.NamingSystemIdentifierType.UUID);
139                  break;
140              case URI:
141                  tgt.setValue(NamingSystem.NamingSystemIdentifierType.URI);
142                  break;
143              case OTHER:
144                  tgt.setValue(NamingSystem.NamingSystemIdentifierType.OTHER);
145                  break;
146              default:
147                  tgt.setValue(NamingSystem.NamingSystemIdentifierType.NULL);
148                  break;
149          }
150      }
151      return tgt;
152  }
153
154  static public org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemIdentifierType> convertNamingSystemIdentifierType(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.NamingSystem.NamingSystemIdentifierType> src) throws FHIRException {
155      if (src == null || src.isEmpty())
156          return null;
157      org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemIdentifierType> tgt = new org.hl7.fhir.dstu2016may.model.Enumeration<>(new org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemIdentifierTypeEnumFactory());
158      ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyElement(src, tgt);
159      if (src.getValue() == null) {
160          tgt.setValue(null);
161      } else {
162          switch (src.getValue()) {
163              case OID:
164                  tgt.setValue(org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemIdentifierType.OID);
165                  break;
166              case UUID:
167                  tgt.setValue(org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemIdentifierType.UUID);
168                  break;
169              case URI:
170                  tgt.setValue(org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemIdentifierType.URI);
171                  break;
172              case OTHER:
173                  tgt.setValue(org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemIdentifierType.OTHER);
174                  break;
175              default:
176                  tgt.setValue(org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemIdentifierType.NULL);
177                  break;
178          }
179      }
180      return tgt;
181  }
182
183  static public org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemType> convertNamingSystemType(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.NamingSystem.NamingSystemType> src) throws FHIRException {
184      if (src == null || src.isEmpty())
185          return null;
186      org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemType> tgt = new org.hl7.fhir.dstu2016may.model.Enumeration<>(new org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemTypeEnumFactory());
187      ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyElement(src, tgt);
188      if (src.getValue() == null) {
189          tgt.setValue(null);
190      } else {
191          switch (src.getValue()) {
192              case CODESYSTEM:
193                  tgt.setValue(org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemType.CODESYSTEM);
194                  break;
195              case IDENTIFIER:
196                  tgt.setValue(org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemType.IDENTIFIER);
197                  break;
198              case ROOT:
199                  tgt.setValue(org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemType.ROOT);
200                  break;
201              default:
202                  tgt.setValue(org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemType.NULL);
203                  break;
204          }
205      }
206      return tgt;
207  }
208
209  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.NamingSystem.NamingSystemType> convertNamingSystemType(org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemType> src) throws FHIRException {
210      if (src == null || src.isEmpty())
211          return null;
212      Enumeration<NamingSystem.NamingSystemType> tgt = new Enumeration<>(new NamingSystem.NamingSystemTypeEnumFactory());
213      ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyElement(src, tgt);
214      if (src.getValue() == null) {
215          tgt.setValue(null);
216      } else {
217          switch (src.getValue()) {
218              case CODESYSTEM:
219                  tgt.setValue(NamingSystem.NamingSystemType.CODESYSTEM);
220                  break;
221              case IDENTIFIER:
222                  tgt.setValue(NamingSystem.NamingSystemType.IDENTIFIER);
223                  break;
224              case ROOT:
225                  tgt.setValue(NamingSystem.NamingSystemType.ROOT);
226                  break;
227              default:
228                  tgt.setValue(NamingSystem.NamingSystemType.NULL);
229                  break;
230          }
231      }
232      return tgt;
233  }
234
235  public static org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemUniqueIdComponent convertNamingSystemUniqueIdComponent(org.hl7.fhir.r5.model.NamingSystem.NamingSystemUniqueIdComponent src) throws FHIRException {
236    if (src == null || src.isEmpty())
237      return null;
238    org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemUniqueIdComponent tgt = new org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemUniqueIdComponent();
239    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyBackboneElement(src,tgt);
240    if (src.hasType())
241      tgt.setTypeElement(convertNamingSystemIdentifierType(src.getTypeElement()));
242    if (src.hasValueElement())
243      tgt.setValueElement(String14_50.convertString(src.getValueElement()));
244    if (src.hasPreferred())
245      tgt.setPreferredElement(Boolean14_50.convertBoolean(src.getPreferredElement()));
246    if (src.hasPeriod())
247      tgt.setPeriod(Period14_50.convertPeriod(src.getPeriod()));
248    return tgt;
249  }
250
251  public static org.hl7.fhir.r5.model.NamingSystem.NamingSystemUniqueIdComponent convertNamingSystemUniqueIdComponent(org.hl7.fhir.dstu2016may.model.NamingSystem.NamingSystemUniqueIdComponent src) throws FHIRException {
252    if (src == null || src.isEmpty())
253      return null;
254    org.hl7.fhir.r5.model.NamingSystem.NamingSystemUniqueIdComponent tgt = new org.hl7.fhir.r5.model.NamingSystem.NamingSystemUniqueIdComponent();
255    ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyBackboneElement(src,tgt);
256    if (src.hasType())
257      tgt.setTypeElement(convertNamingSystemIdentifierType(src.getTypeElement()));
258    if (src.hasValueElement())
259      tgt.setValueElement(String14_50.convertString(src.getValueElement()));
260    if (src.hasPreferred())
261      tgt.setPreferredElement(Boolean14_50.convertBoolean(src.getPreferredElement()));
262    if (src.hasPeriod())
263      tgt.setPeriod(Period14_50.convertPeriod(src.getPeriod()));
264    return tgt;
265  }
266}