Connexion v15 Release Notes

Connexion v15 Release Notes

New Features

  1. 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.
     



  2. 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".

    1. Create Tags

    2. Add Tags to all Channels in a Tab (right-click on Tab)

    3. Add Tags to selected channels using Manage Channels window

    4. Search by tags in the Manage Channels window

    5. Display Tag abbreviations in channel

    6. 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.

    7. Filter by tags in the Dashboard



    8. ** Remove channel tags - 'production channel' will need to be re-implemented as a tag **

  3. Tab Markers
    Add colorization to a Tab to give a visual indication of its purpose, or importance.




  4. Multi-Map Tables

  5. 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.  



    1. 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.



    2. Global Code 

      1. A single custom code assembly that can be used in other Custom Code based devices.



      2. Add a reference to the global code by clicking on the globe icon (in the center toolbar) and selecting the 'Include global reference'.

      3. Access this from any Custom Code based device

    3. Global Passwords

      1. Access global passwords within devices



    4. Global Tables

    5. Global Database Connection Strings

      1. Create Connection strings that can be used devices in the system

      2. Add within Devices that support the standard Database Edit Control

    6. Globals can be imported and exported.

  6. Execution Groups



  7. Queue Device Improvements

    1. Support for MSH-4 (Sending Facility) in the Queue



    2. New Error Queue Workflow



      1. Error count shows up regardless of age

      2. Messages can be "Shelved" which moves them out of the Error queue

      3. "Shelved messages" can be queried



    3. 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.



  8. Improved HL7 Inbound Device

    1. Performance improvements

    2. Reduced memory footprint

    3. Ipv6 support

    4. Diagnostics tab to display available network adapters



  9. User Management Dashboard

     

    1. Display Connection time, Idle time, and connected IP address

    2. Ability to force unlock channels

    3. Ability to send messages to other users

    4. Ability to force logoff other users UIs.

  10. Improved Manage Custom Plugins Window



  11. File Reader Device - Support for reading Compressed files 



  12. Improved server screen

    1. 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.

    2. Import / export servers list

  13. Auto-logout of Connexion / RIM
    After period of inactivity both Connexion Client and the Gateway Management UI will log out for security purposes.



  14. Message viewer obfuscation.
    Hides message data that potentially contains PHI displayed on the screen



  15. Custom Code Device - C# 7.0 and Roslyn compiler support

    1. Reimplemented the underlying internal compiler class to take advantage of the Rosyln compiler

    2. Support for .NET 4.7.1

  16. Message watermarking

    1. 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.

    2. 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.



    3. 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}.

    4. Messages which fail verification are moved to the error queue.

    5. If you require more advanced functionality, we've provided two event hooks:

       



  17.  IMessageContext.UserStorage

    1. Provide persistent (and transient) user storage that belongs to the message

    2. Persistent objects are serialized as JSON and stored as part of the message attachments

    3. Unlike the UserContext, persisted objects survive across Queue boundaries

  18. User Storage / File Writer

    1. 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.



    2. View the user storage objects in the Attachments pane within the queue:



    3. 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:

  19. Quick Navigation

    1. 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.

  20. 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:

      1. Fewer queries to the database and potentially lower network traffic.

      2. 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").

  21. Copy / Paste device - the ability to copy an entire device and paste into other channels

  22. Miscellaneous

    1. Upgrade all dependant libraries

    2. Add Edifact libarary EDI messages types

    3. Re-implement all installers so we can better handle .NET Standard libaries and to fix issues with interdependent libaries

    4. Support for Mongo Queue Db statistics within Connexion

    5. Update all projects except Connexion.Core and Connexion.Share to .NET 4.6.1

    6. Improve locking and thread usage during Connexion channel startup

    7.  Fixed thread contention issue when stopping many devices at the same time

    8. Move Connexion.ErrorNumberManager to Visual Studio 2017

    9. Various updates to better handle readonly access to UI elements that have been disabled as a result of user access permissions

    10. Include channel lock information in the channel dashboard

    11. Save/restore channel running state (admin-mode, should it be exposed?)

    12. Client startup loading / speed.

    13. Improve loading of the HL7 transform v2.

    14. Dashboard can now be 'popped' so it can be displayed outside of the standard window.

    15. Addition of StartAsync / StopAsync methods.

    16. 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.

    17. Add 'oldest queued message' to the dashboard.

Jira - Feature Requests

Ticket

Feature

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

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