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.convertors.conv10_30.datatypes10_30.complextypes10_30.Range10_30;
008import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.SimpleQuantity10_30;
009import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.Instant10_30;
010import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.String10_30;
011import org.hl7.fhir.exceptions.FHIRException;
012
013public class Observation10_30 {
014
015  public static org.hl7.fhir.dstu3.model.Observation convertObservation(org.hl7.fhir.dstu2.model.Observation src) throws FHIRException {
016    if (src == null || src.isEmpty())
017      return null;
018    org.hl7.fhir.dstu3.model.Observation tgt = new org.hl7.fhir.dstu3.model.Observation();
019    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt);
020    for (org.hl7.fhir.dstu2.model.Identifier t : src.getIdentifier())
021      tgt.addIdentifier(Identifier10_30.convertIdentifier(t));
022    if (src.hasStatus())
023      tgt.setStatusElement(convertObservationStatus(src.getStatusElement()));
024    if (src.hasCategory())
025      tgt.addCategory(CodeableConcept10_30.convertCodeableConcept(src.getCategory()));
026    if (src.hasCode())
027      tgt.setCode(CodeableConcept10_30.convertCodeableConcept(src.getCode()));
028    if (src.hasSubject())
029      tgt.setSubject(Reference10_30.convertReference(src.getSubject()));
030    if (src.hasEncounter())
031      tgt.setContext(Reference10_30.convertReference(src.getEncounter()));
032    if (src.hasEffective())
033      tgt.setEffective(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getEffective()));
034    if (src.hasIssuedElement())
035      tgt.setIssuedElement(Instant10_30.convertInstant(src.getIssuedElement()));
036    for (org.hl7.fhir.dstu2.model.Reference t : src.getPerformer())
037      tgt.addPerformer(Reference10_30.convertReference(t));
038    if (src.hasValue())
039      tgt.setValue(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getValue()));
040    if (src.hasDataAbsentReason())
041      tgt.setDataAbsentReason(CodeableConcept10_30.convertCodeableConcept(src.getDataAbsentReason()));
042    if (src.hasInterpretation())
043      tgt.setInterpretation(CodeableConcept10_30.convertCodeableConcept(src.getInterpretation()));
044    if (src.hasCommentsElement())
045      tgt.setCommentElement(String10_30.convertString(src.getCommentsElement()));
046    if (src.hasBodySite())
047      tgt.setBodySite(CodeableConcept10_30.convertCodeableConcept(src.getBodySite()));
048    if (src.hasMethod())
049      tgt.setMethod(CodeableConcept10_30.convertCodeableConcept(src.getMethod()));
050    if (src.hasSpecimen())
051      tgt.setSpecimen(Reference10_30.convertReference(src.getSpecimen()));
052    if (src.hasDevice())
053      tgt.setDevice(Reference10_30.convertReference(src.getDevice()));
054    for (org.hl7.fhir.dstu2.model.Observation.ObservationReferenceRangeComponent t : src.getReferenceRange())
055      tgt.addReferenceRange(convertObservationReferenceRangeComponent(t));
056    for (org.hl7.fhir.dstu2.model.Observation.ObservationRelatedComponent t : src.getRelated())
057      tgt.addRelated(convertObservationRelatedComponent(t));
058    for (org.hl7.fhir.dstu2.model.Observation.ObservationComponentComponent t : src.getComponent())
059      tgt.addComponent(convertObservationComponentComponent(t));
060    return tgt;
061  }
062
063  public static org.hl7.fhir.dstu2.model.Observation convertObservation(org.hl7.fhir.dstu3.model.Observation src) throws FHIRException {
064    if (src == null || src.isEmpty())
065      return null;
066    org.hl7.fhir.dstu2.model.Observation tgt = new org.hl7.fhir.dstu2.model.Observation();
067    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt);
068    for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier())
069      tgt.addIdentifier(Identifier10_30.convertIdentifier(t));
070    if (src.hasStatus())
071      tgt.setStatusElement(convertObservationStatus(src.getStatusElement()));
072    for (org.hl7.fhir.dstu3.model.CodeableConcept c : src.getCategory())
073      tgt.setCategory(CodeableConcept10_30.convertCodeableConcept(c));
074    if (src.hasCode())
075      tgt.setCode(CodeableConcept10_30.convertCodeableConcept(src.getCode()));
076    if (src.hasSubject())
077      tgt.setSubject(Reference10_30.convertReference(src.getSubject()));
078    if (src.hasContext())
079      tgt.setEncounter(Reference10_30.convertReference(src.getContext()));
080    if (src.hasEffective())
081      tgt.setEffective(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getEffective()));
082    if (src.hasIssuedElement())
083      tgt.setIssuedElement(Instant10_30.convertInstant(src.getIssuedElement()));
084    for (org.hl7.fhir.dstu3.model.Reference t : src.getPerformer())
085      tgt.addPerformer(Reference10_30.convertReference(t));
086    if (src.hasValue())
087      tgt.setValue(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getValue()));
088    if (src.hasDataAbsentReason())
089      tgt.setDataAbsentReason(CodeableConcept10_30.convertCodeableConcept(src.getDataAbsentReason()));
090    if (src.hasInterpretation())
091      tgt.setInterpretation(CodeableConcept10_30.convertCodeableConcept(src.getInterpretation()));
092    if (src.hasCommentElement())
093      tgt.setCommentsElement(String10_30.convertString(src.getCommentElement()));
094    if (src.hasBodySite())
095      tgt.setBodySite(CodeableConcept10_30.convertCodeableConcept(src.getBodySite()));
096    if (src.hasMethod())
097      tgt.setMethod(CodeableConcept10_30.convertCodeableConcept(src.getMethod()));
098    if (src.hasSpecimen())
099      tgt.setSpecimen(Reference10_30.convertReference(src.getSpecimen()));
100    if (src.hasDevice())
101      tgt.setDevice(Reference10_30.convertReference(src.getDevice()));
102    for (org.hl7.fhir.dstu3.model.Observation.ObservationReferenceRangeComponent t : src.getReferenceRange())
103      tgt.addReferenceRange(convertObservationReferenceRangeComponent(t));
104    for (org.hl7.fhir.dstu3.model.Observation.ObservationRelatedComponent t : src.getRelated())
105      tgt.addRelated(convertObservationRelatedComponent(t));
106    for (org.hl7.fhir.dstu3.model.Observation.ObservationComponentComponent t : src.getComponent())
107      tgt.addComponent(convertObservationComponentComponent(t));
108    return tgt;
109  }
110
111  public static org.hl7.fhir.dstu2.model.Observation.ObservationComponentComponent convertObservationComponentComponent(org.hl7.fhir.dstu3.model.Observation.ObservationComponentComponent src) throws FHIRException {
112    if (src == null || src.isEmpty())
113      return null;
114    org.hl7.fhir.dstu2.model.Observation.ObservationComponentComponent tgt = new org.hl7.fhir.dstu2.model.Observation.ObservationComponentComponent();
115    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
116    if (src.hasCode())
117      tgt.setCode(CodeableConcept10_30.convertCodeableConcept(src.getCode()));
118    if (src.hasValue())
119      tgt.setValue(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getValue()));
120    if (src.hasDataAbsentReason())
121      tgt.setDataAbsentReason(CodeableConcept10_30.convertCodeableConcept(src.getDataAbsentReason()));
122    for (org.hl7.fhir.dstu3.model.Observation.ObservationReferenceRangeComponent t : src.getReferenceRange())
123      tgt.addReferenceRange(convertObservationReferenceRangeComponent(t));
124    return tgt;
125  }
126
127  public static org.hl7.fhir.dstu3.model.Observation.ObservationComponentComponent convertObservationComponentComponent(org.hl7.fhir.dstu2.model.Observation.ObservationComponentComponent src) throws FHIRException {
128    if (src == null || src.isEmpty())
129      return null;
130    org.hl7.fhir.dstu3.model.Observation.ObservationComponentComponent tgt = new org.hl7.fhir.dstu3.model.Observation.ObservationComponentComponent();
131    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
132    if (src.hasCode())
133      tgt.setCode(CodeableConcept10_30.convertCodeableConcept(src.getCode()));
134    if (src.hasValue())
135      tgt.setValue(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getValue()));
136    if (src.hasDataAbsentReason())
137      tgt.setDataAbsentReason(CodeableConcept10_30.convertCodeableConcept(src.getDataAbsentReason()));
138    for (org.hl7.fhir.dstu2.model.Observation.ObservationReferenceRangeComponent t : src.getReferenceRange())
139      tgt.addReferenceRange(convertObservationReferenceRangeComponent(t));
140    return tgt;
141  }
142
143  public static org.hl7.fhir.dstu3.model.Observation.ObservationReferenceRangeComponent convertObservationReferenceRangeComponent(org.hl7.fhir.dstu2.model.Observation.ObservationReferenceRangeComponent src) throws FHIRException {
144    if (src == null || src.isEmpty())
145      return null;
146    org.hl7.fhir.dstu3.model.Observation.ObservationReferenceRangeComponent tgt = new org.hl7.fhir.dstu3.model.Observation.ObservationReferenceRangeComponent();
147    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
148    if (src.hasLow())
149      tgt.setLow(SimpleQuantity10_30.convertSimpleQuantity(src.getLow()));
150    if (src.hasHigh())
151      tgt.setHigh(SimpleQuantity10_30.convertSimpleQuantity(src.getHigh()));
152    if (src.hasMeaning())
153      tgt.setType(CodeableConcept10_30.convertCodeableConcept(src.getMeaning()));
154    if (src.hasAge())
155      tgt.setAge(Range10_30.convertRange(src.getAge()));
156    if (src.hasTextElement())
157      tgt.setTextElement(String10_30.convertString(src.getTextElement()));
158    return tgt;
159  }
160
161  public static org.hl7.fhir.dstu2.model.Observation.ObservationReferenceRangeComponent convertObservationReferenceRangeComponent(org.hl7.fhir.dstu3.model.Observation.ObservationReferenceRangeComponent src) throws FHIRException {
162    if (src == null || src.isEmpty())
163      return null;
164    org.hl7.fhir.dstu2.model.Observation.ObservationReferenceRangeComponent tgt = new org.hl7.fhir.dstu2.model.Observation.ObservationReferenceRangeComponent();
165    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
166    if (src.hasLow())
167      tgt.setLow(SimpleQuantity10_30.convertSimpleQuantity(src.getLow()));
168    if (src.hasHigh())
169      tgt.setHigh(SimpleQuantity10_30.convertSimpleQuantity(src.getHigh()));
170    if (src.hasType())
171      tgt.setMeaning(CodeableConcept10_30.convertCodeableConcept(src.getType()));
172    if (src.hasAge())
173      tgt.setAge(Range10_30.convertRange(src.getAge()));
174    if (src.hasTextElement())
175      tgt.setTextElement(String10_30.convertString(src.getTextElement()));
176    return tgt;
177  }
178
179  public static org.hl7.fhir.dstu2.model.Observation.ObservationRelatedComponent convertObservationRelatedComponent(org.hl7.fhir.dstu3.model.Observation.ObservationRelatedComponent src) throws FHIRException {
180    if (src == null || src.isEmpty())
181      return null;
182    org.hl7.fhir.dstu2.model.Observation.ObservationRelatedComponent tgt = new org.hl7.fhir.dstu2.model.Observation.ObservationRelatedComponent();
183    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
184    if (src.hasType())
185      tgt.setTypeElement(convertObservationRelationshipType(src.getTypeElement()));
186    if (src.hasTarget())
187      tgt.setTarget(Reference10_30.convertReference(src.getTarget()));
188    return tgt;
189  }
190
191  public static org.hl7.fhir.dstu3.model.Observation.ObservationRelatedComponent convertObservationRelatedComponent(org.hl7.fhir.dstu2.model.Observation.ObservationRelatedComponent src) throws FHIRException {
192    if (src == null || src.isEmpty())
193      return null;
194    org.hl7.fhir.dstu3.model.Observation.ObservationRelatedComponent tgt = new org.hl7.fhir.dstu3.model.Observation.ObservationRelatedComponent();
195    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
196    if (src.hasType())
197      tgt.setTypeElement(convertObservationRelationshipType(src.getTypeElement()));
198    if (src.hasTarget())
199      tgt.setTarget(Reference10_30.convertReference(src.getTarget()));
200    return tgt;
201  }
202
203  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Observation.ObservationRelationshipType> convertObservationRelationshipType(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Observation.ObservationRelationshipType> src) throws FHIRException {
204    if (src == null || src.isEmpty())
205      return null;
206    org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Observation.ObservationRelationshipType> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.Observation.ObservationRelationshipTypeEnumFactory());
207    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
208    switch (src.getValue()) {
209      case HASMEMBER:
210        tgt.setValue(org.hl7.fhir.dstu3.model.Observation.ObservationRelationshipType.HASMEMBER);
211        break;
212      case DERIVEDFROM:
213        tgt.setValue(org.hl7.fhir.dstu3.model.Observation.ObservationRelationshipType.DERIVEDFROM);
214        break;
215      case SEQUELTO:
216        tgt.setValue(org.hl7.fhir.dstu3.model.Observation.ObservationRelationshipType.SEQUELTO);
217        break;
218      case REPLACES:
219        tgt.setValue(org.hl7.fhir.dstu3.model.Observation.ObservationRelationshipType.REPLACES);
220        break;
221      case QUALIFIEDBY:
222        tgt.setValue(org.hl7.fhir.dstu3.model.Observation.ObservationRelationshipType.QUALIFIEDBY);
223        break;
224      case INTERFEREDBY:
225        tgt.setValue(org.hl7.fhir.dstu3.model.Observation.ObservationRelationshipType.INTERFEREDBY);
226        break;
227      default:
228        tgt.setValue(org.hl7.fhir.dstu3.model.Observation.ObservationRelationshipType.NULL);
229        break;
230    }
231    return tgt;
232  }
233
234  static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Observation.ObservationRelationshipType> convertObservationRelationshipType(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Observation.ObservationRelationshipType> src) throws FHIRException {
235    if (src == null || src.isEmpty())
236      return null;
237    org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Observation.ObservationRelationshipType> tgt = new org.hl7.fhir.dstu2.model.Enumeration<>(new org.hl7.fhir.dstu2.model.Observation.ObservationRelationshipTypeEnumFactory());
238    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
239    switch (src.getValue()) {
240      case HASMEMBER:
241        tgt.setValue(org.hl7.fhir.dstu2.model.Observation.ObservationRelationshipType.HASMEMBER);
242        break;
243      case DERIVEDFROM:
244        tgt.setValue(org.hl7.fhir.dstu2.model.Observation.ObservationRelationshipType.DERIVEDFROM);
245        break;
246      case SEQUELTO:
247        tgt.setValue(org.hl7.fhir.dstu2.model.Observation.ObservationRelationshipType.SEQUELTO);
248        break;
249      case REPLACES:
250        tgt.setValue(org.hl7.fhir.dstu2.model.Observation.ObservationRelationshipType.REPLACES);
251        break;
252      case QUALIFIEDBY:
253        tgt.setValue(org.hl7.fhir.dstu2.model.Observation.ObservationRelationshipType.QUALIFIEDBY);
254        break;
255      case INTERFEREDBY:
256        tgt.setValue(org.hl7.fhir.dstu2.model.Observation.ObservationRelationshipType.INTERFEREDBY);
257        break;
258      default:
259        tgt.setValue(org.hl7.fhir.dstu2.model.Observation.ObservationRelationshipType.NULL);
260        break;
261    }
262    return tgt;
263  }
264
265  static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Observation.ObservationStatus> convertObservationStatus(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Observation.ObservationStatus> src) throws FHIRException {
266    if (src == null || src.isEmpty())
267      return null;
268    org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Observation.ObservationStatus> tgt = new org.hl7.fhir.dstu2.model.Enumeration<>(new org.hl7.fhir.dstu2.model.Observation.ObservationStatusEnumFactory());
269    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
270    switch (src.getValue()) {
271      case REGISTERED:
272        tgt.setValue(org.hl7.fhir.dstu2.model.Observation.ObservationStatus.REGISTERED);
273        break;
274      case PRELIMINARY:
275        tgt.setValue(org.hl7.fhir.dstu2.model.Observation.ObservationStatus.PRELIMINARY);
276        break;
277      case FINAL:
278        tgt.setValue(org.hl7.fhir.dstu2.model.Observation.ObservationStatus.FINAL);
279        break;
280      case AMENDED:
281        tgt.setValue(org.hl7.fhir.dstu2.model.Observation.ObservationStatus.AMENDED);
282        break;
283      case CANCELLED:
284        tgt.setValue(org.hl7.fhir.dstu2.model.Observation.ObservationStatus.CANCELLED);
285        break;
286      case ENTEREDINERROR:
287        tgt.setValue(org.hl7.fhir.dstu2.model.Observation.ObservationStatus.ENTEREDINERROR);
288        break;
289      case UNKNOWN:
290        tgt.setValue(org.hl7.fhir.dstu2.model.Observation.ObservationStatus.UNKNOWN);
291        break;
292      default:
293        tgt.setValue(org.hl7.fhir.dstu2.model.Observation.ObservationStatus.NULL);
294        break;
295    }
296    return tgt;
297  }
298
299  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Observation.ObservationStatus> convertObservationStatus(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Observation.ObservationStatus> src) throws FHIRException {
300    if (src == null || src.isEmpty())
301      return null;
302    org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Observation.ObservationStatus> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.Observation.ObservationStatusEnumFactory());
303    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
304    switch (src.getValue()) {
305      case REGISTERED:
306        tgt.setValue(org.hl7.fhir.dstu3.model.Observation.ObservationStatus.REGISTERED);
307        break;
308      case PRELIMINARY:
309        tgt.setValue(org.hl7.fhir.dstu3.model.Observation.ObservationStatus.PRELIMINARY);
310        break;
311      case FINAL:
312        tgt.setValue(org.hl7.fhir.dstu3.model.Observation.ObservationStatus.FINAL);
313        break;
314      case AMENDED:
315        tgt.setValue(org.hl7.fhir.dstu3.model.Observation.ObservationStatus.AMENDED);
316        break;
317      case CANCELLED:
318        tgt.setValue(org.hl7.fhir.dstu3.model.Observation.ObservationStatus.CANCELLED);
319        break;
320      case ENTEREDINERROR:
321        tgt.setValue(org.hl7.fhir.dstu3.model.Observation.ObservationStatus.ENTEREDINERROR);
322        break;
323      case UNKNOWN:
324        tgt.setValue(org.hl7.fhir.dstu3.model.Observation.ObservationStatus.UNKNOWN);
325        break;
326      default:
327        tgt.setValue(org.hl7.fhir.dstu3.model.Observation.ObservationStatus.NULL);
328        break;
329    }
330    return tgt;
331  }
332}