ITK Function Reference

(V10000.1.0.60_20160308.00)
Data Structures | Typedefs | Functions

Data Structures

struct  ICS_value_list_entry_s
 
struct  ICS_value_list_s
 

Typedefs

typedef struct
ICS_value_list_entry_s
ICS_value_list_entry_p_t
 
typedef struct
ICS_value_list_entry_s 
ICS_value_list_entry_t
 
typedef struct ICS_value_list_sICS_value_list_p_t
 
typedef struct ICS_value_list_s ICS_value_list_t
 

Functions

ICS_API int ICS_enquiry_add_order_attrs (const char *theQueryName, const char *theClassId, int theOrderAttrCount, const int *theOrderAttrs, const int *theOrder)
 
ICS_API int ICS_enquiry_add_select_attrs (const char *theQueryName, const char *theClassId, int theSelectAttrCount, const int *theSelectAttrs)
 
ICS_API int ICS_enquiry_add_select_expr (const char *theQueryName, const char *theClassId, int theAttributeId, int theSelectExpr)
 
ICS_API int ICS_enquiry_askPomAttributeNames (const char *theClassId, int theCount, const int *theUnctList, char ***thePomColumnNames)
 
ICS_API int ICS_enquiry_create_enquiry (const char *theQueryName, const char *theClassId, const ICS_value_list_p_t theICSQueryList, int theOptions)
 
ICS_API int ICS_enquiry_getPomClassNameForICSClass (char **thePomClassName)
 
ICS_API int ICS_enquiry_search (const char *theClassId, const ICS_value_list_p_t theICSQueryList, int theOrderAttrCount, const int *theOrderAttrs, const int *theOrder, int theOptions, int *theResultCount, tag_t **theResults)
 
ICS_API int ICS_enquiry_select_distinct (const char *theClassId, const ICS_value_list_p_t theEnquiryValues, int theAttributeId, int theOptions, int *theResultCount, char ***theResults)
 
ICS_API int ICS_enquiry_set_attr_expr (const char *theQueryName, const char *theExprName, const char *theClassId, int theAttributeId, int thePomOperator, const char *thePomExpression, int theOptions)
 
ICS_API int ICS_enquiry_set_attr_icsexpr (const char *theQueryName, const char *theExprName, const char *thePOMClassName, const char *thePOMAttrName, const char *theICSExpr, int theEnqOptions)
 
ICS_API int ICS_enquiry_set_expr_for_class (const char *theQueryName, const char *theExprName, const char *theClassId, int theOptions)
 
ICS_API int ICS_enquiry_set_ics_attr_expr (const char *theQueryName, const char *theExprName, const char *theClassId, int theAttributeId, const char *theICSExpr, int theOptions)
 
ICS_API int ICS_enquiry_set_ics_expr (const char *theQueryName, const char *theExprName, const char *theClassId, const ICS_value_list_p_t theICSQueryList, int theOptions)
 
ICS_API int ICS_get_value_list (int theEntryCount, const int *theAttrIds, const char **theValues, ICS_value_list_p_t *theValueList)
 

Detailed Description

The following functions are used to enable the Classification extended search features.

Note
To search in both unit systems you need to create two separate enquiries, one for each unit system. You need to specify the active unitsystem as part of each query: -630 = 0/1 (metric/non-metric). ICS_attribute_convert_attribute_values can be used to convert attribute values from one unit to another unit. These two enquiries can be combined using POM_enquiry_combine_enquiry.

Typedef Documentation

Function Documentation

ICS_API int ICS_enquiry_add_order_attrs ( const char *  theQueryName,
const char *  theClassId,
int  theOrderAttrCount,
const int *  theOrderAttrs,
const int *  theOrder 
)

This function adds an order statement for theOrderAttributes to the POM enquiry theEnquiryName (this POM enquiry must exist). Sorting order for theOrderAttrs[i] is thePomOrderi.

Parameters
theQueryName(I) The name of the POM enquiry to which the order attributes will be added
theClassId(I) The name of the inCLASS class to which the order attributes belong
theOrderAttrCount(I) The number of ORDER attributes to be added
theOrderAttrs(I) The IDs of the order attributes
theOrder(I) The POM order for attributes
ICS_API int ICS_enquiry_add_select_attrs ( const char *  theQueryName,
const char *  theClassId,
int  theSelectAttrCount,
const int *  theSelectAttrs 
)

This function adds attribute IDs (theSelectAttrIDs) to the SELECT clause of the POM enquiry theEnquiryName (this enquiry must exist).

Parameters
theQueryName(I) The name of the POM enquiry where the SELECT statements will be created
theClassId(I) The name of the inCLASS class to which the select attributes belong
theSelectAttrCount(I) The number of select attributes to be added
theSelectAttrs(I) The attributes to be selected
ICS_API int ICS_enquiry_add_select_expr ( const char *  theQueryName,
const char *  theClassId,
int  theAttributeId,
int  theSelectExpr 
)

This function adds an expression to the SELECT clause of POM enquiry, theEnquiryName. The expression is made of theAttributeId and thePomOperator, for example, POM_tonumber.

Parameters
theQueryName(I) The name of the POM enquiry where the SELECT statement will be created
theClassId(I) The name of the inCLASS class to which the select attributes belong
theAttributeId(I) The ID of the attribute for the SELECT statement
theSelectExpr(I) The POM operator to build the SELECT expression
ICS_API int ICS_enquiry_askPomAttributeNames ( const char *  theClassId,
int  theCount,
const int *  theUnctList,
char ***  thePomColumnNames 
)

This function returns a list of POM class attribute names for the given attribute IDs. If an error occurs, thePomColumnNames is not set; otherwise, thePomColumnNames must be freed.

Parameters
theClassId(I) The attribute IDs belong to this inCLASS class
theCount(I) The number of attributes
theUnctList(I) The POM class attribute names will be given for these attribute IDs
thePomColumnNames(OF) theCount The POM class attribute names for the attribute IDs
ICS_API int ICS_enquiry_create_enquiry ( const char *  theQueryName,
const char *  theClassId,
const ICS_value_list_p_t  theICSQueryList,
int  theOptions 
)

This function creates a POM enquiry named theEnquiryName and sets the WHERE expression of the enquiry to the expression resulting from theEnquiryValues.

No SELECT- or ORDER- statements are added.

Parameters
theQueryName(I) The name of the POM enquiry that will be created
theClassId(I) The ID of the inCLASS class to be queried
theICSQueryList(I) A list containing attributes and search values
theOptions(I) The enquiry options: ICS_SEARCH_THIS_CLASS_ONLY to limit search results to the class with the unique ID, theClassId. ICS_SEARCH_CASE_INSENSITIVE to search without case sensitivity
ICS_API int ICS_enquiry_getPomClassNameForICSClass ( char **  thePomClassName)

This function returns the name of the POM class in which ICOs are stored (at most sites the name is "icm0"). thePomClassName has to be freed.

Parameters
thePomClassName(OF) Holds the name of the POM class where ICOs are stored
ICS_API int ICS_enquiry_search ( const char *  theClassId,
const ICS_value_list_p_t  theICSQueryList,
int  theOrderAttrCount,
const int *  theOrderAttrs,
const int *  theOrder,
int  theOptions,
int *  theResultCount,
tag_t **  theResults 
)

This function executes the POM enquiry resulting from the theICSQueryList argument with order expressions for the theOrderAttrIds (== attribute IDs) argument. The sorting order of the theOrderAttrIds[i] is theOrderi.

If the function succeeds, then the theResults argument points to an array where the tags of the resulting ICOs (Classification objects) are stored.

Parameters
theClassId(I) The ID of the inCLASS class to be queried
theICSQueryList(I) A list containing attributes and search values
theOrderAttrCount(I) The number of ORDER BY attributes
theOrderAttrs(I) The attribute values by which the enquiry results will be ordered
theOrder(I) The sorting order, either:
POM_enquiry_desc_order or POM_enquiry_asc_order
theOptions(I) The enquiry options:
ICS_SEARCH_THIS_CLASS_ONLY to limit search results to the class with the unique ID, theClassId.
ICS_SEARCH_CASE_INSENSITIVE to search without case sensitivity
theResultCount(O) The number of selected tags
theResults(OF) theResultCount The selected tags
ICS_API int ICS_enquiry_select_distinct ( const char *  theClassId,
const ICS_value_list_p_t  theEnquiryValues,
int  theAttributeId,
int  theOptions,
int *  theResultCount,
char ***  theResults 
)

This function selects values of the theAttributeId argument from the inCLASS class, theClassId, with a WHERE expression resulting from the theICSQueryList argument. The argument theResults contains the values as strings.

Parameters
theClassId(I) The ID of the inCLASS class to be queried
theEnquiryValues(I) A list containing attributes and search values
theAttributeId(I) The values of this attribute will be selected
theOptions(I) The enquiry options:
ICS_SEARCH_THIS_CLASS_ONLY to limit search results to the class with the unique ID, theClassId.
ICS_SEARCH_CASE_INSENSITIVE to search without case sensitivity
theResultCount(O) The number of selected values
theResults(OF) theResultCount The selected values
ICS_API int ICS_enquiry_set_attr_expr ( const char *  theQueryName,
const char *  theExprName,
const char *  theClassId,
int  theAttributeId,
int  thePomOperator,
const char *  thePomExpression,
int  theOptions 
)

This function creates the expression theExprName in POM enquiry theEnquiryName (this POM enquiry must exist). The theExprName expression results from theAttributeId, thePomOperator (for example, POM_enquiry_equal) and theExpressionValue.

Note
This function must be used in combination with ICS_enquiry_set_expr_for_class, because an expression has to be set for the inCLASS class that is to be searched. If you do not call ICS_enquiry_set_expr_for_class or do not use the expression created by this function, your enquiry will search ALL inCLASS classes.
Parameters
theQueryName(I) The name of the POM enquiry where the expression will be created
theExprName(I) The name of the POM expression to be created
theClassId(I) The inCLASS class for which the class expression will be created
theAttributeId(I) The POM expression will be created for this attribute
thePomOperator(I) The POM operator for the expression
thePomExpression(I) The value is one of the following:
  • An expression identifier
  • A value identifier
  • A sub-enquiry identifier
  • NULL
theOptions(I) The enquiry options: ICS_SEARCH_CASE_INSENSITIVE to search without case sensitivity; otherwise, set theOptions to 0
ICS_API int ICS_enquiry_set_attr_icsexpr ( const char *  theQueryName,
const char *  theExprName,
const char *  thePOMClassName,
const char *  thePOMAttrName,
const char *  theICSExpr,
int  theEnqOptions 
)

Create a POM enquiry expression based on the theICSExpr for the given attribute of a POM class

Parameters
theQueryName(I)
theExprName(I)
thePOMClassName(I)
thePOMAttrName(I)
theICSExpr(I)
theEnqOptions(I)
ICS_API int ICS_enquiry_set_expr_for_class ( const char *  theQueryName,
const char *  theExprName,
const char *  theClassId,
int  theOptions 
)

This function creates an inCLASS class expression in POM enquiry theEnquiryName. This expression must be used in combination with ICS_enquiry_set_ics_attr_expr and ICS_enquiry_set_attr_expr.

Parameters
theQueryName(I) The name of the POM enquiry where the SELECT statement will be created
theExprName(I) The name of the POM expression to be created
theClassId(I) The inCLASS class for which the class expression will be created
theOptions(I) The enquiry options:
ICS_SEARCH_THIS_CLASS_ONLY to limit search results to the class with the unique ID, theClassId; otherwise, set theOptions to 0
ICS_API int ICS_enquiry_set_ics_attr_expr ( const char *  theQueryName,
const char *  theExprName,
const char *  theClassId,
int  theAttributeId,
const char *  theICSExpr,
int  theOptions 
)

This function creates the expression theExprName in POM enquiry theEnquiryName (this POM enquiry must exist). The theExprName expression results from theAttributeId and theCompareString.

Note
This function must be used in combination with ICS_enquiry_set_expr_for_class, because an expression has to be set for the inCLASS class that is to be searched. If you do not call ICS_enquiry_set_expr_for_class or do not use the expression created by this function, your enquiry will search ALL inCLASS classes.

Example:

int ifail, attributeID = 1025;
char *classID = "CLASS1",
*enquiryName = "myEnquiry",
*expressionName = "myExpression",
*classExpressionName = "myClassExpression",
*whereExpressionName = "myWhereExpression";
ifail = POM_enquiry_create( enquiry );
if ( POM_ok == ifail )
{
ifail = ICS_enquiry_set_ics_attr_expr(enquiryName,
expressionName,
classID,
attributeID,
"!= London",
if ( ITK_ok == ifail )
{
ifail = ICS_enquiry_set_expr_for_class(enquiryName,
classExpressionName,
classID,
if ( ITK_ok == ifail )
{
ifail = POM_enquiry_set_expr(enquiryName,
whereExpressionName,
myExpressionName,
classExpressionName);
if ( ITK_ok == ifail )
{
ifail = POM_enquiry_set_where_expr(enquiryName,
whereExpressionName);
if ( ITK_ok == ifail )
{
... add attributes to select, execute enquiry and use result
}
}
}
}
}
Parameters
theQueryName(I) The name of the POM enquiry where the expression will be created
theExprName(I) The name of the POM expression to be created
theClassId(I) The inCLASS class for which the expression will be created
theAttributeId(I) The attribute for which the POM expression will be created
theICSExpr(I) The search string for the attribute
theOptions(I) The enquiry options: ICS_SEARCH_CASE_INSENSITIVE to search without case sensitivity; otherwise, set theOptions to 0
ICS_API int ICS_enquiry_set_ics_expr ( const char *  theQueryName,
const char *  theExprName,
const char *  theClassId,
const ICS_value_list_p_t  theICSQueryList,
int  theOptions 
)

This function creates the expression theExprName (as the expression resulting from theEnquiryValues) in POM enquiry theEnquiry (this POM enquiry must exist). This expression can be used like any POM expression.

Parameters
theQueryName(I) The name of the POM enquiry that will be created
theExprName(I) The name of the expression to be created
theClassId(I) The ID of the inCLASS class to be queried
theICSQueryList(I) A list containing attributes and search values
theOptions(I) The enquiry options: ICS_SEARCH_THIS_CLASS_ONLY to limit search results to the class with the unique ID, theClassId, ICS_SEARCH_CASE_INSENSITIVE to search without case sensitivity
ICS_API int ICS_get_value_list ( int  theEntryCount,
const int *  theAttrIds,
const char **  theValues,
ICS_value_list_p_t theValueList 
)

This function processes list of attribute ids and attribute values to create structure containing attibute ids and their values.

Parameters
theEntryCount(I) The number of entries to be a list
theAttrIds(I) The list of attributes (ids)
theValues(I) The list of attributes values
theValueList(OF) A list containing attributes (ids) and values