001package org.hl7.fhir.convertors.conv30_50.resources30_50; 002 003import java.util.List; 004 005import org.hl7.fhir.convertors.context.ConversionContext30_50; 006import org.hl7.fhir.convertors.conv30_50.datatypes30_50.Reference30_50; 007import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.CodeableConcept30_50; 008import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.Coding30_50; 009import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.Identifier30_50; 010import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.DateTime30_50; 011import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.String30_50; 012import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.UnsignedInt30_50; 013import org.hl7.fhir.dstu3.model.Reference; 014import org.hl7.fhir.exceptions.FHIRException; 015import org.hl7.fhir.r5.model.CodeableConcept; 016import org.hl7.fhir.r5.model.CodeableReference; 017import org.hl7.fhir.r5.model.Coding; 018 019public class ImagingStudy30_50 { 020 021 private static final String URN_DICOM_UID = "urn:dicom:uid"; 022 023 private static final String URN_IETF_RFC_3986 = "urn:ietf:rfc:3986"; 024 025 public static org.hl7.fhir.dstu3.model.ImagingStudy convertImagingStudy(org.hl7.fhir.r5.model.ImagingStudy src) throws FHIRException { 026 if (src == null) 027 return null; 028 org.hl7.fhir.dstu3.model.ImagingStudy tgt = new org.hl7.fhir.dstu3.model.ImagingStudy(); 029 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyDomainResource(src, tgt); 030 for (org.hl7.fhir.r5.model.Identifier t : src.getIdentifier()) { 031 if (URN_DICOM_UID.equals(t.getSystem())) { 032 tgt.setUid(t.getValue()); 033 } else { 034 tgt.addIdentifier(Identifier30_50.convertIdentifier(t)); 035 } 036 } 037 if (src.hasStatus()) { 038 org.hl7.fhir.r5.model.ImagingStudy.ImagingStudyStatus s = src.getStatus(); 039 switch (s) { 040 case REGISTERED: 041 tgt.setAvailability(org.hl7.fhir.dstu3.model.ImagingStudy.InstanceAvailability.OFFLINE); 042 break; 043 case AVAILABLE: 044 tgt.setAvailability(org.hl7.fhir.dstu3.model.ImagingStudy.InstanceAvailability.ONLINE); 045 break; 046 case CANCELLED: 047 tgt.setAvailability(org.hl7.fhir.dstu3.model.ImagingStudy.InstanceAvailability.UNAVAILABLE); 048 break; 049 default: 050 break; 051 } 052 } 053 for (CodeableConcept t : src.getModality()) { 054 for (Coding tt : t.getCoding()) 055 tgt.addModalityList(Coding30_50.convertCoding(tt)); 056 } 057 if (src.hasSubject()) { 058 if (src.hasSubject()) 059 tgt.setPatient(Reference30_50.convertReference(src.getSubject())); 060 } 061 if (src.hasEncounter()) { 062 if (src.hasEncounter()) 063 tgt.setContext(Reference30_50.convertReference(src.getEncounter())); 064 } 065 if (src.hasStarted()) { 066 if (src.hasStartedElement()) 067 tgt.setStartedElement(DateTime30_50.convertDateTime(src.getStartedElement())); 068 } 069 for (org.hl7.fhir.r5.model.Reference t : src.getBasedOn()) { 070 tgt.addBasedOn(Reference30_50.convertReference(t)); 071 } 072 if (src.hasReferrer()) { 073 if (src.hasReferrer()) 074 tgt.setReferrer(Reference30_50.convertReference(src.getReferrer())); 075 } 076// for (org.hl7.fhir.r5.model.Reference t : src.getInterpreter()) { 077// tgt.addInterpreter(Reference30_50.convertReference(t)); 078// } 079 for (org.hl7.fhir.r5.model.Reference t : src.getEndpoint()) { 080 tgt.addEndpoint(Reference30_50.convertReference(t)); 081 } 082 if (src.hasNumberOfSeries()) { 083 if (src.hasNumberOfSeriesElement()) 084 tgt.setNumberOfSeriesElement(UnsignedInt30_50.convertUnsignedInt(src.getNumberOfSeriesElement())); 085 } 086 if (src.hasNumberOfInstances()) { 087 if (src.hasNumberOfInstancesElement()) 088 tgt.setNumberOfInstancesElement(UnsignedInt30_50.convertUnsignedInt(src.getNumberOfInstancesElement())); 089 } 090 for (CodeableReference t : src.getProcedure()) { 091 if (t.hasReference()) { 092 tgt.addProcedureReference(Reference30_50.convertReference(t.getReference())); 093 } else { 094 tgt.addProcedureCode(CodeableConcept30_50.convertCodeableConcept(t.getConcept())); 095 } 096 } 097 List<CodeableReference> reasonCodes = src.getReason(); 098 if (reasonCodes.size() > 0) { 099 tgt.setReason(CodeableConcept30_50.convertCodeableConcept(reasonCodes.get(0).getConcept())); 100 if (reasonCodes.size() > 1) { 101 } 102 } 103 if (src.hasDescription()) { 104 if (src.hasDescriptionElement()) 105 tgt.setDescriptionElement(String30_50.convertString(src.getDescriptionElement())); 106 } 107 for (org.hl7.fhir.r5.model.ImagingStudy.ImagingStudySeriesComponent t : src.getSeries()) { 108 tgt.addSeries(convertImagingStudySeriesComponent(t)); 109 } 110 return tgt; 111 } 112 113 public static org.hl7.fhir.r5.model.ImagingStudy convertImagingStudy(org.hl7.fhir.dstu3.model.ImagingStudy src) throws FHIRException { 114 if (src == null) 115 return null; 116 org.hl7.fhir.r5.model.ImagingStudy tgt = new org.hl7.fhir.r5.model.ImagingStudy(); 117 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyDomainResource(src, tgt); 118 if (src.hasUid()) { 119 org.hl7.fhir.r5.model.Identifier i = new org.hl7.fhir.r5.model.Identifier(); 120 i.setSystem(URN_DICOM_UID); 121 i.setValue(src.getUid()); 122 tgt.addIdentifier(i); 123 } 124 for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier()) { 125 tgt.addIdentifier(Identifier30_50.convertIdentifier(t)); 126 } 127 if (src.hasAccession()) 128 tgt.addIdentifier(Identifier30_50.convertIdentifier(src.getAccession())); 129 if (src.hasAvailability()) { 130 org.hl7.fhir.dstu3.model.ImagingStudy.InstanceAvailability availability = src.getAvailability(); 131 switch (availability) { 132 case OFFLINE: 133 tgt.setStatus(org.hl7.fhir.r5.model.ImagingStudy.ImagingStudyStatus.REGISTERED); 134 break; 135 case UNAVAILABLE: 136 tgt.setStatus(org.hl7.fhir.r5.model.ImagingStudy.ImagingStudyStatus.CANCELLED); 137 break; 138 case ONLINE: 139 case NEARLINE: 140 tgt.setStatus(org.hl7.fhir.r5.model.ImagingStudy.ImagingStudyStatus.AVAILABLE); 141 break; 142 default: 143 break; 144 } 145 } else { 146 tgt.setStatus(org.hl7.fhir.r5.model.ImagingStudy.ImagingStudyStatus.UNKNOWN); 147 } 148 for (org.hl7.fhir.dstu3.model.Coding t : src.getModalityList()) { 149 tgt.addModality(new CodeableConcept().addCoding(Coding30_50.convertCoding(t))); 150 } 151 if (src.hasPatient()) 152 tgt.setSubject(Reference30_50.convertReference(src.getPatient())); 153 if (src.hasContext()) { 154 if (src.hasContext()) 155 tgt.setEncounter(Reference30_50.convertReference(src.getContext())); 156 } 157 if (src.hasStarted()) { 158 if (src.hasStartedElement()) 159 tgt.setStartedElement(DateTime30_50.convertDateTime(src.getStartedElement())); 160 } 161 for (org.hl7.fhir.dstu3.model.Reference t : src.getBasedOn()) { 162 tgt.addBasedOn(Reference30_50.convertReference(t)); 163 } 164 if (src.hasReferrer()) { 165 if (src.hasReferrer()) 166 tgt.setReferrer(Reference30_50.convertReference(src.getReferrer())); 167 } 168// for (org.hl7.fhir.dstu3.model.Reference t : src.getInterpreter()) { 169// tgt.addInterpreter(Reference30_50.convertReference(t)); 170// } 171 for (org.hl7.fhir.dstu3.model.Reference t : src.getEndpoint()) { 172 tgt.addEndpoint(Reference30_50.convertReference(t)); 173 } 174 if (src.hasNumberOfSeries()) { 175 if (src.hasNumberOfSeriesElement()) 176 tgt.setNumberOfSeriesElement(UnsignedInt30_50.convertUnsignedInt(src.getNumberOfSeriesElement())); 177 } 178 if (src.hasNumberOfInstances()) { 179 if (src.hasNumberOfInstancesElement()) 180 tgt.setNumberOfInstancesElement(UnsignedInt30_50.convertUnsignedInt(src.getNumberOfInstancesElement())); 181 } 182 List<Reference> procedureReferences = src.getProcedureReference(); 183 if (procedureReferences.size() > 0) { 184 tgt.addProcedure().setReference(Reference30_50.convertReference(procedureReferences.get(0))); 185 } 186 for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getProcedureCode()) { 187 tgt.addProcedure().setConcept(CodeableConcept30_50.convertCodeableConcept(t)); 188 } 189 if (src.hasReason()) { 190 if (src.hasReason()) 191 tgt.addReason(Reference30_50.convertCodeableConceptToCodableReference(src.getReason())); 192 } 193 if (src.hasDescription()) { 194 if (src.hasDescriptionElement()) 195 tgt.setDescriptionElement(String30_50.convertString(src.getDescriptionElement())); 196 } 197 for (org.hl7.fhir.dstu3.model.ImagingStudy.ImagingStudySeriesComponent t : src.getSeries()) { 198 tgt.addSeries(convertImagingStudySeriesComponent(t)); 199 } 200 return tgt; 201 } 202 203 public static org.hl7.fhir.dstu3.model.ImagingStudy.ImagingStudySeriesComponent convertImagingStudySeriesComponent(org.hl7.fhir.r5.model.ImagingStudy.ImagingStudySeriesComponent src) throws FHIRException { 204 if (src == null) 205 return null; 206 org.hl7.fhir.dstu3.model.ImagingStudy.ImagingStudySeriesComponent tgt = new org.hl7.fhir.dstu3.model.ImagingStudy.ImagingStudySeriesComponent(); 207 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt); 208 if (src.hasUid()) { 209 if (src.hasUid()) 210 tgt.setUid(src.getUid()); 211 } 212 if (src.hasNumber()) { 213 if (src.hasNumberElement()) 214 tgt.setNumberElement(UnsignedInt30_50.convertUnsignedInt(src.getNumberElement())); 215 } 216 if (src.hasModality()) { 217 if (src.hasModality()) 218 tgt.setModality(Coding30_50.convertCoding(src.getModality())); 219 } 220 if (src.hasDescription()) { 221 if (src.hasDescriptionElement()) 222 tgt.setDescriptionElement(String30_50.convertString(src.getDescriptionElement())); 223 } 224 if (src.hasNumberOfInstances()) { 225 if (src.hasNumberOfInstancesElement()) 226 tgt.setNumberOfInstancesElement(UnsignedInt30_50.convertUnsignedInt(src.getNumberOfInstancesElement())); 227 } 228 for (org.hl7.fhir.r5.model.Reference t : src.getEndpoint()) { 229 tgt.addEndpoint(Reference30_50.convertReference(t)); 230 } 231 if (src.getBodySite().hasConcept()) { 232 tgt.setBodySite(Coding30_50.convertCoding(src.getBodySite().getConcept().getCodingFirstRep())); 233 } 234 if (src.hasLaterality()) { 235 if (src.hasLaterality()) 236 tgt.setLaterality(Coding30_50.convertCoding(src.getLaterality())); 237 } 238 if (src.hasStarted()) { 239 if (src.hasStartedElement()) 240 tgt.setStartedElement(DateTime30_50.convertDateTime(src.getStartedElement())); 241 } 242 for (org.hl7.fhir.r5.model.ImagingStudy.ImagingStudySeriesInstanceComponent t : src.getInstance()) { 243 tgt.addInstance(convertImagingStudySeriesInstanceComponent(t)); 244 } 245 return tgt; 246 } 247 248 public static org.hl7.fhir.r5.model.ImagingStudy.ImagingStudySeriesComponent convertImagingStudySeriesComponent(org.hl7.fhir.dstu3.model.ImagingStudy.ImagingStudySeriesComponent src) throws FHIRException { 249 if (src == null) 250 return null; 251 org.hl7.fhir.r5.model.ImagingStudy.ImagingStudySeriesComponent tgt = new org.hl7.fhir.r5.model.ImagingStudy.ImagingStudySeriesComponent(); 252 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt); 253 if (src.hasUid()) { 254 if (src.hasUid()) 255 tgt.setUid(src.getUid()); 256 } 257 if (src.hasNumber()) { 258 if (src.hasNumberElement()) 259 tgt.setNumberElement(UnsignedInt30_50.convertUnsignedInt(src.getNumberElement())); 260 } 261 if (src.hasModality()) { 262 if (src.hasModality()) 263 tgt.setModality(new CodeableConcept().addCoding(Coding30_50.convertCoding(src.getModality()))); 264 } 265 if (src.hasDescription()) { 266 if (src.hasDescriptionElement()) 267 tgt.setDescriptionElement(String30_50.convertString(src.getDescriptionElement())); 268 } 269 if (src.hasNumberOfInstances()) { 270 if (src.hasNumberOfInstancesElement()) 271 tgt.setNumberOfInstancesElement(UnsignedInt30_50.convertUnsignedInt(src.getNumberOfInstancesElement())); 272 } 273 for (org.hl7.fhir.dstu3.model.Reference t : src.getEndpoint()) { 274 tgt.addEndpoint(Reference30_50.convertReference(t)); 275 } 276 if (src.hasBodySite()) { 277 if (src.hasBodySite()) 278 tgt.setBodySite(new CodeableReference(new CodeableConcept(Coding30_50.convertCoding(src.getBodySite())))); 279 } 280 if (src.hasLaterality()) { 281 if (src.hasLaterality()) 282 tgt.setLaterality(new CodeableConcept(Coding30_50.convertCoding(src.getLaterality()))); 283 } 284 if (src.hasStarted()) { 285 if (src.hasStartedElement()) 286 tgt.setStartedElement(DateTime30_50.convertDateTime(src.getStartedElement())); 287 } 288 for (org.hl7.fhir.dstu3.model.ImagingStudy.ImagingStudySeriesInstanceComponent t : src.getInstance()) { 289 tgt.addInstance(convertImagingStudySeriesInstanceComponent(t)); 290 } 291 return tgt; 292 } 293 294 static public org.hl7.fhir.dstu3.model.ImagingStudy.ImagingStudySeriesInstanceComponent convertImagingStudySeriesInstanceComponent(org.hl7.fhir.r5.model.ImagingStudy.ImagingStudySeriesInstanceComponent src) throws FHIRException { 295 if (src == null) 296 return null; 297 org.hl7.fhir.dstu3.model.ImagingStudy.ImagingStudySeriesInstanceComponent tgt = new org.hl7.fhir.dstu3.model.ImagingStudy.ImagingStudySeriesInstanceComponent(); 298 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt); 299 if (src.hasUid()) { 300 if (src.hasUid()) 301 tgt.setUid(src.getUid()); 302 } 303 org.hl7.fhir.r5.model.Coding sop = src.getSopClass(); 304 if (URN_IETF_RFC_3986.equals(sop.getSystem())) { 305 tgt.setSopClass(sop.getCode()); 306 } 307 if (src.hasNumber()) { 308 if (src.hasNumberElement()) 309 tgt.setNumberElement(UnsignedInt30_50.convertUnsignedInt(src.getNumberElement())); 310 } 311 if (src.hasTitle()) { 312 if (src.hasTitleElement()) 313 tgt.setTitleElement(String30_50.convertString(src.getTitleElement())); 314 } 315 return tgt; 316 } 317 318 static public org.hl7.fhir.r5.model.ImagingStudy.ImagingStudySeriesInstanceComponent convertImagingStudySeriesInstanceComponent(org.hl7.fhir.dstu3.model.ImagingStudy.ImagingStudySeriesInstanceComponent src) throws FHIRException { 319 if (src == null) 320 return null; 321 org.hl7.fhir.r5.model.ImagingStudy.ImagingStudySeriesInstanceComponent tgt = new org.hl7.fhir.r5.model.ImagingStudy.ImagingStudySeriesInstanceComponent(); 322 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt); 323 if (src.hasUid()) { 324 if (src.hasUid()) 325 tgt.setUid(src.getUid()); 326 } 327 if (src.hasSopClass()) { 328 org.hl7.fhir.r5.model.Coding c = new org.hl7.fhir.r5.model.Coding(); 329 c.setSystem(URN_IETF_RFC_3986); 330 c.setCode(src.getSopClass()); 331 tgt.setSopClass(c); 332 } 333 if (src.hasNumber()) { 334 if (src.hasNumberElement()) 335 tgt.setNumberElement(UnsignedInt30_50.convertUnsignedInt(src.getNumberElement())); 336 } 337 if (src.hasTitle()) { 338 if (src.hasTitleElement()) 339 tgt.setTitleElement(String30_50.convertString(src.getTitleElement())); 340 } 341 return tgt; 342 } 343}