Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Expand
titleClick to show/hide overview of the workflow...
The workflow for populating an expression repository using a FHIR Terminology Server is illustrated in
Caption reference
CapRefIdcreateexprep
CapRefTypeFigure

Gliffy Diagram
displayNameFHIRexp
nameFHIRexp
pagePin1

Caption label
CapIdcreateexprep
CapTypeFigure



ServiceDescriptionInput

Create Code System Supplement

PUT


POST /CodeSystem

Create the CodeSystem supplement.

This

supplements

operation must specify a version URI that uses the snomed.info xsct URI with a specific module

and

but no version.

This resource must supplement a specific version of a SNOMED CT

. This operation can use a URI that includes a predefined Module Id, 1234007, for the module that contains the postcoordination content

edition.

The example supplements the International Edition of SNOMED CT (900000000000207008), version Jan 2023 (20230131).

{
    "resourceType": "CodeSystem",
"url": "http://snomed.info/
snomed/exp-id/1234007
info",
"
status
version": "
active
http://snomed.info/xsct/11000003104",
"content": "supplement",
"supplements" : "http://snomed.info/
snomed/exp-id/900000000000207008",
  "valueSet": "
sct|http://snomed.info/sct/
snomed
900000000000207008/
exp-id/1234007?fhir_vs"
version/20230131"
}

Create SNOMED Exp IDs Code System

PUT 


POST  /CodeSystem

(Only needed if EHR cannot store expressions)

Create

If needed, create a CodeSystem for expression identifiers

, specifying the CodeSystem.valueSet URL

.



{

    "resourceType": "CodeSystem",
"url": "http://snomed.info/snomed/exp-id/
1101234
1000003",
"status": "active",
"content": "complete"
,
"valueSet": "http://snomed.info/snomed/exp-id/1101234?fhir_vs"

}

Create Concept Map for Exp Ids

PUT


POST /ConceptMap

(Only needed if EHR cannot store expressions)

Create the ConceptMap to map expressions in the code system supplement to expression identifiers in the Exp. Ids code system. This will be populated manually.

{

    "resourceType": "ConceptMap",
"url": "http://snomed.info/snomed/exp-id-map",
"status": "active",
"source": {
       "sourceUri": "http://snomed.info/xsct/1234007?fhir_vs"},
"target": {
       "targetUri": "http://snomed.info/snomed/exp-id/1101234?fhir_vs"}

}


Get repository details

ServiceDescriptionInput
GET /CodeSystem/{id}Get the details of the Code System using the provided ID; it is the same operation for the supplement or the Exp. IDs code system.
Code System ID, provided in the reponseresponse of the code system creation

...

ServiceDescriptionInput
PATCH /CodeSystem/{id}

Adds an expression in the Code System Supplement using a patch operation.

The display value can be generated from the expression, or the expression itself could be used in this field.

This operation should run validation on the expression being inserted into the supplement.

[
{
"op": "add",
"path": "/concept",
"value": {
"code": "359817006 |Closed fracture of hip (disorder)| :
272741003 |Laterality (attribute)| = 182353008 |Side (qualifier value)|",
"display": "Right closed fracture of hip"
}
}
]

(Source: https://fhirblog.com/2019/08/13/updating-a-resource-using-patch/)

Update expression

...

Updates an expression in the Code System Supplement using a patch operation. It's necessary to provide the index value of the expression in the "concept" property array of the code system.

The display value can be generated from the expression, or the expression itself could be used in this field.

...

/

...

)

...

...

Inactivate expression

...

[
{
"op": "remove",
"path": "/concept/{N}"
}
]

Validate expression

Under development

Lookup expression

ServiceDescriptionInputOutput

GET /CodeSystem/{supplementId}/$lookup?code={CTU}

GET /CodeSystem//$lookup?system={versionUri}&code={CTU}

Lookup Expression in the supplement
  • versionUri
  • CTU: close-to-user expression

GET /ConceptMap/{snomed-exp-id-map}/$translate?system={versionUri}&code={CTU}

Example

GET /ConceptMap/snomed-exp-id-map/$translate?system=http://snomed.info/xsct/1234007
&code=87971000:272741003=7771000

Lookup Expression Identifier from Expression

  • versionUri
  • CTU: close-to-user expression



GET /ConceptMap/{snomed-exp-id-map}/$translate?
reverse=true
&system={versionUri}&code={expId}

Example

GET /ConceptMap/snomed-exp-id-map/$translate?
reverse=true
&system=http://snomed.info/snomed/exp-id/1101234&code=101101234165

Lookup Expression from Expression Identifier 
  • versionUri
  • expId: expression identifier as defined pr. implementation


Search for expression

Under developmentUse an implicit value set with ECL.

Get display term

Under developmentA display term should be returned in the response of the lookup operation. The display term may be generated in a very simple way by just concatenating.

Create Classifiable Form 

Under developmentThis should happen when the expression is inserted into the code system.

Create Necessary Normal Form

Under development

Query expressions

Under development

Subsumption

...

This should happen when the expression is inserted into the code system.



Subsumption

ServiceDescriptionInput

Expression subsumption test

GET /CodeSystem/$subsumes

Test the subsumption between a pair of expressions or an expression and a code.
{
    "resourceType": "CodeSystem",
"url": "http://snomed.info/snomed/exp-id/1234007",
"status": "active",
"content": "supplement",
"supplements": "http://snomed.info/snomed/exp-id/900000000000207008",
  "valueSet": "http://snomed.info/snomed/exp-id/1234007?fhir_vs"

}


ECL

ServiceInputOutput
  • GET /ValueSet/$expand?url={url}?fhir_vs=ecl/{ecl}
  • url: The URI of the expression repository and the CodeSystem it supplements
  • ecl: A valid expression constraint defining the constraints of the query

...