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