private String describeStatus(SubscriptionStatusEnum existingStatus) { String existingStatusString; if (existingStatus != null) { existingStatusString = '\'' + existingStatus.getCode() + '\''; } else { existingStatusString = "null"; } return existingStatusString; }
@Override public String toSystemString(StructureDefinitionKindEnum theEnum) { return theEnum.getSystem(); }
@Override public String toCodeString(StructureDefinitionKindEnum theEnum) { return theEnum.getCode(); }
public IFhirResourceDao getSubscriptionDao() { return getResourceDao(ResourceTypeEnum.SUBSCRIPTION.getCode()); } }
private String extractTransactionUrlOrThrowException(Entry nextEntry, HTTPVerbEnum verb) { String url = nextEntry.getRequest().getUrl(); if (isBlank(url)) { throw new InvalidRequestException(getContext().getLocalizer().getMessage(BaseHapiFhirSystemDao.class, "transactionMissingUrl", verb.name())); } return url; }
@Override public Class<? extends IBaseResource> getResourceType() { return myFhirContext.getResourceDefinition(ResourceTypeEnum.SUBSCRIPTION.getCode()).getImplementingClass(); }
private String describeStatus(SubscriptionStatusEnum existingStatus) { String existingStatusString; if (existingStatus != null) { existingStatusString = '\'' + existingStatus.getCode() + '\''; } else { existingStatusString = "null"; } return existingStatusString; }
private boolean isSubscription(IBaseResource theNewResource) { RuntimeResourceDefinition resourceDefinition = myFhirContext.getResourceDefinition(theNewResource); return ResourceTypeEnum.SUBSCRIPTION.getCode().equals(resourceDefinition.getName()); }
private void verifyActiveStatus(RestOperationTypeEnum theOperation, Subscription theSubscription, SubscriptionStatusEnum newStatus, SubscriptionStatusEnum theExistingStatus) { SubscriptionChannelTypeEnum channelType = theSubscription.getChannel().getTypeElement().getValueAsEnum(); if (channelType == null) { throw new UnprocessableEntityException("Subscription.channel.type must be populated"); } if (channelType == SubscriptionChannelTypeEnum.WEBSOCKET) { return; } if (theExistingStatus != null) { throw new UnprocessableEntityException("Subscription.status can not be changed from " + describeStatus(theExistingStatus) + " to " + describeStatus(newStatus)); } if (theSubscription.getStatus() == null) { throw new UnprocessableEntityException("Can not " + theOperation.getCode().toLowerCase() + " resource: Subscription.status must be populated on this server"); } throw new UnprocessableEntityException("Subscription.status must be '" + SubscriptionStatusEnum.OFF.getCode() + "' or '" + SubscriptionStatusEnum.REQUESTED.getCode() + "' on a newly created subscription"); }
@Override public IBundleProvider search(SearchParameterMap theParams) { return myDaoRegistry.getResourceDao(ResourceTypeEnum.SEARCHPARAMETER.getCode()).search(theParams); }
@Override public void resourceUpdated(RequestDetails theRequest, IBaseResource theOldResource, IBaseResource theNewResource) { if (myDao.getContext().getResourceDefinition(theNewResource).getName().equals(ResourceTypeEnum.SUBSCRIPTION.getCode())) { verifyStatusOk(RestOperationTypeEnum.UPDATE, theOldResource, theNewResource); } }
@Override public void resourceUpdated(RequestDetails theRequest, IBaseResource theOldResource, IBaseResource theNewResource) { if (myDao.getContext().getResourceDefinition(theNewResource).getName().equals(ResourceTypeEnum.SUBSCRIPTION.getCode())) { verifyStatusOk(RestOperationTypeEnum.UPDATE, theOldResource, theNewResource); } }
@Override public void resourceUpdated(RequestDetails theRequest, IBaseResource theOldResource, IBaseResource theNewResource) { if (myDao.getContext().getResourceDefinition(theNewResource).getName().equals(ResourceTypeEnum.SUBSCRIPTION.getCode())) { verifyStatusOk(RestOperationTypeEnum.UPDATE, theOldResource, theNewResource); } }
@Override public void resourceCreated(RequestDetails theRequest, IBaseResource theResource) { if (myDao.getContext().getResourceDefinition(theResource).getName().equals(ResourceTypeEnum.SUBSCRIPTION.getCode())) { verifyStatusOk(RestOperationTypeEnum.CREATE, null, theResource); } }
@Override public void resourceCreated(RequestDetails theRequest, IBaseResource theResource) { if (myDao.getContext().getResourceDefinition(theResource).getName().equals(ResourceTypeEnum.SUBSCRIPTION.getCode())) { verifyStatusOk(RestOperationTypeEnum.CREATE, null, theResource); } }
@Override public void resourceCreated(RequestDetails theRequest, IBaseResource theResource) { if (myDao.getContext().getResourceDefinition(theResource).getName().equals(ResourceTypeEnum.SUBSCRIPTION.getCode())) { verifyStatusOk(RestOperationTypeEnum.CREATE, null, theResource); } }
public void updateSubscriptionRegistryAndPerformMatching(ResourceModifiedMessage theResourceModifiedMessage) { IBaseResource resource = theResourceModifiedMessage.getNewPayload(myFhirContext); RuntimeResourceDefinition resourceDef = myFhirContext.getResourceDefinition(resource); if (resourceDef.getName().equals(ResourceTypeEnum.SUBSCRIPTION.getCode())) { mySubscriptionRegistry.registerSubscriptionUnlessAlreadyRegistered(resource); } mySubscriptionMatchingSubscriber.matchActiveSubscriptionsAndDeliver(theResourceModifiedMessage); } }
@Override public IBundleProvider search(SearchParameterMap theParams) { FhirContext fhirContext = myClient.getFhirContext(); IBaseBundle bundle = myClient .search() .forResource(ResourceTypeEnum.SEARCHPARAMETER.getCode()) .cacheControl(new CacheControlDirective().setNoCache(true)) .execute(); return new SimpleBundleProvider(BundleUtil.toListOfResources(fhirContext, bundle)); }
@Override public IBundleProvider search(SearchParameterMap theMap) { FhirContext fhirContext = myClient.getFhirContext(); String searchURL = ResourceTypeEnum.SUBSCRIPTION.getCode() + theMap.toNormalizedQueryString(myFhirContext); IBaseBundle bundle = myClient .search() .byUrl(searchURL) .cacheControl(new CacheControlDirective().setNoCache(true)) .execute(); return new SimpleBundleProvider(BundleUtil.toListOfResources(fhirContext, bundle)); }
IIdType subscriptionId = theSubscriptionId; if (!subscriptionId.hasResourceType()) { subscriptionId = subscriptionId.withResourceType(ResourceTypeEnum.SUBSCRIPTION.getCode());