Presentation is loading. Please wait.

Presentation is loading. Please wait.

Snapshot of the OMG LQS Specification Presentation to the HL7 Vocabulary Working Group 1/99.

Similar presentations

Presentation on theme: "Snapshot of the OMG LQS Specification Presentation to the HL7 Vocabulary Working Group 1/99."— Presentation transcript:

1 Snapshot of the OMG LQS Specification Presentation to the HL7 Vocabulary Working Group 1/99

2 1/25/99HL7 LQS Presentation2 Presentation Outline Motivation for the specification Requirements and constraints Approach and process Specification overview Sections which may be directly useful to HL7 Current state of the specification and next steps Q&A

3 1/25/99HL7 LQS Presentation3 First things first - just what are we talking about? Lexicon Query Services (LQS) Specification Interface specification for read only access to medical coding schemes Formally adopted by the Object Management Group (OMG) 7/98 Describes an object-based API to accomplish common tasks involving medical coding schemes Definitions, representations(terms), associations, etc.

4 1/25/99HL7 LQS Presentation4 First things first - what are we talking about? Lexicon Query Services (LQS) Specification Specification is publicly available at: pdf

5 1/25/99HL7 LQS Presentation5 Motivation - why did we do it? A group of companies and organizations had been investigating the possibility of specifying medical component behavior, with the purpose of arriving at a set of APIs which would enable component level interoperability within the medical domain.

6 1/25/99HL7 LQS Presentation6 Motivation As always, one of the cornerstones of interoperability was the ability to agree on a common conceptual base and corresponding representational structure.

7 1/25/99HL7 LQS Presentation7 Motivation

8 1/25/99HL7 LQS Presentation8 Motivation We determined that we wanted to arrive at a common means of representing and manipulating coded information before we got heavily involved in the specification task. Previous OMG specifications were inconsistent, imprecise and incomplete when it came to the notion of coding.

9 1/25/99HL7 LQS Presentation9 Motivation Possible approaches Select one coding scheme to represent all codes (UMLS, SNOMED-RT, GALEN, READ, ???) Select a single structure into which any coding scheme may be placed (KIF, KRSS, UMLS DB, ???) Specify a set of behavioral characteristics common to anything called a coding scheme - What can I ask of it and how should it respond?

10 1/25/99HL7 LQS Presentation10 Motivation Stimulus Response The notion of a black box

11 1/25/99HL7 LQS Presentation11 Requirements and Constraints Specification had to cover enough territory to be useful. Specification had to address a wide spectrum of coding schemes –From a simple table of code + term… –…to a terminology on the level of GALEN or SNOMED-RT

12 1/25/99HL7 LQS Presentation12 Requirements and Constraints Specification had to cover a wide variety of uses: –From real-time vital signs interfaces on a minimal platform… –… to a mainframe type of service doing translation, lookup, normalization, inference, etc.

13 1/25/99HL7 LQS Presentation13 Requirements and Constraints Specification could not presume: –A specific database (e.g. Oracle) or even storage type (e.g. relational, OODB) –A specific platform (e.g. Intel) –A specific programming language –A specific operating system

14 1/25/99HL7 LQS Presentation14 Requirements and Constraints Specification had to have buy-in (or at least input from): –Terminology specialists –Medical system vendors –Health Care Community

15 1/25/99HL7 LQS Presentation15 Approach and Process OMG RFP issued January 1997 Formed CORBAlex working group April 1997 Attempted to use the classic CEN approach - Scope/Use Cases/Model/Specification - But...

16 1/25/99HL7 LQS Presentation16 … quickly discovered that Use Cases required precise definitions of terms (objects) and precise definition of objects required a model and a model required a notion of purpose and application. Resulting process was iterative: Approach and Process Use CasesModelDefinitions

17 1/25/99HL7 LQS Presentation17 One of the final step was a rendering of the model in IDL. –Non-trivial process. The IDL specification was an Engineering specification. Mapping had to be done manually by skilled CORBA people. Approach and Process

18 1/25/99HL7 LQS Presentation18 Model transformation to IDL –Steps included: Transformation of lightweight classes into structs Elimination of classes representing collections Addition of shortcuts for anticipated frequent usages Partitioning of model into compliance groups: LexExplorer, CodingSchemeLocator, etc. Approach and Process

19 1/25/99HL7 LQS Presentation19 Specification Overview Specification is at: IDL can be found at:

20 1/25/99HL7 LQS Presentation20 Specification Overview Chapters 1&2 - Overview and OMG conformance statements Chapter 3 - DEFINITIONS Chapter 4 - Use Scenarios Chapter 5 - Reference Model Chapter 6 - Engineering model Chapter 7 - Meta-Terminology

21 1/25/99HL7 LQS Presentation21 Portions with potential applicability to HL7 NamingAuthority - Unique global identifiers for things (including concept codes) ValueDomain - Provides access sets of codes associated with data elements Code to Presentation translation Code to Code translation (parts of) Meta-Terminology - bootstrap coding scheme

22 1/25/99HL7 LQS Presentation22 NamingAuthority

23 1/25/99HL7 LQS Presentation23 NamingAuthority DCE –RegistrationAuthority: DCE –NamingEntity: 6132A880-9A A20A-AF30CF7A0000 –LocalName: /HL7/I9C –Example: DCE: 6132A880-9A A20A-AF30CF7A0000/HL7/I9C

24 1/25/99HL7 LQS Presentation24 NamingAuthority ISO –RegistrationAuthority: ISO –NamingEntity: iso member-body hl7 -or- iso(1) member-body(2) hl7(26519) - or –LocalName:/I9C –Example: ISO: iso member-body hl7/I9C

25 1/25/99HL7 LQS Presentation25 NamingAuthority DNS –RegistrationAuthority: DNS –NamingEntity: –LocalName: /I9C –Example:

26 1/25/99HL7 LQS Presentation26 NamingAuthority IDL –RegistrationAuthority: IDL –NamingEntity: org.hl7 –LocalName: /codingScheme/I9C –Example: IDL:org.hl7/codingScheme/I9C

27 1/25/99HL7 LQS Presentation27 NamingAuthority Local –RegistrationAuthority: –NamingEntity: –LocalName: I9C –Example: I9C

28 1/25/99HL7 LQS Presentation28 NamingAuthority.idl module NamingAuthority { enum RegistrationAuthority { OTHER, ISO, DNS, IDL, DCE }; typedef string NamingEntity; struct AuthorityId { RegistrationAuthority authority; NamingEntity naming_entity; };

29 1/25/99HL7 LQS Presentation29 NamingAuthority.idl typedef string AuthorityIdStr; typedef string LocalName; struct QualifiedName { AuthorityId authority_id; LocalName local_name; }; typedef string QualifiedNameStr; exception InvalidInput {};

30 1/25/99HL7 LQS Presentation30 NamingAuthority.idl interface translation_library { AuthorityIdStr authority_to_str(in AuthorityId authority ) raises(InvalidInput ); AuthorityId str_to_authority(in AuthorityIdStr authority_str ) raises(InvalidInput ); QualifiedNameStr qualified_name_to_str(in QualifiedName qualified_name ) raises(InvalidInput ); QualifiedName str_to_qualified_name(in QualifiedNameStr qualified_name_str ) raises(InvalidInput ); };

31 1/25/99HL7 LQS Presentation31 ConceptCodes typedef NamingAuthority::LocalNameConceptCode; typedef sequence ConceptCodeSeq; typedef NamingAuthority::AuthorityId CodingSchemeId; typedef sequence CodingSchemeIdSeq; struct QualifiedCode { CodingSchemeIdcoding_scheme_id; ConceptCodea_code; };

32 1/25/99HL7 LQS Presentation32 Value Domains Term borrowed from ISO and X3.285 Represents the connection between concept codes and data An HL7 field is a classic value domain Identified by a qualified code: typedef QualifiedCode ValueDomainId; typedef sequence ValueDomainIdSeq;

33 1/25/99HL7 LQS Presentation33 Value Domain Interface Identification interface ValueDomainVersion { readonly attribute ValueDomainId value_domain_id; readonly attribute VersionId value_domain_version_id; readonly attribute boolean is_default_version;.

34 1/25/99HL7 LQS Presentation34 Value Domain Interface Identification Example: ValueDomainId - ISO:iso member hl7/Patient/Gender VersionId is_default_version - TRUE.

35 1/25/99HL7 LQS Presentation35 Value Domain Interface List all coding schemes which have one or more valid codes in this domain: CodingSchemeIdSeq get_schemes_with_extensions(); For HL7, might return: ISO:iso hl7 member/HL7/HL70001 ISO:iso hl7 member/UMLS/

36 1/25/99HL7 LQS Presentation36 Value Domain Interface List all concept codes from the given coding scheme which are valid in this domain: ConceptInfoSeq get_extension_for_scheme( in CodingSchemeId coding_scheme_id) raises ( UnknownCodingScheme ); Example get_extension_for_scheme(ISO:iso hl7 member/HL7/HL70001) {M, Male}, {F, Female}, {O, Other}, {U, Unknown} get_extension_for_scheme(ISO:iso hl7 member/UMLS/) {C , male}, { C , female}

37 1/25/99HL7 LQS Presentation37 Value Domain Interface List all concept codes which are valid in this domain QualifiedCodeInfoSeq get_all_extensions(); example: get_all_extensions()(ISO:iso hl7 member/HL7/HL70001) {ISO:iso hl7 member/HL7/HL70001/M, Male}, {ISO:iso hl7 member/HL7/HL70001/F, Female}, {ISO:iso hl7 member/HL7/HL70001/O, Other}, {ISO:iso hl7 member/HL7/HL70001/U, Unknown} {ISO:iso hl7 member/UMLS/C , male}, {ISO:iso hl7 member/UMLS/C , female}

38 1/25/99HL7 LQS Presentation38 Value Domain Interface Determine whether the given code is valid within the value domain: boolean is_code_in_domain(in QualifiedCode qualified_code); Example: is_code_in_domain(ISO:iso hl7 member/HL7/HL70001/M) returns TRUE

39 1/25/99HL7 LQS Presentation39 Translation Translate a code into text for a given context IntlString get_preferred_text(in QualifiedCode a_qualified_code, in UsageContextIdSeq context_ids ) raises ( UnknownCodingScheme, UnknownCode ); Example: get_preferred_text(ISO:iso hl7 member/HL7/HL70001/M, NULL) would yield: Male

40 1/25/99HL7 LQS Presentation40 Translation Find matching concept(s) for text ConceptCodeSeq get_concepts_by_text(in string text); Example: get_concepts_by_text(Male) would yield: M(in the HL7 table 1 coding scheme)

41 1/25/99HL7 LQS Presentation41 Translation Quick aside - weighted result typedef float Weight; struct WeightedResult { ConceptInfothe_concept; IntlStringmatching_text; Weightthe_weight; };

42 1/25/99HL7 LQS Presentation42 Translation Match concepts by a regular expression string void match_concepts_by_string(in IntlString match_string, in unsigned long how_many, out WeightedResultSeq weighted_results, out WeightedResultsIter weighted_result_iter ) raises ( NotImplemented);

43 1/25/99HL7 LQS Presentation43 Translation Match concepts by ordered list of keywords void match_concepts_by_keywords( in OrderedIntlStringSeq keywords, in unsigned long how_many, out WeightedResultSeq weighted_results, out WeightedResultsIter weighted_results_iter ) raises( NotImplemented);

44 1/25/99HL7 LQS Presentation44 Translation Translate concept codes between coding schemes ConceptInfoSeq translate_code(in QualifiedCode from_qualified_code, in CodingSchemeId to_coding_schemeId ) raises (UnknownCode, UnknownCodingScheme, TranslationNotAvailable);

45 1/25/99HL7 LQS Presentation45 MetaTerminology Value domains within LQS const ValueDomainIdStr ASSOCIATION_VALUE_DOMAIN = ""; const ValueDomainIdStrASSOCIATION_QUALIFIER_VALUE_DOMAIN = ""; const ValueDomainIdStrASSOCIATION_BASE_TYPE_DOMAIN = ""; const ValueDomainIdStr LANGUAGE_VALUE_DOMAIN = ""; const ValueDomainIdStrLEXICAL_TYPE_VALUE_DOMAIN = ""; const ValueDomainIdStrPRESENTATION_FORMAT_VALUE_DOMAIN = "";

46 1/25/99HL7 LQS Presentation46 MetaTerminology Value domains within LQS const ValueDomainIdStr SOURCE_VALUE_DOMAIN = ""; const ValueDomainIdStrSOURCE_USAGE_DOMAIN = ""; const ValueDomainIdStr SYNTACTIC_TYPE_VALUE_DOMAIN = ""; const ValueDomainIdStr USAGE_CONTEXT_VALUE_DOMAIN = "";

47 1/25/99HL7 LQS Presentation47 MetaTerminology Bootstrap problem Interoperability entails using the same or at least compatible names for things The first thing we nave to do is arrive at common names for coding schemes: ICD-9? I9? IC9? UMLS SNOMED SMD HL7 2.3 Table 1? USMarc Country Codes

48 1/25/99HL7 LQS Presentation48 MetaTerminology Bootstrap problem Looked at CEN ENV 1068 (Registration of Coding Schemes) - replaced by ISO & Looked at ISO 7826 (Identification and Registration of Coding Schemes) - nice spec, but not funded

49 1/25/99HL7 LQS Presentation49 MetaTerminology Bootstrap problem Looked at ISO X3/L8 - Metadata registry - Specification on the how and what of registration, but not actual registrar is (currently) outside of the scope ISO/TC154 - basic semantics registrar HL7? HISB? - Scope issues.

50 1/25/99HL7 LQS Presentation50 MetaTerminology Bootstrap Problem Interim Solution: As there IS no formal registry, we will: Defer to HL7 codes when possible (IC9, UMLS) Use the OMG Interface Repository (IR) as the root:

51 1/25/99HL7 LQS Presentation51 MetaTerminology Bootstrap Problem The HL7 Coding scheme is represented as: We defer to HL7 when the coding scheme code is defined

52 1/25/99HL7 LQS Presentation52 MetaTerminology Bootstrap Problem And use OMG when it isnt

53 1/25/99HL7 LQS Presentation53 Current State of Specification Published RTF is in place (but not active at the moment) Implementations occurring

54 1/25/99HL7 LQS Presentation54 Questions?

Download ppt "Snapshot of the OMG LQS Specification Presentation to the HL7 Vocabulary Working Group 1/99."

Similar presentations

Ads by Google