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 |
---|---|---|---|
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
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) | |
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) | |
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) | |
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 |
---|---|---|
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. |
|
Addition to automated Workday emails |
Added new Tech Team members to automated system emails. |
|
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 |
---|---|---|
Stuck on loading screen after duplicating an event |
Users would get stuck on a loading screen after duplicating an event. |
|
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. |
|
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 |
---|---|---|---|
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 |
---|---|---|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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 |
---|---|---|---|
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
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 |