
001package org.hl7.fhir.r5.terminologies.providers; 002 003import java.util.List; 004 005import org.hl7.fhir.r5.model.Extension; 006import org.hl7.fhir.r5.model.Parameters; 007import org.hl7.fhir.r5.model.ValueSet; 008import org.hl7.fhir.r5.model.ValueSet.ConceptSetComponent; 009import org.hl7.fhir.r5.model.ValueSet.ValueSetExpansionComponent; 010import org.hl7.fhir.r5.model.ValueSet.ValueSetExpansionPropertyComponent; 011import org.hl7.fhir.utilities.MarkedToMoveToAdjunctPackage; 012 013/** 014 * For special code systems where the code system resource isn't enough, but we can support them internall 015 * Usually, small grammar based code systems 016 * 017 * @author grahamegrieve 018 * 019 */ 020@MarkedToMoveToAdjunctPackage 021public abstract class CodeSystemProvider { 022 023 public static CodeSystemProvider factory(String system) { 024 switch (system) { 025 case "http://hl7.org/fhir/color-rgb" : return new ColorRGBProvider(); 026 default: 027 return null; 028 } 029 } 030 031 public abstract void includeCodes(ConceptSetComponent inc, boolean heirarchical, ValueSetExpansionComponent exp, 032 List<ValueSet> imports, Parameters expParams, List<Extension> extensions, boolean noInactive, 033 List<ValueSetExpansionPropertyComponent> vsProps) throws CodeSystemProviderExtension; 034 035 public abstract Boolean checkCode(String code); 036 037}