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.Identifier40_50;
007import org.hl7.fhir.convertors.conv40_50.datatypes40_50.metadata40_50.DataRequirement40_50;
008import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.DateTime40_50;
009import org.hl7.fhir.convertors.conv40_50.datatypes40_50.special40_50.Reference40_50;
010import org.hl7.fhir.exceptions.FHIRException;
011import org.hl7.fhir.r5.model.CodeableReference;
012import org.hl7.fhir.r5.model.Enumeration;
013import org.hl7.fhir.r5.model.GuidanceResponse;
014
015/*
016  Copyright (c) 2011+, HL7, Inc.
017  All rights reserved.
018  
019  Redistribution and use in source and binary forms, with or without modification, 
020  are permitted provided that the following conditions are met:
021  
022   * Redistributions of source code must retain the above copyright notice, this 
023     list of conditions and the following disclaimer.
024   * Redistributions in binary form must reproduce the above copyright notice, 
025     this list of conditions and the following disclaimer in the documentation 
026     and/or other materials provided with the distribution.
027   * Neither the name of HL7 nor the names of its contributors may be used to 
028     endorse or promote products derived from this software without specific 
029     prior written permission.
030  
031  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
032  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
033  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
034  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
035  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
036  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
037  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
038  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
039  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
040  POSSIBILITY OF SUCH DAMAGE.
041  
042*/
043// Generated on Sun, Feb 24, 2019 11:37+1100 for FHIR v4.0.0
044public class GuidanceResponse40_50 {
045
046  public static org.hl7.fhir.r5.model.GuidanceResponse convertGuidanceResponse(org.hl7.fhir.r4.model.GuidanceResponse src) throws FHIRException {
047    if (src == null)
048      return null;
049    org.hl7.fhir.r5.model.GuidanceResponse tgt = new org.hl7.fhir.r5.model.GuidanceResponse();
050    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt);
051    if (src.hasRequestIdentifier())
052      tgt.setRequestIdentifier(Identifier40_50.convertIdentifier(src.getRequestIdentifier()));
053    for (org.hl7.fhir.r4.model.Identifier t : src.getIdentifier())
054      tgt.addIdentifier(Identifier40_50.convertIdentifier(t));
055    if (src.hasModule())
056      tgt.setModule(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getModule()));
057    if (src.hasStatus())
058      tgt.setStatusElement(convertGuidanceResponseStatus(src.getStatusElement()));
059    if (src.hasSubject())
060      tgt.setSubject(Reference40_50.convertReference(src.getSubject()));
061    if (src.hasEncounter())
062      tgt.setEncounter(Reference40_50.convertReference(src.getEncounter()));
063    if (src.hasOccurrenceDateTime())
064      tgt.setOccurrenceDateTimeElement(DateTime40_50.convertDateTime(src.getOccurrenceDateTimeElement()));
065    if (src.hasPerformer())
066      tgt.setPerformer(Reference40_50.convertReference(src.getPerformer()));
067    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getReasonCode())
068      tgt.addReason(CodeableConcept40_50.convertCodeableConceptToCodeableReference(t));
069    for (org.hl7.fhir.r4.model.Reference t : src.getReasonReference())
070      tgt.addReason(Reference40_50.convertReferenceToCodeableReference(t));
071    for (org.hl7.fhir.r4.model.Annotation t : src.getNote()) tgt.addNote(Annotation40_50.convertAnnotation(t));
072    for (org.hl7.fhir.r4.model.Reference t : src.getEvaluationMessage())
073      tgt.setEvaluationMessage(Reference40_50.convertReference(t));
074    if (src.hasOutputParameters())
075      tgt.setOutputParameters(Reference40_50.convertReference(src.getOutputParameters()));
076    if (src.hasResult())
077      tgt.addResult(Reference40_50.convertReference(src.getResult()));
078    for (org.hl7.fhir.r4.model.DataRequirement t : src.getDataRequirement())
079      tgt.addDataRequirement(DataRequirement40_50.convertDataRequirement(t));
080    return tgt;
081  }
082
083  public static org.hl7.fhir.r4.model.GuidanceResponse convertGuidanceResponse(org.hl7.fhir.r5.model.GuidanceResponse src) throws FHIRException {
084    if (src == null)
085      return null;
086    org.hl7.fhir.r4.model.GuidanceResponse tgt = new org.hl7.fhir.r4.model.GuidanceResponse();
087    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt);
088    if (src.hasRequestIdentifier())
089      tgt.setRequestIdentifier(Identifier40_50.convertIdentifier(src.getRequestIdentifier()));
090    for (org.hl7.fhir.r5.model.Identifier t : src.getIdentifier())
091      tgt.addIdentifier(Identifier40_50.convertIdentifier(t));
092    if (src.hasModule())
093      tgt.setModule(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getModule()));
094    if (src.hasStatus())
095      tgt.setStatusElement(convertGuidanceResponseStatus(src.getStatusElement()));
096    if (src.hasSubject())
097      tgt.setSubject(Reference40_50.convertReference(src.getSubject()));
098    if (src.hasEncounter())
099      tgt.setEncounter(Reference40_50.convertReference(src.getEncounter()));
100    if (src.hasOccurrenceDateTime())
101      tgt.setOccurrenceDateTimeElement(DateTime40_50.convertDateTime(src.getOccurrenceDateTimeElement()));
102    if (src.hasPerformer())
103      tgt.setPerformer(Reference40_50.convertReference(src.getPerformer()));
104    for (CodeableReference t : src.getReason())
105      if (t.hasConcept())
106        tgt.addReasonCode(CodeableConcept40_50.convertCodeableConcept(t.getConcept()));
107    for (CodeableReference t : src.getReason())
108      if (t.hasReference())
109        tgt.addReasonReference(Reference40_50.convertReference(t.getReference()));
110    for (org.hl7.fhir.r5.model.Annotation t : src.getNote()) tgt.addNote(Annotation40_50.convertAnnotation(t));
111    if (src.hasEvaluationMessage())
112      tgt.addEvaluationMessage(Reference40_50.convertReference(src.getEvaluationMessage()));
113    if (src.hasOutputParameters())
114      tgt.setOutputParameters(Reference40_50.convertReference(src.getOutputParameters()));
115    if (src.hasResult())
116      tgt.setResult(Reference40_50.convertReference(src.getResultFirstRep()));
117    for (org.hl7.fhir.r5.model.DataRequirement t : src.getDataRequirement())
118      tgt.addDataRequirement(DataRequirement40_50.convertDataRequirement(t));
119    return tgt;
120  }
121
122  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.GuidanceResponse.GuidanceResponseStatus> convertGuidanceResponseStatus(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.GuidanceResponse.GuidanceResponseStatus> src) throws FHIRException {
123      if (src == null || src.isEmpty())
124          return null;
125      Enumeration<GuidanceResponse.GuidanceResponseStatus> tgt = new Enumeration<>(new GuidanceResponse.GuidanceResponseStatusEnumFactory());
126      ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
127      if (src.getValue() == null) {
128          tgt.setValue(null);
129      } else {
130          switch (src.getValue()) {
131              case SUCCESS:
132                  tgt.setValue(GuidanceResponse.GuidanceResponseStatus.SUCCESS);
133                  break;
134              case DATAREQUESTED:
135                  tgt.setValue(GuidanceResponse.GuidanceResponseStatus.DATAREQUESTED);
136                  break;
137              case DATAREQUIRED:
138                  tgt.setValue(GuidanceResponse.GuidanceResponseStatus.DATAREQUIRED);
139                  break;
140              case INPROGRESS:
141                  tgt.setValue(GuidanceResponse.GuidanceResponseStatus.INPROGRESS);
142                  break;
143              case FAILURE:
144                  tgt.setValue(GuidanceResponse.GuidanceResponseStatus.FAILURE);
145                  break;
146              case ENTEREDINERROR:
147                  tgt.setValue(GuidanceResponse.GuidanceResponseStatus.ENTEREDINERROR);
148                  break;
149              default:
150                  tgt.setValue(GuidanceResponse.GuidanceResponseStatus.NULL);
151                  break;
152          }
153      }
154      return tgt;
155  }
156
157  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.GuidanceResponse.GuidanceResponseStatus> convertGuidanceResponseStatus(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.GuidanceResponse.GuidanceResponseStatus> src) throws FHIRException {
158      if (src == null || src.isEmpty())
159          return null;
160      org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.GuidanceResponse.GuidanceResponseStatus> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.GuidanceResponse.GuidanceResponseStatusEnumFactory());
161      ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
162      if (src.getValue() == null) {
163          tgt.setValue(null);
164      } else {
165          switch (src.getValue()) {
166              case SUCCESS:
167                  tgt.setValue(org.hl7.fhir.r4.model.GuidanceResponse.GuidanceResponseStatus.SUCCESS);
168                  break;
169              case DATAREQUESTED:
170                  tgt.setValue(org.hl7.fhir.r4.model.GuidanceResponse.GuidanceResponseStatus.DATAREQUESTED);
171                  break;
172              case DATAREQUIRED:
173                  tgt.setValue(org.hl7.fhir.r4.model.GuidanceResponse.GuidanceResponseStatus.DATAREQUIRED);
174                  break;
175              case INPROGRESS:
176                  tgt.setValue(org.hl7.fhir.r4.model.GuidanceResponse.GuidanceResponseStatus.INPROGRESS);
177                  break;
178              case FAILURE:
179                  tgt.setValue(org.hl7.fhir.r4.model.GuidanceResponse.GuidanceResponseStatus.FAILURE);
180                  break;
181              case ENTEREDINERROR:
182                  tgt.setValue(org.hl7.fhir.r4.model.GuidanceResponse.GuidanceResponseStatus.ENTEREDINERROR);
183                  break;
184              default:
185                  tgt.setValue(org.hl7.fhir.r4.model.GuidanceResponse.GuidanceResponseStatus.NULL);
186                  break;
187          }
188      }
189      return tgt;
190  }
191}