Skip to content
This repository has been archived by the owner on Aug 11, 2021. It is now read-only.
Jonathan Payne edited this page Feb 23, 2015 · 2 revisions

Overview

The API exposes a representation of a class resource that identifies a concept as a diagnosis, symptom, drug, procedure, etc. While reference terminologies such as LOINC and ICD-10 each have their own systems of terminology classification, there is significant overlap. OCL provides a unified classification system by normalizing classes from each source dictionary. OCL also supports the indicator class for modeling indicators as concepts.

URI : /rest/class

Core Properties

uuid
url
display           # Preferred display name based on current locale
displayLocale     # Locale of the display name
retired
properties
auditInfo
resourceVersion

names             # All names/synonyms for different locales
descriptions      # All descriptions for different locales
sources           # Indicates the sources in which the class is used

Representations

GET ref GET Default GET full POST create POST update
uuid
url
display
uuid
url
display
names
descriptions
sources
retired
properties
links
auditInfo
uuid
url
display
names
descriptions
sources
retired
properties
links
auditInfo
resourceVersion
name
description
name
description

URIs

URL Description Response Code
GET /rest/class Get/search all active concept classes in all sources OK / Success
Not Found
GET /rest/class?source={uuid} Get/search all active concept classes in the specified source OK / Success
Not Found
GET /rest/class/{uuid} Fetch details of the specified concept class OK / Success
Not Found
POST /rest/class Creates a new class to the CIEL dictionary stack.
The message must have a name as a minimum
OK / Success
Not Found
Duplicate
PUT /rest/class/{uuid} Update an existing class in CIEL OK / Success
Not Found
DELETE /rest/class/{uuid}?!purge Retire/void a class specified by the uuid in CIEL OK / Success
Not Found
DELETE /rest/class/{uuid}?purge Delete a class specified by the uuid in CIEL OK / Success
Not Found

Output Samples

{
    "__type__": "OclConceptClass",

    "uuid": "8d492ee0-c2cc-11de-8d13-0010c6dffd0f",
    "url": "/rest/class/8d492ee0-c2cc-11de-8d13-0010c6dffd0f",
    "display": "Test",
    "displayLocale": "en",
    "retired": false,
    "properties": {
        "hl7Code": "9393",
        "openmrsResourceVersion": "1.8"
    },
    "auditInfo": {
        "creator": "admin",
        "dateCreated": "2005-02-17T00:00:00.000+0300",
        "changedBy": null,
        "dateChanged": null
    },
    "resourceVersion": "0.9",

    "names": [
        {
            "name": "Test",
            "locale": "en",
            "preferred": "True"
        }
    ],
    "descriptions": [
        { 
            "description": "Acquired during patient encounter",
            "locale": "en",
            "preferred": "True"
        }
    ],
    "sources": [
        "ciel",
        "pih"
    ]
}

Normalization across Sources

Classification of concepts varies between reference sources. For example, the ICD-9 tree has the following branches:

     + DISEASES AND INJURIES [001-999.99]
     + PROCEDURES [00-99.99]
     + SUPPLEMENTARY CLASSIFICATION OF EXTERNAL CAUSES OF INJURY AND POISONING [E800-E999.9]
     + SUPPLEMENTARY CLASSIFICATION OF FACTORS INFLUENCING HEALTH STATUS AND CONTACT WITH HEALTH SERVICES [V01-V85.4]

The SNOMED CT tree has the following structure (JP- these are not classes, this is the hierarchy):

- SNOMED CT Concept (SNOMED RT+CTV3)
     + Body structure (body structure)
     + Clinical finding (finding)
     + Context-dependent category (context-dependent category)
     + Environments and geographical locations (environment / location)
     + Event (event)
     + Linkage concept (linkage concept)
     + Observable entity (observable entity)
     + Organism (organism)
     + Pharmaceutical / biologic product (product)
     + Physical force (physical force)
     + Physical object (physical object)
     + Procedure (procedure)
     + Qualifier value (qualifier value)
     + Record artifact (record artifact)
     + Social context (social concept)
     + Special concept (special concept)
     + Specimen (specimen)
     + Staging and scales (staging scale)
     + Substance (substance)

The indicator class is used to identify indicators. Refer to ongoing discussion on designing the indicators on this ticket Indicators

Clone this wiki locally