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