anchor.diff:    if (exception <> nil) and (exception.code = base.code) then
       exit;
   
  -  list.Add(base.Link, 0);
  +  if filter(base) then
  +    list.Add(base.Link, 0);
     for i := 0 to base.conceptList.count - 1 do
  -    iterateCodes(base.conceptList[i], list);
  +    iterateCodes(base.conceptList[i], list, allCodes);
     el := base.extensions('http://hl7.org/fhir/StructureDefinition/codesystem-subsumes');
     try
       for e in el do
  
positive.code:     destructor Destroy; override;
    end;
  
    TFhirCodeSystemProvider = class (TCodeSystemProvider)
    private
      FCs : TFhirCodeSystemEntry;
      FMap : TFslMap<TFhirCodeSystemConceptW>;
      FFactory : TFHIRFactory;
  
      function LocateCode(code : String) : TFhirCodeSystemConceptW;
      function doLocate(code : String) : TFhirCodeSystemProviderContext; overload;
      function doLocate(list : TFslList<TFhirCodeSystemConceptW>; code : String) : TFhirCodeSystemProviderContext; overload;
      function getParent(ctxt : TFhirCodeSystemConceptW) : TFhirCodeSystemConceptW;
      procedure FilterCodes(dest : TFhirCodeSystemProviderFilterContext; source : TFslList<TFhirCodeSystemConceptW>; filter : TSearchFilterText);
      procedure iterateCodes(base: TFhirCodeSystemConceptW; list: TFhirCodeSystemProviderFilterContext; exception : TFhirCodeSystemConceptW = nil);
      function locCode(list: TFslList<TFhirCodeSystemConceptW>; code: String): TFhirCodeSystemConceptW;
      function getProperty(code : String) : TFhirCodeSystemPropertyW;
      procedure iterateConceptsByProperty(src : TFslList<TFhirCodeSystemConceptW>; pp : TFhirCodeSystemPropertyW; value : String; list: TFhirCodeSystemProviderFilterContext);
  
negative.code:       begin
          result := TFhirCodeSystemProviderFilterContext.create;
          try
            iterateCodes(code.context, result as TFhirCodeSystemProviderFilterContext, allCodes);
            result.link;
          finally
            result.Free;
  