001package org.hl7.fhir.convertors.conv10_30.resources10_30;
002
003import org.hl7.fhir.convertors.context.ConversionContext10_30;
004import org.hl7.fhir.convertors.conv10_30.datatypes10_30.Reference10_30;
005import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Identifier10_30;
006import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.DateTime10_30;
007import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.String10_30;
008import org.hl7.fhir.dstu2.model.Enumeration;
009import org.hl7.fhir.dstu2.model.QuestionnaireResponse;
010import org.hl7.fhir.exceptions.FHIRException;
011
012public class QuestionnaireResponse10_30 {
013
014  public static org.hl7.fhir.dstu2.model.QuestionnaireResponse.GroupComponent convertQuestionnaireItemToGroup(org.hl7.fhir.dstu3.model.QuestionnaireResponse.QuestionnaireResponseItemComponent src) throws FHIRException {
015    if (src == null || src.isEmpty())
016      return null;
017    org.hl7.fhir.dstu2.model.QuestionnaireResponse.GroupComponent tgt = new org.hl7.fhir.dstu2.model.QuestionnaireResponse.GroupComponent();
018    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
019    if (src.hasLinkIdElement())
020      tgt.setLinkIdElement(String10_30.convertString(src.getLinkIdElement()));
021    if (src.hasTextElement())
022      tgt.setTextElement(String10_30.convertString(src.getTextElement()));
023    if (src.hasSubject())
024      tgt.setSubject(Reference10_30.convertReference(src.getSubject()));
025    for (org.hl7.fhir.dstu3.model.QuestionnaireResponse.QuestionnaireResponseItemComponent t : src.getItem())
026      if (t.hasAnswer())
027        tgt.addQuestion(convertQuestionnaireItemToQuestion(t));
028      else
029        tgt.addGroup(convertQuestionnaireItemToGroup(t));
030    return tgt;
031  }
032
033  public static org.hl7.fhir.dstu2.model.QuestionnaireResponse.QuestionComponent convertQuestionnaireItemToQuestion(org.hl7.fhir.dstu3.model.QuestionnaireResponse.QuestionnaireResponseItemComponent src) throws FHIRException {
034    if (src == null || src.isEmpty())
035      return null;
036    org.hl7.fhir.dstu2.model.QuestionnaireResponse.QuestionComponent tgt = new org.hl7.fhir.dstu2.model.QuestionnaireResponse.QuestionComponent();
037    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
038    if (src.hasLinkIdElement())
039      tgt.setLinkIdElement(String10_30.convertString(src.getLinkIdElement()));
040    if (src.hasTextElement())
041      tgt.setTextElement(String10_30.convertString(src.getTextElement()));
042    for (org.hl7.fhir.dstu3.model.QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent t : src.getAnswer())
043      tgt.addAnswer(convertQuestionnaireResponseItemAnswerComponent(t));
044    return tgt;
045  }
046
047  public static org.hl7.fhir.dstu2.model.QuestionnaireResponse convertQuestionnaireResponse(org.hl7.fhir.dstu3.model.QuestionnaireResponse src) throws FHIRException {
048    if (src == null || src.isEmpty())
049      return null;
050    org.hl7.fhir.dstu2.model.QuestionnaireResponse tgt = new org.hl7.fhir.dstu2.model.QuestionnaireResponse();
051    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt);
052    if (src.hasIdentifier())
053      tgt.setIdentifier(Identifier10_30.convertIdentifier(src.getIdentifier()));
054    if (src.hasQuestionnaire())
055      tgt.setQuestionnaire(Reference10_30.convertReference(src.getQuestionnaire()));
056    if (src.hasStatus())
057      tgt.setStatusElement(convertQuestionnaireResponseStatus(src.getStatusElement()));
058    if (src.hasSubject())
059      tgt.setSubject(Reference10_30.convertReference(src.getSubject()));
060    if (src.hasAuthor())
061      tgt.setAuthor(Reference10_30.convertReference(src.getAuthor()));
062    if (src.hasAuthoredElement())
063      tgt.setAuthoredElement(DateTime10_30.convertDateTime(src.getAuthoredElement()));
064    if (src.hasSource())
065      tgt.setSource(Reference10_30.convertReference(src.getSource()));
066    if (src.hasContext())
067      tgt.setEncounter(Reference10_30.convertReference(src.getContext()));
068    if (src.getItem().size() != 1)
069      throw new FHIRException("multiple root items not supported");
070    tgt.setGroup(convertQuestionnaireItemToGroup(src.getItem().get(0)));
071    return tgt;
072  }
073
074  public static org.hl7.fhir.dstu3.model.QuestionnaireResponse convertQuestionnaireResponse(org.hl7.fhir.dstu2.model.QuestionnaireResponse src) throws FHIRException {
075    if (src == null || src.isEmpty())
076      return null;
077    org.hl7.fhir.dstu3.model.QuestionnaireResponse tgt = new org.hl7.fhir.dstu3.model.QuestionnaireResponse();
078    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt);
079    if (src.hasIdentifier())
080      tgt.setIdentifier(Identifier10_30.convertIdentifier(src.getIdentifier()));
081    if (src.hasQuestionnaire())
082      tgt.setQuestionnaire(Reference10_30.convertReference(src.getQuestionnaire()));
083    if (src.hasStatus())
084      tgt.setStatusElement(convertQuestionnaireResponseStatus(src.getStatusElement()));
085    if (src.hasSubject())
086      tgt.setSubject(Reference10_30.convertReference(src.getSubject()));
087    if (src.hasAuthor())
088      tgt.setAuthor(Reference10_30.convertReference(src.getAuthor()));
089    if (src.hasAuthoredElement())
090      tgt.setAuthoredElement(DateTime10_30.convertDateTime(src.getAuthoredElement()));
091    if (src.hasSource())
092      tgt.setSource(Reference10_30.convertReference(src.getSource()));
093    if (src.hasEncounter())
094      tgt.setContext(Reference10_30.convertReference(src.getEncounter()));
095    if (src.hasGroup())
096      tgt.addItem(convertQuestionnaireResponseGroupComponent(src.getGroup()));
097    return tgt;
098  }
099
100  public static org.hl7.fhir.dstu3.model.QuestionnaireResponse.QuestionnaireResponseItemComponent convertQuestionnaireResponseGroupComponent(org.hl7.fhir.dstu2.model.QuestionnaireResponse.GroupComponent src) throws FHIRException {
101    if (src == null || src.isEmpty())
102      return null;
103    org.hl7.fhir.dstu3.model.QuestionnaireResponse.QuestionnaireResponseItemComponent tgt = new org.hl7.fhir.dstu3.model.QuestionnaireResponse.QuestionnaireResponseItemComponent();
104    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
105    if (src.hasLinkIdElement())
106      tgt.setLinkIdElement(String10_30.convertString(src.getLinkIdElement()));
107    if (src.hasTextElement())
108      tgt.setTextElement(String10_30.convertString(src.getTextElement()));
109    if (src.hasSubject())
110      tgt.setSubject(Reference10_30.convertReference(src.getSubject()));
111    for (org.hl7.fhir.dstu2.model.QuestionnaireResponse.GroupComponent t : src.getGroup())
112      tgt.addItem(convertQuestionnaireResponseGroupComponent(t));
113    for (org.hl7.fhir.dstu2.model.QuestionnaireResponse.QuestionComponent t : src.getQuestion())
114      tgt.addItem(convertQuestionnaireResponseQuestionComponent(t));
115    return tgt;
116  }
117
118  public static org.hl7.fhir.dstu2.model.QuestionnaireResponse.QuestionAnswerComponent convertQuestionnaireResponseItemAnswerComponent(org.hl7.fhir.dstu3.model.QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent src) throws FHIRException {
119    if (src == null || src.isEmpty())
120      return null;
121    org.hl7.fhir.dstu2.model.QuestionnaireResponse.QuestionAnswerComponent tgt = new org.hl7.fhir.dstu2.model.QuestionnaireResponse.QuestionAnswerComponent();
122    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
123    if (src.hasValue())
124      tgt.setValue(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getValue()));
125    for (org.hl7.fhir.dstu3.model.QuestionnaireResponse.QuestionnaireResponseItemComponent t : src.getItem())
126      tgt.addGroup(convertQuestionnaireItemToGroup(t));
127    return tgt;
128  }
129
130  public static org.hl7.fhir.dstu3.model.QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent convertQuestionnaireResponseItemAnswerComponent(org.hl7.fhir.dstu2.model.QuestionnaireResponse.QuestionAnswerComponent src) throws FHIRException {
131    if (src == null || src.isEmpty())
132      return null;
133    org.hl7.fhir.dstu3.model.QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent tgt = new org.hl7.fhir.dstu3.model.QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent();
134    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
135    if (src.hasValue())
136      tgt.setValue(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getValue()));
137    for (org.hl7.fhir.dstu2.model.QuestionnaireResponse.GroupComponent t : src.getGroup())
138      tgt.addItem(convertQuestionnaireResponseGroupComponent(t));
139    return tgt;
140  }
141
142  public static org.hl7.fhir.dstu3.model.QuestionnaireResponse.QuestionnaireResponseItemComponent convertQuestionnaireResponseQuestionComponent(org.hl7.fhir.dstu2.model.QuestionnaireResponse.QuestionComponent src) throws FHIRException {
143    if (src == null || src.isEmpty())
144      return null;
145    org.hl7.fhir.dstu3.model.QuestionnaireResponse.QuestionnaireResponseItemComponent tgt = new org.hl7.fhir.dstu3.model.QuestionnaireResponse.QuestionnaireResponseItemComponent();
146    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
147    if (src.hasLinkIdElement())
148      tgt.setLinkIdElement(String10_30.convertString(src.getLinkIdElement()));
149    if (src.hasTextElement())
150      tgt.setTextElement(String10_30.convertString(src.getTextElement()));
151    for (org.hl7.fhir.dstu2.model.QuestionnaireResponse.QuestionAnswerComponent t : src.getAnswer())
152      tgt.addAnswer(convertQuestionnaireResponseItemAnswerComponent(t));
153    return tgt;
154  }
155
156  static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.QuestionnaireResponse.QuestionnaireResponseStatus> convertQuestionnaireResponseStatus(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.QuestionnaireResponse.QuestionnaireResponseStatus> src) throws FHIRException {
157      if (src == null || src.isEmpty())
158          return null;
159      Enumeration<QuestionnaireResponse.QuestionnaireResponseStatus> tgt = new Enumeration<>(new QuestionnaireResponse.QuestionnaireResponseStatusEnumFactory());
160      ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
161      if (src.getValue() == null) {
162          tgt.setValue(null);
163      } else {
164          switch (src.getValue()) {
165              case INPROGRESS:
166                  tgt.setValue(QuestionnaireResponse.QuestionnaireResponseStatus.INPROGRESS);
167                  break;
168              case COMPLETED:
169                  tgt.setValue(QuestionnaireResponse.QuestionnaireResponseStatus.COMPLETED);
170                  break;
171              case AMENDED:
172                  tgt.setValue(QuestionnaireResponse.QuestionnaireResponseStatus.AMENDED);
173                  break;
174              default:
175                  tgt.setValue(QuestionnaireResponse.QuestionnaireResponseStatus.NULL);
176                  break;
177          }
178      }
179      return tgt;
180  }
181
182  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.QuestionnaireResponse.QuestionnaireResponseStatus> convertQuestionnaireResponseStatus(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.QuestionnaireResponse.QuestionnaireResponseStatus> src) throws FHIRException {
183      if (src == null || src.isEmpty())
184          return null;
185      org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.QuestionnaireResponse.QuestionnaireResponseStatus> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.QuestionnaireResponse.QuestionnaireResponseStatusEnumFactory());
186      ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
187      if (src.getValue() == null) {
188          tgt.setValue(null);
189      } else {
190          switch (src.getValue()) {
191              case INPROGRESS:
192                  tgt.setValue(org.hl7.fhir.dstu3.model.QuestionnaireResponse.QuestionnaireResponseStatus.INPROGRESS);
193                  break;
194              case COMPLETED:
195                  tgt.setValue(org.hl7.fhir.dstu3.model.QuestionnaireResponse.QuestionnaireResponseStatus.COMPLETED);
196                  break;
197              case AMENDED:
198                  tgt.setValue(org.hl7.fhir.dstu3.model.QuestionnaireResponse.QuestionnaireResponseStatus.AMENDED);
199                  break;
200              default:
201                  tgt.setValue(org.hl7.fhir.dstu3.model.QuestionnaireResponse.QuestionnaireResponseStatus.NULL);
202                  break;
203          }
204      }
205      return tgt;
206  }
207}