001package org.hl7.fhir.convertors.conv30_40.resources30_40;
002
003import org.hl7.fhir.convertors.context.ConversionContext30_40;
004import org.hl7.fhir.convertors.conv30_40.datatypes30_40.Reference30_40;
005import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.CodeableConcept30_40;
006import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Identifier30_40;
007import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.Decimal30_40;
008import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.String30_40;
009import org.hl7.fhir.exceptions.FHIRException;
010
011public class RiskAssessment30_40 {
012
013  public static org.hl7.fhir.dstu3.model.RiskAssessment convertRiskAssessment(org.hl7.fhir.r4.model.RiskAssessment src) throws FHIRException {
014    if (src == null)
015      return null;
016    org.hl7.fhir.dstu3.model.RiskAssessment tgt = new org.hl7.fhir.dstu3.model.RiskAssessment();
017    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt);
018    if (src.hasIdentifier())
019      tgt.setIdentifier(Identifier30_40.convertIdentifier(src.getIdentifierFirstRep()));
020    if (src.hasBasedOn())
021      tgt.setBasedOn(Reference30_40.convertReference(src.getBasedOn()));
022    if (src.hasParent())
023      tgt.setParent(Reference30_40.convertReference(src.getParent()));
024    if (src.hasStatus())
025      tgt.setStatusElement(convertRiskAssessmentStatus(src.getStatusElement()));
026    if (src.hasMethod())
027      tgt.setMethod(CodeableConcept30_40.convertCodeableConcept(src.getMethod()));
028    if (src.hasCode())
029      tgt.setCode(CodeableConcept30_40.convertCodeableConcept(src.getCode()));
030    if (src.hasSubject())
031      tgt.setSubject(Reference30_40.convertReference(src.getSubject()));
032    if (src.hasEncounter())
033      tgt.setContext(Reference30_40.convertReference(src.getEncounter()));
034    if (src.hasOccurrence())
035      tgt.setOccurrence(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getOccurrence()));
036    if (src.hasCondition())
037      tgt.setCondition(Reference30_40.convertReference(src.getCondition()));
038    if (src.hasPerformer())
039      tgt.setPerformer(Reference30_40.convertReference(src.getPerformer()));
040    if (src.hasReasonCode())
041      tgt.setReason(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getReasonCodeFirstRep()));
042    if (src.hasReasonReference())
043      tgt.setReason(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getReasonReferenceFirstRep()));
044    for (org.hl7.fhir.r4.model.Reference t : src.getBasis()) tgt.addBasis(Reference30_40.convertReference(t));
045    for (org.hl7.fhir.r4.model.RiskAssessment.RiskAssessmentPredictionComponent t : src.getPrediction())
046      tgt.addPrediction(convertRiskAssessmentPredictionComponent(t));
047    if (src.hasMitigation())
048      tgt.setMitigationElement(String30_40.convertString(src.getMitigationElement()));
049    if (src.hasNote())
050      tgt.setComment(src.getNoteFirstRep().getText());
051    return tgt;
052  }
053
054  public static org.hl7.fhir.r4.model.RiskAssessment convertRiskAssessment(org.hl7.fhir.dstu3.model.RiskAssessment src) throws FHIRException {
055    if (src == null)
056      return null;
057    org.hl7.fhir.r4.model.RiskAssessment tgt = new org.hl7.fhir.r4.model.RiskAssessment();
058    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt);
059    if (src.hasIdentifier())
060      tgt.addIdentifier(Identifier30_40.convertIdentifier(src.getIdentifier()));
061    if (src.hasBasedOn())
062      tgt.setBasedOn(Reference30_40.convertReference(src.getBasedOn()));
063    if (src.hasParent())
064      tgt.setParent(Reference30_40.convertReference(src.getParent()));
065    if (src.hasStatus())
066      tgt.setStatusElement(convertRiskAssessmentStatus(src.getStatusElement()));
067    if (src.hasMethod())
068      tgt.setMethod(CodeableConcept30_40.convertCodeableConcept(src.getMethod()));
069    if (src.hasCode())
070      tgt.setCode(CodeableConcept30_40.convertCodeableConcept(src.getCode()));
071    if (src.hasSubject())
072      tgt.setSubject(Reference30_40.convertReference(src.getSubject()));
073    if (src.hasContext())
074      tgt.setEncounter(Reference30_40.convertReference(src.getContext()));
075    if (src.hasOccurrence())
076      tgt.setOccurrence(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getOccurrence()));
077    if (src.hasCondition())
078      tgt.setCondition(Reference30_40.convertReference(src.getCondition()));
079    if (src.hasPerformer())
080      tgt.setPerformer(Reference30_40.convertReference(src.getPerformer()));
081    if (src.hasReason()) {
082      org.hl7.fhir.r4.model.Type t = ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getReason());
083      if (t instanceof org.hl7.fhir.r4.model.CodeableConcept)
084        tgt.addReasonCode((org.hl7.fhir.r4.model.CodeableConcept) t);
085      else
086        tgt.addReasonReference((org.hl7.fhir.r4.model.Reference) t);
087    }
088    for (org.hl7.fhir.dstu3.model.Reference t : src.getBasis()) tgt.addBasis(Reference30_40.convertReference(t));
089    for (org.hl7.fhir.dstu3.model.RiskAssessment.RiskAssessmentPredictionComponent t : src.getPrediction())
090      tgt.addPrediction(convertRiskAssessmentPredictionComponent(t));
091    if (src.hasMitigation())
092      tgt.setMitigationElement(String30_40.convertString(src.getMitigationElement()));
093    if (src.hasComment())
094      tgt.addNote().setText(src.getComment());
095    return tgt;
096  }
097
098  public static org.hl7.fhir.r4.model.RiskAssessment.RiskAssessmentPredictionComponent convertRiskAssessmentPredictionComponent(org.hl7.fhir.dstu3.model.RiskAssessment.RiskAssessmentPredictionComponent src) throws FHIRException {
099    if (src == null)
100      return null;
101    org.hl7.fhir.r4.model.RiskAssessment.RiskAssessmentPredictionComponent tgt = new org.hl7.fhir.r4.model.RiskAssessment.RiskAssessmentPredictionComponent();
102    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
103    if (src.hasOutcome())
104      tgt.setOutcome(CodeableConcept30_40.convertCodeableConcept(src.getOutcome()));
105    if (src.hasProbability())
106      tgt.setProbability(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getProbability()));
107    if (src.hasQualitativeRisk())
108      tgt.setQualitativeRisk(CodeableConcept30_40.convertCodeableConcept(src.getQualitativeRisk()));
109    if (src.hasRelativeRisk())
110      tgt.setRelativeRiskElement(Decimal30_40.convertDecimal(src.getRelativeRiskElement()));
111    if (src.hasWhen())
112      tgt.setWhen(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getWhen()));
113    if (src.hasRationale())
114      tgt.setRationaleElement(String30_40.convertString(src.getRationaleElement()));
115    return tgt;
116  }
117
118  public static org.hl7.fhir.dstu3.model.RiskAssessment.RiskAssessmentPredictionComponent convertRiskAssessmentPredictionComponent(org.hl7.fhir.r4.model.RiskAssessment.RiskAssessmentPredictionComponent src) throws FHIRException {
119    if (src == null)
120      return null;
121    org.hl7.fhir.dstu3.model.RiskAssessment.RiskAssessmentPredictionComponent tgt = new org.hl7.fhir.dstu3.model.RiskAssessment.RiskAssessmentPredictionComponent();
122    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
123    if (src.hasOutcome())
124      tgt.setOutcome(CodeableConcept30_40.convertCodeableConcept(src.getOutcome()));
125    if (src.hasProbability())
126      tgt.setProbability(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getProbability()));
127    if (src.hasQualitativeRisk())
128      tgt.setQualitativeRisk(CodeableConcept30_40.convertCodeableConcept(src.getQualitativeRisk()));
129    if (src.hasRelativeRisk())
130      tgt.setRelativeRiskElement(Decimal30_40.convertDecimal(src.getRelativeRiskElement()));
131    if (src.hasWhen())
132      tgt.setWhen(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getWhen()));
133    if (src.hasRationale())
134      tgt.setRationaleElement(String30_40.convertString(src.getRationaleElement()));
135    return tgt;
136  }
137
138  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.RiskAssessment.RiskAssessmentStatus> convertRiskAssessmentStatus(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.RiskAssessment.RiskAssessmentStatus> src) throws FHIRException {
139    if (src == null || src.isEmpty())
140      return null;
141    org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.RiskAssessment.RiskAssessmentStatus> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.RiskAssessment.RiskAssessmentStatusEnumFactory());
142    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
143    switch (src.getValue()) {
144      case REGISTERED:
145        tgt.setValue(org.hl7.fhir.dstu3.model.RiskAssessment.RiskAssessmentStatus.REGISTERED);
146        break;
147      case PRELIMINARY:
148        tgt.setValue(org.hl7.fhir.dstu3.model.RiskAssessment.RiskAssessmentStatus.PRELIMINARY);
149        break;
150      case FINAL:
151        tgt.setValue(org.hl7.fhir.dstu3.model.RiskAssessment.RiskAssessmentStatus.FINAL);
152        break;
153      case AMENDED:
154        tgt.setValue(org.hl7.fhir.dstu3.model.RiskAssessment.RiskAssessmentStatus.AMENDED);
155        break;
156      case CORRECTED:
157        tgt.setValue(org.hl7.fhir.dstu3.model.RiskAssessment.RiskAssessmentStatus.CORRECTED);
158        break;
159      case CANCELLED:
160        tgt.setValue(org.hl7.fhir.dstu3.model.RiskAssessment.RiskAssessmentStatus.CANCELLED);
161        break;
162      case ENTEREDINERROR:
163        tgt.setValue(org.hl7.fhir.dstu3.model.RiskAssessment.RiskAssessmentStatus.ENTEREDINERROR);
164        break;
165      case UNKNOWN:
166        tgt.setValue(org.hl7.fhir.dstu3.model.RiskAssessment.RiskAssessmentStatus.UNKNOWN);
167        break;
168      default:
169        tgt.setValue(org.hl7.fhir.dstu3.model.RiskAssessment.RiskAssessmentStatus.NULL);
170        break;
171    }
172    return tgt;
173  }
174
175  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.RiskAssessment.RiskAssessmentStatus> convertRiskAssessmentStatus(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.RiskAssessment.RiskAssessmentStatus> src) throws FHIRException {
176    if (src == null || src.isEmpty())
177      return null;
178    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.RiskAssessment.RiskAssessmentStatus> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.RiskAssessment.RiskAssessmentStatusEnumFactory());
179    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
180    switch (src.getValue()) {
181      case REGISTERED:
182        tgt.setValue(org.hl7.fhir.r4.model.RiskAssessment.RiskAssessmentStatus.REGISTERED);
183        break;
184      case PRELIMINARY:
185        tgt.setValue(org.hl7.fhir.r4.model.RiskAssessment.RiskAssessmentStatus.PRELIMINARY);
186        break;
187      case FINAL:
188        tgt.setValue(org.hl7.fhir.r4.model.RiskAssessment.RiskAssessmentStatus.FINAL);
189        break;
190      case AMENDED:
191        tgt.setValue(org.hl7.fhir.r4.model.RiskAssessment.RiskAssessmentStatus.AMENDED);
192        break;
193      case CORRECTED:
194        tgt.setValue(org.hl7.fhir.r4.model.RiskAssessment.RiskAssessmentStatus.CORRECTED);
195        break;
196      case CANCELLED:
197        tgt.setValue(org.hl7.fhir.r4.model.RiskAssessment.RiskAssessmentStatus.CANCELLED);
198        break;
199      case ENTEREDINERROR:
200        tgt.setValue(org.hl7.fhir.r4.model.RiskAssessment.RiskAssessmentStatus.ENTEREDINERROR);
201        break;
202      case UNKNOWN:
203        tgt.setValue(org.hl7.fhir.r4.model.RiskAssessment.RiskAssessmentStatus.UNKNOWN);
204        break;
205      default:
206        tgt.setValue(org.hl7.fhir.r4.model.RiskAssessment.RiskAssessmentStatus.NULL);
207        break;
208    }
209    return tgt;
210  }
211}