001package org.hl7.fhir.convertors.conv43_50.resources43_50;
002
003import org.hl7.fhir.convertors.context.ConversionContext43_50;
004import org.hl7.fhir.convertors.conv43_50.datatypes43_50.general43_50.Attachment43_50;
005import org.hl7.fhir.convertors.conv43_50.datatypes43_50.general43_50.CodeableConcept43_50;
006import org.hl7.fhir.convertors.conv43_50.datatypes43_50.general43_50.Coding43_50;
007import org.hl7.fhir.convertors.conv43_50.datatypes43_50.general43_50.Identifier43_50;
008import org.hl7.fhir.convertors.conv43_50.datatypes43_50.general43_50.Money43_50;
009import org.hl7.fhir.convertors.conv43_50.datatypes43_50.general43_50.Period43_50;
010import org.hl7.fhir.convertors.conv43_50.datatypes43_50.general43_50.SimpleQuantity43_50;
011import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.Boolean43_50;
012import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.Date43_50;
013import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.DateTime43_50;
014import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.Decimal43_50;
015import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.PositiveInt43_50;
016import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.String43_50;
017import org.hl7.fhir.convertors.conv43_50.datatypes43_50.special43_50.Reference43_50;
018import org.hl7.fhir.exceptions.FHIRException;
019import org.hl7.fhir.r5.model.Enumeration;
020import org.hl7.fhir.r5.model.Enumerations;
021import org.hl7.fhir.r5.model.ExplanationOfBenefit;
022
023/*
024  Copyright (c) 2011+, HL7, Inc.
025  All rights reserved.
026  
027  Redistribution and use in source and binary forms, with or without modification, 
028  are permitted provided that the following conditions are met:
029  
030   * Redistributions of source code must retain the above copyright notice, this 
031     list of conditions and the following disclaimer.
032   * Redistributions in binary form must reproduce the above copyright notice, 
033     this list of conditions and the following disclaimer in the documentation 
034     and/or other materials provided with the distribution.
035   * Neither the name of HL7 nor the names of its contributors may be used to 
036     endorse or promote products derived from this software without specific 
037     prior written permission.
038  
039  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
040  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
041  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
042  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
043  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
044  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
045  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
046  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
047  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
048  POSSIBILITY OF SUCH DAMAGE.
049  
050*/
051// Generated on Sun, Feb 24, 2019 11:37+1100 for FHIR v4.0.0
052public class ExplanationOfBenefit43_50 {
053
054  public static org.hl7.fhir.r5.model.ExplanationOfBenefit convertExplanationOfBenefit(org.hl7.fhir.r4b.model.ExplanationOfBenefit src) throws FHIRException {
055    if (src == null)
056      return null;
057    org.hl7.fhir.r5.model.ExplanationOfBenefit tgt = new org.hl7.fhir.r5.model.ExplanationOfBenefit();
058    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyDomainResource(src, tgt);
059    for (org.hl7.fhir.r4b.model.Identifier t : src.getIdentifier())
060      tgt.addIdentifier(Identifier43_50.convertIdentifier(t));
061    if (src.hasStatus())
062      tgt.setStatusElement(convertExplanationOfBenefitStatus(src.getStatusElement()));
063    if (src.hasType())
064      tgt.setType(CodeableConcept43_50.convertCodeableConcept(src.getType()));
065    if (src.hasSubType())
066      tgt.setSubType(CodeableConcept43_50.convertCodeableConcept(src.getSubType()));
067    if (src.hasUse())
068      tgt.setUseElement(convertUse(src.getUseElement()));
069    if (src.hasPatient())
070      tgt.setPatient(Reference43_50.convertReference(src.getPatient()));
071    if (src.hasBillablePeriod())
072      tgt.setBillablePeriod(Period43_50.convertPeriod(src.getBillablePeriod()));
073    if (src.hasCreated())
074      tgt.setCreatedElement(DateTime43_50.convertDateTime(src.getCreatedElement()));
075    if (src.hasEnterer())
076      tgt.setEnterer(Reference43_50.convertReference(src.getEnterer()));
077    if (src.hasInsurer())
078      tgt.setInsurer(Reference43_50.convertReference(src.getInsurer()));
079    if (src.hasProvider())
080      tgt.setProvider(Reference43_50.convertReference(src.getProvider()));
081    if (src.hasPriority())
082      tgt.setPriority(CodeableConcept43_50.convertCodeableConcept(src.getPriority()));
083    if (src.hasFundsReserveRequested())
084      tgt.setFundsReserveRequested(CodeableConcept43_50.convertCodeableConcept(src.getFundsReserveRequested()));
085    if (src.hasFundsReserve())
086      tgt.setFundsReserve(CodeableConcept43_50.convertCodeableConcept(src.getFundsReserve()));
087    for (org.hl7.fhir.r4b.model.ExplanationOfBenefit.RelatedClaimComponent t : src.getRelated())
088      tgt.addRelated(convertRelatedClaimComponent(t));
089    if (src.hasPrescription())
090      tgt.setPrescription(Reference43_50.convertReference(src.getPrescription()));
091    if (src.hasOriginalPrescription())
092      tgt.setOriginalPrescription(Reference43_50.convertReference(src.getOriginalPrescription()));
093    if (src.hasPayee())
094      tgt.setPayee(convertPayeeComponent(src.getPayee()));
095    if (src.hasReferral())
096      tgt.setReferral(Reference43_50.convertReference(src.getReferral()));
097    if (src.hasFacility())
098      tgt.setFacility(Reference43_50.convertReference(src.getFacility()));
099    if (src.hasClaim())
100      tgt.setClaim(Reference43_50.convertReference(src.getClaim()));
101    if (src.hasClaimResponse())
102      tgt.setClaimResponse(Reference43_50.convertReference(src.getClaimResponse()));
103    if (src.hasOutcome())
104      tgt.setOutcomeElement(convertRemittanceOutcome(src.getOutcomeElement()));
105    if (src.hasDisposition())
106      tgt.setDispositionElement(String43_50.convertString(src.getDispositionElement()));
107    for (org.hl7.fhir.r4b.model.StringType t : src.getPreAuthRef())
108      tgt.getPreAuthRef().add(String43_50.convertString(t));
109    for (org.hl7.fhir.r4b.model.Period t : src.getPreAuthRefPeriod())
110      tgt.addPreAuthRefPeriod(Period43_50.convertPeriod(t));
111    for (org.hl7.fhir.r4b.model.ExplanationOfBenefit.CareTeamComponent t : src.getCareTeam())
112      tgt.addCareTeam(convertCareTeamComponent(t));
113    for (org.hl7.fhir.r4b.model.ExplanationOfBenefit.SupportingInformationComponent t : src.getSupportingInfo())
114      tgt.addSupportingInfo(convertSupportingInformationComponent(t));
115    for (org.hl7.fhir.r4b.model.ExplanationOfBenefit.DiagnosisComponent t : src.getDiagnosis())
116      tgt.addDiagnosis(convertDiagnosisComponent(t));
117    for (org.hl7.fhir.r4b.model.ExplanationOfBenefit.ProcedureComponent t : src.getProcedure())
118      tgt.addProcedure(convertProcedureComponent(t));
119    if (src.hasPrecedence())
120      tgt.setPrecedenceElement(PositiveInt43_50.convertPositiveInt(src.getPrecedenceElement()));
121    for (org.hl7.fhir.r4b.model.ExplanationOfBenefit.InsuranceComponent t : src.getInsurance())
122      tgt.addInsurance(convertInsuranceComponent(t));
123    if (src.hasAccident())
124      tgt.setAccident(convertAccidentComponent(src.getAccident()));
125    for (org.hl7.fhir.r4b.model.ExplanationOfBenefit.ItemComponent t : src.getItem())
126      tgt.addItem(convertItemComponent(t));
127    for (org.hl7.fhir.r4b.model.ExplanationOfBenefit.AddedItemComponent t : src.getAddItem())
128      tgt.addAddItem(convertAddedItemComponent(t));
129    for (org.hl7.fhir.r4b.model.ExplanationOfBenefit.AdjudicationComponent t : src.getAdjudication())
130      tgt.addAdjudication(convertAdjudicationComponent(t));
131    for (org.hl7.fhir.r4b.model.ExplanationOfBenefit.TotalComponent t : src.getTotal())
132      tgt.addTotal(convertTotalComponent(t));
133    if (src.hasPayment())
134      tgt.setPayment(convertPaymentComponent(src.getPayment()));
135    if (src.hasFormCode())
136      tgt.setFormCode(CodeableConcept43_50.convertCodeableConcept(src.getFormCode()));
137    if (src.hasForm())
138      tgt.setForm(Attachment43_50.convertAttachment(src.getForm()));
139    for (org.hl7.fhir.r4b.model.ExplanationOfBenefit.NoteComponent t : src.getProcessNote())
140      tgt.addProcessNote(convertNoteComponent(t));
141    if (src.hasBenefitPeriod())
142      tgt.setBenefitPeriod(Period43_50.convertPeriod(src.getBenefitPeriod()));
143    for (org.hl7.fhir.r4b.model.ExplanationOfBenefit.BenefitBalanceComponent t : src.getBenefitBalance())
144      tgt.addBenefitBalance(convertBenefitBalanceComponent(t));
145    return tgt;
146  }
147
148  public static org.hl7.fhir.r4b.model.ExplanationOfBenefit convertExplanationOfBenefit(org.hl7.fhir.r5.model.ExplanationOfBenefit src) throws FHIRException {
149    if (src == null)
150      return null;
151    org.hl7.fhir.r4b.model.ExplanationOfBenefit tgt = new org.hl7.fhir.r4b.model.ExplanationOfBenefit();
152    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyDomainResource(src, tgt);
153    for (org.hl7.fhir.r5.model.Identifier t : src.getIdentifier())
154      tgt.addIdentifier(Identifier43_50.convertIdentifier(t));
155    if (src.hasStatus())
156      tgt.setStatusElement(convertExplanationOfBenefitStatus(src.getStatusElement()));
157    if (src.hasType())
158      tgt.setType(CodeableConcept43_50.convertCodeableConcept(src.getType()));
159    if (src.hasSubType())
160      tgt.setSubType(CodeableConcept43_50.convertCodeableConcept(src.getSubType()));
161    if (src.hasUse())
162      tgt.setUseElement(convertUse(src.getUseElement()));
163    if (src.hasPatient())
164      tgt.setPatient(Reference43_50.convertReference(src.getPatient()));
165    if (src.hasBillablePeriod())
166      tgt.setBillablePeriod(Period43_50.convertPeriod(src.getBillablePeriod()));
167    if (src.hasCreated())
168      tgt.setCreatedElement(DateTime43_50.convertDateTime(src.getCreatedElement()));
169    if (src.hasEnterer())
170      tgt.setEnterer(Reference43_50.convertReference(src.getEnterer()));
171    if (src.hasInsurer())
172      tgt.setInsurer(Reference43_50.convertReference(src.getInsurer()));
173    if (src.hasProvider())
174      tgt.setProvider(Reference43_50.convertReference(src.getProvider()));
175    if (src.hasPriority())
176      tgt.setPriority(CodeableConcept43_50.convertCodeableConcept(src.getPriority()));
177    if (src.hasFundsReserveRequested())
178      tgt.setFundsReserveRequested(CodeableConcept43_50.convertCodeableConcept(src.getFundsReserveRequested()));
179    if (src.hasFundsReserve())
180      tgt.setFundsReserve(CodeableConcept43_50.convertCodeableConcept(src.getFundsReserve()));
181    for (org.hl7.fhir.r5.model.ExplanationOfBenefit.RelatedClaimComponent t : src.getRelated())
182      tgt.addRelated(convertRelatedClaimComponent(t));
183    if (src.hasPrescription())
184      tgt.setPrescription(Reference43_50.convertReference(src.getPrescription()));
185    if (src.hasOriginalPrescription())
186      tgt.setOriginalPrescription(Reference43_50.convertReference(src.getOriginalPrescription()));
187    if (src.hasPayee())
188      tgt.setPayee(convertPayeeComponent(src.getPayee()));
189    if (src.hasReferral())
190      tgt.setReferral(Reference43_50.convertReference(src.getReferral()));
191    if (src.hasFacility())
192      tgt.setFacility(Reference43_50.convertReference(src.getFacility()));
193    if (src.hasClaim())
194      tgt.setClaim(Reference43_50.convertReference(src.getClaim()));
195    if (src.hasClaimResponse())
196      tgt.setClaimResponse(Reference43_50.convertReference(src.getClaimResponse()));
197    if (src.hasOutcome())
198      tgt.setOutcomeElement(convertRemittanceOutcome(src.getOutcomeElement()));
199    if (src.hasDisposition())
200      tgt.setDispositionElement(String43_50.convertString(src.getDispositionElement()));
201    for (org.hl7.fhir.r5.model.StringType t : src.getPreAuthRef())
202      tgt.getPreAuthRef().add(String43_50.convertString(t));
203    for (org.hl7.fhir.r5.model.Period t : src.getPreAuthRefPeriod())
204      tgt.addPreAuthRefPeriod(Period43_50.convertPeriod(t));
205    for (org.hl7.fhir.r5.model.ExplanationOfBenefit.CareTeamComponent t : src.getCareTeam())
206      tgt.addCareTeam(convertCareTeamComponent(t));
207    for (org.hl7.fhir.r5.model.ExplanationOfBenefit.SupportingInformationComponent t : src.getSupportingInfo())
208      tgt.addSupportingInfo(convertSupportingInformationComponent(t));
209    for (org.hl7.fhir.r5.model.ExplanationOfBenefit.DiagnosisComponent t : src.getDiagnosis())
210      tgt.addDiagnosis(convertDiagnosisComponent(t));
211    for (org.hl7.fhir.r5.model.ExplanationOfBenefit.ProcedureComponent t : src.getProcedure())
212      tgt.addProcedure(convertProcedureComponent(t));
213    if (src.hasPrecedence())
214      tgt.setPrecedenceElement(PositiveInt43_50.convertPositiveInt(src.getPrecedenceElement()));
215    for (org.hl7.fhir.r5.model.ExplanationOfBenefit.InsuranceComponent t : src.getInsurance())
216      tgt.addInsurance(convertInsuranceComponent(t));
217    if (src.hasAccident())
218      tgt.setAccident(convertAccidentComponent(src.getAccident()));
219    for (org.hl7.fhir.r5.model.ExplanationOfBenefit.ItemComponent t : src.getItem())
220      tgt.addItem(convertItemComponent(t));
221    for (org.hl7.fhir.r5.model.ExplanationOfBenefit.AddedItemComponent t : src.getAddItem())
222      tgt.addAddItem(convertAddedItemComponent(t));
223    for (org.hl7.fhir.r5.model.ExplanationOfBenefit.AdjudicationComponent t : src.getAdjudication())
224      tgt.addAdjudication(convertAdjudicationComponent(t));
225    for (org.hl7.fhir.r5.model.ExplanationOfBenefit.TotalComponent t : src.getTotal())
226      tgt.addTotal(convertTotalComponent(t));
227    if (src.hasPayment())
228      tgt.setPayment(convertPaymentComponent(src.getPayment()));
229    if (src.hasFormCode())
230      tgt.setFormCode(CodeableConcept43_50.convertCodeableConcept(src.getFormCode()));
231    if (src.hasForm())
232      tgt.setForm(Attachment43_50.convertAttachment(src.getForm()));
233    for (org.hl7.fhir.r5.model.ExplanationOfBenefit.NoteComponent t : src.getProcessNote())
234      tgt.addProcessNote(convertNoteComponent(t));
235    if (src.hasBenefitPeriod())
236      tgt.setBenefitPeriod(Period43_50.convertPeriod(src.getBenefitPeriod()));
237    for (org.hl7.fhir.r5.model.ExplanationOfBenefit.BenefitBalanceComponent t : src.getBenefitBalance())
238      tgt.addBenefitBalance(convertBenefitBalanceComponent(t));
239    return tgt;
240  }
241
242  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ExplanationOfBenefit.ExplanationOfBenefitStatus> convertExplanationOfBenefitStatus(org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.ExplanationOfBenefit.ExplanationOfBenefitStatus> src) throws FHIRException {
243      if (src == null || src.isEmpty())
244          return null;
245      Enumeration<ExplanationOfBenefit.ExplanationOfBenefitStatus> tgt = new Enumeration<>(new ExplanationOfBenefit.ExplanationOfBenefitStatusEnumFactory());
246      ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
247      if (src.getValue() == null) {
248          tgt.setValue(null);
249      } else {
250          switch (src.getValue()) {
251              case ACTIVE:
252                  tgt.setValue(ExplanationOfBenefit.ExplanationOfBenefitStatus.ACTIVE);
253                  break;
254              case CANCELLED:
255                  tgt.setValue(ExplanationOfBenefit.ExplanationOfBenefitStatus.CANCELLED);
256                  break;
257              case DRAFT:
258                  tgt.setValue(ExplanationOfBenefit.ExplanationOfBenefitStatus.DRAFT);
259                  break;
260              case ENTEREDINERROR:
261                  tgt.setValue(ExplanationOfBenefit.ExplanationOfBenefitStatus.ENTEREDINERROR);
262                  break;
263              default:
264                  tgt.setValue(ExplanationOfBenefit.ExplanationOfBenefitStatus.NULL);
265                  break;
266          }
267      }
268      return tgt;
269  }
270
271  static public org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.ExplanationOfBenefit.ExplanationOfBenefitStatus> convertExplanationOfBenefitStatus(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ExplanationOfBenefit.ExplanationOfBenefitStatus> src) throws FHIRException {
272      if (src == null || src.isEmpty())
273          return null;
274      org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.ExplanationOfBenefit.ExplanationOfBenefitStatus> tgt = new org.hl7.fhir.r4b.model.Enumeration<>(new org.hl7.fhir.r4b.model.ExplanationOfBenefit.ExplanationOfBenefitStatusEnumFactory());
275      ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
276      if (src.getValue() == null) {
277          tgt.setValue(null);
278      } else {
279          switch (src.getValue()) {
280              case ACTIVE:
281                  tgt.setValue(org.hl7.fhir.r4b.model.ExplanationOfBenefit.ExplanationOfBenefitStatus.ACTIVE);
282                  break;
283              case CANCELLED:
284                  tgt.setValue(org.hl7.fhir.r4b.model.ExplanationOfBenefit.ExplanationOfBenefitStatus.CANCELLED);
285                  break;
286              case DRAFT:
287                  tgt.setValue(org.hl7.fhir.r4b.model.ExplanationOfBenefit.ExplanationOfBenefitStatus.DRAFT);
288                  break;
289              case ENTEREDINERROR:
290                  tgt.setValue(org.hl7.fhir.r4b.model.ExplanationOfBenefit.ExplanationOfBenefitStatus.ENTEREDINERROR);
291                  break;
292              default:
293                  tgt.setValue(org.hl7.fhir.r4b.model.ExplanationOfBenefit.ExplanationOfBenefitStatus.NULL);
294                  break;
295          }
296      }
297      return tgt;
298  }
299
300  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.Use> convertUse(org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.Enumerations.Use> src) throws FHIRException {
301      if (src == null || src.isEmpty())
302          return null;
303      Enumeration<Enumerations.Use> tgt = new Enumeration<>(new Enumerations.UseEnumFactory());
304      ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
305      if (src.getValue() == null) {
306          tgt.setValue(null);
307      } else {
308          switch (src.getValue()) {
309              case CLAIM:
310                  tgt.setValue(Enumerations.Use.CLAIM);
311                  break;
312              case PREAUTHORIZATION:
313                  tgt.setValue(Enumerations.Use.PREAUTHORIZATION);
314                  break;
315              case PREDETERMINATION:
316                  tgt.setValue(Enumerations.Use.PREDETERMINATION);
317                  break;
318              default:
319                  tgt.setValue(Enumerations.Use.NULL);
320                  break;
321          }
322      }
323      return tgt;
324  }
325
326  static public org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.Enumerations.Use> convertUse(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.Use> src) throws FHIRException {
327      if (src == null || src.isEmpty())
328          return null;
329      org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.Enumerations.Use> tgt = new org.hl7.fhir.r4b.model.Enumeration<>(new org.hl7.fhir.r4b.model.Enumerations.UseEnumFactory());
330      ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
331      if (src.getValue() == null) {
332          tgt.setValue(null);
333      } else {
334          switch (src.getValue()) {
335              case CLAIM:
336                  tgt.setValue(org.hl7.fhir.r4b.model.Enumerations.Use.CLAIM);
337                  break;
338              case PREAUTHORIZATION:
339                  tgt.setValue(org.hl7.fhir.r4b.model.Enumerations.Use.PREAUTHORIZATION);
340                  break;
341              case PREDETERMINATION:
342                  tgt.setValue(org.hl7.fhir.r4b.model.Enumerations.Use.PREDETERMINATION);
343                  break;
344              default:
345                  tgt.setValue(org.hl7.fhir.r4b.model.Enumerations.Use.NULL);
346                  break;
347          }
348      }
349      return tgt;
350  }
351
352  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.ClaimProcessingCodes> convertRemittanceOutcome(org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.Enumerations.RemittanceOutcome> src) throws FHIRException {
353      if (src == null || src.isEmpty())
354          return null;
355      Enumeration<Enumerations.ClaimProcessingCodes> tgt = new Enumeration<>(new Enumerations.ClaimProcessingCodesEnumFactory());
356      ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
357      if (src.getValue() == null) {
358          tgt.setValue(null);
359      } else {
360          switch (src.getValue()) {
361              case QUEUED:
362                  tgt.setValue(Enumerations.ClaimProcessingCodes.QUEUED);
363                  break;
364              case COMPLETE:
365                  tgt.setValue(Enumerations.ClaimProcessingCodes.COMPLETE);
366                  break;
367              case ERROR:
368                  tgt.setValue(Enumerations.ClaimProcessingCodes.ERROR);
369                  break;
370              case PARTIAL:
371                  tgt.setValue(Enumerations.ClaimProcessingCodes.PARTIAL);
372                  break;
373              default:
374                  tgt.setValue(Enumerations.ClaimProcessingCodes.NULL);
375                  break;
376          }
377      }
378      return tgt;
379  }
380
381  static public org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.Enumerations.RemittanceOutcome> convertRemittanceOutcome(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.ClaimProcessingCodes> src) throws FHIRException {
382      if (src == null || src.isEmpty())
383          return null;
384      org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.Enumerations.RemittanceOutcome> tgt = new org.hl7.fhir.r4b.model.Enumeration<>(new org.hl7.fhir.r4b.model.Enumerations.RemittanceOutcomeEnumFactory());
385      ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
386      if (src.getValue() == null) {
387          tgt.setValue(null);
388      } else {
389          switch (src.getValue()) {
390              case QUEUED:
391                  tgt.setValue(org.hl7.fhir.r4b.model.Enumerations.RemittanceOutcome.QUEUED);
392                  break;
393              case COMPLETE:
394                  tgt.setValue(org.hl7.fhir.r4b.model.Enumerations.RemittanceOutcome.COMPLETE);
395                  break;
396              case ERROR:
397                  tgt.setValue(org.hl7.fhir.r4b.model.Enumerations.RemittanceOutcome.ERROR);
398                  break;
399              case PARTIAL:
400                  tgt.setValue(org.hl7.fhir.r4b.model.Enumerations.RemittanceOutcome.PARTIAL);
401                  break;
402              default:
403                  tgt.setValue(org.hl7.fhir.r4b.model.Enumerations.RemittanceOutcome.NULL);
404                  break;
405          }
406      }
407      return tgt;
408  }
409
410  public static org.hl7.fhir.r5.model.ExplanationOfBenefit.RelatedClaimComponent convertRelatedClaimComponent(org.hl7.fhir.r4b.model.ExplanationOfBenefit.RelatedClaimComponent src) throws FHIRException {
411    if (src == null)
412      return null;
413    org.hl7.fhir.r5.model.ExplanationOfBenefit.RelatedClaimComponent tgt = new org.hl7.fhir.r5.model.ExplanationOfBenefit.RelatedClaimComponent();
414    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
415    if (src.hasClaim())
416      tgt.setClaim(Reference43_50.convertReference(src.getClaim()));
417    if (src.hasRelationship())
418      tgt.setRelationship(CodeableConcept43_50.convertCodeableConcept(src.getRelationship()));
419    if (src.hasReference())
420      tgt.setReference(Identifier43_50.convertIdentifier(src.getReference()));
421    return tgt;
422  }
423
424  public static org.hl7.fhir.r4b.model.ExplanationOfBenefit.RelatedClaimComponent convertRelatedClaimComponent(org.hl7.fhir.r5.model.ExplanationOfBenefit.RelatedClaimComponent src) throws FHIRException {
425    if (src == null)
426      return null;
427    org.hl7.fhir.r4b.model.ExplanationOfBenefit.RelatedClaimComponent tgt = new org.hl7.fhir.r4b.model.ExplanationOfBenefit.RelatedClaimComponent();
428    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
429    if (src.hasClaim())
430      tgt.setClaim(Reference43_50.convertReference(src.getClaim()));
431    if (src.hasRelationship())
432      tgt.setRelationship(CodeableConcept43_50.convertCodeableConcept(src.getRelationship()));
433    if (src.hasReference())
434      tgt.setReference(Identifier43_50.convertIdentifier(src.getReference()));
435    return tgt;
436  }
437
438  public static org.hl7.fhir.r5.model.ExplanationOfBenefit.PayeeComponent convertPayeeComponent(org.hl7.fhir.r4b.model.ExplanationOfBenefit.PayeeComponent src) throws FHIRException {
439    if (src == null)
440      return null;
441    org.hl7.fhir.r5.model.ExplanationOfBenefit.PayeeComponent tgt = new org.hl7.fhir.r5.model.ExplanationOfBenefit.PayeeComponent();
442    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
443    if (src.hasType())
444      tgt.setType(CodeableConcept43_50.convertCodeableConcept(src.getType()));
445    if (src.hasParty())
446      tgt.setParty(Reference43_50.convertReference(src.getParty()));
447    return tgt;
448  }
449
450  public static org.hl7.fhir.r4b.model.ExplanationOfBenefit.PayeeComponent convertPayeeComponent(org.hl7.fhir.r5.model.ExplanationOfBenefit.PayeeComponent src) throws FHIRException {
451    if (src == null)
452      return null;
453    org.hl7.fhir.r4b.model.ExplanationOfBenefit.PayeeComponent tgt = new org.hl7.fhir.r4b.model.ExplanationOfBenefit.PayeeComponent();
454    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
455    if (src.hasType())
456      tgt.setType(CodeableConcept43_50.convertCodeableConcept(src.getType()));
457    if (src.hasParty())
458      tgt.setParty(Reference43_50.convertReference(src.getParty()));
459    return tgt;
460  }
461
462  public static org.hl7.fhir.r5.model.ExplanationOfBenefit.CareTeamComponent convertCareTeamComponent(org.hl7.fhir.r4b.model.ExplanationOfBenefit.CareTeamComponent src) throws FHIRException {
463    if (src == null)
464      return null;
465    org.hl7.fhir.r5.model.ExplanationOfBenefit.CareTeamComponent tgt = new org.hl7.fhir.r5.model.ExplanationOfBenefit.CareTeamComponent();
466    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
467    if (src.hasSequence())
468      tgt.setSequenceElement(PositiveInt43_50.convertPositiveInt(src.getSequenceElement()));
469    if (src.hasProvider())
470      tgt.setProvider(Reference43_50.convertReference(src.getProvider()));
471    if (src.hasResponsible())
472      tgt.setResponsibleElement(Boolean43_50.convertBoolean(src.getResponsibleElement()));
473    if (src.hasRole())
474      tgt.setRole(CodeableConcept43_50.convertCodeableConcept(src.getRole()));
475    if (src.hasQualification())
476      tgt.setSpecialty(CodeableConcept43_50.convertCodeableConcept(src.getQualification()));
477    return tgt;
478  }
479
480  public static org.hl7.fhir.r4b.model.ExplanationOfBenefit.CareTeamComponent convertCareTeamComponent(org.hl7.fhir.r5.model.ExplanationOfBenefit.CareTeamComponent src) throws FHIRException {
481    if (src == null)
482      return null;
483    org.hl7.fhir.r4b.model.ExplanationOfBenefit.CareTeamComponent tgt = new org.hl7.fhir.r4b.model.ExplanationOfBenefit.CareTeamComponent();
484    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
485    if (src.hasSequence())
486      tgt.setSequenceElement(PositiveInt43_50.convertPositiveInt(src.getSequenceElement()));
487    if (src.hasProvider())
488      tgt.setProvider(Reference43_50.convertReference(src.getProvider()));
489    if (src.hasResponsible())
490      tgt.setResponsibleElement(Boolean43_50.convertBoolean(src.getResponsibleElement()));
491    if (src.hasRole())
492      tgt.setRole(CodeableConcept43_50.convertCodeableConcept(src.getRole()));
493    if (src.hasSpecialty())
494      tgt.setQualification(CodeableConcept43_50.convertCodeableConcept(src.getSpecialty()));
495    return tgt;
496  }
497
498  public static org.hl7.fhir.r5.model.ExplanationOfBenefit.SupportingInformationComponent convertSupportingInformationComponent(org.hl7.fhir.r4b.model.ExplanationOfBenefit.SupportingInformationComponent src) throws FHIRException {
499    if (src == null)
500      return null;
501    org.hl7.fhir.r5.model.ExplanationOfBenefit.SupportingInformationComponent tgt = new org.hl7.fhir.r5.model.ExplanationOfBenefit.SupportingInformationComponent();
502    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
503    if (src.hasSequence())
504      tgt.setSequenceElement(PositiveInt43_50.convertPositiveInt(src.getSequenceElement()));
505    if (src.hasCategory())
506      tgt.setCategory(CodeableConcept43_50.convertCodeableConcept(src.getCategory()));
507    if (src.hasCode())
508      tgt.setCode(CodeableConcept43_50.convertCodeableConcept(src.getCode()));
509    if (src.hasTiming())
510      tgt.setTiming(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getTiming()));
511    if (src.hasValue())
512      tgt.setValue(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getValue()));
513    if (src.hasReason())
514      tgt.setReason(Coding43_50.convertCoding(src.getReason()));
515    return tgt;
516  }
517
518  public static org.hl7.fhir.r4b.model.ExplanationOfBenefit.SupportingInformationComponent convertSupportingInformationComponent(org.hl7.fhir.r5.model.ExplanationOfBenefit.SupportingInformationComponent src) throws FHIRException {
519    if (src == null)
520      return null;
521    org.hl7.fhir.r4b.model.ExplanationOfBenefit.SupportingInformationComponent tgt = new org.hl7.fhir.r4b.model.ExplanationOfBenefit.SupportingInformationComponent();
522    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
523    if (src.hasSequence())
524      tgt.setSequenceElement(PositiveInt43_50.convertPositiveInt(src.getSequenceElement()));
525    if (src.hasCategory())
526      tgt.setCategory(CodeableConcept43_50.convertCodeableConcept(src.getCategory()));
527    if (src.hasCode())
528      tgt.setCode(CodeableConcept43_50.convertCodeableConcept(src.getCode()));
529    if (src.hasTiming())
530      tgt.setTiming(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getTiming()));
531    if (src.hasValue())
532      tgt.setValue(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getValue()));
533    if (src.hasReason())
534      tgt.setReason(Coding43_50.convertCoding(src.getReason()));
535    return tgt;
536  }
537
538  public static org.hl7.fhir.r5.model.ExplanationOfBenefit.DiagnosisComponent convertDiagnosisComponent(org.hl7.fhir.r4b.model.ExplanationOfBenefit.DiagnosisComponent src) throws FHIRException {
539    if (src == null)
540      return null;
541    org.hl7.fhir.r5.model.ExplanationOfBenefit.DiagnosisComponent tgt = new org.hl7.fhir.r5.model.ExplanationOfBenefit.DiagnosisComponent();
542    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
543    if (src.hasSequence())
544      tgt.setSequenceElement(PositiveInt43_50.convertPositiveInt(src.getSequenceElement()));
545    if (src.hasDiagnosis())
546      tgt.setDiagnosis(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getDiagnosis()));
547    for (org.hl7.fhir.r4b.model.CodeableConcept t : src.getType())
548      tgt.addType(CodeableConcept43_50.convertCodeableConcept(t));
549    if (src.hasOnAdmission())
550      tgt.setOnAdmission(CodeableConcept43_50.convertCodeableConcept(src.getOnAdmission()));
551//    if (src.hasPackageCode())
552//      tgt.setPackageCode(CodeableConcept43_50.convertCodeableConcept(src.getPackageCode()));
553    return tgt;
554  }
555
556  public static org.hl7.fhir.r4b.model.ExplanationOfBenefit.DiagnosisComponent convertDiagnosisComponent(org.hl7.fhir.r5.model.ExplanationOfBenefit.DiagnosisComponent src) throws FHIRException {
557    if (src == null)
558      return null;
559    org.hl7.fhir.r4b.model.ExplanationOfBenefit.DiagnosisComponent tgt = new org.hl7.fhir.r4b.model.ExplanationOfBenefit.DiagnosisComponent();
560    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
561    if (src.hasSequence())
562      tgt.setSequenceElement(PositiveInt43_50.convertPositiveInt(src.getSequenceElement()));
563    if (src.hasDiagnosis())
564      tgt.setDiagnosis(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getDiagnosis()));
565    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getType())
566      tgt.addType(CodeableConcept43_50.convertCodeableConcept(t));
567    if (src.hasOnAdmission())
568      tgt.setOnAdmission(CodeableConcept43_50.convertCodeableConcept(src.getOnAdmission()));
569//    if (src.hasPackageCode())
570//      tgt.setPackageCode(CodeableConcept43_50.convertCodeableConcept(src.getPackageCode()));
571    return tgt;
572  }
573
574  public static org.hl7.fhir.r5.model.ExplanationOfBenefit.ProcedureComponent convertProcedureComponent(org.hl7.fhir.r4b.model.ExplanationOfBenefit.ProcedureComponent src) throws FHIRException {
575    if (src == null)
576      return null;
577    org.hl7.fhir.r5.model.ExplanationOfBenefit.ProcedureComponent tgt = new org.hl7.fhir.r5.model.ExplanationOfBenefit.ProcedureComponent();
578    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
579    if (src.hasSequence())
580      tgt.setSequenceElement(PositiveInt43_50.convertPositiveInt(src.getSequenceElement()));
581    for (org.hl7.fhir.r4b.model.CodeableConcept t : src.getType())
582      tgt.addType(CodeableConcept43_50.convertCodeableConcept(t));
583    if (src.hasDate())
584      tgt.setDateElement(DateTime43_50.convertDateTime(src.getDateElement()));
585    if (src.hasProcedure())
586      tgt.setProcedure(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getProcedure()));
587    for (org.hl7.fhir.r4b.model.Reference t : src.getUdi()) tgt.addUdi(Reference43_50.convertReference(t));
588    return tgt;
589  }
590
591  public static org.hl7.fhir.r4b.model.ExplanationOfBenefit.ProcedureComponent convertProcedureComponent(org.hl7.fhir.r5.model.ExplanationOfBenefit.ProcedureComponent src) throws FHIRException {
592    if (src == null)
593      return null;
594    org.hl7.fhir.r4b.model.ExplanationOfBenefit.ProcedureComponent tgt = new org.hl7.fhir.r4b.model.ExplanationOfBenefit.ProcedureComponent();
595    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
596    if (src.hasSequence())
597      tgt.setSequenceElement(PositiveInt43_50.convertPositiveInt(src.getSequenceElement()));
598    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getType())
599      tgt.addType(CodeableConcept43_50.convertCodeableConcept(t));
600    if (src.hasDate())
601      tgt.setDateElement(DateTime43_50.convertDateTime(src.getDateElement()));
602    if (src.hasProcedure())
603      tgt.setProcedure(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getProcedure()));
604    for (org.hl7.fhir.r5.model.Reference t : src.getUdi()) tgt.addUdi(Reference43_50.convertReference(t));
605    return tgt;
606  }
607
608  public static org.hl7.fhir.r5.model.ExplanationOfBenefit.InsuranceComponent convertInsuranceComponent(org.hl7.fhir.r4b.model.ExplanationOfBenefit.InsuranceComponent src) throws FHIRException {
609    if (src == null)
610      return null;
611    org.hl7.fhir.r5.model.ExplanationOfBenefit.InsuranceComponent tgt = new org.hl7.fhir.r5.model.ExplanationOfBenefit.InsuranceComponent();
612    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
613    if (src.hasFocal())
614      tgt.setFocalElement(Boolean43_50.convertBoolean(src.getFocalElement()));
615    if (src.hasCoverage())
616      tgt.setCoverage(Reference43_50.convertReference(src.getCoverage()));
617    for (org.hl7.fhir.r4b.model.StringType t : src.getPreAuthRef())
618      tgt.getPreAuthRef().add(String43_50.convertString(t));
619    return tgt;
620  }
621
622  public static org.hl7.fhir.r4b.model.ExplanationOfBenefit.InsuranceComponent convertInsuranceComponent(org.hl7.fhir.r5.model.ExplanationOfBenefit.InsuranceComponent src) throws FHIRException {
623    if (src == null)
624      return null;
625    org.hl7.fhir.r4b.model.ExplanationOfBenefit.InsuranceComponent tgt = new org.hl7.fhir.r4b.model.ExplanationOfBenefit.InsuranceComponent();
626    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
627    if (src.hasFocal())
628      tgt.setFocalElement(Boolean43_50.convertBoolean(src.getFocalElement()));
629    if (src.hasCoverage())
630      tgt.setCoverage(Reference43_50.convertReference(src.getCoverage()));
631    for (org.hl7.fhir.r5.model.StringType t : src.getPreAuthRef())
632      tgt.getPreAuthRef().add(String43_50.convertString(t));
633    return tgt;
634  }
635
636  public static org.hl7.fhir.r5.model.ExplanationOfBenefit.AccidentComponent convertAccidentComponent(org.hl7.fhir.r4b.model.ExplanationOfBenefit.AccidentComponent src) throws FHIRException {
637    if (src == null)
638      return null;
639    org.hl7.fhir.r5.model.ExplanationOfBenefit.AccidentComponent tgt = new org.hl7.fhir.r5.model.ExplanationOfBenefit.AccidentComponent();
640    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
641    if (src.hasDate())
642      tgt.setDateElement(Date43_50.convertDate(src.getDateElement()));
643    if (src.hasType())
644      tgt.setType(CodeableConcept43_50.convertCodeableConcept(src.getType()));
645    if (src.hasLocation())
646      tgt.setLocation(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getLocation()));
647    return tgt;
648  }
649
650  public static org.hl7.fhir.r4b.model.ExplanationOfBenefit.AccidentComponent convertAccidentComponent(org.hl7.fhir.r5.model.ExplanationOfBenefit.AccidentComponent src) throws FHIRException {
651    if (src == null)
652      return null;
653    org.hl7.fhir.r4b.model.ExplanationOfBenefit.AccidentComponent tgt = new org.hl7.fhir.r4b.model.ExplanationOfBenefit.AccidentComponent();
654    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
655    if (src.hasDate())
656      tgt.setDateElement(Date43_50.convertDate(src.getDateElement()));
657    if (src.hasType())
658      tgt.setType(CodeableConcept43_50.convertCodeableConcept(src.getType()));
659    if (src.hasLocation())
660      tgt.setLocation(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getLocation()));
661    return tgt;
662  }
663
664  public static org.hl7.fhir.r5.model.ExplanationOfBenefit.ItemComponent convertItemComponent(org.hl7.fhir.r4b.model.ExplanationOfBenefit.ItemComponent src) throws FHIRException {
665    if (src == null)
666      return null;
667    org.hl7.fhir.r5.model.ExplanationOfBenefit.ItemComponent tgt = new org.hl7.fhir.r5.model.ExplanationOfBenefit.ItemComponent();
668    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
669    if (src.hasSequence())
670      tgt.setSequenceElement(PositiveInt43_50.convertPositiveInt(src.getSequenceElement()));
671    for (org.hl7.fhir.r4b.model.PositiveIntType t : src.getCareTeamSequence())
672      tgt.getCareTeamSequence().add(PositiveInt43_50.convertPositiveInt(t));
673    for (org.hl7.fhir.r4b.model.PositiveIntType t : src.getDiagnosisSequence())
674      tgt.getDiagnosisSequence().add(PositiveInt43_50.convertPositiveInt(t));
675    for (org.hl7.fhir.r4b.model.PositiveIntType t : src.getProcedureSequence())
676      tgt.getProcedureSequence().add(PositiveInt43_50.convertPositiveInt(t));
677    for (org.hl7.fhir.r4b.model.PositiveIntType t : src.getInformationSequence())
678      tgt.getInformationSequence().add(PositiveInt43_50.convertPositiveInt(t));
679    if (src.hasRevenue())
680      tgt.setRevenue(CodeableConcept43_50.convertCodeableConcept(src.getRevenue()));
681    if (src.hasCategory())
682      tgt.setCategory(CodeableConcept43_50.convertCodeableConcept(src.getCategory()));
683    if (src.hasProductOrService())
684      tgt.setProductOrService(CodeableConcept43_50.convertCodeableConcept(src.getProductOrService()));
685    for (org.hl7.fhir.r4b.model.CodeableConcept t : src.getModifier())
686      tgt.addModifier(CodeableConcept43_50.convertCodeableConcept(t));
687    for (org.hl7.fhir.r4b.model.CodeableConcept t : src.getProgramCode())
688      tgt.addProgramCode(CodeableConcept43_50.convertCodeableConcept(t));
689    if (src.hasServiced())
690      tgt.setServiced(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getServiced()));
691    if (src.hasLocation())
692      tgt.setLocation(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getLocation()));
693    if (src.hasQuantity())
694      tgt.setQuantity(SimpleQuantity43_50.convertSimpleQuantity(src.getQuantity()));
695    if (src.hasUnitPrice())
696      tgt.setUnitPrice(Money43_50.convertMoney(src.getUnitPrice()));
697    if (src.hasFactor())
698      tgt.setFactorElement(Decimal43_50.convertDecimal(src.getFactorElement()));
699    if (src.hasNet())
700      tgt.setNet(Money43_50.convertMoney(src.getNet()));
701    for (org.hl7.fhir.r4b.model.Reference t : src.getUdi()) tgt.addUdi(Reference43_50.convertReference(t));
702    if (src.hasBodySite())
703      tgt.getBodySiteFirstRep().addSite(CodeableConcept43_50.convertCodeableConceptToCodeableReference(src.getBodySite()));
704    for (org.hl7.fhir.r4b.model.CodeableConcept t : src.getSubSite())
705      tgt.getBodySiteFirstRep().addSubSite(CodeableConcept43_50.convertCodeableConcept(t));
706    for (org.hl7.fhir.r4b.model.Reference t : src.getEncounter()) tgt.addEncounter(Reference43_50.convertReference(t));
707    for (org.hl7.fhir.r4b.model.PositiveIntType t : src.getNoteNumber())
708      tgt.getNoteNumber().add(PositiveInt43_50.convertPositiveInt(t));
709    for (org.hl7.fhir.r4b.model.ExplanationOfBenefit.AdjudicationComponent t : src.getAdjudication())
710      tgt.addAdjudication(convertAdjudicationComponent(t));
711    for (org.hl7.fhir.r4b.model.ExplanationOfBenefit.DetailComponent t : src.getDetail())
712      tgt.addDetail(convertDetailComponent(t));
713    return tgt;
714  }
715
716  public static org.hl7.fhir.r4b.model.ExplanationOfBenefit.ItemComponent convertItemComponent(org.hl7.fhir.r5.model.ExplanationOfBenefit.ItemComponent src) throws FHIRException {
717    if (src == null)
718      return null;
719    org.hl7.fhir.r4b.model.ExplanationOfBenefit.ItemComponent tgt = new org.hl7.fhir.r4b.model.ExplanationOfBenefit.ItemComponent();
720    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
721    if (src.hasSequence())
722      tgt.setSequenceElement(PositiveInt43_50.convertPositiveInt(src.getSequenceElement()));
723    for (org.hl7.fhir.r5.model.PositiveIntType t : src.getCareTeamSequence())
724      tgt.getCareTeamSequence().add(PositiveInt43_50.convertPositiveInt(t));
725    for (org.hl7.fhir.r5.model.PositiveIntType t : src.getDiagnosisSequence())
726      tgt.getDiagnosisSequence().add(PositiveInt43_50.convertPositiveInt(t));
727    for (org.hl7.fhir.r5.model.PositiveIntType t : src.getProcedureSequence())
728      tgt.getProcedureSequence().add(PositiveInt43_50.convertPositiveInt(t));
729    for (org.hl7.fhir.r5.model.PositiveIntType t : src.getInformationSequence())
730      tgt.getInformationSequence().add(PositiveInt43_50.convertPositiveInt(t));
731    if (src.hasRevenue())
732      tgt.setRevenue(CodeableConcept43_50.convertCodeableConcept(src.getRevenue()));
733    if (src.hasCategory())
734      tgt.setCategory(CodeableConcept43_50.convertCodeableConcept(src.getCategory()));
735    if (src.hasProductOrService())
736      tgt.setProductOrService(CodeableConcept43_50.convertCodeableConcept(src.getProductOrService()));
737    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getModifier())
738      tgt.addModifier(CodeableConcept43_50.convertCodeableConcept(t));
739    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getProgramCode())
740      tgt.addProgramCode(CodeableConcept43_50.convertCodeableConcept(t));
741    if (src.hasServiced())
742      tgt.setServiced(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getServiced()));
743    if (src.hasLocation())
744      tgt.setLocation(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getLocation()));
745    if (src.hasQuantity())
746      tgt.setQuantity(SimpleQuantity43_50.convertSimpleQuantity(src.getQuantity()));
747    if (src.hasUnitPrice())
748      tgt.setUnitPrice(Money43_50.convertMoney(src.getUnitPrice()));
749    if (src.hasFactor())
750      tgt.setFactorElement(Decimal43_50.convertDecimal(src.getFactorElement()));
751    if (src.hasNet())
752      tgt.setNet(Money43_50.convertMoney(src.getNet()));
753    for (org.hl7.fhir.r5.model.Reference t : src.getUdi()) tgt.addUdi(Reference43_50.convertReference(t));
754    if (src.getBodySiteFirstRep().hasSite())
755      tgt.setBodySite(CodeableConcept43_50.convertCodeableReferenceToCodeableConcept(src.getBodySiteFirstRep().getSiteFirstRep()));
756    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getBodySiteFirstRep().getSubSite())
757      tgt.addSubSite(CodeableConcept43_50.convertCodeableConcept(t));
758    for (org.hl7.fhir.r5.model.Reference t : src.getEncounter()) tgt.addEncounter(Reference43_50.convertReference(t));
759    for (org.hl7.fhir.r5.model.PositiveIntType t : src.getNoteNumber())
760      tgt.getNoteNumber().add(PositiveInt43_50.convertPositiveInt(t));
761    for (org.hl7.fhir.r5.model.ExplanationOfBenefit.AdjudicationComponent t : src.getAdjudication())
762      tgt.addAdjudication(convertAdjudicationComponent(t));
763    for (org.hl7.fhir.r5.model.ExplanationOfBenefit.DetailComponent t : src.getDetail())
764      tgt.addDetail(convertDetailComponent(t));
765    return tgt;
766  }
767
768  public static org.hl7.fhir.r5.model.ExplanationOfBenefit.AdjudicationComponent convertAdjudicationComponent(org.hl7.fhir.r4b.model.ExplanationOfBenefit.AdjudicationComponent src) throws FHIRException {
769    if (src == null)
770      return null;
771    org.hl7.fhir.r5.model.ExplanationOfBenefit.AdjudicationComponent tgt = new org.hl7.fhir.r5.model.ExplanationOfBenefit.AdjudicationComponent();
772    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
773    if (src.hasCategory())
774      tgt.setCategory(CodeableConcept43_50.convertCodeableConcept(src.getCategory()));
775    if (src.hasReason())
776      tgt.setReason(CodeableConcept43_50.convertCodeableConcept(src.getReason()));
777    if (src.hasAmount())
778      tgt.setAmount(Money43_50.convertMoney(src.getAmount()));
779    if (src.hasValue())
780      tgt.setQuantity(Decimal43_50.convertDecimalToQuantity(src.getValueElement()));
781    return tgt;
782  }
783
784  public static org.hl7.fhir.r4b.model.ExplanationOfBenefit.AdjudicationComponent convertAdjudicationComponent(org.hl7.fhir.r5.model.ExplanationOfBenefit.AdjudicationComponent src) throws FHIRException {
785    if (src == null)
786      return null;
787    org.hl7.fhir.r4b.model.ExplanationOfBenefit.AdjudicationComponent tgt = new org.hl7.fhir.r4b.model.ExplanationOfBenefit.AdjudicationComponent();
788    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
789    if (src.hasCategory())
790      tgt.setCategory(CodeableConcept43_50.convertCodeableConcept(src.getCategory()));
791    if (src.hasReason())
792      tgt.setReason(CodeableConcept43_50.convertCodeableConcept(src.getReason()));
793    if (src.hasAmount())
794      tgt.setAmount(Money43_50.convertMoney(src.getAmount()));
795    if (src.hasQuantity())
796      tgt.setValueElement(Decimal43_50.convertDecimal(src.getQuantity().getValueElement()));
797    return tgt;
798  }
799
800  public static org.hl7.fhir.r5.model.ExplanationOfBenefit.DetailComponent convertDetailComponent(org.hl7.fhir.r4b.model.ExplanationOfBenefit.DetailComponent src) throws FHIRException {
801    if (src == null)
802      return null;
803    org.hl7.fhir.r5.model.ExplanationOfBenefit.DetailComponent tgt = new org.hl7.fhir.r5.model.ExplanationOfBenefit.DetailComponent();
804    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
805    if (src.hasSequence())
806      tgt.setSequenceElement(PositiveInt43_50.convertPositiveInt(src.getSequenceElement()));
807    if (src.hasRevenue())
808      tgt.setRevenue(CodeableConcept43_50.convertCodeableConcept(src.getRevenue()));
809    if (src.hasCategory())
810      tgt.setCategory(CodeableConcept43_50.convertCodeableConcept(src.getCategory()));
811    if (src.hasProductOrService())
812      tgt.setProductOrService(CodeableConcept43_50.convertCodeableConcept(src.getProductOrService()));
813    for (org.hl7.fhir.r4b.model.CodeableConcept t : src.getModifier())
814      tgt.addModifier(CodeableConcept43_50.convertCodeableConcept(t));
815    for (org.hl7.fhir.r4b.model.CodeableConcept t : src.getProgramCode())
816      tgt.addProgramCode(CodeableConcept43_50.convertCodeableConcept(t));
817    if (src.hasQuantity())
818      tgt.setQuantity(SimpleQuantity43_50.convertSimpleQuantity(src.getQuantity()));
819    if (src.hasUnitPrice())
820      tgt.setUnitPrice(Money43_50.convertMoney(src.getUnitPrice()));
821    if (src.hasFactor())
822      tgt.setFactorElement(Decimal43_50.convertDecimal(src.getFactorElement()));
823    if (src.hasNet())
824      tgt.setNet(Money43_50.convertMoney(src.getNet()));
825    for (org.hl7.fhir.r4b.model.Reference t : src.getUdi()) tgt.addUdi(Reference43_50.convertReference(t));
826    for (org.hl7.fhir.r4b.model.PositiveIntType t : src.getNoteNumber())
827      tgt.getNoteNumber().add(PositiveInt43_50.convertPositiveInt(t));
828    for (org.hl7.fhir.r4b.model.ExplanationOfBenefit.AdjudicationComponent t : src.getAdjudication())
829      tgt.addAdjudication(convertAdjudicationComponent(t));
830    for (org.hl7.fhir.r4b.model.ExplanationOfBenefit.SubDetailComponent t : src.getSubDetail())
831      tgt.addSubDetail(convertSubDetailComponent(t));
832    return tgt;
833  }
834
835  public static org.hl7.fhir.r4b.model.ExplanationOfBenefit.DetailComponent convertDetailComponent(org.hl7.fhir.r5.model.ExplanationOfBenefit.DetailComponent src) throws FHIRException {
836    if (src == null)
837      return null;
838    org.hl7.fhir.r4b.model.ExplanationOfBenefit.DetailComponent tgt = new org.hl7.fhir.r4b.model.ExplanationOfBenefit.DetailComponent();
839    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
840    if (src.hasSequence())
841      tgt.setSequenceElement(PositiveInt43_50.convertPositiveInt(src.getSequenceElement()));
842    if (src.hasRevenue())
843      tgt.setRevenue(CodeableConcept43_50.convertCodeableConcept(src.getRevenue()));
844    if (src.hasCategory())
845      tgt.setCategory(CodeableConcept43_50.convertCodeableConcept(src.getCategory()));
846    if (src.hasProductOrService())
847      tgt.setProductOrService(CodeableConcept43_50.convertCodeableConcept(src.getProductOrService()));
848    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getModifier())
849      tgt.addModifier(CodeableConcept43_50.convertCodeableConcept(t));
850    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getProgramCode())
851      tgt.addProgramCode(CodeableConcept43_50.convertCodeableConcept(t));
852    if (src.hasQuantity())
853      tgt.setQuantity(SimpleQuantity43_50.convertSimpleQuantity(src.getQuantity()));
854    if (src.hasUnitPrice())
855      tgt.setUnitPrice(Money43_50.convertMoney(src.getUnitPrice()));
856    if (src.hasFactor())
857      tgt.setFactorElement(Decimal43_50.convertDecimal(src.getFactorElement()));
858    if (src.hasNet())
859      tgt.setNet(Money43_50.convertMoney(src.getNet()));
860    for (org.hl7.fhir.r5.model.Reference t : src.getUdi()) tgt.addUdi(Reference43_50.convertReference(t));
861    for (org.hl7.fhir.r5.model.PositiveIntType t : src.getNoteNumber())
862      tgt.getNoteNumber().add(PositiveInt43_50.convertPositiveInt(t));
863    for (org.hl7.fhir.r5.model.ExplanationOfBenefit.AdjudicationComponent t : src.getAdjudication())
864      tgt.addAdjudication(convertAdjudicationComponent(t));
865    for (org.hl7.fhir.r5.model.ExplanationOfBenefit.SubDetailComponent t : src.getSubDetail())
866      tgt.addSubDetail(convertSubDetailComponent(t));
867    return tgt;
868  }
869
870  public static org.hl7.fhir.r5.model.ExplanationOfBenefit.SubDetailComponent convertSubDetailComponent(org.hl7.fhir.r4b.model.ExplanationOfBenefit.SubDetailComponent src) throws FHIRException {
871    if (src == null)
872      return null;
873    org.hl7.fhir.r5.model.ExplanationOfBenefit.SubDetailComponent tgt = new org.hl7.fhir.r5.model.ExplanationOfBenefit.SubDetailComponent();
874    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
875    if (src.hasSequence())
876      tgt.setSequenceElement(PositiveInt43_50.convertPositiveInt(src.getSequenceElement()));
877    if (src.hasRevenue())
878      tgt.setRevenue(CodeableConcept43_50.convertCodeableConcept(src.getRevenue()));
879    if (src.hasCategory())
880      tgt.setCategory(CodeableConcept43_50.convertCodeableConcept(src.getCategory()));
881    if (src.hasProductOrService())
882      tgt.setProductOrService(CodeableConcept43_50.convertCodeableConcept(src.getProductOrService()));
883    for (org.hl7.fhir.r4b.model.CodeableConcept t : src.getModifier())
884      tgt.addModifier(CodeableConcept43_50.convertCodeableConcept(t));
885    for (org.hl7.fhir.r4b.model.CodeableConcept t : src.getProgramCode())
886      tgt.addProgramCode(CodeableConcept43_50.convertCodeableConcept(t));
887    if (src.hasQuantity())
888      tgt.setQuantity(SimpleQuantity43_50.convertSimpleQuantity(src.getQuantity()));
889    if (src.hasUnitPrice())
890      tgt.setUnitPrice(Money43_50.convertMoney(src.getUnitPrice()));
891    if (src.hasFactor())
892      tgt.setFactorElement(Decimal43_50.convertDecimal(src.getFactorElement()));
893    if (src.hasNet())
894      tgt.setNet(Money43_50.convertMoney(src.getNet()));
895    for (org.hl7.fhir.r4b.model.Reference t : src.getUdi()) tgt.addUdi(Reference43_50.convertReference(t));
896    for (org.hl7.fhir.r4b.model.PositiveIntType t : src.getNoteNumber())
897      tgt.getNoteNumber().add(PositiveInt43_50.convertPositiveInt(t));
898    for (org.hl7.fhir.r4b.model.ExplanationOfBenefit.AdjudicationComponent t : src.getAdjudication())
899      tgt.addAdjudication(convertAdjudicationComponent(t));
900    return tgt;
901  }
902
903  public static org.hl7.fhir.r4b.model.ExplanationOfBenefit.SubDetailComponent convertSubDetailComponent(org.hl7.fhir.r5.model.ExplanationOfBenefit.SubDetailComponent src) throws FHIRException {
904    if (src == null)
905      return null;
906    org.hl7.fhir.r4b.model.ExplanationOfBenefit.SubDetailComponent tgt = new org.hl7.fhir.r4b.model.ExplanationOfBenefit.SubDetailComponent();
907    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
908    if (src.hasSequence())
909      tgt.setSequenceElement(PositiveInt43_50.convertPositiveInt(src.getSequenceElement()));
910    if (src.hasRevenue())
911      tgt.setRevenue(CodeableConcept43_50.convertCodeableConcept(src.getRevenue()));
912    if (src.hasCategory())
913      tgt.setCategory(CodeableConcept43_50.convertCodeableConcept(src.getCategory()));
914    if (src.hasProductOrService())
915      tgt.setProductOrService(CodeableConcept43_50.convertCodeableConcept(src.getProductOrService()));
916    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getModifier())
917      tgt.addModifier(CodeableConcept43_50.convertCodeableConcept(t));
918    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getProgramCode())
919      tgt.addProgramCode(CodeableConcept43_50.convertCodeableConcept(t));
920    if (src.hasQuantity())
921      tgt.setQuantity(SimpleQuantity43_50.convertSimpleQuantity(src.getQuantity()));
922    if (src.hasUnitPrice())
923      tgt.setUnitPrice(Money43_50.convertMoney(src.getUnitPrice()));
924    if (src.hasFactor())
925      tgt.setFactorElement(Decimal43_50.convertDecimal(src.getFactorElement()));
926    if (src.hasNet())
927      tgt.setNet(Money43_50.convertMoney(src.getNet()));
928    for (org.hl7.fhir.r5.model.Reference t : src.getUdi()) tgt.addUdi(Reference43_50.convertReference(t));
929    for (org.hl7.fhir.r5.model.PositiveIntType t : src.getNoteNumber())
930      tgt.getNoteNumber().add(PositiveInt43_50.convertPositiveInt(t));
931    for (org.hl7.fhir.r5.model.ExplanationOfBenefit.AdjudicationComponent t : src.getAdjudication())
932      tgt.addAdjudication(convertAdjudicationComponent(t));
933    return tgt;
934  }
935
936  public static org.hl7.fhir.r5.model.ExplanationOfBenefit.AddedItemComponent convertAddedItemComponent(org.hl7.fhir.r4b.model.ExplanationOfBenefit.AddedItemComponent src) throws FHIRException {
937    if (src == null)
938      return null;
939    org.hl7.fhir.r5.model.ExplanationOfBenefit.AddedItemComponent tgt = new org.hl7.fhir.r5.model.ExplanationOfBenefit.AddedItemComponent();
940    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
941    for (org.hl7.fhir.r4b.model.PositiveIntType t : src.getItemSequence())
942      tgt.getItemSequence().add(PositiveInt43_50.convertPositiveInt(t));
943    for (org.hl7.fhir.r4b.model.PositiveIntType t : src.getDetailSequence())
944      tgt.getDetailSequence().add(PositiveInt43_50.convertPositiveInt(t));
945    for (org.hl7.fhir.r4b.model.PositiveIntType t : src.getSubDetailSequence())
946      tgt.getSubDetailSequence().add(PositiveInt43_50.convertPositiveInt(t));
947    for (org.hl7.fhir.r4b.model.Reference t : src.getProvider()) tgt.addProvider(Reference43_50.convertReference(t));
948    if (src.hasProductOrService())
949      tgt.setProductOrService(CodeableConcept43_50.convertCodeableConcept(src.getProductOrService()));
950    for (org.hl7.fhir.r4b.model.CodeableConcept t : src.getModifier())
951      tgt.addModifier(CodeableConcept43_50.convertCodeableConcept(t));
952    for (org.hl7.fhir.r4b.model.CodeableConcept t : src.getProgramCode())
953      tgt.addProgramCode(CodeableConcept43_50.convertCodeableConcept(t));
954    if (src.hasServiced())
955      tgt.setServiced(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getServiced()));
956    if (src.hasLocation())
957      tgt.setLocation(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getLocation()));
958    if (src.hasQuantity())
959      tgt.setQuantity(SimpleQuantity43_50.convertSimpleQuantity(src.getQuantity()));
960    if (src.hasUnitPrice())
961      tgt.setUnitPrice(Money43_50.convertMoney(src.getUnitPrice()));
962    if (src.hasFactor())
963      tgt.setFactorElement(Decimal43_50.convertDecimal(src.getFactorElement()));
964    if (src.hasNet())
965      tgt.setNet(Money43_50.convertMoney(src.getNet()));
966    if (src.hasBodySite())
967      tgt.getBodySiteFirstRep().addSite(CodeableConcept43_50.convertCodeableConceptToCodeableReference(src.getBodySite()));
968    for (org.hl7.fhir.r4b.model.CodeableConcept t : src.getSubSite())
969      tgt.getBodySiteFirstRep().addSubSite(CodeableConcept43_50.convertCodeableConcept(t));
970    for (org.hl7.fhir.r4b.model.PositiveIntType t : src.getNoteNumber())
971      tgt.getNoteNumber().add(PositiveInt43_50.convertPositiveInt(t));
972    for (org.hl7.fhir.r4b.model.ExplanationOfBenefit.AdjudicationComponent t : src.getAdjudication())
973      tgt.addAdjudication(convertAdjudicationComponent(t));
974    for (org.hl7.fhir.r4b.model.ExplanationOfBenefit.AddedItemDetailComponent t : src.getDetail())
975      tgt.addDetail(convertAddedItemDetailComponent(t));
976    return tgt;
977  }
978
979  public static org.hl7.fhir.r4b.model.ExplanationOfBenefit.AddedItemComponent convertAddedItemComponent(org.hl7.fhir.r5.model.ExplanationOfBenefit.AddedItemComponent src) throws FHIRException {
980    if (src == null)
981      return null;
982    org.hl7.fhir.r4b.model.ExplanationOfBenefit.AddedItemComponent tgt = new org.hl7.fhir.r4b.model.ExplanationOfBenefit.AddedItemComponent();
983    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
984    for (org.hl7.fhir.r5.model.PositiveIntType t : src.getItemSequence())
985      tgt.getItemSequence().add(PositiveInt43_50.convertPositiveInt(t));
986    for (org.hl7.fhir.r5.model.PositiveIntType t : src.getDetailSequence())
987      tgt.getDetailSequence().add(PositiveInt43_50.convertPositiveInt(t));
988    for (org.hl7.fhir.r5.model.PositiveIntType t : src.getSubDetailSequence())
989      tgt.getSubDetailSequence().add(PositiveInt43_50.convertPositiveInt(t));
990    for (org.hl7.fhir.r5.model.Reference t : src.getProvider()) tgt.addProvider(Reference43_50.convertReference(t));
991    if (src.hasProductOrService())
992      tgt.setProductOrService(CodeableConcept43_50.convertCodeableConcept(src.getProductOrService()));
993    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getModifier())
994      tgt.addModifier(CodeableConcept43_50.convertCodeableConcept(t));
995    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getProgramCode())
996      tgt.addProgramCode(CodeableConcept43_50.convertCodeableConcept(t));
997    if (src.hasServiced())
998      tgt.setServiced(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getServiced()));
999    if (src.hasLocation())
1000      tgt.setLocation(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getLocation()));
1001    if (src.hasQuantity())
1002      tgt.setQuantity(SimpleQuantity43_50.convertSimpleQuantity(src.getQuantity()));
1003    if (src.hasUnitPrice())
1004      tgt.setUnitPrice(Money43_50.convertMoney(src.getUnitPrice()));
1005    if (src.hasFactor())
1006      tgt.setFactorElement(Decimal43_50.convertDecimal(src.getFactorElement()));
1007    if (src.hasNet())
1008      tgt.setNet(Money43_50.convertMoney(src.getNet()));
1009    if (src.hasBodySite())
1010      tgt.setBodySite(CodeableConcept43_50.convertCodeableReferenceToCodeableConcept(src.getBodySiteFirstRep().getSiteFirstRep()));
1011    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getBodySiteFirstRep().getSubSite())
1012      tgt.addSubSite(CodeableConcept43_50.convertCodeableConcept(t));
1013    for (org.hl7.fhir.r5.model.PositiveIntType t : src.getNoteNumber())
1014      tgt.getNoteNumber().add(PositiveInt43_50.convertPositiveInt(t));
1015    for (org.hl7.fhir.r5.model.ExplanationOfBenefit.AdjudicationComponent t : src.getAdjudication())
1016      tgt.addAdjudication(convertAdjudicationComponent(t));
1017    for (org.hl7.fhir.r5.model.ExplanationOfBenefit.AddedItemDetailComponent t : src.getDetail())
1018      tgt.addDetail(convertAddedItemDetailComponent(t));
1019    return tgt;
1020  }
1021
1022  public static org.hl7.fhir.r5.model.ExplanationOfBenefit.AddedItemDetailComponent convertAddedItemDetailComponent(org.hl7.fhir.r4b.model.ExplanationOfBenefit.AddedItemDetailComponent src) throws FHIRException {
1023    if (src == null)
1024      return null;
1025    org.hl7.fhir.r5.model.ExplanationOfBenefit.AddedItemDetailComponent tgt = new org.hl7.fhir.r5.model.ExplanationOfBenefit.AddedItemDetailComponent();
1026    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
1027    if (src.hasProductOrService())
1028      tgt.setProductOrService(CodeableConcept43_50.convertCodeableConcept(src.getProductOrService()));
1029    for (org.hl7.fhir.r4b.model.CodeableConcept t : src.getModifier())
1030      tgt.addModifier(CodeableConcept43_50.convertCodeableConcept(t));
1031    if (src.hasQuantity())
1032      tgt.setQuantity(SimpleQuantity43_50.convertSimpleQuantity(src.getQuantity()));
1033    if (src.hasUnitPrice())
1034      tgt.setUnitPrice(Money43_50.convertMoney(src.getUnitPrice()));
1035    if (src.hasFactor())
1036      tgt.setFactorElement(Decimal43_50.convertDecimal(src.getFactorElement()));
1037    if (src.hasNet())
1038      tgt.setNet(Money43_50.convertMoney(src.getNet()));
1039    for (org.hl7.fhir.r4b.model.PositiveIntType t : src.getNoteNumber())
1040      tgt.getNoteNumber().add(PositiveInt43_50.convertPositiveInt(t));
1041    for (org.hl7.fhir.r4b.model.ExplanationOfBenefit.AdjudicationComponent t : src.getAdjudication())
1042      tgt.addAdjudication(convertAdjudicationComponent(t));
1043    for (org.hl7.fhir.r4b.model.ExplanationOfBenefit.AddedItemDetailSubDetailComponent t : src.getSubDetail())
1044      tgt.addSubDetail(convertAddedItemDetailSubDetailComponent(t));
1045    return tgt;
1046  }
1047
1048  public static org.hl7.fhir.r4b.model.ExplanationOfBenefit.AddedItemDetailComponent convertAddedItemDetailComponent(org.hl7.fhir.r5.model.ExplanationOfBenefit.AddedItemDetailComponent src) throws FHIRException {
1049    if (src == null)
1050      return null;
1051    org.hl7.fhir.r4b.model.ExplanationOfBenefit.AddedItemDetailComponent tgt = new org.hl7.fhir.r4b.model.ExplanationOfBenefit.AddedItemDetailComponent();
1052    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
1053    if (src.hasProductOrService())
1054      tgt.setProductOrService(CodeableConcept43_50.convertCodeableConcept(src.getProductOrService()));
1055    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getModifier())
1056      tgt.addModifier(CodeableConcept43_50.convertCodeableConcept(t));
1057    if (src.hasQuantity())
1058      tgt.setQuantity(SimpleQuantity43_50.convertSimpleQuantity(src.getQuantity()));
1059    if (src.hasUnitPrice())
1060      tgt.setUnitPrice(Money43_50.convertMoney(src.getUnitPrice()));
1061    if (src.hasFactor())
1062      tgt.setFactorElement(Decimal43_50.convertDecimal(src.getFactorElement()));
1063    if (src.hasNet())
1064      tgt.setNet(Money43_50.convertMoney(src.getNet()));
1065    for (org.hl7.fhir.r5.model.PositiveIntType t : src.getNoteNumber())
1066      tgt.getNoteNumber().add(PositiveInt43_50.convertPositiveInt(t));
1067    for (org.hl7.fhir.r5.model.ExplanationOfBenefit.AdjudicationComponent t : src.getAdjudication())
1068      tgt.addAdjudication(convertAdjudicationComponent(t));
1069    for (org.hl7.fhir.r5.model.ExplanationOfBenefit.AddedItemDetailSubDetailComponent t : src.getSubDetail())
1070      tgt.addSubDetail(convertAddedItemDetailSubDetailComponent(t));
1071    return tgt;
1072  }
1073
1074  public static org.hl7.fhir.r5.model.ExplanationOfBenefit.AddedItemDetailSubDetailComponent convertAddedItemDetailSubDetailComponent(org.hl7.fhir.r4b.model.ExplanationOfBenefit.AddedItemDetailSubDetailComponent src) throws FHIRException {
1075    if (src == null)
1076      return null;
1077    org.hl7.fhir.r5.model.ExplanationOfBenefit.AddedItemDetailSubDetailComponent tgt = new org.hl7.fhir.r5.model.ExplanationOfBenefit.AddedItemDetailSubDetailComponent();
1078    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
1079    if (src.hasProductOrService())
1080      tgt.setProductOrService(CodeableConcept43_50.convertCodeableConcept(src.getProductOrService()));
1081    for (org.hl7.fhir.r4b.model.CodeableConcept t : src.getModifier())
1082      tgt.addModifier(CodeableConcept43_50.convertCodeableConcept(t));
1083    if (src.hasQuantity())
1084      tgt.setQuantity(SimpleQuantity43_50.convertSimpleQuantity(src.getQuantity()));
1085    if (src.hasUnitPrice())
1086      tgt.setUnitPrice(Money43_50.convertMoney(src.getUnitPrice()));
1087    if (src.hasFactor())
1088      tgt.setFactorElement(Decimal43_50.convertDecimal(src.getFactorElement()));
1089    if (src.hasNet())
1090      tgt.setNet(Money43_50.convertMoney(src.getNet()));
1091    for (org.hl7.fhir.r4b.model.PositiveIntType t : src.getNoteNumber())
1092      tgt.getNoteNumber().add(PositiveInt43_50.convertPositiveInt(t));
1093    for (org.hl7.fhir.r4b.model.ExplanationOfBenefit.AdjudicationComponent t : src.getAdjudication())
1094      tgt.addAdjudication(convertAdjudicationComponent(t));
1095    return tgt;
1096  }
1097
1098  public static org.hl7.fhir.r4b.model.ExplanationOfBenefit.AddedItemDetailSubDetailComponent convertAddedItemDetailSubDetailComponent(org.hl7.fhir.r5.model.ExplanationOfBenefit.AddedItemDetailSubDetailComponent src) throws FHIRException {
1099    if (src == null)
1100      return null;
1101    org.hl7.fhir.r4b.model.ExplanationOfBenefit.AddedItemDetailSubDetailComponent tgt = new org.hl7.fhir.r4b.model.ExplanationOfBenefit.AddedItemDetailSubDetailComponent();
1102    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
1103    if (src.hasProductOrService())
1104      tgt.setProductOrService(CodeableConcept43_50.convertCodeableConcept(src.getProductOrService()));
1105    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getModifier())
1106      tgt.addModifier(CodeableConcept43_50.convertCodeableConcept(t));
1107    if (src.hasQuantity())
1108      tgt.setQuantity(SimpleQuantity43_50.convertSimpleQuantity(src.getQuantity()));
1109    if (src.hasUnitPrice())
1110      tgt.setUnitPrice(Money43_50.convertMoney(src.getUnitPrice()));
1111    if (src.hasFactor())
1112      tgt.setFactorElement(Decimal43_50.convertDecimal(src.getFactorElement()));
1113    if (src.hasNet())
1114      tgt.setNet(Money43_50.convertMoney(src.getNet()));
1115    for (org.hl7.fhir.r5.model.PositiveIntType t : src.getNoteNumber())
1116      tgt.getNoteNumber().add(PositiveInt43_50.convertPositiveInt(t));
1117    for (org.hl7.fhir.r5.model.ExplanationOfBenefit.AdjudicationComponent t : src.getAdjudication())
1118      tgt.addAdjudication(convertAdjudicationComponent(t));
1119    return tgt;
1120  }
1121
1122  public static org.hl7.fhir.r5.model.ExplanationOfBenefit.TotalComponent convertTotalComponent(org.hl7.fhir.r4b.model.ExplanationOfBenefit.TotalComponent src) throws FHIRException {
1123    if (src == null)
1124      return null;
1125    org.hl7.fhir.r5.model.ExplanationOfBenefit.TotalComponent tgt = new org.hl7.fhir.r5.model.ExplanationOfBenefit.TotalComponent();
1126    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
1127    if (src.hasCategory())
1128      tgt.setCategory(CodeableConcept43_50.convertCodeableConcept(src.getCategory()));
1129    if (src.hasAmount())
1130      tgt.setAmount(Money43_50.convertMoney(src.getAmount()));
1131    return tgt;
1132  }
1133
1134  public static org.hl7.fhir.r4b.model.ExplanationOfBenefit.TotalComponent convertTotalComponent(org.hl7.fhir.r5.model.ExplanationOfBenefit.TotalComponent src) throws FHIRException {
1135    if (src == null)
1136      return null;
1137    org.hl7.fhir.r4b.model.ExplanationOfBenefit.TotalComponent tgt = new org.hl7.fhir.r4b.model.ExplanationOfBenefit.TotalComponent();
1138    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
1139    if (src.hasCategory())
1140      tgt.setCategory(CodeableConcept43_50.convertCodeableConcept(src.getCategory()));
1141    if (src.hasAmount())
1142      tgt.setAmount(Money43_50.convertMoney(src.getAmount()));
1143    return tgt;
1144  }
1145
1146  public static org.hl7.fhir.r5.model.ExplanationOfBenefit.PaymentComponent convertPaymentComponent(org.hl7.fhir.r4b.model.ExplanationOfBenefit.PaymentComponent src) throws FHIRException {
1147    if (src == null)
1148      return null;
1149    org.hl7.fhir.r5.model.ExplanationOfBenefit.PaymentComponent tgt = new org.hl7.fhir.r5.model.ExplanationOfBenefit.PaymentComponent();
1150    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
1151    if (src.hasType())
1152      tgt.setType(CodeableConcept43_50.convertCodeableConcept(src.getType()));
1153    if (src.hasAdjustment())
1154      tgt.setAdjustment(Money43_50.convertMoney(src.getAdjustment()));
1155    if (src.hasAdjustmentReason())
1156      tgt.setAdjustmentReason(CodeableConcept43_50.convertCodeableConcept(src.getAdjustmentReason()));
1157    if (src.hasDate())
1158      tgt.setDateElement(Date43_50.convertDate(src.getDateElement()));
1159    if (src.hasAmount())
1160      tgt.setAmount(Money43_50.convertMoney(src.getAmount()));
1161    if (src.hasIdentifier())
1162      tgt.setIdentifier(Identifier43_50.convertIdentifier(src.getIdentifier()));
1163    return tgt;
1164  }
1165
1166  public static org.hl7.fhir.r4b.model.ExplanationOfBenefit.PaymentComponent convertPaymentComponent(org.hl7.fhir.r5.model.ExplanationOfBenefit.PaymentComponent src) throws FHIRException {
1167    if (src == null)
1168      return null;
1169    org.hl7.fhir.r4b.model.ExplanationOfBenefit.PaymentComponent tgt = new org.hl7.fhir.r4b.model.ExplanationOfBenefit.PaymentComponent();
1170    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
1171    if (src.hasType())
1172      tgt.setType(CodeableConcept43_50.convertCodeableConcept(src.getType()));
1173    if (src.hasAdjustment())
1174      tgt.setAdjustment(Money43_50.convertMoney(src.getAdjustment()));
1175    if (src.hasAdjustmentReason())
1176      tgt.setAdjustmentReason(CodeableConcept43_50.convertCodeableConcept(src.getAdjustmentReason()));
1177    if (src.hasDate())
1178      tgt.setDateElement(Date43_50.convertDate(src.getDateElement()));
1179    if (src.hasAmount())
1180      tgt.setAmount(Money43_50.convertMoney(src.getAmount()));
1181    if (src.hasIdentifier())
1182      tgt.setIdentifier(Identifier43_50.convertIdentifier(src.getIdentifier()));
1183    return tgt;
1184  }
1185
1186  public static org.hl7.fhir.r5.model.ExplanationOfBenefit.NoteComponent convertNoteComponent(org.hl7.fhir.r4b.model.ExplanationOfBenefit.NoteComponent src) throws FHIRException {
1187    if (src == null)
1188      return null;
1189    org.hl7.fhir.r5.model.ExplanationOfBenefit.NoteComponent tgt = new org.hl7.fhir.r5.model.ExplanationOfBenefit.NoteComponent();
1190    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
1191    if (src.hasNumber())
1192      tgt.setNumberElement(PositiveInt43_50.convertPositiveInt(src.getNumberElement()));
1193    if (src.hasType())
1194      tgt.getType().addCoding().setSystem("http://hl7.org/fhir/note-type").setCode(src.getType().toCode());
1195    if (src.hasText())
1196      tgt.setTextElement(String43_50.convertString(src.getTextElement()));
1197    if (src.hasLanguage())
1198      tgt.setLanguage(CodeableConcept43_50.convertCodeableConcept(src.getLanguage()));
1199    return tgt;
1200  }
1201
1202  public static org.hl7.fhir.r4b.model.ExplanationOfBenefit.NoteComponent convertNoteComponent(org.hl7.fhir.r5.model.ExplanationOfBenefit.NoteComponent src) throws FHIRException {
1203    if (src == null)
1204      return null;
1205    org.hl7.fhir.r4b.model.ExplanationOfBenefit.NoteComponent tgt = new org.hl7.fhir.r4b.model.ExplanationOfBenefit.NoteComponent();
1206    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
1207    if (src.hasNumber())
1208      tgt.setNumberElement(PositiveInt43_50.convertPositiveInt(src.getNumberElement()));
1209    if (src.hasType() && src.getType().hasCoding("http://hl7.org/fhir/note-type"))
1210      tgt.setType(org.hl7.fhir.r4b.model.Enumerations.NoteType.fromCode(src.getType().getCode("http://hl7.org/fhir/note-type")));
1211    if (src.hasText())
1212      tgt.setTextElement(String43_50.convertString(src.getTextElement()));
1213    if (src.hasLanguage())
1214      tgt.setLanguage(CodeableConcept43_50.convertCodeableConcept(src.getLanguage()));
1215    return tgt;
1216  }
1217
1218  public static org.hl7.fhir.r5.model.ExplanationOfBenefit.BenefitBalanceComponent convertBenefitBalanceComponent(org.hl7.fhir.r4b.model.ExplanationOfBenefit.BenefitBalanceComponent src) throws FHIRException {
1219    if (src == null)
1220      return null;
1221    org.hl7.fhir.r5.model.ExplanationOfBenefit.BenefitBalanceComponent tgt = new org.hl7.fhir.r5.model.ExplanationOfBenefit.BenefitBalanceComponent();
1222    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
1223    if (src.hasCategory())
1224      tgt.setCategory(CodeableConcept43_50.convertCodeableConcept(src.getCategory()));
1225    if (src.hasExcluded())
1226      tgt.setExcludedElement(Boolean43_50.convertBoolean(src.getExcludedElement()));
1227    if (src.hasName())
1228      tgt.setNameElement(String43_50.convertString(src.getNameElement()));
1229    if (src.hasDescription())
1230      tgt.setDescriptionElement(String43_50.convertString(src.getDescriptionElement()));
1231    if (src.hasNetwork())
1232      tgt.setNetwork(CodeableConcept43_50.convertCodeableConcept(src.getNetwork()));
1233    if (src.hasUnit())
1234      tgt.setUnit(CodeableConcept43_50.convertCodeableConcept(src.getUnit()));
1235    if (src.hasTerm())
1236      tgt.setTerm(CodeableConcept43_50.convertCodeableConcept(src.getTerm()));
1237    for (org.hl7.fhir.r4b.model.ExplanationOfBenefit.BenefitComponent t : src.getFinancial())
1238      tgt.addFinancial(convertBenefitComponent(t));
1239    return tgt;
1240  }
1241
1242  public static org.hl7.fhir.r4b.model.ExplanationOfBenefit.BenefitBalanceComponent convertBenefitBalanceComponent(org.hl7.fhir.r5.model.ExplanationOfBenefit.BenefitBalanceComponent src) throws FHIRException {
1243    if (src == null)
1244      return null;
1245    org.hl7.fhir.r4b.model.ExplanationOfBenefit.BenefitBalanceComponent tgt = new org.hl7.fhir.r4b.model.ExplanationOfBenefit.BenefitBalanceComponent();
1246    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
1247    if (src.hasCategory())
1248      tgt.setCategory(CodeableConcept43_50.convertCodeableConcept(src.getCategory()));
1249    if (src.hasExcluded())
1250      tgt.setExcludedElement(Boolean43_50.convertBoolean(src.getExcludedElement()));
1251    if (src.hasName())
1252      tgt.setNameElement(String43_50.convertString(src.getNameElement()));
1253    if (src.hasDescription())
1254      tgt.setDescriptionElement(String43_50.convertString(src.getDescriptionElement()));
1255    if (src.hasNetwork())
1256      tgt.setNetwork(CodeableConcept43_50.convertCodeableConcept(src.getNetwork()));
1257    if (src.hasUnit())
1258      tgt.setUnit(CodeableConcept43_50.convertCodeableConcept(src.getUnit()));
1259    if (src.hasTerm())
1260      tgt.setTerm(CodeableConcept43_50.convertCodeableConcept(src.getTerm()));
1261    for (org.hl7.fhir.r5.model.ExplanationOfBenefit.BenefitComponent t : src.getFinancial())
1262      tgt.addFinancial(convertBenefitComponent(t));
1263    return tgt;
1264  }
1265
1266  public static org.hl7.fhir.r5.model.ExplanationOfBenefit.BenefitComponent convertBenefitComponent(org.hl7.fhir.r4b.model.ExplanationOfBenefit.BenefitComponent src) throws FHIRException {
1267    if (src == null)
1268      return null;
1269    org.hl7.fhir.r5.model.ExplanationOfBenefit.BenefitComponent tgt = new org.hl7.fhir.r5.model.ExplanationOfBenefit.BenefitComponent();
1270    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
1271    if (src.hasType())
1272      tgt.setType(CodeableConcept43_50.convertCodeableConcept(src.getType()));
1273    if (src.hasAllowed())
1274      tgt.setAllowed(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getAllowed()));
1275    if (src.hasUsed())
1276      tgt.setUsed(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getUsed()));
1277    return tgt;
1278  }
1279
1280  public static org.hl7.fhir.r4b.model.ExplanationOfBenefit.BenefitComponent convertBenefitComponent(org.hl7.fhir.r5.model.ExplanationOfBenefit.BenefitComponent src) throws FHIRException {
1281    if (src == null)
1282      return null;
1283    org.hl7.fhir.r4b.model.ExplanationOfBenefit.BenefitComponent tgt = new org.hl7.fhir.r4b.model.ExplanationOfBenefit.BenefitComponent();
1284    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
1285    if (src.hasType())
1286      tgt.setType(CodeableConcept43_50.convertCodeableConcept(src.getType()));
1287    if (src.hasAllowed())
1288      tgt.setAllowed(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getAllowed()));
1289    if (src.hasUsed())
1290      tgt.setUsed(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getUsed()));
1291    return tgt;
1292  }
1293}