Configuration API (REST) Version 1.0
DRAFT
Overview
Identifiers in the URL are to be managed externally. As such, internal consistency will hold insofar as resources are consistently linked in external sources.
PUT is used for both update and create, as the client knows beforehand what the configuration URL will be.
PUT is also used for collection replacement. Effectively, is the collection URL is used to PUT data, all configuration data that exist for the given data element will be removed and replaced with the data from the input collection.
POST may still used for creation; the identifier for the POST is extracted from the input XML, and used to build the URL; this will ensure consistency with the URL used with PUT.
Concept Determination Methods
/config/v1/conceptdeterminationmethods
Method | Mime Type | Requires | Returns | Status Code(s) | Description |
---|---|---|---|---|---|
GET | application/xml | conceptDeterminationMethods | 200 (OK) | Provides the list of supported ConceptDeterminationMethods. | |
POST | application/xml | conceptDeterminationMethod |
| Adds a new ConceptDeterminationMethod. Returns an error (status code 409) if the ConceptDeterminationMethod already exists. | |
PUT | application/xml | conceptDeterminationMethods | 204 (No Content) | Replaces the entire existing ConceptDeterminationMethod collection with the collection provided in the request. |
/config/v1/conceptdeterminationmethods/<cdmId>
Method | Mime Type | Requires | Returns | Status Code(s) | Description |
---|---|---|---|---|---|
GET |
| cdmId | conceptDeterminationMethod | 200 (OK) | Provides the ConceptDeterminationMethod associated with the given CDMId, or an error if it is not found. |
PUT |
|
| Adds or Updates the ConceptDeterminationMethod associated with the provided CDMId. | ||
DELETE | cdmId |
| Deletes the ConceptDeterminationMethod associated with the provided CDMId. Returns an error if it is not found. |
The cdmId
is a unique identifier to each ConceptDeterminationMethod
. The cdmId
contains three elements separated by a carat (^
). The three elements must be presented in the following order:
- Code System (optional)
- Code (required)
- Version (optional)
The following are examples in the expected format:
NQF^C45^1.0
^C2511^1.0
(this example contains no Code System)
Execution Engines
/config/v1/executionengines
Method | Mime Type | Requires | Returns | Status Code(s) | Description |
---|---|---|---|---|---|
GET | application/xml | 200 (OK) | Provides the list of ExecutionEngine definitions associated with the service. | ||
POST | application/xml | executionEngine |
|
| Adds a new ExecutionEngine definition. Returns an error (status code 409) if the ExecutionEngine definition already exists. |
PUT | application/xml | executionEngines | 204 (No Content) | Replaces the entire existing ExecutionEngine collection with the collection provided in the request. |
/config/v1/executionengines/<executionEngineId>
Method | Mime Type | Requires | Returns | Status Code(s) | Description |
---|---|---|---|---|---|
GET |
| executionEngineId |
|
| Provides the ExecutionEngine metadata associated with the provided ExecutionEngineId. |
PUT | application/xml |
|
| Adds or Updates the ExecutionEngine definition. | |
DELETE | 204 (No Content) | Deletes an ExecutionEngine. |
The executionEngineId
is a unique identifier for each ExecutionEngine
. The executionEngineId
is the fully-qualified class name of the execution engine. The v1.3 instance of OpenCDS uses a DroolsAdapter, and thus the executionEngineId
is as follows:
org.opencds.service.drools.v55.DroolsAdapter
Knowledge Modules
/config/v1/knowledgemodules
Method | Mime Type | Requires | Returns | Status Code(s) | Description |
---|---|---|---|---|---|
| application/xml |
| Provides the list of configured KnowledgeModules. | ||
POST | application/xml | knowledgeModule |
|
| Adds a new KnowledgeModule. Returns an error (status code 409) if the KnowledgeModule already exists. |
PUT | application/xml | knowledgeModules | 204 (No Content) | Replaces the entire existing KnowledgeModule collection with the collection provided in the request. |
/config/v1/knowledgemodules/<kmId>
Method | Mime Type | Requires | Returns | Status Code(s) | Description |
---|---|---|---|---|---|
GET | application/xml | kmId |
| Provides the KnowledgeModule metadata, or returns an error if it does not exist. | |
PUT | application/xml |
|
| Adds or Updates the KnowledgeModule. | |
DELETE | kmId |
|
| Delete the KnowledgeModule associated with the given KMId, along with its associated KnowledgePackage and SupportingData. Returns an error if not found. |
The kmId
is a unique identifier to each KnowledgeModule
. The kmId
contains three elements separated by a carat (^
). The three required elements must be presented in the following order:
- scopingEntityId
- businessId
- version
The following are examples in the expected format:
edu.utah^AHRQ_PSI_15^4.3.1
- edu.utah^HEDIS_AMR^2014.0.0
Knowledge Package
/config/v1/knowledgemodules/<kmId>/package
Method | Mime Type | Requires | Returns | Status Code(s) | Description |
---|---|---|---|---|---|
GET | application/octet-stream | kmId | package content
|
| Returns the KnowledgePackage associated with the KnowledgeModule (KMId). Returns an error if the KnowledgePackage or the KnowledgeModule is not found. |
PUT | application/octet-stream |
|
|
| Adds or Updates the KnowledgePackage associated with the KnoweldgeModule (KMId). Returns an error if the KnowledgeModule is not found. |
DELETE | kmId |
|
| Deletes the KnowledgePackage associated with the KnowledgeModule (KMId). Returns an error if the KnowledgePackage or KnowledgeModule is not found. |
Supporting Data
/config/v1/knowledgemodules/<kmId>/supportingdata
Method | Mime Type | Requires | Returns | Status Code(s) | Description |
---|---|---|---|---|---|
GET | application/xml | kmId |
| Returns the list of SupportingData (metadata) associated with the given KnowledgeModule (KMId), or an error if the KnowledgeModule is not found. | |
POST | application/xml |
| Creates the SupportingData metadata associated with the KnowledgeModule (KMId). Returns an error (status code 409) if the metadata already exists. Returns an error (status code 404) if the KnowledgeModule is not found. |
/config/v1/knowledgemodules/<kmId>/supportingdata/<supportingDataId>
Method | Mime Type | Requires | Returns | Status Code(s) | Description |
---|---|---|---|---|---|
GET | application/xml |
|
| Returns the SupportingData metadata associated with the given KnowledgeModule (KMId) and SupportingData (SupportingDataId). Returns an error (status code 404) if either the SupportingData or KnowledgeModule are not found. | |
PUT | application/xml |
|
| Updates the SupportingData metadata associated with the given KnowledgeModule (KMId) and SupportingData (SupportingDataId). Returns an error (status code 404) if either the SupportingData or KnowledgeModule are not found. | |
DELETE |
|
| Deletes the SupportingData metadata (and its package) associated with the givenKnowledgeModule (KMId) and SupportingData (SupportingDataId). Returns an error (status code 404) if either the SupportingData or KnowledgeModule are not found. |
The supportingDataId
is a unique identifier for each SupportingData
, and can be any chosen identifier.
/config/v1/knowledgemodules/<kmId>/supportingdata/<supportingDataId>/package
Method | Mime Type | Requires | Returns | Status Code(s) | Description |
---|---|---|---|---|---|
| application/octet-stream |
|
|
| Returns the package associated with the given KnowledgeModule (KMId) and SupportingData (SupportingDataId). Returns an error if either the SupportingData or KnowledgeModule are not found. |
PUT | application/octet-stream |
|
|
| Adds or Creates the package associated with the given KnowledgeModule (KMId) and SupportingData (SupportingDataId).
Returns an error (status code 404) if either the SupportingData or KnowledgeModule are not found. |
DELETE |
|
| Deletes the SupportingData package associated with the given KnowledgeModule (KMId) and SupportingData (SupportingDataId). Returns an error (status code 404) if either the SupportingData or KnowledgeModule are not found. |
Semantic Signifiers
/config/v1/semanticsignifiers
Method | Mime Type | Requires | Returns | Status Code(s) | Description |
---|---|---|---|---|---|
GET | application/xml |
| Returns the list of SemanticSignifiers associated with the service. | ||
POST | application/xml | semanticSignifier |
|
| Adds a new SemanticSignifier. Returns an error (status code 409) if the SemanticSignifier already exists. |
PUT | application/xml | semanticSignifiers | 204 (No Content) | Replaces the entire existing SemanticSignifier collection with the collection provided in the request. |
/config/v1/semanticsignifiers/<SSId>
Method | Mime Type | Requires | Returns | Status Code(s) | Description |
---|---|---|---|---|---|
GET | application/xml | ssId |
| Returns the SemanticSignifier associated with the given SSId, or returns an error if it is not found. | |
PUT | application/xml |
| Adds or Updates the SemanticSignifier associated with the given SSId. | ||
DELETE | ssId |
|
| Deletes the SemanticSignifier associated with the given SSId. Returns an error (status code 404) if it is not found. |
The ssId
is a unique identifier to each SemanticSignifier
. The ssId
contains three elements separated by a carat (^
). The three elements must be presented in the following order:
- scopingEntityId
- businessId
- version
The following is the ssId
for the SemanticSignifier
supported by OpenCDS v1.3:
org.opencds.vmr^VMR^1.0
Plugin Packages
/config/v1/pluginpackages
Method | Mime Type | Requires | Returns | Status Code(s) | Description |
---|---|---|---|---|---|
GET | application/xml |
| Returns the list of PluginPackages associated with the service. | ||
POST | application/xml | pluginPackage |
|
| Adds a new PluginPackage. Returns an error (status code 409) if the PluginPackage already exists. |
PUT | application/xml | pluginPackages | 204 (No Content) | Replaces the entire existing PluginPackage collection with the collection provided in the request. |
/config/v1/pluginpackages/<PPId>
Method | Mime Type | Requires | Returns | Status Code(s) | Description |
---|---|---|---|---|---|
GET | application/xml | ppId |
| Returns the PluginPackage associated with the given PPId, or returns an error if it is not found. | |
PUT | application/xml |
| Adds or Updates the PluginPackage associated with the given PPId. | ||
DELETE | ppId |
|
| Deletes the PluginPackage associated with the given PPId. Returns an error (status code 404) if it is not found. |
/config/v1/pluginpackages/<PPId>/jar
Method | Mime Type | Requires | Returns | Status Code(s) | Description |
---|---|---|---|---|---|
GET | application/octet-stream | ppId | package content (jar) |
| Returns the jar associated with the PluginPackage (PPId), or returns an error if it is not found. |
PUT | application/octet-stream |
|
| Adds or Updates the jar associated with the PluginPackage (PPId). Returns an error if the PluginPackage is not found. | |
DELETE | ppId |
|
| Deletes the jar associated with the PluginPackage (PPId). Returns an error (status code 404) if it is not found. |
The ppId
is a unique identifier to each PluginPackage
. The ppId
contains three elements separated by a carat (^
). The three elements must be presented in the following order:
- scopingEntityId
- businessId
- version