anchor.diff:  begin
     result := nil;
     if context = nil then
  -    result := TFhirCodeSystemProviderContext.create(FVs.codeSystem.conceptList[ndx])
  +    result := TFhirCodeSystemProviderContext.create(FCs.CodeSystem.codeSystem.conceptList[ndx])
     else
     begin
       if (ndx < TFhirCodeSystemProviderContext(context).context.conceptList.Count) then
  
positive.code:     procedure extendLookup(ctxt : TCodeSystemProviderContext; lang : String; props : TList<String>; resp : TFHIRLookupOpResponse); override;
      function subsumesTest(codeA, codeB : String) : String; override;
    end;
  
  
    // the terminology server maintains a cache of terminology related resources
    // the rest server notifies terminology server whenever this list changes
  
negative.code:   p : TFhirCodeSystemProperty;
  begin
    result := nil;
    for p in FCs.CodeSystem.property_List do
      if (p.code = code) then
        exit(p);
  end;
  {$ENDIF}
  
  function TFhirCodeSystemProvider.locCode(list : TFhirCodeSystemConceptList; code : String) : TFhirCodeSystemConcept;
  var
    c : TFhirCodeSystemConcept;
  begin
    result := nil;
    for c in list do
    begin
      if (c.code = code) then
        exit(c);
      result := locCode(c.conceptList, code);
      if result <> nil then
        exit;
    end;
  end;
  
  function TFhirCodeSystemProvider.LocateCode(code : String) : TFhirCodeSystemConcept;
  begin
    if (FMap = nil) then
      result := locCode(FCs.CodeSystem.conceptList, code)
    else if (FMap.ContainsKey(code)) then
      result := FMap[code]
    else
      result := locCode(FCs.CodeSystem.conceptList, code);
  end;
  
  function TFhirCodeSystemProvider.doLocate(list : TFhirCodeSystemConceptList; code : String) : TFhirCodeSystemProviderContext;
  