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