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.primitivetypes10_30.DateTime10_30;
008import org.hl7.fhir.dstu3.model.Communication;
009import org.hl7.fhir.dstu3.model.Enumeration;
010import org.hl7.fhir.exceptions.FHIRException;
011
012public class Communication10_30 {
013
014  public static org.hl7.fhir.dstu3.model.Communication convertCommunication(org.hl7.fhir.dstu2.model.Communication src) throws FHIRException {
015    if (src == null || src.isEmpty())
016      return null;
017    org.hl7.fhir.dstu3.model.Communication tgt = new org.hl7.fhir.dstu3.model.Communication();
018    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt);
019    for (org.hl7.fhir.dstu2.model.Identifier t : src.getIdentifier())
020      tgt.addIdentifier(Identifier10_30.convertIdentifier(t));
021    if (src.hasCategory())
022      tgt.addCategory(CodeableConcept10_30.convertCodeableConcept(src.getCategory()));
023    if (src.hasSender())
024      tgt.setSender(Reference10_30.convertReference(src.getSender()));
025    for (org.hl7.fhir.dstu2.model.Reference t : src.getRecipient())
026      tgt.addRecipient(Reference10_30.convertReference(t));
027    for (org.hl7.fhir.dstu2.model.Communication.CommunicationPayloadComponent t : src.getPayload())
028      tgt.addPayload(convertCommunicationPayloadComponent(t));
029    for (org.hl7.fhir.dstu2.model.CodeableConcept t : src.getMedium())
030      tgt.addMedium(CodeableConcept10_30.convertCodeableConcept(t));
031    if (src.hasStatus())
032      tgt.setStatusElement(convertCommunicationStatus(src.getStatusElement()));
033    if (src.hasEncounter())
034      tgt.setContext(Reference10_30.convertReference(src.getEncounter()));
035    if (src.hasSentElement())
036      tgt.setSentElement(DateTime10_30.convertDateTime(src.getSentElement()));
037    if (src.hasReceivedElement())
038      tgt.setReceivedElement(DateTime10_30.convertDateTime(src.getReceivedElement()));
039    for (org.hl7.fhir.dstu2.model.CodeableConcept t : src.getReason())
040      tgt.addReasonCode(CodeableConcept10_30.convertCodeableConcept(t));
041    if (src.hasSubject())
042      tgt.setSubject(Reference10_30.convertReference(src.getSubject()));
043    return tgt;
044  }
045
046  public static org.hl7.fhir.dstu2.model.Communication convertCommunication(org.hl7.fhir.dstu3.model.Communication src) throws FHIRException {
047    if (src == null || src.isEmpty())
048      return null;
049    org.hl7.fhir.dstu2.model.Communication tgt = new org.hl7.fhir.dstu2.model.Communication();
050    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt);
051    for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier())
052      tgt.addIdentifier(Identifier10_30.convertIdentifier(t));
053    if (src.hasCategory())
054      tgt.setCategory(CodeableConcept10_30.convertCodeableConcept(src.getCategoryFirstRep()));
055    if (src.hasSender())
056      tgt.setSender(Reference10_30.convertReference(src.getSender()));
057    for (org.hl7.fhir.dstu3.model.Reference t : src.getRecipient())
058      tgt.addRecipient(Reference10_30.convertReference(t));
059    for (org.hl7.fhir.dstu3.model.Communication.CommunicationPayloadComponent t : src.getPayload())
060      tgt.addPayload(convertCommunicationPayloadComponent(t));
061    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getMedium())
062      tgt.addMedium(CodeableConcept10_30.convertCodeableConcept(t));
063    if (src.hasStatus())
064      tgt.setStatusElement(convertCommunicationStatus(src.getStatusElement()));
065    if (src.hasContext())
066      tgt.setEncounter(Reference10_30.convertReference(src.getContext()));
067    if (src.hasSentElement())
068      tgt.setSentElement(DateTime10_30.convertDateTime(src.getSentElement()));
069    if (src.hasReceivedElement())
070      tgt.setReceivedElement(DateTime10_30.convertDateTime(src.getReceivedElement()));
071    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getReasonCode())
072      tgt.addReason(CodeableConcept10_30.convertCodeableConcept(t));
073    if (src.hasSubject())
074      tgt.setSubject(Reference10_30.convertReference(src.getSubject()));
075    return tgt;
076  }
077
078  public static org.hl7.fhir.dstu2.model.Communication.CommunicationPayloadComponent convertCommunicationPayloadComponent(org.hl7.fhir.dstu3.model.Communication.CommunicationPayloadComponent src) throws FHIRException {
079    if (src == null || src.isEmpty())
080      return null;
081    org.hl7.fhir.dstu2.model.Communication.CommunicationPayloadComponent tgt = new org.hl7.fhir.dstu2.model.Communication.CommunicationPayloadComponent();
082    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
083    if (src.hasContent())
084      tgt.setContent(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getContent()));
085    return tgt;
086  }
087
088  public static org.hl7.fhir.dstu3.model.Communication.CommunicationPayloadComponent convertCommunicationPayloadComponent(org.hl7.fhir.dstu2.model.Communication.CommunicationPayloadComponent src) throws FHIRException {
089    if (src == null || src.isEmpty())
090      return null;
091    org.hl7.fhir.dstu3.model.Communication.CommunicationPayloadComponent tgt = new org.hl7.fhir.dstu3.model.Communication.CommunicationPayloadComponent();
092    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
093    if (src.hasContent())
094      tgt.setContent(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getContent()));
095    return tgt;
096  }
097
098  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Communication.CommunicationStatus> convertCommunicationStatus(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Communication.CommunicationStatus> src) throws FHIRException {
099      if (src == null || src.isEmpty())
100          return null;
101      Enumeration<Communication.CommunicationStatus> tgt = new Enumeration<>(new Communication.CommunicationStatusEnumFactory());
102      ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
103      if (src.getValue() == null) {
104          tgt.setValue(null);
105      } else {
106          switch (src.getValue()) {
107              case INPROGRESS:
108                  tgt.setValue(Communication.CommunicationStatus.INPROGRESS);
109                  break;
110              case COMPLETED:
111                  tgt.setValue(Communication.CommunicationStatus.COMPLETED);
112                  break;
113              case SUSPENDED:
114                  tgt.setValue(Communication.CommunicationStatus.SUSPENDED);
115                  break;
116              case REJECTED:
117                  tgt.setValue(Communication.CommunicationStatus.ENTEREDINERROR);
118                  break;
119              case FAILED:
120                  tgt.setValue(Communication.CommunicationStatus.ABORTED);
121                  break;
122              default:
123                  tgt.setValue(Communication.CommunicationStatus.NULL);
124                  break;
125          }
126      }
127      return tgt;
128  }
129
130  static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Communication.CommunicationStatus> convertCommunicationStatus(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Communication.CommunicationStatus> src) throws FHIRException {
131      if (src == null || src.isEmpty())
132          return null;
133      org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Communication.CommunicationStatus> tgt = new org.hl7.fhir.dstu2.model.Enumeration<>(new org.hl7.fhir.dstu2.model.Communication.CommunicationStatusEnumFactory());
134      ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
135      if (src.getValue() == null) {
136          tgt.setValue(null);
137      } else {
138          switch (src.getValue()) {
139              case INPROGRESS:
140                  tgt.setValue(org.hl7.fhir.dstu2.model.Communication.CommunicationStatus.INPROGRESS);
141                  break;
142              case COMPLETED:
143                  tgt.setValue(org.hl7.fhir.dstu2.model.Communication.CommunicationStatus.COMPLETED);
144                  break;
145              case SUSPENDED:
146                  tgt.setValue(org.hl7.fhir.dstu2.model.Communication.CommunicationStatus.SUSPENDED);
147                  break;
148              case ENTEREDINERROR:
149                  tgt.setValue(org.hl7.fhir.dstu2.model.Communication.CommunicationStatus.REJECTED);
150                  break;
151              case ABORTED:
152                  tgt.setValue(org.hl7.fhir.dstu2.model.Communication.CommunicationStatus.FAILED);
153                  break;
154              default:
155                  tgt.setValue(org.hl7.fhir.dstu2.model.Communication.CommunicationStatus.NULL);
156                  break;
157          }
158      }
159      return tgt;
160  }
161}