
RESTful API for the Marburg metadata repository
MII Core Dataset ontology consisting of modules and concepts and their relations represented as a hierarchical
tree structure.
Ontology data is used by the Marburg feasibility portal (FDPM) to query local DIC FHIR ๐ฅ data.
GET /ontology/modules (get all CDS module data)
None
| http code | content-type | response |
|---|
200 | application/json | Array of modules |
500 | text/plain;charset=UTF-8 | Error message |
curl -X GET http://localhost:3000/ontology/modules
POST /modules (create CDS module)
None
| content-type | data type | required |
|---|
application/json | Module object | true |
| http code | content-type | response |
|---|
201 | application/json | The newly created Module object |
500 | text/plain;charset=UTF-8 | Error message |
curl -X POST -H "Content-Type: application/json" --data @payload.json http://localhost:3000/ontology/modules
GET /ontology/modules/{id} (get CDS module by id)
| name | type | data type | description |
|---|
id | required | string | The module's unique identifier (uuid) |
| http code | content-type | response |
|---|
200 | application/json | Module data |
404 | text/plain;charset=UTF-8 | No module found with id: xyz |
500 | text/plain;charset=UTF-8 | Error message |
curl -X GET http://localhost:3000/ontology/modules/xzy
GET /ontology/tree/{module_id} (get complete ontology concept tree by module id)
| name | type | data type | description |
|---|
module_id | required | string | The module's unique identifier (uuid) |
| http code | content-type | response |
|---|
200 | application/json | Nested ontology concept tree by module_id |
500 | text/plain;charset=UTF-8 | Error message |
curl -X GET http://localhost:3000/ontology/tree/xzy
POST /ontology/concepts/search (search ontology concepts' display and code values by text)
None
| content-type | data type | required |
|---|
application/json | Search object {"module_id": String, "search_term": String, "display": [null|"tree"]} | true |
| http code | content-type | response |
|---|
200 | application/json | Array of concepts matching the search term |
400 | text/plain;charset=UTF-8 | Search term must consist of at least 2 characters |
500 | text/plain;charset=UTF-8 | Error message |
curl -X POST -H "Content-Type: application/json" --data @payload.json http://localhost:3000/ontology/concepts/search
GET /ontology/concepts/{id} (get concept by id)
| name | type | data type | description |
|---|
id | required | string | The concept's unique identifier (uuid) |
| http code | content-type | response |
|---|
200 | application/json | Concept data |
404 | text/plain;charset=UTF-8 | No concept found with id: xyz |
500 | text/plain;charset=UTF-8 | Error message |
curl -X GET http://localhost:3000/ontology/concepts/xzy
PUT /ontology/concepts/{id} (upsert: create or update concept by id)
None
| content-type | data type | required |
|---|
application/json | Concept object | true |
| http code | content-type | response |
|---|
200 | application/json | empty (concept updated) |
201 | application/json | empty (concept created) |
500 | text/plain;charset=UTF-8 | Error message |
curl -X POST -H "Content-Type: application/json" --data @payload.json http://localhost:3000/ontology/concepts/xzy
Application properties are read from a properties file (app.yaml) with default values.
| Name | Default | Description |
|---|
app.log_level | debug | Log level (error,warn,info,debug,trace) |
database.url | | Postgres database connection string |
database.max_connections | | Max database connections |
database.timeout | | Database connection timeout in seconds |
Override configuration properties by providing environment variables with their respective property names.
AGPL-3.0