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