Operation Details
Description: Searches for Providers based on the search criteria specified.
Sterotype: nsmulti
SQL
SELECT
  DISTINCT(Provider.providerConcernRoleID),
  AdministrationRole.userName
INTO
  :providerConcernRoleID,
  :owner 
FROM
  Provider,
  ConcernRole,
  ProviderCategoryPeriod,
  ProviderType,
  AdministrationConcernRole,
  AdministrationRole 
WHERE 
  (
    :searchByName = '0' 
    OR upper(ConcernRole.concernRoleName) like :name 
  ) 
  AND 
  (
    :searchByReferenceNumber = '0' 
    OR ConcernRole.primaryAlternateID = :referenceNumber 
  ) 
  AND ConcernRole.concernRoleID = Provider.providerConcernRoleID 
  AND Provider.providerConcernRoleID = ProviderCategoryPeriod.providerConcernRoleID 
  AND ProviderCategoryPeriod.providerCategoryID = ProviderType.providerCategoryID 
  AND AdministrationRole.administrationRoleID = AdministrationConcernRole.administrationRoleID 
  AND AdministrationConcernRole.concernRoleID = Provider.providerConcernRoleID 
  AND AdministrationConcernRole.typeCode = :userType
  AND AdministrationConcernRole.endDate is NULL
  AND 
  (
    :searchByCategory = '0' 
    OR ProviderCategoryPeriod.category = :category 
  ) 
  AND 
  (
    :searchByType = '0' 
    OR ProviderType.type = :providerCategoryType 
  ) 
  AND 
  (
    :searchByOwner = '0' 
    OR 
    (
      upper(AdministrationRole.userName) like :ownerName 
    ) 
  )