anchor.diff:        else
         begin
           result.AddParamBool('result', false);
  +        if (ver <> '') then
  +          result.addParamStr('version', ver);
           result.AddParamStr('message', 'The system/code "'+coding.systemUri+'"/"'+coding.code+'" is not in the value set '+FValueSet.name);
           if (message <> '') then
             result.AddParamStr('message', message);
  
positive.code:         end
          else
          begin
            cause := itNull;
            try
              result := (abstractOk or not cs.IsAbstract(ctxt)) and ((FParams = nil) or not FParams.activeOnly or not cs.isInactive(ctxt));
  
negative.code: function TValueSetChecker.check(system, version, code: String; abstractOk, implySystem : boolean): boolean;
  var
    list : TCodeDisplays;
    msg, ver : string;
    it : TFhirIssueType;
  begin
    list := TCodeDisplays.Create;
    try
      result := check(system, version, code, abstractOk, implySystem, list, msg, ver, it);
    finally
      list.Free;
    end;
  end;
  
  function TValueSetChecker.check(system, version, code : String; abstractOk, implySystem : boolean; displays : TCodeDisplays; var message, ver : String; var cause : TFhirIssueType) : boolean;
  var
    cs : TCodeSystemProvider;
    ctxt : TCodeSystemProviderContext;
  