CKM Release 1.16.0

Date: February 2021

New & Improved Functionality

Key

Summary

Description

Key

Summary

Description

CKM-374

Ability to directly open the archetypes after bulk-upload

When an editor bulk-uploads archetypes to CKM, the uploaded archetypes should directly be accessible afterwards. Therefore, after completion of the bulk-upload, the report of the successfully updated/imported archetypes now supports opening the archetypes directly from this report.

CKM-854

Reactivation of review rounds directly by editors (if e.g. closed accidentally)

Editors can now reactivate a recently closed Review Round directly from CKM. Reactivating a review round re-enables review submission by reviewers. This is occasionally useful if a review round was closed accidentally or further reviews are expected.

Reactivating a review round was previously only possibly by contacting Ocean. Even now, reactivating a review round should remain an exception: On closing a review round, all active review invitations have expired, and need to be reinstated on reactivating the review round.

To reactivate a review round, right-click on a review round in the Review Round Overview and select Reactivate Review Round.

CKM-1099

DV_SCALE support in archetypes

Add support for the new data type DV_SCALE as per SPECRM-19: Add support for Real values with DV_SCALEClosed for archetypes uploaded to CKM.

The data type is nearly identical to DV_ORDINAL but enables unconventional scales such as the BORG CR10 scale which allows non-integer values, e.g.

0.5 Very Very Slight (Just Noticeable)

DV_SCALE may replace DV_ORDINAL over time since it offers a superset of functionality. The most important difference is that REAL numbers are allowed and not only INTEGER. See https://specifications.openehr.org/releases/RM/latest/data_types.html#_dv_scale_class for details on DV_SCALE.

To support DV_SCALE in CKM archetypes, changes are required in the parsing, the canonical hash calculation, various display scripts, the comparison report, validation reporting, the new Data points reports, etc.

Also cp. CKM-1321: “DV_SCALE support in Templates”.

CKM-1209

Template Upload: Ability to download all current archetypes with warnings or errors to support editors in updating the template locally

On uploading a new or updated template to CKM: If there are archetypes with errors or warnings (such a that the canonical hash is not found or refers to an older revision of an archetype), it is now possible to conveniently download all available archetypes with warnings or errors in one zip-file. This is so that editors can more easily update the template with the latest or latest published archetypes.

For this purpose, it is possible to download either the latest published (i.e. stable whenever available) revisions or the latest (i.e. potentially unstable) revisions of these archetypes.

CKM-1238

Comprehensive Display of FHIR®Value Sets provided by an external Terminology Server and referenced in CKM archetypes in CKM

In CKM 1.15.0, we introduced support to connect to an external Terminology Server with a FHIR® API to display FHIR® Value Sets inline in the various archetype and template displays ( CKM-1216 Resolved - Connect to External Terminology Server to show value sets inline in the various archetype and template displays).

In addition to this, we now introduce a more comprehensive display of FHIR® Value Sets that have been registered with an external Terminology Server and are referenced in CKM archetypes.

In the display of an archetype in CKM, whenever an element links to a value set of the (configurable) external terminology server, a button will now displayed to open the value set in a new CKM tab. There, the Value Set is presented in more detail than this is possible inline.

Example DV_CODED_TEXT constraint_bindings in an archetype:

constraint_bindings = <
["SNOMED-CT"] = <
items = <
["ac0001"] = <terminology://fhir.hl7.org/ValueSet/$expand?url=http://hl7.org/fhir/vs/snomed-example-vs>
["ac0002"] = <terminology://fhir.hl7.org/ValueSet/$expand?url=http://hl7.org/fhir/ValueSet/example-hierarchical>
["ac0003"] = terminology://fhir.hl7.org/ValueSet/example-hierarchical>
["ac0004"] = terminology://fhir.hl7.org/ValueSet/SARS-CoV-2-symptoms/$expand>

>
>
>

Example Rule in an oet template:

<Rule path="/data[at0001]/events[at0002]/state[at0014]/items[at0016]">
<constraint xsi:type="textConstraint">
<termQueryId terminologyID="//fhir.hl7.org/ValueSet" queryName="$expand?url=http://hl7.org/fhir/vs/snomed-example-vs" />
</constraint>
</Rule>

CKM can only display information that is provided by the terminology server for the value set in its expanded form and using “includeDefinition=true”. Not all investigated Terminology Servers currently honour this parameter of the ValueSet $expand operation, cp. https://www.hl7.org/fhir/valueset-operation-expand.html

Customers that have access to a terminology server FHIR® API and would like to configure this terminology server for use with CKM, please contact Ocean.

CKM-1239

Related Resources tab of a template: Differentiate between directly and indirectly embedded templates and finetune display

The related resources view tab of a template lists all directly and indirectly embedded templates. However no indication is given if the embedding is only indirect. This is useful especially when updating a cascade of embedded templates:

Assume that Template C is embedded in Template B which in turn is embedded in Template A. If Template C is now updated, then Template B and - subsequently - Template A must be updated as well for the change to be picked up in the next revision of Template A.

If CKM detects that a template has an embedded template which itself has an embedded template, CKM will now split the embedded templates into directly and indirectly embedded templates and present them under different headings on the Related Resources Tab.

CKM-1258

Archetype Data Points Report for all or selected projects / with certain states

New report available from the Reports/Archetype Data Points Menu: Report on the frequency of ELEMENT data types in archetypes.

Can report on data points in all or selected subdomains/projects as well as for archetypes with certain states (e.g. only PUBLISHED archetypes).

CKM-1261

FHIR® Value Sets - If a 'designation' exists without a specific use for the requested language, display this as the main display and then the normal display value in brackets

This is only relevant for CKMs where a terminology server with a FHIR® API has been configured for use by CKM.

If a FHIR Value Set is referenced by an archetype or template in CKM and this value set contains designations for the various concepts without a specific use for the requested language, display this and then the normal display value in brackets when displaying this inline (when displaying an archetype or template).

For displaying inline this is useful because otherwise a Snomed value set that has been translated for, say, German by providing the German translation as a 'designation' would just display the English Snomed codes.

Example Value Set extract:

   <system value="http://snomed.info/sct" />    <concept>       <code value="21522001" />       <display value="Abdominal pain (finding)" />       <designation>           <language value="de-DE" />           <value value="Bauchschmerzen" />      </designation>    </concept>  

Whenever there is a designation in the requested main language (without region/variant), this is used as main inline display by CKM. The original display value from the value set is added afterwards in brackets.

Assumptions/restrictions:

  • The value set must carry the designation in the expansion (not just in the compose section). Terminology servers such as Ontoserver may enable this via “includeDesignations=true”.

  • For archetypes: this is relevant for the current display language of the archetype

  • For (oet) templates: The template must be in the server’s resource display language

CKM-1273

Improve warning on missing parent archetype when publishing a specialised archetype

On publishing a specialised archetype:

If the parent archetype is missing, the WRANF error message should be clearer, and explain that the v0 major version is updated to v1 when the parent archetype is published.

On publishing a specialised archetype, the parent (assuming it is already published) is not updated in the ADL except as a manual process.
Example:

  1. CLUSTER.tnm is created as v0.

  2. CLUSTER.tnm-pathological is created as a specialisation v0.

  3. The content is reviewed.

  4. CLUSTER.tnm is published. Now v1

  5. CLUSTER.tnm-pathological is now published as well BUT the ADL may still contain a reference to the unpublished v0 parent in its specialise clause

In this case, a WRANF error with a warning like this should be displayed:

This archetype specialises the parent archetype {0}, which cannot be found in CKM. Please note that on initial publication of the parent archetype, its archetype id changes from .v0 to .v1. This may need to be updated in any specialised archetypes as well.

CKM-1282

Remove number of different languages spoken from the community dashboard widget

Remove number of different languages spoken by users from the community dashboard widget. This is not very informative and could be misunderstood as the number of distinct translation languages for archetypes.

CKM-1283

Report on number of archetype languages as dashboard widget

Report on the number of translation languages for archetypes on the Dashboard as part of the “Our CKM Community in Action” widget.

Number of active archetypes → Number of different translation languages in these archetypes.

When clicking on this, open the detailed archetype translation details report.

CKM-1285

Create new user via REST API

Enable user creation via CKM’s REST API.

The Create User API operation accepts the following data elements:

  • username

  • password

  • firstName

  • lastName

  • emailAddress

  • organization

  • availableAsReviewer

  • countryCode

  • availableAsTranslator

  • secondaryEmail

  • hasToActivate

A successful request of this operation creates the CKM user and may activate the user account immediately, depending on hasToActivate. A welcome email to the new user using the email address provided in the request will be sent as part of the successful request.

An error response will be returned when the username or email address is the same for an existing user. Likewise, an error response will be returned if a user with a matching username who previously unregistered from CKM has contributed to CKM for example in review rounds or discussions. In this case, follow the process in the CKM user interface. An error response will also be returned if request data is invalid or causes integrity issues within CKM.

When an initial password is not provided in the Create User request, a password will be auto generated by CKM and the user will be required to use the Forgotten Password functionality to retrieve (reset) their password.

Administrators that have opted to receive new user notification emails are sent the new user notification email for each new user.

Example call:

curl -X POST "https://[ckm-domain]/ckm/rest/v1/users” -H "accept: application/xml" -H "Content-Type: application/json" -d "{ “username: “jane.doe“, "firstname": "Jane", "lastname": "Doe", “organisation”: “…” “available-as-reviewer”: ”true”, “email”: “…@…“, “country”: “CA”}"

CKM-1292

Add a configurable style tag to all ckm generated emails to support limited styling of ckm emails

CKM now supports the configuration of some limited CSS styling for emails sent out by CKM.

The following is an example configuration to customize font and font color, link color and style, and the also configurable email-suffix to be displayed in a different colour:

body, div, p, li, ul, span, * {font-family:tahoma,arial,helvetica,sans-serif; color:#555555;} a {color:#567ebc; font-weight:bold;} div.email-suffix, .email-suffix p {color:#A4A4A4; margin-top:15px;}

(The email suffix can also be configured and usually contains information on how to unregister.)

Note that not all email clients support all styling. This is beyond the control of CKM and it is therefore preferable that only simple styling is used for maximum display consistency across email clients.

Customers that would like to configure these styles are asked to contact Ocean with the configuration details.

CKM-1293

Internal: Add/improve sanity checks on creating/updating a review

Add additional internal sanity checks before a review can be submitted to better pick up any accidental problems (and resist malicious attacks):

  • Backend: When updating a review check that the username has not been changed and equals the username of the submitting user.

  • Backend: When creating a review check that the specified username is identical to the username of the submitting user.

  • Frontend: When creating / updating a review check that session username is still identical to the review username. If not a user has used (e.g.) a different tab to sign out and in again as another user or tampered with the current session in some way.

  • Frontend: At various occassions (when resetting the expiration timer that is reset after many server calls) as well as when extending the session via the Field Change Listener used on review: check the username is still identical to the session cookie username; if not: need to expire the session and enable the user to relogin.

CKM-1298

Minor display finetuning of various panels, tabs & windows

This issue includes various minor finetuning for the display of various panels, tabs & windows:

  • Password Reset Panel,

  • Confirmation Code Panel,

  • Data Points Panel,

  • Publication Report Panel,

  • Datatype Explanation popup,

  • Delete Project Confirmation window,

  • Improve Statistics and the generic Review Type icons

CKM-1302

Internal: Improve transaction handling of reverting archetypes, checking out resources and other services

Improve internal transaction handling to avoid some extremely rare circumstances where the following operations may fail to set some relationships (e.g. from a resource to its owning project or incubator):

  • Revert archetype

  • Check out resource

  • Reject resource branch

  • Delete template

  • Import or update template

  • Import or update archetype

  • Creating a reply to a comment

  • Change Request Create, Update, Delete

  • Change Request Note Create, Update, Delete

  • Project and subdomains Create, Update, Delete

  • Release set Create, Update, Delete & revert

Errors would only ever occur if the server fails at the exact time of the operation.

The one example where this is known to have occurred has caused a template no longer to be assigned to a project after updating. (This is easily fixed manually, but should obviously not occur).

CKM-1308

Set default search to AND and various minor display finetuning on the Find Resources tab

Inline with major search engines these days, set the default search to AND (=all words required). Also, various related minor display finetuning on the Find Resources tab, including:

  • font style/color, box widths,

  • add resource type icons,

  • explanatory text in results representation (all words required vs. at least one word required),

  • layout of project/incubators found → in separate (grey) box with white project/incubator icons, font size,

  • include alternative search text buttons (with suggested searches if no result) directly in the blue information box instead underneath

CKM-1311

Internal: Finetune use of async/defer to load the javascript files for faster initial rendering

Internal: Finetune use of async/defer to load the javascript files for faster initial loading and rendering.

CKM-1312

Internal: Support backend user creation with the help of a full name only (no username, no separate first + lastname) and with the possibility to generate a password if none is specified

Internal: Support backend user creation with the help of a full name only (no username, no separate first + lastname) and with the possibility to generate a password if none is specified. Simplifies some backend tasks.

CKM-1319

Add a more general frontend check to determine if the user session has changed/manually expired and if so enable user to relogin

Add a more general CKM frontend check to see if the user session has changed/manually expired and enable the user to relogin by displaying the login dialog.

This is important if the session cookie is deleted for whatever reason (by an addon or manually).

CKM-1321

DV_SCALE support in Templates

The new data type DV_SCALE needs to be supported within templates uploaded to CKM and thus by

  • the OPT generator,

  • the parser,

  • the canonical hash calculator,

  • various display scripts

as used by CKM.

The data type is nearly identical to DV_ORDINAL but enables unconventional scales such as the BORG CR10 scale which allows non-integer values, e.g.

0.5 Very Very Slight (Just Noticeable)

DV_SCALE may replace DV_ORDINAL over time since it offers a superset of functionality. The most important difference is that REAL numbers are allowed and not only INTEGER. See https://specifications.openehr.org/releases/RM/latest/data_types.html#_dv_scale_class for details on DV_SCALE.

CKM-1323

On the Related Resources tab of a template, archetypes of embedded templates should be sorted inline with archetypes directly used in the template

On the Related Resources tab of a template with embedded templates, the archetypes of the embedded template were listed underneath any archetypes that are directly used in the template.

These archetypes from embedded templates should simply be sorted inline with the directly used archetypes, because the other order is hard to understand.

Note that this change in sorting only makes a difference in templates that use embedded templates AND archetypes directly.

CKM-1324

Import Archetypes From Remote: Always display demographic archetypes below EHR archetypes

In the Import Archetypes From Remote Overview of importable archetypes, EHR archetypes should be separated from demographic archetypes, with demographic archetypes sorted underneath.

Currently, most archetypes are sorted per class, but there are DEMOGRAPHIC archetypes mixed in between EHR archetypes.

CKM-1325

Visualisation of "Qualified Real" in DV_QUANTITY: Remove the units from the archetype display completely if there is only one unit and that unit is “1” (and there are no other constraints such as on magnitude or precision)

The current display of the Qualified Real (non-)unit as

Units:

  •  

can only really be understood when you know the details of DV_QUANTITY.

Therefore, remove the units from the display completely if there is only one unit and that unit is “1”.
(This however means that we cannot differentiate between units unconstrained and a single unit of 1 just from the display here.)

CKM-1327

Hide empty protocol attribute in template display also for CARE_ENTRY-level templates

In CKM 1.15.0, CKM-1165: “In Template display: Automatically hide the attribute name (e.g. protocol) if there is nothing underneath (i.e. all elements are constrained out and only unfilled ARCHETYPE_SLOTs)” introduced the ability to automatically hide the attribute name (e.g. protocol) in template displays if there is nothing underneath (i.e. all elements are constrained out and only unfilled ARCHETYPE_SLOTs) for COMPOSITION and SECTION templates.

However, CARE_ENTRY-level templates require additional handling to specifically hide the special case of the two top-level attributes (data and protocol) as well when empty.

CKM-1333

For consistency, Archetype Statistics 'Remote vs Local' Donut Chart should show absolute numbers instead of percentages in the donut itself

For consistency, the Archetype Statistics Remote vs Local Donut Chart should show absolute numbers instead of percentages in the donut itself. On hovering, both is shown in the tooltip.

Available via Reports/Archetype Statistics.

CKM-1336

Internal: Add more convenient way for system admins to clear some database caches

Add system admin ability to clear the xodb object and xodb binary caches of the database system direclty from the frontend as system administrator.

CKM-1337

Internal: Ability to restrict opt regeneration service to the opts of one (oet) template in all revisions

Extend CKM backend services to regenerate operational templates of one (oet) template in all revisions.

Currently, when regenerating the opt cache and assets, we can only invalidate all or nothing.
It is however sometimes very convenient to be able to invalidate/regenerate only for one particular template instead of all and is especially useful when testing changes to the opt generator.

CKM-1338

Display concept name of archetypes in current archetype language (if available) when clicking on the Included/Excluded Buttons for a Slot; improve Slot icons

Display concept name of archetypes in current archetype language when clicking on the Included/Excluded Buttons for a Slot.

Use the actual concept names of the archetypes in the current language of the archetype (where available) and add the archetype id minus the - usually fixed - qualified rm type in brackets,

e.g. Medical Device (device.v1)

Also improve SLOT icons.

CKM-1340

Introduce a slight delay before prefetching additional images/icons (to ensure priorisation of more important requests)

Introduce a slight delay before prefetching additional images/icons. This is to ensure that more important requests are prioritised on initial startup.

CKM-1341

Shorten very long resource display names in context menu and tab title

Shorten very long resource display names in context menu, tab title and in the title of a resource when searching via the Find Resources tab.

Some CKM instances use very long resource names, especially for templates and this can otherwise cause (minor) layout problems.

CKM-1342

Cache User Report to increase loading speed, especially for the "Our CKM community in action" widget on the Dashboard

Especially when the server is very busy or the database is slow for whatever reason, the user report takes long to calculate. This shows as a significant delay on the Dashboard's Our CKM Community in Action widget.

Also, when the server is working normally, this is one of the biggest strains on the server and generally slows down startup.

Therefore, cache this for an hour (per locale) and then recalculate lazily.

CKM-1343

Cache Archetype Statistics to increase loading speed, especially for the "What we've been up to" widget on the Dashboard and the initial Archetype Statistics Report

Especially when the server is very busy or the database is slow for whatever reason, the archetype statics report on the Dashboard’s “What we’ve been up to widget” takes fairly long to calculate.

Also, when the server is working normally, this has previously been one of the biggest strains on the server and generally slows down startup.

Therefore, cache this for a few hours and then recalculate lazily. Also invalidate upon direct changes to the archetypes.

Similiarly, this cache is now used to increase the loading speed of the initial view of the default Archetype Statistics report.

CKM-1349

Add configurable prefix for all ckm generated emails to enable organisations to for example add the organisation name or logo etc. to the top of any CKM email

CKM now supports a configurable prefix for all ckm generated emails. This enables the customer organisation to add for example the organisation name, logo etc. to the top of any email, thus making it potentially more likely that recipients just dismiss the email.

Simple example configuration to display the CKM’s header logo at the top of the email with a little margin:

<div style=
"margin-top: 10px; margin-bottom: 15px;
"> <img src=\\"%{base-url}%/picture?assetname=logo-header
"> </div>

Customers that would like to configure such a prefix, please contact Ocean.

CKM-1351

Search for Projects (via Find Resources) should also yield results from partial matches

Search for Projects (via the normal search on the Find resources tab) should also yield results from partial matches of the project name for sufficiently long search texts.

E.g. searching for "report" will now find a project named "Common reporting".

CKM-1358

Add an instance-wide option to show the review round initiator in Review Round Overview Grids (Editor's review round on Dashboard & Reviews/Review Round Overview) by default

Add an instance-wide option to show the review round initiator in Review Round Overview Grids (Editor's review round on Dashboard & Reviews/Review Round Overview) by default.

This field is already available and can always be shown on demand by clicking on the grid header and selecting the appropriate column, however the requirement is to have this field displayed by default in some CKMs.

Customers that would like this field to be displayed by default, please advice.

CKM-1359

Extend and finetune User Overview List to include more details relevant for selecting reviewers

With a continually increasing number of users, making informed choices when inviting people to review rounds is becoming increasingly difficult.

Therefore, add the following information to the user overview lists:

  • Last login

  • Total completed reviews (including "never invited")

  • Completed reviews last year (included "not invited")

  • Active invitations

Also:

  • Enable grouping in the grid by clicking on the column headers and selecting the grouping.

  • Increase the grid width, space permitting

  • Cache the main “normal” user list and recalculate lazily if less than an hour old, recalculate immediately if > 4 days old. Also invalidate the cache immediately upon certain events (such as e.g. a new user).

  • Add an index for the username for quick access to last login time.

  • Also see “CKM-1365: Add search option to advanced user search tab to only find users/reviewers with a specified minimum login date (and finetune options form)”.

CKM-1362

Minor finetuning of the display for the process for new user registration, user reactivation and user details, especially email updating

Some minor finetuning of the display for the process for new user registration, user reactivation and user details, especially the process to update the user’s email address.

  • Disable the update user button in the User Panel when saving & show wait cursor

  • Do not show the User updated message if the user activation window is displayed because the email address needs to be activated

  • Trim whitespace of updated email address BEFORE checking for equality

  • Activation Window (for new user registration, user reactivation and email updating):

    • Use CKM panel header style

    • Collapse the Resend activation code Form panel (and use the paler style) so that the normal course of entering the activation code is more immediately visible

    • Slightly increase width and height of the panel and better align the textfield lengths

    • Finetune display of the instructions to the users

CKM-1363

Finetune some widths and columns of the Dashboards for signed-in and not-signed-in users

With the additional column of the initiator of a review round in the Active Review Round widget as introduced as a config option in CKM-1358 Resolved , especially this widget is too small to display the various columns well.

Therefore:

  • If there is sufficient space available, increase the width for the left column widgets in the Signed In Dashboards a bit.

  • Finetune the widths inside the Active Review rounds widgets, depending on this setting.

  • Increase maximum widths of the components of the first row of the dashboard accordingly.

CKM-1364

Update Git Connector to be able to use an access token because current authentication mechanism is being phased out by GitHub

Update CKM’s Git Connector to be able to use an access token.

This is required because the current authentification mechanism is being phased out by GitHub.

See https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for details.

CKM-1365

New search option on the advanced user search tab to only find users/reviewers with a specified minimum login date (and finetune options form)

Add a search option to the advanced user search (e.g. available for reviewer selection or via Manage Users) to only find users with a specified minimum login date. This can for example be useful to quickly exclude reviewers that haven’t logged in for a long period of time.

Also finetune the options form on the Advanced user search panel and the corresponding grid heights.

CKM-1402

Display user's local time for modification times in a resource's revision history

The Resource modification times in the resource’s Revision History Panel were displayed in Server Timezone.
For convenience, Resource Modification Times are now displayed in the user's timezone.

42 issues

Bug Fixes

Key

Summary

Description

Key

Summary

Description

CKM-1281

Archetype with VUNP (unknown path in use_node) errors should not be possible to be uploaded & should not cause a NullPointerException on display

The upload of archetypes with an invalid path (VUNP validation error) should be prevented so that the uploader can directly correct the archetype.

A comprehensive + meanigful display of such an archetype is otherwise not really possible and it should not be possible to upload an archetype with such a validation problem, neither as resource proposal nor as a new or updated archetype.

Invalid path: /items[at0020.1]/items[at0.10]/items[at0.1]/items[at0005.1] of archetype internal reference at /items[at0055]/items[at0.8]/items.

Use_node path validity: the path mentioned in a use_node statement must refer to an object node defined elsewhere in the same archetype or any of its specialisation parent archetypes, that is not itself an internal reference node, and which carries a node identifier if one is needed at the reference point.

For potentially already existing archetypes with this error, a Null Pointer Exception should be avoided and a best effort to display be made.

CKM-1288

Archetype displays fails with a ClassCastException if a term binding in the archetype contains a URI

A ClassCastException is causing the display of an archetype to fail if a binding in the archetype contains a URI.

In this case, a QueryBindingItem is constructed and not a TermBindingItem - leading to a ClassCastException and preventing the display of the archetype.

CKM-1290

Extreme sluggishness of some ckm servers after the system has been running fine for several days and even weeks in a row

Some CKM servers running on 1.15.0 have experienced extreme sluggishness usually after the system has been running fine for several days and sometimes weeks in a row.

Ocean has thoroughly investigated this issue and worked with the supplier of CKM’s asset management system on identifying the root cause of this problem and providing a solution for this problem that occurred under very specific circumstances.

CKM 1.16.0 version fixes the core of the problem by upgrading to the latest version of the asset management system.

Ocean has also worked together with the supplier of the asset management system to be able to implement a workaround for this problem in the meantime (i.e until deployment of CKM 1.16.0).

CKM-1291

Review invitation and review invitation summary emails: Completion Deadline is not properly embedded in enclosing tags (thus preventing some formatting)

The starting <p> tag was missing from the review invitation summary email sent out to reviewers.
This usually displays fine since the closing tag is simply ignored by email clients leniently interpreting the html. However, once styling is added to the email (for the p tag) as per CKM-1292, this styling is not honoured.

In the review invitation email:
This review round will be closed and results collated on 19 June 2020. You will be notified of the feedback by the editor.</p>

If you add some styling applicable to this paragraph, it is not applied to the completion deadline displayed in the email.

CKM-1294

Internal: Improve AtomicTransactions for various review related activities

Under some very rare circumstances, it may be theoretically possible that multiple users running the following services simultaneously (in the same split second) might run into problems when

  • (creating)/updating/deleting reviews,

  • closing review rounds,

  • (creating)/updating review feedback

Most importantly this may potentially cause a problem if several users are updating (not creating) their reviews and saving their updates at the same split second.

To the best of Ocean’s knowledge, this has never occured in a production system so far.

CKM-1295

Set correct review round for review, even if the related review invitation cannot be found

If - for whatever reason - the usually required invitation to the review is missing, the correct review round cannot be determined directly and this leads to the Review Round 0 display in the front end of some reviews. CKM should assign the review round directly in this case to prevent the Review Round 0 display.

CKM-1293 and CKM-1294 provide a fix for the root cause of this.

CKM-1300

Internal: On updating, a resource may lose the relationship to its project in very rare cases: improve update mechanism of relationships

When updating a resource, the relationship to its owning project may get lost under exceptional circumstances such as the server becoming unavailable at the exact time. This can be fixed manually, but as long as it is not, will cause problems downstream and thus must be prevented.

CKM-1301

Must not be able to revert an archetype to a revision with a different major version

It must not be able to revert an archetype to a revision with a different major version. This would cause inconsistencies like a v0 to be in a reassess state. If this is required, a different asset can and needs to be created.

CKM-1305

Accessed from either the Review Feedback Screen or via right-click on a Completed Review, the "Email Reviewer" Window does not completely show all buttons

When an editor is reviewing all review comments and provides the Review Feedback, the editor can email reviewers directly from there (e.g. by clicking on the reviewer name above the review comment). In addition, an editor can also right-click on a Completed Review from the Resource’s Review Tab and choose “Email Reviewer” from there.

Whether accessed from either the Review Feedback Screen or via right-click on a Completed Review, on the Email Reviewer form, the two buttons (“Find User” & “User List”) are only shown in parts.

CKM-1313

After a new user (created by an admin) logs in for the first time and opts to be a reviewer, the same message appears again in rare circumstances

  • An admin creates a new user.

  • This new user logs in to CKM for the first time.

  • User is asked to be a reviewer and says yes to be a reviewer.
    User then selects a profession and some health domains and clicks OK

→ User is presented with the identical Reviewer pop message again.

This only occured when server or network are extremely slow for some reason (cp. CKM-1290 Ready For Test )

Interim workaround:
Select “Decide later”; the reviewer status as well as profession and health domain have all been saved ok.

CKM-1314

Internal: Avoid usage of parallelStreams in the Rewrite Filter which could prevent some streams from finishing

Internal: Avoid usage of parallelStreams in the Rewrite Filter.

Under exceptional circumstances this could prevent a stream from finishing internally and thus - over longer periods of time - claiming unnecessary resources. At this particular place in the Rewrite Filter, creating a parallel stream (and thus the need for combining the result later) is likely even slightly slower. Therefore just use a normal stream.

CKM-1315

Username/email/password should be properly trimmed on logging in via the top-right Login Toolbar

Username/email/password should be properly trimmed on logging in via the top-right Login Toolbar and - generally speaking - everywhere where the username etc are used.

This seems to have been a cause of occassional login trouble, especially via copy&paste.

CKM-1320

Double view of dashboard when logging in with email address

When logging into CKM with the user’s primary email address instead of the username, the CKM Dashboard display is duplicated (i.e. each widget is displayed twice) in Chromium-based browsers such as Vivaldi, Chrome, or the latest version of Edge.

CKM-1322

Resource Status chart fails to show if the resource has a review round with a (manually set) completion deadline on or even before the initiation date

On the resource status page for an archetype, template or termset, the timeline chart fails to display if the review round has a (manually selected) completion deadline that is identical to or even before the initiation date of this review round.

CKM-1326

Archetype Mindmap with special char in the comment on a SLOT does not or only partly display (browser-dependent)

If the character “&” exists in the comment of a SLOT, the archetype mindmap is not fully displayed in Chromium-based browsers, and is not displayed at all in Firefox.

Need to properly encode the & for html display here as well to ensure that the archetype mindmap can be displayed correctly.

CKM-1332

Dashboard News for a new change request: Incorrectly displays the description of the change request as the project name

In the Dashboard News Widget:

For a new change request, the description of the change request in the second column of the News Widget is incorrectly labelled as “Project: “:

Project: <Description of the change request>

This should be the name of the project (with the CR’s description displayed as tooltip).

CKM-1339

Should not be able to upload a template oet file that has no root archetype specified

CKM should prevent the upload of a template oet that has not even a root archetype specified.

CKM-1344

Report/Statistics: Count of users classified in specific schemes such as profession or health domain may be wrong in very rare circumstances on a very slow and/or heavily frequented server

Under Report/Statistics, the total count of users or resources classified in specific schemes such as profession or health domain may be wrong in very rare circumstances on a very slow and/or heavily frequented server.

This problem became apparent only due to “CKM-1290: Extreme sluggishness of some ckm servers after the system has been running fine for several days and even weeks in a row” and is unlikely (but possible) to have occurred under ‘normal’ server conditions.

See Report/Statistics → Users per Profession and Users Per Health Domain

CKM-1345

Notification on updated release set with status INITIAL may not be sent to admins/editors in rare circumstances

The notification sent out on updating a release set with status INITIAL may not be sent to admins/editors.

This could have happened when one or more users needed to be removed from the list of users to be notified due to insufficient rights for INITIAL release sets (which are not generally visible to everbody). This is the case if a user adopted the Release Set while being a Clinical Knowledge Administrator (CKA), but now is no longer a CKA.

CKM-1346

Release Sets direct URL should be harmonised to consistently use "/release-sets/"

Release Sets direct URL should be consistently use "/release-sets/"

Otherwise release set direct urls such as ..../ckm/release-sets/1013.10.9/ will not always work.

CKM-1347

Release Set context menus in "View All Release Sets" and "Revise Release Set" should correctly use the dotted separator

Release Set Context Menus available via right-click in "View All Release Sets" and "Revise Release Set" should correctly use the dotted separator between the name of the Release Set (on the very top of the context menu) and the first action to perform (“Revise Release Set”, “Export Release Set”, as applicable).

CKM-1348

Increase width for subdomain and project select boxes (space-permitting) & improve list widths to actually required width for list entries

Current project and subdomain boxes are currently unnecessarily small for some reports and their width should be increased in such places (e.g.: Validation Report, Active Branches, Publication Report, Advanced Template Search)

Also, the list width should expand from select box width up to a certain maximum width so that all but some very long project names can be displayed in full length directly in the select box.

Also slightly increase the paddings of each entry for better readability and increase the max. height before scrolling is required.

CKM-1352

ADL2 Archetype Export: ADL2 archetype file name should be the full archetype id (including the full semantic version)

As per the openEHR specifications, the ADL2 archetype file name should be the full archetype id (including the full semantic version including a label if present)

For example: openEHR-EHR-OBSERVATION.acoustic_reflex_result.v1.0.1-alpha.adls

CKM-1353

Template upload: CKM should not accept renamed node with leading or trailing whitespace

Leading or trailing whitespace in a renamed element of the oet file, e.g.

<Items xsi:type="CLUSTER" archetype_id="openEHR-EHR-CLUSTER.device.v1" concept_name="Medical Device" max="1" path="/description[at0001]/items[at0003]" name=" Hip joint implant ">

should prevent upload of the template with an error message.

Note the whitespace before Hip and after implant in name=" Hip joint implant ".

This is very likely unintentional and is occassionally causing problems with consumers of downstream artefacts of the oet.

CKM-1355

Ignore changes to whitespace in all whitespace (non-leaf) elements (changed indents) in the Template oet xml comparison report

Some users increase the whitespace indent for each line in the oet with the upload of each revision for some reason.

This is no problem syntactically or semantically, but causes the oet comparison report to display these changes. Reporting whitespace changes outside a meaningful leaf node relevant for the oet is just - immensely - cluttering the comparison result with an endless amount of irrelevant whitespace changes.

Therefore, such meaningless whitespace changes are no longer reported in the oet comparison report.

CKM-1356

Exclude pseudo Region Codes that are not countries (as introduced in GWT 2.9); add missing countries (Serbia, Kosovo, South Sudan) and rename Macedonia to North Macedonia

  • Exclude pseudo Region Codes that are not countries (as introduced in GWT 2.9 CKM-1226 Ready For Test ): EU, UN, XA, XB

  • Add missing countries (Serbia, Kosovo, South Sudan)

  • Rename Macedonia to North Macedonia (as per the Prespa agreement between Greece and [North]Macedonia)

CKM-1357

Not possible to commit a branch of a template, termset or release set and update its status from PUBLISHED to REASSESS at the same time

When trying to commit a template that is currently in state PUBLISHED and wanting to set its status to REASSESS at the same time, this fails with an error message:

XPath is invalid: unexpected sub-element revisioning

As an interim workaround users could achieve the same results in two steps (1. commit, 2. change status to REASSESS)

CKM-1360

Upgrade internal code lookup strategy to use LOINC 2.69

Upgrade internal code lookup strategy to use LOINC 2.69.
This release contains some more Covid-19 related codes and should be integrated without delay.

As of CKM 1.15.0, customers can also link their own terminology server with a FHIR API® to lookup codes from any terminology directly from their own terminology server. Contact Ocean for details on how to link your terminology server to CKM.

CKM-1361

Resending an activation code for an updated email address to the identical email address does not work

  1. Go to user profile and update the email address

  2. In the Activation Window resend the Activation code WITHOUT changing the email address

  3. This displays an error that the email address is not unique and does not resend the activation code

-> CKM must resend the code to the new email address to support the process of resending to the same new email address in case the first email did not arrive or was lost for whatever reason.

CKM-1370

Search for oid/citeable id of an asset fails to work after upgrade to latest database version (oid is now a reserved word)

Searching for a citeable id of a resource (e.g. 1013.1.130) from the Find resources tab failed.

This is because the latest version of the asset management system (cp. “CKM-1329: Upgrade to Mediaflux 4.10.23”) explicitly treats ‘oid’ as an xpath in internal queries.

(This problem was never in a production system)

CKM-1394

Resource type select box doesn't display the resource type icons

As editor, select Project/Email Projects, Reviewers, Users from the main menu.
Select Import Comments and Feedback on the final screen.

The resource type icons for archetypes, templates & termsets don't display.

CKM-1395

User profile picture not displayed - regression of CKM-1359 only

User Profile pictures cannot be displayed. Introduced new as a regression of “CKM-1359: Extend and finetune User Overview List to include more details relevant for selecting reviewers”, requires some additional rework.

(This problem was never in a production system)

CKM-1396

Internal log file error message on setContextClassLoader

Test server logs reveal an internal error message pointing to a failed call to setContextClassLoader within a CompletableFuture construct. This turns out to be a regression to the new “CKM-1359: Extend and finetune User Overview List to include more details relevant for selecting reviewers”.

(This problem was never in a production system)

CKM-1397

Internal: Investigate errors in log file like "Attempting to resolve actor (id) 3831 granted to actor (id) 1878"

The error log on ckm-test revealed errors like:

"Attempting to resolve actor (id) 3831 granted to actor (id) 1878"

after upgrading to Mediaflux 4.10.023 ( CKM-1329 Ready For Test )

The errors turned out to be harmless but can and should be avoided - see “CKM-1404: Internal: Before deleting a project or subdomain explicitly revoke the respective roles granted to users for it”.

(This issue was never in a production system)

CKM-1399

Error message when uploading a template or termset with an invalid/not supported file extension should not mention "archetype file"

The - otherwise correct - Error Message that is displayed when uploading a template or a termset with an invalid/unexpected file extension should not mention "archetype file" in the error message.

CKM-1400

Resource status should be updated in the resource's main toolbar and the left hand panels as applicable on update

The resource status should be correctly updated in the Resource’s Main Toolbar as well as the left hand accordion panels as applicable on update.

When the main content status is updated, this should be reflected in the open Resource Main Panel as well as the left hand panels.

CKM-1401

Adding project/incubator resources: Tab title count remains on 0 (zero) after adding the first resource to the project/incubator until refreshed

The archetypes/templates/termsets tab count on a Project’s Resources tab remained 0 (zero) after adding a resource to the project/ incubator. This happened only when there is no resource initially. The resource is correctly assigned to the project and after a refresh or just by navigating away from Project/Incubator resources function and returning the count gets updated. There is no problem with count when there is at least one of them in their respective tabs.

CKM-1404

Internal: Before deleting a project or subdomain explicitly revoke the respective roles granted to users for it

Internal: Before deleting a project or subdomain explicitly revoke the respective roles granted to users for it.

This is of no consequence to CKM users, but avoids errors in the error logs like investigated in CKM-1397: Investigate errors in log like "Attempting to resolve actor (id) 3831 granted to actor (id) 1878" after the latest Database upgrade (CKM-1329: Upgrade to Mediaflux 4.10.23).

(This problem was never in a production system)

CKM-1407

Internal: NullPointerException on test lookup to a configured but not existing/available FHIR® terminology server

Internal: This lookup using all available code lookup strategies is only available from the backend for extended testing purposes.

If - in this test scenario only - the following example request from the backend is sent

oi.terminology.terms.get :terminology snomed :concept-id 722471002 :retrieve-from-all-strategies true :term-type fully-specified

this causes a NullPointerException when a configured Terminology Server is not available at all.

It is desirable that the results from any other lookup strategies are displayed instead.

CKM-1408

Internal: Trying to lookup an unknown terminology from OTS for testing purposes using all lookup strategies fails (as expected) but causes an exception that prevents the return of any other lookup strategies

Internal: This lookup using all available code lookup strategies is only available from the backend for extended testing purposes.

If - in this test scenario only - a terminology (code set) is not available at all in OTS, an internal exception is thrown that needs to be handled in order to be able to display the results from any other lookup strategies (such as via a connected external terminology server).

oi.terminology.terms.get :terminology http://hl7.org/fhir/sid/ops :concept-id 271649006 :term-type fully-specified :retrieve-from-all-strategies true

->

call to service 'oi.terminology.terms.get' failed: OTSException ---> Unable to get default terminology provider for the terminology: http://hl7.org/fhir/sid/ops

CKM-1409

Internal: Remove erroneously displayed ckmErrorType field from TemplateValidationItems returned via the templates/validation-report for an oet template

Internal: Remove erroneously displayed internally used ckmErrorType field from TemplateValidationItems returned via the REST-API's templates/validation-report for an oet template.

CKM-1410

Review round deadline reminder summary email to editors may not be sent if one of the review invitations for the resource is not properly attached to a review round

If a review invitation is - for whatever reason - not properly attached to a review round, the scheduled review reminder script may fail to send out the summary email to editors notifying them that reviewers have been reminded about the approaching deadline.

CKM-1411

Internal: Avoid creating review invitations that are not explicitly linked to a review round

Internally, it was possible to create review invitations assets that were not attached to a review round.

This should be prevented because these invitations are no longer useful (and are not displayed anywhere in CKM) but can cause issues downstream like “CKM-1410: Review round deadline reminder summary email to editors may not be sent if one of the review invitations for the resource is not properly attached to a review round”.

Internal duplicated review invitations could also have happened if - say - both editors and reviewers of a specific project are invited to a review round and a user has been granted both the editor and the reviewer role for this project.

43 issues

General Tasks / Under the Hood

Key

Summary

Description

Key

Summary

Description

CKM-1226

Upgrade to GWT 2.9.0

Upgrade to the latest GWT Release 2.9.0.

CKM-1279

Initial upgrade to latest Archie lib

Upgrade to an Archie library for converting archetypes to ADL2 that supports negative durations.

(Superseded by CKM-1330: Update Archie to version 0.18.1, i.e the latest available version as of end January 2020.)

CKM-1287

Internal: Extend backend options for comparing selected archetypes as a whole (trunk-only, latest-asset-version-only)

Internal: Extend options for comparing selected archetypes as a whole (trunk-only, latest-asset-version-only) to enable better internal testing from the backend of CKM.

CKM-1306

Internal: Replace deprecated Timers with ScheduledExecutorService

Internal: The Timer class used by CKM in some places is no longer recognized after mediaflux upgrade to 4.9.091. Replaced with a modern ScheduledExecutorService.

(Used for example when tweeting about a new project after allowing a setup time of a few hours first.)

CKM-1307

Internal: Upgrade Mediaflux to 4.9.091 (initially)

This was the initial target version of the asset management system for CKM 1.16.0.

Superseded by 4.10.023 in “CKM-1329: Upgrade to Mediaflux 4.10.23”.

CKM-1329

Internal: Upgrade to Mediaflux 4.10.23<