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