OHDSI Home | Forums | Wiki | Github

Tagging and security in ATLAS

Hello OHDSI community,

I am a Data Engineer at Brown Center for Biomedical Informatics, Brown University.

We are using ATLAS in our projects and we are trying to set up tagging and security features in it, please see below for more details.

I am trying to figure out how to set up tagging feature in ATLAS which is installed in our secured environment. I can see an option to tag inside cohorts and concept sets, but the list is empty. I am not sure where to find this table in the database and how to update this table. Are there any documentations that I can refer to in order to do this?

I am also trying to figure out how to set up security features in ATLAS for example a particular data source, concept set or cohort definition in ATLAS should be accessed by only few researchers in the team, is this possible in ATLAS? if so could you please share any documentation or tutorial which explains how to do this.

Thank you
Mounika Thakkallapally

@Ajit_Londhe : could you provide some guidance about how you initialized the tags in your environment? My understanding is that there isn’t a UI to create the tags (you manually insert the data) but maybe you have some sample scripts to get @Mounika_Thakkallapal started?

Hi @Mounika_Thakkallapal and @Chris_Knoll,

Here is an example script:

-- Please specify the webapi schema name, this example uses the name "webapi"

-- Step 1: Insert into TAG table.
-- This table hosts tag groups and tag items themselves all in one table. The parent-child relationship between tag groups and tag items will be
-- defined in Step 2 (TAG_GROUP table).

INSERT INTO webapi.tag(name, type, show_group, icon, color, multi_selection,
              permission_protected, mandatory, allow_custom, description, created_date)
     VALUES(
       @tagName,              --(Text Type) e.g. @tagName = 'In Progress' Enter a tag name; this is the name of the tag group
       @type,                 --(Integer) e.g. @type = 0; A value of 0 means this is a system-authored tag, a value of 1 is applied by Atlas when a a custom tag is created by an end user.
       @showGroup,            --(Boolean Type) e.g. @showGroup = FALSE. TRUE means show this as a tag group in the UI. FALSE means this item is not going to be part of a tag group.
       @icon,                 --(text type) e.g. @icon = 'fa fa-stethoscope'. An icon name from Font Awesome library. Use the free icons from this website https://fontawesome.com/v5/search?m=free
       @color,                --(text type) e.g. @color ='#ff8196' An HTML color for the background-color of the tag in the UI.
       @multiSelection,       --(Boolean Type) e.g. @multiSelection = FALSE. If this is a tag group, should multiple tag selections be allowed from this tag group?
       @permissionProtected,  --(Boolean Type) e.g. @permissionProtected = false. Should the usage of this tag be limited to admins only?
       @mandatory,            --(Boolean Type) e.g. @mandatory = TRUE. If this is a tag group, should a warning message in concept sets, cohort definitions, or characterizations be shown if no tags from the group are selected?
       @allowCustom,          --(Boolean Type) e.g. @allowCustom = FALSE. If this is a tag group, should you allow a user to add custom tag items to it?
       @description,          --(Text Type) e.g. @description = 'Asset is in progress'. Enter a description, this field describes the intended use of the tag item.
       @createdDate           --(Timestamp Type) e.g. NOW(). What timestamp should we use for the tag created date?
)

-- Step 2: If you want to associate a child tag to the parent tag group then insert a record in tag_group table.
-- Relies upon tag ids from step 1.

INSERT INTO webapi.tag_group(
	tag_id, group_id)
	VALUES (@childTagId, --(Integer) e.g. 1000. This is the tag id assigned in the TAG table for a tag item you wish to add to a tag group.
          @parentTagId); --(Integer) e.g. 40. This is the tag id assigned in the TAG table for a tag group that is the parent.

Hope this helps,
Ajit

1 Like

@Mounika_Thakkallapal @Chris_Knoll @Ajit_Londhe

I am very interested in Mounika’s second question and want to learn if ATLAS allows grouping users and apply granular access control on data source, cohort definition, etc., based on the groups users are in.

Thanks
Jack

When using a valid security provider (e.g. LDAP, AD, etc), you can provide granular access based on system-based or custom roles. Study assets (concept sets, cohorts, etc) can have write access extended to other users via the lock button.

A starter guide is here: Security Configuration · OHDSI/WebAPI Wiki · GitHub

But not sure if there’s anything yet that covers the roles and granular access in depth. I think that’s coming soon with the renewed documentation efforts this year.

Thank you @Ajit_Londhe, I am looking into the example script and try to implement in ATLAS.

Thank you
Mounika

Thank you @Ajit_Londhe

@Mounika_Thakkallapal Mounika, would you mind sharing the use cases of tagging feature in ATLAS that you find helpful in your institution? how are tags presented on ATLAS? are they searchable?

Thank you
Jack

The tags are available in concept set / cohort definition / characterization / IR / pathway designers as a “tag” button. You can then tag the asset with tags from groups you’ve defined in the tables I described above.

In the repository view of each asset type (the data table view of all assets), you can use the filters and search to find assets by tag.

Here’s some info we presented last year on tagging: Bringing a Titan to a New Organization – OHDSI

@Ajit_Londhe

Thank you for sharing.

One question off the topic is that how to turn on persons count in Atlas as shown in the slide? I can only see RC/DRC on our Atlas.

So the Person Count caching is not in any official releases right now. There is a SQL script here that you could run per CDM source:

Originally, we intended for this to be something Achilles package would handle, but the consensus decision was that it should be part of the Results script from WebAPI. I’ve opened a new Git issue in WebAPI: https://github.com/OHDSI/WebAPI/issues/2078.

@Ajit_Londhe
Thanks. I will follow up the git issue. It is a useful feature to present patient count in the search result. Hope it can be in the official release soon.

t