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