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.Coding30_40;
007import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Duration30_40;
008import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Identifier30_40;
009import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Period30_40;
010import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.PositiveInt30_40;
011import org.hl7.fhir.dstu3.model.Encounter;
012import org.hl7.fhir.dstu3.model.Enumeration;
013import org.hl7.fhir.exceptions.FHIRException;
014
015public class Encounter30_40 {
016
017  public static org.hl7.fhir.r4.model.Encounter.ClassHistoryComponent convertClassHistoryComponent(org.hl7.fhir.dstu3.model.Encounter.ClassHistoryComponent src) throws FHIRException {
018    if (src == null)
019      return null;
020    org.hl7.fhir.r4.model.Encounter.ClassHistoryComponent tgt = new org.hl7.fhir.r4.model.Encounter.ClassHistoryComponent();
021    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
022    if (src.hasClass_())
023      tgt.setClass_(Coding30_40.convertCoding(src.getClass_()));
024    if (src.hasPeriod())
025      tgt.setPeriod(Period30_40.convertPeriod(src.getPeriod()));
026    return tgt;
027  }
028
029  public static org.hl7.fhir.dstu3.model.Encounter.ClassHistoryComponent convertClassHistoryComponent(org.hl7.fhir.r4.model.Encounter.ClassHistoryComponent src) throws FHIRException {
030    if (src == null)
031      return null;
032    org.hl7.fhir.dstu3.model.Encounter.ClassHistoryComponent tgt = new org.hl7.fhir.dstu3.model.Encounter.ClassHistoryComponent();
033    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
034    if (src.hasClass_())
035      tgt.setClass_(Coding30_40.convertCoding(src.getClass_()));
036    if (src.hasPeriod())
037      tgt.setPeriod(Period30_40.convertPeriod(src.getPeriod()));
038    return tgt;
039  }
040
041  public static org.hl7.fhir.dstu3.model.Encounter convertEncounter(org.hl7.fhir.r4.model.Encounter src) throws FHIRException {
042    if (src == null)
043      return null;
044    org.hl7.fhir.dstu3.model.Encounter tgt = new org.hl7.fhir.dstu3.model.Encounter();
045    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt);
046    for (org.hl7.fhir.r4.model.Identifier t : src.getIdentifier())
047      tgt.addIdentifier(Identifier30_40.convertIdentifier(t));
048    if (src.hasStatus())
049      tgt.setStatusElement(convertEncounterStatus(src.getStatusElement()));
050    for (org.hl7.fhir.r4.model.Encounter.StatusHistoryComponent t : src.getStatusHistory())
051      tgt.addStatusHistory(convertStatusHistoryComponent(t));
052    if (src.hasClass_())
053      tgt.setClass_(Coding30_40.convertCoding(src.getClass_()));
054    for (org.hl7.fhir.r4.model.Encounter.ClassHistoryComponent t : src.getClassHistory())
055      tgt.addClassHistory(convertClassHistoryComponent(t));
056    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getType())
057      tgt.addType(CodeableConcept30_40.convertCodeableConcept(t));
058    if (src.hasPriority())
059      tgt.setPriority(CodeableConcept30_40.convertCodeableConcept(src.getPriority()));
060    if (src.hasSubject())
061      tgt.setSubject(Reference30_40.convertReference(src.getSubject()));
062    for (org.hl7.fhir.r4.model.Reference t : src.getEpisodeOfCare())
063      tgt.addEpisodeOfCare(Reference30_40.convertReference(t));
064    for (org.hl7.fhir.r4.model.Reference t : src.getBasedOn())
065      tgt.addIncomingReferral(Reference30_40.convertReference(t));
066    for (org.hl7.fhir.r4.model.Encounter.EncounterParticipantComponent t : src.getParticipant())
067      tgt.addParticipant(convertEncounterParticipantComponent(t));
068    if (src.hasAppointment())
069      tgt.setAppointment(Reference30_40.convertReference(src.getAppointmentFirstRep()));
070    if (src.hasPeriod())
071      tgt.setPeriod(Period30_40.convertPeriod(src.getPeriod()));
072    if (src.hasLength())
073      tgt.setLength(Duration30_40.convertDuration(src.getLength()));
074    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getReasonCode())
075      tgt.addReason(CodeableConcept30_40.convertCodeableConcept(t));
076    for (org.hl7.fhir.r4.model.Encounter.DiagnosisComponent t : src.getDiagnosis())
077      tgt.addDiagnosis(convertDiagnosisComponent(t));
078    for (org.hl7.fhir.r4.model.Reference t : src.getAccount()) tgt.addAccount(Reference30_40.convertReference(t));
079    if (src.hasHospitalization())
080      tgt.setHospitalization(convertEncounterHospitalizationComponent(src.getHospitalization()));
081    for (org.hl7.fhir.r4.model.Encounter.EncounterLocationComponent t : src.getLocation())
082      tgt.addLocation(convertEncounterLocationComponent(t));
083    if (src.hasServiceProvider())
084      tgt.setServiceProvider(Reference30_40.convertReference(src.getServiceProvider()));
085    if (src.hasPartOf())
086      tgt.setPartOf(Reference30_40.convertReference(src.getPartOf()));
087    return tgt;
088  }
089
090  public static org.hl7.fhir.r4.model.Encounter convertEncounter(org.hl7.fhir.dstu3.model.Encounter src) throws FHIRException {
091    if (src == null)
092      return null;
093    org.hl7.fhir.r4.model.Encounter tgt = new org.hl7.fhir.r4.model.Encounter();
094    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt);
095    for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier())
096      tgt.addIdentifier(Identifier30_40.convertIdentifier(t));
097    if (src.hasStatus())
098      tgt.setStatusElement(convertEncounterStatus(src.getStatusElement()));
099    for (org.hl7.fhir.dstu3.model.Encounter.StatusHistoryComponent t : src.getStatusHistory())
100      tgt.addStatusHistory(convertStatusHistoryComponent(t));
101    if (src.hasClass_())
102      tgt.setClass_(Coding30_40.convertCoding(src.getClass_()));
103    for (org.hl7.fhir.dstu3.model.Encounter.ClassHistoryComponent t : src.getClassHistory())
104      tgt.addClassHistory(convertClassHistoryComponent(t));
105    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getType())
106      tgt.addType(CodeableConcept30_40.convertCodeableConcept(t));
107    if (src.hasPriority())
108      tgt.setPriority(CodeableConcept30_40.convertCodeableConcept(src.getPriority()));
109    if (src.hasSubject())
110      tgt.setSubject(Reference30_40.convertReference(src.getSubject()));
111    for (org.hl7.fhir.dstu3.model.Reference t : src.getEpisodeOfCare())
112      tgt.addEpisodeOfCare(Reference30_40.convertReference(t));
113    for (org.hl7.fhir.dstu3.model.Reference t : src.getIncomingReferral())
114      tgt.addBasedOn(Reference30_40.convertReference(t));
115    for (org.hl7.fhir.dstu3.model.Encounter.EncounterParticipantComponent t : src.getParticipant())
116      tgt.addParticipant(convertEncounterParticipantComponent(t));
117    if (src.hasAppointment())
118      tgt.addAppointment(Reference30_40.convertReference(src.getAppointment()));
119    if (src.hasPeriod())
120      tgt.setPeriod(Period30_40.convertPeriod(src.getPeriod()));
121    if (src.hasLength())
122      tgt.setLength(Duration30_40.convertDuration(src.getLength()));
123    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getReason())
124      tgt.addReasonCode(CodeableConcept30_40.convertCodeableConcept(t));
125    for (org.hl7.fhir.dstu3.model.Encounter.DiagnosisComponent t : src.getDiagnosis())
126      tgt.addDiagnosis(convertDiagnosisComponent(t));
127    for (org.hl7.fhir.dstu3.model.Reference t : src.getAccount()) tgt.addAccount(Reference30_40.convertReference(t));
128    if (src.hasHospitalization())
129      tgt.setHospitalization(convertEncounterHospitalizationComponent(src.getHospitalization()));
130    for (org.hl7.fhir.dstu3.model.Encounter.EncounterLocationComponent t : src.getLocation())
131      tgt.addLocation(convertEncounterLocationComponent(t));
132    if (src.hasServiceProvider())
133      tgt.setServiceProvider(Reference30_40.convertReference(src.getServiceProvider()));
134    if (src.hasPartOf())
135      tgt.setPartOf(Reference30_40.convertReference(src.getPartOf()));
136    return tgt;
137  }
138
139  public static org.hl7.fhir.r4.model.Encounter.EncounterHospitalizationComponent convertEncounterHospitalizationComponent(org.hl7.fhir.dstu3.model.Encounter.EncounterHospitalizationComponent src) throws FHIRException {
140    if (src == null)
141      return null;
142    org.hl7.fhir.r4.model.Encounter.EncounterHospitalizationComponent tgt = new org.hl7.fhir.r4.model.Encounter.EncounterHospitalizationComponent();
143    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
144    if (src.hasPreAdmissionIdentifier())
145      tgt.setPreAdmissionIdentifier(Identifier30_40.convertIdentifier(src.getPreAdmissionIdentifier()));
146    if (src.hasOrigin())
147      tgt.setOrigin(Reference30_40.convertReference(src.getOrigin()));
148    if (src.hasAdmitSource())
149      tgt.setAdmitSource(CodeableConcept30_40.convertCodeableConcept(src.getAdmitSource()));
150    if (src.hasReAdmission())
151      tgt.setReAdmission(CodeableConcept30_40.convertCodeableConcept(src.getReAdmission()));
152    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getDietPreference())
153      tgt.addDietPreference(CodeableConcept30_40.convertCodeableConcept(t));
154    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getSpecialCourtesy())
155      tgt.addSpecialCourtesy(CodeableConcept30_40.convertCodeableConcept(t));
156    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getSpecialArrangement())
157      tgt.addSpecialArrangement(CodeableConcept30_40.convertCodeableConcept(t));
158    if (src.hasDestination())
159      tgt.setDestination(Reference30_40.convertReference(src.getDestination()));
160    if (src.hasDischargeDisposition())
161      tgt.setDischargeDisposition(CodeableConcept30_40.convertCodeableConcept(src.getDischargeDisposition()));
162    return tgt;
163  }
164
165  public static org.hl7.fhir.dstu3.model.Encounter.EncounterHospitalizationComponent convertEncounterHospitalizationComponent(org.hl7.fhir.r4.model.Encounter.EncounterHospitalizationComponent src) throws FHIRException {
166    if (src == null)
167      return null;
168    org.hl7.fhir.dstu3.model.Encounter.EncounterHospitalizationComponent tgt = new org.hl7.fhir.dstu3.model.Encounter.EncounterHospitalizationComponent();
169    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
170    if (src.hasPreAdmissionIdentifier())
171      tgt.setPreAdmissionIdentifier(Identifier30_40.convertIdentifier(src.getPreAdmissionIdentifier()));
172    if (src.hasOrigin())
173      tgt.setOrigin(Reference30_40.convertReference(src.getOrigin()));
174    if (src.hasAdmitSource())
175      tgt.setAdmitSource(CodeableConcept30_40.convertCodeableConcept(src.getAdmitSource()));
176    if (src.hasReAdmission())
177      tgt.setReAdmission(CodeableConcept30_40.convertCodeableConcept(src.getReAdmission()));
178    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getDietPreference())
179      tgt.addDietPreference(CodeableConcept30_40.convertCodeableConcept(t));
180    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getSpecialCourtesy())
181      tgt.addSpecialCourtesy(CodeableConcept30_40.convertCodeableConcept(t));
182    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getSpecialArrangement())
183      tgt.addSpecialArrangement(CodeableConcept30_40.convertCodeableConcept(t));
184    if (src.hasDestination())
185      tgt.setDestination(Reference30_40.convertReference(src.getDestination()));
186    if (src.hasDischargeDisposition())
187      tgt.setDischargeDisposition(CodeableConcept30_40.convertCodeableConcept(src.getDischargeDisposition()));
188    return tgt;
189  }
190
191  public static org.hl7.fhir.r4.model.Encounter.EncounterLocationComponent convertEncounterLocationComponent(org.hl7.fhir.dstu3.model.Encounter.EncounterLocationComponent src) throws FHIRException {
192    if (src == null)
193      return null;
194    org.hl7.fhir.r4.model.Encounter.EncounterLocationComponent tgt = new org.hl7.fhir.r4.model.Encounter.EncounterLocationComponent();
195    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
196    if (src.hasLocation())
197      tgt.setLocation(Reference30_40.convertReference(src.getLocation()));
198    if (src.hasStatus())
199      tgt.setStatusElement(convertEncounterLocationStatus(src.getStatusElement()));
200    if (src.hasPeriod())
201      tgt.setPeriod(Period30_40.convertPeriod(src.getPeriod()));
202    return tgt;
203  }
204
205  public static org.hl7.fhir.dstu3.model.Encounter.EncounterLocationComponent convertEncounterLocationComponent(org.hl7.fhir.r4.model.Encounter.EncounterLocationComponent src) throws FHIRException {
206    if (src == null)
207      return null;
208    org.hl7.fhir.dstu3.model.Encounter.EncounterLocationComponent tgt = new org.hl7.fhir.dstu3.model.Encounter.EncounterLocationComponent();
209    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
210    if (src.hasLocation())
211      tgt.setLocation(Reference30_40.convertReference(src.getLocation()));
212    if (src.hasStatus())
213      tgt.setStatusElement(convertEncounterLocationStatus(src.getStatusElement()));
214    if (src.hasPeriod())
215      tgt.setPeriod(Period30_40.convertPeriod(src.getPeriod()));
216    return tgt;
217  }
218
219  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Encounter.EncounterLocationStatus> convertEncounterLocationStatus(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Encounter.EncounterLocationStatus> src) throws FHIRException {
220      if (src == null || src.isEmpty())
221          return null;
222      Enumeration<Encounter.EncounterLocationStatus> tgt = new Enumeration<>(new Encounter.EncounterLocationStatusEnumFactory());
223      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
224      if (src.getValue() == null) {
225          tgt.setValue(null);
226      } else {
227          switch (src.getValue()) {
228              case PLANNED:
229                  tgt.setValue(Encounter.EncounterLocationStatus.PLANNED);
230                  break;
231              case ACTIVE:
232                  tgt.setValue(Encounter.EncounterLocationStatus.ACTIVE);
233                  break;
234              case RESERVED:
235                  tgt.setValue(Encounter.EncounterLocationStatus.RESERVED);
236                  break;
237              case COMPLETED:
238                  tgt.setValue(Encounter.EncounterLocationStatus.COMPLETED);
239                  break;
240              default:
241                  tgt.setValue(Encounter.EncounterLocationStatus.NULL);
242                  break;
243          }
244      }
245      return tgt;
246  }
247
248  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Encounter.EncounterLocationStatus> convertEncounterLocationStatus(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Encounter.EncounterLocationStatus> src) throws FHIRException {
249      if (src == null || src.isEmpty())
250          return null;
251      org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Encounter.EncounterLocationStatus> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.Encounter.EncounterLocationStatusEnumFactory());
252      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
253      if (src.getValue() == null) {
254          tgt.setValue(null);
255      } else {
256          switch (src.getValue()) {
257              case PLANNED:
258                  tgt.setValue(org.hl7.fhir.r4.model.Encounter.EncounterLocationStatus.PLANNED);
259                  break;
260              case ACTIVE:
261                  tgt.setValue(org.hl7.fhir.r4.model.Encounter.EncounterLocationStatus.ACTIVE);
262                  break;
263              case RESERVED:
264                  tgt.setValue(org.hl7.fhir.r4.model.Encounter.EncounterLocationStatus.RESERVED);
265                  break;
266              case COMPLETED:
267                  tgt.setValue(org.hl7.fhir.r4.model.Encounter.EncounterLocationStatus.COMPLETED);
268                  break;
269              default:
270                  tgt.setValue(org.hl7.fhir.r4.model.Encounter.EncounterLocationStatus.NULL);
271                  break;
272          }
273      }
274      return tgt;
275  }
276
277  public static org.hl7.fhir.dstu3.model.Encounter.EncounterParticipantComponent convertEncounterParticipantComponent(org.hl7.fhir.r4.model.Encounter.EncounterParticipantComponent src) throws FHIRException {
278    if (src == null)
279      return null;
280    org.hl7.fhir.dstu3.model.Encounter.EncounterParticipantComponent tgt = new org.hl7.fhir.dstu3.model.Encounter.EncounterParticipantComponent();
281    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
282    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getType())
283      tgt.addType(CodeableConcept30_40.convertCodeableConcept(t));
284    if (src.hasPeriod())
285      tgt.setPeriod(Period30_40.convertPeriod(src.getPeriod()));
286    if (src.hasIndividual())
287      tgt.setIndividual(Reference30_40.convertReference(src.getIndividual()));
288    return tgt;
289  }
290
291  public static org.hl7.fhir.r4.model.Encounter.EncounterParticipantComponent convertEncounterParticipantComponent(org.hl7.fhir.dstu3.model.Encounter.EncounterParticipantComponent src) throws FHIRException {
292    if (src == null)
293      return null;
294    org.hl7.fhir.r4.model.Encounter.EncounterParticipantComponent tgt = new org.hl7.fhir.r4.model.Encounter.EncounterParticipantComponent();
295    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
296    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getType())
297      tgt.addType(CodeableConcept30_40.convertCodeableConcept(t));
298    if (src.hasPeriod())
299      tgt.setPeriod(Period30_40.convertPeriod(src.getPeriod()));
300    if (src.hasIndividual())
301      tgt.setIndividual(Reference30_40.convertReference(src.getIndividual()));
302    return tgt;
303  }
304
305  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Encounter.EncounterStatus> convertEncounterStatus(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Encounter.EncounterStatus> src) throws FHIRException {
306      if (src == null || src.isEmpty())
307          return null;
308      org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Encounter.EncounterStatus> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.Encounter.EncounterStatusEnumFactory());
309      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
310      if (src.getValue() == null) {
311          tgt.setValue(null);
312      } else {
313          switch (src.getValue()) {
314              case PLANNED:
315                  tgt.setValue(org.hl7.fhir.r4.model.Encounter.EncounterStatus.PLANNED);
316                  break;
317              case ARRIVED:
318                  tgt.setValue(org.hl7.fhir.r4.model.Encounter.EncounterStatus.ARRIVED);
319                  break;
320              case TRIAGED:
321                  tgt.setValue(org.hl7.fhir.r4.model.Encounter.EncounterStatus.TRIAGED);
322                  break;
323              case INPROGRESS:
324                  tgt.setValue(org.hl7.fhir.r4.model.Encounter.EncounterStatus.INPROGRESS);
325                  break;
326              case ONLEAVE:
327                  tgt.setValue(org.hl7.fhir.r4.model.Encounter.EncounterStatus.ONLEAVE);
328                  break;
329              case FINISHED:
330                  tgt.setValue(org.hl7.fhir.r4.model.Encounter.EncounterStatus.FINISHED);
331                  break;
332              case CANCELLED:
333                  tgt.setValue(org.hl7.fhir.r4.model.Encounter.EncounterStatus.CANCELLED);
334                  break;
335              case ENTEREDINERROR:
336                  tgt.setValue(org.hl7.fhir.r4.model.Encounter.EncounterStatus.ENTEREDINERROR);
337                  break;
338              case UNKNOWN:
339                  tgt.setValue(org.hl7.fhir.r4.model.Encounter.EncounterStatus.UNKNOWN);
340                  break;
341              default:
342                  tgt.setValue(org.hl7.fhir.r4.model.Encounter.EncounterStatus.NULL);
343                  break;
344          }
345      }
346      return tgt;
347  }
348
349  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Encounter.EncounterStatus> convertEncounterStatus(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Encounter.EncounterStatus> src) throws FHIRException {
350      if (src == null || src.isEmpty())
351          return null;
352      Enumeration<Encounter.EncounterStatus> tgt = new Enumeration<>(new Encounter.EncounterStatusEnumFactory());
353      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
354      if (src.getValue() == null) {
355          tgt.setValue(null);
356      } else {
357          switch (src.getValue()) {
358              case PLANNED:
359                  tgt.setValue(Encounter.EncounterStatus.PLANNED);
360                  break;
361              case ARRIVED:
362                  tgt.setValue(Encounter.EncounterStatus.ARRIVED);
363                  break;
364              case TRIAGED:
365                  tgt.setValue(Encounter.EncounterStatus.TRIAGED);
366                  break;
367              case INPROGRESS:
368                  tgt.setValue(Encounter.EncounterStatus.INPROGRESS);
369                  break;
370              case ONLEAVE:
371                  tgt.setValue(Encounter.EncounterStatus.ONLEAVE);
372                  break;
373              case FINISHED:
374                  tgt.setValue(Encounter.EncounterStatus.FINISHED);
375                  break;
376              case CANCELLED:
377                  tgt.setValue(Encounter.EncounterStatus.CANCELLED);
378                  break;
379              case ENTEREDINERROR:
380                  tgt.setValue(Encounter.EncounterStatus.ENTEREDINERROR);
381                  break;
382              case UNKNOWN:
383                  tgt.setValue(Encounter.EncounterStatus.UNKNOWN);
384                  break;
385              default:
386                  tgt.setValue(Encounter.EncounterStatus.NULL);
387                  break;
388          }
389      }
390      return tgt;
391  }
392
393  public static org.hl7.fhir.r4.model.Encounter.StatusHistoryComponent convertStatusHistoryComponent(org.hl7.fhir.dstu3.model.Encounter.StatusHistoryComponent src) throws FHIRException {
394    if (src == null)
395      return null;
396    org.hl7.fhir.r4.model.Encounter.StatusHistoryComponent tgt = new org.hl7.fhir.r4.model.Encounter.StatusHistoryComponent();
397    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
398    if (src.hasStatus())
399      tgt.setStatusElement(convertEncounterStatus(src.getStatusElement()));
400    if (src.hasPeriod())
401      tgt.setPeriod(Period30_40.convertPeriod(src.getPeriod()));
402    return tgt;
403  }
404
405  public static org.hl7.fhir.dstu3.model.Encounter.StatusHistoryComponent convertStatusHistoryComponent(org.hl7.fhir.r4.model.Encounter.StatusHistoryComponent src) throws FHIRException {
406    if (src == null)
407      return null;
408    org.hl7.fhir.dstu3.model.Encounter.StatusHistoryComponent tgt = new org.hl7.fhir.dstu3.model.Encounter.StatusHistoryComponent();
409    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
410    if (src.hasStatus())
411      tgt.setStatusElement(convertEncounterStatus(src.getStatusElement()));
412    if (src.hasPeriod())
413      tgt.setPeriod(Period30_40.convertPeriod(src.getPeriod()));
414    return tgt;
415  }
416
417  public static org.hl7.fhir.r4.model.Encounter.DiagnosisComponent convertDiagnosisComponent(org.hl7.fhir.dstu3.model.Encounter.DiagnosisComponent src) throws FHIRException {
418    if (src == null) return null;
419    org.hl7.fhir.r4.model.Encounter.DiagnosisComponent tgt = new org.hl7.fhir.r4.model.Encounter.DiagnosisComponent();
420    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
421    if (src.hasCondition()) tgt.setCondition(Reference30_40.convertReference(src.getCondition()));
422    if (src.hasRole()) tgt.setUse(CodeableConcept30_40.convertCodeableConcept(src.getRole()));
423    if (src.hasRank()) tgt.setRankElement(PositiveInt30_40.convertPositiveInt(src.getRankElement()));
424    return tgt;
425  }
426
427  public static org.hl7.fhir.dstu3.model.Encounter.DiagnosisComponent convertDiagnosisComponent(org.hl7.fhir.r4.model.Encounter.DiagnosisComponent src) throws FHIRException {
428    if (src == null) return null;
429    org.hl7.fhir.dstu3.model.Encounter.DiagnosisComponent tgt = new org.hl7.fhir.dstu3.model.Encounter.DiagnosisComponent();
430    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
431    if (src.hasCondition()) tgt.setCondition(Reference30_40.convertReference(src.getCondition()));
432    if (src.hasUse()) tgt.setRole(CodeableConcept30_40.convertCodeableConcept(src.getUse()));
433    if (src.hasRank()) tgt.setRankElement(PositiveInt30_40.convertPositiveInt(src.getRankElement()));
434    return tgt;
435  }
436}