Skip to main content
ExLibris
  • Subscribe by RSS
  • Ex Libris Knowledge Center

    Contact Tracing

    Overview

    The Contact Tracing product integration allows users to easily capture their last visited locations using a mobile QR scanner to create a digital diary of the locations they visit.
    • Contact tracing PI requires an authenticated profile, so it cannot be used for guest profiles.
    • Only one Product Integration instance can be deployed per app.

    Vendors

    The Contact Tracing product integration is currently supported either as self-contained service hosted by Ex Libris Cloud or by the RESTful API (generic) vendor.

    User Experience

    The following section describes information relating to the user experience for the Resource Booking product integration.

    User Activities

    • Students can scan a QR code to capture a new visited location.
    • Students can see their visited location history.

    Authentication

    Additional user authentication is not necessary. Authentication with your system should be based on the API authentication. See Authentication Type).

    Offline Support

    The Contact Tracing product integration is not supported offline.

    Main Workflows and Screenshots

    The Contact Tracing product integration contains the following main functionalities:
    • Scan a QR code when visiting a new place to store the location
    • Review location history and search for locations or places I visited on a specific date
    The Contact Tracing landing page displays the Scan button and last scanned locations The Location History page displays data for the number of days as was configured by the university. The user can search by location, name, and date.
    contactTracingScan.png contactTracingHistory.png

    Technical Overview

    The following section describes technical information for the Contact Tracing product integration.

    Prerequisites

    The following prerequisities are required for the Contact Tracing product integration.

    • For RESTful API (generic) vendor the APIs as described below should be available.  See API Information. If campusM Cloud vendor is used no APIs prerequisites.
      • QR code should include the following data in a JSON format - userID, locationName, description, locationID

        For example:

        {
                "locationName": "Presentation Pod 100",
                "description": "2 seats",
                "locationID": "12345",
        "campusID": "11"
         }

    All four attributes are not mandatory.

    API Information

    The Contact Tracing product integration uses the following APIs:

    • Get User's History – mandatory
    • Send User's Location's – mandatory
    • Delete User Location – not mandatory

    Get User’s History API

    Request:

    https://{Base URL}/UserApi/api/users/getUserLocations?userid={userID}&startDate={startDate}&endDate={endDate}

    • The date range is a maximum of 7 days
    • Base URL – the URL to retrieve as defined in the product integration configuration
    • userID – the user identifier as defined in the Query Parameters.
    • The format of startDate and endDate should be: {yyyy-MM-ddTHH:mm:ss+Z}, for example: 2020-09-02T09:55:15+03:00.

    Expected response:

    The response should be similar to the following:

    {
        "userLocationsList": {
            "location": [
                {
                    "campusID": "",
                    "locationName": "",
                    "time": "2019-12-30T09:30:15+0200",        
                    "userID": "a@google.com",
                    "locationID": "12345",
                    "serialNumber": "1"
                },
                {
                   "campusID": "",
                    "locationName": "",
                    "time": "2019-12-30T09:30:15+0200",        
                    "userID": "a@google.com"
                    "locationID": "14542",
                    "serialNumber": "2"
                }
            ]
        }
    }

    Response attributes Mapping:

    Attributes Mapping
    Attribute Description Mandatory Yes/No Data Type Default Example
    campusID campus ID No String    
    locationName   Yes String    
    time scan time Yes String according to the following format:
    yyyy-MM-ddTHH:mm:ss'Z'
      2019-12-29T07:30:00+0200
    userID The user identifier that matches the equivalent attribute on IDP (see Prerequisites # 1). Yes String    
    locationID Location ID Yes Number    
    serialNumber Scan ID number Yes Number    

    Send User’s Location API (POST)

    Request:

    https://{BASE URL}/UserApi/api/users/updateUserLocation

    Body:

    {
     "userID": "a@google.com",
     "locationID": "54321", 
     "locationName": "Presentation Pod 5"
     "time": "2019-12-30T11:00:00+0200"
     "description": "2 seats"
     "campusID": ""
    }
    Attributes Mapping
    Attribute Description Mandatory Yes/No Data Type Default Example
    UserId The user identifier that matches the equivalent attribute on IDP (see Prerequisites # 1). Yes String    
    locationName Location Name Yes String   Conference Room 1
    Description Description Yes String    
    Time Time of checkin Yes String according to the following format:
    yyyy-MM-ddTHH:mm:ss'Z'
      2019-12-29T07:30:00+0200

    Expected response:

    Response should include failure/success indication in the following format:

    {
        "userid" : "a@google.com",

     "locationId" : "54321",

        "response": "location successfully added!'" //if success, 'response' must contain the string "Successfully", otherwise it'll be considered as failure
    }

    Delete User Location API

    Request:

    campusM should send the following web service:

    https://{BASE URL}/UserApi/api/users/deleteUserLocation

    Body:

    {
        “userID": "a@google.com",
        “locationID”: “54321”,
    }

    Expected response:

    Response should include failure/success indication in the following format:

    {
        "userID" : "a@google.com",
        "locationId" : "54321",
        "response": "location successfully deleted!'" //if success, 'response' must contain the string "Successfully", otherwise it'll be considered as failure
    }

    Authentication of all APIs is included in the headers, as configured in Authentication Type.

    Product Integration Configuration

    To configure the Contact Tracing product integration, select Product Integrations > Add Product Integration and select Contact Tracing.
    The following table describes the configuration options available on this page.
    Configuration Option Description Mandatory Data Type Default Example
    Manage Integration
    Enable Product Integration Select to enable the product integration on the user's campusM app. No Checkbox Unselected  
    Product Integration Description A description of the product integration for internal use Yes String    
    Screen Title The title that appears in the top header of the service No String Registration Status  
    API Configuration
    This section contains the API details  to define the API structure. You can test the API configuration. See Testing API Product Integration Configuration.
    Base URL to retrieve the information The URL for the API Yes URL   https://{HOST}
    Parameter Input Option The parameter input option. Possible values: Username, Token Property, and Constant. It is sent as the path parameter . Yes Drop-Down list Token Property
    Token Property Name Enter the property name to be retrieved from the token ({ USERNAME, MAIL, GIVEN_NAME, SURNAME, FULL_NAME } or as named in the integration profile) No String   USERNAME
    Constant Value The value when the User Identifier is set to Constant No String    
    Authentication Type Authentication type against the web service. The options are the following:
    • No Auth
    • Basic - username and password for Base64 basic authentication.
    • API Key - can be added to a Header or to the URL (Query Param) or both.
    • Bearer token
    • OAuth Using User App Authentication – select an OAuth integration profile (from the Integration Profiles configured in App Settings) and choose where the access token should be added, Header or URL.
    • OAUTH Using Client Credentials – select this if you are using a preliminary token call to get the access token.
    No Object   No Auth
    General
    Total number of days available to view in Locations History Total number of days for Locations History , The value should be between 1 and 28 No Number 5  
    Data Retention Policy How long Contact Tracing data is retained in the Ex Libris campusM cloud No Number 30  
    Date Format The format to display any dates in, throughout the integration No Drop down    
    Number of records to show initially in Locations History Number of records to show in Locations History at the beginning No Number 10  
    Number of additional records to load on each click of the Load More Results Button Number of records to load on each click of the 'Load More Results' button, should be between 2 and 5 No Number 5  
    Display Cancel Button 'Cancel' button allows users to delete logged location and triggers deleteUserLocation API No Checkbox false  
    Additional Information URL URL for Additional Information/ Help tab (link out) No String    
    Look and Feel
    Primary Theme Color Select a color for the main elements on the page No Color Picker #444444  
    Secondary Theme Color Select a color for the secondary elements on the page No Color Picker #6f8ea4  
    Text / Labels Enter replacement text for the default titles and labels No String    
    Import/ Export Configuration
    You can configure product integration and then export it to another campusM environment, for example, from sandbox to production or from preview to production.  
    Export Create a JSON file with all product integration configuration. No      
    Import Use this option in order to load configuration from JSON of an exported product integration. No      

    Getting Contact Tracing Results

    For information about extracting Contact Tracing response data, see Get Contact Tracing Results.

    • Was this article helpful?