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.SimpleQuantity10_30;
008import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.String10_30;
009import org.hl7.fhir.dstu3.model.Specimen;
010import org.hl7.fhir.exceptions.FHIRException;
011
012public class Specimen10_30 {
013
014  static public org.hl7.fhir.dstu2.model.Specimen convertSpecimen(Specimen src) {
015    if (src == null) {
016      return null;
017    }
018    org.hl7.fhir.dstu2.model.Specimen tgt = new org.hl7.fhir.dstu2.model.Specimen();
019    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt);
020    for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier())
021      tgt.addIdentifier(Identifier10_30.convertIdentifier(t));
022    if (src.hasAccessionIdentifier())
023      tgt.setAccessionIdentifier(Identifier10_30.convertIdentifier(src.getAccessionIdentifier()));
024    if (src.hasStatus())
025      tgt.setStatus(convertSpecimenStatus(src.getStatus()));
026    if (src.hasType())
027      tgt.setType(CodeableConcept10_30.convertCodeableConcept(src.getType()));
028    if (src.hasSubject())
029      tgt.setSubject(Reference10_30.convertReference(src.getSubject()));
030    if (src.hasReceivedTime())
031      tgt.setReceivedTime(src.getReceivedTime());
032    for (org.hl7.fhir.dstu3.model.Reference t : src.getParent()) tgt.addParent(Reference10_30.convertReference(t));
033    if (src.hasCollection())
034      tgt.setCollection(convertSpecimenCollectionComponent(src.getCollection()));
035    for (org.hl7.fhir.dstu3.model.Specimen.SpecimenProcessingComponent t : src.getProcessing())
036      tgt.addTreatment(convertSpecimenProcessingComponent(t));
037    for (org.hl7.fhir.dstu3.model.Specimen.SpecimenContainerComponent t : src.getContainer())
038      tgt.addContainer(convertSpecimenContainerComponent(t));
039    return tgt;
040  }
041
042  public static org.hl7.fhir.dstu2.model.Specimen.SpecimenCollectionComponent convertSpecimenCollectionComponent(org.hl7.fhir.dstu3.model.Specimen.SpecimenCollectionComponent src) throws FHIRException {
043    if (src == null)
044      return null;
045    org.hl7.fhir.dstu2.model.Specimen.SpecimenCollectionComponent tgt = new org.hl7.fhir.dstu2.model.Specimen.SpecimenCollectionComponent();
046    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
047    if (src.hasCollector())
048      tgt.setCollector(Reference10_30.convertReference(src.getCollector()));
049    if (src.hasCollected())
050      tgt.setCollected(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getCollected()));
051    if (src.hasQuantity())
052      tgt.setQuantity(SimpleQuantity10_30.convertSimpleQuantity(src.getQuantity()));
053    if (src.hasMethod())
054      tgt.setMethod(CodeableConcept10_30.convertCodeableConcept(src.getMethod()));
055    if (src.hasBodySite())
056      tgt.setBodySite(CodeableConcept10_30.convertCodeableConcept(src.getBodySite()));
057    return tgt;
058  }
059
060  public static org.hl7.fhir.dstu2.model.Specimen.SpecimenContainerComponent convertSpecimenContainerComponent(org.hl7.fhir.dstu3.model.Specimen.SpecimenContainerComponent src) throws FHIRException {
061    if (src == null)
062      return null;
063    org.hl7.fhir.dstu2.model.Specimen.SpecimenContainerComponent tgt = new org.hl7.fhir.dstu2.model.Specimen.SpecimenContainerComponent();
064    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
065    for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier())
066      tgt.addIdentifier(Identifier10_30.convertIdentifier(t));
067    if (src.hasDescription())
068      tgt.setDescriptionElement(String10_30.convertString(src.getDescriptionElement()));
069    if (src.hasType())
070      tgt.setType(CodeableConcept10_30.convertCodeableConcept(src.getType()));
071    if (src.hasCapacity())
072      tgt.setCapacity(SimpleQuantity10_30.convertSimpleQuantity(src.getCapacity()));
073    if (src.hasSpecimenQuantity())
074      tgt.setSpecimenQuantity(SimpleQuantity10_30.convertSimpleQuantity(src.getSpecimenQuantity()));
075    if (src.hasAdditive())
076      tgt.setAdditive(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getAdditive()));
077    return tgt;
078  }
079
080  public static org.hl7.fhir.dstu2.model.Specimen.SpecimenTreatmentComponent convertSpecimenProcessingComponent(org.hl7.fhir.dstu3.model.Specimen.SpecimenProcessingComponent src) throws FHIRException {
081    if (src == null)
082      return null;
083    org.hl7.fhir.dstu2.model.Specimen.SpecimenTreatmentComponent tgt = new org.hl7.fhir.dstu2.model.Specimen.SpecimenTreatmentComponent();
084    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
085    if (src.hasDescription())
086      tgt.setDescriptionElement(String10_30.convertString(src.getDescriptionElement()));
087    if (src.hasProcedure())
088      tgt.setProcedure(CodeableConcept10_30.convertCodeableConcept(src.getProcedure()));
089    for (org.hl7.fhir.dstu3.model.Reference t : src.getAdditive()) tgt.addAdditive(Reference10_30.convertReference(t));
090    return tgt;
091  }
092
093  static public org.hl7.fhir.dstu2.model.Specimen.SpecimenStatus convertSpecimenStatus(Specimen.SpecimenStatus status) {
094    if (status == null) {
095      return null;
096    }
097    switch (status) {
098      case AVAILABLE:
099        return org.hl7.fhir.dstu2.model.Specimen.SpecimenStatus.AVAILABLE;
100      case UNAVAILABLE:
101        return org.hl7.fhir.dstu2.model.Specimen.SpecimenStatus.UNAVAILABLE;
102      case ENTEREDINERROR:
103        return org.hl7.fhir.dstu2.model.Specimen.SpecimenStatus.ENTEREDINERROR;
104      case UNSATISFACTORY:
105        return org.hl7.fhir.dstu2.model.Specimen.SpecimenStatus.UNSATISFACTORY;
106      case NULL:
107        return org.hl7.fhir.dstu2.model.Specimen.SpecimenStatus.NULL;
108      default:
109        return org.hl7.fhir.dstu2.model.Specimen.SpecimenStatus.NULL;
110    }
111  }
112}