docs: public IBaseResource loadResource(IRestfulClient theClient) {
  		if (myResource != null) {
  			return myResource;
  		}
  
  		IdDt resourceId = getReference();
  		if (resourceId == null || isBlank(resourceId.getValue())) {
  			throw new IllegalStateException("Reference has no resource ID defined");
  		}
  		if (isBlank(resourceId.getBaseUrl()) || isBlank(resourceId.getResourceType())) {
  			throw new IllegalStateException("Reference is not complete (must be in the form [baseUrl]/[resource type]/[resource ID]) - Reference is: " + resourceId.getValue());
  		}
  
  		String resourceUrl = resourceId.getValue();
  
  		ourLog.debug("Loading resource at URL: {}", resourceUrl);
  
  		RuntimeResourceDefinition definition = theClient.getFhirContext().getResourceDefinition(resourceId.getResourceType());
  		Class<? extends IBaseResource> resourceType = definition.getImplementingClass();
  		myResource = theClient.fetchResourceFromUrl(resourceType, resourceUrl);
  		myResource.setId(resourceUrl);
  		return myResource;
  	}