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