Search for a Person

Actors

  • OpenRegistry System
  • User
  • Database

Pre-Conditions

  1. ASSUMPTION1: User has successfully authenticated into system.
  2. ASSUMPTION2: User has some privileges to search for people.
  3. ASSUMPTION3: User has chosen a System of Record to work with.
  4. ASSUMPTION4: User is using Search as part of another flow and will thus continue on to flow.
  5. ASSUMPTION5: System is configured as to which identifiers can be returned from a flow.

Flow

  1. User provides values for search criteria. Currently allowed fields are:
    • Name (First Last or Last,First)
    • Date of Birth
    • Identifier Value (can be any SoR Unique ID or calculated ID)
    • Additionally, the user may provide a maximum number of search results per page to be returned. (default to 20) Only current page's worth of results are fetched from the database.
  2. Information is submitted/sent to OpenRegistry server.
  3. OpenRegistry system searches for people based on the following criteria/algorithm:
    1. If an Identifier Value is provided
      1. Try to figure out what kind of identifier it is (eg. exactly 9 numeric digits = SFUID, <9 Alpha Numeric = Computing ID)
      2. Search for an exact match
        1. If an exact match is NOT FOUND, then a partial match is attempted on the identifier value
    2. If no matches are found, and a date of birth is provided, an exact match on the DOB should be tried
      1. If a DOB match is found, then partial matching on names is attempted (see below)
    3. If no DOB is provided, try name matching
      1. If more than one string is entered into the "Name" field, split and do partial matching on first/last names
      2. If one string is entered, try to match on last names then first names
    4. Identifier Searches are conducted against calculated tables, while name, dob searches are conducted against System of Record tables.
    5. The maximum number of search results returned per page is 20 unless otherwise indicated.
  4. Results are returned to user, along with additional meta information such as the fact that the maximum was reached. The following fields should be returned to the user:
    • Official Name
    • Gender
    • Current Roles (most likely Title/Organization for Each Role)
    • Defined Identifiers
  5. If one (1) result is returned, user should be transitioned to next flow (this should be discussed, often the user just needs the summary information and then wants to do another search)
  6. If zero results are returned, user MUST be notified and text such as "Your search returned no results. You MAY wish to change your search terms" MUST be presented to the user.
  7. If > 1, results should be presented to the user such that the user can choose which person they want and be transitioned to the next flow.

Post Conditions

  1. PC1: User is transitioned to next flow upon selection (either manual or automatic) of person.

Business Rules

  1. BR1: Ultimately, the fields available for search are dependent on access control levels
  2. BR2: Ultimately, fields returned are dependent on access control levels
  3. BR3: User MUST provide either an identifier value OR at least the last name. Those are the minimums. More information can be provided.