CaBIG™ Terminology Services Path to Grid Enablement Thomas Johnson 1, Scott Bauer 1, Kevin...

Preview:

Citation preview

class Diagrams

«XSDcomplexType»Collections::Resolv edConceptReferenceList

«XSDattribute»- incomplete: Boolean = new java.lang.B...

«XSDcomplexType»Core::Resolv edConceptReference

«XSDattribute»- codingSchemeURN: String- codingSchemeVersion: String

«XSDcomplexType»commonTypes::

entityDescription

- content: String = ""

«XSDcomplexType»concepts::codedEntry

«XSDattribute»- conceptCode: String- conceptStatus: String- isActive: Boolean- isAnonymous: Boolean

«XSDcomplexType»Collections::AssociationList

«XSDcomplexType»Core::ConceptReference

- codingScheme: String

«XSDattribute»- conceptCode: String

«XSDcomplexType»Core::AssociatedConcept

«XSDattribute»+ isNavigable: Boolean

«XSDcomplexType»commonTypes::

v ersionableAndDescribable

«XSDcompl...concepts::comment

«XSDcompl...concepts::

conceptProperty

«XSDcomplexType»concepts::concepts

«XSDattribute»- dc: String = "concepts"

«XSDcomplexType»concepts::definition

«XSDattribute»- isPreferred: Boolean

«XSDcompl...concepts::instruction

«XSDcomplexType»concepts::presentation

«XSDattribute»- degreeOfFidelity: String- isPreferred: Boolean- matchIfNoContext: Boolean- representationalForm: String

«XSDcomplexType»concepts::propertyLink

«XSDattribute»- l ink: String- sourceProperty: String- targetProperty: String

«XSDcomplexType»codingSchemes::codingScheme

«XSDattribute»- approxNumConcepts: Integer- codingScheme: String- copyright: String [0]- defaultLanguage: String- formalName: String- isNative: Boolean- localNameList: String [0..1]- registeredName: String- representsVersion: String

lgVer:entityVersion

«XSDcomplexType»codingSchemes::

codingSchemeVersion

«XSDcomplexType»commonTypes::v ersionable

«XSDattribute»- deprecated: Boolean- firstRelease: Boolean- modifiedInRelease: Boolean

«XSDcomplexType»commonTypes::property

- propertyId: String

«XSDattribute»- language: String- presentationFormat: String- property: String- usageContext: String [0..*]

«XSDcomplexType»Collections::AssociatedConceptList

«XSDcompl...commonTypes::

describable

«XSDcomplexType»Core::CodingSchemeSummary

«XSDattribute»- codingSchemeURN: String- localName: String- representsVersion: String

«XSDelement»- formalName: String

«XSDcomplexType»Core::NameAndValue

- content: String = ""

«XSDattribute»- name: String

«XSDcomplexType»Core::Association

«XSDattribute»- associationName: String- directionalName: String

lang::Object

-associatedConcept

+codingScheme

0..1

-concepts 0..*-propertyLinkList 0..*

-conceptPropertyList

0..*

-instructionList

0..*

-commentList

0..*

«XSDextension»

-codingSchemeDescription

0..1

+concepts

-conceptList

1..*

+presentationList 1..*

«XSDextension»

+AssociatedConcept 0..1

-nameAndValueList 0..*

+versionableAndDescribable 0..1

-entityDescription 0..1

«XSDextension»

+describable 0..1

-entityDescription

0..1

-definitionList

0..*

-referencedEntry

0..1

-associationList 0..*

-resolvedConceptReferenceList 0..*

+codingSchemeVersion 0..1

-_concepts 0..1

-anyObject 0..*

+associationReference

0..1

«XSDextension»

«XSDextension»

-associatedConceptList 0..*

-targetOf 0..1-sourceOf 0..1

+entityDescription

0..1

«XSDextension»

«XSDextension»«XSDextension»

«XSDextension»

caBIG™ Terminology ServicesPath to Grid Enablement

Thomas Johnson1, Scott Bauer1, Kevin Peterson1, Christopher Chute1, Johnita Beasley2, Frank Hartel2

1Mayo Clinic, 2NCICB

Acknowledgements• We wish to thank all members of the NCICB EVS and Mayo LexGrid teams, who continue to

contribute to the architecture, development and deployment of LexEVS services.• We wish to thank those who continue to provide mentorship for caDSR registration, caGrid™ and

related tooling, and the Silver Level review process including Robert Freimuth, Tahsin Kurc, Scott Oster, Joshua Phillips, Nicole Thomas , John White , and Claire Wolfe.

Preliminary Service Enhanced Prototype

Partial LexBIG Query API

Sample Applications

Full LexBIG Query API

Deployment

Production Delivery

Limited Query API

Grid functions were developed as an analytic service. Initial services were selected to meet basic query needs, with focus on providing access to concepts in the NCI Thesaurus and NCI MetaThesaurus vocabularies. Separate methods and parameters were defined to search the NCI MetaThesaurus. This was an artifact of the legacy EVS infrastructure (see below).

EVS 3.2 Model

Registration

Deployment

cd Logical Model_ev sgrid3.1

serv ice::EVSDescLogicConceptSearchParams

- vocabularyName: String- searchTerm: String- l im it: int

serv ice::EVSMetaThesaurusSearchParams

- searchTerm: String = nul l- l im it: int = 0- source: String = nul l- cui : boolean = false- shortResponse: boolean = false- score: boolean = false

serv ice::EVSHistoryRecordsSearchParams

- vocabularyName: String = nul l- conceptCode: String = nul l

serv ice::EVSSourceSearchParams

- code: String = nul l- sourceAbbreviation: String = nul l

serv ice::EVSQueryServ ice

+ searchDescLogicConcept(EVSDescLogicConceptSearchParams) : DescLogicConcept[]+ searchMetaThesaurus(EVSMetaThesaurusSearchParams) : MetaThesaurusConcept[]+ getHistoryRecords(EVSHistoryRecordsSearchParams) : HistoryRecord[]+ getVocabularyNames() : DescLogicConceptVocabularyName[]+ getMetaSources() : Source[]+ searchSourceByCode(EVSSourceSearchParams) : MetaThesarusConcepts[]

serv ice::DescLogicConceptVocabularyName

- vocabularyName: String = nul l

Distrib

uted

LexB

IG A

PI

caCORE 4.0

LexWrapper

LexBIG

Co

nv

en

ien

ce

Me

tho

ds

3.2 EVSAPI

Java

SOAP

REST

Java

MySQL LexBIG

DB

Lucene IndexFIles

caCORE 3.2 DTSRPC DTS

Metaphrase

Met

ath

es

auru

s

Ind

i vid

ua

l T

erm

ino

log

ies

3.2 EVS Model

SOAP3.2

EVS API

REST

Java

The Legacy Infrastructure

Partial LexBIG Modelclass caCORE 3.2 EVS

domain::AttributeSetDescriptor

- name: String- WITH_ALL_ATTRIBUTES: int = 1 {readOnly}- WITH_ALL_PROPERTIES: int = 3 {readOnly}- WITH_ALL_ROLES: int = 2 {readOnly}- WITH_NO_ATTRIBUTES: int = 0 {readOnly}

domain::DescLogicConcept

- code: String- hasChildren: Boolean- hasParents: Boolean- isRetired: Boolean- name: String- namespaceId: int- semanticTypeVector: Vector

domain::History

- editAction: String- editActionDate: Date- namespaceId: int- referenceCode: String

domain::MetaThesaurusConcept

- cui: String- name: String- synonymCollection: ArrayList

domain::Property

- name: String- value: String

domain::Role

- name: String- value: String

domain::Source

- abbreviation: String- code: String- description: String

domain::SemanticType

- id: String- name: String

domain::Definition

- definition: String

domain::HistoryRecord

- descLogicConceptCode: String

domain::Atom

- code: String- lui: String- name: String- origin: String

domain::Qualifier

- name: String- value: String

domain::Association

- name: String- value: String

domain::EdgeProperties

- isA: boolean- links: HashSet- name: String- traverseDown: boolean

domain::Silo

- id: int- name: String

domain::Vocabulary

- description: String- name: String- namespaceId: int

security::SecurityToken

- accessToken: String- password: String- userName: String

domain::TreeNode

- isA: boolean- links: HashSet- name: String- traverseDown: boolean

+qualifierCollection 0..*

+propertyCollection

0..*

+roleCollection

0..*

+roleCollection

0..*

+semanticTypeCollection

0..*

+sourceCollection

0..*

+propertyCollection 0..*

+source

0..1

+definitionCollection 0..*

+historyCollection

0..*

+atomCollection

1..*

+inverseRoleCollection

0..*

+qualifierCollection

0..*+associationCollection

0..*

+treeNode

0..1

+edgeProperties

0..1

+siloCollection

0..*

+vocabulary 1

+historyRecord 0..1

+securityToken

0..1

+inverseAssociationCollection

0..*

+source 1

As part of the EVS 4.1 release, a prototype caGrid™ service was developed based on models used by the LexBIG terminology infrastructure. The LexBIG model is informed by HL7 CTS and ISO 11179 standards, and capable of defining all caBIG™ terminologies in terms of a common representation. For the prototype, a limited section or vertical ‘slice’ of the model was selected to support common query functions.

Deployment and Registration

Once again, grid functions were developed as an analytic service. Implemented search methods were selected as a representative sample of the LexBIG query API, allowing basic retrieval of concepts, properties, and associations. Grid services were implemented in a stateful manner; programming to the grid services essentially mirrors programming against the local Java API.

The vertical ‘slice’ of the LexBIG model was approved and registered to caDSR. This was carried out in preparation for formal review and registration of the full LexBIG model in as part of production rollout. Prototyped services are currently deployed to a sandbox caGrid environment within the Mayo Clinic, but are not externally accessible.

Full LexBIG Model

As part of the EVS 4.2 release, a caGrid™ service will be developed based on a fully expanded version of the LexBIG model (see below). Once approved and registered to the caDSR, the fully enhanced model will serve as reference for Silver Level review. In the 4.2 release this model, dubbed the ‘LexEVS’ model, will coexist with the legacy EVS model. In the EVS 5.0 release this model will serve as the primary representation for EVS data as the legacy model is retired.

Sample caGrid Service callgetSupportedCodingSchemes()

Effective with caCORE 4.0, EVS surfaced a terminology service node based on the caCORE 3.2 EVS API on caGrid™ version 1.1. Services were grounded in the EVS 3.2 data model, depicted above. The model was inferred by classes, parameters, and return values in the underlying Java implementation. Definition of unique but semantically similar concept classes for the MetaThesaurus reflect separate handling by the underlying API.

LexBIG Installation

caGrid Nodehosting Service

Client

Client Invokes caGridService

caGrid Service usesDistributed LexBIG toimplement call

Distributed LexBIG returnsrequested information tocaGrid Service

caGrid Servicereturns responseto client

Services are deployed to an NCICB-hosted server serving as a node on the caGrid™ and fulfilled through the EVS caCORE infrastructure. This infrastructure is currently being transitioned from a legacy architecture to one based on the caBIG™-sponsored LexBIG project. Whereas the legacy infrastructure imposed unique processing of MetaThesaurus content, the LexBIG infrastructure provides a common API for query of all sources.

getMetaSources()           Returns all Metathesaurus Sources contained in the EVS.

getServiceSecurityMetadata()            Returns the service's security metadata.

getVocabularyNames()           Returns all the vocabularies present in the Description Logic in caCORE 3.1 EVS service.

searchDescLogicConcept(EVSDescLogicConceptSearchParams eVSDescLogicConceptSearchParams)           Searches a valid Vocabulary such as NCI Thesaurus and returns Description Logic concepts that meet the search criteria.

searchMetaThesaurus(EVSMetaThesaurusSearchParams eVSMetaThesaurusSearchParams)           Searches NCI meta thesaurus and returns Meta Thesaurus information that meet the search criteria.

searchSourceByCode(EVSSourceSearchParams eVSSourceSearchParams)           Searches the Meta Thesaurus based on Source code.

caGrid™ NodeHosting Service

ClientProgram

In addition to the model being approved and registered to caDSR, services are currently registered for availability on the caGrid Portal. The portal provides a visual display of services running on the caGrid infrastructure as well as institutions that are participating in the caBIG program.

Client caGrid Service Distributed LexBIGCalls caGrid ‘getSupportedCodingSchemes()’

Calls Distributed LexBIG‘getSupportedCodingSchemes()

Returns result of call to caGrid Service

Results are returned to clientwith all appropriate caGrid security mechanisms

Sample applications have been developed against the prototype caGrid™ services as proof of concept, including command-line driven programs and a modified version of the LexBIG Graphical User Interface. Because the stateful nature of the LexBIG API has been preserved, existing applications were quickly migrated to the grid with little change to core logic.

In the EVS 4.2 release, the prototype service will be enhanced to provide full functionality of the LexBIG query API and a formal Silver Level review package will be submitted. In the 4.2 release this service, dubbed the ‘LexEVS’ service, will be externally published and will coexist with the legacy EVS service (to be deprecated). In the EVS 5.0 release, the LexEVS service will provide the primary interface to EVS functions as the legacy service is retired.

As part of EVS 4.2 release activities, the LexEVS caGrid™ service will be deployed on the NCI CBIIT production servers as an externally accessible grid node. Internally, this service will rely on the distributed LexBIG API to invoke services on a separate server where the full compliment of LexBIG services has been deployed. Database storage for serviced vocabularies may reside in yet another tier.

In addition to NCI CBIIT, it is anticipated that other installations of EVS services will be deployed and registered to the grid. These installations will contribute to a federated system of terminologies, allowing extended discovery and use in grid-based applications.

NCI Thes

LOINC

Other …

Discover

caGRIDClients

Adoption

EVSHostingServices

Recommended