001package org.hl7.fhir.convertors.conv40_50.resources40_50;
002
003import org.hl7.fhir.convertors.context.ConversionContext40_50;
004import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Annotation40_50;
005import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.CodeableConcept40_50;
006import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Coding40_50;
007import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Identifier40_50;
008import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.DateTime40_50;
009import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Id40_50;
010import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.String40_50;
011import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.UnsignedInt40_50;
012import org.hl7.fhir.convertors.conv40_50.datatypes40_50.special40_50.Reference40_50;
013import org.hl7.fhir.exceptions.FHIRException;
014import org.hl7.fhir.r5.model.CodeableReference;
015
016/*
017  Copyright (c) 2011+, HL7, Inc.
018  All rights reserved.
019  
020  Redistribution and use in source and binary forms, with or without modification, 
021  are permitted provided that the following conditions are met:
022  
023   * Redistributions of source code must retain the above copyright notice, this 
024     list of conditions and the following disclaimer.
025   * Redistributions in binary form must reproduce the above copyright notice, 
026     this list of conditions and the following disclaimer in the documentation 
027     and/or other materials provided with the distribution.
028   * Neither the name of HL7 nor the names of its contributors may be used to 
029     endorse or promote products derived from this software without specific 
030     prior written permission.
031  
032  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
033  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
034  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
035  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
036  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
037  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
038  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
039  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
040  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
041  POSSIBILITY OF SUCH DAMAGE.
042  
043*/
044// Generated on Sun, Feb 24, 2019 11:37+1100 for FHIR v4.0.0
045public class ImagingStudy40_50 {
046
047  public static org.hl7.fhir.r5.model.ImagingStudy convertImagingStudy(org.hl7.fhir.r4.model.ImagingStudy src) throws FHIRException {
048    if (src == null)
049      return null;
050    org.hl7.fhir.r5.model.ImagingStudy tgt = new org.hl7.fhir.r5.model.ImagingStudy();
051    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt);
052    for (org.hl7.fhir.r4.model.Identifier t : src.getIdentifier())
053      tgt.addIdentifier(Identifier40_50.convertIdentifier(t));
054    if (src.hasStatus())
055      tgt.setStatusElement(convertImagingStudyStatus(src.getStatusElement()));
056    for (org.hl7.fhir.r4.model.Coding t : src.getModality()) tgt.addModality(Coding40_50.convertCoding(t));
057    if (src.hasSubject())
058      tgt.setSubject(Reference40_50.convertReference(src.getSubject()));
059    if (src.hasEncounter())
060      tgt.setEncounter(Reference40_50.convertReference(src.getEncounter()));
061    if (src.hasStarted())
062      tgt.setStartedElement(DateTime40_50.convertDateTime(src.getStartedElement()));
063    for (org.hl7.fhir.r4.model.Reference t : src.getBasedOn()) tgt.addBasedOn(Reference40_50.convertReference(t));
064    if (src.hasReferrer())
065      tgt.setReferrer(Reference40_50.convertReference(src.getReferrer()));
066    for (org.hl7.fhir.r4.model.Reference t : src.getInterpreter())
067      tgt.addInterpreter(Reference40_50.convertReference(t));
068    for (org.hl7.fhir.r4.model.Reference t : src.getEndpoint()) tgt.addEndpoint(Reference40_50.convertReference(t));
069    if (src.hasNumberOfSeries())
070      tgt.setNumberOfSeriesElement(UnsignedInt40_50.convertUnsignedInt(src.getNumberOfSeriesElement()));
071    if (src.hasNumberOfInstances())
072      tgt.setNumberOfInstancesElement(UnsignedInt40_50.convertUnsignedInt(src.getNumberOfInstancesElement()));
073    if (src.hasProcedureReference())
074      tgt.addProcedure().setReference(Reference40_50.convertReference(src.getProcedureReference()));
075    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getProcedureCode())
076      tgt.addProcedure().setConcept(CodeableConcept40_50.convertCodeableConcept(t));
077    if (src.hasLocation())
078      tgt.setLocation(Reference40_50.convertReference(src.getLocation()));
079    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getReasonCode())
080      tgt.addReason(CodeableConcept40_50.convertCodeableConceptToCodeableReference(t));
081    for (org.hl7.fhir.r4.model.Reference t : src.getReasonReference())
082      tgt.addReason(Reference40_50.convertReferenceToCodeableReference(t));
083    for (org.hl7.fhir.r4.model.Annotation t : src.getNote()) tgt.addNote(Annotation40_50.convertAnnotation(t));
084    if (src.hasDescription())
085      tgt.setDescriptionElement(String40_50.convertString(src.getDescriptionElement()));
086    for (org.hl7.fhir.r4.model.ImagingStudy.ImagingStudySeriesComponent t : src.getSeries())
087      tgt.addSeries(convertImagingStudySeriesComponent(t));
088    return tgt;
089  }
090
091  public static org.hl7.fhir.r4.model.ImagingStudy convertImagingStudy(org.hl7.fhir.r5.model.ImagingStudy src) throws FHIRException {
092    if (src == null)
093      return null;
094    org.hl7.fhir.r4.model.ImagingStudy tgt = new org.hl7.fhir.r4.model.ImagingStudy();
095    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt);
096    for (org.hl7.fhir.r5.model.Identifier t : src.getIdentifier())
097      tgt.addIdentifier(Identifier40_50.convertIdentifier(t));
098    if (src.hasStatus())
099      tgt.setStatusElement(convertImagingStudyStatus(src.getStatusElement()));
100    for (org.hl7.fhir.r5.model.Coding t : src.getModality()) tgt.addModality(Coding40_50.convertCoding(t));
101    if (src.hasSubject())
102      tgt.setSubject(Reference40_50.convertReference(src.getSubject()));
103    if (src.hasEncounter())
104      tgt.setEncounter(Reference40_50.convertReference(src.getEncounter()));
105    if (src.hasStarted())
106      tgt.setStartedElement(DateTime40_50.convertDateTime(src.getStartedElement()));
107    for (org.hl7.fhir.r5.model.Reference t : src.getBasedOn()) tgt.addBasedOn(Reference40_50.convertReference(t));
108    if (src.hasReferrer())
109      tgt.setReferrer(Reference40_50.convertReference(src.getReferrer()));
110    for (org.hl7.fhir.r5.model.Reference t : src.getInterpreter())
111      tgt.addInterpreter(Reference40_50.convertReference(t));
112    for (org.hl7.fhir.r5.model.Reference t : src.getEndpoint()) tgt.addEndpoint(Reference40_50.convertReference(t));
113    if (src.hasNumberOfSeries())
114      tgt.setNumberOfSeriesElement(UnsignedInt40_50.convertUnsignedInt(src.getNumberOfSeriesElement()));
115    if (src.hasNumberOfInstances())
116      tgt.setNumberOfInstancesElement(UnsignedInt40_50.convertUnsignedInt(src.getNumberOfInstancesElement()));
117    for (CodeableReference t : src.getProcedure()) {
118      if (t.hasConcept())
119        tgt.addProcedureCode(CodeableConcept40_50.convertCodeableConcept(t.getConcept()));
120      if (t.hasReference()) {
121        tgt.setProcedureReference(Reference40_50.convertReference(t.getReference()));
122      }
123    }
124    if (src.hasLocation())
125      tgt.setLocation(Reference40_50.convertReference(src.getLocation()));
126    for (CodeableReference t : src.getReason())
127      if (t.hasConcept())
128        tgt.addReasonCode(CodeableConcept40_50.convertCodeableConcept(t.getConcept()));
129    for (CodeableReference t : src.getReason())
130      if (t.hasReference())
131        tgt.addReasonReference(Reference40_50.convertReference(t.getReference()));
132    for (org.hl7.fhir.r5.model.Annotation t : src.getNote()) tgt.addNote(Annotation40_50.convertAnnotation(t));
133    if (src.hasDescription())
134      tgt.setDescriptionElement(String40_50.convertString(src.getDescriptionElement()));
135    for (org.hl7.fhir.r5.model.ImagingStudy.ImagingStudySeriesComponent t : src.getSeries())
136      tgt.addSeries(convertImagingStudySeriesComponent(t));
137    return tgt;
138  }
139
140  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ImagingStudy.ImagingStudyStatus> convertImagingStudyStatus(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ImagingStudy.ImagingStudyStatus> src) throws FHIRException {
141    if (src == null || src.isEmpty())
142      return null;
143    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ImagingStudy.ImagingStudyStatus> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.ImagingStudy.ImagingStudyStatusEnumFactory());
144    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
145    switch (src.getValue()) {
146      case REGISTERED:
147        tgt.setValue(org.hl7.fhir.r5.model.ImagingStudy.ImagingStudyStatus.REGISTERED);
148        break;
149      case AVAILABLE:
150        tgt.setValue(org.hl7.fhir.r5.model.ImagingStudy.ImagingStudyStatus.AVAILABLE);
151        break;
152      case CANCELLED:
153        tgt.setValue(org.hl7.fhir.r5.model.ImagingStudy.ImagingStudyStatus.CANCELLED);
154        break;
155      case ENTEREDINERROR:
156        tgt.setValue(org.hl7.fhir.r5.model.ImagingStudy.ImagingStudyStatus.ENTEREDINERROR);
157        break;
158      case UNKNOWN:
159        tgt.setValue(org.hl7.fhir.r5.model.ImagingStudy.ImagingStudyStatus.UNKNOWN);
160        break;
161      default:
162        tgt.setValue(org.hl7.fhir.r5.model.ImagingStudy.ImagingStudyStatus.NULL);
163        break;
164    }
165    return tgt;
166  }
167
168  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ImagingStudy.ImagingStudyStatus> convertImagingStudyStatus(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ImagingStudy.ImagingStudyStatus> src) throws FHIRException {
169    if (src == null || src.isEmpty())
170      return null;
171    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ImagingStudy.ImagingStudyStatus> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.ImagingStudy.ImagingStudyStatusEnumFactory());
172    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
173    switch (src.getValue()) {
174      case REGISTERED:
175        tgt.setValue(org.hl7.fhir.r4.model.ImagingStudy.ImagingStudyStatus.REGISTERED);
176        break;
177      case AVAILABLE:
178        tgt.setValue(org.hl7.fhir.r4.model.ImagingStudy.ImagingStudyStatus.AVAILABLE);
179        break;
180      case CANCELLED:
181        tgt.setValue(org.hl7.fhir.r4.model.ImagingStudy.ImagingStudyStatus.CANCELLED);
182        break;
183      case ENTEREDINERROR:
184        tgt.setValue(org.hl7.fhir.r4.model.ImagingStudy.ImagingStudyStatus.ENTEREDINERROR);
185        break;
186      case UNKNOWN:
187        tgt.setValue(org.hl7.fhir.r4.model.ImagingStudy.ImagingStudyStatus.UNKNOWN);
188        break;
189      default:
190        tgt.setValue(org.hl7.fhir.r4.model.ImagingStudy.ImagingStudyStatus.NULL);
191        break;
192    }
193    return tgt;
194  }
195
196  public static org.hl7.fhir.r5.model.ImagingStudy.ImagingStudySeriesComponent convertImagingStudySeriesComponent(org.hl7.fhir.r4.model.ImagingStudy.ImagingStudySeriesComponent src) throws FHIRException {
197    if (src == null)
198      return null;
199    org.hl7.fhir.r5.model.ImagingStudy.ImagingStudySeriesComponent tgt = new org.hl7.fhir.r5.model.ImagingStudy.ImagingStudySeriesComponent();
200    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
201    if (src.hasUid())
202      tgt.setUidElement(Id40_50.convertId(src.getUidElement()));
203    if (src.hasNumber())
204      tgt.setNumberElement(UnsignedInt40_50.convertUnsignedInt(src.getNumberElement()));
205    if (src.hasModality())
206      tgt.setModality(Coding40_50.convertCoding(src.getModality()));
207    if (src.hasDescription())
208      tgt.setDescriptionElement(String40_50.convertString(src.getDescriptionElement()));
209    if (src.hasNumberOfInstances())
210      tgt.setNumberOfInstancesElement(UnsignedInt40_50.convertUnsignedInt(src.getNumberOfInstancesElement()));
211    for (org.hl7.fhir.r4.model.Reference t : src.getEndpoint()) tgt.addEndpoint(Reference40_50.convertReference(t));
212    if (src.hasBodySite())
213      tgt.setBodySite(Coding40_50.convertCoding(src.getBodySite()));
214    if (src.hasLaterality())
215      tgt.setLaterality(Coding40_50.convertCoding(src.getLaterality()));
216    for (org.hl7.fhir.r4.model.Reference t : src.getSpecimen()) tgt.addSpecimen(Reference40_50.convertReference(t));
217    if (src.hasStarted())
218      tgt.setStartedElement(DateTime40_50.convertDateTime(src.getStartedElement()));
219    for (org.hl7.fhir.r4.model.ImagingStudy.ImagingStudySeriesPerformerComponent t : src.getPerformer())
220      tgt.addPerformer(convertImagingStudySeriesPerformerComponent(t));
221    for (org.hl7.fhir.r4.model.ImagingStudy.ImagingStudySeriesInstanceComponent t : src.getInstance())
222      tgt.addInstance(convertImagingStudySeriesInstanceComponent(t));
223    return tgt;
224  }
225
226  public static org.hl7.fhir.r4.model.ImagingStudy.ImagingStudySeriesComponent convertImagingStudySeriesComponent(org.hl7.fhir.r5.model.ImagingStudy.ImagingStudySeriesComponent src) throws FHIRException {
227    if (src == null)
228      return null;
229    org.hl7.fhir.r4.model.ImagingStudy.ImagingStudySeriesComponent tgt = new org.hl7.fhir.r4.model.ImagingStudy.ImagingStudySeriesComponent();
230    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
231    if (src.hasUid())
232      tgt.setUidElement(Id40_50.convertId(src.getUidElement()));
233    if (src.hasNumber())
234      tgt.setNumberElement(UnsignedInt40_50.convertUnsignedInt(src.getNumberElement()));
235    if (src.hasModality())
236      tgt.setModality(Coding40_50.convertCoding(src.getModality()));
237    if (src.hasDescription())
238      tgt.setDescriptionElement(String40_50.convertString(src.getDescriptionElement()));
239    if (src.hasNumberOfInstances())
240      tgt.setNumberOfInstancesElement(UnsignedInt40_50.convertUnsignedInt(src.getNumberOfInstancesElement()));
241    for (org.hl7.fhir.r5.model.Reference t : src.getEndpoint()) tgt.addEndpoint(Reference40_50.convertReference(t));
242    if (src.hasBodySite())
243      tgt.setBodySite(Coding40_50.convertCoding(src.getBodySite()));
244    if (src.hasLaterality())
245      tgt.setLaterality(Coding40_50.convertCoding(src.getLaterality()));
246    for (org.hl7.fhir.r5.model.Reference t : src.getSpecimen()) tgt.addSpecimen(Reference40_50.convertReference(t));
247    if (src.hasStarted())
248      tgt.setStartedElement(DateTime40_50.convertDateTime(src.getStartedElement()));
249    for (org.hl7.fhir.r5.model.ImagingStudy.ImagingStudySeriesPerformerComponent t : src.getPerformer())
250      tgt.addPerformer(convertImagingStudySeriesPerformerComponent(t));
251    for (org.hl7.fhir.r5.model.ImagingStudy.ImagingStudySeriesInstanceComponent t : src.getInstance())
252      tgt.addInstance(convertImagingStudySeriesInstanceComponent(t));
253    return tgt;
254  }
255
256  public static org.hl7.fhir.r5.model.ImagingStudy.ImagingStudySeriesPerformerComponent convertImagingStudySeriesPerformerComponent(org.hl7.fhir.r4.model.ImagingStudy.ImagingStudySeriesPerformerComponent src) throws FHIRException {
257    if (src == null)
258      return null;
259    org.hl7.fhir.r5.model.ImagingStudy.ImagingStudySeriesPerformerComponent tgt = new org.hl7.fhir.r5.model.ImagingStudy.ImagingStudySeriesPerformerComponent();
260    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
261    if (src.hasFunction())
262      tgt.setFunction(CodeableConcept40_50.convertCodeableConcept(src.getFunction()));
263    if (src.hasActor())
264      tgt.setActor(Reference40_50.convertReference(src.getActor()));
265    return tgt;
266  }
267
268  public static org.hl7.fhir.r4.model.ImagingStudy.ImagingStudySeriesPerformerComponent convertImagingStudySeriesPerformerComponent(org.hl7.fhir.r5.model.ImagingStudy.ImagingStudySeriesPerformerComponent src) throws FHIRException {
269    if (src == null)
270      return null;
271    org.hl7.fhir.r4.model.ImagingStudy.ImagingStudySeriesPerformerComponent tgt = new org.hl7.fhir.r4.model.ImagingStudy.ImagingStudySeriesPerformerComponent();
272    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
273    if (src.hasFunction())
274      tgt.setFunction(CodeableConcept40_50.convertCodeableConcept(src.getFunction()));
275    if (src.hasActor())
276      tgt.setActor(Reference40_50.convertReference(src.getActor()));
277    return tgt;
278  }
279
280  public static org.hl7.fhir.r5.model.ImagingStudy.ImagingStudySeriesInstanceComponent convertImagingStudySeriesInstanceComponent(org.hl7.fhir.r4.model.ImagingStudy.ImagingStudySeriesInstanceComponent src) throws FHIRException {
281    if (src == null)
282      return null;
283    org.hl7.fhir.r5.model.ImagingStudy.ImagingStudySeriesInstanceComponent tgt = new org.hl7.fhir.r5.model.ImagingStudy.ImagingStudySeriesInstanceComponent();
284    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
285    if (src.hasUid())
286      tgt.setUidElement(Id40_50.convertId(src.getUidElement()));
287    if (src.hasSopClass())
288      tgt.setSopClass(Coding40_50.convertCoding(src.getSopClass()));
289    if (src.hasNumber())
290      tgt.setNumberElement(UnsignedInt40_50.convertUnsignedInt(src.getNumberElement()));
291    if (src.hasTitle())
292      tgt.setTitleElement(String40_50.convertString(src.getTitleElement()));
293    return tgt;
294  }
295
296  public static org.hl7.fhir.r4.model.ImagingStudy.ImagingStudySeriesInstanceComponent convertImagingStudySeriesInstanceComponent(org.hl7.fhir.r5.model.ImagingStudy.ImagingStudySeriesInstanceComponent src) throws FHIRException {
297    if (src == null)
298      return null;
299    org.hl7.fhir.r4.model.ImagingStudy.ImagingStudySeriesInstanceComponent tgt = new org.hl7.fhir.r4.model.ImagingStudy.ImagingStudySeriesInstanceComponent();
300    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
301    if (src.hasUid())
302      tgt.setUidElement(Id40_50.convertId(src.getUidElement()));
303    if (src.hasSopClass())
304      tgt.setSopClass(Coding40_50.convertCoding(src.getSopClass()));
305    if (src.hasNumber())
306      tgt.setNumberElement(UnsignedInt40_50.convertUnsignedInt(src.getNumberElement()));
307    if (src.hasTitle())
308      tgt.setTitleElement(String40_50.convertString(src.getTitleElement()));
309    return tgt;
310  }
311}