001package org.hl7.fhir.convertors.conv40_50.resources40_50;
002
003import org.hl7.fhir.convertors.context.ConversionContext40_50;
004import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Annotation40_50;
005import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.CodeableConcept40_50;
006import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Coding40_50;
007import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Identifier40_50;
008import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Money40_50;
009import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Period40_50;
010import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Signature40_50;
011import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.SimpleQuantity40_50;
012import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Boolean40_50;
013import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.DateTime40_50;
014import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Decimal40_50;
015import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.MarkDown40_50;
016import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.String40_50;
017import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.UnsignedInt40_50;
018import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Uri40_50;
019import org.hl7.fhir.convertors.conv40_50.datatypes40_50.special40_50.Reference40_50;
020import org.hl7.fhir.exceptions.FHIRException;
021import org.hl7.fhir.r5.model.CodeableReference;
022import org.hl7.fhir.r5.model.Contract;
023import org.hl7.fhir.r5.model.Enumeration;
024
025/*
026  Copyright (c) 2011+, HL7, Inc.
027  All rights reserved.
028  
029  Redistribution and use in source and binary forms, with or without modification, 
030  are permitted provided that the following conditions are met:
031  
032   * Redistributions of source code must retain the above copyright notice, this 
033     list of conditions and the following disclaimer.
034   * Redistributions in binary form must reproduce the above copyright notice, 
035     this list of conditions and the following disclaimer in the documentation 
036     and/or other materials provided with the distribution.
037   * Neither the name of HL7 nor the names of its contributors may be used to 
038     endorse or promote products derived from this software without specific 
039     prior written permission.
040  
041  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
042  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
043  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
044  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
045  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
046  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
047  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
048  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
049  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
050  POSSIBILITY OF SUCH DAMAGE.
051  
052*/
053// Generated on Sun, Feb 24, 2019 11:37+1100 for FHIR v4.0.0
054public class Contract40_50 {
055
056  public static org.hl7.fhir.r5.model.Contract convertContract(org.hl7.fhir.r4.model.Contract src) throws FHIRException {
057    if (src == null)
058      return null;
059    org.hl7.fhir.r5.model.Contract tgt = new org.hl7.fhir.r5.model.Contract();
060    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt);
061    for (org.hl7.fhir.r4.model.Identifier t : src.getIdentifier())
062      tgt.addIdentifier(Identifier40_50.convertIdentifier(t));
063    if (src.hasUrl())
064      tgt.setUrlElement(Uri40_50.convertUri(src.getUrlElement()));
065    if (src.hasVersion())
066      tgt.setVersionElement(String40_50.convertString(src.getVersionElement()));
067    if (src.hasStatus())
068      tgt.setStatusElement(convertContractStatus(src.getStatusElement()));
069    if (src.hasLegalState())
070      tgt.setLegalState(CodeableConcept40_50.convertCodeableConcept(src.getLegalState()));
071    if (src.hasInstantiatesCanonical())
072      tgt.setInstantiatesCanonical(Reference40_50.convertReference(src.getInstantiatesCanonical()));
073    if (src.hasInstantiatesUri())
074      tgt.setInstantiatesUriElement(Uri40_50.convertUri(src.getInstantiatesUriElement()));
075    if (src.hasContentDerivative())
076      tgt.setContentDerivative(CodeableConcept40_50.convertCodeableConcept(src.getContentDerivative()));
077    if (src.hasIssued())
078      tgt.setIssuedElement(DateTime40_50.convertDateTime(src.getIssuedElement()));
079    if (src.hasApplies())
080      tgt.setApplies(Period40_50.convertPeriod(src.getApplies()));
081    if (src.hasExpirationType())
082      tgt.setExpirationType(CodeableConcept40_50.convertCodeableConcept(src.getExpirationType()));
083    for (org.hl7.fhir.r4.model.Reference t : src.getSubject()) tgt.addSubject(Reference40_50.convertReference(t));
084    for (org.hl7.fhir.r4.model.Reference t : src.getAuthority()) tgt.addAuthority(Reference40_50.convertReference(t));
085    for (org.hl7.fhir.r4.model.Reference t : src.getDomain()) tgt.addDomain(Reference40_50.convertReference(t));
086    for (org.hl7.fhir.r4.model.Reference t : src.getSite()) tgt.addSite(Reference40_50.convertReference(t));
087    if (src.hasName())
088      tgt.setNameElement(String40_50.convertString(src.getNameElement()));
089    if (src.hasTitle())
090      tgt.setTitleElement(String40_50.convertString(src.getTitleElement()));
091    if (src.hasSubtitle())
092      tgt.setSubtitleElement(String40_50.convertString(src.getSubtitleElement()));
093    for (org.hl7.fhir.r4.model.StringType t : src.getAlias()) tgt.getAlias().add(String40_50.convertString(t));
094    if (src.hasAuthor())
095      tgt.setAuthor(Reference40_50.convertReference(src.getAuthor()));
096    if (src.hasScope())
097      tgt.setScope(CodeableConcept40_50.convertCodeableConcept(src.getScope()));
098    if (src.hasTopic())
099      tgt.setTopic(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getTopic()));
100    if (src.hasType())
101      tgt.setType(CodeableConcept40_50.convertCodeableConcept(src.getType()));
102    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getSubType())
103      tgt.addSubType(CodeableConcept40_50.convertCodeableConcept(t));
104    if (src.hasContentDefinition())
105      tgt.setContentDefinition(convertContentDefinitionComponent(src.getContentDefinition()));
106    for (org.hl7.fhir.r4.model.Contract.TermComponent t : src.getTerm()) tgt.addTerm(convertTermComponent(t));
107    for (org.hl7.fhir.r4.model.Reference t : src.getSupportingInfo())
108      tgt.addSupportingInfo(Reference40_50.convertReference(t));
109    for (org.hl7.fhir.r4.model.Reference t : src.getRelevantHistory())
110      tgt.addRelevantHistory(Reference40_50.convertReference(t));
111    for (org.hl7.fhir.r4.model.Contract.SignatoryComponent t : src.getSigner())
112      tgt.addSigner(convertSignatoryComponent(t));
113    for (org.hl7.fhir.r4.model.Contract.FriendlyLanguageComponent t : src.getFriendly())
114      tgt.addFriendly(convertFriendlyLanguageComponent(t));
115    for (org.hl7.fhir.r4.model.Contract.LegalLanguageComponent t : src.getLegal())
116      tgt.addLegal(convertLegalLanguageComponent(t));
117    for (org.hl7.fhir.r4.model.Contract.ComputableLanguageComponent t : src.getRule())
118      tgt.addRule(convertComputableLanguageComponent(t));
119    if (src.hasLegallyBinding())
120      tgt.setLegallyBinding(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getLegallyBinding()));
121    return tgt;
122  }
123
124  public static org.hl7.fhir.r4.model.Contract convertContract(org.hl7.fhir.r5.model.Contract src) throws FHIRException {
125    if (src == null)
126      return null;
127    org.hl7.fhir.r4.model.Contract tgt = new org.hl7.fhir.r4.model.Contract();
128    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt);
129    for (org.hl7.fhir.r5.model.Identifier t : src.getIdentifier())
130      tgt.addIdentifier(Identifier40_50.convertIdentifier(t));
131    if (src.hasUrl())
132      tgt.setUrlElement(Uri40_50.convertUri(src.getUrlElement()));
133    if (src.hasVersion())
134      tgt.setVersionElement(String40_50.convertString(src.getVersionElement()));
135    if (src.hasStatus())
136      tgt.setStatusElement(convertContractStatus(src.getStatusElement()));
137    if (src.hasLegalState())
138      tgt.setLegalState(CodeableConcept40_50.convertCodeableConcept(src.getLegalState()));
139    if (src.hasInstantiatesCanonical())
140      tgt.setInstantiatesCanonical(Reference40_50.convertReference(src.getInstantiatesCanonical()));
141    if (src.hasInstantiatesUri())
142      tgt.setInstantiatesUriElement(Uri40_50.convertUri(src.getInstantiatesUriElement()));
143    if (src.hasContentDerivative())
144      tgt.setContentDerivative(CodeableConcept40_50.convertCodeableConcept(src.getContentDerivative()));
145    if (src.hasIssued())
146      tgt.setIssuedElement(DateTime40_50.convertDateTime(src.getIssuedElement()));
147    if (src.hasApplies())
148      tgt.setApplies(Period40_50.convertPeriod(src.getApplies()));
149    if (src.hasExpirationType())
150      tgt.setExpirationType(CodeableConcept40_50.convertCodeableConcept(src.getExpirationType()));
151    for (org.hl7.fhir.r5.model.Reference t : src.getSubject()) tgt.addSubject(Reference40_50.convertReference(t));
152    for (org.hl7.fhir.r5.model.Reference t : src.getAuthority()) tgt.addAuthority(Reference40_50.convertReference(t));
153    for (org.hl7.fhir.r5.model.Reference t : src.getDomain()) tgt.addDomain(Reference40_50.convertReference(t));
154    for (org.hl7.fhir.r5.model.Reference t : src.getSite()) tgt.addSite(Reference40_50.convertReference(t));
155    if (src.hasName())
156      tgt.setNameElement(String40_50.convertString(src.getNameElement()));
157    if (src.hasTitle())
158      tgt.setTitleElement(String40_50.convertString(src.getTitleElement()));
159    if (src.hasSubtitle())
160      tgt.setSubtitleElement(String40_50.convertString(src.getSubtitleElement()));
161    for (org.hl7.fhir.r5.model.StringType t : src.getAlias()) tgt.getAlias().add(String40_50.convertString(t));
162    if (src.hasAuthor())
163      tgt.setAuthor(Reference40_50.convertReference(src.getAuthor()));
164    if (src.hasScope())
165      tgt.setScope(CodeableConcept40_50.convertCodeableConcept(src.getScope()));
166    if (src.hasTopic())
167      tgt.setTopic(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getTopic()));
168    if (src.hasType())
169      tgt.setType(CodeableConcept40_50.convertCodeableConcept(src.getType()));
170    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getSubType())
171      tgt.addSubType(CodeableConcept40_50.convertCodeableConcept(t));
172    if (src.hasContentDefinition())
173      tgt.setContentDefinition(convertContentDefinitionComponent(src.getContentDefinition()));
174    for (org.hl7.fhir.r5.model.Contract.TermComponent t : src.getTerm()) tgt.addTerm(convertTermComponent(t));
175    for (org.hl7.fhir.r5.model.Reference t : src.getSupportingInfo())
176      tgt.addSupportingInfo(Reference40_50.convertReference(t));
177    for (org.hl7.fhir.r5.model.Reference t : src.getRelevantHistory())
178      tgt.addRelevantHistory(Reference40_50.convertReference(t));
179    for (org.hl7.fhir.r5.model.Contract.SignatoryComponent t : src.getSigner())
180      tgt.addSigner(convertSignatoryComponent(t));
181    for (org.hl7.fhir.r5.model.Contract.FriendlyLanguageComponent t : src.getFriendly())
182      tgt.addFriendly(convertFriendlyLanguageComponent(t));
183    for (org.hl7.fhir.r5.model.Contract.LegalLanguageComponent t : src.getLegal())
184      tgt.addLegal(convertLegalLanguageComponent(t));
185    for (org.hl7.fhir.r5.model.Contract.ComputableLanguageComponent t : src.getRule())
186      tgt.addRule(convertComputableLanguageComponent(t));
187    if (src.hasLegallyBinding())
188      tgt.setLegallyBinding(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getLegallyBinding()));
189    return tgt;
190  }
191
192  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Contract.ContractResourceStatusCodes> convertContractStatus(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Contract.ContractStatus> src) throws FHIRException {
193      if (src == null || src.isEmpty())
194          return null;
195      Enumeration<Contract.ContractResourceStatusCodes> tgt = new Enumeration<>(new Contract.ContractResourceStatusCodesEnumFactory());
196      ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
197      if (src.getValue() == null) {
198          tgt.setValue(null);
199      } else {
200          switch (src.getValue()) {
201              case AMENDED:
202                  tgt.setValue(Contract.ContractResourceStatusCodes.AMENDED);
203                  break;
204              case APPENDED:
205                  tgt.setValue(Contract.ContractResourceStatusCodes.APPENDED);
206                  break;
207              case CANCELLED:
208                  tgt.setValue(Contract.ContractResourceStatusCodes.CANCELLED);
209                  break;
210              case DISPUTED:
211                  tgt.setValue(Contract.ContractResourceStatusCodes.DISPUTED);
212                  break;
213              case ENTEREDINERROR:
214                  tgt.setValue(Contract.ContractResourceStatusCodes.ENTEREDINERROR);
215                  break;
216              case EXECUTABLE:
217                  tgt.setValue(Contract.ContractResourceStatusCodes.EXECUTABLE);
218                  break;
219              case EXECUTED:
220                  tgt.setValue(Contract.ContractResourceStatusCodes.EXECUTED);
221                  break;
222              case NEGOTIABLE:
223                  tgt.setValue(Contract.ContractResourceStatusCodes.NEGOTIABLE);
224                  break;
225              case OFFERED:
226                  tgt.setValue(Contract.ContractResourceStatusCodes.OFFERED);
227                  break;
228              case POLICY:
229                  tgt.setValue(Contract.ContractResourceStatusCodes.POLICY);
230                  break;
231              case REJECTED:
232                  tgt.setValue(Contract.ContractResourceStatusCodes.REJECTED);
233                  break;
234              case RENEWED:
235                  tgt.setValue(Contract.ContractResourceStatusCodes.RENEWED);
236                  break;
237              case REVOKED:
238                  tgt.setValue(Contract.ContractResourceStatusCodes.REVOKED);
239                  break;
240              case RESOLVED:
241                  tgt.setValue(Contract.ContractResourceStatusCodes.RESOLVED);
242                  break;
243              case TERMINATED:
244                  tgt.setValue(Contract.ContractResourceStatusCodes.TERMINATED);
245                  break;
246              default:
247                  tgt.setValue(Contract.ContractResourceStatusCodes.NULL);
248                  break;
249          }
250      }
251      return tgt;
252  }
253
254  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Contract.ContractStatus> convertContractStatus(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Contract.ContractResourceStatusCodes> src) throws FHIRException {
255      if (src == null || src.isEmpty())
256          return null;
257      org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Contract.ContractStatus> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.Contract.ContractStatusEnumFactory());
258      ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
259      if (src.getValue() == null) {
260          tgt.setValue(null);
261      } else {
262          switch (src.getValue()) {
263              case AMENDED:
264                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractStatus.AMENDED);
265                  break;
266              case APPENDED:
267                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractStatus.APPENDED);
268                  break;
269              case CANCELLED:
270                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractStatus.CANCELLED);
271                  break;
272              case DISPUTED:
273                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractStatus.DISPUTED);
274                  break;
275              case ENTEREDINERROR:
276                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractStatus.ENTEREDINERROR);
277                  break;
278              case EXECUTABLE:
279                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractStatus.EXECUTABLE);
280                  break;
281              case EXECUTED:
282                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractStatus.EXECUTED);
283                  break;
284              case NEGOTIABLE:
285                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractStatus.NEGOTIABLE);
286                  break;
287              case OFFERED:
288                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractStatus.OFFERED);
289                  break;
290              case POLICY:
291                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractStatus.POLICY);
292                  break;
293              case REJECTED:
294                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractStatus.REJECTED);
295                  break;
296              case RENEWED:
297                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractStatus.RENEWED);
298                  break;
299              case REVOKED:
300                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractStatus.REVOKED);
301                  break;
302              case RESOLVED:
303                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractStatus.RESOLVED);
304                  break;
305              case TERMINATED:
306                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractStatus.TERMINATED);
307                  break;
308              default:
309                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractStatus.NULL);
310                  break;
311          }
312      }
313      return tgt;
314  }
315
316  public static org.hl7.fhir.r5.model.Contract.ContentDefinitionComponent convertContentDefinitionComponent(org.hl7.fhir.r4.model.Contract.ContentDefinitionComponent src) throws FHIRException {
317    if (src == null)
318      return null;
319    org.hl7.fhir.r5.model.Contract.ContentDefinitionComponent tgt = new org.hl7.fhir.r5.model.Contract.ContentDefinitionComponent();
320    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
321    if (src.hasType())
322      tgt.setType(CodeableConcept40_50.convertCodeableConcept(src.getType()));
323    if (src.hasSubType())
324      tgt.setSubType(CodeableConcept40_50.convertCodeableConcept(src.getSubType()));
325    if (src.hasPublisher())
326      tgt.setPublisher(Reference40_50.convertReference(src.getPublisher()));
327    if (src.hasPublicationDate())
328      tgt.setPublicationDateElement(DateTime40_50.convertDateTime(src.getPublicationDateElement()));
329    if (src.hasPublicationStatus())
330      tgt.setPublicationStatusElement(convertContractPublicationStatus(src.getPublicationStatusElement()));
331    if (src.hasCopyright())
332      tgt.setCopyrightElement(MarkDown40_50.convertMarkdown(src.getCopyrightElement()));
333    return tgt;
334  }
335
336  public static org.hl7.fhir.r4.model.Contract.ContentDefinitionComponent convertContentDefinitionComponent(org.hl7.fhir.r5.model.Contract.ContentDefinitionComponent src) throws FHIRException {
337    if (src == null)
338      return null;
339    org.hl7.fhir.r4.model.Contract.ContentDefinitionComponent tgt = new org.hl7.fhir.r4.model.Contract.ContentDefinitionComponent();
340    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
341    if (src.hasType())
342      tgt.setType(CodeableConcept40_50.convertCodeableConcept(src.getType()));
343    if (src.hasSubType())
344      tgt.setSubType(CodeableConcept40_50.convertCodeableConcept(src.getSubType()));
345    if (src.hasPublisher())
346      tgt.setPublisher(Reference40_50.convertReference(src.getPublisher()));
347    if (src.hasPublicationDate())
348      tgt.setPublicationDateElement(DateTime40_50.convertDateTime(src.getPublicationDateElement()));
349    if (src.hasPublicationStatus())
350      tgt.setPublicationStatusElement(convertContractPublicationStatus(src.getPublicationStatusElement()));
351    if (src.hasCopyright())
352      tgt.setCopyrightElement(MarkDown40_50.convertMarkdown(src.getCopyrightElement()));
353    return tgt;
354  }
355
356  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Contract.ContractResourcePublicationStatusCodes> convertContractPublicationStatus(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Contract.ContractPublicationStatus> src) throws FHIRException {
357      if (src == null || src.isEmpty())
358          return null;
359      Enumeration<Contract.ContractResourcePublicationStatusCodes> tgt = new Enumeration<>(new Contract.ContractResourcePublicationStatusCodesEnumFactory());
360      ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
361      if (src.getValue() == null) {
362          tgt.setValue(null);
363      } else {
364          switch (src.getValue()) {
365              case AMENDED:
366                  tgt.setValue(Contract.ContractResourcePublicationStatusCodes.AMENDED);
367                  break;
368              case APPENDED:
369                  tgt.setValue(Contract.ContractResourcePublicationStatusCodes.APPENDED);
370                  break;
371              case CANCELLED:
372                  tgt.setValue(Contract.ContractResourcePublicationStatusCodes.CANCELLED);
373                  break;
374              case DISPUTED:
375                  tgt.setValue(Contract.ContractResourcePublicationStatusCodes.DISPUTED);
376                  break;
377              case ENTEREDINERROR:
378                  tgt.setValue(Contract.ContractResourcePublicationStatusCodes.ENTEREDINERROR);
379                  break;
380              case EXECUTABLE:
381                  tgt.setValue(Contract.ContractResourcePublicationStatusCodes.EXECUTABLE);
382                  break;
383              case EXECUTED:
384                  tgt.setValue(Contract.ContractResourcePublicationStatusCodes.EXECUTED);
385                  break;
386              case NEGOTIABLE:
387                  tgt.setValue(Contract.ContractResourcePublicationStatusCodes.NEGOTIABLE);
388                  break;
389              case OFFERED:
390                  tgt.setValue(Contract.ContractResourcePublicationStatusCodes.OFFERED);
391                  break;
392              case POLICY:
393                  tgt.setValue(Contract.ContractResourcePublicationStatusCodes.POLICY);
394                  break;
395              case REJECTED:
396                  tgt.setValue(Contract.ContractResourcePublicationStatusCodes.REJECTED);
397                  break;
398              case RENEWED:
399                  tgt.setValue(Contract.ContractResourcePublicationStatusCodes.RENEWED);
400                  break;
401              case REVOKED:
402                  tgt.setValue(Contract.ContractResourcePublicationStatusCodes.REVOKED);
403                  break;
404              case RESOLVED:
405                  tgt.setValue(Contract.ContractResourcePublicationStatusCodes.RESOLVED);
406                  break;
407              case TERMINATED:
408                  tgt.setValue(Contract.ContractResourcePublicationStatusCodes.TERMINATED);
409                  break;
410              default:
411                  tgt.setValue(Contract.ContractResourcePublicationStatusCodes.NULL);
412                  break;
413          }
414      }
415      return tgt;
416  }
417
418  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Contract.ContractPublicationStatus> convertContractPublicationStatus(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Contract.ContractResourcePublicationStatusCodes> src) throws FHIRException {
419      if (src == null || src.isEmpty())
420          return null;
421      org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Contract.ContractPublicationStatus> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.Contract.ContractPublicationStatusEnumFactory());
422      ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
423      if (src.getValue() == null) {
424          tgt.setValue(null);
425      } else {
426          switch (src.getValue()) {
427              case AMENDED:
428                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractPublicationStatus.AMENDED);
429                  break;
430              case APPENDED:
431                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractPublicationStatus.APPENDED);
432                  break;
433              case CANCELLED:
434                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractPublicationStatus.CANCELLED);
435                  break;
436              case DISPUTED:
437                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractPublicationStatus.DISPUTED);
438                  break;
439              case ENTEREDINERROR:
440                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractPublicationStatus.ENTEREDINERROR);
441                  break;
442              case EXECUTABLE:
443                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractPublicationStatus.EXECUTABLE);
444                  break;
445              case EXECUTED:
446                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractPublicationStatus.EXECUTED);
447                  break;
448              case NEGOTIABLE:
449                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractPublicationStatus.NEGOTIABLE);
450                  break;
451              case OFFERED:
452                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractPublicationStatus.OFFERED);
453                  break;
454              case POLICY:
455                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractPublicationStatus.POLICY);
456                  break;
457              case REJECTED:
458                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractPublicationStatus.REJECTED);
459                  break;
460              case RENEWED:
461                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractPublicationStatus.RENEWED);
462                  break;
463              case REVOKED:
464                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractPublicationStatus.REVOKED);
465                  break;
466              case RESOLVED:
467                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractPublicationStatus.RESOLVED);
468                  break;
469              case TERMINATED:
470                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractPublicationStatus.TERMINATED);
471                  break;
472              default:
473                  tgt.setValue(org.hl7.fhir.r4.model.Contract.ContractPublicationStatus.NULL);
474                  break;
475          }
476      }
477      return tgt;
478  }
479
480  public static org.hl7.fhir.r5.model.Contract.TermComponent convertTermComponent(org.hl7.fhir.r4.model.Contract.TermComponent src) throws FHIRException {
481    if (src == null)
482      return null;
483    org.hl7.fhir.r5.model.Contract.TermComponent tgt = new org.hl7.fhir.r5.model.Contract.TermComponent();
484    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
485    if (src.hasIdentifier())
486      tgt.setIdentifier(Identifier40_50.convertIdentifier(src.getIdentifier()));
487    if (src.hasIssued())
488      tgt.setIssuedElement(DateTime40_50.convertDateTime(src.getIssuedElement()));
489    if (src.hasApplies())
490      tgt.setApplies(Period40_50.convertPeriod(src.getApplies()));
491    if (src.hasTopic())
492      tgt.setTopic(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getTopic()));
493    if (src.hasType())
494      tgt.setType(CodeableConcept40_50.convertCodeableConcept(src.getType()));
495    if (src.hasSubType())
496      tgt.setSubType(CodeableConcept40_50.convertCodeableConcept(src.getSubType()));
497    if (src.hasText())
498      tgt.setTextElement(String40_50.convertString(src.getTextElement()));
499    for (org.hl7.fhir.r4.model.Contract.SecurityLabelComponent t : src.getSecurityLabel())
500      tgt.addSecurityLabel(convertSecurityLabelComponent(t));
501    if (src.hasOffer())
502      tgt.setOffer(convertContractOfferComponent(src.getOffer()));
503    for (org.hl7.fhir.r4.model.Contract.ContractAssetComponent t : src.getAsset())
504      tgt.addAsset(convertContractAssetComponent(t));
505    for (org.hl7.fhir.r4.model.Contract.ActionComponent t : src.getAction()) tgt.addAction(convertActionComponent(t));
506    for (org.hl7.fhir.r4.model.Contract.TermComponent t : src.getGroup()) tgt.addGroup(convertTermComponent(t));
507    return tgt;
508  }
509
510  public static org.hl7.fhir.r4.model.Contract.TermComponent convertTermComponent(org.hl7.fhir.r5.model.Contract.TermComponent src) throws FHIRException {
511    if (src == null)
512      return null;
513    org.hl7.fhir.r4.model.Contract.TermComponent tgt = new org.hl7.fhir.r4.model.Contract.TermComponent();
514    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
515    if (src.hasIdentifier())
516      tgt.setIdentifier(Identifier40_50.convertIdentifier(src.getIdentifier()));
517    if (src.hasIssued())
518      tgt.setIssuedElement(DateTime40_50.convertDateTime(src.getIssuedElement()));
519    if (src.hasApplies())
520      tgt.setApplies(Period40_50.convertPeriod(src.getApplies()));
521    if (src.hasTopic())
522      tgt.setTopic(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getTopic()));
523    if (src.hasType())
524      tgt.setType(CodeableConcept40_50.convertCodeableConcept(src.getType()));
525    if (src.hasSubType())
526      tgt.setSubType(CodeableConcept40_50.convertCodeableConcept(src.getSubType()));
527    if (src.hasText())
528      tgt.setTextElement(String40_50.convertString(src.getTextElement()));
529    for (org.hl7.fhir.r5.model.Contract.SecurityLabelComponent t : src.getSecurityLabel())
530      tgt.addSecurityLabel(convertSecurityLabelComponent(t));
531    if (src.hasOffer())
532      tgt.setOffer(convertContractOfferComponent(src.getOffer()));
533    for (org.hl7.fhir.r5.model.Contract.ContractAssetComponent t : src.getAsset())
534      tgt.addAsset(convertContractAssetComponent(t));
535    for (org.hl7.fhir.r5.model.Contract.ActionComponent t : src.getAction()) tgt.addAction(convertActionComponent(t));
536    for (org.hl7.fhir.r5.model.Contract.TermComponent t : src.getGroup()) tgt.addGroup(convertTermComponent(t));
537    return tgt;
538  }
539
540  public static org.hl7.fhir.r5.model.Contract.SecurityLabelComponent convertSecurityLabelComponent(org.hl7.fhir.r4.model.Contract.SecurityLabelComponent src) throws FHIRException {
541    if (src == null)
542      return null;
543    org.hl7.fhir.r5.model.Contract.SecurityLabelComponent tgt = new org.hl7.fhir.r5.model.Contract.SecurityLabelComponent();
544    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
545    for (org.hl7.fhir.r4.model.UnsignedIntType t : src.getNumber())
546      tgt.getNumber().add(UnsignedInt40_50.convertUnsignedInt(t));
547    if (src.hasClassification())
548      tgt.setClassification(Coding40_50.convertCoding(src.getClassification()));
549    for (org.hl7.fhir.r4.model.Coding t : src.getCategory()) tgt.addCategory(Coding40_50.convertCoding(t));
550    for (org.hl7.fhir.r4.model.Coding t : src.getControl()) tgt.addControl(Coding40_50.convertCoding(t));
551    return tgt;
552  }
553
554  public static org.hl7.fhir.r4.model.Contract.SecurityLabelComponent convertSecurityLabelComponent(org.hl7.fhir.r5.model.Contract.SecurityLabelComponent src) throws FHIRException {
555    if (src == null)
556      return null;
557    org.hl7.fhir.r4.model.Contract.SecurityLabelComponent tgt = new org.hl7.fhir.r4.model.Contract.SecurityLabelComponent();
558    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
559    for (org.hl7.fhir.r5.model.UnsignedIntType t : src.getNumber())
560      tgt.getNumber().add(UnsignedInt40_50.convertUnsignedInt(t));
561    if (src.hasClassification())
562      tgt.setClassification(Coding40_50.convertCoding(src.getClassification()));
563    for (org.hl7.fhir.r5.model.Coding t : src.getCategory()) tgt.addCategory(Coding40_50.convertCoding(t));
564    for (org.hl7.fhir.r5.model.Coding t : src.getControl()) tgt.addControl(Coding40_50.convertCoding(t));
565    return tgt;
566  }
567
568  public static org.hl7.fhir.r5.model.Contract.ContractOfferComponent convertContractOfferComponent(org.hl7.fhir.r4.model.Contract.ContractOfferComponent src) throws FHIRException {
569    if (src == null)
570      return null;
571    org.hl7.fhir.r5.model.Contract.ContractOfferComponent tgt = new org.hl7.fhir.r5.model.Contract.ContractOfferComponent();
572    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
573    for (org.hl7.fhir.r4.model.Identifier t : src.getIdentifier())
574      tgt.addIdentifier(Identifier40_50.convertIdentifier(t));
575    for (org.hl7.fhir.r4.model.Contract.ContractPartyComponent t : src.getParty())
576      tgt.addParty(convertContractPartyComponent(t));
577    if (src.hasTopic())
578      tgt.setTopic(Reference40_50.convertReference(src.getTopic()));
579    if (src.hasType())
580      tgt.setType(CodeableConcept40_50.convertCodeableConcept(src.getType()));
581    if (src.hasDecision())
582      tgt.setDecision(CodeableConcept40_50.convertCodeableConcept(src.getDecision()));
583    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getDecisionMode())
584      tgt.addDecisionMode(CodeableConcept40_50.convertCodeableConcept(t));
585    for (org.hl7.fhir.r4.model.Contract.AnswerComponent t : src.getAnswer()) tgt.addAnswer(convertAnswerComponent(t));
586    if (src.hasText())
587      tgt.setTextElement(String40_50.convertString(src.getTextElement()));
588    for (org.hl7.fhir.r4.model.StringType t : src.getLinkId()) tgt.getLinkId().add(String40_50.convertString(t));
589    for (org.hl7.fhir.r4.model.UnsignedIntType t : src.getSecurityLabelNumber())
590      tgt.getSecurityLabelNumber().add(UnsignedInt40_50.convertUnsignedInt(t));
591    return tgt;
592  }
593
594  public static org.hl7.fhir.r4.model.Contract.ContractOfferComponent convertContractOfferComponent(org.hl7.fhir.r5.model.Contract.ContractOfferComponent src) throws FHIRException {
595    if (src == null)
596      return null;
597    org.hl7.fhir.r4.model.Contract.ContractOfferComponent tgt = new org.hl7.fhir.r4.model.Contract.ContractOfferComponent();
598    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
599    for (org.hl7.fhir.r5.model.Identifier t : src.getIdentifier())
600      tgt.addIdentifier(Identifier40_50.convertIdentifier(t));
601    for (org.hl7.fhir.r5.model.Contract.ContractPartyComponent t : src.getParty())
602      tgt.addParty(convertContractPartyComponent(t));
603    if (src.hasTopic())
604      tgt.setTopic(Reference40_50.convertReference(src.getTopic()));
605    if (src.hasType())
606      tgt.setType(CodeableConcept40_50.convertCodeableConcept(src.getType()));
607    if (src.hasDecision())
608      tgt.setDecision(CodeableConcept40_50.convertCodeableConcept(src.getDecision()));
609    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getDecisionMode())
610      tgt.addDecisionMode(CodeableConcept40_50.convertCodeableConcept(t));
611    for (org.hl7.fhir.r5.model.Contract.AnswerComponent t : src.getAnswer()) tgt.addAnswer(convertAnswerComponent(t));
612    if (src.hasText())
613      tgt.setTextElement(String40_50.convertString(src.getTextElement()));
614    for (org.hl7.fhir.r5.model.StringType t : src.getLinkId()) tgt.getLinkId().add(String40_50.convertString(t));
615    for (org.hl7.fhir.r5.model.UnsignedIntType t : src.getSecurityLabelNumber())
616      tgt.getSecurityLabelNumber().add(UnsignedInt40_50.convertUnsignedInt(t));
617    return tgt;
618  }
619
620  public static org.hl7.fhir.r5.model.Contract.ContractPartyComponent convertContractPartyComponent(org.hl7.fhir.r4.model.Contract.ContractPartyComponent src) throws FHIRException {
621    if (src == null)
622      return null;
623    org.hl7.fhir.r5.model.Contract.ContractPartyComponent tgt = new org.hl7.fhir.r5.model.Contract.ContractPartyComponent();
624    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
625    for (org.hl7.fhir.r4.model.Reference t : src.getReference()) tgt.addReference(Reference40_50.convertReference(t));
626    if (src.hasRole())
627      tgt.setRole(CodeableConcept40_50.convertCodeableConcept(src.getRole()));
628    return tgt;
629  }
630
631  public static org.hl7.fhir.r4.model.Contract.ContractPartyComponent convertContractPartyComponent(org.hl7.fhir.r5.model.Contract.ContractPartyComponent src) throws FHIRException {
632    if (src == null)
633      return null;
634    org.hl7.fhir.r4.model.Contract.ContractPartyComponent tgt = new org.hl7.fhir.r4.model.Contract.ContractPartyComponent();
635    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
636    for (org.hl7.fhir.r5.model.Reference t : src.getReference()) tgt.addReference(Reference40_50.convertReference(t));
637    if (src.hasRole())
638      tgt.setRole(CodeableConcept40_50.convertCodeableConcept(src.getRole()));
639    return tgt;
640  }
641
642  public static org.hl7.fhir.r5.model.Contract.AnswerComponent convertAnswerComponent(org.hl7.fhir.r4.model.Contract.AnswerComponent src) throws FHIRException {
643    if (src == null)
644      return null;
645    org.hl7.fhir.r5.model.Contract.AnswerComponent tgt = new org.hl7.fhir.r5.model.Contract.AnswerComponent();
646    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
647    if (src.hasValue())
648      tgt.setValue(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getValue()));
649    return tgt;
650  }
651
652  public static org.hl7.fhir.r4.model.Contract.AnswerComponent convertAnswerComponent(org.hl7.fhir.r5.model.Contract.AnswerComponent src) throws FHIRException {
653    if (src == null)
654      return null;
655    org.hl7.fhir.r4.model.Contract.AnswerComponent tgt = new org.hl7.fhir.r4.model.Contract.AnswerComponent();
656    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
657    if (src.hasValue())
658      tgt.setValue(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getValue()));
659    return tgt;
660  }
661
662  public static org.hl7.fhir.r5.model.Contract.ContractAssetComponent convertContractAssetComponent(org.hl7.fhir.r4.model.Contract.ContractAssetComponent src) throws FHIRException {
663    if (src == null)
664      return null;
665    org.hl7.fhir.r5.model.Contract.ContractAssetComponent tgt = new org.hl7.fhir.r5.model.Contract.ContractAssetComponent();
666    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
667    if (src.hasScope())
668      tgt.setScope(CodeableConcept40_50.convertCodeableConcept(src.getScope()));
669    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getType())
670      tgt.addType(CodeableConcept40_50.convertCodeableConcept(t));
671    for (org.hl7.fhir.r4.model.Reference t : src.getTypeReference())
672      tgt.addTypeReference(Reference40_50.convertReference(t));
673    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getSubtype())
674      tgt.addSubtype(CodeableConcept40_50.convertCodeableConcept(t));
675    if (src.hasRelationship())
676      tgt.setRelationship(Coding40_50.convertCoding(src.getRelationship()));
677    for (org.hl7.fhir.r4.model.Contract.AssetContextComponent t : src.getContext())
678      tgt.addContext(convertAssetContextComponent(t));
679    if (src.hasCondition())
680      tgt.setConditionElement(String40_50.convertString(src.getConditionElement()));
681    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getPeriodType())
682      tgt.addPeriodType(CodeableConcept40_50.convertCodeableConcept(t));
683    for (org.hl7.fhir.r4.model.Period t : src.getPeriod()) tgt.addPeriod(Period40_50.convertPeriod(t));
684    for (org.hl7.fhir.r4.model.Period t : src.getUsePeriod()) tgt.addUsePeriod(Period40_50.convertPeriod(t));
685    if (src.hasText())
686      tgt.setTextElement(String40_50.convertString(src.getTextElement()));
687    for (org.hl7.fhir.r4.model.StringType t : src.getLinkId()) tgt.getLinkId().add(String40_50.convertString(t));
688    for (org.hl7.fhir.r4.model.Contract.AnswerComponent t : src.getAnswer()) tgt.addAnswer(convertAnswerComponent(t));
689    for (org.hl7.fhir.r4.model.UnsignedIntType t : src.getSecurityLabelNumber())
690      tgt.getSecurityLabelNumber().add(UnsignedInt40_50.convertUnsignedInt(t));
691    for (org.hl7.fhir.r4.model.Contract.ValuedItemComponent t : src.getValuedItem())
692      tgt.addValuedItem(convertValuedItemComponent(t));
693    return tgt;
694  }
695
696  public static org.hl7.fhir.r4.model.Contract.ContractAssetComponent convertContractAssetComponent(org.hl7.fhir.r5.model.Contract.ContractAssetComponent src) throws FHIRException {
697    if (src == null)
698      return null;
699    org.hl7.fhir.r4.model.Contract.ContractAssetComponent tgt = new org.hl7.fhir.r4.model.Contract.ContractAssetComponent();
700    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
701    if (src.hasScope())
702      tgt.setScope(CodeableConcept40_50.convertCodeableConcept(src.getScope()));
703    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getType())
704      tgt.addType(CodeableConcept40_50.convertCodeableConcept(t));
705    for (org.hl7.fhir.r5.model.Reference t : src.getTypeReference())
706      tgt.addTypeReference(Reference40_50.convertReference(t));
707    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getSubtype())
708      tgt.addSubtype(CodeableConcept40_50.convertCodeableConcept(t));
709    if (src.hasRelationship())
710      tgt.setRelationship(Coding40_50.convertCoding(src.getRelationship()));
711    for (org.hl7.fhir.r5.model.Contract.AssetContextComponent t : src.getContext())
712      tgt.addContext(convertAssetContextComponent(t));
713    if (src.hasCondition())
714      tgt.setConditionElement(String40_50.convertString(src.getConditionElement()));
715    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getPeriodType())
716      tgt.addPeriodType(CodeableConcept40_50.convertCodeableConcept(t));
717    for (org.hl7.fhir.r5.model.Period t : src.getPeriod()) tgt.addPeriod(Period40_50.convertPeriod(t));
718    for (org.hl7.fhir.r5.model.Period t : src.getUsePeriod()) tgt.addUsePeriod(Period40_50.convertPeriod(t));
719    if (src.hasText())
720      tgt.setTextElement(String40_50.convertString(src.getTextElement()));
721    for (org.hl7.fhir.r5.model.StringType t : src.getLinkId()) tgt.getLinkId().add(String40_50.convertString(t));
722    for (org.hl7.fhir.r5.model.Contract.AnswerComponent t : src.getAnswer()) tgt.addAnswer(convertAnswerComponent(t));
723    for (org.hl7.fhir.r5.model.UnsignedIntType t : src.getSecurityLabelNumber())
724      tgt.getSecurityLabelNumber().add(UnsignedInt40_50.convertUnsignedInt(t));
725    for (org.hl7.fhir.r5.model.Contract.ValuedItemComponent t : src.getValuedItem())
726      tgt.addValuedItem(convertValuedItemComponent(t));
727    return tgt;
728  }
729
730  public static org.hl7.fhir.r5.model.Contract.AssetContextComponent convertAssetContextComponent(org.hl7.fhir.r4.model.Contract.AssetContextComponent src) throws FHIRException {
731    if (src == null)
732      return null;
733    org.hl7.fhir.r5.model.Contract.AssetContextComponent tgt = new org.hl7.fhir.r5.model.Contract.AssetContextComponent();
734    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
735    if (src.hasReference())
736      tgt.setReference(Reference40_50.convertReference(src.getReference()));
737    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getCode())
738      tgt.addCode(CodeableConcept40_50.convertCodeableConcept(t));
739    if (src.hasText())
740      tgt.setTextElement(String40_50.convertString(src.getTextElement()));
741    return tgt;
742  }
743
744  public static org.hl7.fhir.r4.model.Contract.AssetContextComponent convertAssetContextComponent(org.hl7.fhir.r5.model.Contract.AssetContextComponent src) throws FHIRException {
745    if (src == null)
746      return null;
747    org.hl7.fhir.r4.model.Contract.AssetContextComponent tgt = new org.hl7.fhir.r4.model.Contract.AssetContextComponent();
748    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
749    if (src.hasReference())
750      tgt.setReference(Reference40_50.convertReference(src.getReference()));
751    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getCode())
752      tgt.addCode(CodeableConcept40_50.convertCodeableConcept(t));
753    if (src.hasText())
754      tgt.setTextElement(String40_50.convertString(src.getTextElement()));
755    return tgt;
756  }
757
758  public static org.hl7.fhir.r5.model.Contract.ValuedItemComponent convertValuedItemComponent(org.hl7.fhir.r4.model.Contract.ValuedItemComponent src) throws FHIRException {
759    if (src == null)
760      return null;
761    org.hl7.fhir.r5.model.Contract.ValuedItemComponent tgt = new org.hl7.fhir.r5.model.Contract.ValuedItemComponent();
762    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
763    if (src.hasEntity())
764      tgt.setEntity(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getEntity()));
765    if (src.hasIdentifier())
766      tgt.setIdentifier(Identifier40_50.convertIdentifier(src.getIdentifier()));
767    if (src.hasEffectiveTime())
768      tgt.setEffectiveTimeElement(DateTime40_50.convertDateTime(src.getEffectiveTimeElement()));
769    if (src.hasQuantity())
770      tgt.setQuantity(SimpleQuantity40_50.convertSimpleQuantity(src.getQuantity()));
771    if (src.hasUnitPrice())
772      tgt.setUnitPrice(Money40_50.convertMoney(src.getUnitPrice()));
773    if (src.hasFactor())
774      tgt.setFactorElement(Decimal40_50.convertDecimal(src.getFactorElement()));
775    if (src.hasPoints())
776      tgt.setPointsElement(Decimal40_50.convertDecimal(src.getPointsElement()));
777    if (src.hasNet())
778      tgt.setNet(Money40_50.convertMoney(src.getNet()));
779    if (src.hasPayment())
780      tgt.setPaymentElement(String40_50.convertString(src.getPaymentElement()));
781    if (src.hasPaymentDate())
782      tgt.setPaymentDateElement(DateTime40_50.convertDateTime(src.getPaymentDateElement()));
783    if (src.hasResponsible())
784      tgt.setResponsible(Reference40_50.convertReference(src.getResponsible()));
785    if (src.hasRecipient())
786      tgt.setRecipient(Reference40_50.convertReference(src.getRecipient()));
787    for (org.hl7.fhir.r4.model.StringType t : src.getLinkId()) tgt.getLinkId().add(String40_50.convertString(t));
788    for (org.hl7.fhir.r4.model.UnsignedIntType t : src.getSecurityLabelNumber())
789      tgt.getSecurityLabelNumber().add(UnsignedInt40_50.convertUnsignedInt(t));
790    return tgt;
791  }
792
793  public static org.hl7.fhir.r4.model.Contract.ValuedItemComponent convertValuedItemComponent(org.hl7.fhir.r5.model.Contract.ValuedItemComponent src) throws FHIRException {
794    if (src == null)
795      return null;
796    org.hl7.fhir.r4.model.Contract.ValuedItemComponent tgt = new org.hl7.fhir.r4.model.Contract.ValuedItemComponent();
797    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
798    if (src.hasEntity())
799      tgt.setEntity(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getEntity()));
800    if (src.hasIdentifier())
801      tgt.setIdentifier(Identifier40_50.convertIdentifier(src.getIdentifier()));
802    if (src.hasEffectiveTime())
803      tgt.setEffectiveTimeElement(DateTime40_50.convertDateTime(src.getEffectiveTimeElement()));
804    if (src.hasQuantity())
805      tgt.setQuantity(SimpleQuantity40_50.convertSimpleQuantity(src.getQuantity()));
806    if (src.hasUnitPrice())
807      tgt.setUnitPrice(Money40_50.convertMoney(src.getUnitPrice()));
808    if (src.hasFactor())
809      tgt.setFactorElement(Decimal40_50.convertDecimal(src.getFactorElement()));
810    if (src.hasPoints())
811      tgt.setPointsElement(Decimal40_50.convertDecimal(src.getPointsElement()));
812    if (src.hasNet())
813      tgt.setNet(Money40_50.convertMoney(src.getNet()));
814    if (src.hasPayment())
815      tgt.setPaymentElement(String40_50.convertString(src.getPaymentElement()));
816    if (src.hasPaymentDate())
817      tgt.setPaymentDateElement(DateTime40_50.convertDateTime(src.getPaymentDateElement()));
818    if (src.hasResponsible())
819      tgt.setResponsible(Reference40_50.convertReference(src.getResponsible()));
820    if (src.hasRecipient())
821      tgt.setRecipient(Reference40_50.convertReference(src.getRecipient()));
822    for (org.hl7.fhir.r5.model.StringType t : src.getLinkId()) tgt.getLinkId().add(String40_50.convertString(t));
823    for (org.hl7.fhir.r5.model.UnsignedIntType t : src.getSecurityLabelNumber())
824      tgt.getSecurityLabelNumber().add(UnsignedInt40_50.convertUnsignedInt(t));
825    return tgt;
826  }
827
828  public static org.hl7.fhir.r5.model.Contract.ActionComponent convertActionComponent(org.hl7.fhir.r4.model.Contract.ActionComponent src) throws FHIRException {
829    if (src == null)
830      return null;
831    org.hl7.fhir.r5.model.Contract.ActionComponent tgt = new org.hl7.fhir.r5.model.Contract.ActionComponent();
832    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
833    if (src.hasDoNotPerform())
834      tgt.setDoNotPerformElement(Boolean40_50.convertBoolean(src.getDoNotPerformElement()));
835    if (src.hasType())
836      tgt.setType(CodeableConcept40_50.convertCodeableConcept(src.getType()));
837    for (org.hl7.fhir.r4.model.Contract.ActionSubjectComponent t : src.getSubject())
838      tgt.addSubject(convertActionSubjectComponent(t));
839    if (src.hasIntent())
840      tgt.setIntent(CodeableConcept40_50.convertCodeableConcept(src.getIntent()));
841    for (org.hl7.fhir.r4.model.StringType t : src.getLinkId()) tgt.getLinkId().add(String40_50.convertString(t));
842    if (src.hasStatus())
843      tgt.setStatus(CodeableConcept40_50.convertCodeableConcept(src.getStatus()));
844    if (src.hasContext())
845      tgt.setContext(Reference40_50.convertReference(src.getContext()));
846    for (org.hl7.fhir.r4.model.StringType t : src.getContextLinkId())
847      tgt.getContextLinkId().add(String40_50.convertString(t));
848    if (src.hasOccurrence())
849      tgt.setOccurrence(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getOccurrence()));
850    for (org.hl7.fhir.r4.model.Reference t : src.getRequester()) tgt.addRequester(Reference40_50.convertReference(t));
851    for (org.hl7.fhir.r4.model.StringType t : src.getRequesterLinkId())
852      tgt.getRequesterLinkId().add(String40_50.convertString(t));
853    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getPerformerType())
854      tgt.addPerformerType(CodeableConcept40_50.convertCodeableConcept(t));
855    if (src.hasPerformerRole())
856      tgt.setPerformerRole(CodeableConcept40_50.convertCodeableConcept(src.getPerformerRole()));
857    if (src.hasPerformer())
858      tgt.setPerformer(Reference40_50.convertReference(src.getPerformer()));
859    for (org.hl7.fhir.r4.model.StringType t : src.getPerformerLinkId())
860      tgt.getPerformerLinkId().add(String40_50.convertString(t));
861    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getReasonCode())
862      tgt.addReason(CodeableConcept40_50.convertCodeableConceptToCodeableReference(t));
863    for (org.hl7.fhir.r4.model.Reference t : src.getReasonReference())
864      tgt.addReason(Reference40_50.convertReferenceToCodeableReference(t));
865    for (org.hl7.fhir.r4.model.StringType t : src.getReasonLinkId())
866      tgt.getReasonLinkId().add(String40_50.convertString(t));
867    for (org.hl7.fhir.r4.model.Annotation t : src.getNote()) tgt.addNote(Annotation40_50.convertAnnotation(t));
868    for (org.hl7.fhir.r4.model.UnsignedIntType t : src.getSecurityLabelNumber())
869      tgt.getSecurityLabelNumber().add(UnsignedInt40_50.convertUnsignedInt(t));
870    return tgt;
871  }
872
873  public static org.hl7.fhir.r4.model.Contract.ActionComponent convertActionComponent(org.hl7.fhir.r5.model.Contract.ActionComponent src) throws FHIRException {
874    if (src == null)
875      return null;
876    org.hl7.fhir.r4.model.Contract.ActionComponent tgt = new org.hl7.fhir.r4.model.Contract.ActionComponent();
877    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
878    if (src.hasDoNotPerform())
879      tgt.setDoNotPerformElement(Boolean40_50.convertBoolean(src.getDoNotPerformElement()));
880    if (src.hasType())
881      tgt.setType(CodeableConcept40_50.convertCodeableConcept(src.getType()));
882    for (org.hl7.fhir.r5.model.Contract.ActionSubjectComponent t : src.getSubject())
883      tgt.addSubject(convertActionSubjectComponent(t));
884    if (src.hasIntent())
885      tgt.setIntent(CodeableConcept40_50.convertCodeableConcept(src.getIntent()));
886    for (org.hl7.fhir.r5.model.StringType t : src.getLinkId()) tgt.getLinkId().add(String40_50.convertString(t));
887    if (src.hasStatus())
888      tgt.setStatus(CodeableConcept40_50.convertCodeableConcept(src.getStatus()));
889    if (src.hasContext())
890      tgt.setContext(Reference40_50.convertReference(src.getContext()));
891    for (org.hl7.fhir.r5.model.StringType t : src.getContextLinkId())
892      tgt.getContextLinkId().add(String40_50.convertString(t));
893    if (src.hasOccurrence())
894      tgt.setOccurrence(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getOccurrence()));
895    for (org.hl7.fhir.r5.model.Reference t : src.getRequester()) tgt.addRequester(Reference40_50.convertReference(t));
896    for (org.hl7.fhir.r5.model.StringType t : src.getRequesterLinkId())
897      tgt.getRequesterLinkId().add(String40_50.convertString(t));
898    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getPerformerType())
899      tgt.addPerformerType(CodeableConcept40_50.convertCodeableConcept(t));
900    if (src.hasPerformerRole())
901      tgt.setPerformerRole(CodeableConcept40_50.convertCodeableConcept(src.getPerformerRole()));
902    if (src.hasPerformer())
903      tgt.setPerformer(Reference40_50.convertReference(src.getPerformer()));
904    for (org.hl7.fhir.r5.model.StringType t : src.getPerformerLinkId())
905      tgt.getPerformerLinkId().add(String40_50.convertString(t));
906    for (CodeableReference t : src.getReason())
907      if (t.hasConcept())
908        tgt.addReasonCode(CodeableConcept40_50.convertCodeableConcept(t.getConcept()));
909    for (CodeableReference t : src.getReason())
910      if (t.hasReference())
911        tgt.addReasonReference(Reference40_50.convertReference(t.getReference()));
912    for (org.hl7.fhir.r5.model.StringType t : src.getReasonLinkId()) tgt.getReason().add(String40_50.convertString(t));
913    for (org.hl7.fhir.r5.model.StringType t : src.getReasonLinkId())
914      tgt.getReasonLinkId().add(String40_50.convertString(t));
915    for (org.hl7.fhir.r5.model.Annotation t : src.getNote()) tgt.addNote(Annotation40_50.convertAnnotation(t));
916    for (org.hl7.fhir.r5.model.UnsignedIntType t : src.getSecurityLabelNumber())
917      tgt.getSecurityLabelNumber().add(UnsignedInt40_50.convertUnsignedInt(t));
918    return tgt;
919  }
920
921  public static org.hl7.fhir.r5.model.Contract.ActionSubjectComponent convertActionSubjectComponent(org.hl7.fhir.r4.model.Contract.ActionSubjectComponent src) throws FHIRException {
922    if (src == null)
923      return null;
924    org.hl7.fhir.r5.model.Contract.ActionSubjectComponent tgt = new org.hl7.fhir.r5.model.Contract.ActionSubjectComponent();
925    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
926    for (org.hl7.fhir.r4.model.Reference t : src.getReference()) tgt.addReference(Reference40_50.convertReference(t));
927    if (src.hasRole())
928      tgt.setRole(CodeableConcept40_50.convertCodeableConcept(src.getRole()));
929    return tgt;
930  }
931
932  public static org.hl7.fhir.r4.model.Contract.ActionSubjectComponent convertActionSubjectComponent(org.hl7.fhir.r5.model.Contract.ActionSubjectComponent src) throws FHIRException {
933    if (src == null)
934      return null;
935    org.hl7.fhir.r4.model.Contract.ActionSubjectComponent tgt = new org.hl7.fhir.r4.model.Contract.ActionSubjectComponent();
936    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
937    for (org.hl7.fhir.r5.model.Reference t : src.getReference()) tgt.addReference(Reference40_50.convertReference(t));
938    if (src.hasRole())
939      tgt.setRole(CodeableConcept40_50.convertCodeableConcept(src.getRole()));
940    return tgt;
941  }
942
943  public static org.hl7.fhir.r5.model.Contract.SignatoryComponent convertSignatoryComponent(org.hl7.fhir.r4.model.Contract.SignatoryComponent src) throws FHIRException {
944    if (src == null)
945      return null;
946    org.hl7.fhir.r5.model.Contract.SignatoryComponent tgt = new org.hl7.fhir.r5.model.Contract.SignatoryComponent();
947    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
948    if (src.hasType())
949      tgt.setType(Coding40_50.convertCoding(src.getType()));
950    if (src.hasParty())
951      tgt.setParty(Reference40_50.convertReference(src.getParty()));
952    for (org.hl7.fhir.r4.model.Signature t : src.getSignature()) tgt.addSignature(Signature40_50.convertSignature(t));
953    return tgt;
954  }
955
956  public static org.hl7.fhir.r4.model.Contract.SignatoryComponent convertSignatoryComponent(org.hl7.fhir.r5.model.Contract.SignatoryComponent src) throws FHIRException {
957    if (src == null)
958      return null;
959    org.hl7.fhir.r4.model.Contract.SignatoryComponent tgt = new org.hl7.fhir.r4.model.Contract.SignatoryComponent();
960    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
961    if (src.hasType())
962      tgt.setType(Coding40_50.convertCoding(src.getType()));
963    if (src.hasParty())
964      tgt.setParty(Reference40_50.convertReference(src.getParty()));
965    for (org.hl7.fhir.r5.model.Signature t : src.getSignature()) tgt.addSignature(Signature40_50.convertSignature(t));
966    return tgt;
967  }
968
969  public static org.hl7.fhir.r5.model.Contract.FriendlyLanguageComponent convertFriendlyLanguageComponent(org.hl7.fhir.r4.model.Contract.FriendlyLanguageComponent src) throws FHIRException {
970    if (src == null)
971      return null;
972    org.hl7.fhir.r5.model.Contract.FriendlyLanguageComponent tgt = new org.hl7.fhir.r5.model.Contract.FriendlyLanguageComponent();
973    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
974    if (src.hasContent())
975      tgt.setContent(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getContent()));
976    return tgt;
977  }
978
979  public static org.hl7.fhir.r4.model.Contract.FriendlyLanguageComponent convertFriendlyLanguageComponent(org.hl7.fhir.r5.model.Contract.FriendlyLanguageComponent src) throws FHIRException {
980    if (src == null)
981      return null;
982    org.hl7.fhir.r4.model.Contract.FriendlyLanguageComponent tgt = new org.hl7.fhir.r4.model.Contract.FriendlyLanguageComponent();
983    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
984    if (src.hasContent())
985      tgt.setContent(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getContent()));
986    return tgt;
987  }
988
989  public static org.hl7.fhir.r5.model.Contract.LegalLanguageComponent convertLegalLanguageComponent(org.hl7.fhir.r4.model.Contract.LegalLanguageComponent src) throws FHIRException {
990    if (src == null)
991      return null;
992    org.hl7.fhir.r5.model.Contract.LegalLanguageComponent tgt = new org.hl7.fhir.r5.model.Contract.LegalLanguageComponent();
993    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
994    if (src.hasContent())
995      tgt.setContent(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getContent()));
996    return tgt;
997  }
998
999  public static org.hl7.fhir.r4.model.Contract.LegalLanguageComponent convertLegalLanguageComponent(org.hl7.fhir.r5.model.Contract.LegalLanguageComponent src) throws FHIRException {
1000    if (src == null)
1001      return null;
1002    org.hl7.fhir.r4.model.Contract.LegalLanguageComponent tgt = new org.hl7.fhir.r4.model.Contract.LegalLanguageComponent();
1003    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
1004    if (src.hasContent())
1005      tgt.setContent(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getContent()));
1006    return tgt;
1007  }
1008
1009  public static org.hl7.fhir.r5.model.Contract.ComputableLanguageComponent convertComputableLanguageComponent(org.hl7.fhir.r4.model.Contract.ComputableLanguageComponent src) throws FHIRException {
1010    if (src == null)
1011      return null;
1012    org.hl7.fhir.r5.model.Contract.ComputableLanguageComponent tgt = new org.hl7.fhir.r5.model.Contract.ComputableLanguageComponent();
1013    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
1014    if (src.hasContent())
1015      tgt.setContent(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getContent()));
1016    return tgt;
1017  }
1018
1019  public static org.hl7.fhir.r4.model.Contract.ComputableLanguageComponent convertComputableLanguageComponent(org.hl7.fhir.r5.model.Contract.ComputableLanguageComponent src) throws FHIRException {
1020    if (src == null)
1021      return null;
1022    org.hl7.fhir.r4.model.Contract.ComputableLanguageComponent tgt = new org.hl7.fhir.r4.model.Contract.ComputableLanguageComponent();
1023    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
1024    if (src.hasContent())
1025      tgt.setContent(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getContent()));
1026    return tgt;
1027  }
1028}