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