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