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