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