001package org.hl7.fhir.convertors.conv30_50.resources30_50;
002
003import org.hl7.fhir.convertors.context.ConversionContext30_50;
004import org.hl7.fhir.convertors.conv30_50.datatypes30_50.Reference30_50;
005import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.Annotation30_50;
006import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.CodeableConcept30_50;
007import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.Identifier30_50;
008import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Date30_50;
009import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.String30_50;
010import org.hl7.fhir.exceptions.FHIRException;
011import org.hl7.fhir.r5.model.CodeableReference;
012
013public class Goal30_50 {
014
015  public static org.hl7.fhir.dstu3.model.Goal convertGoal(org.hl7.fhir.r5.model.Goal src) throws FHIRException {
016    if (src == null)
017      return null;
018    org.hl7.fhir.dstu3.model.Goal tgt = new org.hl7.fhir.dstu3.model.Goal();
019    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyDomainResource(src, tgt);
020    for (org.hl7.fhir.r5.model.Identifier t : src.getIdentifier())
021      tgt.addIdentifier(Identifier30_50.convertIdentifier(t));
022    if (src.hasLifecycleStatus())
023      tgt.setStatusElement(convertGoalStatus(src.getLifecycleStatusElement()));
024    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getCategory())
025      tgt.addCategory(CodeableConcept30_50.convertCodeableConcept(t));
026    if (src.hasPriority())
027      tgt.setPriority(CodeableConcept30_50.convertCodeableConcept(src.getPriority()));
028    if (src.hasDescription())
029      tgt.setDescription(CodeableConcept30_50.convertCodeableConcept(src.getDescription()));
030    if (src.hasSubject())
031      tgt.setSubject(Reference30_50.convertReference(src.getSubject()));
032    if (src.hasStart())
033      tgt.setStart(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getStart()));
034    if (src.hasTarget())
035      tgt.setTarget(convertGoalTargetComponent(src.getTargetFirstRep()));
036    if (src.hasStatusDate())
037      tgt.setStatusDateElement(Date30_50.convertDate(src.getStatusDateElement()));
038    if (src.hasStatusReason())
039      tgt.setStatusReasonElement(String30_50.convertString(src.getStatusReasonElement()));
040    for (org.hl7.fhir.r5.model.Reference t : src.getAddresses()) tgt.addAddresses(Reference30_50.convertReference(t));
041    for (org.hl7.fhir.r5.model.Annotation t : src.getNote()) tgt.addNote(Annotation30_50.convertAnnotation(t));
042    for (CodeableReference t : src.getOutcome())
043      if (t.hasConcept())
044        tgt.addOutcomeCode(CodeableConcept30_50.convertCodeableConcept(t.getConcept()));
045    for (CodeableReference t : src.getOutcome())
046      if (t.hasReference())
047        tgt.addOutcomeReference(Reference30_50.convertReference(t.getReference()));
048    return tgt;
049  }
050
051  public static org.hl7.fhir.r5.model.Goal convertGoal(org.hl7.fhir.dstu3.model.Goal src) throws FHIRException {
052    if (src == null)
053      return null;
054    org.hl7.fhir.r5.model.Goal tgt = new org.hl7.fhir.r5.model.Goal();
055    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyDomainResource(src, tgt);
056    for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier())
057      tgt.addIdentifier(Identifier30_50.convertIdentifier(t));
058    if (src.hasStatus())
059      tgt.setLifecycleStatusElement(convertGoalStatus(src.getStatusElement()));
060    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getCategory())
061      tgt.addCategory(CodeableConcept30_50.convertCodeableConcept(t));
062    if (src.hasPriority())
063      tgt.setPriority(CodeableConcept30_50.convertCodeableConcept(src.getPriority()));
064    if (src.hasDescription())
065      tgt.setDescription(CodeableConcept30_50.convertCodeableConcept(src.getDescription()));
066    if (src.hasSubject())
067      tgt.setSubject(Reference30_50.convertReference(src.getSubject()));
068    if (src.hasStart())
069      tgt.setStart(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getStart()));
070    if (src.hasTarget())
071      tgt.addTarget(convertGoalTargetComponent(src.getTarget()));
072    if (src.hasStatusDate())
073      tgt.setStatusDateElement(Date30_50.convertDate(src.getStatusDateElement()));
074    if (src.hasStatusReason())
075      tgt.setStatusReasonElement(String30_50.convertString(src.getStatusReasonElement()));
076    for (org.hl7.fhir.dstu3.model.Reference t : src.getAddresses())
077      tgt.addAddresses(Reference30_50.convertReference(t));
078    for (org.hl7.fhir.dstu3.model.Annotation t : src.getNote()) tgt.addNote(Annotation30_50.convertAnnotation(t));
079    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getOutcomeCode())
080      tgt.addOutcome(Reference30_50.convertCodeableConceptToCodableReference(t));
081    for (org.hl7.fhir.dstu3.model.Reference t : src.getOutcomeReference())
082      tgt.addOutcome(Reference30_50.convertReferenceToCodableReference(t));
083    return tgt;
084  }
085
086  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Goal.GoalStatus> convertGoalStatus(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Goal.GoalLifecycleStatus> src) throws FHIRException {
087    if (src == null || src.isEmpty())
088      return null;
089    org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Goal.GoalStatus> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.Goal.GoalStatusEnumFactory());
090    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
091    switch (src.getValue()) {
092      case PROPOSED:
093        tgt.setValue(org.hl7.fhir.dstu3.model.Goal.GoalStatus.PROPOSED);
094        break;
095      case ACCEPTED:
096        tgt.setValue(org.hl7.fhir.dstu3.model.Goal.GoalStatus.ACCEPTED);
097        break;
098      case PLANNED:
099        tgt.setValue(org.hl7.fhir.dstu3.model.Goal.GoalStatus.PLANNED);
100        break;
101      case ACTIVE:
102        tgt.setValue(org.hl7.fhir.dstu3.model.Goal.GoalStatus.INPROGRESS);
103        break;
104      case COMPLETED:
105        tgt.setValue(org.hl7.fhir.dstu3.model.Goal.GoalStatus.ACHIEVED);
106        break;
107      case ONHOLD:
108        tgt.setValue(org.hl7.fhir.dstu3.model.Goal.GoalStatus.ONHOLD);
109        break;
110      case CANCELLED:
111        tgt.setValue(org.hl7.fhir.dstu3.model.Goal.GoalStatus.CANCELLED);
112        break;
113      case ENTEREDINERROR:
114        tgt.setValue(org.hl7.fhir.dstu3.model.Goal.GoalStatus.ENTEREDINERROR);
115        break;
116      case REJECTED:
117        tgt.setValue(org.hl7.fhir.dstu3.model.Goal.GoalStatus.REJECTED);
118        break;
119      default:
120        tgt.setValue(org.hl7.fhir.dstu3.model.Goal.GoalStatus.NULL);
121        break;
122    }
123    return tgt;
124  }
125
126  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Goal.GoalLifecycleStatus> convertGoalStatus(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Goal.GoalStatus> src) throws FHIRException {
127    if (src == null || src.isEmpty())
128      return null;
129    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Goal.GoalLifecycleStatus> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.Goal.GoalLifecycleStatusEnumFactory());
130    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
131    switch (src.getValue()) {
132      case PROPOSED:
133        tgt.setValue(org.hl7.fhir.r5.model.Goal.GoalLifecycleStatus.PROPOSED);
134        break;
135      case ACCEPTED:
136        tgt.setValue(org.hl7.fhir.r5.model.Goal.GoalLifecycleStatus.ACCEPTED);
137        break;
138      case PLANNED:
139        tgt.setValue(org.hl7.fhir.r5.model.Goal.GoalLifecycleStatus.PLANNED);
140        break;
141      case INPROGRESS:
142        tgt.setValue(org.hl7.fhir.r5.model.Goal.GoalLifecycleStatus.ACTIVE);
143        break;
144      case ONTARGET:
145        tgt.setValue(org.hl7.fhir.r5.model.Goal.GoalLifecycleStatus.ACTIVE);
146        break;
147      case AHEADOFTARGET:
148        tgt.setValue(org.hl7.fhir.r5.model.Goal.GoalLifecycleStatus.ACTIVE);
149        break;
150      case BEHINDTARGET:
151        tgt.setValue(org.hl7.fhir.r5.model.Goal.GoalLifecycleStatus.ACTIVE);
152        break;
153      case SUSTAINING:
154        tgt.setValue(org.hl7.fhir.r5.model.Goal.GoalLifecycleStatus.ACTIVE);
155        break;
156      case ACHIEVED:
157        tgt.setValue(org.hl7.fhir.r5.model.Goal.GoalLifecycleStatus.COMPLETED);
158        break;
159      case ONHOLD:
160        tgt.setValue(org.hl7.fhir.r5.model.Goal.GoalLifecycleStatus.ONHOLD);
161        break;
162      case CANCELLED:
163        tgt.setValue(org.hl7.fhir.r5.model.Goal.GoalLifecycleStatus.CANCELLED);
164        break;
165      case ENTEREDINERROR:
166        tgt.setValue(org.hl7.fhir.r5.model.Goal.GoalLifecycleStatus.ENTEREDINERROR);
167        break;
168      case REJECTED:
169        tgt.setValue(org.hl7.fhir.r5.model.Goal.GoalLifecycleStatus.REJECTED);
170        break;
171      default:
172        tgt.setValue(org.hl7.fhir.r5.model.Goal.GoalLifecycleStatus.NULL);
173        break;
174    }
175    return tgt;
176  }
177
178  public static org.hl7.fhir.r5.model.Goal.GoalTargetComponent convertGoalTargetComponent(org.hl7.fhir.dstu3.model.Goal.GoalTargetComponent src) throws FHIRException {
179    if (src == null)
180      return null;
181    org.hl7.fhir.r5.model.Goal.GoalTargetComponent tgt = new org.hl7.fhir.r5.model.Goal.GoalTargetComponent();
182    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
183    if (src.hasMeasure())
184      tgt.setMeasure(CodeableConcept30_50.convertCodeableConcept(src.getMeasure()));
185    if (src.hasDetail())
186      tgt.setDetail(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getDetail()));
187    if (src.hasDue())
188      tgt.setDue(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getDue()));
189    return tgt;
190  }
191
192  public static org.hl7.fhir.dstu3.model.Goal.GoalTargetComponent convertGoalTargetComponent(org.hl7.fhir.r5.model.Goal.GoalTargetComponent src) throws FHIRException {
193    if (src == null)
194      return null;
195    org.hl7.fhir.dstu3.model.Goal.GoalTargetComponent tgt = new org.hl7.fhir.dstu3.model.Goal.GoalTargetComponent();
196    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
197    if (src.hasMeasure())
198      tgt.setMeasure(CodeableConcept30_50.convertCodeableConcept(src.getMeasure()));
199    if (src.hasDetail())
200      tgt.setDetail(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getDetail()));
201    if (src.hasDue())
202      tgt.setDue(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getDue()));
203    return tgt;
204  }
205}