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.Enumeration;
009import org.hl7.fhir.dstu3.model.ProcedureRequest;
010import org.hl7.fhir.exceptions.FHIRException;
011
012public class ProcedureRequest10_30 {
013
014  public static org.hl7.fhir.dstu3.model.ProcedureRequest convertProcedureRequest(org.hl7.fhir.dstu2.model.ProcedureRequest src) throws FHIRException {
015    if (src == null || src.isEmpty())
016      return null;
017    org.hl7.fhir.dstu3.model.ProcedureRequest tgt = new org.hl7.fhir.dstu3.model.ProcedureRequest();
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.hasSubject())
022      tgt.setSubject(Reference10_30.convertReference(src.getSubject()));
023    if (src.hasCode())
024      tgt.setCode(CodeableConcept10_30.convertCodeableConcept(src.getCode()));
025    for (org.hl7.fhir.dstu2.model.CodeableConcept t : src.getBodySite())
026      tgt.addBodySite(CodeableConcept10_30.convertCodeableConcept(t));
027    if (src.hasReasonCodeableConcept())
028      tgt.addReasonCode(CodeableConcept10_30.convertCodeableConcept(src.getReasonCodeableConcept()));
029    if (src.hasScheduled())
030      tgt.setOccurrence(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getScheduled()));
031    if (src.hasEncounter())
032      tgt.setContext(Reference10_30.convertReference(src.getEncounter()));
033    if (src.hasPerformer())
034      tgt.setPerformer(Reference10_30.convertReference(src.getPerformer()));
035    if (src.hasStatus())
036      tgt.setStatusElement(convertProcedureRequestStatus(src.getStatusElement()));
037    if (src.hasAsNeeded())
038      tgt.setAsNeeded(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getAsNeeded()));
039    if (src.hasOrderedOnElement())
040      tgt.setAuthoredOnElement(DateTime10_30.convertDateTime(src.getOrderedOnElement()));
041    if (src.hasPriority())
042      tgt.setPriorityElement(convertProcedureRequestPriority(src.getPriorityElement()));
043    return tgt;
044  }
045
046  public static org.hl7.fhir.dstu2.model.ProcedureRequest convertProcedureRequest(org.hl7.fhir.dstu3.model.ProcedureRequest src) throws FHIRException {
047    if (src == null || src.isEmpty())
048      return null;
049    org.hl7.fhir.dstu2.model.ProcedureRequest tgt = new org.hl7.fhir.dstu2.model.ProcedureRequest();
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.hasSubject())
054      tgt.setSubject(Reference10_30.convertReference(src.getSubject()));
055    if (src.hasCode())
056      tgt.setCode(CodeableConcept10_30.convertCodeableConcept(src.getCode()));
057    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getBodySite())
058      tgt.addBodySite(CodeableConcept10_30.convertCodeableConcept(t));
059    if (src.hasReasonCode())
060      tgt.setReason(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getReasonCodeFirstRep()));
061    if (src.hasOccurrence())
062      tgt.setScheduled(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getOccurrence()));
063    if (src.hasContext())
064      tgt.setEncounter(Reference10_30.convertReference(src.getContext()));
065    if (src.hasPerformer())
066      tgt.setPerformer(Reference10_30.convertReference(src.getPerformer()));
067    if (src.hasStatus())
068      tgt.setStatusElement(convertProcedureRequestStatus(src.getStatusElement()));
069    if (src.hasAsNeeded())
070      tgt.setAsNeeded(ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().convertType(src.getAsNeeded()));
071    if (src.hasAuthoredOnElement())
072      tgt.setOrderedOnElement(DateTime10_30.convertDateTime(src.getAuthoredOnElement()));
073    if (src.hasPriority())
074      tgt.setPriorityElement(convertProcedureRequestPriority(src.getPriorityElement()));
075    return tgt;
076  }
077
078  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ProcedureRequest.ProcedureRequestPriority> convertProcedureRequestPriority(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.ProcedureRequest.ProcedureRequestPriority> src) throws FHIRException {
079      if (src == null || src.isEmpty())
080          return null;
081      Enumeration<ProcedureRequest.ProcedureRequestPriority> tgt = new Enumeration<>(new ProcedureRequest.ProcedureRequestPriorityEnumFactory());
082      ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
083      if (src.getValue() == null) {
084          tgt.setValue(null);
085      } else {
086          switch (src.getValue()) {
087              case ROUTINE:
088                  tgt.setValue(ProcedureRequest.ProcedureRequestPriority.ROUTINE);
089                  break;
090              case URGENT:
091                  tgt.setValue(ProcedureRequest.ProcedureRequestPriority.URGENT);
092                  break;
093              case STAT:
094                  tgt.setValue(ProcedureRequest.ProcedureRequestPriority.STAT);
095                  break;
096              case ASAP:
097                  tgt.setValue(ProcedureRequest.ProcedureRequestPriority.ASAP);
098                  break;
099              default:
100                  tgt.setValue(ProcedureRequest.ProcedureRequestPriority.NULL);
101                  break;
102          }
103      }
104      return tgt;
105  }
106
107  static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.ProcedureRequest.ProcedureRequestPriority> convertProcedureRequestPriority(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ProcedureRequest.ProcedureRequestPriority> src) throws FHIRException {
108      if (src == null || src.isEmpty())
109          return null;
110      org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.ProcedureRequest.ProcedureRequestPriority> tgt = new org.hl7.fhir.dstu2.model.Enumeration<>(new org.hl7.fhir.dstu2.model.ProcedureRequest.ProcedureRequestPriorityEnumFactory());
111      ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
112      if (src.getValue() == null) {
113          tgt.setValue(null);
114      } else {
115          switch (src.getValue()) {
116              case ROUTINE:
117                  tgt.setValue(org.hl7.fhir.dstu2.model.ProcedureRequest.ProcedureRequestPriority.ROUTINE);
118                  break;
119              case URGENT:
120                  tgt.setValue(org.hl7.fhir.dstu2.model.ProcedureRequest.ProcedureRequestPriority.URGENT);
121                  break;
122              case STAT:
123                  tgt.setValue(org.hl7.fhir.dstu2.model.ProcedureRequest.ProcedureRequestPriority.STAT);
124                  break;
125              case ASAP:
126                  tgt.setValue(org.hl7.fhir.dstu2.model.ProcedureRequest.ProcedureRequestPriority.ASAP);
127                  break;
128              default:
129                  tgt.setValue(org.hl7.fhir.dstu2.model.ProcedureRequest.ProcedureRequestPriority.NULL);
130                  break;
131          }
132      }
133      return tgt;
134  }
135
136  static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.ProcedureRequest.ProcedureRequestStatus> convertProcedureRequestStatus(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ProcedureRequest.ProcedureRequestStatus> src) throws FHIRException {
137      if (src == null || src.isEmpty())
138          return null;
139      org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.ProcedureRequest.ProcedureRequestStatus> tgt = new org.hl7.fhir.dstu2.model.Enumeration<>(new org.hl7.fhir.dstu2.model.ProcedureRequest.ProcedureRequestStatusEnumFactory());
140      ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
141      if (src.getValue() == null) {
142          tgt.setValue(null);
143      } else {
144          switch (src.getValue()) {
145              case DRAFT:
146                  tgt.setValue(org.hl7.fhir.dstu2.model.ProcedureRequest.ProcedureRequestStatus.DRAFT);
147                  break;
148              case ACTIVE:
149                  tgt.setValue(org.hl7.fhir.dstu2.model.ProcedureRequest.ProcedureRequestStatus.INPROGRESS);
150                  break;
151              case COMPLETED:
152                  tgt.setValue(org.hl7.fhir.dstu2.model.ProcedureRequest.ProcedureRequestStatus.COMPLETED);
153                  break;
154              case SUSPENDED:
155                  tgt.setValue(org.hl7.fhir.dstu2.model.ProcedureRequest.ProcedureRequestStatus.SUSPENDED);
156                  break;
157              case ENTEREDINERROR:
158                  tgt.setValue(org.hl7.fhir.dstu2.model.ProcedureRequest.ProcedureRequestStatus.ABORTED);
159                  break;
160              default:
161                  tgt.setValue(org.hl7.fhir.dstu2.model.ProcedureRequest.ProcedureRequestStatus.NULL);
162                  break;
163          }
164      }
165      return tgt;
166  }
167
168  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.ProcedureRequest.ProcedureRequestStatus> convertProcedureRequestStatus(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.ProcedureRequest.ProcedureRequestStatus> src) throws FHIRException {
169      if (src == null || src.isEmpty())
170          return null;
171      Enumeration<ProcedureRequest.ProcedureRequestStatus> tgt = new Enumeration<>(new ProcedureRequest.ProcedureRequestStatusEnumFactory());
172      ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
173      if (src.getValue() == null) {
174          tgt.setValue(null);
175      } else {
176          switch (src.getValue()) {
177              case PROPOSED:
178                  tgt.setValue(ProcedureRequest.ProcedureRequestStatus.DRAFT);
179                  break;
180              case DRAFT:
181                  tgt.setValue(ProcedureRequest.ProcedureRequestStatus.DRAFT);
182                  break;
183              case REQUESTED:
184                  tgt.setValue(ProcedureRequest.ProcedureRequestStatus.ACTIVE);
185                  break;
186              case RECEIVED:
187                  tgt.setValue(ProcedureRequest.ProcedureRequestStatus.ACTIVE);
188                  break;
189              case ACCEPTED:
190                  tgt.setValue(ProcedureRequest.ProcedureRequestStatus.ACTIVE);
191                  break;
192              case INPROGRESS:
193                  tgt.setValue(ProcedureRequest.ProcedureRequestStatus.ACTIVE);
194                  break;
195              case COMPLETED:
196                  tgt.setValue(ProcedureRequest.ProcedureRequestStatus.COMPLETED);
197                  break;
198              case SUSPENDED:
199                  tgt.setValue(ProcedureRequest.ProcedureRequestStatus.SUSPENDED);
200                  break;
201              case ABORTED:
202                  tgt.setValue(ProcedureRequest.ProcedureRequestStatus.ENTEREDINERROR);
203                  break;
204              default:
205                  tgt.setValue(ProcedureRequest.ProcedureRequestStatus.NULL);
206                  break;
207          }
208      }
209      return tgt;
210  }
211}