
001package org.hl7.fhir.convertors.conv14_50.resources14_50; 002 003import org.hl7.fhir.convertors.VersionConvertorConstants; 004import org.hl7.fhir.convertors.context.ConversionContext14_50; 005import org.hl7.fhir.convertors.conv14_50.datatypes14_50.Reference14_50; 006import org.hl7.fhir.convertors.conv14_50.datatypes14_50.complextypes14_50.CodeableConcept14_50; 007import org.hl7.fhir.convertors.conv14_50.datatypes14_50.complextypes14_50.ContactPoint14_50; 008import org.hl7.fhir.convertors.conv14_50.datatypes14_50.primitivetypes14_50.Boolean14_50; 009import org.hl7.fhir.convertors.conv14_50.datatypes14_50.primitivetypes14_50.Code14_50; 010import org.hl7.fhir.convertors.conv14_50.datatypes14_50.primitivetypes14_50.DateTime14_50; 011import org.hl7.fhir.convertors.conv14_50.datatypes14_50.primitivetypes14_50.Integer14_50; 012import org.hl7.fhir.convertors.conv14_50.datatypes14_50.primitivetypes14_50.String14_50; 013import org.hl7.fhir.convertors.conv14_50.datatypes14_50.primitivetypes14_50.Uri14_50; 014import org.hl7.fhir.dstu2016may.model.OperationDefinition; 015import org.hl7.fhir.exceptions.FHIRException; 016import org.hl7.fhir.r5.model.DataType; 017import org.hl7.fhir.r5.model.Enumeration; 018import org.hl7.fhir.r5.model.Enumerations; 019import org.hl7.fhir.r5.model.Enumerations.VersionIndependentResourceTypesAll; 020import org.hl7.fhir.r5.model.Enumerations.VersionIndependentResourceTypesAllEnumFactory; 021 022public class OperationDefinition14_50 { 023 024 public static org.hl7.fhir.dstu2016may.model.OperationDefinition convertOperationDefinition(org.hl7.fhir.r5.model.OperationDefinition src) throws FHIRException { 025 if (src == null || src.isEmpty()) 026 return null; 027 org.hl7.fhir.dstu2016may.model.OperationDefinition tgt = new org.hl7.fhir.dstu2016may.model.OperationDefinition(); 028 ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyDomainResource(src, tgt); 029 if (src.hasUrl()) 030 tgt.setUrlElement(Uri14_50.convertUri(src.getUrlElement())); 031 if (src.hasVersion()) 032 tgt.setVersionElement(String14_50.convertString(src.getVersionElement())); 033 if (src.hasNameElement()) 034 tgt.setNameElement(String14_50.convertString(src.getNameElement())); 035 if (src.hasStatus()) 036 tgt.setStatusElement(Enumerations14_50.convertConformanceResourceStatus(src.getStatusElement())); 037 if (src.hasKind()) 038 tgt.setKindElement(convertOperationKind(src.getKindElement())); 039 if (src.hasExperimental()) 040 tgt.setExperimentalElement(Boolean14_50.convertBoolean(src.getExperimentalElement())); 041 if (src.hasDate()) 042 tgt.setDateElement(DateTime14_50.convertDateTime(src.getDateElement())); 043 if (src.hasPublisher()) 044 tgt.setPublisherElement(String14_50.convertString(src.getPublisherElement())); 045 for (org.hl7.fhir.r5.model.ContactDetail t : src.getContact()) 046 tgt.addContact(convertOperationDefinitionContactComponent(t)); 047 if (src.hasDescription()) 048 tgt.setDescription(src.getDescription()); 049 for (org.hl7.fhir.r5.model.UsageContext t : src.getUseContext()) 050 if (t.hasValueCodeableConcept()) 051 tgt.addUseContext(CodeableConcept14_50.convertCodeableConcept(t.getValueCodeableConcept())); 052 for (org.hl7.fhir.r5.model.CodeableConcept t : src.getJurisdiction()) 053 tgt.addUseContext(CodeableConcept14_50.convertCodeableConcept(t)); 054 if (src.hasPurpose()) 055 tgt.setRequirements(src.getPurpose()); 056 if (src.hasAffectsState()) 057 tgt.setIdempotent(!src.getAffectsState()); 058 if (src.hasCodeElement()) 059 tgt.setCodeElement(Code14_50.convertCode(src.getCodeElement())); 060 if (src.hasComment()) 061 tgt.setComment(src.getComment()); 062 if (src.hasBaseElement()) 063 tgt.setBase(Reference14_50.convertCanonicalToReference(src.getBaseElement())); 064 if (src.hasSystemElement()) 065 tgt.setSystemElement(Boolean14_50.convertBoolean(src.getSystemElement())); 066 if (src.getType()) 067 for (Enumeration<VersionIndependentResourceTypesAll> t : src.getResource()) tgt.addType(t.getCode()); 068 if (src.hasInstanceElement()) 069 tgt.setInstanceElement(Boolean14_50.convertBoolean(src.getInstanceElement())); 070 for (org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterComponent t : src.getParameter()) 071 tgt.addParameter(convertOperationDefinitionParameterComponent(t)); 072 return tgt; 073 } 074 075 public static org.hl7.fhir.r5.model.OperationDefinition convertOperationDefinition(org.hl7.fhir.dstu2016may.model.OperationDefinition src) throws FHIRException { 076 if (src == null || src.isEmpty()) 077 return null; 078 org.hl7.fhir.r5.model.OperationDefinition tgt = new org.hl7.fhir.r5.model.OperationDefinition(); 079 ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyDomainResource(src, tgt); 080 if (src.hasUrl()) 081 tgt.setUrlElement(Uri14_50.convertUri(src.getUrlElement())); 082 if (src.hasVersion()) 083 tgt.setVersionElement(String14_50.convertString(src.getVersionElement())); 084 if (src.hasNameElement()) 085 tgt.setNameElement(String14_50.convertString(src.getNameElement())); 086 if (src.hasStatus()) 087 tgt.setStatusElement(Enumerations14_50.convertConformanceResourceStatus(src.getStatusElement())); 088 if (src.hasKind()) 089 tgt.setKindElement(convertOperationKind(src.getKindElement())); 090 if (src.hasExperimental()) 091 tgt.setExperimentalElement(Boolean14_50.convertBoolean(src.getExperimentalElement())); 092 if (src.hasDate()) 093 tgt.setDateElement(DateTime14_50.convertDateTime(src.getDateElement())); 094 if (src.hasPublisher()) 095 tgt.setPublisherElement(String14_50.convertString(src.getPublisherElement())); 096 for (org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionContactComponent t : src.getContact()) 097 tgt.addContact(convertOperationDefinitionContactComponent(t)); 098 if (src.hasDescription()) 099 tgt.setDescription(src.getDescription()); 100 for (org.hl7.fhir.dstu2016may.model.CodeableConcept t : src.getUseContext()) 101 if (CodeableConcept14_50.isJurisdiction(t)) 102 tgt.addJurisdiction(CodeableConcept14_50.convertCodeableConcept(t)); 103 else 104 tgt.addUseContext(CodeableConcept14_50.convertCodeableConceptToUsageContext(t)); 105 if (src.hasRequirements()) 106 tgt.setPurpose(src.getRequirements()); 107 if (src.hasIdempotent()) 108 tgt.setAffectsState(!src.getIdempotent()); 109 if (src.hasCodeElement()) 110 tgt.setCodeElement(Code14_50.convertCode(src.getCodeElement())); 111 if (src.hasComment()) 112 tgt.setComment(src.getComment()); 113 if (src.hasBase()) 114 tgt.setBaseElement(Reference14_50.convertReferenceToCanonical(src.getBase())); 115 if (src.hasSystemElement()) 116 tgt.setSystemElement(Boolean14_50.convertBoolean(src.getSystemElement())); 117 for (org.hl7.fhir.dstu2016may.model.CodeType t : src.getType()) tgt.getResource().add(new Enumeration<VersionIndependentResourceTypesAll>(new VersionIndependentResourceTypesAllEnumFactory(), Code14_50.convertCode(t))); 118 tgt.setType(tgt.hasResource()); 119 if (src.hasInstanceElement()) 120 tgt.setInstanceElement(Boolean14_50.convertBoolean(src.getInstanceElement())); 121 for (org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionParameterComponent t : src.getParameter()) 122 tgt.addParameter(convertOperationDefinitionParameterComponent(t)); 123 return tgt; 124 } 125 126 public static org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionContactComponent convertOperationDefinitionContactComponent(org.hl7.fhir.r5.model.ContactDetail src) throws FHIRException { 127 if (src == null || src.isEmpty()) 128 return null; 129 org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionContactComponent tgt = new org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionContactComponent(); 130 ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyElement(src, tgt); 131 if (src.hasName()) 132 tgt.setNameElement(String14_50.convertString(src.getNameElement())); 133 for (org.hl7.fhir.r5.model.ContactPoint t : src.getTelecom()) 134 tgt.addTelecom(ContactPoint14_50.convertContactPoint(t)); 135 return tgt; 136 } 137 138 public static org.hl7.fhir.r5.model.ContactDetail convertOperationDefinitionContactComponent(org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionContactComponent src) throws FHIRException { 139 if (src == null || src.isEmpty()) 140 return null; 141 org.hl7.fhir.r5.model.ContactDetail tgt = new org.hl7.fhir.r5.model.ContactDetail(); 142 ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyElement(src, tgt); 143 if (src.hasName()) 144 tgt.setNameElement(String14_50.convertString(src.getNameElement())); 145 for (org.hl7.fhir.dstu2016may.model.ContactPoint t : src.getTelecom()) 146 tgt.addTelecom(ContactPoint14_50.convertContactPoint(t)); 147 return tgt; 148 } 149 150 public static org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterBindingComponent convertOperationDefinitionParameterBindingComponent(org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionParameterBindingComponent src) throws FHIRException { 151 if (src == null || src.isEmpty()) 152 return null; 153 org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterBindingComponent tgt = new org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterBindingComponent(); 154 ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyBackboneElement(src,tgt); 155 if (src.hasStrength()) 156 tgt.setStrengthElement(Enumerations14_50.convertBindingStrength(src.getStrengthElement())); 157 DataType t = ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().convertType(src.getValueSet()); 158 if (t != null) { 159 if (t instanceof org.hl7.fhir.r5.model.Reference) 160 tgt.setValueSet(((org.hl7.fhir.r5.model.Reference) t).getReference()); 161 else 162 tgt.setValueSet(t.primitiveValue()); 163 tgt.setValueSet(VersionConvertorConstants.refToVS(tgt.getValueSet())); 164 } 165 return tgt; 166 } 167 168 public static org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionParameterBindingComponent convertOperationDefinitionParameterBindingComponent(org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterBindingComponent src) throws FHIRException { 169 if (src == null || src.isEmpty()) 170 return null; 171 org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionParameterBindingComponent tgt = new org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionParameterBindingComponent(); 172 ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyBackboneElement(src,tgt); 173 if (src.hasStrength()) 174 tgt.setStrengthElement(Enumerations14_50.convertBindingStrength(src.getStrengthElement())); 175 if (src.hasValueSet()) { 176 String vsr = VersionConvertorConstants.vsToRef(src.getValueSet()); 177 if (vsr != null) 178 tgt.setValueSet(new org.hl7.fhir.dstu2016may.model.UriType(vsr)); 179 else 180 tgt.setValueSet(new org.hl7.fhir.dstu2016may.model.Reference(src.getValueSet())); 181 } 182 return tgt; 183 } 184 185 public static org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionParameterComponent convertOperationDefinitionParameterComponent(org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterComponent src) throws FHIRException { 186 if (src == null || src.isEmpty()) 187 return null; 188 org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionParameterComponent tgt = new org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionParameterComponent(); 189 ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyBackboneElement(src,tgt); 190 if (src.hasNameElement()) 191 tgt.setNameElement(Code14_50.convertCode(src.getNameElement())); 192 if (src.hasUse()) 193 tgt.setUseElement(convertOperationParameterUse(src.getUseElement())); 194 if (src.hasMinElement()) 195 tgt.setMinElement(Integer14_50.convertInteger(src.getMinElement())); 196 if (src.hasMaxElement()) 197 tgt.setMaxElement(String14_50.convertString(src.getMaxElement())); 198 if (src.hasDocumentation()) 199 tgt.setDocumentationElement(String14_50.convertString(src.getDocumentationElement())); 200 if (src.hasType()) { 201 tgt.setType(src.getType().toCode()); 202 } 203 if (src.hasSearchType()) 204 tgt.setSearchTypeElement(Enumerations14_50.convertSearchParamType(src.getSearchTypeElement())); 205 for (org.hl7.fhir.r5.model.UriType t : src.getTargetProfile()) 206 tgt.setProfile(new org.hl7.fhir.dstu2016may.model.Reference(t.getValue())); 207 if (src.hasBinding()) 208 tgt.setBinding(convertOperationDefinitionParameterBindingComponent(src.getBinding())); 209 for (org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterComponent t : src.getPart()) 210 tgt.addPart(convertOperationDefinitionParameterComponent(t)); 211 return tgt; 212 } 213 214 public static org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterComponent convertOperationDefinitionParameterComponent(org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionParameterComponent src) throws FHIRException { 215 if (src == null || src.isEmpty()) 216 return null; 217 org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterComponent tgt = new org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterComponent(); 218 ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyBackboneElement(src,tgt); 219 if (src.hasNameElement()) 220 tgt.setNameElement(Code14_50.convertCode(src.getNameElement())); 221 if (src.hasUse()) 222 tgt.setUseElement(convertOperationParameterUse(src.getUseElement())); 223 if (src.hasMinElement()) 224 tgt.setMinElement(Integer14_50.convertInteger(src.getMinElement())); 225 if (src.hasMaxElement()) 226 tgt.setMaxElement(String14_50.convertString(src.getMaxElement())); 227 if (src.hasDocumentation()) 228 tgt.setDocumentationElement(String14_50.convertStringToMarkdown(src.getDocumentationElement())); 229 if (src.hasType()) 230 tgt.setType(Enumerations.FHIRTypes.fromCode(fixTypeCode(src.getType()))); 231 if (src.hasSearchType()) 232 tgt.setSearchTypeElement(Enumerations14_50.convertSearchParamType(src.getSearchTypeElement())); 233 tgt.addTargetProfile(src.getProfile().getReference()); 234 if (src.hasBinding()) 235 tgt.setBinding(convertOperationDefinitionParameterBindingComponent(src.getBinding())); 236 for (org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationDefinitionParameterComponent t : src.getPart()) 237 tgt.addPart(convertOperationDefinitionParameterComponent(t)); 238 return tgt; 239 } 240 241 private static String fixTypeCode(String type) { 242 if ("Type".equals(type)) { 243 return "DataType"; 244 } else { 245 return type; 246 } 247 } 248 249 static public org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationKind> convertOperationKind(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.OperationDefinition.OperationKind> src) throws FHIRException { 250 if (src == null || src.isEmpty()) 251 return null; 252 org.hl7.fhir.dstu2016may.model.Enumeration<OperationDefinition.OperationKind> tgt = new org.hl7.fhir.dstu2016may.model.Enumeration<>(new OperationDefinition.OperationKindEnumFactory()); 253 ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyElement(src, tgt); 254 if (src.getValue() == null) { 255 tgt.setValue(null); 256 } else { 257 switch (src.getValue()) { 258 case OPERATION: 259 tgt.setValue(OperationDefinition.OperationKind.OPERATION); 260 break; 261 case QUERY: 262 tgt.setValue(OperationDefinition.OperationKind.QUERY); 263 break; 264 default: 265 tgt.setValue(OperationDefinition.OperationKind.NULL); 266 break; 267 } 268 } 269 return tgt; 270 } 271 272 static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.OperationDefinition.OperationKind> convertOperationKind(org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationKind> src) throws FHIRException { 273 if (src == null || src.isEmpty()) 274 return null; 275 Enumeration<org.hl7.fhir.r5.model.OperationDefinition.OperationKind> tgt = new Enumeration<>(new org.hl7.fhir.r5.model.OperationDefinition.OperationKindEnumFactory()); 276 ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyElement(src, tgt); 277 if (src.getValue() == null) { 278 tgt.setValue(null); 279 } else { 280 switch (src.getValue()) { 281 case OPERATION: 282 tgt.setValue(org.hl7.fhir.r5.model.OperationDefinition.OperationKind.OPERATION); 283 break; 284 case QUERY: 285 tgt.setValue(org.hl7.fhir.r5.model.OperationDefinition.OperationKind.QUERY); 286 break; 287 default: 288 tgt.setValue(org.hl7.fhir.r5.model.OperationDefinition.OperationKind.NULL); 289 break; 290 } 291 } 292 return tgt; 293 } 294 295 static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.OperationParameterUse> convertOperationParameterUse(org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationParameterUse> src) throws FHIRException { 296 if (src == null || src.isEmpty()) 297 return null; 298 Enumeration<Enumerations.OperationParameterUse> tgt = new Enumeration<>(new Enumerations.OperationParameterUseEnumFactory()); 299 ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyElement(src, tgt); 300 if (src.getValue() == null) { 301 tgt.setValue(null); 302 } else { 303 switch (src.getValue()) { 304 case IN: 305 tgt.setValue(Enumerations.OperationParameterUse.IN); 306 break; 307 case OUT: 308 tgt.setValue(Enumerations.OperationParameterUse.OUT); 309 break; 310 default: 311 tgt.setValue(Enumerations.OperationParameterUse.NULL); 312 break; 313 } 314 } 315 return tgt; 316 } 317 318 static public org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.OperationDefinition.OperationParameterUse> convertOperationParameterUse(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.OperationParameterUse> src) throws FHIRException { 319 if (src == null || src.isEmpty()) 320 return null; 321 org.hl7.fhir.dstu2016may.model.Enumeration<OperationDefinition.OperationParameterUse> tgt = new org.hl7.fhir.dstu2016may.model.Enumeration<>(new OperationDefinition.OperationParameterUseEnumFactory()); 322 ConversionContext14_50.INSTANCE.getVersionConvertor_14_50().copyElement(src, tgt); 323 if (src.getValue() == null) { 324 tgt.setValue(null); 325 } else { 326 switch (src.getValue()) { 327 case IN: 328 tgt.setValue(OperationDefinition.OperationParameterUse.IN); 329 break; 330 case OUT: 331 tgt.setValue(OperationDefinition.OperationParameterUse.OUT); 332 break; 333 default: 334 tgt.setValue(OperationDefinition.OperationParameterUse.NULL); 335 break; 336 } 337 } 338 return tgt; 339 } 340}