Connexion v15 Release Notes
New Features
Enable/Disable channels (Disabled = cannot start channel).
Channels that are disabled are indicated with a strike-through font and cannot be started by a user. This removes any ambiguity for a service user as to whether the channel is meant to be running, or not.
Channel Tags
Channel tags provide a way of "tagging", or classifying channels with common attributes similar to the way articles can be tagged within a blog. For instance, a set of channels in the system may have tags such as "FFT", or "VIP".Create Tags
Add Tags to all Channels in a Tab (right-click on Tab)
Add Tags to selected channels using Manage Channels window
Search by tags in the Manage Channels window
Display Tag abbreviations in channel
Search by tags in Channel Search (use the syntax ~TAGABBR or ~TAGNAME (example: ~FFT). You can still search without the tilde, but you'll get results from all non-tag matches as well.
Filter by tags in the Dashboard
** Remove channel tags - 'production channel' will need to be re-implemented as a tag **
Tab Markers
Add colorization to a Tab to give a visual indication of its purpose, or importance.Multi-Map Tables
System Globals
System Globals allow users to define properties, passwords, tables, Custom Code, and connection strings at a global level that are available to a subset of channels within the system. With exception of Global Code, global elements are defined at the Tab, Group, or System level and are available to any channel that falls under the hierarchy. So a Tab setting is available to any Channel under that Tab, and a Group setting is available to any Channel that lives under the Group. System settings are available to any Channel in the system.Global Properties
In most text-based controls, type '{system.' or '{group.' or '{tab.' to trigger the globals insertion routine.
Use the down arrow to choose the global you wish to use. The global will highlight grey and when hovered display details. Click the magnifying glass icon on the popup to edit the global value.
Note that globals have locks.Global Code
A single custom code assembly that can be used in other Custom Code based devices.
Add a reference to the global code by clicking on the globe icon (in the center toolbar) and selecting the 'Include global reference'.
Access this from any Custom Code based device
Global Passwords
Access global passwords within devices
Global Tables
Global Database Connection Strings
Create Connection strings that can be used devices in the system
Add within Devices that support the standard Database Edit Control
Globals can be imported and exported.
Execution Groups
Queue Device Improvements
Support for MSH-4 (Sending Facility) in the Queue
New Error Queue Workflow
Error count shows up regardless of age
Messages can be "Shelved" which moves them out of the Error queue
"Shelved messages" can be queried
Errors for all time ('Error Total') show under a new item: ET. This only shows when E and ET are different. So E = Errors Today, and ET = Error Total (all time). ET only shows up when E != ET.
Improved HL7 Inbound Device
Performance improvements
Reduced memory footprint
Ipv6 support
Diagnostics tab to display available network adapters
User Management Dashboard
Display Connection time, Idle time, and connected IP address
Ability to force unlock channels
Ability to send messages to other users
Ability to force logoff other users UIs.
Improved Manage Custom Plugins Window
File Reader Device - Support for reading Compressed files
Improved server screen
Turn the server screen into a tree to allow grouping. Also use grouping in the server drop-down and display more server information to make it more obvious who each server is. Show the currently connected server in green.
Import / export servers list
Auto-logout of Connexion / RIM
After period of inactivity both Connexion Client and the Gateway Management UI will log out for security purposes.Message viewer obfuscation.
Hides message data that potentially contains PHI displayed on the screenCustom Code Device - C# 7.0 and Roslyn compiler support
Reimplemented the underlying internal compiler class to take advantage of the Rosyln compiler
Support for .NET 4.7.1
Message watermarking
Provide a mechanism to 'stamp' a message at its origin / ingestion point and then validate that stamp at the ultimate destination. For example, in the integrator framework it may make sense to stamp all ingestion channels with a customer ID / constant. Then immediately before ingestion into the datacenter systems, validate the expected customer ID / constant is present.
Step one is to create the watermark. This is done on the first queue in the message flow by navigating to the settings / watermark tab and then setting the action to 'set'. At this point you can choose to append a constant value (like a customer id) to the existing sending facility, or provide a brand new sending facility value. By default, we preserve the sending facility field so that it can be queried in the queue worklist.
Step two is to navigate to the final queue in the final channel of the workflow, navigate to the settings / watermark tab, and select the 'Verify' option. You then enter one or more values that you'll accept. There are two syntaxes which are supported. To check for a fixed value, simply enter it into the 'match list'. To accept any sending facility value followed by a constant, use the syntax -{WhateverYouEntered}.
Messages which fail verification are moved to the error queue.
If you require more advanced functionality, we've provided two event hooks:
IMessageContext.UserStorage
Provide persistent (and transient) user storage that belongs to the message
Persistent objects are serialized as JSON and stored as part of the message attachments
Unlike the UserContext, persisted objects survive across Queue boundaries
User Storage / File Writer
An improved 'user context' storage area which has the ability to persist values of any (serializable) type. The user context is now deprecated in favor of 'Context.UserStorage'. Add your object to the user storage using the following syntax. Please note the parameter to specify whether or not this will be persisted. Also note that your object must be serializable. We recommend the use of the DataContract and DataMember attributes in the System.Runtime.Serialization namespace.
View the user storage objects in the Attachments pane within the queue:
Consume your user storage objects within a custom code device using the UserStorage.Get<targettype>(Key). We are also investigating exposing the user storage within built-in devices which currently expose the user context. The File Writer now allows the use of UserStorage where UserContext is supported. We've also expanded upon the UserContext to allow the direct access of object values using JPath syntax:
Quick Navigation
Use ctrl + tab key combination to bring up a window showing recently visited channels, as well as system pages. While holding down the control key, use the tab key, arrow keys, or mouse to navigate to a different view. After using the quick view window, the results are stored so that the list is available on subsequent UI restarts.
Queue Device Caching
The standard sql-based queue now implements an input cache. Where possible, the queue will now cache received messages in memory instead of retrieving the message(s) from the database. If the queue is in a sleep state, it will wake up upon receiving a message and immediately push this message down the channel. This has two benefits:
Fewer queries to the database and potentially lower network traffic.
Less time waiting for a message to process on low volume queues (or during periods of infrequent messages).
This feature does not work with branched messages or message arriving from a secure sender device (the previous default behavior applies).
This feature can be disabled in the queue configuration ("Disable Message Caching").
Copy / Paste device - the ability to copy an entire device and paste into other channels
Miscellaneous
Upgrade all dependant libraries
Add Edifact libarary EDI messages types
Re-implement all installers so we can better handle .NET Standard libaries and to fix issues with interdependent libaries
Support for Mongo Queue Db statistics within Connexion
Update all projects except Connexion.Core and Connexion.Share to .NET 4.6.1
Improve locking and thread usage during Connexion channel startup
Fixed thread contention issue when stopping many devices at the same time
Move Connexion.ErrorNumberManager to Visual Studio 2017
Various updates to better handle readonly access to UI elements that have been disabled as a result of user access permissions
Include channel lock information in the channel dashboard
Save/restore channel running state (admin-mode, should it be exposed?)
Client startup loading / speed.
Improve loading of the HL7 transform v2.
Dashboard can now be 'popped' so it can be displayed outside of the standard window.
Addition of StartAsync / StopAsync methods.
Ability for version 15 client connecting to a 14.5 server to attempt to launch the correct version of the client app (v15), and visa-versa.
Add 'oldest queued message' to the dashboard.
Jira - Feature Requests
Ticket | Feature |
|---|---|
CNXN-3096 | Supply a way to search changes across all channels |
CNXN-3097 | Supply a way to get items in User Storage using jPath within File Writer |
CNXN-2873 | End to end data validation (Message Watermarking) |
CNXN-3089 | Add ability to import/export a message (Message entity record) |
CNXN-3039 | Improve startup performance |
CNXN-3038 | Make version 15 map tables more compatible with version 14.5 |
CNXN-3032 | When using Edit & Requeue Selected Message the Keywords should be copied to the new message |
CNXN-3028 | Secure Sender Device - Add Connection and Send timeout configuration options |
CNXN-3026 | Add Network Interface info to System Information text |
CNXN-3021 | Add Diagnostic Tab to HL7 Inbound Device |
CNXN-3015 | Option to not require typing 'yes' into yes dialog |
CNXN-3011 | Remove the cap on returned results in the advanced search UI |
CNXN-3010 | Add the site name to the server drop-down list |
CNXN-3009 | Allow the expand/collapse operation of treeviews on auto-disabled UIs. |
CNXN-3006 | Ability to use {usercontext.X} in FileWriter Destination field |
CNXN-3005 | Grouping Connexion Servers under "Server Connections" screen |
CNXN-3000 | Export/Import Connections list |
CNXN-2999 | Filter by Tags in the Dashboard/Channel Mgr/Relevant UIs |
CNXN-2998 | Add Total Row Count or Row Numbers to Dashboard |
CNXN-2997 | Copy Device Key |
CNXN-2996 | Need a way to moving in error messages to a different status |
CNXN-2993 | Add menu item to copy device/channel key |
CNXN-2991 | Connexion User Management Dashboard |
CNXN-2990 | Authorization setting to close Connexion UI after configurable inactivity |
CNXN-2987 | Enable/Disable Channels Feature |
CNXN-2981 | Channel Import and Disabled Devices |
CNXN-2979 | Add Device filter option in Manage Channels |
CNXN-2970 | HL7 transform v2 function may not resolve properly when using an external type as a parameter |
CNXN-2967 | Mechanism to save / apply channel running state across a system |
CNXN-2966 | Channel - Log start/stop time of a channel |
CNXN-2964 | Make GetDevices<T> more flexible with type matching |
CNXN-2962 | Add option to explicitly disable message diffing |
CNXN-2961 | add "Run Diagnostics" to File Writer Devices |
CNXN-2953 | Remove filtering from file purge provider (too complicated / unnecessary) |
CNXN-2951 | Add 'move to' and purging to FTP reader device |
CNXN-2947 | Make the advanced search better by not making the channel name a link |
CNXN-2946 | HL7 Core - Add a method to replace all repeating OBX-5(s) in the message with a full OBX segment |
CNXN-2945 | Allow an extra digit in the queue alert timespans |
CNXN-2942 | HL7 Core - Support for splitting/recombining segments using ADD segments |
CNXN-2938 | Add events to Integrator Outbound (and Integrator Inbound?) |
CNXN-2936 | Support reading from archives (file reader / ftp reader) |
CNXN-2931 | Pretty print JSON message objects in queue preview window |
CNXN-2928 | Import Configuration from Currently Loaded Channel |
CNXN-2921 | Create Variable for Computer Name |
CNXN-2910 | Queue column to show the sending facility (MSH-4) |
CNXN-2908 | More flexibility around alerts generated by recoverable errors |
CNXN-2853 | HL7DateTime.ToDTM - Add an overload that adds/removes the Timezone offset in the string |
CNXN-2846 | Add option to remove empty lines created by razor engine (in Template device) |
CNXN-2831 | Create Folder and Folder Icon for all manually entered paths |
CNXN-2803 | Upgrade Connexion to support/use SQL Server 2016 Express LocalDB |
CNXN-2757 | Upgrade connexion compiler to 'roslyn' to enable new language features |
CNXN-2739 | Upgrade .NET library to .NET 4.6.2 to take advantage of new database and Xml support |
CNXN-2622 | Multi-column map tables |
CNXN-2615 | Implement Globals |
CNXN-2521 | In rare cases where a device requires more than 60s to start/stop |
Jira Bug Fixes
Ticket | Feature |
|---|---|
CNXN-3069 | Include/Exclude Channel Tags - Menu item opens to the left |
CNXN-3067 | Should prevent v15 from connecting to a v14 server |
CNXN-3065 | Gateway Management UI - Should need to lock RA to delete its channels |
CNXN-3062 | Should prevent v14 from connecting to a v15 server |
CNXN-3061 | Importing .ri from v14.5.x into v15.0.x throws FaultException |
CNXN-3060 | HL7 Transform Device V2 - Channel loads in v14, but not v15 |
CNXN-3059 | Users with limited privlages can create tabs but not access them |
CNXN-3055 | HL7 to Xml Device - does not generate correct xml for version 2.6/2.7 of the standard |
CNXN-3053 | Cannot delete tags in tag manager |
CNXN-3051 | Running Diagnostic from FileWriter when using {usercontext.X} in the Destination field causes it to be created |
CNXN-3049 | InboundHL7Device - Ipv6 not working correctly |
CNXN-3048 | Unable to delete RA channels in Gateway Manager UI |
CNXN-3047 | Pause option doesn't display when adding a second mongo queue to existing channel |
CNXN-3045 | Queue statistics calculated incorrectly when RA Branch device sends data to it |
CNXN-3040 | UpdaterB incorrectly writes logs to Integrator.Updater.txt |
CNXN-3036 | Integrator tags duplicate when UI times out and user logs back in |
CNXN-3035 | Gateway Install - took 12+ minutes to install. Issue with NGen'ing of the assemblies |