
001package org.hl7.fhir.convertors.conv10_50.resources10_50; 002 003import org.hl7.fhir.convertors.VersionConvertorConstants; 004import org.hl7.fhir.convertors.context.ConversionContext10_50; 005import org.hl7.fhir.convertors.conv10_50.datatypes10_50.Reference10_50; 006import org.hl7.fhir.convertors.conv10_50.datatypes10_50.complextypes10_50.ContactPoint10_50; 007import org.hl7.fhir.convertors.conv10_50.datatypes10_50.primitivetypes10_50.Boolean10_50; 008import org.hl7.fhir.convertors.conv10_50.datatypes10_50.primitivetypes10_50.Code10_50; 009import org.hl7.fhir.convertors.conv10_50.datatypes10_50.primitivetypes10_50.DateTime10_50; 010import org.hl7.fhir.convertors.conv10_50.datatypes10_50.primitivetypes10_50.Integer10_50; 011import org.hl7.fhir.convertors.conv10_50.datatypes10_50.primitivetypes10_50.String10_50; 012import org.hl7.fhir.convertors.conv10_50.datatypes10_50.primitivetypes10_50.Uri10_50; 013import org.hl7.fhir.dstu2.model.Reference; 014import org.hl7.fhir.exceptions.FHIRException; 015import org.hl7.fhir.r5.model.DataType; 016import org.hl7.fhir.r5.model.Enumeration; 017import org.hl7.fhir.r5.model.Enumerations; 018import org.hl7.fhir.r5.model.Enumerations.SearchParamType; 019import org.hl7.fhir.r5.model.Enumerations.VersionIndependentResourceTypesAll; 020import org.hl7.fhir.r5.model.Enumerations.VersionIndependentResourceTypesAllEnumFactory; 021import org.hl7.fhir.r5.model.OperationDefinition; 022import org.hl7.fhir.utilities.Utilities; 023 024public class OperationDefinition10_50 { 025 026 public static org.hl7.fhir.dstu2.model.OperationDefinition convertOperationDefinition(org.hl7.fhir.r5.model.OperationDefinition src) throws FHIRException { 027 if (src == null || src.isEmpty()) 028 return null; 029 org.hl7.fhir.dstu2.model.OperationDefinition tgt = new org.hl7.fhir.dstu2.model.OperationDefinition(); 030 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyDomainResource(src, tgt); 031 if (src.hasUrlElement()) 032 tgt.setUrlElement(Uri10_50.convertUri(src.getUrlElement())); 033 if (src.hasVersionElement()) 034 tgt.setVersionElement(String10_50.convertString(src.getVersionElement())); 035 if (src.hasNameElement()) 036 tgt.setNameElement(String10_50.convertString(src.getNameElement())); 037 if (src.hasStatus()) 038 tgt.setStatusElement(Enumerations10_50.convertConformanceResourceStatus(src.getStatusElement())); 039 if (src.hasKind()) 040 tgt.setKindElement(convertOperationKind(src.getKindElement())); 041 if (src.hasExperimental()) 042 tgt.setExperimentalElement(Boolean10_50.convertBoolean(src.getExperimentalElement())); 043 if (src.hasDate()) 044 tgt.setDateElement(DateTime10_50.convertDateTime(src.getDateElement())); 045 if (src.hasPublisherElement()) 046 tgt.setPublisherElement(String10_50.convertString(src.getPublisherElement())); 047 for (org.hl7.fhir.r5.model.ContactDetail t : src.getContact()) 048 tgt.addContact(convertOperationDefinitionContactComponent(t)); 049 if (src.hasDescription()) 050 tgt.setDescription(src.getDescription()); 051 if (src.hasPurpose()) 052 tgt.setRequirements(src.getPurpose()); 053 tgt.setIdempotent(!src.getAffectsState()); 054 if (src.hasCodeElement()) 055 tgt.setCodeElement(Code10_50.convertCode(src.getCodeElement())); 056 if (src.hasComment()) 057 tgt.setNotes(src.getComment()); 058 if (src.hasBase()) 059 tgt.setBase(Reference10_50.convertCanonicalToReference(src.getBaseElement())); 060 if (src.hasSystemElement()) 061 tgt.setSystemElement(Boolean10_50.convertBoolean(src.getSystemElement())); 062 if (src.getType()) 063 for (Enumeration<VersionIndependentResourceTypesAll> t : src.getResource()) tgt.addType(t.getCode()); 064 if (src.hasInstanceElement()) 065 tgt.setInstanceElement(Boolean10_50.convertBoolean(src.getInstanceElement())); 066 for (org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterComponent t : src.getParameter()) 067 tgt.addParameter(convertOperationDefinitionParameterComponent(t)); 068 return tgt; 069 } 070 071 public static org.hl7.fhir.r5.model.OperationDefinition convertOperationDefinition(org.hl7.fhir.dstu2.model.OperationDefinition src) throws FHIRException { 072 if (src == null || src.isEmpty()) 073 return null; 074 org.hl7.fhir.r5.model.OperationDefinition tgt = new org.hl7.fhir.r5.model.OperationDefinition(); 075 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyDomainResource(src, tgt); 076 if (src.hasUrlElement()) 077 tgt.setUrlElement(Uri10_50.convertUri(src.getUrlElement())); 078 if (src.hasVersionElement()) 079 tgt.setVersionElement(String10_50.convertString(src.getVersionElement())); 080 if (src.hasNameElement()) 081 tgt.setNameElement(String10_50.convertString(src.getNameElement())); 082 if (src.hasStatus()) 083 tgt.setStatusElement(Enumerations10_50.convertConformanceResourceStatus(src.getStatusElement())); 084 if (src.hasKind()) 085 tgt.setKindElement(convertOperationKind(src.getKindElement())); 086 if (src.hasExperimental()) 087 tgt.setExperimentalElement(Boolean10_50.convertBoolean(src.getExperimentalElement())); 088 if (src.hasDate()) 089 tgt.setDateElement(DateTime10_50.convertDateTime(src.getDateElement())); 090 if (src.hasPublisherElement()) 091 tgt.setPublisherElement(String10_50.convertString(src.getPublisherElement())); 092 for (org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionContactComponent t : src.getContact()) 093 tgt.addContact(convertOperationDefinitionContactComponent(t)); 094 if (src.hasDescription()) 095 tgt.setDescription(src.getDescription()); 096 if (src.hasRequirements()) 097 tgt.setPurpose(src.getRequirements()); 098 if (src.hasIdempotent()) 099 tgt.setAffectsState(!src.getIdempotent()); 100 if (src.hasCodeElement()) 101 tgt.setCodeElement(Code10_50.convertCode(src.getCodeElement())); 102 if (src.hasNotes()) 103 tgt.setComment(src.getNotes()); 104 if (src.hasBase()) 105 tgt.setBaseElement(Reference10_50.convertReferenceToCanonical(src.getBase())); 106 if (src.hasSystemElement()) 107 tgt.setSystemElement(Boolean10_50.convertBoolean(src.getSystemElement())); 108 for (org.hl7.fhir.dstu2.model.CodeType t : src.getType()) tgt.getResource().add(new Enumeration<VersionIndependentResourceTypesAll>(new VersionIndependentResourceTypesAllEnumFactory(), Code10_50.convertCode(t))); 109 tgt.setType(tgt.hasResource()); 110 if (src.hasInstanceElement()) 111 tgt.setInstanceElement(Boolean10_50.convertBoolean(src.getInstanceElement())); 112 for (org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionParameterComponent t : src.getParameter()) 113 tgt.addParameter(convertOperationDefinitionParameterComponent(t)); 114 return tgt; 115 } 116 117 public static org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionContactComponent convertOperationDefinitionContactComponent(org.hl7.fhir.r5.model.ContactDetail src) throws FHIRException { 118 if (src == null || src.isEmpty()) 119 return null; 120 org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionContactComponent tgt = new org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionContactComponent(); 121 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 122 if (src.hasNameElement()) 123 tgt.setNameElement(String10_50.convertString(src.getNameElement())); 124 for (org.hl7.fhir.r5.model.ContactPoint t : src.getTelecom()) 125 tgt.addTelecom(ContactPoint10_50.convertContactPoint(t)); 126 return tgt; 127 } 128 129 public static org.hl7.fhir.r5.model.ContactDetail convertOperationDefinitionContactComponent(org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionContactComponent src) throws FHIRException { 130 if (src == null || src.isEmpty()) 131 return null; 132 org.hl7.fhir.r5.model.ContactDetail tgt = new org.hl7.fhir.r5.model.ContactDetail(); 133 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 134 if (src.hasNameElement()) 135 tgt.setNameElement(String10_50.convertString(src.getNameElement())); 136 for (org.hl7.fhir.dstu2.model.ContactPoint t : src.getTelecom()) 137 tgt.addTelecom(ContactPoint10_50.convertContactPoint(t)); 138 return tgt; 139 } 140 141 public static org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionParameterBindingComponent convertOperationDefinitionParameterBindingComponent(org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterBindingComponent src) throws FHIRException { 142 if (src == null || src.isEmpty()) 143 return null; 144 org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionParameterBindingComponent tgt = new org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionParameterBindingComponent(); 145 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyBackboneElement(src,tgt); 146 if (src.hasStrength()) 147 tgt.setStrengthElement(Enumerations10_50.convertBindingStrength(src.getStrengthElement())); 148 if (src.hasValueSet()) { 149 String vsr = VersionConvertorConstants.vsToRef(src.getValueSet()); 150 if (vsr != null) 151 tgt.setValueSet(new org.hl7.fhir.dstu2.model.UriType(vsr)); 152 else 153 tgt.setValueSet(new org.hl7.fhir.dstu2.model.Reference(src.getValueSet())); 154 } 155 return tgt; 156 } 157 158 public static org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterBindingComponent convertOperationDefinitionParameterBindingComponent(org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionParameterBindingComponent src) throws FHIRException { 159 if (src == null || src.isEmpty()) 160 return null; 161 org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterBindingComponent tgt = new org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterBindingComponent(); 162 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyBackboneElement(src,tgt); 163 if (src.hasStrength()) 164 tgt.setStrengthElement(Enumerations10_50.convertBindingStrength(src.getStrengthElement())); 165 DataType t = ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().convertType(src.getValueSet()); 166 if (t != null) { 167 if (t instanceof org.hl7.fhir.r5.model.Reference) 168 tgt.setValueSet(((org.hl7.fhir.r5.model.Reference) t).getReference()); 169 else 170 tgt.setValueSet(t.primitiveValue()); 171 tgt.setValueSet(VersionConvertorConstants.refToVS(tgt.getValueSet())); 172 } 173 return tgt; 174 } 175 176 public static org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterComponent convertOperationDefinitionParameterComponent(org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionParameterComponent src) throws FHIRException { 177 if (src == null || src.isEmpty()) 178 return null; 179 org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterComponent tgt = new org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterComponent(); 180 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyBackboneElement(src,tgt); 181 if (src.hasNameElement()) 182 tgt.setNameElement(Code10_50.convertCode(src.getNameElement())); 183 if (src.hasUse()) 184 tgt.setUseElement(convertOperationParameterUse(src.getUseElement())); 185 if (src.hasMinElement()) 186 tgt.setMinElement(Integer10_50.convertInteger(src.getMinElement())); 187 if (src.hasMaxElement()) 188 tgt.setMaxElement(String10_50.convertString(src.getMaxElement())); 189 if (src.hasDocumentationElement()) 190 tgt.setDocumentationElement(String10_50.convertStringToMarkdown(src.getDocumentationElement())); 191 if (Utilities.existsInList(src.getType(), "token", "reference", "composite", "number", "date", "quantity", "uri")) { 192 tgt.setType(Enumerations.FHIRTypes.STRING); 193 if (src.hasType()) 194 tgt.setSearchType(SearchParamType.fromCode(src.getType())); 195 } else { 196 if (src.hasType()) 197 tgt.setType(Enumerations.FHIRTypes.fromCode(src.getType())); 198 } 199 tgt.addTargetProfile(src.getProfile().getReference()); 200 if (src.hasBinding()) 201 tgt.setBinding(convertOperationDefinitionParameterBindingComponent(src.getBinding())); 202 for (org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionParameterComponent t : src.getPart()) 203 tgt.addPart(convertOperationDefinitionParameterComponent(t)); 204 return tgt; 205 } 206 207 public static org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionParameterComponent convertOperationDefinitionParameterComponent(org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterComponent src) throws FHIRException { 208 if (src == null || src.isEmpty()) 209 return null; 210 org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionParameterComponent tgt = new org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionParameterComponent(); 211 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyBackboneElement(src,tgt); 212 if (src.hasNameElement()) 213 tgt.setNameElement(Code10_50.convertCode(src.getNameElement())); 214 if (src.hasUse()) 215 tgt.setUseElement(convertOperationParameterUse(src.getUseElement())); 216 if (src.hasMinElement()) 217 tgt.setMinElement(Integer10_50.convertInteger(src.getMinElement())); 218 if (src.hasMaxElement()) 219 tgt.setMaxElement(String10_50.convertString(src.getMaxElement())); 220 if (src.hasDocumentationElement()) 221 tgt.setDocumentationElement(String10_50.convertString(src.getDocumentationElement())); 222 if (src.hasSearchType()) { 223 tgt.setType(src.getSearchType().toCode()); 224 } else 225 tgt.setType(src.getType().toCode()); 226 for (org.hl7.fhir.r5.model.UriType t : src.getTargetProfile()) tgt.setProfile(new Reference(t.getValue())); 227 if (src.hasBinding()) 228 tgt.setBinding(convertOperationDefinitionParameterBindingComponent(src.getBinding())); 229 for (org.hl7.fhir.r5.model.OperationDefinition.OperationDefinitionParameterComponent t : src.getPart()) 230 tgt.addPart(convertOperationDefinitionParameterComponent(t)); 231 return tgt; 232 } 233 234 static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.OperationDefinition.OperationKind> convertOperationKind(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.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 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().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.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.OperationDefinition.OperationKind> convertOperationKind(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.OperationDefinition.OperationKind> src) throws FHIRException { 258 if (src == null || src.isEmpty()) 259 return null; 260 org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.OperationDefinition.OperationKind> tgt = new org.hl7.fhir.dstu2.model.Enumeration<>(new org.hl7.fhir.dstu2.model.OperationDefinition.OperationKindEnumFactory()); 261 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().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.dstu2.model.OperationDefinition.OperationKind.OPERATION); 268 break; 269 case QUERY: 270 tgt.setValue(org.hl7.fhir.dstu2.model.OperationDefinition.OperationKind.QUERY); 271 break; 272 default: 273 tgt.setValue(org.hl7.fhir.dstu2.model.OperationDefinition.OperationKind.NULL); 274 break; 275 } 276 } 277 return tgt; 278 } 279 280 static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.OperationParameterUse> convertOperationParameterUse(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.OperationDefinition.OperationParameterUse> src) throws FHIRException { 281 if (src == null || src.isEmpty()) 282 return null; 283 Enumeration<Enumerations.OperationParameterUse> tgt = new Enumeration<>(new Enumerations.OperationParameterUseEnumFactory()); 284 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 285 if (src.getValue() == null) { 286 tgt.setValue(null); 287 } else { 288 switch (src.getValue()) { 289 case IN: 290 tgt.setValue(Enumerations.OperationParameterUse.IN); 291 break; 292 case OUT: 293 tgt.setValue(Enumerations.OperationParameterUse.OUT); 294 break; 295 default: 296 tgt.setValue(Enumerations.OperationParameterUse.NULL); 297 break; 298 } 299 } 300 return tgt; 301 } 302 303 static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.OperationDefinition.OperationParameterUse> convertOperationParameterUse(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.OperationParameterUse> src) throws FHIRException { 304 if (src == null || src.isEmpty()) 305 return null; 306 org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.OperationDefinition.OperationParameterUse> tgt = new org.hl7.fhir.dstu2.model.Enumeration<>(new org.hl7.fhir.dstu2.model.OperationDefinition.OperationParameterUseEnumFactory()); 307 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 308 if (src.getValue() == null) { 309 tgt.setValue(null); 310 } else { 311 switch (src.getValue()) { 312 case IN: 313 tgt.setValue(org.hl7.fhir.dstu2.model.OperationDefinition.OperationParameterUse.IN); 314 break; 315 case OUT: 316 tgt.setValue(org.hl7.fhir.dstu2.model.OperationDefinition.OperationParameterUse.OUT); 317 break; 318 default: 319 tgt.setValue(org.hl7.fhir.dstu2.model.OperationDefinition.OperationParameterUse.NULL); 320 break; 321 } 322 } 323 return tgt; 324 } 325}