[Requirement #10381] - Ensure the source code repository is managed correctly
- Created Phoenix5 branch in Xian(Zero).

--HG--
branch : Phoenix5
[Ticket #10746] - Workstation: the user must be warned when opening studies that are being processed

- technical review changes.  update messages to be more consistent with #10747
- "One or more studies you selected are being processed. They may be incomplete or contain out-of-date information. Do you still want to continue?"

--HG--
branch : Phoenix5
[Requirement #10739] - Webstation must exit when user session ends
- Minor hack to use the ImageServer's "ClientTimeoutWarningMinDuration" setting when deciding whether or not to force a call to the server for session renewal.

--HG--
branch : Phoenix5
[Ticket #10746] - Workstation: the user must be warned when opening studies that are being processed

- sprint review changes.  update messages to separate out opening single or multiple studies

--HG--
branch : Phoenix5
[Requirement #10746] - Workstation - the user must be warned when opening studies that are being processed
- From Sprint 4 review; it was noticed that priors could be loaded partially in the Workstation. Added a check for "In use" in the local store study loader - this never existed before because we didn't have a Work Queue until Marmot. Now that we have one, we can check the processing status.
- Workstation and Webstation now function pretty much identically; selected studies that are being processed cause the user to be prompted, and any priors that are being processed just don't load, and the user sees an "In Use" warning in Easel and the RCCM.
- Changed the name of StudyLoaderCheckOptions to StudyLoaderOptions, and changed the property name from CheckInUse to IgnoreInUse because I thought its meaning was a little clearer. Note this is a polar opposite meaning, so I had to change false->true and vice versa.
- Removed 2 methods that have been decorated obsolete for a long time now (OpenStudyHelper).

--HG--
branch : Phoenix5
[Requirement #10699] - The user can quickly capture key images
 * As per Sprint 4 review, updated so the virtual display set for key images isn't created.

--HG--
branch : Phoenix5
[Requirement #10752] - The user can select a standard orthogonal view, when possible
[Requirement #10753] - The user can select a custom orthogonal view, when possible
 * Implement DICOM IOD series-level modules for modalities where reformatting is a common operation.
 * Reformatted images will now contain the original attribute values for tags defined in such series-level modules.

--HG--
branch : Phoenix5
[Requirement #10752] - The user can select a standard orthogonal view, when possible
[Requirement #10753] - The user can select a custom orthogonal view, when possible
 * Fixed ProgressGraphic to hide better when set to auto close and the task is already complete before drawing.
 * Fixed tolerance level for creating MPR slicing parameters from orthogonal basis vectors. The previous tolerance was too close to the precision of the numeric type, yielding false positive exceptions.
 * Keys for the VolumeCache construct now display their Guid for easy debugging.

--HG--
branch : Phoenix5
[Requirement #10740] - When users has access to one or more clinical features, Webstation will be branded "DX"

- Fusion is a clinical feature that is only available with Viewer.Clinical token

--HG--
branch : Phoenix5
[Requirement #10740] - When users has access to one or more clinical features, Webstation will be branded "DX"

- code review changes.  Use PermissionHelper.IsInRole rather than Thread.CurrentPrincipal.IsInRole

--HG--
branch : Phoenix5
[Requirement #10740] - When users has access to one or more clinical features, Webstation will be branded "DX"

- code review changes.  Use PermissionHelper.IsInRole rather than Thread.CurrentPrincipal.IsInRole

--HG--
branch : Phoenix5
[Requirement #10729] - WebstationDX will have a dark theme
[Requirement #10759] - Webstation will have a light theme
 * Made select members of Application class virtual.

--HG--
branch : Phoenix5
[Ticket #10760] - RIS-Viewer integration does not interact well with Hanging Protocols

Made one final change to RIS-Viewer integration, in response to feedback from Sprint Review:
 * When "Create Report and Open Images" is invoked, in the event that no images are found for the procedure(s) being reported, then instead of just showing a message on the reporting component saying that No Images were found, we now try to open any images associated with the same order. The rationale for this behaviour is that images for multiple procedures may have been acquired as a single study, and therefore the images "associated" with the procedure(s) being reported may actually be associated with a different procedure under the same order.  Since we don't currently support MPPS, we have no way of knowing for certain, so the safest thing we can do in this case is try to open any images associated with the order.

 * If we still can't find any images, then we show a message on the reporting component saying that No Images were found.

 * Unlike in the "View Images" tool, we don't ask the user to confirm whether they would like to try opening images related to other procedures in the order, we just do it. The rationale for this choice is that, in the case of "Create Report and Open Images", the introduction of a modal confirmation dialog would complicate the user experience to an unacceptable degree. Since there is no possible harm that can come from attempting to open other procedures' images, we just go ahead and do it.  It is then up to the user to determine whether the viewer workspace does in fact contain  images related to the procedure(s) that are being reported.

--HG--
branch : Phoenix5
[Requirement #10381] - Ensure the source code repository is managed correctly
- When built cold, the Team viewer was failing because the RLE codec was not being built, but was being copied from the source folder.
- Building Team viewer fixed some resource designer files.

--HG--
branch : Phoenix5
[Requirement #10782] - WebPortal can no longer be installed standalone for use over a WAN
More updates to get working.  This seems complete, although requires some more testing:
- Had to make two changes in Xian:  One to make a constructor public, and the second to fix a bizarre bug with how we were naming the header streaming threads that I saw a crash for.
- Updated the Portal configuration so the websocket listen ports did not conflict with the ImageServer by default.
- Cleaned up some more extension ocnfiguration.  Removed some extensions not being used in the WebPortal, and made some adjustments for streaming loader.
- Updated the WebPortal buidl to build CC.ImageViewer.Utilities.Imaging since its now a depency.
- Updated the default ArchiveServerheaderPort configuration to point to the debug port for this.  The installer might have to update this now.
- Updated the WebViewerLoader.cs to now include streaming ports as specified by WebViewerServices settings.  This makes it so that the same node can be used either in the WebPortal or IS.  Its a bit of a hack, but it works.

--HG--
branch : Phoenix5
[Requirement #10764] - Consolidate the copyright notices and licensing to be consistent with GPLv3 in the open source repository
- The C++/CLI files in the DICOM codec(s) were missing a #pragma before the "region" declarations, which caused the build to fail.

--HG--
branch : Phoenix5
[Ticket #10383] - Perform design reviews

- fix a problem where search for "From date" in SIQ will not include SIQ for that date, but will only include any SIQ starting from the next day

--HG--
branch : Phoenix5
[Requirement #10383] - Perform design reviews
[Ticket #10384] - Perform code review
 * Fixed the MPR volume cache API to allow calling code to handle exceptions thrown while loading a volume in the background.
  * If no handler is specified, exception will be logged and suppressed.
   * This is safe because you still need to access the Volume property in order to do anything productive with MPR.
   * Doing so will trigger a synchronous load if the asynchronous load had failed due to exception.
   * Thus, if the exception is real, it will be encountered again and this time thrown on the UI thread.

--HG--
branch : Phoenix5
[Bug #10793] - MPR display sets are missing total image count and total display set count
 * Fixed the instance number and display set number annotation items to show the total image and display set count when the image is part of a generated display set (like MPR).

--HG--
branch : Phoenix5
[Bug #10792] - In MPR, the first image almost always comes up black
 * Adjusted the image slice range computation by one so that the range more closely coincides with what is expected of MPR.
  * To understand why, consider that an MPR volume is represented by voxels of a non-trivial depth.
  * However, the voxels are addressed by an integer along the depth axis.
  * The patient position for an entire voxel is thus associated with one specific corner (the "low" corner).
  * The slicing range computation performs the iteration from the "high" end of the volume, and works back down to the "low" end.
  * Thus the first (0th) image position is actually not associated with any voxel, and VTK generates a black image for the first slice.
  * This only happens for perfectly orthogonal views of the volume.
   * On oblique views, it could be argued that both boundary slices would be equally relevant.
   * However, there is less visible anatomy on the boundary slices of oblique views anyway, decreasing the importance of this scenario.

--HG--
branch : Phoenix5