CodeSystem Subsumption testing

Overview

Test the subsumption relationship between code/Coding A and code/Coding B given the semantics of subsumption in the underlying code system. For more details see official documentation FHIR CodeSystem $subsumes

Api

URL: [base]/CodeSystem/$subsumes
URL: [base]/CodeSystem/[id]/$subsumes

Parameters

Parameter

Type

Status

Example

codeA

code

supported

code

codeB

code

supported

code

system

uri

supported

system

codingA

Coding

supported

coding

codingB

Coding

supported

coding

version

string

not supported

-

Examples

We will use goal-status CodeSystem, which consists of :

Code

Parent codes

accepted

-

achieved

["accepted"]

ahead-of-target

["accepted", "in-progress"]

behind-target

["accepted", "in-progress"]

cancelled

-

entered-in-error

-

in-progress

["accepted"]

on-hold

["accepted"]

on-target

["accepted", "in-progress"]

planned

["accepted"]

proposed

-

rejected

-

sustaining

["accepted", "in-progress"]

Result of subsumption

The subsumption relationship between code/Coding "A" and code/Coding "B". There are 4 possible codes to be returned: equivalent, subsumes, subsumed-by, and not-subsumed. If the server is unable to determine the relationship between the codes/Codings, then it returns an error.

Requests examples

With code

equivalent

Request
Response
GET [base]/CodeSystem/$subsumes?system=http://hl7.org/fhir/goal-status&codeA=accepted&codeB=accepted

or:

POST [base]/CodeSystem/$subsumes
{
"resourceType" : "Parameters",
"parameter" : [
{
"name" : "system",
"valueUri" : "http://hl7.org/fhir/goal-status"
},
{
"name": "codeA",
"valueCode": "accepted"
},
{
"name": "codeB",
"valueCode": "accepted"
}
]
}
{
"resourceType": "Parameters",
"parameter": [
{
"name": "outcome",
"value": {
"code": "equivalent"
}
}
]
}

subsumes

Request
Response
GET [base]/CodeSystem/$subsumes?system=http://hl7.org/fhir/goal-status&codeA=accepted&codeB=achieved

or:

POST [base]/CodeSystem/$subsumes
{
"resourceType" : "Parameters",
"parameter" : [
{
"name" : "system",
"valueUri" : "http://hl7.org/fhir/goal-status"
},
{
"name": "codeA",
"valueCode": "accepted"
},
{
"name": "codeB",
"valueCode": "achieved"
}
]
}
{
"resourceType": "Parameters",
"parameter": [
{
"name": "outcome",
"value": {
"code": "subsumed"
}
}
]
}

subsumed-by

Request
Response
GET [base]/CodeSystem/$subsumes?system=http://hl7.org/fhir/goal-status&codeA=achieved&codeB=accepted

or:

POST [base]/CodeSystem/$subsumes
{
"resourceType" : "Parameters",
"parameter" : [
{
"name" : "system",
"valueUri" : "http://hl7.org/fhir/goal-status"
},
{
"name": "codeA",
"valueCode": "achieved"
},
{
"name": "codeB",
"valueCode": "accepted"
}
]
}
{
"resourceType": "Parameters",
"parameter": [
{
"name": "outcome",
"value": {
"code": "subsumed-by"
}
}
]
}

not-subsumed

Request
Response
GET [base]/CodeSystem/$subsumes?system=http://hl7.org/fhir/goal-status&codeA=cancelled&codeB=proposed

or:

POST [base]/CodeSystem/$subsumes
{
"resourceType" : "Parameters",
"parameter" : [
{
"name" : "system",
"valueUri" : "http://hl7.org/fhir/goal-status"
},
{
"name": "codeA",
"valueCode": "cancelled"
},
{
"name": "codeB",
"valueCode": "proposed"
}
]
}
{
"resourceType": "Parameters",
"parameter": [
{
"name": "outcome",
"value": {
"code": "not-subsumed"
}
}
]
}

With Coding

You will receive same subsumption results

Request
Response
POST [base]/CodeSystem/$subsumes
{
"resourceType" : "Parameters",
"parameter" : [
{
"name" : "system",
"valueUri" : "http://hl7.org/fhir/goal-status"
},
{
"name": "codingA",
"valueCoding": {
"code": "accepted"
}
},
{
"name": "codingB",
"valueCoding": {
"code": "achieved"
}
}
]
}
{
"resourceType": "Parameters",
"parameter": [
{
"name": "outcome",
"value": {
"code": "subsumed"
}
}
]
}

You can also combine code and Coding

Request
Response
POST [base]/CodeSystem/$subsumes
{
"resourceType" : "Parameters",
"parameter" : [
{
"name" : "system",
"valueUri" : "http://hl7.org/fhir/goal-status"
},
{
"name": "codingA",
"valueCoding": {
"code": "accepted"
}
},
{
"name": "codeB",
"valueCode": "achieved"
}
]
}
{
"resourceType": "Parameters",
"parameter": [
{
"name": "outcome",
"value": {
"code": "subsumed"
}
}
]
}