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.CodeableConcept10_30;
006import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Identifier10_30;
007import org.hl7.fhir.dstu2.model.Condition;
008import org.hl7.fhir.dstu2.model.Enumeration;
009import org.hl7.fhir.exceptions.FHIRException;
010
011public class Condition10_30 {
012
013  public static org.hl7.fhir.dstu3.model.Condition convertCondition(org.hl7.fhir.dstu2.model.Condition src) throws FHIRException {
014    if (src == null || src.isEmpty())
015      return null;
016    org.hl7.fhir.dstu3.model.Condition tgt = new org.hl7.fhir.dstu3.model.Condition();
017    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt);
018    for (org.hl7.fhir.dstu2.model.Identifier t : src.getIdentifier())
019      tgt.addIdentifier(Identifier10_30.convertIdentifier(t));
020    if (src.hasPatient())
021      tgt.setSubject(Reference10_30.convertReference(src.getPatient()));
022    if (src.hasEncounter())
023      tgt.setContext(Reference10_30.convertReference(src.getEncounter()));
024    if (src.hasAsserter())
025      tgt.setAsserter(Reference10_30.convertReference(src.getAsserter()));
026    if (src.hasDateRecorded())
027      tgt.setAssertedDate(src.getDateRecorded());
028    if (src.hasCode())
029      tgt.setCode(CodeableConcept10_30.convertCodeableConcept(src.getCode()));
030    if (src.hasCategory())
031      tgt.addCategory(CodeableConcept10_30.convertCodeableConcept(src.getCategory()));
032    try {
033      if (src.hasClinicalStatus())
034        tgt.setClinicalStatus(org.hl7.fhir.dstu3.model.Condition.ConditionClinicalStatus.fromCode(src.getClinicalStatus()));
035    } catch (org.hl7.fhir.exceptions.FHIRException e) {
036      throw new FHIRException(e);
037    }
038    if (src.hasVerificationStatus())
039      tgt.setVerificationStatusElement(convertConditionVerificationStatus(src.getVerificationStatusElement()));
040    if (src.hasSeverity())
041      tgt.setSeverity(CodeableConcept10_30.convertCodeableConcept(src.getSeverity()));
042    if (src.hasOnset())
043      tgt.setOnset(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getOnset()));
044    if (src.hasAbatement())
045      tgt.setAbatement(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getAbatement()));
046    if (src.hasStage())
047      tgt.setStage(convertConditionStageComponent(src.getStage()));
048    for (org.hl7.fhir.dstu2.model.Condition.ConditionEvidenceComponent t : src.getEvidence())
049      tgt.addEvidence(convertConditionEvidenceComponent(t));
050    for (org.hl7.fhir.dstu2.model.CodeableConcept t : src.getBodySite())
051      tgt.addBodySite(CodeableConcept10_30.convertCodeableConcept(t));
052    return tgt;
053  }
054
055  public static org.hl7.fhir.dstu2.model.Condition convertCondition(org.hl7.fhir.dstu3.model.Condition src) throws FHIRException {
056    if (src == null || src.isEmpty())
057      return null;
058    org.hl7.fhir.dstu2.model.Condition tgt = new org.hl7.fhir.dstu2.model.Condition();
059    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt);
060    for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier())
061      tgt.addIdentifier(Identifier10_30.convertIdentifier(t));
062    if (src.hasSubject())
063      tgt.setPatient(Reference10_30.convertReference(src.getSubject()));
064    if (src.hasContext())
065      tgt.setEncounter(Reference10_30.convertReference(src.getContext()));
066    if (src.hasAsserter())
067      tgt.setAsserter(Reference10_30.convertReference(src.getAsserter()));
068    if (src.hasAssertedDate())
069      tgt.setDateRecorded(src.getAssertedDate());
070    if (src.hasCode())
071      tgt.setCode(CodeableConcept10_30.convertCodeableConcept(src.getCode()));
072    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getCategory())
073      tgt.setCategory(CodeableConcept10_30.convertCodeableConcept(t));
074    tgt.setClinicalStatus(src.getClinicalStatus().toCode());
075    if (src.hasVerificationStatus())
076      tgt.setVerificationStatusElement(convertConditionVerificationStatus(src.getVerificationStatusElement()));
077    if (src.hasSeverity())
078      tgt.setSeverity(CodeableConcept10_30.convertCodeableConcept(src.getSeverity()));
079    if (src.hasOnset())
080      tgt.setOnset(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getOnset()));
081    if (src.hasAbatement())
082      tgt.setAbatement(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getAbatement()));
083    if (src.hasStage())
084      tgt.setStage(convertConditionStageComponent(src.getStage()));
085    for (org.hl7.fhir.dstu3.model.Condition.ConditionEvidenceComponent t : src.getEvidence())
086      tgt.addEvidence(convertConditionEvidenceComponent(t));
087    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getBodySite())
088      tgt.addBodySite(CodeableConcept10_30.convertCodeableConcept(t));
089    return tgt;
090  }
091
092  public static org.hl7.fhir.dstu2.model.Condition.ConditionEvidenceComponent convertConditionEvidenceComponent(org.hl7.fhir.dstu3.model.Condition.ConditionEvidenceComponent src) throws FHIRException {
093    if (src == null || src.isEmpty())
094      return null;
095    org.hl7.fhir.dstu2.model.Condition.ConditionEvidenceComponent tgt = new org.hl7.fhir.dstu2.model.Condition.ConditionEvidenceComponent();
096    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
097    for (org.hl7.fhir.dstu3.model.CodeableConcept cc : src.getCode())
098      tgt.setCode(CodeableConcept10_30.convertCodeableConcept(cc));
099    for (org.hl7.fhir.dstu3.model.Reference t : src.getDetail()) tgt.addDetail(Reference10_30.convertReference(t));
100    return tgt;
101  }
102
103  public static org.hl7.fhir.dstu3.model.Condition.ConditionEvidenceComponent convertConditionEvidenceComponent(org.hl7.fhir.dstu2.model.Condition.ConditionEvidenceComponent src) throws FHIRException {
104    if (src == null || src.isEmpty())
105      return null;
106    org.hl7.fhir.dstu3.model.Condition.ConditionEvidenceComponent tgt = new org.hl7.fhir.dstu3.model.Condition.ConditionEvidenceComponent();
107    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
108    if (src.hasCode())
109      tgt.addCode(CodeableConcept10_30.convertCodeableConcept(src.getCode()));
110    for (org.hl7.fhir.dstu2.model.Reference t : src.getDetail()) tgt.addDetail(Reference10_30.convertReference(t));
111    return tgt;
112  }
113
114  public static org.hl7.fhir.dstu3.model.Condition.ConditionStageComponent convertConditionStageComponent(org.hl7.fhir.dstu2.model.Condition.ConditionStageComponent src) throws FHIRException {
115    if (src == null || src.isEmpty())
116      return null;
117    org.hl7.fhir.dstu3.model.Condition.ConditionStageComponent tgt = new org.hl7.fhir.dstu3.model.Condition.ConditionStageComponent();
118    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
119    if (src.hasSummary())
120      tgt.setSummary(CodeableConcept10_30.convertCodeableConcept(src.getSummary()));
121    for (org.hl7.fhir.dstu2.model.Reference t : src.getAssessment())
122      tgt.addAssessment(Reference10_30.convertReference(t));
123    return tgt;
124  }
125
126  public static org.hl7.fhir.dstu2.model.Condition.ConditionStageComponent convertConditionStageComponent(org.hl7.fhir.dstu3.model.Condition.ConditionStageComponent src) throws FHIRException {
127    if (src == null || src.isEmpty())
128      return null;
129    org.hl7.fhir.dstu2.model.Condition.ConditionStageComponent tgt = new org.hl7.fhir.dstu2.model.Condition.ConditionStageComponent();
130    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
131    if (src.hasSummary())
132      tgt.setSummary(CodeableConcept10_30.convertCodeableConcept(src.getSummary()));
133    for (org.hl7.fhir.dstu3.model.Reference t : src.getAssessment())
134      tgt.addAssessment(Reference10_30.convertReference(t));
135    return tgt;
136  }
137
138  static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Condition.ConditionVerificationStatus> convertConditionVerificationStatus(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Condition.ConditionVerificationStatus> src) throws FHIRException {
139      if (src == null || src.isEmpty())
140          return null;
141      Enumeration<Condition.ConditionVerificationStatus> tgt = new Enumeration<>(new Condition.ConditionVerificationStatusEnumFactory());
142      ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
143      if (src.getValue() == null) {
144          tgt.setValue(null);
145      } else {
146          switch (src.getValue()) {
147              case PROVISIONAL:
148                  tgt.setValue(Condition.ConditionVerificationStatus.PROVISIONAL);
149                  break;
150              case DIFFERENTIAL:
151                  tgt.setValue(Condition.ConditionVerificationStatus.DIFFERENTIAL);
152                  break;
153              case CONFIRMED:
154                  tgt.setValue(Condition.ConditionVerificationStatus.CONFIRMED);
155                  break;
156              case REFUTED:
157                  tgt.setValue(Condition.ConditionVerificationStatus.REFUTED);
158                  break;
159              case ENTEREDINERROR:
160                  tgt.setValue(Condition.ConditionVerificationStatus.ENTEREDINERROR);
161                  break;
162              case UNKNOWN:
163                  tgt.setValue(Condition.ConditionVerificationStatus.UNKNOWN);
164                  break;
165              default:
166                  tgt.setValue(Condition.ConditionVerificationStatus.NULL);
167                  break;
168          }
169      }
170      return tgt;
171  }
172
173  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Condition.ConditionVerificationStatus> convertConditionVerificationStatus(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Condition.ConditionVerificationStatus> src) throws FHIRException {
174      if (src == null || src.isEmpty())
175          return null;
176      org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Condition.ConditionVerificationStatus> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.Condition.ConditionVerificationStatusEnumFactory());
177      ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
178      if (src.getValue() == null) {
179          tgt.setValue(null);
180      } else {
181          switch (src.getValue()) {
182              case PROVISIONAL:
183                  tgt.setValue(org.hl7.fhir.dstu3.model.Condition.ConditionVerificationStatus.PROVISIONAL);
184                  break;
185              case DIFFERENTIAL:
186                  tgt.setValue(org.hl7.fhir.dstu3.model.Condition.ConditionVerificationStatus.DIFFERENTIAL);
187                  break;
188              case CONFIRMED:
189                  tgt.setValue(org.hl7.fhir.dstu3.model.Condition.ConditionVerificationStatus.CONFIRMED);
190                  break;
191              case REFUTED:
192                  tgt.setValue(org.hl7.fhir.dstu3.model.Condition.ConditionVerificationStatus.REFUTED);
193                  break;
194              case ENTEREDINERROR:
195                  tgt.setValue(org.hl7.fhir.dstu3.model.Condition.ConditionVerificationStatus.ENTEREDINERROR);
196                  break;
197              case UNKNOWN:
198                  tgt.setValue(org.hl7.fhir.dstu3.model.Condition.ConditionVerificationStatus.UNKNOWN);
199                  break;
200              default:
201                  tgt.setValue(org.hl7.fhir.dstu3.model.Condition.ConditionVerificationStatus.NULL);
202                  break;
203          }
204      }
205      return tgt;
206  }
207}