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.primitivetypes10_30.DateTime10_30;
007import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.String10_30;
008import org.hl7.fhir.dstu3.model.UriType;
009import org.hl7.fhir.exceptions.FHIRException;
010
011public class ClinicalImpression10_30 {
012
013  public static org.hl7.fhir.dstu3.model.ClinicalImpression convertClinicalImpression(org.hl7.fhir.dstu2.model.ClinicalImpression src) throws FHIRException {
014    if (src == null || src.isEmpty())
015      return null;
016    org.hl7.fhir.dstu3.model.ClinicalImpression tgt = new org.hl7.fhir.dstu3.model.ClinicalImpression();
017    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt);
018    if (src.hasPatient())
019      tgt.setSubject(Reference10_30.convertReference(src.getPatient()));
020    if (src.hasAssessor())
021      tgt.setAssessor(Reference10_30.convertReference(src.getAssessor()));
022    if (src.hasStatus())
023      tgt.setStatusElement(convertClinicalImpressionStatus(src.getStatusElement()));
024    if (src.hasDate())
025      tgt.setDateElement(DateTime10_30.convertDateTime(src.getDateElement()));
026    if (src.hasDescriptionElement())
027      tgt.setDescriptionElement(String10_30.convertString(src.getDescriptionElement()));
028    if (src.hasPrevious())
029      tgt.setPrevious(Reference10_30.convertReference(src.getPrevious()));
030    for (org.hl7.fhir.dstu2.model.Reference t : src.getProblem()) tgt.addProblem(Reference10_30.convertReference(t));
031    tgt.addProtocol(src.getProtocol());
032    if (src.hasSummaryElement())
033      tgt.setSummaryElement(String10_30.convertString(src.getSummaryElement()));
034    for (org.hl7.fhir.dstu2.model.ClinicalImpression.ClinicalImpressionFindingComponent t : src.getFinding())
035      tgt.addFinding(convertClinicalImpressionFindingComponent(t));
036    if (src.hasPrognosis())
037      tgt.addPrognosisCodeableConcept().setText(src.getPrognosis());
038    for (org.hl7.fhir.dstu2.model.Reference t : src.getAction()) tgt.addAction(Reference10_30.convertReference(t));
039    return tgt;
040  }
041
042  public static org.hl7.fhir.dstu2.model.ClinicalImpression convertClinicalImpression(org.hl7.fhir.dstu3.model.ClinicalImpression src) throws FHIRException {
043    if (src == null || src.isEmpty())
044      return null;
045    org.hl7.fhir.dstu2.model.ClinicalImpression tgt = new org.hl7.fhir.dstu2.model.ClinicalImpression();
046    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt);
047    if (src.hasSubject())
048      tgt.setPatient(Reference10_30.convertReference(src.getSubject()));
049    if (src.hasAssessor())
050      tgt.setAssessor(Reference10_30.convertReference(src.getAssessor()));
051    if (src.hasStatus())
052      tgt.setStatusElement(convertClinicalImpressionStatus(src.getStatusElement()));
053    if (src.hasDate())
054      tgt.setDateElement(DateTime10_30.convertDateTime(src.getDateElement()));
055    if (src.hasDescriptionElement())
056      tgt.setDescriptionElement(String10_30.convertString(src.getDescriptionElement()));
057    if (src.hasPrevious())
058      tgt.setPrevious(Reference10_30.convertReference(src.getPrevious()));
059    for (org.hl7.fhir.dstu3.model.Reference t : src.getProblem()) tgt.addProblem(Reference10_30.convertReference(t));
060    for (UriType t : src.getProtocol()) tgt.setProtocol(t.asStringValue());
061    if (src.hasSummaryElement())
062      tgt.setSummaryElement(String10_30.convertString(src.getSummaryElement()));
063    for (org.hl7.fhir.dstu3.model.ClinicalImpression.ClinicalImpressionFindingComponent t : src.getFinding())
064      tgt.addFinding(convertClinicalImpressionFindingComponent(t));
065    if (src.hasText())
066      tgt.setPrognosis(src.getPrognosisCodeableConceptFirstRep().getText());
067    for (org.hl7.fhir.dstu3.model.Reference t : src.getAction()) tgt.addAction(Reference10_30.convertReference(t));
068    return tgt;
069  }
070
071  public static org.hl7.fhir.dstu3.model.ClinicalImpression.ClinicalImpressionFindingComponent convertClinicalImpressionFindingComponent(org.hl7.fhir.dstu2.model.ClinicalImpression.ClinicalImpressionFindingComponent src) throws FHIRException {
072    if (src == null || src.isEmpty())
073      return null;
074    org.hl7.fhir.dstu3.model.ClinicalImpression.ClinicalImpressionFindingComponent tgt = new org.hl7.fhir.dstu3.model.ClinicalImpression.ClinicalImpressionFindingComponent();
075    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
076    if (src.hasItem())
077      tgt.setItem(CodeableConcept10_30.convertCodeableConcept(src.getItem()));
078    return tgt;
079  }
080
081  public static org.hl7.fhir.dstu2.model.ClinicalImpression.ClinicalImpressionFindingComponent convertClinicalImpressionFindingComponent(org.hl7.fhir.dstu3.model.ClinicalImpression.ClinicalImpressionFindingComponent src) throws FHIRException {
082    if (src == null || src.isEmpty())
083      return null;
084    org.hl7.fhir.dstu2.model.ClinicalImpression.ClinicalImpressionFindingComponent tgt = new org.hl7.fhir.dstu2.model.ClinicalImpression.ClinicalImpressionFindingComponent();
085    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
086    if (src.hasItemCodeableConcept())
087      try {
088        if (src.hasItemCodeableConcept())
089          tgt.setItem(CodeableConcept10_30.convertCodeableConcept(src.getItemCodeableConcept()));
090      } catch (org.hl7.fhir.exceptions.FHIRException e) {
091      }
092    return tgt;
093  }
094
095  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ClinicalImpression.ClinicalImpressionStatus> convertClinicalImpressionStatus(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.ClinicalImpression.ClinicalImpressionStatus> src) throws FHIRException {
096    if (src == null || src.isEmpty())
097      return null;
098    org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ClinicalImpression.ClinicalImpressionStatus> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.ClinicalImpression.ClinicalImpressionStatusEnumFactory());
099    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
100    switch (src.getValue()) {
101      case INPROGRESS:
102        tgt.setValue(org.hl7.fhir.dstu3.model.ClinicalImpression.ClinicalImpressionStatus.DRAFT);
103        break;
104      case COMPLETED:
105        tgt.setValue(org.hl7.fhir.dstu3.model.ClinicalImpression.ClinicalImpressionStatus.COMPLETED);
106        break;
107      case ENTEREDINERROR:
108        tgt.setValue(org.hl7.fhir.dstu3.model.ClinicalImpression.ClinicalImpressionStatus.ENTEREDINERROR);
109        break;
110      default:
111        tgt.setValue(org.hl7.fhir.dstu3.model.ClinicalImpression.ClinicalImpressionStatus.NULL);
112        break;
113    }
114    return tgt;
115  }
116
117  static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.ClinicalImpression.ClinicalImpressionStatus> convertClinicalImpressionStatus(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ClinicalImpression.ClinicalImpressionStatus> src) throws FHIRException {
118    if (src == null || src.isEmpty())
119      return null;
120    org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.ClinicalImpression.ClinicalImpressionStatus> tgt = new org.hl7.fhir.dstu2.model.Enumeration<>(new org.hl7.fhir.dstu2.model.ClinicalImpression.ClinicalImpressionStatusEnumFactory());
121    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
122    switch (src.getValue()) {
123      case DRAFT:
124        tgt.setValue(org.hl7.fhir.dstu2.model.ClinicalImpression.ClinicalImpressionStatus.INPROGRESS);
125        break;
126      case COMPLETED:
127        tgt.setValue(org.hl7.fhir.dstu2.model.ClinicalImpression.ClinicalImpressionStatus.COMPLETED);
128        break;
129      case ENTEREDINERROR:
130        tgt.setValue(org.hl7.fhir.dstu2.model.ClinicalImpression.ClinicalImpressionStatus.ENTEREDINERROR);
131        break;
132      default:
133        tgt.setValue(org.hl7.fhir.dstu2.model.ClinicalImpression.ClinicalImpressionStatus.NULL);
134        break;
135    }
136    return tgt;
137  }
138}