Class CascadingDeleteInterceptor


  • public class CascadingDeleteInterceptor
    extends Object
    Interceptor that allows for cascading deletes (deletes that resolve constraint issues).

    For example, if DiagnosticReport/A has a reference to Observation/B it is not normally possible to delete Observation/B without first deleting DiagnosticReport/A. With this interceptor in place, it is.

    When using this interceptor, client requests must include the parameter _cascade=delete on the DELETE URL in order to activate cascading delete, or include the request header X-Cascade-Delete: delete

    • Constructor Detail

      • CascadingDeleteInterceptor

        public CascadingDeleteInterceptor​(DaoRegistry theDaoRegistry,
                                          ca.uhn.fhir.interceptor.api.IInterceptorBroadcaster theInterceptorBroadcaster)
        Constructor
        Parameters:
        theDaoRegistry - The DAO registry (must not be null)
    • Method Detail

      • outgoingFailureOperationOutcome

        public void outgoingFailureOperationOutcome​(ca.uhn.fhir.rest.api.server.RequestDetails theRequestDetails,
                                                    org.hl7.fhir.instance.model.api.IBaseOperationOutcome theResponse)
      • outgoingResponse

        public void outgoingResponse​(ca.uhn.fhir.rest.api.server.RequestDetails theRequestDetails,
                                     ca.uhn.fhir.rest.api.server.ResponseDetails theResponseDetails,
                                     org.hl7.fhir.instance.model.api.IBaseResource theResponse)
      • shouldCascade

        protected boolean shouldCascade​(ca.uhn.fhir.rest.api.server.RequestDetails theRequest)
        Subclasses may override
        Parameters:
        theRequest - The REST request
        Returns:
        Returns true if cascading delete should be allowed