
001package org.hl7.fhir.convertors.conv10_50.resources10_50; 002 003import org.hl7.fhir.convertors.context.ConversionContext10_50; 004import org.hl7.fhir.convertors.conv10_50.datatypes10_50.Reference10_50; 005import org.hl7.fhir.convertors.conv10_50.datatypes10_50.complextypes10_50.CodeableConcept10_50; 006import org.hl7.fhir.convertors.conv10_50.datatypes10_50.complextypes10_50.Identifier10_50; 007import org.hl7.fhir.convertors.conv10_50.datatypes10_50.primitivetypes10_50.DateTime10_50; 008import org.hl7.fhir.dstu2.model.CommunicationRequest; 009import org.hl7.fhir.dstu2.model.Enumeration; 010import org.hl7.fhir.exceptions.FHIRException; 011import org.hl7.fhir.r5.model.CodeableReference; 012import org.hl7.fhir.r5.model.Enumerations; 013 014public class CommunicationRequest10_50 { 015 016 public static org.hl7.fhir.dstu2.model.CommunicationRequest convertCommunicationRequest(org.hl7.fhir.r5.model.CommunicationRequest src) throws FHIRException { 017 if (src == null || src.isEmpty()) 018 return null; 019 org.hl7.fhir.dstu2.model.CommunicationRequest tgt = new org.hl7.fhir.dstu2.model.CommunicationRequest(); 020 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyDomainResource(src, tgt); 021 for (org.hl7.fhir.r5.model.Identifier t : src.getIdentifier()) 022 tgt.addIdentifier(Identifier10_50.convertIdentifier(t)); 023 if (src.hasCategory()) 024 tgt.setCategory(CodeableConcept10_50.convertCodeableConcept(src.getCategoryFirstRep())); 025 if (src.hasInformationProvider()) 026 tgt.setSender(Reference10_50.convertReference(src.getInformationProviderFirstRep())); 027 for (org.hl7.fhir.r5.model.Reference t : src.getRecipient()) tgt.addRecipient(Reference10_50.convertReference(t)); 028 for (org.hl7.fhir.r5.model.CommunicationRequest.CommunicationRequestPayloadComponent t : src.getPayload()) 029 tgt.addPayload(convertCommunicationRequestPayloadComponent(t)); 030 for (org.hl7.fhir.r5.model.CodeableConcept t : src.getMedium()) 031 tgt.addMedium(CodeableConcept10_50.convertCodeableConcept(t)); 032 if (src.hasRequester()) 033 tgt.setRequester(Reference10_50.convertReference(src.getRequester())); 034 if (src.hasStatus()) 035 tgt.setStatusElement(convertCommunicationRequestStatus(src.getStatusElement())); 036 if (src.hasEncounter()) 037 tgt.setEncounter(Reference10_50.convertReference(src.getEncounter())); 038 if (src.hasOccurrence()) 039 tgt.setScheduled(ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().convertType(src.getOccurrence())); 040 for (CodeableReference t : src.getReason()) 041 if (t.hasConcept()) 042 tgt.addReason(CodeableConcept10_50.convertCodeableConcept(t.getConcept())); 043 if (src.hasAuthoredOnElement()) 044 tgt.setRequestedOnElement(DateTime10_50.convertDateTime(src.getAuthoredOnElement())); 045 if (src.hasSubject()) 046 tgt.setSubject(Reference10_50.convertReference(src.getSubject())); 047 if (src.hasPriority()) 048 tgt.setPriority(convertPriorityCode(src.getPriority())); 049 return tgt; 050 } 051 052 public static org.hl7.fhir.r5.model.CommunicationRequest convertCommunicationRequest(org.hl7.fhir.dstu2.model.CommunicationRequest src) throws FHIRException { 053 if (src == null || src.isEmpty()) 054 return null; 055 org.hl7.fhir.r5.model.CommunicationRequest tgt = new org.hl7.fhir.r5.model.CommunicationRequest(); 056 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyDomainResource(src, tgt); 057 for (org.hl7.fhir.dstu2.model.Identifier t : src.getIdentifier()) 058 tgt.addIdentifier(Identifier10_50.convertIdentifier(t)); 059 if (src.hasCategory()) 060 tgt.addCategory(CodeableConcept10_50.convertCodeableConcept(src.getCategory())); 061 if (src.hasSender()) 062 tgt.addInformationProvider(Reference10_50.convertReference(src.getSender())); 063 for (org.hl7.fhir.dstu2.model.Reference t : src.getRecipient()) 064 tgt.addRecipient(Reference10_50.convertReference(t)); 065 for (org.hl7.fhir.dstu2.model.CommunicationRequest.CommunicationRequestPayloadComponent t : src.getPayload()) 066 tgt.addPayload(convertCommunicationRequestPayloadComponent(t)); 067 for (org.hl7.fhir.dstu2.model.CodeableConcept t : src.getMedium()) 068 tgt.addMedium(CodeableConcept10_50.convertCodeableConcept(t)); 069 if (src.hasRequester()) 070 tgt.setRequester(Reference10_50.convertReference(src.getRequester())); 071 if (src.hasStatus()) 072 tgt.setStatusElement(convertCommunicationRequestStatus(src.getStatusElement())); 073 if (src.hasEncounter()) 074 tgt.setEncounter(Reference10_50.convertReference(src.getEncounter())); 075 if (src.hasScheduled()) 076 tgt.setOccurrence(ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().convertType(src.getScheduled())); 077 for (org.hl7.fhir.dstu2.model.CodeableConcept t : src.getReason()) 078 tgt.addReason(CodeableConcept10_50.convertCodeableConceptToCodableReference(t)); 079 if (src.hasRequestedOnElement()) 080 tgt.setAuthoredOnElement(DateTime10_50.convertDateTime(src.getRequestedOnElement())); 081 if (src.hasSubject()) 082 tgt.setSubject(Reference10_50.convertReference(src.getSubject())); 083 if (src.hasPriority()) 084 tgt.setPriority(convertPriorityCode(src.getPriority())); 085 return tgt; 086 } 087 088 public static org.hl7.fhir.r5.model.CommunicationRequest.CommunicationRequestPayloadComponent convertCommunicationRequestPayloadComponent(org.hl7.fhir.dstu2.model.CommunicationRequest.CommunicationRequestPayloadComponent src) throws FHIRException { 089 if (src == null || src.isEmpty()) 090 return null; 091 org.hl7.fhir.r5.model.CommunicationRequest.CommunicationRequestPayloadComponent tgt = new org.hl7.fhir.r5.model.CommunicationRequest.CommunicationRequestPayloadComponent(); 092 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyBackboneElement(src,tgt); 093 if (src.hasContent()) 094 tgt.setContent(ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().convertType(src.getContent())); 095 return tgt; 096 } 097 098 public static org.hl7.fhir.dstu2.model.CommunicationRequest.CommunicationRequestPayloadComponent convertCommunicationRequestPayloadComponent(org.hl7.fhir.r5.model.CommunicationRequest.CommunicationRequestPayloadComponent src) throws FHIRException { 099 if (src == null || src.isEmpty()) 100 return null; 101 org.hl7.fhir.dstu2.model.CommunicationRequest.CommunicationRequestPayloadComponent tgt = new org.hl7.fhir.dstu2.model.CommunicationRequest.CommunicationRequestPayloadComponent(); 102 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyBackboneElement(src,tgt); 103 if (src.hasContent()) 104 tgt.setContent(ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().convertType(src.getContent())); 105 return tgt; 106 } 107 108 static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.CommunicationRequest.CommunicationRequestStatus> convertCommunicationRequestStatus(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.RequestStatus> src) throws FHIRException { 109 if (src == null || src.isEmpty()) 110 return null; 111 Enumeration<CommunicationRequest.CommunicationRequestStatus> tgt = new Enumeration<>(new CommunicationRequest.CommunicationRequestStatusEnumFactory()); 112 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 113 if (src.getValue() == null) { 114 tgt.setValue(null); 115 } else { 116 switch (src.getValue()) { 117 case DRAFT: 118 tgt.setValue(CommunicationRequest.CommunicationRequestStatus.PROPOSED); 119 break; 120 case ACTIVE: 121 tgt.setValue(CommunicationRequest.CommunicationRequestStatus.INPROGRESS); 122 break; 123 case COMPLETED: 124 tgt.setValue(CommunicationRequest.CommunicationRequestStatus.COMPLETED); 125 break; 126 case ONHOLD: 127 tgt.setValue(CommunicationRequest.CommunicationRequestStatus.SUSPENDED); 128 break; 129 case ENTEREDINERROR: 130 tgt.setValue(CommunicationRequest.CommunicationRequestStatus.REJECTED); 131 break; 132 default: 133 tgt.setValue(CommunicationRequest.CommunicationRequestStatus.NULL); 134 break; 135 } 136 } 137 return tgt; 138 } 139 140 static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.RequestStatus> convertCommunicationRequestStatus(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.CommunicationRequest.CommunicationRequestStatus> src) throws FHIRException { 141 if (src == null || src.isEmpty()) 142 return null; 143 org.hl7.fhir.r5.model.Enumeration<Enumerations.RequestStatus> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new Enumerations.RequestStatusEnumFactory()); 144 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 145 if (src.getValue() == null) { 146 tgt.setValue(null); 147 } else { 148 switch (src.getValue()) { 149 case PROPOSED: 150 tgt.setValue(Enumerations.RequestStatus.DRAFT); 151 break; 152 case PLANNED: 153 tgt.setValue(Enumerations.RequestStatus.ACTIVE); 154 break; 155 case REQUESTED: 156 tgt.setValue(Enumerations.RequestStatus.ACTIVE); 157 break; 158 case RECEIVED: 159 tgt.setValue(Enumerations.RequestStatus.ACTIVE); 160 break; 161 case ACCEPTED: 162 tgt.setValue(Enumerations.RequestStatus.ACTIVE); 163 break; 164 case INPROGRESS: 165 tgt.setValue(Enumerations.RequestStatus.ACTIVE); 166 break; 167 case COMPLETED: 168 tgt.setValue(Enumerations.RequestStatus.COMPLETED); 169 break; 170 case SUSPENDED: 171 tgt.setValue(Enumerations.RequestStatus.ONHOLD); 172 break; 173 case REJECTED: 174 tgt.setValue(Enumerations.RequestStatus.ENTEREDINERROR); 175 break; 176 default: 177 tgt.setValue(Enumerations.RequestStatus.NULL); 178 break; 179 } 180 } 181 return tgt; 182 } 183 184 static public org.hl7.fhir.r5.model.Enumerations.RequestPriority convertPriorityCode(org.hl7.fhir.dstu2.model.CodeableConcept priority) { 185 for (org.hl7.fhir.dstu2.model.Coding c : priority.getCoding()) { 186 if ("http://hl7.org/fhir/diagnostic-order-priority".equals(c.getSystem()) && "routine".equals(c.getCode())) 187 return org.hl7.fhir.r5.model.Enumerations.RequestPriority.ROUTINE; 188 if ("http://hl7.org/fhir/diagnostic-order-priority".equals(c.getSystem()) && "urgent".equals(c.getCode())) 189 return org.hl7.fhir.r5.model.Enumerations.RequestPriority.URGENT; 190 if ("http://hl7.org/fhir/diagnostic-order-priority".equals(c.getSystem()) && "stat".equals(c.getCode())) 191 return org.hl7.fhir.r5.model.Enumerations.RequestPriority.STAT; 192 if ("http://hl7.org/fhir/diagnostic-order-priority".equals(c.getSystem()) && "asap".equals(c.getCode())) 193 return org.hl7.fhir.r5.model.Enumerations.RequestPriority.ASAP; 194 } 195 return null; 196 } 197 198 static public org.hl7.fhir.dstu2.model.CodeableConcept convertPriorityCode(org.hl7.fhir.r5.model.Enumerations.RequestPriority priority) { 199 org.hl7.fhir.dstu2.model.CodeableConcept cc = new org.hl7.fhir.dstu2.model.CodeableConcept(); 200 switch (priority) { 201 case ROUTINE: 202 cc.addCoding().setSystem("http://hl7.org/fhir/diagnostic-order-priority").setCode("routine"); 203 break; 204 case URGENT: 205 cc.addCoding().setSystem("http://hl7.org/fhir/diagnostic-order-priority").setCode("urgent"); 206 break; 207 case STAT: 208 cc.addCoding().setSystem("http://hl7.org/fhir/diagnostic-order-priority").setCode("stat"); 209 break; 210 case ASAP: 211 cc.addCoding().setSystem("http://hl7.org/fhir/diagnostic-order-priority").setCode("asap"); 212 break; 213 default: 214 return null; 215 } 216 return cc; 217 } 218}