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