How to make user profiles of specific role as public in drupal 7? I am working on a project and the problem I am facing is,

There are 2 user roles Doctor and Patient.
What I want to accomplish is profile of users with role of "Doctor" is accessible by all including anonymous and profile of users with role "Patient" is accessible by user himself and all the users with role of "Doctor". 
Rest no one can access the profile of "Patient" role.

Any help is much appreciated.
Thanks in advance.
You are looking for Profile2 module.


  
  With profile2 user account settings and user profiles are conceptually
  different things, e.g. with the "Profile pages" module enabled users
  get two separate menu links "My account" and "My profile".
  Profile2 allows for creating multiple profile types, which may be
  assigned to roles via permissions (e.g. a general profile + a customer
  profile)
  Profile2 supports private profile fields, which are only shown to the
  user owning the profile and to administrators
  


Check out this Demo video.