[Requirement #11223] - Implement MIP for ImageViewer
 * Improvements to MPR and math support in ImageViewer core.

--HG--
branch : Rigel
extra : rebase_source : 989d7897cee0994e68484b8d48c567cae4d3736d
[Requirement #11107] - Ensure the source code repository is managed correctly
- Created Rigel branch in Jin,Docs,Xian

--HG--
branch : Rigel
[Requirement #11137] - IronPython scripts can be written to perform study de-identification
- Minor updates to DicomTagPath.

--HG--
branch : Rigel
[Requirement #11137] - IronPython scripts can be written to perform study de-identification
- Changed DicomTagPath so VR can be specified; only needed for terminal tag as the rest must be SQ.
- Added ability to enumerate all attributes on the path. Pathing needs to be enhanced a lot more before we're done.

--HG--
branch : Rigel
[Ticket #11142] - The research PACS shall be accessible via a REST API

Created an RP-specific Linq-to-Sql-based implementation of the IPersistenceContext framework that is defined in Enterprise.Core.  Not sure if this is a great idea or not (it took a bit of wrangling to adapt L2S to fit those interfaces, and it's still not a perfect fit), but the upsides are:
 * re-use of the PersistenceScope infrastructure for managing connection/transaction lifetime.
 * consistent data access patterns via implementations of IPersistenceBroker.
 * a (vague) sense of consistency with other CC products that make use of the IPersistenceContext framework.

If it turns out to be problematic, we can make other plans, but for the moment it seems to work well enough.

--HG--
branch : Rigel
Merge

--HG--
branch : Rigel
[Ticket #11148] - The ImageServer shall support a WCF API for configuration of research partitions

Did some initial ImageServer refactoring to make it so the ClearCanvas.ImageServer.Common
assembly is no longer dependent on the ClearCanvas.Common.Model assembly.  This included
moving a number of classes that were dependent on the Model assembly into the
ClearCanvas.ImageServer.Core assembly (where they should have been anyways), and then
doing some small adjustments to classes to remove the dependency for classes that
stayed in the common assembly.  The biggest change was in the Server.Platform static
class, a number of methods were moved into new helper classes.

This will allow putting all of the data contract classes into ClearCanvas.ImageServer.Common
that are currently primarily being serialized into the database.  These classes also will
be usable via the new WCF API if necessary, and eventually we can make the model
classes automatically handle serialization and deserialization of these
database fields.

--HG--
branch : Rigel
rename : ImageServer/Common/ServerAuditHelper.cs => ImageServer/Common/Helpers/ServerAuditHelper.cs
rename : ImageServer/Common/FileSystemMonitor.cs => ImageServer/Core/FileSystemMonitor.cs
rename : ImageServer/Common/FilesystemSelector.cs => ImageServer/Core/FilesystemSelector.cs
rename : ImageServer/Core/ServerHelper.cs => ImageServer/Core/Helpers/ServerHelper.cs
rename : ImageServer/Common/Helpers/StudyComparer.cs => ImageServer/Core/Helpers/StudyComparer.cs
rename : ImageServer/Common/ServerFilesystemInfo.cs => ImageServer/Core/ServerFilesystemInfo.cs
rename : ImageServer/Common/ServerPartitionMonitor.cs => ImageServer/Core/ServerPartitionMonitor.cs
rename : ImageServer/Common/StorageLocationCache.cs => ImageServer/Core/StorageLocationCache.cs
[Ticket #11142] - The research PACS shall be accessible via a REST API

Refactoring of IPersistenceContext:
 * In order to use the IPersistenceContext infrastructure with Linq to SQL, it needed a bit of refactoring. Specifically, it assumed that all entities derived from the base class Entity, but this poses a problem for L2S because the Entity class defines OID as an object, whereas L2S expects it to be strongly typed.
 * Fortunately it wasn't too hard to remove this restriction, and modify the IPersistenceContext interface to work with type object rather than enforcing inheritance from Entity.
 * This means we can just use the default L2S generated entity classes, and they do not need to inherit any particular base class.
 * Modifications to ImageServer code are guaranteed to have no impact, because the affected methods were all throwing NotImplementedException in any case.

Removed inheritance from Entity in ResearchPacs.dbml.

--HG--
branch : Rigel
[Ticket #11146] - The ImageServer shall support research partitions

Added in the tables to specify a partition as a research partition and the
ability to add alternate AE titles for a partition.  This checkin should include
all the DB updates including an upgrade script and updates to the standard
table creation scripts to include the new columns and tables.  The
InsertServerPartition stored procedure was also updated to include setting the
ServerPartitionTypeEnum value.

--HG--
branch : Rigel
Merge

--HG--
branch : Rigel
[Ticket #11146] - The ImageServer shall support research partitions

General updates to support multiple listening AE titles for a partition through
the new ServerPartitionAlternateAeTitle table.  Also applied some resharper
cleanup items.  I'm thinking about removing the AllowKOPR option in the
ServerPartitionAlternateAeTitle, due to the non-intuitive way the option
works for devices, and I'm not sure if it makes as much sense in the research
AE title use case.

--HG--
branch : Rigel
[Ticket #11142] - The research PACS shall be accessible via a REST API

 * Roughed in the implementation of the 'users' and 'usergroups' APIs as defined in the spec document.
 * The usergroups API is pretty much complete, although there is a bit of refactoring/clean-up to be done.
 * The users API works as a read-only API right now. Creating and updating is not yet implemented.

--HG--
branch : Rigel
[Ticket #11146] - The ImageServer shall support research partitions

Updates to get working secondary AE titles for research partitions.  The basic
functionality works with listening on the secondary AE title, and also auto-
reloading of the information when the database tables update.  Note that I had to
rewrite the ServerPartitionMonitor to make this work to handle the
multiple AE titles per partition.  There's still some work to have the AE
information be stored somehow in the database, if necessary.  (Probably a
series level table change.)  Also changed the ServerPartitionMonitor to default
check every 2 minutes for changes in the database.  Also caught a couple GUI
updates that were missed with prior checkins related to the WorkQueue table
and some of the prior refactoring.

--HG--
branch : Rigel
extra : rebase_source : be3e6cf3067577827c8933f8abbe1e3deebd99be
Merge

--HG--
branch : Rigel
[Ticket #11146] - The ImageServer shall support research partitions

Re-implemented some updates that were lost when I tried to do a "rebase".
Most of the updates were simply changes to reflect the refactoring done to
make CC.IS.Common not be dependent on CC.IS.Model.  Also had to re-do
ServerPartitionMonitor, which was the main code to rework.   Retested and looks
like the adding/removing partitions and secondary AE titles works properly.

--HG--
branch : Rigel
[Ticket #11142] - The research PACS shall be accessible via a REST API

In order to get the validation stuff in Enterprise.Core.Modelling namespace working with L2S, a bit more refactoring was needed:
 * IDomainObjectValidator now consumes type Object rather than DomainObject, and only the NHibernate implementations of core interfaces will actually require the object to be a subclass of DomainObject.

--HG--
branch : Rigel
[Ticket #11142] - The research PACS shall be accessible via a REST API

 * Created an L2S implementation of IUniqueConstraintValidationBroker.
 * Did further clean up on the L2S classes, removing noise that was originally put there by the dbml code generator but isn't really needed.

--HG--
branch : Rigel
[Ticket #11142] - The research PACS shall be accessible via a REST API

 * Reverting ValidationRuleSetCache, which was accidentally committed in previous commit with a change that was made for debugging purposes.
 * Temporarily added a stub implementation of a configuration service, to get around an error that is being thrown due to this service being missing right now. Once we get everything integrated with the ES, this stub should be removed.

--HG--
branch : Rigel
Merge

--HG--
branch : Rigel
Non-code change.

--HG--
branch : Rigel