The get_children message returns all the children of a particular term. A client may want a list of all the children in order to expand a node of the vocabulary tree when a user is browsing through the tree.
Populating Children of Tree Nodes
The get_children message is used to populate tree nodes in the ontology Navigate Terms and Find Terms views. In both of these cases the table / path (root) to search are known.
The sequence of events is as follows:
- The client sends a message with the following settings:
max = 200 (or higher)
type = core
|
- ONT server performs the following steps:
- Parses <parent> to obtain the table key and path. Queries the table of tables to confirm that the user / role can access the table that is reference by the table key passed in. This call returns the table name referenced by that key. If not, return coded error. The client receives error message with code "TABLE_ACCESS_DENIED".
- If max is set, the database is queried for that number of children associated with the parent passed in.
- (New in 1.7.13) If numLevel is set, the query will return up to and including the number of levels specified by numLevel (eg. numlevel=2 returns two levels of descendants, numLevel=4 returns four levels of descendants). By default, the function assumes numLevel = 1 and will return the direct descendants of the concept, which is one level of children. When the numLevel = -1 the function will return ALL descendants of the concept...
- If count < max or no mas set, the database is queried for the entire list of children that meets the parent criteria.
- If count > max a coded error message is sent back.
- If no errors, the client receives a list of children and populates the tree.
- If max exceeded, the client receives an error message with the code "MAX_EXCEEDED". A dialog box is displayed to ask if the user wants to see all nodes. If no – done. If yes – client sends another message with max=empty.
get_children Request Message
- The get_children message implies that the user is passing a key / path for a parent and wants the children returned. The parent tag will tell the service what metadata table / path to search in and for the get_children message must be specified. The structure of a parent is organized as follows:
\\table_key\path
The key (i2b2) plus the path (\RPDR\Diagnoses\Circulatory system (390-459)) is the parent:
<parent>\\i2b2\RPDR\Diagnoses\Circulatory system (390-459)</parent>
The remaining attributes provide information about the results to be returned. - If the number of rows found is greater than max, then an error message will be return in the i2b2 header. If max is left out then it is interpreted that there is no max.
- The hiddens and synonyms attributes tell whether to return hiddens and synonyms. By default hiddens and synonyms are false, so if they are left out it will be false.
- The type tells which columns to select (default / core / all). By default, the type is set to default so you don't have to actually include it if you want the default set of columns returned. Each message will interpret "default" to be a different set of columns. get_children's default set of columns is set to all columns except the blob and the system / date information. If type = core, then all columns except the blob and the system / date information will be returned (same as "default" in this case). If type = all then all columns except the blob are returned.
- The blob attribute indicates whether or not to return the blob along with the default / core / all return columns.
- The numLevel attribute (added in 1.7.13) specifies how many levels of children will be returned. By default, the function assumes numLevel = 1 and will return the direct descendants of the concept, which is one level of children. When the numLevel = -1 the function will return ALL descendants of the concept, otherwise the function will return up to and including the number of levels specified by numLevel (eg. numlevel=2 returns two levels of descendants, numLevel=4 returns four levels of descendants).
<message_body>
<get_children max="200" numLevel="1" hiddens="true" synonyms="true" type="default" blob="false">
<parent>\\i2b2\RPDR\Diagnoses\Circulatory system (390-459)</parent>
</get_children>
</message_body>
Possible "hiddens" Settings
Some ontology terms exist but for various reasons are not displayed in the query tree.
Value | Description |
false | Do not return data categorized as "hidden" |
true | Include data categorized as "hidden" |
Possible "synonyms" Settings
Some ontology terms are listed as synonyms for other terms.
Value | Description |
false | Do not return data categorized as "synonym" |
true | Include data categorized as "synonym" |
Possible "type" Settings
Value | Description |
default | Return all data except system / date information |
core | Return all data except system / date information (same as default) |
all | Return all data |
Possible "blob" Settings
Value | Description | Example |
false | Do not return data stored as a blob or clob | xml, comments |
true | Return xml and comments |
Possible "numLevel" Settings
Value | Description |
1 | The direct descendants of the concept, which is one level of children, the default. |
integer >1 | up to and including the number of levels specified by numLevel (eg. numlevel=2 returns two levels of descendants, numLevel=4 returns four levels of descendants) |
-1 | ALL descendants of the concept |
get_children Response Message
The request has the following settings:
type=default
blob=true
Response Message:
<message_body>
<concepts>
<concept>
<level>1</level>
<key>\\i2b2\RPDR\Diagnoses\Circulatory system (390-459)\Acute Rheumatic fever (390-392)</key>
<name>Acute Rheumatic fever</name>
<synonym_cd>N</synonym_cd>
<visualattributes>FA </visualattributes>
<totalnum/>
<basecode/>
<metadataxml/>
<facttablecolumn>concept_cd</facttablecolumn>
<tablename>concept_dimension</tablename>
<columnname>concept_path</columnname>
<columndatatype>T</columndatatype>
<operator>LIKE</operator>
<dimcode>\ RPDR\Diagnoses\Circulatory system (390-459)\Acute Rheumatic fever (390-392)</dimcode>
<comment/>
<tooltip>Diagnoses \ Circulatory system \ Acute Rheumatic fever</tooltip>
</concept>
</concepts>
</message_body>