A system comprising: a non-transitory memory storing instructions; and a processor to execute the instructions stored in the memory to at least: filter a signal indicating a pressure detected within a patient's bladder with a low-pass filter with a cutoff frequency tuned for the patient to provide a filtered signal; apply a multi-level discrete wavelet transform to the filtered signal to provide a transformed signal in a wavelet domain; apply an adaptive thresholding procedure to the transformed signal in the wavelet domain to detect a bladder event, and characterize the bladder event as a voiding contraction event for the patient's bladder, a non-voiding contraction event for the patient's bladder, or a non-contraction event for the patient's bladder based on at least one property of the bladder event according to one or more tunable parameters customized for the patient, wherein the one or more tunable parameters customized for the patient is at least one of: a sample buffer length for the patient's bladder, an approximation coefficient sensitivity for the patient's bladder, and a detail coefficient sensitivity for the patient's bladder. a non-transitory memory storing instructions; and a processor to execute the instructions stored in the memory to at least: filter a signal indicating a pressure detected within a patient's bladder with a low-pass filter with a cutoff frequency tuned for the patient to provide a filtered signal; apply a multi-level discrete wavelet transform to the filtered signal to provide a transformed signal in a wavelet domain; apply an adaptive thresholding procedure to the transformed signal in the wavelet domain to detect a bladder event, and characterize the bladder event as a voiding contraction event for the patient's bladder, a non-voiding contraction event for the patient's bladder, or a non-contraction event for the patient's bladder based on at least one property of the bladder event according to one or more tunable parameters customized for the patient, wherein the one or more tunable parameters customized for the patient is at least one of: a sample buffer length for the patient's bladder, an approximation coefficient sensitivity for the patient's bladder, and a detail coefficient sensitivity for the patient's bladder. filter a signal indicating a pressure detected within a patient's bladder with a low-pass filter with a cutoff frequency tuned for the patient to provide a filtered signal; apply a multi-level discrete wavelet transform to the filtered signal to provide a transformed signal in a wavelet domain; apply an adaptive thresholding procedure to the transformed signal in the wavelet domain to detect a bladder event, and characterize the bladder event as a voiding contraction event for the patient's bladder, a non-voiding contraction event for the patient's bladder, or a non-contraction event for the patient's bladder based on at least one property of the bladder event according to one or more tunable parameters customized for the patient, wherein the one or more tunable parameters customized for the patient is at least one of: a sample buffer length for the patient's bladder, an approximation coefficient sensitivity for the patient's bladder, and a detail coefficient sensitivity for the patient's bladder.