Skip to Main Content

Web Systems Release Notes: 2017.46

November 16, 2017
by Justin Fansler

This morning, the Tech Team released version 2017.46, which covers software development work completed over the past week.

We've added a new section to the notes this week to give you more insight into the work we're doing on new projects, including the Media Library, CV Builder, and Flyerboard.

Yale Medicine Website and Editing

Below is a list of updates that were made to YaleMedicine.org, along with the YM Publishing Tool used to edit condition articles, feature stories, and doctor bios:

Type Title Description Category
Bug Search by story name on Doctor Search page displays lots of results in general results section

Fixed a bug with wrong processing of search queries with story names. When a website visitor typed a story name on the Doctor search page, the page displayed lots of General Results (several thousands) that caused the page crash.

YM Website
Bug Return empty collections from YM service for Concept Articles that haven't been published

Updated YM service to return empty collections of related information for not published concepts groups.

YM Website
Bug Heart Transplant displays twice in search results

We were seeing two entires for "Heart Transplant" in the top results. This was related to TECH-2889 and we no longer display concepts that have no content or doctors.

YM Website
Bug Error while getting Staywell article summary from YM Service for YMS notifications

We needed to improve the way Staywell and NCI article content was stored in our search indexes.

YM Website
Bug Story returns an error in dynamic preview and after publishing live

Story can not be previewed and is not viewable on the site after publishing.

YM Website
Bug Concepts with no content or doctors are appearing in search results

Concepts with no doctors or content were appearing in search results and are not clickable. The fix was to remove these from the search index.

YM Website
Bug Not all SDL pages are being indexed

Not all static pages (e.g. About) were being indexed and included Yale Medicine site map.

YM Website
New Feature Provide higher-quality images for sharing on social media

The images associated with stories and condition articles were not large enough to display properly on retina screens when shared to social media. We increased the size of the image output.

YM Website
New Feature Provide og:title and twitter:title without the "> ... at Yale Medicine" suffix

Updated the title for content shared on social media to eliminate the "> ... at Yale Medicine" suffix.

YM Website
New Feature Make "private" data available in the Human Practice feeds

Exposes physician contact information in the Human Practice data feed for the Referring Physician app via a request by Connie Branyan.

Data Feeds
New Feature Lock down the Human Practice feeds which are now public

We offer feeds as a public API gateway for some of our data so that our content can be easily re-used. We are in the process of locking this down to require a special key in order to gain access. Our goal being to have more control over access while still offering the same service in a more secure manner. We have begun this process with feeds used by the Human Practice Referring Physicians app.

Data Feeds
Bug When user is assigned the "Feature Stories" item, they cannot view the "Home Page Features" page

Fixed internal server error on the Home Page Features page in the YM Publishing Tool.

YM Publishing Tool (YMS)
Task Concepts without a custom display name

Provide a report of all Kyruus concepts that have not been given a custom name (with title case applied). We will use this list to update the concept names that appear on the website.

YM Publishing Tool (YMS)
Bug Concept Articles rejected by Doctors are lost when the Doctor edits their Kyruus Concepts

Doctors have the ability to remove their association with Concept Articles. This information was being lost under certain circumstances.

Profile.Yale.Edu (YMS Admin)
New Feature Yale Medicine site crash - Microsoft Recommendation review

We experienced an outage with our Yale Medicine web application and requested assistance from Microsoft. They recommended some new configuration settings which we have not used before.

Results: We see this change as a new feature that will require significant testing before we consider it for production. But before we introduce this new setting we need to complete work related to software deployment.

Infrastructure

News and People Profile System

Below is a list of updates made to the system used to edit profiles for people and organizations, along with news, events, and clinical trials:

Type Title Description
Bug Workday sync problem with new data in FDB_DEMOG

Workday was updated to include multiple records for people who were Academic Affiliates but were then hired as Employees. Our system expects only one record per person from Workday and so caused an issue for 128 people for whom this double record was applied where their membership to some organizations were removed. We now ignore the invalid record and restored memberships for the affected people.

Story Addition to automated Workday emails

Added new Tech Team members to automated system emails.

Task Switch to JSON Configuration parsing in YMS

Internal change to make the Profile System application configuration files easier to manage.

Event Calendar

Type Title Description
Bug Stuck on loading screen after duplicating an event

Users would get stuck on a loading screen after duplicating an event.

Story Current interface to add event to calendars in "People & Calendars" tab of Edit Event page is confusing

Reorganized the Tagged Calendars section of Edit Event page to make it easier to use.

Sub-task Add help bubble information to Tagged Calendars section of Edit Event screen

Added help text to various areas of the Edit Event page.

Accessibility

Below is a list of updates made to websites and systems to meet WCAG A and AA accessibility standards:

Type Title Description Category
Task Investigate Accessibility issues in YM

Initial investigation into the accessibility issues on the YaleMedicine.org website as identified by SiteImprove. We created separate tickets for all issues.

YM Website

Infrastructure and Backend Systems

Much of the team's work is never seen, but important projects are ongoing to make sure our systems and websites are stable, highly available, and cost effective. We continue making major improvements to our infrastructure and work in this area will be ongoing into 2018.

Type Title Description
Story Globalize Search Indexes

Our search indexes are currently served from a single location in the USA, this task is to create globally redundant search indexes to improve application reliability. This work will be done over the course of several releases.

Story What does SOLR cost to run compared to Azure Search?

SOLR is a search technology similar to Azure Search. There are a mix of pros/cons for each platform. But before getting to deep into that list we wanted to perform a cost analysis.

Results: From and R&D setup, the cost of both platforms is almost equal. But when scaled up with Geo-redundancy and enough power to run a robust search index, SOLR on dedicated virtual machines is about half the cost of Azure. This does not take into account the cost to maintain either platform, only the actual Azure hosting costs.

Sub-task Migrate Technolutions MP3 content to replace current Media Library components

Migrated audio files from old Media Library (Technolutions) service to use SDL for hosting and streaming on YSM websites.

Task Remove Adoptive Temporary Storage from Azure

This task was to move an archive of files from Adoptive from expensive storage in Microsoft Azure to more cost effective Storage@Yale. The other benefit is that we can grant access to staff to the Yale solution but we were not able to easily grant access to files stored in Azure.

Task Remove Application Insights that are not in use

Application Insights is used to monitor applications hosted in Azure. This task reviewed and eliminated instances where the monitoring is no longer necessary and was incurring monthly costs.

Task Cleanup Sandbox in Azure

We use a sandbox for testing infrastructure settings before migrating them into production. This task was to go through and remove anything we are no longer testing.

Task Delete Adoptive Backup from Azure

This task was to remove one of the three copies we have of this data. We have migrated it to a less expensive Storage@Yale drive which also makes the content accessible to staff in the department.

Task Shrink Main Drive on YSMTRDPCD1

This task was to reduce the size of the current Program Files drive on the virtual machine from 1TB to 16GB. This change requires all applications to be reinstalled after creating the new, smaller drive. There are three identical servers this will be applied to, this is the primary server and has some additional services and dependencies specific to this server.

Task Shrink Main Drive on YSMTRDPCD2

This task was to reduce the size of the current Program Files drive on the virtual machine from 1TB to 16GB. This change requires all applications to be reinstalled after creating the new, smaller drive. There are three identical servers this will be applied to, this is the second which resides in USA and is only setup as a failover to the primary USA server so there is no impact during this change, even if problems were to arise during the change.

Task Shrink Main Drive on YSMTRDPCD3

This task was to reduce the size of the current Program Files drive on the virtual machine from 1TB to 16GB. This change requires all applications to be reinstalled after creating the new, smaller drive. There are three identical servers this will be applied to, this is the first which resides in Europe and is only setup as a failover so there is no impact during this change, even if problems were to arise during the change.

Task Reconfigure disks on the SDL Acceptance server

The acceptance environment for SDL was configured to use 4TB of disk space across four drives but only requires 400GB. This task moved everything to a single drive which is much more cost effective but did require significant changes including re-installation of SDL and moving all SQL databases.

Task Reconfigure storage for ARR Cache on the Vanity URL Servers

ARR Cache allows us to serve cached versions of pages to make our websites run faster. The cache is set to a limit of 32GB but the drive we setup is 1TB in size. This task shrank the drive to 32GB to help us save money in Azure since we do not need 1TB of space.

Task Test Vimeo Content that was converted

This was a test that after the conversion, the T3 web pages continue to display video content and that it is coming from Vimeo.

Result: This test passed but a related bug was identified with the thumbnail poster that displays. TECH-2885 was created to addressed this problem separately since it does not impact the use of the new Vimeo player.

Task Create a dev/acceptance SQL instance and elastic pool in the main subscription

This task created a similar, cost effective solution for hosting our development SQL databases.

Status: Won't do because the cheapest solution for elastic pools is $75/month, making it more cost effective to host development databases in basic SQL for $4.99/month.

Task Investigate geo-redundancy for YMS and YM

This investigation was to consider the complexity of making YM and YMS geo-redundant since this includes web applications, databases and search indexes.

Results: As suspected, this is not an easy task as it has many moving parts that have to be considered carefully. But we have come up with a plan to break this up into smaller, more manageable tasks that will allow us to move parts without impacting the websites. We will start by moving the search indexes, then SQL and finally the web applications. As a result we have will have geo-redundancy for our applications in a more cost effective setup.

Task Review and assign ownership to Azure alerts

The alert mechanisms from Azure required some modification to ensure the correct people are being alerted when issues arise.

New Projects

The team has begun work on the three new projects: Media Library (this will introduce streaming video and audio storage to the Profile System for people, organizations, news and events), CV Builder (to generate faculty CVs from the profile system), and a rebuild of the Flyerboard (the school's digital signage system). While these projects will not launch until 2018, below is a list of tasks the team completed this week:

Type Title Description Project
Task Create a new text box "Role" in "Lecture/Presentation" section

Added new textbox Role in the Lecture/Presentation section on Add Activity page in profile system. This helps capture the role of the user in the activity which will be used in CV builder.

CV Builder
Task Add new section "Affiliation" in Add Activity map

Added a new section "Affiliation" in Activity Map->Add Activity in profile system to capture non-Yale activities, which is required in CV builder.

CV Builder
Task Make Location required field in Activity Map

The field Locations field in profile Activities was made "required." This was done so that we can identify international/national/regional activity for CV builder.

CV Builder
Task Run Flyerboard Python project locally

As the team begins to rebuild the Flyerboard application, this task was to figure out how to run the Flyerboard Python project locally on development machines.

Flyerboard
Task Media Library storage inquiry

We are evaluating places where it is possible for us to accidentally store large files or large numbers of files with high throughput which result in high cloud hosting costs.

The result of this review is that the testing we are performing for the Media Library project is very low cost.

Media Library
Task Create Primary Media Library Navigation in YMS

This task added a new main navigation item for Media Library that is only viewable by super admins during development.

Media Library
Task Plyr.io investigation

We are investigating the possibility of using a new player for audio and video to replace the current setup.

Results: Ideally we would use a single player but as it turns out, most for reasons around accessibility, we will have to use multiple players and rely on the web interface to implement the best player for the type of content being played back. This will provide the best user experience possible and in some ways, simplifies our work by not having to worry about resolving compatibility issues a single player will experience over time.

Media Library
Sub-task Create a video-player component

The profile system did not have a player for audio/video content, this task put one in place for the new Media Library currently under development.

Media Library
Submitted by Justin Fansler on November 17, 2017