Notice: This application will enforce Multi-factor authentication (MFA) for NIH users beginning the evening of Wed Aug 3rd.
NIH | National Cancer Institute | NCI Wiki  

Contents of this Page

This page provides notes and examples from an effort to add vocabularies to caDSR in 2011. This is meant to capture ideas and provide a starting place for future vocabulary-addition efforts. It is not comprehensive and is not a guide.

For old references, see Adding Zebrafish to the Curation Tool 2008 and caDSR Tools and EVS Metadata 2009. However, those pages are mostly out-of-date.

For an example deployment (request), see caDSR - Database Deployment Request - GF 31499 (Login required).

Miscellaneous

Over time, the metadata to support EVS vocabularies has been standardized. The core caDSR applications currently use EVS 5.1. The same set of metadata and caDSR properties should work for all new vocabularies. The properties for existing vocabularies are not being changed and should work as they are.

CDE Curation Tool

Vocabularies are used when searching for EVS concepts that may be used in a variety of ways with value domain representations, data element concepts, permissible values, etc. The list of supported vocabularies comes from the table tool_options_ext. For each vocabulary/property, if the property is not provided, a default will be read from the related EVS.VOCAB.ALL.* property. The key properties (i.e. the only ones that need to be added) are:

Property

Use

Example Property

Example Value

EVS.VOCAB.xx.DISPLAY

The value for this property is used for display purposes in Curation. The value before the colon in the vocabularies entry in NCI Terms Browser vocabulary selection list is a reasonable choice.

EVS.VOCAB.12.DISPLAY

ICD-9-CM

EVS.VOCAB.xx.EVSNAME

This is the name of the vocabulary in EVS. It can be found by selecting the vocabulary in the NCI Term Browser and then looking at the dictionary parameter in the URL of the opened page.

We identify vocabularies by matching these values against the formal names from EVS. See gov.nih.nci.cadsr.cdecurate.tool.AC_Bean.java for code examples. Using EVSAPI 5.1 we go from LexBIGService.getSupportedCodingSchemes() -> CodingSchemeRenderingList.getCodingSchemeRendering() -> CodingSchemeRendering[].getCodingSchemeSummary() -> CodingSchemeSummary.getFormalName()

EVS.VOCAB.12.EVSNAME

International Classification of Diseases, Ninth Revision, Clinical Modification

EVS.VOCAB.xx.VOCABCODETYPE

This value is used within caDSR (in the database, across applications) to specify the vocabulary. Value is arbitrary but is usually the display name followed by _CODE.

EVS.VOCAB.12.VOCABCODETYPE

ICD-9_CM_CODE

xx is an alphanumeric string that relates the set of properties for a given vocabulary. Vocabularies are also sorted using this value for display. (Tool_name is 'CURATION'.)

Note: There is a bug where Curation uses a contains search instead of an exact search when retrieving vocabularies internally. Do not use a display name that is a subset of another display name.

e.g.

Insert into tool_options_ext
   (TOOL_NAME, PROPERTY, VALUE, DESCRIPTION)
 Values
   ('CURATION', 'EVS.VOCAB.12.DISPLAY', 'ICD-9-CM', 'Display name for ICD-9-CM vocabulary');
Insert into tool_options_ext
   (TOOL_NAME, PROPERTY, VALUE, DESCRIPTION)
 Values
   ('CURATION', 'EVS.VOCAB.12.EVSNAME', 'International Classification of Diseases, Ninth Revision, Clinical Modification', 'Formal EVS Vocabulary Name for ICD-9-CM');
Insert into tool_options_ext
   (TOOL_NAME, PROPERTY, VALUE)
 Values
   ('CURATION', 'EVS.VOCAB.12.VOCABCODETYPE', 'ICD-9_CM_CODE');

 

CDE Browser

The CDE Browser can link to concepts in EVS. To do this, it must convert the stored code for the EVS vocabulary into a base URL. (See VOCABCODETYPE property above.)

insert into tool_options_ext
   (TOOL_NAME, PROPERTY, VALUE)
 values
   ('CDEBrowser', 'ICD-9_CM_CODE', 'http://nciterms.nci.nih.gov/ncitbrowser/ConceptReport.jsp?dictionary=International%20Classification%20of%20Diseases,%20Ninth%20Revision,%20Clinical%20Modification&code=');

CDE Browser also uses a single property to list all supported vocabularies

update tool_options_ext set value = 'NCI_META_CUI,LOINC_CODE,GO_CODE,NCI_CONCEPT_CODE,NCI_MO_CODE,UWD_VA_CODE,VA_NDF_CODE,UMLS_CUI,MEDDRA_CODE,SNOMED_CODE,ZEBRAFISH_CODE,RADLEX_CODE,CTCAE_CODE,HL7_CODE,ICD-10_CODE,UMLS_SEMNET_CODE,OBI_CODE,HUGO_CODE,IDC-10_CM_CODE,NPO_CODE,ICD-9_CM_CODE'
 where tool_name = 'CDEBrowser' and property = 'EVS_URL_SOURCES';

caDSR Administration Tool

In the UIs for creating and editing concepts, the listing of Source Types comes from the table CONCEPT_SOURCES_LOV_EXT and the listing of Databases is hard-coded in the stored procedure con_irud$con.ORIGIN_LOV_LOV. Both places must be updated. Source Types should (must?) match VOCABCODETYPE. Databases seem to be arbitrary. The value of Database probably has meaning to the curators and should come from them.

con_irud$con.ORIGIN_LOV_LOV

...

declare
            -- note: this same cursor is also in oc_basic_search$oc
            cursor c_lov
               ( z_mode   in varchar2
               , z_filter in varchar2
               )
           is
             SELECT name, description
             FROM
         ( SELECT 'NCI Thesaurus' name, 'NCI Thesaurus' description FROM DUAL
           UNION
               SELECT 'NCI Metathesaurus' name, 'NCI Metathesaurus' description FROM DUAL

...   add new ones somewhere in here (display is sorted alphabetically), e.g.

  UNION
    SELECT 'ICD-9-CM' name, 'ICD-9-CM' description FROM DUAL

...

           UNION
               SELECT 'UMLS SemNet' name, 'UMLS SemNet' description FROM DUAL)
         WHERE UPPER(name) like UPPER(z_filter)
             ORDER BY name;

...

INSERT INTO "SBREXT"."CONCEPT_SOURCES_LOV_EXT"
 (CONCEPT_SOURCE, DATE_CREATED, CREATED_BY) VALUES ('ICD-9_CM_CODE', SYSDATE, USER);

 

 

  • No labels