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.Annotation30_40;
006import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.CodeableConcept30_40;
007import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Identifier30_40;
008import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.DateTime30_40;
009import org.hl7.fhir.dstu3.model.Communication;
010import org.hl7.fhir.dstu3.model.Enumeration;
011import org.hl7.fhir.exceptions.FHIRException;
012
013public class Communication30_40 {
014
015  public static org.hl7.fhir.dstu3.model.Communication convertCommunication(org.hl7.fhir.r4.model.Communication src) throws FHIRException {
016    if (src == null)
017      return null;
018    org.hl7.fhir.dstu3.model.Communication tgt = new org.hl7.fhir.dstu3.model.Communication();
019    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt);
020    for (org.hl7.fhir.r4.model.Identifier t : src.getIdentifier())
021      tgt.addIdentifier(Identifier30_40.convertIdentifier(t));
022    for (org.hl7.fhir.r4.model.UriType t : src.getInstantiatesCanonical())
023      tgt.addDefinition(new org.hl7.fhir.dstu3.model.Reference(t.getValue()));
024    for (org.hl7.fhir.r4.model.Reference t : src.getBasedOn()) tgt.addBasedOn(Reference30_40.convertReference(t));
025    for (org.hl7.fhir.r4.model.Reference t : src.getPartOf()) tgt.addPartOf(Reference30_40.convertReference(t));
026    if (src.hasStatus())
027      if (src.getStatus() == org.hl7.fhir.r4.model.Communication.CommunicationStatus.NOTDONE)
028        tgt.setNotDone(true);
029      else
030        tgt.setStatusElement(convertCommunicationStatus(src.getStatusElement()));
031    if (src.hasStatusReason())
032      tgt.setNotDoneReason(CodeableConcept30_40.convertCodeableConcept(src.getStatusReason()));
033    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getCategory())
034      tgt.addCategory(CodeableConcept30_40.convertCodeableConcept(t));
035    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getMedium())
036      tgt.addMedium(CodeableConcept30_40.convertCodeableConcept(t));
037    if (src.hasSubject())
038      tgt.setSubject(Reference30_40.convertReference(src.getSubject()));
039    for (org.hl7.fhir.r4.model.Reference t : src.getRecipient()) tgt.addRecipient(Reference30_40.convertReference(t));
040    if (src.hasEncounter())
041      tgt.setContext(Reference30_40.convertReference(src.getEncounter()));
042    if (src.hasSent())
043      tgt.setSentElement(DateTime30_40.convertDateTime(src.getSentElement()));
044    if (src.hasReceived())
045      tgt.setReceivedElement(DateTime30_40.convertDateTime(src.getReceivedElement()));
046    if (src.hasSender())
047      tgt.setSender(Reference30_40.convertReference(src.getSender()));
048    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getReasonCode())
049      tgt.addReasonCode(CodeableConcept30_40.convertCodeableConcept(t));
050    for (org.hl7.fhir.r4.model.Reference t : src.getReasonReference())
051      tgt.addReasonReference(Reference30_40.convertReference(t));
052    for (org.hl7.fhir.r4.model.Communication.CommunicationPayloadComponent t : src.getPayload())
053      tgt.addPayload(convertCommunicationPayloadComponent(t));
054    for (org.hl7.fhir.r4.model.Annotation t : src.getNote()) tgt.addNote(Annotation30_40.convertAnnotation(t));
055    return tgt;
056  }
057
058  public static org.hl7.fhir.r4.model.Communication convertCommunication(org.hl7.fhir.dstu3.model.Communication src) throws FHIRException {
059    if (src == null)
060      return null;
061    org.hl7.fhir.r4.model.Communication tgt = new org.hl7.fhir.r4.model.Communication();
062    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt);
063    for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier())
064      tgt.addIdentifier(Identifier30_40.convertIdentifier(t));
065    for (org.hl7.fhir.dstu3.model.Reference t : src.getDefinition()) tgt.addInstantiatesCanonical(t.getReference());
066    for (org.hl7.fhir.dstu3.model.Reference t : src.getBasedOn()) tgt.addBasedOn(Reference30_40.convertReference(t));
067    for (org.hl7.fhir.dstu3.model.Reference t : src.getPartOf()) tgt.addPartOf(Reference30_40.convertReference(t));
068    if (src.hasNotDone())
069      tgt.setStatus(org.hl7.fhir.r4.model.Communication.CommunicationStatus.NOTDONE);
070    else if (src.hasStatus())
071      tgt.setStatusElement(convertCommunicationStatus(src.getStatusElement()));
072    if (src.hasNotDoneReason())
073      tgt.setStatusReason(CodeableConcept30_40.convertCodeableConcept(src.getNotDoneReason()));
074    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getCategory())
075      tgt.addCategory(CodeableConcept30_40.convertCodeableConcept(t));
076    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getMedium())
077      tgt.addMedium(CodeableConcept30_40.convertCodeableConcept(t));
078    if (src.hasSubject())
079      tgt.setSubject(Reference30_40.convertReference(src.getSubject()));
080    for (org.hl7.fhir.dstu3.model.Reference t : src.getRecipient())
081      tgt.addRecipient(Reference30_40.convertReference(t));
082    if (src.hasContext())
083      tgt.setEncounter(Reference30_40.convertReference(src.getContext()));
084    if (src.hasSent())
085      tgt.setSentElement(DateTime30_40.convertDateTime(src.getSentElement()));
086    if (src.hasReceived())
087      tgt.setReceivedElement(DateTime30_40.convertDateTime(src.getReceivedElement()));
088    if (src.hasSender())
089      tgt.setSender(Reference30_40.convertReference(src.getSender()));
090    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getReasonCode())
091      tgt.addReasonCode(CodeableConcept30_40.convertCodeableConcept(t));
092    for (org.hl7.fhir.dstu3.model.Reference t : src.getReasonReference())
093      tgt.addReasonReference(Reference30_40.convertReference(t));
094    for (org.hl7.fhir.dstu3.model.Communication.CommunicationPayloadComponent t : src.getPayload())
095      tgt.addPayload(convertCommunicationPayloadComponent(t));
096    for (org.hl7.fhir.dstu3.model.Annotation t : src.getNote()) tgt.addNote(Annotation30_40.convertAnnotation(t));
097    return tgt;
098  }
099
100  public static org.hl7.fhir.dstu3.model.Communication.CommunicationPayloadComponent convertCommunicationPayloadComponent(org.hl7.fhir.r4.model.Communication.CommunicationPayloadComponent src) throws FHIRException {
101    if (src == null)
102      return null;
103    org.hl7.fhir.dstu3.model.Communication.CommunicationPayloadComponent tgt = new org.hl7.fhir.dstu3.model.Communication.CommunicationPayloadComponent();
104    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
105    if (src.hasContent())
106      tgt.setContent(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getContent()));
107    return tgt;
108  }
109
110  public static org.hl7.fhir.r4.model.Communication.CommunicationPayloadComponent convertCommunicationPayloadComponent(org.hl7.fhir.dstu3.model.Communication.CommunicationPayloadComponent src) throws FHIRException {
111    if (src == null)
112      return null;
113    org.hl7.fhir.r4.model.Communication.CommunicationPayloadComponent tgt = new org.hl7.fhir.r4.model.Communication.CommunicationPayloadComponent();
114    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
115    if (src.hasContent())
116      tgt.setContent(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getContent()));
117    return tgt;
118  }
119
120  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Communication.CommunicationStatus> convertCommunicationStatus(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Communication.CommunicationStatus> src) throws FHIRException {
121      if (src == null || src.isEmpty())
122          return null;
123      Enumeration<Communication.CommunicationStatus> tgt = new Enumeration<>(new Communication.CommunicationStatusEnumFactory());
124      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
125      if (src.getValue() == null) {
126          tgt.setValue(null);
127      } else {
128          switch (src.getValue()) {
129              case PREPARATION:
130                  tgt.setValue(Communication.CommunicationStatus.PREPARATION);
131                  break;
132              case INPROGRESS:
133                  tgt.setValue(Communication.CommunicationStatus.INPROGRESS);
134                  break;
135              case ONHOLD:
136                  tgt.setValue(Communication.CommunicationStatus.SUSPENDED);
137                  break;
138              case STOPPED:
139                  tgt.setValue(Communication.CommunicationStatus.ABORTED);
140                  break;
141              case COMPLETED:
142                  tgt.setValue(Communication.CommunicationStatus.COMPLETED);
143                  break;
144              case ENTEREDINERROR:
145                  tgt.setValue(Communication.CommunicationStatus.ENTEREDINERROR);
146                  break;
147              case UNKNOWN:
148                  tgt.setValue(Communication.CommunicationStatus.UNKNOWN);
149                  break;
150              default:
151                  tgt.setValue(Communication.CommunicationStatus.NULL);
152                  break;
153          }
154      }
155      return tgt;
156  }
157
158  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Communication.CommunicationStatus> convertCommunicationStatus(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Communication.CommunicationStatus> src) throws FHIRException {
159      if (src == null || src.isEmpty())
160          return null;
161      org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Communication.CommunicationStatus> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.Communication.CommunicationStatusEnumFactory());
162      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
163      if (src.getValue() == null) {
164          tgt.setValue(null);
165      } else {
166          switch (src.getValue()) {
167              case PREPARATION:
168                  tgt.setValue(org.hl7.fhir.r4.model.Communication.CommunicationStatus.PREPARATION);
169                  break;
170              case INPROGRESS:
171                  tgt.setValue(org.hl7.fhir.r4.model.Communication.CommunicationStatus.INPROGRESS);
172                  break;
173              case SUSPENDED:
174                  tgt.setValue(org.hl7.fhir.r4.model.Communication.CommunicationStatus.ONHOLD);
175                  break;
176              case ABORTED:
177                  tgt.setValue(org.hl7.fhir.r4.model.Communication.CommunicationStatus.STOPPED);
178                  break;
179              case COMPLETED:
180                  tgt.setValue(org.hl7.fhir.r4.model.Communication.CommunicationStatus.COMPLETED);
181                  break;
182              case ENTEREDINERROR:
183                  tgt.setValue(org.hl7.fhir.r4.model.Communication.CommunicationStatus.ENTEREDINERROR);
184                  break;
185              case UNKNOWN:
186                  tgt.setValue(org.hl7.fhir.r4.model.Communication.CommunicationStatus.UNKNOWN);
187                  break;
188              default:
189                  tgt.setValue(org.hl7.fhir.r4.model.Communication.CommunicationStatus.NULL);
190                  break;
191          }
192      }
193      return tgt;
194  }
195}