001package org.hl7.fhir.convertors.conv40_50.datatypes40_50.special40_50; 002 003import org.hl7.fhir.convertors.context.ConversionContext40_50; 004import org.hl7.fhir.convertors.conv40_50.datatypes40_50.BackboneElement40_50; 005import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Coding40_50; 006import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.*; 007import org.hl7.fhir.convertors.conv40_50.resources40_50.Enumerations40_50; 008import org.hl7.fhir.exceptions.FHIRException; 009 010import java.util.stream.Collectors; 011 012public class ElementDefinition40_50 { 013 public static org.hl7.fhir.r5.model.ElementDefinition convertElementDefinition(org.hl7.fhir.r4.model.ElementDefinition src) throws FHIRException { 014 if (src == null) return null; 015 org.hl7.fhir.r5.model.ElementDefinition tgt = new org.hl7.fhir.r5.model.ElementDefinition(); 016 BackboneElement40_50.copyBackboneElement(src, tgt); 017 if (src.hasPath()) tgt.setPathElement(String40_50.convertString(src.getPathElement())); 018 tgt.setRepresentation(src.getRepresentation().stream().map(ElementDefinition40_50::convertPropertyRepresentation).collect(Collectors.toList())); 019 if (src.hasSliceName()) tgt.setSliceNameElement(String40_50.convertString(src.getSliceNameElement())); 020 if (src.hasSliceIsConstraining()) 021 tgt.setSliceIsConstrainingElement(Boolean40_50.convertBoolean(src.getSliceIsConstrainingElement())); 022 if (src.hasLabel()) tgt.setLabelElement(String40_50.convertString(src.getLabelElement())); 023 for (org.hl7.fhir.r4.model.Coding t : src.getCode()) tgt.addCode(Coding40_50.convertCoding(t)); 024 if (src.hasSlicing()) tgt.setSlicing(convertElementDefinitionSlicingComponent(src.getSlicing())); 025 if (src.hasShort()) tgt.setShortElement(String40_50.convertString(src.getShortElement())); 026 if (src.hasDefinition()) tgt.setDefinitionElement(MarkDown40_50.convertMarkdown(src.getDefinitionElement())); 027 if (src.hasComment()) tgt.setCommentElement(MarkDown40_50.convertMarkdown(src.getCommentElement())); 028 if (src.hasRequirements()) tgt.setRequirementsElement(MarkDown40_50.convertMarkdown(src.getRequirementsElement())); 029 for (org.hl7.fhir.r4.model.StringType t : src.getAlias()) tgt.getAlias().add(String40_50.convertString(t)); 030 if (src.hasMin()) tgt.setMinElement(UnsignedInt40_50.convertUnsignedInt(src.getMinElement())); 031 if (src.hasMax()) tgt.setMaxElement(String40_50.convertString(src.getMaxElement())); 032 if (src.hasBase()) tgt.setBase(convertElementDefinitionBaseComponent(src.getBase())); 033 if (src.hasContentReference()) 034 tgt.setContentReferenceElement(Uri40_50.convertUri(src.getContentReferenceElement())); 035 for (org.hl7.fhir.r4.model.ElementDefinition.TypeRefComponent t : src.getType()) 036 tgt.addType(convertTypeRefComponent(t)); 037 if (src.hasDefaultValue()) 038 tgt.setDefaultValue(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getDefaultValue())); 039 if (src.hasMeaningWhenMissing()) 040 tgt.setMeaningWhenMissingElement(MarkDown40_50.convertMarkdown(src.getMeaningWhenMissingElement())); 041 if (src.hasOrderMeaning()) tgt.setOrderMeaningElement(String40_50.convertString(src.getOrderMeaningElement())); 042 if (src.hasFixed()) 043 tgt.setFixed(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getFixed())); 044 if (src.hasPattern()) 045 tgt.setPattern(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getPattern())); 046 for (org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionExampleComponent t : src.getExample()) 047 tgt.addExample(convertElementDefinitionExampleComponent(t)); 048 if (src.hasMinValue()) 049 tgt.setMinValue(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getMinValue())); 050 if (src.hasMaxValue()) 051 tgt.setMaxValue(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getMaxValue())); 052 if (src.hasMaxLength()) tgt.setMaxLengthElement(Integer40_50.convertInteger(src.getMaxLengthElement())); 053 for (org.hl7.fhir.r4.model.IdType t : src.getCondition()) tgt.getCondition().add(Id40_50.convertId(t)); 054 for (org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionConstraintComponent t : src.getConstraint()) 055 tgt.addConstraint(convertElementDefinitionConstraintComponent(t)); 056 if (src.hasMustSupport()) tgt.setMustSupportElement(Boolean40_50.convertBoolean(src.getMustSupportElement())); 057 if (src.hasIsModifier()) tgt.setIsModifierElement(Boolean40_50.convertBoolean(src.getIsModifierElement())); 058 if (src.hasIsModifierReason()) 059 tgt.setIsModifierReasonElement(String40_50.convertString(src.getIsModifierReasonElement())); 060 if (src.hasIsSummary()) tgt.setIsSummaryElement(Boolean40_50.convertBoolean(src.getIsSummaryElement())); 061 if (src.hasBinding()) tgt.setBinding(convertElementDefinitionBindingComponent(src.getBinding())); 062 for (org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionMappingComponent t : src.getMapping()) 063 tgt.addMapping(convertElementDefinitionMappingComponent(t)); 064 return tgt; 065 } 066 067 public static org.hl7.fhir.r4.model.ElementDefinition convertElementDefinition(org.hl7.fhir.r5.model.ElementDefinition src) throws FHIRException { 068 if (src == null) return null; 069 org.hl7.fhir.r4.model.ElementDefinition tgt = new org.hl7.fhir.r4.model.ElementDefinition(); 070 BackboneElement40_50.copyBackboneElement(src, tgt); 071 if (src.hasPath()) tgt.setPathElement(String40_50.convertString(src.getPathElement())); 072 tgt.setRepresentation(src.getRepresentation().stream().map(ElementDefinition40_50::convertPropertyRepresentation).collect(Collectors.toList())); 073 if (src.hasSliceName()) tgt.setSliceNameElement(String40_50.convertString(src.getSliceNameElement())); 074 if (src.hasSliceIsConstraining()) 075 tgt.setSliceIsConstrainingElement(Boolean40_50.convertBoolean(src.getSliceIsConstrainingElement())); 076 if (src.hasLabel()) tgt.setLabelElement(String40_50.convertString(src.getLabelElement())); 077 for (org.hl7.fhir.r5.model.Coding t : src.getCode()) tgt.addCode(Coding40_50.convertCoding(t)); 078 if (src.hasSlicing()) tgt.setSlicing(convertElementDefinitionSlicingComponent(src.getSlicing())); 079 if (src.hasShort()) tgt.setShortElement(String40_50.convertString(src.getShortElement())); 080 if (src.hasDefinition()) tgt.setDefinitionElement(MarkDown40_50.convertMarkdown(src.getDefinitionElement())); 081 if (src.hasComment()) tgt.setCommentElement(MarkDown40_50.convertMarkdown(src.getCommentElement())); 082 if (src.hasRequirements()) tgt.setRequirementsElement(MarkDown40_50.convertMarkdown(src.getRequirementsElement())); 083 for (org.hl7.fhir.r5.model.StringType t : src.getAlias()) tgt.getAlias().add(String40_50.convertString(t)); 084 if (src.hasMin()) tgt.setMinElement(UnsignedInt40_50.convertUnsignedInt(src.getMinElement())); 085 if (src.hasMax()) tgt.setMaxElement(String40_50.convertString(src.getMaxElement())); 086 if (src.hasBase()) tgt.setBase(convertElementDefinitionBaseComponent(src.getBase())); 087 if (src.hasContentReference()) 088 tgt.setContentReferenceElement(Uri40_50.convertUri(src.getContentReferenceElement())); 089 for (org.hl7.fhir.r5.model.ElementDefinition.TypeRefComponent t : src.getType()) 090 tgt.addType(convertTypeRefComponent(t)); 091 if (src.hasDefaultValue()) 092 tgt.setDefaultValue(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getDefaultValue())); 093 if (src.hasMeaningWhenMissing()) 094 tgt.setMeaningWhenMissingElement(MarkDown40_50.convertMarkdown(src.getMeaningWhenMissingElement())); 095 if (src.hasOrderMeaning()) tgt.setOrderMeaningElement(String40_50.convertString(src.getOrderMeaningElement())); 096 if (src.hasFixed()) 097 tgt.setFixed(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getFixed())); 098 if (src.hasPattern()) 099 tgt.setPattern(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getPattern())); 100 for (org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionExampleComponent t : src.getExample()) 101 tgt.addExample(convertElementDefinitionExampleComponent(t)); 102 if (src.hasMinValue()) 103 tgt.setMinValue(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getMinValue())); 104 if (src.hasMaxValue()) 105 tgt.setMaxValue(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getMaxValue())); 106 if (src.hasMaxLength()) tgt.setMaxLengthElement(Integer40_50.convertInteger(src.getMaxLengthElement())); 107 for (org.hl7.fhir.r5.model.IdType t : src.getCondition()) tgt.getCondition().add(Id40_50.convertId(t)); 108 for (org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionConstraintComponent t : src.getConstraint()) 109 tgt.addConstraint(convertElementDefinitionConstraintComponent(t)); 110 if (src.hasMustSupport()) tgt.setMustSupportElement(Boolean40_50.convertBoolean(src.getMustSupportElement())); 111 if (src.hasIsModifier()) tgt.setIsModifierElement(Boolean40_50.convertBoolean(src.getIsModifierElement())); 112 if (src.hasIsModifierReason()) 113 tgt.setIsModifierReasonElement(String40_50.convertString(src.getIsModifierReasonElement())); 114 if (src.hasIsSummary()) tgt.setIsSummaryElement(Boolean40_50.convertBoolean(src.getIsSummaryElement())); 115 if (src.hasBinding()) tgt.setBinding(convertElementDefinitionBindingComponent(src.getBinding())); 116 for (org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionMappingComponent t : src.getMapping()) 117 tgt.addMapping(convertElementDefinitionMappingComponent(t)); 118 return tgt; 119 } 120 121 static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ElementDefinition.PropertyRepresentation> convertPropertyRepresentation(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ElementDefinition.PropertyRepresentation> src) throws FHIRException { 122 if (src == null || src.isEmpty()) return null; 123 org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ElementDefinition.PropertyRepresentation> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.ElementDefinition.PropertyRepresentationEnumFactory()); 124 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 125 if (src.getValue() == null) { 126 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.PropertyRepresentation.NULL); 127 } else { 128 switch (src.getValue()) { 129 case XMLATTR: 130 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.PropertyRepresentation.XMLATTR); 131 break; 132 case XMLTEXT: 133 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.PropertyRepresentation.XMLTEXT); 134 break; 135 case TYPEATTR: 136 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.PropertyRepresentation.TYPEATTR); 137 break; 138 case CDATEXT: 139 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.PropertyRepresentation.CDATEXT); 140 break; 141 case XHTML: 142 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.PropertyRepresentation.XHTML); 143 break; 144 default: 145 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.PropertyRepresentation.NULL); 146 break; 147 } 148 } 149 return tgt; 150 } 151 152 static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ElementDefinition.PropertyRepresentation> convertPropertyRepresentation(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ElementDefinition.PropertyRepresentation> src) throws FHIRException { 153 if (src == null || src.isEmpty()) return null; 154 org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ElementDefinition.PropertyRepresentation> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.ElementDefinition.PropertyRepresentationEnumFactory()); 155 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 156 if (src.getValue() == null) { 157 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.PropertyRepresentation.NULL); 158 } else { 159 switch (src.getValue()) { 160 case XMLATTR: 161 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.PropertyRepresentation.XMLATTR); 162 break; 163 case XMLTEXT: 164 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.PropertyRepresentation.XMLTEXT); 165 break; 166 case TYPEATTR: 167 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.PropertyRepresentation.TYPEATTR); 168 break; 169 case CDATEXT: 170 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.PropertyRepresentation.CDATEXT); 171 break; 172 case XHTML: 173 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.PropertyRepresentation.XHTML); 174 break; 175 default: 176 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.PropertyRepresentation.NULL); 177 break; 178 } 179 } 180 return tgt; 181 } 182 183 public static org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionSlicingComponent convertElementDefinitionSlicingComponent(org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionSlicingComponent src) throws FHIRException { 184 if (src == null) return null; 185 org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionSlicingComponent tgt = new org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionSlicingComponent(); 186 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 187 for (org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionSlicingDiscriminatorComponent t : src.getDiscriminator()) 188 tgt.addDiscriminator(convertElementDefinitionSlicingDiscriminatorComponent(t)); 189 if (src.hasDescription()) tgt.setDescriptionElement(String40_50.convertString(src.getDescriptionElement())); 190 if (src.hasOrdered()) tgt.setOrderedElement(Boolean40_50.convertBoolean(src.getOrderedElement())); 191 if (src.hasRules()) tgt.setRulesElement(convertSlicingRules(src.getRulesElement())); 192 return tgt; 193 } 194 195 public static org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionSlicingComponent convertElementDefinitionSlicingComponent(org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionSlicingComponent src) throws FHIRException { 196 if (src == null) return null; 197 org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionSlicingComponent tgt = new org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionSlicingComponent(); 198 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 199 for (org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionSlicingDiscriminatorComponent t : src.getDiscriminator()) 200 tgt.addDiscriminator(convertElementDefinitionSlicingDiscriminatorComponent(t)); 201 if (src.hasDescription()) tgt.setDescriptionElement(String40_50.convertString(src.getDescriptionElement())); 202 if (src.hasOrdered()) tgt.setOrderedElement(Boolean40_50.convertBoolean(src.getOrderedElement())); 203 if (src.hasRules()) tgt.setRulesElement(convertSlicingRules(src.getRulesElement())); 204 return tgt; 205 } 206 207 static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ElementDefinition.SlicingRules> convertSlicingRules(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ElementDefinition.SlicingRules> src) throws FHIRException { 208 if (src == null || src.isEmpty()) return null; 209 org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ElementDefinition.SlicingRules> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.ElementDefinition.SlicingRulesEnumFactory()); 210 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 211 if (src.getValue() == null) { 212 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.SlicingRules.NULL); 213 } else { 214 switch (src.getValue()) { 215 case CLOSED: 216 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.SlicingRules.CLOSED); 217 break; 218 case OPEN: 219 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.SlicingRules.OPEN); 220 break; 221 case OPENATEND: 222 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.SlicingRules.OPENATEND); 223 break; 224 default: 225 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.SlicingRules.NULL); 226 break; 227 } 228 } 229 return tgt; 230 } 231 232 static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ElementDefinition.SlicingRules> convertSlicingRules(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ElementDefinition.SlicingRules> src) throws FHIRException { 233 if (src == null || src.isEmpty()) return null; 234 org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ElementDefinition.SlicingRules> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.ElementDefinition.SlicingRulesEnumFactory()); 235 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 236 if (src.getValue() == null) { 237 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.SlicingRules.NULL); 238 } else { 239 switch (src.getValue()) { 240 case CLOSED: 241 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.SlicingRules.CLOSED); 242 break; 243 case OPEN: 244 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.SlicingRules.OPEN); 245 break; 246 case OPENATEND: 247 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.SlicingRules.OPENATEND); 248 break; 249 default: 250 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.SlicingRules.NULL); 251 break; 252 } 253 } 254 return tgt; 255 } 256 257 public static org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionSlicingDiscriminatorComponent convertElementDefinitionSlicingDiscriminatorComponent(org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionSlicingDiscriminatorComponent src) throws FHIRException { 258 if (src == null) return null; 259 org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionSlicingDiscriminatorComponent tgt = new org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionSlicingDiscriminatorComponent(); 260 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 261 if (src.hasType()) tgt.setTypeElement(convertDiscriminatorType(src.getTypeElement())); 262 if (src.hasPath()) tgt.setPathElement(String40_50.convertString(src.getPathElement())); 263 return tgt; 264 } 265 266 public static org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionSlicingDiscriminatorComponent convertElementDefinitionSlicingDiscriminatorComponent(org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionSlicingDiscriminatorComponent src) throws FHIRException { 267 if (src == null) return null; 268 org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionSlicingDiscriminatorComponent tgt = new org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionSlicingDiscriminatorComponent(); 269 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 270 if (src.hasType()) tgt.setTypeElement(convertDiscriminatorType(src.getTypeElement())); 271 if (src.hasPath()) tgt.setPathElement(String40_50.convertString(src.getPathElement())); 272 return tgt; 273 } 274 275 static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ElementDefinition.DiscriminatorType> convertDiscriminatorType(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ElementDefinition.DiscriminatorType> src) throws FHIRException { 276 if (src == null || src.isEmpty()) return null; 277 org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ElementDefinition.DiscriminatorType> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.ElementDefinition.DiscriminatorTypeEnumFactory()); 278 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 279 if (src.getValue() == null) { 280 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.DiscriminatorType.NULL); 281 } else { 282 switch (src.getValue()) { 283 case VALUE: 284 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.DiscriminatorType.VALUE); 285 break; 286 case EXISTS: 287 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.DiscriminatorType.EXISTS); 288 break; 289 case PATTERN: 290 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.DiscriminatorType.PATTERN); 291 break; 292 case TYPE: 293 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.DiscriminatorType.TYPE); 294 break; 295 case PROFILE: 296 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.DiscriminatorType.PROFILE); 297 break; 298 default: 299 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.DiscriminatorType.NULL); 300 break; 301 } 302 } 303 return tgt; 304 } 305 306 static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ElementDefinition.DiscriminatorType> convertDiscriminatorType(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ElementDefinition.DiscriminatorType> src) throws FHIRException { 307 if (src == null || src.isEmpty()) return null; 308 org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ElementDefinition.DiscriminatorType> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.ElementDefinition.DiscriminatorTypeEnumFactory()); 309 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 310 if (src.getValue() == null) { 311 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.DiscriminatorType.NULL); 312 } else { 313 switch (src.getValue()) { 314 case VALUE: 315 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.DiscriminatorType.VALUE); 316 break; 317 case EXISTS: 318 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.DiscriminatorType.EXISTS); 319 break; 320 case PATTERN: 321 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.DiscriminatorType.PATTERN); 322 break; 323 case TYPE: 324 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.DiscriminatorType.TYPE); 325 break; 326 case PROFILE: 327 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.DiscriminatorType.PROFILE); 328 break; 329 default: 330 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.DiscriminatorType.NULL); 331 break; 332 } 333 } 334 return tgt; 335 } 336 337 public static org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionBaseComponent convertElementDefinitionBaseComponent(org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionBaseComponent src) throws FHIRException { 338 if (src == null) return null; 339 org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionBaseComponent tgt = new org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionBaseComponent(); 340 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 341 if (src.hasPath()) tgt.setPathElement(String40_50.convertString(src.getPathElement())); 342 if (src.hasMin()) tgt.setMinElement(UnsignedInt40_50.convertUnsignedInt(src.getMinElement())); 343 if (src.hasMax()) tgt.setMaxElement(String40_50.convertString(src.getMaxElement())); 344 return tgt; 345 } 346 347 public static org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionBaseComponent convertElementDefinitionBaseComponent(org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionBaseComponent src) throws FHIRException { 348 if (src == null) return null; 349 org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionBaseComponent tgt = new org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionBaseComponent(); 350 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 351 if (src.hasPath()) tgt.setPathElement(String40_50.convertString(src.getPathElement())); 352 if (src.hasMin()) tgt.setMinElement(UnsignedInt40_50.convertUnsignedInt(src.getMinElement())); 353 if (src.hasMax()) tgt.setMaxElement(String40_50.convertString(src.getMaxElement())); 354 return tgt; 355 } 356 357 public static org.hl7.fhir.r5.model.ElementDefinition.TypeRefComponent convertTypeRefComponent(org.hl7.fhir.r4.model.ElementDefinition.TypeRefComponent src) throws FHIRException { 358 if (src == null) return null; 359 org.hl7.fhir.r5.model.ElementDefinition.TypeRefComponent tgt = new org.hl7.fhir.r5.model.ElementDefinition.TypeRefComponent(); 360 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 361 if (src.hasCode()) tgt.setCodeElement(Uri40_50.convertUri(src.getCodeElement())); 362 for (org.hl7.fhir.r4.model.CanonicalType t : src.getProfile()) 363 tgt.getProfile().add(Canonical40_50.convertCanonical(t)); 364 for (org.hl7.fhir.r4.model.CanonicalType t : src.getTargetProfile()) 365 tgt.getTargetProfile().add(Canonical40_50.convertCanonical(t)); 366 tgt.setAggregation(src.getAggregation().stream().map(ElementDefinition40_50::convertAggregationMode).collect(Collectors.toList())); 367 if (src.hasVersioning()) tgt.setVersioningElement(convertReferenceVersionRules(src.getVersioningElement())); 368 return tgt; 369 } 370 371 public static org.hl7.fhir.r4.model.ElementDefinition.TypeRefComponent convertTypeRefComponent(org.hl7.fhir.r5.model.ElementDefinition.TypeRefComponent src) throws FHIRException { 372 if (src == null) return null; 373 org.hl7.fhir.r4.model.ElementDefinition.TypeRefComponent tgt = new org.hl7.fhir.r4.model.ElementDefinition.TypeRefComponent(); 374 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 375 if (src.hasCode()) tgt.setCodeElement(Uri40_50.convertUri(src.getCodeElement())); 376 for (org.hl7.fhir.r5.model.CanonicalType t : src.getProfile()) 377 tgt.getProfile().add(Canonical40_50.convertCanonical(t)); 378 for (org.hl7.fhir.r5.model.CanonicalType t : src.getTargetProfile()) 379 tgt.getTargetProfile().add(Canonical40_50.convertCanonical(t)); 380 tgt.setAggregation(src.getAggregation().stream().map(ElementDefinition40_50::convertAggregationMode).collect(Collectors.toList())); 381 if (src.hasVersioning()) tgt.setVersioningElement(convertReferenceVersionRules(src.getVersioningElement())); 382 return tgt; 383 } 384 385 static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ElementDefinition.AggregationMode> convertAggregationMode(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ElementDefinition.AggregationMode> src) throws FHIRException { 386 if (src == null || src.isEmpty()) return null; 387 org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ElementDefinition.AggregationMode> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.ElementDefinition.AggregationModeEnumFactory()); 388 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 389 if (src.getValue() == null) { 390 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.AggregationMode.NULL); 391 } else { 392 switch (src.getValue()) { 393 case CONTAINED: 394 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.AggregationMode.CONTAINED); 395 break; 396 case REFERENCED: 397 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.AggregationMode.REFERENCED); 398 break; 399 case BUNDLED: 400 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.AggregationMode.BUNDLED); 401 break; 402 default: 403 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.AggregationMode.NULL); 404 break; 405 } 406 } 407 return tgt; 408 } 409 410 static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ElementDefinition.AggregationMode> convertAggregationMode(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ElementDefinition.AggregationMode> src) throws FHIRException { 411 if (src == null || src.isEmpty()) return null; 412 org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ElementDefinition.AggregationMode> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.ElementDefinition.AggregationModeEnumFactory()); 413 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 414 if (src.getValue() == null) { 415 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.AggregationMode.NULL); 416 } else { 417 switch (src.getValue()) { 418 case CONTAINED: 419 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.AggregationMode.CONTAINED); 420 break; 421 case REFERENCED: 422 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.AggregationMode.REFERENCED); 423 break; 424 case BUNDLED: 425 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.AggregationMode.BUNDLED); 426 break; 427 default: 428 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.AggregationMode.NULL); 429 break; 430 } 431 } 432 return tgt; 433 } 434 435 static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ElementDefinition.ReferenceVersionRules> convertReferenceVersionRules(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ElementDefinition.ReferenceVersionRules> src) throws FHIRException { 436 if (src == null || src.isEmpty()) return null; 437 org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ElementDefinition.ReferenceVersionRules> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.ElementDefinition.ReferenceVersionRulesEnumFactory()); 438 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 439 if (src.getValue() == null) { 440 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.ReferenceVersionRules.NULL); 441 } else { 442 switch (src.getValue()) { 443 case EITHER: 444 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.ReferenceVersionRules.EITHER); 445 break; 446 case INDEPENDENT: 447 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.ReferenceVersionRules.INDEPENDENT); 448 break; 449 case SPECIFIC: 450 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.ReferenceVersionRules.SPECIFIC); 451 break; 452 default: 453 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.ReferenceVersionRules.NULL); 454 break; 455 } 456 } 457 return tgt; 458 } 459 460 static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ElementDefinition.ReferenceVersionRules> convertReferenceVersionRules(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ElementDefinition.ReferenceVersionRules> src) throws FHIRException { 461 if (src == null || src.isEmpty()) return null; 462 org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ElementDefinition.ReferenceVersionRules> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.ElementDefinition.ReferenceVersionRulesEnumFactory()); 463 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 464 if (src.getValue() == null) { 465 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.ReferenceVersionRules.NULL); 466 } else { 467 switch (src.getValue()) { 468 case EITHER: 469 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.ReferenceVersionRules.EITHER); 470 break; 471 case INDEPENDENT: 472 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.ReferenceVersionRules.INDEPENDENT); 473 break; 474 case SPECIFIC: 475 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.ReferenceVersionRules.SPECIFIC); 476 break; 477 default: 478 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.ReferenceVersionRules.NULL); 479 break; 480 } 481 } 482 return tgt; 483 } 484 485 public static org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionExampleComponent convertElementDefinitionExampleComponent(org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionExampleComponent src) throws FHIRException { 486 if (src == null) return null; 487 org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionExampleComponent tgt = new org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionExampleComponent(); 488 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 489 if (src.hasLabel()) tgt.setLabelElement(String40_50.convertString(src.getLabelElement())); 490 if (src.hasValue()) 491 tgt.setValue(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getValue())); 492 return tgt; 493 } 494 495 public static org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionExampleComponent convertElementDefinitionExampleComponent(org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionExampleComponent src) throws FHIRException { 496 if (src == null) return null; 497 org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionExampleComponent tgt = new org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionExampleComponent(); 498 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 499 if (src.hasLabel()) tgt.setLabelElement(String40_50.convertString(src.getLabelElement())); 500 if (src.hasValue()) 501 tgt.setValue(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getValue())); 502 return tgt; 503 } 504 505 public static org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionConstraintComponent convertElementDefinitionConstraintComponent(org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionConstraintComponent src) throws FHIRException { 506 if (src == null) return null; 507 org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionConstraintComponent tgt = new org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionConstraintComponent(); 508 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 509 if (src.hasKey()) tgt.setKeyElement(Id40_50.convertId(src.getKeyElement())); 510 if (src.hasRequirements()) tgt.setRequirementsElement(String40_50.convertString(src.getRequirementsElement())); 511 if (src.hasSeverity()) tgt.setSeverityElement(convertConstraintSeverity(src.getSeverityElement())); 512 if (src.hasHuman()) tgt.setHumanElement(String40_50.convertString(src.getHumanElement())); 513 if (src.hasExpression()) tgt.setExpressionElement(String40_50.convertString(src.getExpressionElement())); 514 if (src.hasXpath()) tgt.setXpathElement(String40_50.convertString(src.getXpathElement())); 515 if (src.hasSource()) tgt.setSourceElement(Canonical40_50.convertCanonical(src.getSourceElement())); 516 return tgt; 517 } 518 519 public static org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionConstraintComponent convertElementDefinitionConstraintComponent(org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionConstraintComponent src) throws FHIRException { 520 if (src == null) return null; 521 org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionConstraintComponent tgt = new org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionConstraintComponent(); 522 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 523 if (src.hasKey()) tgt.setKeyElement(Id40_50.convertId(src.getKeyElement())); 524 if (src.hasRequirements()) tgt.setRequirementsElement(String40_50.convertString(src.getRequirementsElement())); 525 if (src.hasSeverity()) tgt.setSeverityElement(convertConstraintSeverity(src.getSeverityElement())); 526 if (src.hasHuman()) tgt.setHumanElement(String40_50.convertString(src.getHumanElement())); 527 if (src.hasExpression()) tgt.setExpressionElement(String40_50.convertString(src.getExpressionElement())); 528 if (src.hasXpath()) tgt.setXpathElement(String40_50.convertString(src.getXpathElement())); 529 if (src.hasSource()) tgt.setSourceElement(Canonical40_50.convertCanonical(src.getSourceElement())); 530 return tgt; 531 } 532 533 static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ElementDefinition.ConstraintSeverity> convertConstraintSeverity(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ElementDefinition.ConstraintSeverity> src) throws FHIRException { 534 if (src == null || src.isEmpty()) return null; 535 org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ElementDefinition.ConstraintSeverity> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.ElementDefinition.ConstraintSeverityEnumFactory()); 536 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 537 if (src.getValue() == null) { 538 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.ConstraintSeverity.NULL); 539 } else { 540 switch (src.getValue()) { 541 case ERROR: 542 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.ConstraintSeverity.ERROR); 543 break; 544 case WARNING: 545 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.ConstraintSeverity.WARNING); 546 break; 547 default: 548 tgt.setValue(org.hl7.fhir.r5.model.ElementDefinition.ConstraintSeverity.NULL); 549 break; 550 } 551 } 552 return tgt; 553 } 554 555 static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ElementDefinition.ConstraintSeverity> convertConstraintSeverity(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ElementDefinition.ConstraintSeverity> src) throws FHIRException { 556 if (src == null || src.isEmpty()) return null; 557 org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ElementDefinition.ConstraintSeverity> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.ElementDefinition.ConstraintSeverityEnumFactory()); 558 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 559 if (src.getValue() == null) { 560 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.ConstraintSeverity.NULL); 561 } else { 562 switch (src.getValue()) { 563 case ERROR: 564 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.ConstraintSeverity.ERROR); 565 break; 566 case WARNING: 567 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.ConstraintSeverity.WARNING); 568 break; 569 default: 570 tgt.setValue(org.hl7.fhir.r4.model.ElementDefinition.ConstraintSeverity.NULL); 571 break; 572 } 573 } 574 return tgt; 575 } 576 577 public static org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionBindingComponent convertElementDefinitionBindingComponent(org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionBindingComponent src) throws FHIRException { 578 if (src == null) return null; 579 org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionBindingComponent tgt = new org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionBindingComponent(); 580 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 581 if (src.hasStrength()) tgt.setStrengthElement(Enumerations40_50.convertBindingStrength(src.getStrengthElement())); 582 if (src.hasDescription()) tgt.setDescriptionElement(String40_50.convertString(src.getDescriptionElement())); 583 if (src.hasValueSet()) tgt.setValueSetElement(Canonical40_50.convertCanonical(src.getValueSetElement())); 584 return tgt; 585 } 586 587 public static org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionBindingComponent convertElementDefinitionBindingComponent(org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionBindingComponent src) throws FHIRException { 588 if (src == null) return null; 589 org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionBindingComponent tgt = new org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionBindingComponent(); 590 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 591 if (src.hasStrength()) tgt.setStrengthElement(Enumerations40_50.convertBindingStrength(src.getStrengthElement())); 592 if (src.hasDescription()) tgt.setDescriptionElement(String40_50.convertString(src.getDescriptionElement())); 593 if (src.hasValueSet()) tgt.setValueSetElement(Canonical40_50.convertCanonical(src.getValueSetElement())); 594 return tgt; 595 } 596 597 public static org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionMappingComponent convertElementDefinitionMappingComponent(org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionMappingComponent src) throws FHIRException { 598 if (src == null) return null; 599 org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionMappingComponent tgt = new org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionMappingComponent(); 600 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 601 if (src.hasIdentity()) tgt.setIdentityElement(Id40_50.convertId(src.getIdentityElement())); 602 if (src.hasLanguage()) tgt.setLanguageElement(Code40_50.convertCode(src.getLanguageElement())); 603 if (src.hasMap()) tgt.setMapElement(String40_50.convertString(src.getMapElement())); 604 if (src.hasComment()) tgt.setCommentElement(String40_50.convertString(src.getCommentElement())); 605 return tgt; 606 } 607 608 public static org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionMappingComponent convertElementDefinitionMappingComponent(org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionMappingComponent src) throws FHIRException { 609 if (src == null) return null; 610 org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionMappingComponent tgt = new org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionMappingComponent(); 611 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 612 if (src.hasIdentity()) tgt.setIdentityElement(Id40_50.convertId(src.getIdentityElement())); 613 if (src.hasLanguage()) tgt.setLanguageElement(Code40_50.convertCode(src.getLanguageElement())); 614 if (src.hasMap()) tgt.setMapElement(String40_50.convertString(src.getMapElement())); 615 if (src.hasComment()) tgt.setCommentElement(String40_50.convertString(src.getCommentElement())); 616 return tgt; 617 } 618}