Simple way to prevent one user seeing one contact
You could do that with hook_civicrm_aclWhereClause:


remove 'view all contacts', 'edit all contacts' for the case worker
create an extension implementing hook_civicrm_aclWhereClause eg:


function everyoneexcept_civicrm_aclWhereClause($type, &amp;$tables, $whereTables, &amp;$contactID, &amp;$where) {
      if ($contactID == 'your_case_worker_id') {
        $where .= ($where ? ' AND ' : '') . " contact_a.id != 'your_case_worker_relative_id'";
      }
    }


For a one-off case, just hardcode the contact id's for your case worker and their relative.

Caveat - not extensively tested!