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