>>2) перенести базу в СУБД PostgreSQL, которая будет теперь на удаленной машине;
Делайте Web Api сервис (можно и не один), который будет крутиться на удалённой машине и работать с PostgreSQL. А также будет отвечать на запросы от приложений (для пациентов, для сотрудников).
>>1) разделить приложение на несколько, т.е. для пациентов одно приложение, для сотрудников другие
это может остаться даже одно приложение, просто на уровне прав скрывать для юзера лишние вкладки/контролы
>>3) предоставить доступ к некоторым файлам на сервере, как пациентам (для загрузки), так и сотрудникам
При логине в приложение дёргается Web Api сервис, который выдаёт права (+ некоторый токен) данному юзеру и потом при вызове Web Api методов, надо использовать этот токен и права
На C# (Web Api, Dapper) это всё можно реализовать.