/
Enterprise Health

Enterprise Health

Overview

Sends HR data combined from the Oracle DW and Person Registry to Enterprise Health, a health requirements tracking platform used by Occupational Health team at Tufts.

The integration runs daily via a job in the Denodo Scheduler that sends data incrementally by checking for rows that are new or changed compared to the data cached the previous day. The feed relies on the fetching of a session ID from Enterprise Health via Lambda to make more rapid, successive API calls.

Design

Components

Bold items are final/consumed views

  • Denodo VDP

    • human_resources

      • 01-base_layer

        • 01-connections

          • ds_eh_hr_feed_data_queue

          • ds_eh_hr_feed_session_id

        • 02-base_views

          • bv_eh_hr_feed_data_queue

          • bv_eh_hr_feed_session_id

      • 02-transformations

        • persons_health

        • persons_health_current_cache

        • persons_health_previous_cache

      • 03-integration

        • j_persons_health_country

        • persons_eh_hr_feed_data_queue_history

        • persons_health_current_previous_diff

        • persons_eh_hr_feed_data_queue_incremental

        • persons_eh_hr_feed_data_queue_manual

  • Denodo Scheduler

    • eh_session_id

    • eh_current_cache

    • eh_hr_data_feed_queue_previous_cache

    • eh_incremental_load

    • eh_hr_feed_data_queue_failure_check

  • Lambda

  • Enterprise Health

How-To

Force a full data load

Invalidate the cache for persons_health_previous_cache via the Design Studio UI or using this query (with the human_resources VDB selected)

ALTER VIEW persons_health_previous_cache CACHE INVALIDATE;

Once the cache is invalidated, run the feed job in the scheduler.

Feed failures

The job eh_hr_feed_data_queue_failure_check will run after the feed job is complete to see if any records failed to send to EH by querying the cache for human_resources.persons_health_eh_hr_feed_data_queue_incremental. If any failures are found, a CSV is generated and sent out via e-mail to the Tufts Denodo team email address (denodo-devs@elist.tufts.edu). If the event of a job failure, a separate email will be sent from either job to the same email address.

Record failures of status 500 typically mean there was an issue with the EH server, with 400 meaning there was an issue with the request/data. For 500 errors you can just re-send, however 400 errors should be investigated as they may require updating a view to handle bad data.

You can re-send failed emp_id’s by running the following two queries.

Store a fresh EH session ID

SELECT * FROM human_resources.bv_eh_hr_feed_session_id CONTEXT('cache_wait_for_load' = 'true', 'cache_invalidate' = 'matching_rows', 'cache_preload' = 'true');

Send the records to EH

SELECT * FROM human_resources.persons_health_eh_hr_feed_data_queue_manual where emp_id in (/*EMP ID's go here*/) CONTEXT('cache_wait_for_load' = 'true', 'cache_preload' = 'true');

 

Related content