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