Skip to content

Introduction

This is a test scenario for ART-DECOR information standards. During the test an ART-DECOR project is recreated, based on the demo5 project from ART-DECOR examples (see see [[1]] or [[2]]).

To execute the scenario, you need at least two user accounts:

  1. A DBA user for creating the project

  2. A Project administrator for populating the project

  3. A general author account

Server preparation

  • Create a restore instance: ./exist_stop_backup.sh --BackupLabel LABEL

    • This way we can edit data in the database, and go back to a restore point before we changed data
  • Run updates:

    • backend: make sure the latest API, etc are all installed

    • frontend: update vue by running on the server/SSH:

      echo "update art-decor vue frontend" ; cd /opt/art-decor-vue/; ./vue_pull.sh --local

      Or see the documentation: https://docs.art-decor.org/administration/setupmaintain/frontend3/#install-vue-frontend

  • Enable/disable the right server functions. https://docs.art-decor.org/administration/frontendfeatures/#disable-frontend-functionality

Steps to perform for this scenario

User create

  • Add a project-admin user on the server, so that we can add it to projects later on.

As dba-user: add user testuserprojadmin{date}.

Enter values for all fields.

Groups: ada-user, decor, decor-admin, editor, issues, terminology

Save the user.

  • Add a author user on the server, so that we can add it to projects later on.

As dba-user: add user testuserauthor{date}.

Enter values for all fields.

Groups: ada-user, decor, editor, issues, terminology

Save the user.

User edit

Change email for just created author user, save.

Change Organization, and save.

Change Description, and save.

Add a group 'debug', save.

Change password, and save.

Precondition

Server has building block repositories configured. To configure those:

https://acceptance.art-decor.org/ad/#/server-admin/art-settings

External repository servers

URL: http://art-decor.org/decor/services/

Via the edit-option: select, to select BBR projects: ad1bbr & ad2bbr & ccda

End result:

External repository

  • Refresh cache
  1. Select option: Truly refresh

https://acceptance.art-decor.org/ad/#/server-admin/server-management

Refresh cash

Start with clean setup

Delete the project if it already exists.

This can be done only by having low level access with admin rights to the underlying eXist database: Delete the collection the project's data resides in.

For this test project we want to remove the following collections:

/db/apps/decor/data/projects/test

/db/apps/decor/history/test

/db/apps/decor/releases/test

/db/apps/terminology-data/codesystem-stable-data/projects/test-

Run the following query (for example, in eXide, New XQuery, paste the query, then eval):

xquery version "3.0";
try {
xmldb:remove('/db/apps/decor/data/projects/test'),
xmldb:remove('/db/apps/decor/history/test'),
xmldb:remove('/db/apps/decor/releases/test'),
xmldb:remove('/db/apps/terminology-data/codesystem-stable-data/projects/test-')
}
catch *
{ '' }

Create a project test

Login as the DBA user. See ART_maintenance_manual#Creating_a_project for further instructions.

PropertyExample
NameTest: Vital Signs CDA Document
languageen-US
OID2.16.840.1.113883.3.1937.99.99.906
prefixtest-
Experimentalyes
Copyright - ContributorAdd your or a random name
DescriptionTest: Vital Signs Report Summary CDA Document
AuthorsAdd the project admin user as author & testuser1 & test user 03

After clicking "Create Project" you return on an empty "new project" screen. No indication is given that the project was created successfully.

Edit project settings

Login as project administrator and open the test project you just created.

https://acceptance.art-decor.org/ad/#/test-/project/overview

Overview

  1. Add or change project description. Add the current date.
  1. Add a Contributer by clicking the +.

  2. Enter name and contact information.

  3. Enter the correct Copyright years.

  4. Add a logo from your computer by clicking on add and then browse.

  5. Enter contact information: add an entry, and select the type.

Repositories

  1. Add building block repositories with prefixes 'ad1bbr-' & 'ad2bbr-' & 'ccda-' by clicking on the + next to 'Repositories'.

Services

Add a FHIR service: Documentation: https://docs.art-decor.org/documentation/project/#services-card

  • Add a FHIR service by clicking Add:

Add FHIR Service

Select Format as r4 and save:

Add FHIR Service

Authors tab

  1. Add an author by clicking on the +. Add the author user we created above to this project.

  2. Edit that author by enabling Subscribe to all issues

  3. Add an author by clicking on the +. Add: testbackendbot2

  4. Search on 'test'. The added testuser should be present in the result.

  5. For testbackendbot2, set the expiration date to yesterday

  6. Select an author to show all information: email, expiration, ..

  7. Switch to demo1 project where this user is not an author. Expected result: 'Only visible for project authors'. Display and editing should not be possible.

Identifiers tab

For more information: Project editor manual.

Base Id's:

  1. Add Base id by clicking on the +.

  2. Fill in the Id (e.g. 2.16.840.1.113883.3.1937.99.99.906.99)

  3. Type: Questionnaire

  4. prefix: test-questionnaire-2-

  5. Default: selected, save.

  6. Set the default back to: test-questionnaire-

  7. Search on 'que'. Expected result: all 3 test-questionnaire* base id's.

Other Id's:

  1. Add an other Id by clicking on the +.

  2. Fill in the Id: 1.2.3

  3. Add designations: Synonym, Language EN and Display name: syn1

  4. Synonym, Language EN and Display name: syn2

  5. FSN, Language EN and Display name: FSN1

  6. FSN, Language EN and Display name: FSN2 -> should not be allowed

  7. Preferred, Language EN and Display name: preferred1

  8. Preferred, Language EN and Display name: preferred2 -> should not be allowed

  9. Abbreviation, Language EN and Display name: abbrev1

  10. Abbreviation, Language EN and Display name: abbrev2

  11. Patient-friendly, Language EN and Display name: patfriendly1

  12. Patient-friendly, Language EN and Display name: patfriendly2

  13. FSN, Language NL and Display name: FSN1_NL

  14. Add a FHIR System URI: http://art-decor.cloud/test. Preferred: selected

  15. Add another FHIR System URI:-> should not be allowed

  16. Delete Patient-friendly designation, Save.

  17. Search on 'FSN'. Expected result: all other id with FSN as display name.

  18. Switch to project where this user is not an author, edit an base id, and edit an other id should not be possible. Showing all data is Ok.

Governance Groups tab

For more information: Dealing with governance groups.

  1. Make the project member of a governance group (e.g. ART-DECOR testing) by clicking on the + to the left of the governance group name.

Datasets

Login as project author. For this section, click on the Datasets menu (in the top menu bar).

Basic dataset changes

Use the "Datasets" tab. Make some basic changes to the test dataset:

  1. Add a version label.

  2. Fill in a dataset description

  3. Name the dataset: Test dataset

  4. Change dateset description. Add the current date for all project languages.

  5. Add a new dataset: Test dataset 2

  6. Fill in a dataset description: current date

  7. Clone the first dataset. Leave all options as default.

  8. Edit dataset description: add another current date

  9. Change dateset description. Add the current date for all project languages.

  10. Change the dataset name. Add the current date behind the name.

Add concepts

For more information check the Dataset editor manual.

Use the dataset editor to edit the first dataset. Recreate the concept "Person" (and underlying concepts) from the demo5 project dataset, see [[3]].

  1. Add the Person concept by clicking on the +

  2. Enter Description, Synonym, Source, Rationale, Operationalization, Comment.

  3. For each concept:

    1. Select the right kind of type (group or item)

    2. Add a name for the concept.

    3. At 'Value' select the type

  4. Metadata for the first item concept.

    1. For all metadata (Synonyms, Operationalization, ..) enter bogus values.

    2. Save.

  5. For the last concept: Change last concept description. Add the current date for all project languages.

  6. For the last concept: Add two comments in the same language.

Checks:

  • Check the FHIR output: On the dataset, AID, open FHIR 4.0 XML. Check that last concept has two comments.

Import LOINC panel

While in datasets: Import a LOINC panel (/ item bank)

  1. Make sure the user has selected the details of a dataset, dataset concept Person is selected

  2. Menu: Import LOINC panel

  3. Search for code: 62337-1

  4. Select: PROMIS item bank - 29 profile

  5. Following Person

  6. Save

While in datasets: Import a LOINC panel (/ item bank)

  1. Make sure the user has selected the details of a dataset, dataset concept Person is selected

  2. Menu: Import LOINC panel

  3. Search for code: 76805-1

  4. Select: PROMIS short form - physical function 8b ...

  5. Following Person

  6. Save

Check the preview screen to that: Expected outcome: The second import will create inherited concept from the first item bank.

Checks:

  • check that both LOINC panels are present as sets of concepts in the dataset

  • later we run a decor check to check for project health.

Inheritance

  • Insert new group after:
    Name: patient
    Filter on project: zib2020bbr-
    Top concept: Patient (path is empty), As inherit.

  • Expected: groups shown as open folder icon, items shown as chain icon.

  • Change status: Under pre-publication review.

  • Change status: Draft.

  • Expected: groups shown as open folder icon, items shown as chain icon.

Reference / contains

  • Insert new group after:
    Name: healthprofessional
    Filter on project: zib2020bbr-
    Concept: healthprofessional (path is empty), As reference.

  • Expected: group shown as arrow icon, no subconcepts.

  • Change status: Under pre-publication review.

  • Change status: Draft.

  • Expected: group shown as arrow icon, no subconcepts.

De-contain / De-inherit

  • De-inherit: patient.

  • Expected: group shown as not inherited. Subitems shown as inherited concepts.

  • De-contain: healthprofessional.

  • Expected: group icon and children concepts icon change to open folder icon (shown as inherited)

  • De-inherit: healthprofessional.

  • Expected: group shown as not inherited (closed icon). Children concepts shown as inherited concepts.

  • Change healthprofessional concept description. Add the current date for all project languages.

  • Go to HealthProfessional / HealthProfessionalRole. Click on valueset under Value Set Association. Check that this valueset is opened and codes are displayed.

Scenarios

For this section, click on the Scenarios menu (in the top menu bar).

Add actors

Use the Actors tab.

  1. Add two actors by clicking on the +

  2. Person: actor1/actor1

  3. Organization: organization1/organization1

  4. Change type for organization to type device.

  5. Change actor1 description. Add the current date for all project languages.

Scenarios tab

Use the Scenarios tab.

  1. Add a scenario by clicking the + next to Scenarios.

    1. Fill in a name and description for the new scenario.

    2. Next.

    3. Fill in a name for the new transaction group: group1

    4. Fill in a type and name for the new transaction leaf: leaf1 (type = initial). Select the 2 actors.

    5. Fill in a type and name for the new transaction leaf: leaf2 (type = back). Select the 2 actors.

    6. Save.

    7. Change scenario & group & transaction leaf description. Add the current date for all project languages.

  2. Change the second transaction:

    1. Change the type to: Stationary.

    2. Remove the actor receiver.

For leaf1 transaction:

  • Source-dataset: edit and select our 1st dataset.

  • Add Concepts to the created transaction. Add all concepts (0..1 R) we created in our dataset. Click save and then close the window to go back to the transaction.

  • edit the transaction. Change cardinality and conformance for last concept. Save.

  • edit the transaction. Select first concept. Change conformance to C. Add textual condition: description: condition1, 0..1, R. Ok. Save.

Add condition

  • edit the transaction. Select next concept. Change conformance to C. Add structured condition:

    • question: select concept Gender

    • operator: exists;

    • answertype: answerBoolean

    • value: true

    • Also add a textual condition, same as before

    • save

  • Add a transaction leaf Label: value: schematronlabel1

    • This prevents an error later: Transaction with a representing template SHALL have a schematron label.

Checks:

  • Check the FHIR output:

    • Open leaf 1 transaction, click AID, FHIR 4.0 XML. Check if the constraint is present with: <human value="Gender exists true"/>

Value Sets (in Terminology)

Terminology menu (in the top menu bar) and choose Value Sets.

For more information: Value Set Editor manual

  1. Create a new valueset.

    1. Click on the add/+ above the tree view on the left-hand side. This opens the browser.

    2. Search for term asthma. Select 195967001 / asthma from SNOMED. Include: extensional

    3. Search for term acute. Select LA18821-1 / acute from LOINC. Include: extensional

    4. Select SNOMED. Search for term eiwit. Select 256443002. Include: intensional, code and all children

    5. Select SNOMED. Search for term eiwitarm. Select 160673009. Include: intensional, all children only

    6. Select SNOMED. Search for term voorlichten. Select 54070000 / postpartum voorlichten. Exclude: extensional

    7. Select SNOMED. Search for term cong ana. Select 63565007

      Congenital anemia (disorder). Exclude: intensional, code and all children

    8. Select SNOMED. Search for code 419891008. Select Record artifact (record artifact). Exclude: intensional, all children only

    9. Select LOINC. Search for code LA24830-4. Select Ortho. Include: extensional

    10. Add value set

    11. Enter display name for value set: valuesettest

    12. Save

  2. Expand the valueset just created. Save the expansion. Check that the saved expansion is listed under Usage.
    Expected number of codes: 6.
    256443002 has one child code: 2 codes
    160673009 has one child code: children only 1 code.

    1. For the valueset: Fill in Version label

    2. Add the valueset/description.

    3. Change valueset/description. Add the current date for all project languages.

  3. Add valueset

    • Add value, scroll below to composition.

      1. Add manual concept by clicking on the Add.

      2. Concept: Fill in (Add another item in between codes)

        LevelType (L, A, S, D)code (required)Display nameOrdinalCS
        0L243324test-102.3.66.5
        0L243325test-212.3.66.5
        0A243326test-32.3.66.5
        1L243327test-432.3.66.5
        1A243328test-52.3.66.5
        2S243329test-62.3.66.5
        3L243330test-732.3.66.5
    • Save the value set: levels

  4. Clone a valueset. Clone the just created valueset. Keep Id's = true. Expected: this should create a new version of the existing valueset (with datetime set to today)

  5. Clone a valueset. Clone the just created valueset. Keep Id's = false. Expected: this should create a new valueset in the valueset tree, with the same name.

  6. Create a reference

    1. Precondition: repository reference to a bbr project is already present

    2. Click on 'New reference' / "chain" icon above the tree view on the left-hand side

    3. Search for a valueset, and select it to save it to this project

      1. Search for 'patch'

      2. Select 2.16.840.1.113883.1.11.14499 / PatchDrugForm (from bbr project ad2bbr).

  7. Clone the referenced VS PatchDrugForm, Keep ids = true.

  8. Clone the referenced VS PatchDrugForm, Keep ids = false. Expected: this should create a new valueset in the valueset tree, with the same name.

  9. Create a reference to valueset 'Administrative Gender' from project ccda-

    1. New reference

    2. search: 'administrative'

    3. Select: 2.16.840.1.113883.1.11.1 Administrative Gender (HL7 V3)

  10. Reference to VSs from the current project is not a desired option. No tests.

Terminology associations

  1. Create a terminology association between data concept, Person / Name and SNOMED concept

    1. On terminology / associations

    2. Select dataset, Person / Name

    3. Concept Associations: Search. Terminology browser should open.

    4. Search: 'name'. Select 703503000 / Name from SNOMED.

    5. Save.

  2. Create a terminology association between data concept, Gender, and referenced valueset Administrative Gender (HL7 V3)

    1. On terminology / associations

    2. Select dataset, Person/Gender

    3. Add Value Set Associations: Administrative Gender (HL7 V3), as dynamic.

  3. Create a Identifier association between data concept, National Patient Identifier, and id 1.2.3

    1. On terminology / associations

    2. Select dataset, Person / National Patient Identifier

    3. Identifier Associations: Create association, OID registries = true. Search for 'identi'. Select 2.16.840.1.113883.3.2562 / PIP. No tests yet defined for this section.: maybe find a better usecase here. Documentation is missing: https://docs.art-decor.org/documentation/terminology/#terminology-associations-panel

  4. Check in the dataset

    1. Check: Go to dataset, Person / Name. Under terminology association should show the SNOMED code.

    2. Check: Go to dataset, Person / Gender. Under value set association should show codes from the valueset: Female, ..

    3. Check: Go to dataset, Person / National Patient Identifier. Should show: Identifier associations with PIP.

Templates

For this section, click on the Templates menu (in the top menu bar) and choose the Templates menu entry.

For more information: https://docs.art-decor.org/documentation/template/

  1. Create template from scratch. New.

    1. Create a couple elements and attributes. Save.
  2. Create a template. Click 'New from prototype' next to tree view. A new window opens.

    1. Search 'CDA Act'

    2. Filter on project: ad1bbr-

    3. Select: 2.16.840.1.113883.10.12.301 / CDA Act

    4. Edit template

    5. Set hl7-subject: Conf to NP. Save the template

    6. Re-edit the template

    7. classCode, actions: unselect.

    8. hl7:id, actions: unselect.

    9. Save the template

    10. Re-edit the template. Check that both are shown as greyed out: classCode and hl7:id.

    11. Change template description. Add the current date and two-letter language for all project languages.

  3. Scenarios: relate the selected template to our created transaction.

  4. In templates, 'add new from prototype', from ccda, for the following templates, in this order: Patient Referral Act (type = CDA Entry Level Template)
    US Realm Header for Patient Generated Document (V2) (type = CDA Document Level Template)
    Author Participation (type = Template type not specified
    Provenance - Assembler Participation (type = CDA Header Level Template)
    Advance Directives Section (type = CDA Section Level Template)

    Expected outcome:
    Template types in the tree are always sorted as (top to bottom):
    CDA Document Level Template
    CDA Header Level Template
    CDA Section Level Template
    CDA Entry Level Template
    HL7 V2/V3 Datatype Level Template
    Template type not specified

Issues

For this section, click on the Issues menu (in the top menu bar).

For more information: https://docs.art-decor.org/documentation/issue/

On: https://acceptance.art-decor.org/ad/#/test-/issues/issues

  1. Issue-labels

    1. Create three issue-labels in at least two languages, save

    2. Search for the issue-label

    3. Edit the last issue-label. Change label description. Add the current date and two-letter language for all project languages.

    4. Delete the first issue-label

  2. Add an issue by clicking on the right: New issue

    1. Select the correct type (incident, change request, for future consideration, request for information/education): Incident

    2. Fill in a title: testissue1

    3. Select the desired priority (Lowest, Low, Normal, High, Highest): low

    4. Fill in description: description1

    5. Assign issue to an author: demo-project-admin

    6. Save

    7. Link to a dataset: Concerns: Our dataset.

    8. Link to a dataset concept: Concerns: National patient identifier.

    9. Link the issue to two labels. Remove a related label from the issue.

    10. Concerns: Click National patient identifier, Go to. Check that in the dataset, this concept has Issues (1) shown.

Questionnaire

  • Form: Rules/Questionnaire: transform from transaction leaf1

  • Display the just transformed Questionnaire: Render

  • For item 1, select an answer from the dropdown, Save

  • Change Questionnaire description. Add the current date and two-letter language for all project languages.

  • Find the Questionnaire in the project index

    • Download FHIR 4.0 XML. Check if the constraint is present, expected an enableWhen statement with the OID of the concept Gender: <enableWhen question="2.16.840.1.113883.3.1937.99.99.906.2.1.8" operator="exists"><answerBoolean value="true"/></enableWhen>

Code system

  • Create code system

    • Create code system from scratch

      • Name/display/description: Organisation

      • Codes: 1, 2, 3

      • Add a designation, fully specified name on 1: code-1

      • Save.

      • Change code system description. Add the current date and two-letter language for all project languages.

    • Clone just created CS. Keep ids = true. This will create a version of the CS.

    • Edit the oldest version of just cloned CS.

      • In the old version, move code 1 below code 2.

      • Save. The newest CS should have the original order: 1, 2, 3.

    • Create code system reference

      • Search for: 'cod'. Select: CodingRationale / 2.16.840.1.113883.5.1074

      • No tests yet defined for this section: Which bbr is this CS coming from?

      • No tests yet defined for this section: Find a better example from ad1/ad2bbr.

  • Complete code system

    • In terminology/valuesets. Create new VS. Down below: composition, Add.

    • Complete code system.

    • Select code system for context: Just created CS above, static.

    • Add, Add value set: includeCS

    • Expand: Should show the codes from CS.

Concept map

  • Create concept map 1

  • Source value set (dynamic): levels, target value set: valuesettest. Add and open.

  • Edit. Associate first codes, equivalent. Save.

  • Edit. Associate second codes, wider. Save.

  • Edit. Associate third code, unmatched. Save.

  • Add concept map description. Add the current date and two-letter language for all project languages.

FHIR profile

  • (not included in 3.8.3 release, so for a later release) Options:

    • New

    • New from prototype

    • New reference

    • Clone

    • Associate to transaction

    • Associate to Questionnaire?

Publication

  • Log in as demo-project-admin

  • Check-decor on https://acceptance.art-decor.org/ad/#/test-/project/development

    • Enable all options

    • No tests yet defined for this section: CDA Act shows a error, Maybe use another template.

  • Terminology-report on https://acceptance.art-decor.org/ad/#/test-/project/development

  • In overview, set the publication location to: https://acceptance.art-decor.org/pub/

  • Create a new version

    • Intermediate version
  • Create a release: Development

    • Find the development release at: https://acceptance.art-decor.org/decor/services/RetrieveProject?prefix=test-&version=development&format=html&language=en-US&ui=en-US&mode=verbatim&download=false&force=false
  • Issues:

    • Add a new event for the issue we created

    • Change status from open to closed for the issue. (Now it should show up in the next publication suggested release notes).

  • Create a new publication

    • Release without publication request without parameters and no filters

      • Release notes: Automatic Release Notes suggestions based on a previous release, from the development release

      • Release label: Release with publication request without parameters and no filters

    • Release with publication request without parameters and no filters

    • Release with publication request

      • with all parameters active

      • Add filters

  • Either wait for the hourly ADRAM cronjob, or via SSH run ADRAM manually to handle the publication requests:

    /opt/art-decor-release-and-archive-manager/release-and-archive-manager.sh

  • Go to project index, select a couple releases

    • test that (for some views/XML/JSON) you get output

Versioning

Dataset Versioning

  1. Change the dataset

    1. name to: Test dataset version

    2. status to: final (green bullet, top right)

    3. status to: Deprecated (Blue bullet, top right)

Last updated: