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.CodeableConcept40_50;
005import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Identifier40_50;
006import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Quantity40_50;
007import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.*;
008import org.hl7.fhir.convertors.conv40_50.datatypes40_50.special40_50.Reference40_50;
009import org.hl7.fhir.exceptions.FHIRException;
010
011/*
012  Copyright (c) 2011+, HL7, Inc.
013  All rights reserved.
014  
015  Redistribution and use in source and binary forms, with or without modification, 
016  are permitted provided that the following conditions are met:
017  
018   * Redistributions of source code must retain the above copyright notice, this 
019     list of conditions and the following disclaimer.
020   * Redistributions in binary form must reproduce the above copyright notice, 
021     this list of conditions and the following disclaimer in the documentation 
022     and/or other materials provided with the distribution.
023   * Neither the name of HL7 nor the names of its contributors may be used to 
024     endorse or promote products derived from this software without specific 
025     prior written permission.
026  
027  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
028  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
029  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
030  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
031  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
032  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
033  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
034  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
035  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
036  POSSIBILITY OF SUCH DAMAGE.
037  
038*/
039// Generated on Sun, Feb 24, 2019 11:37+1100 for FHIR v4.0.0
040public class MolecularSequence40_50 {
041
042  public static org.hl7.fhir.r5.model.MolecularSequence convertMolecularSequence(org.hl7.fhir.r4.model.MolecularSequence src) throws FHIRException {
043    if (src == null)
044      return null;
045    org.hl7.fhir.r5.model.MolecularSequence tgt = new org.hl7.fhir.r5.model.MolecularSequence();
046    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt);
047    for (org.hl7.fhir.r4.model.Identifier t : src.getIdentifier())
048      tgt.addIdentifier(Identifier40_50.convertIdentifier(t));
049    if (src.hasType())
050      tgt.setTypeElement(convertSequenceType(src.getTypeElement()));
051    if (src.hasCoordinateSystem())
052      tgt.setCoordinateSystemElement(Integer40_50.convertInteger(src.getCoordinateSystemElement()));
053    if (src.hasPatient())
054      tgt.setPatient(Reference40_50.convertReference(src.getPatient()));
055    if (src.hasSpecimen())
056      tgt.setSpecimen(Reference40_50.convertReference(src.getSpecimen()));
057    if (src.hasDevice())
058      tgt.setDevice(Reference40_50.convertReference(src.getDevice()));
059    if (src.hasPerformer())
060      tgt.setPerformer(Reference40_50.convertReference(src.getPerformer()));
061    if (src.hasQuantity())
062      tgt.setQuantity(Quantity40_50.convertQuantity(src.getQuantity()));
063    if (src.hasReferenceSeq())
064      tgt.setReferenceSeq(convertMolecularSequenceReferenceSeqComponent(src.getReferenceSeq()));
065    for (org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceVariantComponent t : src.getVariant())
066      tgt.addVariant(convertMolecularSequenceVariantComponent(t));
067    if (src.hasObservedSeq())
068      tgt.setObservedSeqElement(String40_50.convertString(src.getObservedSeqElement()));
069    for (org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceQualityComponent t : src.getQuality())
070      tgt.addQuality(convertMolecularSequenceQualityComponent(t));
071    if (src.hasReadCoverage())
072      tgt.setReadCoverageElement(Integer40_50.convertInteger(src.getReadCoverageElement()));
073    for (org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceRepositoryComponent t : src.getRepository())
074      tgt.addRepository(convertMolecularSequenceRepositoryComponent(t));
075    for (org.hl7.fhir.r4.model.Reference t : src.getPointer()) tgt.addPointer(Reference40_50.convertReference(t));
076    for (org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceStructureVariantComponent t : src.getStructureVariant())
077      tgt.addStructureVariant(convertMolecularSequenceStructureVariantComponent(t));
078    return tgt;
079  }
080
081  public static org.hl7.fhir.r4.model.MolecularSequence convertMolecularSequence(org.hl7.fhir.r5.model.MolecularSequence src) throws FHIRException {
082    if (src == null)
083      return null;
084    org.hl7.fhir.r4.model.MolecularSequence tgt = new org.hl7.fhir.r4.model.MolecularSequence();
085    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt);
086    for (org.hl7.fhir.r5.model.Identifier t : src.getIdentifier())
087      tgt.addIdentifier(Identifier40_50.convertIdentifier(t));
088    if (src.hasType())
089      tgt.setTypeElement(convertSequenceType(src.getTypeElement()));
090    if (src.hasCoordinateSystem())
091      tgt.setCoordinateSystemElement(Integer40_50.convertInteger(src.getCoordinateSystemElement()));
092    if (src.hasPatient())
093      tgt.setPatient(Reference40_50.convertReference(src.getPatient()));
094    if (src.hasSpecimen())
095      tgt.setSpecimen(Reference40_50.convertReference(src.getSpecimen()));
096    if (src.hasDevice())
097      tgt.setDevice(Reference40_50.convertReference(src.getDevice()));
098    if (src.hasPerformer())
099      tgt.setPerformer(Reference40_50.convertReference(src.getPerformer()));
100    if (src.hasQuantity())
101      tgt.setQuantity(Quantity40_50.convertQuantity(src.getQuantity()));
102    if (src.hasReferenceSeq())
103      tgt.setReferenceSeq(convertMolecularSequenceReferenceSeqComponent(src.getReferenceSeq()));
104    for (org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceVariantComponent t : src.getVariant())
105      tgt.addVariant(convertMolecularSequenceVariantComponent(t));
106    if (src.hasObservedSeq())
107      tgt.setObservedSeqElement(String40_50.convertString(src.getObservedSeqElement()));
108    for (org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceQualityComponent t : src.getQuality())
109      tgt.addQuality(convertMolecularSequenceQualityComponent(t));
110    if (src.hasReadCoverage())
111      tgt.setReadCoverageElement(Integer40_50.convertInteger(src.getReadCoverageElement()));
112    for (org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceRepositoryComponent t : src.getRepository())
113      tgt.addRepository(convertMolecularSequenceRepositoryComponent(t));
114    for (org.hl7.fhir.r5.model.Reference t : src.getPointer()) tgt.addPointer(Reference40_50.convertReference(t));
115    for (org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceStructureVariantComponent t : src.getStructureVariant())
116      tgt.addStructureVariant(convertMolecularSequenceStructureVariantComponent(t));
117    return tgt;
118  }
119
120  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.MolecularSequence.SequenceType> convertSequenceType(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MolecularSequence.SequenceType> src) throws FHIRException {
121    if (src == null || src.isEmpty())
122      return null;
123    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.MolecularSequence.SequenceType> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.MolecularSequence.SequenceTypeEnumFactory());
124    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
125    switch (src.getValue()) {
126      case AA:
127        tgt.setValue(org.hl7.fhir.r5.model.MolecularSequence.SequenceType.AA);
128        break;
129      case DNA:
130        tgt.setValue(org.hl7.fhir.r5.model.MolecularSequence.SequenceType.DNA);
131        break;
132      case RNA:
133        tgt.setValue(org.hl7.fhir.r5.model.MolecularSequence.SequenceType.RNA);
134        break;
135      default:
136        tgt.setValue(org.hl7.fhir.r5.model.MolecularSequence.SequenceType.NULL);
137        break;
138    }
139    return tgt;
140  }
141
142  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MolecularSequence.SequenceType> convertSequenceType(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.MolecularSequence.SequenceType> src) throws FHIRException {
143    if (src == null || src.isEmpty())
144      return null;
145    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MolecularSequence.SequenceType> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.MolecularSequence.SequenceTypeEnumFactory());
146    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
147    switch (src.getValue()) {
148      case AA:
149        tgt.setValue(org.hl7.fhir.r4.model.MolecularSequence.SequenceType.AA);
150        break;
151      case DNA:
152        tgt.setValue(org.hl7.fhir.r4.model.MolecularSequence.SequenceType.DNA);
153        break;
154      case RNA:
155        tgt.setValue(org.hl7.fhir.r4.model.MolecularSequence.SequenceType.RNA);
156        break;
157      default:
158        tgt.setValue(org.hl7.fhir.r4.model.MolecularSequence.SequenceType.NULL);
159        break;
160    }
161    return tgt;
162  }
163
164  public static org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceReferenceSeqComponent convertMolecularSequenceReferenceSeqComponent(org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceReferenceSeqComponent src) throws FHIRException {
165    if (src == null)
166      return null;
167    org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceReferenceSeqComponent tgt = new org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceReferenceSeqComponent();
168    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
169    if (src.hasChromosome())
170      tgt.setChromosome(CodeableConcept40_50.convertCodeableConcept(src.getChromosome()));
171    if (src.hasGenomeBuild())
172      tgt.setGenomeBuildElement(String40_50.convertString(src.getGenomeBuildElement()));
173    if (src.hasOrientation())
174      tgt.setOrientationElement(convertOrientationType(src.getOrientationElement()));
175    if (src.hasReferenceSeqId())
176      tgt.setReferenceSeqId(CodeableConcept40_50.convertCodeableConcept(src.getReferenceSeqId()));
177    if (src.hasReferenceSeqPointer())
178      tgt.setReferenceSeqPointer(Reference40_50.convertReference(src.getReferenceSeqPointer()));
179    if (src.hasReferenceSeqString())
180      tgt.setReferenceSeqStringElement(String40_50.convertString(src.getReferenceSeqStringElement()));
181    if (src.hasStrand())
182      tgt.setStrandElement(convertStrandType(src.getStrandElement()));
183    if (src.hasWindowStart())
184      tgt.setWindowStartElement(Integer40_50.convertInteger(src.getWindowStartElement()));
185    if (src.hasWindowEnd())
186      tgt.setWindowEndElement(Integer40_50.convertInteger(src.getWindowEndElement()));
187    return tgt;
188  }
189
190  public static org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceReferenceSeqComponent convertMolecularSequenceReferenceSeqComponent(org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceReferenceSeqComponent src) throws FHIRException {
191    if (src == null)
192      return null;
193    org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceReferenceSeqComponent tgt = new org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceReferenceSeqComponent();
194    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
195    if (src.hasChromosome())
196      tgt.setChromosome(CodeableConcept40_50.convertCodeableConcept(src.getChromosome()));
197    if (src.hasGenomeBuild())
198      tgt.setGenomeBuildElement(String40_50.convertString(src.getGenomeBuildElement()));
199    if (src.hasOrientation())
200      tgt.setOrientationElement(convertOrientationType(src.getOrientationElement()));
201    if (src.hasReferenceSeqId())
202      tgt.setReferenceSeqId(CodeableConcept40_50.convertCodeableConcept(src.getReferenceSeqId()));
203    if (src.hasReferenceSeqPointer())
204      tgt.setReferenceSeqPointer(Reference40_50.convertReference(src.getReferenceSeqPointer()));
205    if (src.hasReferenceSeqString())
206      tgt.setReferenceSeqStringElement(String40_50.convertString(src.getReferenceSeqStringElement()));
207    if (src.hasStrand())
208      tgt.setStrandElement(convertStrandType(src.getStrandElement()));
209    if (src.hasWindowStart())
210      tgt.setWindowStartElement(Integer40_50.convertInteger(src.getWindowStartElement()));
211    if (src.hasWindowEnd())
212      tgt.setWindowEndElement(Integer40_50.convertInteger(src.getWindowEndElement()));
213    return tgt;
214  }
215
216  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.MolecularSequence.OrientationType> convertOrientationType(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MolecularSequence.OrientationType> src) throws FHIRException {
217    if (src == null || src.isEmpty())
218      return null;
219    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.MolecularSequence.OrientationType> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.MolecularSequence.OrientationTypeEnumFactory());
220    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
221    switch (src.getValue()) {
222      case SENSE:
223        tgt.setValue(org.hl7.fhir.r5.model.MolecularSequence.OrientationType.SENSE);
224        break;
225      case ANTISENSE:
226        tgt.setValue(org.hl7.fhir.r5.model.MolecularSequence.OrientationType.ANTISENSE);
227        break;
228      default:
229        tgt.setValue(org.hl7.fhir.r5.model.MolecularSequence.OrientationType.NULL);
230        break;
231    }
232    return tgt;
233  }
234
235  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MolecularSequence.OrientationType> convertOrientationType(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.MolecularSequence.OrientationType> src) throws FHIRException {
236    if (src == null || src.isEmpty())
237      return null;
238    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MolecularSequence.OrientationType> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.MolecularSequence.OrientationTypeEnumFactory());
239    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
240    switch (src.getValue()) {
241      case SENSE:
242        tgt.setValue(org.hl7.fhir.r4.model.MolecularSequence.OrientationType.SENSE);
243        break;
244      case ANTISENSE:
245        tgt.setValue(org.hl7.fhir.r4.model.MolecularSequence.OrientationType.ANTISENSE);
246        break;
247      default:
248        tgt.setValue(org.hl7.fhir.r4.model.MolecularSequence.OrientationType.NULL);
249        break;
250    }
251    return tgt;
252  }
253
254  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.MolecularSequence.StrandType> convertStrandType(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MolecularSequence.StrandType> src) throws FHIRException {
255    if (src == null || src.isEmpty())
256      return null;
257    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.MolecularSequence.StrandType> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.MolecularSequence.StrandTypeEnumFactory());
258    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
259    switch (src.getValue()) {
260      case WATSON:
261        tgt.setValue(org.hl7.fhir.r5.model.MolecularSequence.StrandType.WATSON);
262        break;
263      case CRICK:
264        tgt.setValue(org.hl7.fhir.r5.model.MolecularSequence.StrandType.CRICK);
265        break;
266      default:
267        tgt.setValue(org.hl7.fhir.r5.model.MolecularSequence.StrandType.NULL);
268        break;
269    }
270    return tgt;
271  }
272
273  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MolecularSequence.StrandType> convertStrandType(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.MolecularSequence.StrandType> src) throws FHIRException {
274    if (src == null || src.isEmpty())
275      return null;
276    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MolecularSequence.StrandType> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.MolecularSequence.StrandTypeEnumFactory());
277    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
278    switch (src.getValue()) {
279      case WATSON:
280        tgt.setValue(org.hl7.fhir.r4.model.MolecularSequence.StrandType.WATSON);
281        break;
282      case CRICK:
283        tgt.setValue(org.hl7.fhir.r4.model.MolecularSequence.StrandType.CRICK);
284        break;
285      default:
286        tgt.setValue(org.hl7.fhir.r4.model.MolecularSequence.StrandType.NULL);
287        break;
288    }
289    return tgt;
290  }
291
292  public static org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceVariantComponent convertMolecularSequenceVariantComponent(org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceVariantComponent src) throws FHIRException {
293    if (src == null)
294      return null;
295    org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceVariantComponent tgt = new org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceVariantComponent();
296    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
297    if (src.hasStart())
298      tgt.setStartElement(Integer40_50.convertInteger(src.getStartElement()));
299    if (src.hasEnd())
300      tgt.setEndElement(Integer40_50.convertInteger(src.getEndElement()));
301    if (src.hasObservedAllele())
302      tgt.setObservedAlleleElement(String40_50.convertString(src.getObservedAlleleElement()));
303    if (src.hasReferenceAllele())
304      tgt.setReferenceAlleleElement(String40_50.convertString(src.getReferenceAlleleElement()));
305    if (src.hasCigar())
306      tgt.setCigarElement(String40_50.convertString(src.getCigarElement()));
307    if (src.hasVariantPointer())
308      tgt.setVariantPointer(Reference40_50.convertReference(src.getVariantPointer()));
309    return tgt;
310  }
311
312  public static org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceVariantComponent convertMolecularSequenceVariantComponent(org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceVariantComponent src) throws FHIRException {
313    if (src == null)
314      return null;
315    org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceVariantComponent tgt = new org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceVariantComponent();
316    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
317    if (src.hasStart())
318      tgt.setStartElement(Integer40_50.convertInteger(src.getStartElement()));
319    if (src.hasEnd())
320      tgt.setEndElement(Integer40_50.convertInteger(src.getEndElement()));
321    if (src.hasObservedAllele())
322      tgt.setObservedAlleleElement(String40_50.convertString(src.getObservedAlleleElement()));
323    if (src.hasReferenceAllele())
324      tgt.setReferenceAlleleElement(String40_50.convertString(src.getReferenceAlleleElement()));
325    if (src.hasCigar())
326      tgt.setCigarElement(String40_50.convertString(src.getCigarElement()));
327    if (src.hasVariantPointer())
328      tgt.setVariantPointer(Reference40_50.convertReference(src.getVariantPointer()));
329    return tgt;
330  }
331
332  public static org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceQualityComponent convertMolecularSequenceQualityComponent(org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceQualityComponent src) throws FHIRException {
333    if (src == null)
334      return null;
335    org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceQualityComponent tgt = new org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceQualityComponent();
336    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
337    if (src.hasType())
338      tgt.setTypeElement(convertQualityType(src.getTypeElement()));
339    if (src.hasStandardSequence())
340      tgt.setStandardSequence(CodeableConcept40_50.convertCodeableConcept(src.getStandardSequence()));
341    if (src.hasStart())
342      tgt.setStartElement(Integer40_50.convertInteger(src.getStartElement()));
343    if (src.hasEnd())
344      tgt.setEndElement(Integer40_50.convertInteger(src.getEndElement()));
345    if (src.hasScore())
346      tgt.setScore(Quantity40_50.convertQuantity(src.getScore()));
347    if (src.hasMethod())
348      tgt.setMethod(CodeableConcept40_50.convertCodeableConcept(src.getMethod()));
349    if (src.hasTruthTP())
350      tgt.setTruthTPElement(Decimal40_50.convertDecimal(src.getTruthTPElement()));
351    if (src.hasQueryTP())
352      tgt.setQueryTPElement(Decimal40_50.convertDecimal(src.getQueryTPElement()));
353    if (src.hasTruthFN())
354      tgt.setTruthFNElement(Decimal40_50.convertDecimal(src.getTruthFNElement()));
355    if (src.hasQueryFP())
356      tgt.setQueryFPElement(Decimal40_50.convertDecimal(src.getQueryFPElement()));
357    if (src.hasGtFP())
358      tgt.setGtFPElement(Decimal40_50.convertDecimal(src.getGtFPElement()));
359    if (src.hasPrecision())
360      tgt.setPrecisionElement(Decimal40_50.convertDecimal(src.getPrecisionElement()));
361    if (src.hasRecall())
362      tgt.setRecallElement(Decimal40_50.convertDecimal(src.getRecallElement()));
363    if (src.hasFScore())
364      tgt.setFScoreElement(Decimal40_50.convertDecimal(src.getFScoreElement()));
365    if (src.hasRoc())
366      tgt.setRoc(convertMolecularSequenceQualityRocComponent(src.getRoc()));
367    return tgt;
368  }
369
370  public static org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceQualityComponent convertMolecularSequenceQualityComponent(org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceQualityComponent src) throws FHIRException {
371    if (src == null)
372      return null;
373    org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceQualityComponent tgt = new org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceQualityComponent();
374    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
375    if (src.hasType())
376      tgt.setTypeElement(convertQualityType(src.getTypeElement()));
377    if (src.hasStandardSequence())
378      tgt.setStandardSequence(CodeableConcept40_50.convertCodeableConcept(src.getStandardSequence()));
379    if (src.hasStart())
380      tgt.setStartElement(Integer40_50.convertInteger(src.getStartElement()));
381    if (src.hasEnd())
382      tgt.setEndElement(Integer40_50.convertInteger(src.getEndElement()));
383    if (src.hasScore())
384      tgt.setScore(Quantity40_50.convertQuantity(src.getScore()));
385    if (src.hasMethod())
386      tgt.setMethod(CodeableConcept40_50.convertCodeableConcept(src.getMethod()));
387    if (src.hasTruthTP())
388      tgt.setTruthTPElement(Decimal40_50.convertDecimal(src.getTruthTPElement()));
389    if (src.hasQueryTP())
390      tgt.setQueryTPElement(Decimal40_50.convertDecimal(src.getQueryTPElement()));
391    if (src.hasTruthFN())
392      tgt.setTruthFNElement(Decimal40_50.convertDecimal(src.getTruthFNElement()));
393    if (src.hasQueryFP())
394      tgt.setQueryFPElement(Decimal40_50.convertDecimal(src.getQueryFPElement()));
395    if (src.hasGtFP())
396      tgt.setGtFPElement(Decimal40_50.convertDecimal(src.getGtFPElement()));
397    if (src.hasPrecision())
398      tgt.setPrecisionElement(Decimal40_50.convertDecimal(src.getPrecisionElement()));
399    if (src.hasRecall())
400      tgt.setRecallElement(Decimal40_50.convertDecimal(src.getRecallElement()));
401    if (src.hasFScore())
402      tgt.setFScoreElement(Decimal40_50.convertDecimal(src.getFScoreElement()));
403    if (src.hasRoc())
404      tgt.setRoc(convertMolecularSequenceQualityRocComponent(src.getRoc()));
405    return tgt;
406  }
407
408  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.MolecularSequence.QualityType> convertQualityType(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MolecularSequence.QualityType> src) throws FHIRException {
409    if (src == null || src.isEmpty())
410      return null;
411    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.MolecularSequence.QualityType> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.MolecularSequence.QualityTypeEnumFactory());
412    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
413    switch (src.getValue()) {
414      case INDEL:
415        tgt.setValue(org.hl7.fhir.r5.model.MolecularSequence.QualityType.INDEL);
416        break;
417      case SNP:
418        tgt.setValue(org.hl7.fhir.r5.model.MolecularSequence.QualityType.SNP);
419        break;
420      case UNKNOWN:
421        tgt.setValue(org.hl7.fhir.r5.model.MolecularSequence.QualityType.UNKNOWN);
422        break;
423      default:
424        tgt.setValue(org.hl7.fhir.r5.model.MolecularSequence.QualityType.NULL);
425        break;
426    }
427    return tgt;
428  }
429
430  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MolecularSequence.QualityType> convertQualityType(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.MolecularSequence.QualityType> src) throws FHIRException {
431    if (src == null || src.isEmpty())
432      return null;
433    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MolecularSequence.QualityType> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.MolecularSequence.QualityTypeEnumFactory());
434    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
435    switch (src.getValue()) {
436      case INDEL:
437        tgt.setValue(org.hl7.fhir.r4.model.MolecularSequence.QualityType.INDEL);
438        break;
439      case SNP:
440        tgt.setValue(org.hl7.fhir.r4.model.MolecularSequence.QualityType.SNP);
441        break;
442      case UNKNOWN:
443        tgt.setValue(org.hl7.fhir.r4.model.MolecularSequence.QualityType.UNKNOWN);
444        break;
445      default:
446        tgt.setValue(org.hl7.fhir.r4.model.MolecularSequence.QualityType.NULL);
447        break;
448    }
449    return tgt;
450  }
451
452  public static org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceQualityRocComponent convertMolecularSequenceQualityRocComponent(org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceQualityRocComponent src) throws FHIRException {
453    if (src == null)
454      return null;
455    org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceQualityRocComponent tgt = new org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceQualityRocComponent();
456    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
457    for (org.hl7.fhir.r4.model.IntegerType t : src.getScore()) tgt.getScore().add(Integer40_50.convertInteger(t));
458    for (org.hl7.fhir.r4.model.IntegerType t : src.getNumTP()) tgt.getNumTP().add(Integer40_50.convertInteger(t));
459    for (org.hl7.fhir.r4.model.IntegerType t : src.getNumFP()) tgt.getNumFP().add(Integer40_50.convertInteger(t));
460    for (org.hl7.fhir.r4.model.IntegerType t : src.getNumFN()) tgt.getNumFN().add(Integer40_50.convertInteger(t));
461    for (org.hl7.fhir.r4.model.DecimalType t : src.getPrecision())
462      tgt.getPrecision().add(Decimal40_50.convertDecimal(t));
463    for (org.hl7.fhir.r4.model.DecimalType t : src.getSensitivity())
464      tgt.getSensitivity().add(Decimal40_50.convertDecimal(t));
465    for (org.hl7.fhir.r4.model.DecimalType t : src.getFMeasure()) tgt.getFMeasure().add(Decimal40_50.convertDecimal(t));
466    return tgt;
467  }
468
469  public static org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceQualityRocComponent convertMolecularSequenceQualityRocComponent(org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceQualityRocComponent src) throws FHIRException {
470    if (src == null)
471      return null;
472    org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceQualityRocComponent tgt = new org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceQualityRocComponent();
473    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
474    for (org.hl7.fhir.r5.model.IntegerType t : src.getScore()) tgt.getScore().add(Integer40_50.convertInteger(t));
475    for (org.hl7.fhir.r5.model.IntegerType t : src.getNumTP()) tgt.getNumTP().add(Integer40_50.convertInteger(t));
476    for (org.hl7.fhir.r5.model.IntegerType t : src.getNumFP()) tgt.getNumFP().add(Integer40_50.convertInteger(t));
477    for (org.hl7.fhir.r5.model.IntegerType t : src.getNumFN()) tgt.getNumFN().add(Integer40_50.convertInteger(t));
478    for (org.hl7.fhir.r5.model.DecimalType t : src.getPrecision())
479      tgt.getPrecision().add(Decimal40_50.convertDecimal(t));
480    for (org.hl7.fhir.r5.model.DecimalType t : src.getSensitivity())
481      tgt.getSensitivity().add(Decimal40_50.convertDecimal(t));
482    for (org.hl7.fhir.r5.model.DecimalType t : src.getFMeasure()) tgt.getFMeasure().add(Decimal40_50.convertDecimal(t));
483    return tgt;
484  }
485
486  public static org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceRepositoryComponent convertMolecularSequenceRepositoryComponent(org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceRepositoryComponent src) throws FHIRException {
487    if (src == null)
488      return null;
489    org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceRepositoryComponent tgt = new org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceRepositoryComponent();
490    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
491    if (src.hasType())
492      tgt.setTypeElement(convertRepositoryType(src.getTypeElement()));
493    if (src.hasUrl())
494      tgt.setUrlElement(Uri40_50.convertUri(src.getUrlElement()));
495    if (src.hasName())
496      tgt.setNameElement(String40_50.convertString(src.getNameElement()));
497    if (src.hasDatasetId())
498      tgt.setDatasetIdElement(String40_50.convertString(src.getDatasetIdElement()));
499    if (src.hasVariantsetId())
500      tgt.setVariantsetIdElement(String40_50.convertString(src.getVariantsetIdElement()));
501    if (src.hasReadsetId())
502      tgt.setReadsetIdElement(String40_50.convertString(src.getReadsetIdElement()));
503    return tgt;
504  }
505
506  public static org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceRepositoryComponent convertMolecularSequenceRepositoryComponent(org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceRepositoryComponent src) throws FHIRException {
507    if (src == null)
508      return null;
509    org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceRepositoryComponent tgt = new org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceRepositoryComponent();
510    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
511    if (src.hasType())
512      tgt.setTypeElement(convertRepositoryType(src.getTypeElement()));
513    if (src.hasUrl())
514      tgt.setUrlElement(Uri40_50.convertUri(src.getUrlElement()));
515    if (src.hasName())
516      tgt.setNameElement(String40_50.convertString(src.getNameElement()));
517    if (src.hasDatasetId())
518      tgt.setDatasetIdElement(String40_50.convertString(src.getDatasetIdElement()));
519    if (src.hasVariantsetId())
520      tgt.setVariantsetIdElement(String40_50.convertString(src.getVariantsetIdElement()));
521    if (src.hasReadsetId())
522      tgt.setReadsetIdElement(String40_50.convertString(src.getReadsetIdElement()));
523    return tgt;
524  }
525
526  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.MolecularSequence.RepositoryType> convertRepositoryType(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MolecularSequence.RepositoryType> src) throws FHIRException {
527    if (src == null || src.isEmpty())
528      return null;
529    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.MolecularSequence.RepositoryType> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.MolecularSequence.RepositoryTypeEnumFactory());
530    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
531    switch (src.getValue()) {
532      case DIRECTLINK:
533        tgt.setValue(org.hl7.fhir.r5.model.MolecularSequence.RepositoryType.DIRECTLINK);
534        break;
535      case OPENAPI:
536        tgt.setValue(org.hl7.fhir.r5.model.MolecularSequence.RepositoryType.OPENAPI);
537        break;
538      case LOGIN:
539        tgt.setValue(org.hl7.fhir.r5.model.MolecularSequence.RepositoryType.LOGIN);
540        break;
541      case OAUTH:
542        tgt.setValue(org.hl7.fhir.r5.model.MolecularSequence.RepositoryType.OAUTH);
543        break;
544      case OTHER:
545        tgt.setValue(org.hl7.fhir.r5.model.MolecularSequence.RepositoryType.OTHER);
546        break;
547      default:
548        tgt.setValue(org.hl7.fhir.r5.model.MolecularSequence.RepositoryType.NULL);
549        break;
550    }
551    return tgt;
552  }
553
554  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MolecularSequence.RepositoryType> convertRepositoryType(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.MolecularSequence.RepositoryType> src) throws FHIRException {
555    if (src == null || src.isEmpty())
556      return null;
557    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MolecularSequence.RepositoryType> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.MolecularSequence.RepositoryTypeEnumFactory());
558    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
559    switch (src.getValue()) {
560      case DIRECTLINK:
561        tgt.setValue(org.hl7.fhir.r4.model.MolecularSequence.RepositoryType.DIRECTLINK);
562        break;
563      case OPENAPI:
564        tgt.setValue(org.hl7.fhir.r4.model.MolecularSequence.RepositoryType.OPENAPI);
565        break;
566      case LOGIN:
567        tgt.setValue(org.hl7.fhir.r4.model.MolecularSequence.RepositoryType.LOGIN);
568        break;
569      case OAUTH:
570        tgt.setValue(org.hl7.fhir.r4.model.MolecularSequence.RepositoryType.OAUTH);
571        break;
572      case OTHER:
573        tgt.setValue(org.hl7.fhir.r4.model.MolecularSequence.RepositoryType.OTHER);
574        break;
575      default:
576        tgt.setValue(org.hl7.fhir.r4.model.MolecularSequence.RepositoryType.NULL);
577        break;
578    }
579    return tgt;
580  }
581
582  public static org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceStructureVariantComponent convertMolecularSequenceStructureVariantComponent(org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceStructureVariantComponent src) throws FHIRException {
583    if (src == null)
584      return null;
585    org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceStructureVariantComponent tgt = new org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceStructureVariantComponent();
586    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
587    if (src.hasVariantType())
588      tgt.setVariantType(CodeableConcept40_50.convertCodeableConcept(src.getVariantType()));
589    if (src.hasExact())
590      tgt.setExactElement(Boolean40_50.convertBoolean(src.getExactElement()));
591    if (src.hasLength())
592      tgt.setLengthElement(Integer40_50.convertInteger(src.getLengthElement()));
593    if (src.hasOuter())
594      tgt.setOuter(convertMolecularSequenceStructureVariantOuterComponent(src.getOuter()));
595    if (src.hasInner())
596      tgt.setInner(convertMolecularSequenceStructureVariantInnerComponent(src.getInner()));
597    return tgt;
598  }
599
600  public static org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceStructureVariantComponent convertMolecularSequenceStructureVariantComponent(org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceStructureVariantComponent src) throws FHIRException {
601    if (src == null)
602      return null;
603    org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceStructureVariantComponent tgt = new org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceStructureVariantComponent();
604    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
605    if (src.hasVariantType())
606      tgt.setVariantType(CodeableConcept40_50.convertCodeableConcept(src.getVariantType()));
607    if (src.hasExact())
608      tgt.setExactElement(Boolean40_50.convertBoolean(src.getExactElement()));
609    if (src.hasLength())
610      tgt.setLengthElement(Integer40_50.convertInteger(src.getLengthElement()));
611    if (src.hasOuter())
612      tgt.setOuter(convertMolecularSequenceStructureVariantOuterComponent(src.getOuter()));
613    if (src.hasInner())
614      tgt.setInner(convertMolecularSequenceStructureVariantInnerComponent(src.getInner()));
615    return tgt;
616  }
617
618  public static org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceStructureVariantOuterComponent convertMolecularSequenceStructureVariantOuterComponent(org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceStructureVariantOuterComponent src) throws FHIRException {
619    if (src == null)
620      return null;
621    org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceStructureVariantOuterComponent tgt = new org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceStructureVariantOuterComponent();
622    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
623    if (src.hasStart())
624      tgt.setStartElement(Integer40_50.convertInteger(src.getStartElement()));
625    if (src.hasEnd())
626      tgt.setEndElement(Integer40_50.convertInteger(src.getEndElement()));
627    return tgt;
628  }
629
630  public static org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceStructureVariantOuterComponent convertMolecularSequenceStructureVariantOuterComponent(org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceStructureVariantOuterComponent src) throws FHIRException {
631    if (src == null)
632      return null;
633    org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceStructureVariantOuterComponent tgt = new org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceStructureVariantOuterComponent();
634    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
635    if (src.hasStart())
636      tgt.setStartElement(Integer40_50.convertInteger(src.getStartElement()));
637    if (src.hasEnd())
638      tgt.setEndElement(Integer40_50.convertInteger(src.getEndElement()));
639    return tgt;
640  }
641
642  public static org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceStructureVariantInnerComponent convertMolecularSequenceStructureVariantInnerComponent(org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceStructureVariantInnerComponent src) throws FHIRException {
643    if (src == null)
644      return null;
645    org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceStructureVariantInnerComponent tgt = new org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceStructureVariantInnerComponent();
646    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
647    if (src.hasStart())
648      tgt.setStartElement(Integer40_50.convertInteger(src.getStartElement()));
649    if (src.hasEnd())
650      tgt.setEndElement(Integer40_50.convertInteger(src.getEndElement()));
651    return tgt;
652  }
653
654  public static org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceStructureVariantInnerComponent convertMolecularSequenceStructureVariantInnerComponent(org.hl7.fhir.r5.model.MolecularSequence.MolecularSequenceStructureVariantInnerComponent src) throws FHIRException {
655    if (src == null)
656      return null;
657    org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceStructureVariantInnerComponent tgt = new org.hl7.fhir.r4.model.MolecularSequence.MolecularSequenceStructureVariantInnerComponent();
658    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
659    if (src.hasStart())
660      tgt.setStartElement(Integer40_50.convertInteger(src.getStartElement()));
661    if (src.hasEnd())
662      tgt.setEndElement(Integer40_50.convertInteger(src.getEndElement()));
663    return tgt;
664  }
665}