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