Infoway FHIR Terminology Service API

HL7 FHIR R4 (4.0.1) terminology service from Canada Health Infoway's Terminology Gateway (HAPI FHIR), exposing CodeSystem, ValueSet, ConceptMap, and OperationDefinition resources with read/vread/history/search plus the $lookup, $expand, $translate, and $validate-code terminology operations. A live FHIR CapabilityStatement is served at the base URL's /metadata endpoint.

OpenAPI Specification

infoway-fhir-terminology-service-api-openapi.json Raw ↑
{
    "swagger": "2.0",
    "info": {
        "description": "FHIR web services used to access terminology data.",
        "version": "1.0.0",
        "title": "Terminology FHIR API",
        "termsOfService": "https://ic.infoway-inforoute.ca/en/about/tou?title=8_UserReferencesAndSupports/Terms_And_License_Agreements"
    },
    "basePath": "/fhir/v1",
    "schemes": [
        "https"
    ],
    "paths": {
        "/CodeSystem": {
            "get": {
                "tags": ["CodeSystem"],
                "summary": "Retrieves a list of code systems",
                "description": "Retrieves a list of code systems matching the provided search criteria.",
                "operationId": "findCodeSystems",
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name" : "auth",
                        "description" : "basic access authentication credentials, specified as username:password and encoded using <a href='https://www.base64encode.org/' target='_blank'><b>Base64</b></a> encoding. These credentials can alternatively be passed in the 'Authorization: Basic' HTTP header.",
                        "in" : "query",
                        "type" : "string"
                    },
                    {
                        "name" : "name",
                        "description" : "The name of the code system. By default, this filter matches a code system if its name equals or starts with the supplied parameter value.  Also supports the <a href='http://www.hl7.org/fhir/search.html#string'><code>:contains</code> and <code>:exact</code> modifiers</a>.",
                        "in" : "query",
                        "type" : "string"
                    },
                    {
                        "name" : "_sort",
                        "description" : "Indicates which order to return the results. Terminology Gateway currently only supports sorting on a single field, not chained sort rules.",
                        "in" : "query",
                        "type" : "string",
                        "enum" : ["_id", "-_id", "identifier", "-identifier", "name", "-name"]
                    },
                    {
                        "name" : "_pretty",
                        "description" : "Non-standard parameter to request that responses be pretty-printed.",
                        "in" : "query",
                        "type" : "boolean",
                        "default" : true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema" : {
                            "$ref": "#/definitions/BundleOfCodeSystems"
                        }
                    },
                    "400": {
                        "description": "Invalid parameters"
                    },
                    "403": {
                        "description": "Missing or invalid credentials"
                    }
                }
            }
        },
         "/CodeSystem/{id}": {
            "get": {
                "tags": ["CodeSystem"],
                "summary": "Retrieves a single code system by id",
                "description": "Retrieves a single code system corresponding to the provided id.",
                "operationId": "getCodeSystem",
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name" : "auth",
                        "description" : "basic access authentication credentials, specified as username:password and encoded using <a href='https://www.base64encode.org/' target='_blank'><b>Base64</b></a> encoding. These credentials can alternatively be passed in the 'Authorization: Basic' HTTP header.",
                        "in" : "query",
                        "type" : "string"
                    },
                    {
                        "name" : "id",
                        "required" : true,
                        "description" : "The code system identifier. Either the OID or the name are considered valid identifiers.",
                        "in" : "path",
                        "type" : "string"
                    },
                    {
                        "name" : "_summary",
                        "description" : "Requests that the server return a subset of the resource.  Code System concepts are omitted if set to true.",
                        "in" : "query",
                        "type" : "boolean",
                        "default" : false
                    },
                    {
                        "name" : "_pretty",
                        "description" : "Non-standard parameter to request that responses be pretty-printed.",
                        "in" : "query",
                        "type" : "boolean",
                        "default" : true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema" : {
                            "$ref": "#/definitions/CodeSystem"
                        }
                    },
                    "400": {
                        "description": "Invalid parameters"
                    },
                    "403": {
                        "description": "Missing or invalid credentials"
                    },
                    "404": {
                        "description": "Unknown code system identifier"
                    }
                }
            }
        },
        "/CodeSystem/{id}/_history": {
            "get": {
                "tags": ["CodeSystem"],
                "summary": "Retrieves the history of a particular code system",
                "description": "Retrieves the specified version history, sorted with oldest versions last",
                "operationId": "getCodeSystemHistory",
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name" : "auth",
                        "description" : "basic access authentication credentials, specified as username:password and encoded using <a href='https://www.base64encode.org/' target='_blank'><b>Base64</b></a> encoding. These credentials can alternatively be passed in the 'Authorization: Basic' HTTP header.",
                        "in" : "query",
                        "type" : "string"
                    },
                    {
                        "name" : "id",
                        "required" : true,
                        "description" : "The code system identifier. Either the OID or the name are considered valid identifiers.",
                        "in" : "path",
                        "type" : "string"
                    },
                    {
                        "name" : "_pretty",
                        "description" : "Non-standard parameter to request that responses be pretty-printed.",
                        "in" : "query",
                        "type" : "boolean",
                        "default" : true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema" : {
                            "$ref": "#/definitions/BundleOfCodeSystems"
                        }
                    },
                    "400": {
                        "description": "Invalid parameters"
                    },
                    "403": {
                        "description": "Missing or invalid credentials"
                    },
                    "404": {
                        "description": "Unknown code system identifier"
                    }
                }
            }
        },
         "/CodeSystem/{id}/_history/{vid}": {
            "get": {
                "tags": ["CodeSystem"],
                "summary": "Retrieves a single code system by id and version id",
                "description": "Retrieves a single code system corresponding to the provided id and version id.",
                "operationId": "getCodeSystemVersion",
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name" : "auth",
                        "description" : "basic access authentication credentials, specified as username:password and encoded using <a href='https://www.base64encode.org/' target='_blank'><b>Base64</b></a> encoding. These credentials can alternatively be passed in the 'Authorization: Basic' HTTP header.",
                        "in" : "query",
                        "type" : "string"
                    },
                    {
                        "name" : "id",
                        "required" : true,
                        "description" : "The code system identifier. Either the OID or the name are considered valid identifiers.",
                        "in" : "path",
                        "type" : "string"
                    },
                    {
                        "name" : "vid",
                        "required" : true,
                        "description" : "The code system version identifier.",
                        "in" : "path",
                        "type" : "string"
                    },
                    {
                        "name" : "_summary",
                        "description" : "Requests that the server return a subset of the resource.  Code System concepts are omitted if set to true.",
                        "in" : "query",
                        "type" : "boolean",
                        "default" : false
                    },
                    {
                        "name" : "_pretty",
                        "description" : "Non-standard parameter to request that responses be pretty-printed.",
                        "in" : "query",
                        "type" : "boolean",
                        "default" : true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema" : {
                            "$ref": "#/definitions/CodeSystem"
                        }
                    },
                    "400": {
                        "description": "Invalid parameters"
                    },
                    "403": {
                        "description": "Missing or invalid credentials"
                    },
                    "404": {
                        "description": "Unknown code system identifier"
                    }
                }
            }
        },
       "/CodeSystem/$lookup": {
            "get": {
                "tags": ["CodeSystem"],
                "summary": "Retrieves a single concept from a code system",
                "description": "Given a code and a code system, get additional details about the concept, including definition, status, designations, and properties.",
                "operationId": "lookupConcept",
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name" : "auth",
                        "description" : "basic access authentication credentials, specified as username:password and encoded using <a href='https://www.base64encode.org/' target='_blank'><b>Base64</b></a> encoding. These credentials can alternatively be passed in the 'Authorization: Basic' HTTP header.",
                        "in" : "query",
                        "type" : "string"
                    },
                    {
                        "name" : "code",
                        "description" : "The code that is to be located.",
                        "in" : "query",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "system",
                        "description" : "The URI of the code system for the code that is to be located.  If using the code system OID, it must be in the URI format urn:oid:[oid-value]",
                        "in" : "query",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "version",
                        "description" : "The version of the code system.",
                        "in" : "query",
                        "required" : false,
                        "type" : "string"
                    },
                    {
                        "name" : "_pretty",
                        "description" : "Non-standard parameter to request that responses be pretty-printed.",
                        "in" : "query",
                        "type" : "boolean",
                        "default" : true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema" : {
                            "$ref": "#/definitions/ConceptLookupResponseParameter"
                        }
                    },
                    "400": {
                        "description": "Invalid parameters"
                    },
                    "403": {
                        "description": "Missing or invalid credentials"
                    },
                    "404": {
                        "description": "Unknown code, code system identifier, or code system version."
                    }
                }
            },
            "post": {
                "tags": ["CodeSystem"],
                "summary": "Retrieves a single concept from a code system",
                "description": "Given a Coding, get additional details about the concept, including definition, status, designations, and properties.",
                "operationId": "lookupConceptByCoding",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name" : "auth",
                        "description" : "basic access authentication credentials, specified as username:password and encoded using <a href='https://www.base64encode.org/' target='_blank'><b>Base64</b></a> encoding. These credentials can alternatively be passed in the 'Authorization: Basic' HTTP header.",
                        "in" : "query",
                        "type" : "string"
                    },
                    {
                        "name" : "parameters",
                        "description" : "The Parameters resource containing a Coding for the desired concept.",
                        "in" : "body",
                        "required" : true,
                        "schema" : {
                            "$ref": "#/definitions/CodingParameter"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema" : {
                            "$ref": "#/definitions/ConceptLookupResponseParameter"
                        }
                    },
                    "400": {
                        "description": "Invalid parameters"
                    },
                    "403": {
                        "description": "Missing or invalid credentials"
                    },
                    "404": {
                        "description": "Unknown code, code system identifier, or code system version."
                    }
                }
            }
        },
        "/ConceptMap": {
            "get": {
                "tags": ["ConceptMap"],
                "summary": "Retrieves a list of concept maps",
                "description": "Retrieves a list of concept maps matching the provided search criteria.",
                "operationId": "findConceptMaps",
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name" : "auth",
                        "description" : "basic access authentication credentials, specified as username:password and encoded using <a href='https://www.base64encode.org/' target='_blank'><b>Base64</b></a> encoding. These credentials can alternatively be passed in the 'Authorization: Basic' HTTP header.",
                        "in" : "query",
                        "type" : "string"
                    },
                    {
                        "name" : "name",
                        "description" : "The name of the concept map. By default, this filter matches a concept map if its name equals or starts with the supplied parameter value.  Also supports the <a href='http://www.hl7.org/fhir/search.html#string'><code>:contains</code> and <code>:exact</code> modifiers</a>.",
                        "in" : "query",
                        "type" : "string"
                    },
                    {
                        "name" : "_sort",
                        "description" : "Indicates which order to return the results. Terminology Gateway currently only supports sorting on a single field, not chained sort rules.",
                        "in" : "query",
                        "type" : "string",
                        "enum" : ["_id", "-_id", "identifier", "-identifier", "name", "-name"]
                    },
                    {
                        "name" : "_pretty",
                        "description" : "Non-standard parameter to request that responses be pretty-printed.",
                        "in" : "query",
                        "type" : "boolean",
                        "default" : true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema" : {
                            "$ref": "#/definitions/BundleOfConceptMaps"
                        }
                    },
                    "400": {
                        "description": "Invalid parameters"
                    },
                    "403": {
                        "description": "Missing or invalid credentials"
                    }
                }
            }
        },
         "/ConceptMap/{id}": {
            "get": {
                "tags": ["ConceptMap"],
                "summary": "Retrieves a single concept map by id",
                "description": "Retrieves a single concept map corresponding to the provided id.",
                "operationId": "getConceptMap",
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name" : "auth",
                        "description" : "basic access authentication credentials, specified as username:password and encoded using <a href='https://www.base64encode.org/' target='_blank'><b>Base64</b></a> encoding. These credentials can alternatively be passed in the 'Authorization: Basic' HTTP header.",
                        "in" : "query",
                        "type" : "string"
                    },
                    {
                        "name" : "id",
                        "required" : true,
                        "description" : "The concept map identifier. Either the OID or the name are considered valid identifiers.",
                        "in" : "path",
                        "type" : "string"
                    },
                    {
                        "name" : "_pretty",
                        "description" : "Non-standard parameter to request that responses be pretty-printed.",
                        "in" : "query",
                        "type" : "boolean",
                        "default" : true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema" : {
                            "$ref": "#/definitions/ConceptMap"
                        }
                    },
                    "400": {
                        "description": "Invalid parameters"
                    },
                    "403": {
                        "description": "Missing or invalid credentials"
                    },
                    "404": {
                        "description": "Unknown concept map identifier"
                    }
                }
            }
        },
        "/ConceptMap/{id}/_history": {
            "get": {
                "tags": ["ConceptMap"],
                "summary": "Retrieves the history of a particular concept map",
                "description": "Retrieves the specified version history, sorted with oldest versions last",
                "operationId": "getConceptMapHistory",
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name" : "auth",
                        "description" : "basic access authentication credentials, specified as username:password and encoded using <a href='https://www.base64encode.org/' target='_blank'><b>Base64</b></a> encoding. These credentials can alternatively be passed in the 'Authorization: Basic' HTTP header.",
                        "in" : "query",
                        "type" : "string"
                    },
                    {
                        "name" : "id",
                        "required" : true,
                        "description" : "The concept map identifier. Either the OID or the name are considered valid identifiers.",
                        "in" : "path",
                        "type" : "string"
                    },
                    {
                        "name" : "_pretty",
                        "description" : "Non-standard parameter to request that responses be pretty-printed.",
                        "in" : "query",
                        "type" : "boolean",
                        "default" : true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema" : {
                            "$ref": "#/definitions/BundleOfConceptMaps"
                        }
                    },
                    "400": {
                        "description": "Invalid parameters"
                    },
                    "403": {
                        "description": "Missing or invalid credentials"
                    },
                    "404": {
                        "description": "Unknown concept map identifier"
                    }
                }
            }
        },
         "/ConceptMap/{id}/_history/{vid}": {
            "get": {
                "tags": ["ConceptMap"],
                "summary": "Retrieves a single concept map by id and version id",
                "description": "Retrieves a single concept map corresponding to the provided id and version id.",
                "operationId": "getConceptMapVersion",
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name" : "auth",
                        "description" : "basic access authentication credentials, specified as username:password and encoded using <a href='https://www.base64encode.org/' target='_blank'><b>Base64</b></a> encoding. These credentials can alternatively be passed in the 'Authorization: Basic' HTTP header.",
                        "in" : "query",
                        "type" : "string"
                    },
                    {
                        "name" : "id",
                        "required" : true,
                        "description" : "The concept map identifier. Either the OID or the name are considered valid identifiers.",
                        "in" : "path",
                        "type" : "string"
                    },
                    {
                        "name" : "vid",
                        "required" : true,
                        "description" : "The concept map version identifier.",
                        "in" : "path",
                        "type" : "string"
                    },
                    {
                        "name" : "_pretty",
                        "description" : "Non-standard parameter to request that responses be pretty-printed.",
                        "in" : "query",
                        "type" : "boolean",
                        "default" : true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema" : {
                            "$ref": "#/definitions/ConceptMap"
                        }
                    },
                    "400": {
                        "description": "Invalid parameters"
                    },
                    "403": {
                        "description": "Missing or invalid credentials"
                    },
                    "404": {
                        "description": "Unknown concept map identifier"
                    }
                }
            }
        },
        "/ConceptMap/{id}/$translate": {
            "get": {
                "tags": ["ConceptMap"],
                "summary": "Translate a code from one value set to another, based on the existing value set and concept maps resources",
                "description": "The operation returns a set of parameters including a 'result' for whether there is an acceptable match.",
                "operationId": "translateConcept",
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name" : "auth",
                        "description" : "basic access authentication credentials, specified as username:password and encoded using <a href='https://www.base64encode.org/' target='_blank'><b>Base64</b></a> encoding. These credentials can alternatively be passed in the 'Authorization: Basic' HTTP header.",
                        "in" : "query",
                        "type" : "string"
                    },
                    {
                        "name" : "id",
                        "required" : true,
                        "description" : "The concept map identifier. Either the OID or the name are considered valid identifiers.",
                        "in" : "path",
                        "type" : "string"
                    },
                    {
                        "name" : "code",
                        "description" : "The code that is to be translated.",
                        "in" : "query",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "system",
                        "description" : "The system for the code that is to be translated",
                        "in" : "query",
                        "type" : "string"
                    },
                    {
                        "name" : "version",
                        "description" : "The version of the system, if one was provided in the source data",
                        "in" : "query",
                        "required" : false,
                        "type" : "string"
                    },
                    {
                        "name" : "reverse",
                        "description" : "if this is true, then the operation should return all the codes that might be mapped to this code.",
                        "in" : "query",
                        "required" : false,
                        "type" : "boolean"
                    },
                    {
                        "name" : "_pretty",
                        "description" : "Non-standard parameter to request that responses be pretty-printed.",
                        "in" : "query",
                        "type" : "boolean",
                        "default" : true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema" : {
                            "$ref": "#/definitions/Parameters"
                        }
                    },
                    "400": {
                        "description": "Invalid parameters"
                    },
                    "403": {
                        "description": "Missing or invalid credentials"
                    },
                    "404": {
                        "description": "Unknown code, code system identifier, or code system version."
                    }
                }
            },
            "post": {
                "tags": ["ConceptMap"],
                "summary": "Translate a code from one value set to another, based on the existing value set and concept maps resources",
                "description": "The operation returns a set of parameters including a 'result' for whether there is an acceptable match.",
                "operationId": "translateConcept",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name" : "auth",
                        "description" : "basic access authentication credentials, specified as username:password and encoded using <a href='https://www.base64encode.org/' target='_blank'><b>Base64</b></a> encoding. These credentials can alternatively be passed in the 'Authorization: Basic' HTTP header.",
                        "in" : "query",
                        "type" : "string"
                    },
                    {
                        "name" : "id",
                        "required" : true,
                        "description" : "The concept map identifier. Either the OID or the name are considered valid identifiers.",
                        "in" : "path",
                        "type" : "string"
                    },
                    {
                        "name" : "parameters",
                        "description" : "The Parameters resource containing a Coding or a CodeableConcept for the desired concept.",
                        "in" : "body",
                        "required" : true,
                        "schema" : {
                            "$ref": "#/definitions/ConceptMapTranslateInParameter"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema" : {
                            "$ref": "#/definitions/Parameters"
                        }
                    },
                    "400": {
                        "description": "Invalid parameters"
                    },
                    "403": {
                        "description": "Missing or invalid credentials"
                    },
                    "404": {
                        "description": "Unknown code, code system identifier, or code system version."
                    }
                }
            }
        },
        "/ValueSet": {
            "get": {
                "tags": ["ValueSet"],
                "summary": "Retrieves a list of value sets",
                "description": "Retrieves a list of value sets matching the provided search criteria.",
                "operationId": "findValueSets",
                "produces": [
                    "application/json"
                ],
                "parameters": [
        

# --- truncated at 32 KB (93 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/canada-health-infoway/refs/heads/main/openapi/infoway-fhir-terminology-service-api-openapi.json