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