@classmethod
def read(cls, rem_id, server):
    """ Read the resource with the given id from the given server. The
        passed-in server instance must support a `request_json()` method call,
        taking a relative path as first (and only mandatory) argument.
        
        :param str rem_id: The id of the resource on the remote server
        :param FHIRServer server: An instance of a FHIR server or compatible class
        :returns: An instance of the receiving class
        """
    if not rem_id:
        raise Exception('Cannot read resource without remote id')
    path = '{}/{}'.format(cls.resource_type, rem_id)
    instance = cls.read_from(path, server)
    instance._local_id = rem_id
    return instance
