FHIR Terminology Ecosystem IG
1.9.3 - Release International flag

FHIR Terminology Ecosystem IG, published by HL7 FHIR Product Director. This guide is not an authorized publication; it is the continuous build for version 1.9.3 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-tx-ecosystem-ig/ and changes regularly. See the Directory of published versions

Test Case Registry

Test cases

The tests assume that the server can accept code systems on the fly. If servers do not accept code systems on the fly, server authors will have to adapt these tests by rewriting them for their own actual support code systems. Either way, servers that do SHOULD pass all the tests, but the FHIR product director will review the test outcomes in order to approve a server.

The test cases are in version R5, but the tests will run against either an R4 or an R5 server. See R4 and the Test Cases

Running the tests

The tests can be run by any runner that processes the tests correctly, but the easiest way to execute the tests is to use the standard Java FHIR Validator. Run with the parameters:

txTests -tx {server} -version? {version} -externals {file} -output {folder} -mode? {flat}?

Notes:

  • server is the URL of the server to test for conformance
  • the version defaults to 'current' - the version of the tests in the ci-build of the this IG
  • externals is a file that allows the server to use it's own messages - they don't have to match the tx.fhir.org messages. Just copy the file tests/messages-tx.fhir.org.json for the format.
  • the output folder will default to your temporary directory. It produces output for the failed tests that you can compare with the /tests directory in the package for this IG with a comparison software of your choice (winmerge, beyondCompare, etc)
  • modes - see below. you can pass in multiple modes if necessary, separated by commas

Test Suites and Test Cases

All the tests are registered in tests/test-cases.json, which contains a list of suites, each of which contains a list of tests. A suite may have:

  • name: the name of the suite (used in the test output, and to run a single suite)
  • description: what the suite is for
  • setup: a list of files containing the resources (code systems, value sets, concept maps) that the server needs in order to run the tests in the suite. Servers that cannot accept resources on the fly have to load these some other way
  • mode / modes: the suite only runs when the runner is in that mode (see below)
  • version: the suite only runs against servers of that FHIR version (see below)
  • disabled: if true, the suite is not run at all

A test may have:

  • name: the name of the test, unique within the suite
  • description: what the test is checking. This is the documentation for the requirement the test enforces, so it should say why the expected response is the correct one
  • operation: one of expand, validate-code, cs-validate-code, lookup, translate, compare, batch, batch-validate, metadata, term-caps
  • request: the file containing the request parameters (not used by metadata / term-caps)
  • response: the file containing the expected response
  • request:{mode} / response:{mode}: an alternative request or response used when the runner is in that mode - e.g. response:flat for servers that return a flat expansion
  • mode / modes, version, disabled: as for suites
  • http-code: the expected HTTP status code, where it isn't 200 (e.g. 422, or 4xx)
  • lenient-display: sets the lenient-display-validation parameter on a validate-code or cs-validate-code request, so that the same request can be tested both ways
  • profile: a file containing a Parameters resource with the expansion parameters to use
  • Accept-Language: the language to ask for
  • header: an additional HTTP header to send ( name, value, and optionally mode)

Versions

The test cases are written in R5, and most of them are the same for an R4 server, but some questions have different answers in different versions of FHIR. Where a test only makes sense for particular versions, the version property says which:

  • "version" : "4.0": only run this against an R4 server (matches 4.0, and any version starting 4.0., so 4.0.1 matches)
  • "version" : "!4.0": run this against anything except an R4 server

Where the same test applies to all versions but the response differs, the difference is marked in the expected response with $optional$ or $only$ (see below).

Test Templates

Expected responses are not compared literally - they are templates. A string in an expected response may be one of:

  • $$: any value
  • $id$, $uuid$, $url$, $token$, $string$, $date$, $instant$, $semver$: any value of that kind. ($string$ means any string that has no leading or trailing whitespace)
  • $version$: the FHIR version of the server being tested. $version$ is also substituted into longer strings, so "...|$version$" works
  • $choice:a|b|c$: any one of the listed values
  • $fragments:a|b$: any string that contains all of the listed fragments (case insensitive). This is how messages are checked where the exact wording is not fixed
  • $external:N$: the string registered as N in the externals file, which lets a server provide its own wording for a message. See tests/messages-tx.fhir.org.json for the format. $external:N:a|b$ also gives fragments to use when no externals file is provided

An object in an expected response may carry:

  • $optional-properties$: an array of the names of properties that the server is allowed to omit. * means all of them
  • $count-arrays$: an array of the names of properties whose content is not checked - only the number of entries in them
  • $optional$: this object may be omitted (see below)
  • $only$: this object is required in some versions or modes, and prohibited in the rest (see below)

$optional$ and $only$

$optional$ marks an entry in an array that the server does not have to return. It is either a boolean, or a filter that says when it is optional:

  • "$optional$" : true: always optional. Note that this must be a boolean - "true" as a string is read as a mode name, and does nothing
  • "$optional$" : "{mode}": optional unless the runner is in that mode
  • "$optional$" : "!{mode}": optional only when the runner is not in that mode. e.g. "!tx.fhir.org" means "every server except tx.fhir.org may leave this out"
  • "$optional$" : "version:4": optional when the server's FHIR version starts with 4
  • "$optional$" : "warning:{message}": always optional, but the runner reports the message when the content is missing

$only$ is the counterpart: where $optional$ only ever relaxes a requirement, $only$ says that the entry belongs to exactly one version or mode. When its filter passes the entry is required, and when it does not, the entry must not be present at all. The filter grammar is the same as $optional$'s. So "$only$" : "version:4" marks content that an R4 server must return and an R5 server must not.

Modes

Some tests, and some parts of expected responses, only apply to servers with particular characteristics, or to a particular server. These are marked with a mode, and only run when that mode is passed to the runner with the -mode parameter. general is always on unless it is turned off with -mode !general. The modes in use are:

  • general: the tests every server is expected to pass. This is the default
  • snomed: servers that support SNOMED CT, loaded with the test subontology described in tx-source/readme.md
  • omop: servers that support OMOP
  • icd-11: servers that support ICD-11
  • tx.fhir.org: tests that are specific to tx.fhir.org - either its own bugs, or operations that are still being trialled there. No other server is expected to pass these
  • flat: servers that return a flat expansion rather than a hierarchical one. This mode selects the response:flat alternative for the tests that have one

A mode name can also appear in $optional$ / $only$ in an expected response, so that a particular server (or every server but one) is held to a different requirement than the rest

  • "$optional$" : "!tx.fhir.org" is used throughout for content that only tx.fhir.org is required to return.

Registry

Name Operation Flags Description
metadata

tests for minimal requirements for metadata statements

metadata $metadata

Check that the minimum expected things are found in the server CapabilityStatement

term-caps $term-caps

Check that the minimum expected things are found in the server TerminologyCapabilities

simple-cases general

basic tests, setting up for the API tests to come

simple-expand-all $expand

Expansion containing all the code system

simple-expand-active $expand

Expansion containing only the active codes in the code system

simple-expand-inactive $expand

Expansion containing only the inactive codes in the code system

simple-expand-enum $expand

Expansion containing an enumerated set of codes in the code system

simple-expand-enum-bad $expand

Expansion containing an enumerated set of codes in the code system, including invalid codes

simple-expand-isa $expand

Expansion containing a filter on the code system using is-a relationship

simple-expand-child-of $expand

Expansion containing a filter on the code system using child-of relationship. This is testing R5/R4 transformation

simple-expand-isa-o2 $expand tx.fhir.org

Expansion containing a filter on the code system using is-a relationship with paging (tx.fhir.org internal test)

simple-expand-isa-c2 $expand tx.fhir.org

Expansion containing a filter on the code system using is-a relationship with paging (tx.fhir.org internal test)

simple-expand-isa-o2c2 $expand tx.fhir.org

Expansion containing a filter on the code system using is-a relationship with paging (tx.fhir.org internal test)

simple-expand-prop $expand

Expansion containing a filter on the code system using a property value

simple-expand-repeating-prop $expand

A concept may carry several values for one property (CodeSystem.concept.property is 0..*). code3 has dup=alpha and dup=beta; filtering on beta - which is not its first value - must still select it

simple-expand-repeating-prop-values $expand

expansion.contains.property is 0..* as well: a concept carrying several values for one property must report all of them, not just one

simple-expand-regex $expand

Expansion containing a filter on the code system using regex on the codes

simple-expand-regex2 $expand

Expansion containing a filter on the code system using regex on the codes using a regex known to cause a problem on at least one server

simple-expand-regexp-prop $expand

Expansion containing a filter on the code system using regex on the property values of prop

simple-expand-regex-none $expand

Expansion containing a filter on the code system using a valid regex on the codes that matches none of them. The expansion is empty - an include whose filter selects nothing must not be treated as an include with no filter, which would select every code in the code system

simple-lookup-1 $lookup

Check that $lookup works (there's not many tests for $lookup because it's not used much by the tools)

simple-lookup-2 $lookup

Check that $lookup works (there's not many tests for $lookup because it's not used much by the tools)

simple-expand-all-count $expand

Expansion containing all the code system, but only a count

simple-expand-contained $expand

Expansion where the compose refers to a contained value set

parameters general

Testing out the various expansion parameters that the IG publisher makes use of

parameters-expand-all-hierarchy $expand

Expand an entire code system, and check that the code system replicates the hierarchy. Note that for all the hierarchical expansions, the flag 'flat' means that the server is not expected to provide a hierarchical expansion

parameters-expand-enum-hierarchy $expand

Expand an enumerated value set - no hierarchy in this case

parameters-expand-isa-hierarchy $expand

Expand an is-a value set, and preserve the hierarchy

parameters-expand-all-active $expand

expand all the active codes - hierarchy is preserved

parameters-expand-active-active $expand

Expand all the active codes, and specify active codes in a parameter

parameters-expand-inactive-active $expand

Expand all the codes, including inactive ones, but specify active codes only in a parameter

parameters-expand-enum-active $expand

Expand an enumerated value set, with active codes only in a parameter

parameters-expand-isa-active $expand

Expand an is-a value set, only the active codes

parameters-expand-all-inactive $expand

expand all the active codes, including inactive codes - hierarchy is preserved

parameters-expand-active-inactive $expand

to be provided

parameters-expand-inactive-inactive $expand

to be provided

parameters-expand-enum-inactive $expand

to be provided

parameters-expand-isa-inactive $expand

to be provided

parameters-expand-all-designations $expand

to be provided

parameters-expand-enum-designations $expand

to be provided

parameters-expand-isa-designations $expand

to be provided

parameters-expand-all-definitions $expand

to be provided

parameters-expand-enum-definitions $expand

to be provided

parameters-expand-isa-definitions $expand

to be provided

parameters-expand-all-definitions2 $expand

to be provided

parameters-expand-enum-definitions2 $expand

to be provided

parameters-expand-enum-definitions3 $expand

specifically to test out http://hl7.org/fhir/StructureDefinition/valueset-concept-definition

parameters-expand-isa-definitions2 $expand

to be provided

parameters-expand-all-property $expand

to be provided

parameters-expand-enum-property $expand

to be provided

parameters-expand-isa-property $expand

to be provided

parameters-expand-supplement-none $expand

Base line for supplement tests

parameters-expand-supplement-good $expand

Make sure the useSupplement parameter works

parameters-expand-supplement-bad $expand

Make sure the useSupplement parameter fails when it's not valid

parameters-validate-supplement-none $validate-code

Base line for supplement tests - validation

parameters-validate-supplement-good $validate-code

Make sure the useSupplement parameter works for validation

parameters-validate-supplement-bad $validate-code

Make sure the useSupplement parameter fails when it's not valid - for validation

parameters-lookup-supplement-none $lookup

Base line for supplement tests - validation

parameters-lookup-supplement-good $lookup

Make sure the useSupplement parameter works for lookup

parameters-lookup-supplement-bad $lookup

Make sure the useSupplement parameter fails when it's not valid - for lookup

language general

Testing returning language by request, getting the right designation


Testing returning language by request, getting the right designation
language-echo-en-none $expand

to be provided

language-echo-de-none $expand

to be provided

language-echo-en-multi-none $expand

to be provided

language-echo-de-multi-none $expand

to be provided

language-echo-en-en-param $expand

to be provided

language-echo-en-en-vs $expand

to be provided

language-echo-en-en-header $expand

to be provided

language-echo-en-en-vslang $expand

to be provided

language-echo-en-en-mixed $expand

to be provided

language-echo-de-de-param $expand

to be provided

language-echo-de-de-vs $expand

to be provided

language-echo-de-de-header $expand

to be provided

language-echo-en-multi-en-param $expand

to be provided

language-echo-en-multi-en-vs $expand

to be provided

language-echo-en-multi-en-header $expand

to be provided

language-echo-de-multi-de-param $expand

to be provided

language-echo-de-multi-de-vs $expand

to be provided

language-echo-de-multi-de-header $expand

to be provided

language-xform-en-multi-de-soft $expand

to be provided

language-xform-en-multi-de-hard $expand

to be provided

language-xform-en-multi-de-default $expand

to be provided

language-xform-de-multi-en-soft $expand

to be provided

language-xform-de-multi-en-hard $expand

to be provided

language-xform-de-multi-en-default $expand

to be provided

language-echo-en-designation $expand

to be provided

language-echo-en-designations $expand

to be provided

language2 general

A series of tests that test display name validation for various permutations of languages


A series of tests that test display name validation for various permutations of languages
validation-right-de-en $validate-code

to be provided

validation-right-de-ende-N $validate-code

to be provided

validation-right-de-ende $validate-code

to be provided

validation-right-de-none $validate-code

to be provided

validation-right-en-en $validate-code

to be provided

validation-right-en-ende-N $validate-code

to be provided

validation-right-en-ende $validate-code

to be provided

validation-right-en-none $validate-code

to be provided

validation-right-none-en $validate-code

to be provided

validation-right-none-ende-N $validate-code

to be provided

validation-right-none-ende $validate-code

to be provided

validation-right-none-none $validate-code

to be provided

validation-wrong-de-en $validate-code

to be provided

validation-wrong-de-en-bad $validate-code

Same request, but with an invalid displayName parameter

validation-wrong-de-ende-N $validate-code

to be provided

validation-wrong-de-ende $validate-code

to be provided

validation-wrong-de-none $validate-code

to be provided

validation-wrong-en-en $validate-code

to be provided

validation-wrong-en-ende-N $validate-code

to be provided

validation-wrong-en-ende $validate-code

to be provided

validation-wrong-en-none $validate-code

to be provided

validation-wrong-none-en $validate-code

to be provided

validation-wrong-none-ende-N $validate-code

to be provided

validation-wrong-none-ende $validate-code

to be provided

validation-wrong-none-none $validate-code

to be provided

extensions general

Testing proper handling of extensions, which depends on the extension

extensions-echo-all $expand

to be provided

extensions-echo-enumerated $expand

to be provided

extensions-echo-bad-supplement $expand

to be provided

validate-code-bad-supplement $validate-code

to be provided

validate-coding-bad-supplement $validate-code

to be provided

validate-coding-bad-supplement-url $cs-validate-code

to be provided

validate-codeableconcept-bad-supplement $validate-code

to be provided

validate-coding-good-supplement $validate-code

to be provided

validate-coding-good2-supplement $validate-code

to be provided

validate-code-inactive-display-lenient $cs-validate-code

Check handling of a deprecated designation (lenient display validation)

validate-code-inactive-display-notlenient $cs-validate-code

Check handling of a deprecated designation (strict display validation)

validate-code-inactive $cs-validate-code

Check handling of a deprecated concept

validation general

Testing various validation parameter combinations

validation-simple-code-good $validate-code

to be provided

validation-simple-code-implied-good $validate-code

to be provided

validation-simple-coding-good $validate-code

to be provided

validation-simple-codeableconcept-good $validate-code

to be provided

validation-simple-code-bad-code $validate-code

to be provided

validation-simple-code-implied-bad-code $validate-code

to be provided

validation-simple-coding-bad-code $validate-code

to be provided

validation-simple-coding-bad-code-inactive $validate-code

to be provided

validation-simple-codeableconcept-bad-code $validate-code

to be provided

validation-simple-code-bad-valueSet $validate-code

to be provided

validation-simple-coding-bad-valueSet $validate-code

to be provided

validation-simple-codeableconcept-bad-valueSet $validate-code

to be provided

validation-simple-code-bad-import $validate-code

to be provided

validation-simple-coding-bad-import $validate-code

to be provided

validation-simple-codeableconcept-bad-import $validate-code

to be provided

validation-simple-code-bad-system $validate-code

to be provided

validation-simple-coding-bad-system $validate-code

to be provided

validation-simple-coding-bad-system2 $validate-code

to be provided

validation-simple-coding-bad-system-local $validate-code

to be provided

validation-simple-coding-no-system $validate-code

to be provided

validation-simple-codeableconcept-bad-system $validate-code

to be provided

validation-simple-code-good-display $validate-code

to be provided

validation-simple-coding-good-display $validate-code

to be provided

validation-simple-codeableconcept-good-display $validate-code

to be provided

validation-simple-code-bad-display-lenient $validate-code

a bad display, with lenient display validation - a warning, and the code is valid

validation-simple-code-bad-display-notlenient $validate-code

a bad display, with strict display validation - an error, and the code is not valid

validation-simple-code-bad-display-ws $validate-code

to be provided

validation-simple-coding-bad-display $validate-code

to be provided

validation-simple-codeableconcept-bad-display $validate-code

to be provided

validation-simple-code-bad-display-warning $validate-code

to be provided

validation-simple-coding-bad-display-warning $validate-code

to be provided

validation-simple-codeableconcept-bad-display-warning $validate-code

to be provided

validation-simple-code-good-language $validate-code

to be provided

validation-simple-coding-good-language $validate-code

to be provided

validation-simple-codeableconcept-good-language $validate-code

to be provided

validation-simple-code-bad-language $validate-code

to be provided

validation-simple-code-good-regex $validate-code

to be provided

validation-simple-code-bad-regex $validate-code

to be provided

validation-simple-code-regex-none $validate-code

A code that exists in the code system is not in a value set whose only include is a valid regex filter that matches no codes

validation-simple-coding-bad-language $validate-code

to be provided

validation-simple-coding-bad-language-header $validate-code

to be provided

validation-simple-coding-bad-language-vs $validate-code

to be provided

validation-simple-coding-bad-language-vslang $validate-code

to be provided

validation-simple-codeableconcept-bad-language $validate-code

to be provided

validation-simple-code-good-language-none $validate-code

Validate a code where the display is a valid designation in the code system's default language (en), and the requested displayLanguage (de) has no displays for the code. The display is valid, with an informational message

validation-simple-code-bad-language-none $validate-code

Validate a code where the display matches no display or designation at all, and the requested displayLanguage (de) has no displays for the code. The display is invalid

validation-simple-coding-good-language-none $validate-code

Validate a Coding where the display is a valid designation in the code system's default language (en), and the requested displayLanguage (de) has no displays for the code. The display is valid, with an informational message

validation-simple-coding-bad-language-none $validate-code

Validate a Coding where the display matches no display or designation at all, and the requested displayLanguage (de) has no displays for the code. The display is invalid

validation-simple-codeableconcept-good-language-none $validate-code

Validate a CodeableConcept where the coding display is a valid designation in the code system's default language (en), and the requested displayLanguage (de) has no displays for the code. The display is valid, with an informational message

validation-simple-codeableconcept-bad-language-none $validate-code

Validate a CodeableConcept where the coding display matches no display or designation at all, and the requested displayLanguage (de) has no displays for the code. The display is invalid

validation-complex-codeableconcept-full $validate-code

to be provided

validation-complex-codeableconcept-vsonly $validate-code

to be provided

validation-cs-code-good $cs-validate-code

to be provided

validation-cs-code-bad-code $cs-validate-code

to be provided

validation-contained-good $validate-code

Validation where the compose refers to a contained value set (valid code)

validation-contained-bad $validate-code

Validation where the compose refers to a contained value set (invalid code)

version general

Testing various version issues. There's two versions of a code system, and three value sets that select different versions

version-simple-code-bad-version1 $validate-code

Code. Invalid CodeSystem version. No ValueSet version pinning. No version parameters

version-simple-coding-bad-version1 $validate-code

Coding. Invalid CodeSystem version. No ValueSet version pinning. No version parameters

version-simple-codeableconcept-bad-version1 $validate-code

CodeableConcept. Invalid CodeSystem version. No ValueSet version pinning. No version parameters

version-simple-codeableconcept-bad-version2 $validate-code

Check that a bad system with a version doesn't generate a warning that the version can't be found

version-simple-code-good-version $validate-code

Code. Valid CodeSystem version. ValueSet pinned to same version. No version parameters

version-simple-coding-good-version $validate-code

Coding. Valid CodeSystem version. ValueSet pinned to same version. No version parameters

version-simple-codeableconcept-good-version $validate-code

CodeableConcept. Valid CodeSystem version. ValueSet pinned to same version. No version parameters

version-version-profile-none $validate-code

to be provided

version-version-profile-default $validate-code

to be provided

validation-version-profile-coding $validate-code

to be provided

coding-vnn-vsnn $validate-code

Coding. No CodeSystem version. No ValueSet version pinning. No version parameters

coding-v10-vs1w $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.x. No version parameters

coding-v10-vs1wb $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.x. No version parameters

coding-v10-vs10 $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.0. No version parameters

coding-v10-vs20 $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.2. No version parameters

coding-v10-vsbb $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 2.4 (bad). No version parameters

coding-v10-vsbb $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 2.4 (bad). No version parameters

coding-v10-vsnn $validate-code

Coding. CodeSystem version 1.0. No ValueSet version pinning. No version parameters

coding-vbb-vs10 $validate-code

Coding. CodeSystem version 2.4 (bad). ValueSet version pinned to 1.0. No version parameters

coding-vbb-vsnn $validate-code

Coding. CodeSystem version 2.4 (bad). No ValueSet version pinning. No version parameters

coding-vnn-vs1w $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 1.x. No version parameters

coding-vnn-vs1wb $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 1.x. No version parameters

coding-vnn-vs10 $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 1.0. No version parameters

coding-vnn-vsbb $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 2.4 (bad). No version parameters

coding-vnn-vsnn-default $validate-code

Coding. No CodeSystem version. No ValueSet version pinning. Version Parameter: default to 1.2.0

coding-v10-vs1w-default $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.x. Version Parameter: default to 1.2.0

coding-v10-vs1wb-default $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.x. Version Parameter: default to 1.2.0

coding-v10-vs10-default $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.0. Version Parameter: default to 1.2.0

coding-v10-vs20-default $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.2. Version Parameter: default to 1.2.0

coding-v10-vsbb-default $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 2.4 (bad). Version Parameter: default to 1.2.0

coding-v10-vsnn-default $validate-code

Coding. CodeSystem version 1.0. No ValueSet version pinning. Version Parameter: default to 1.2.0

coding-vbb-vs10-default $validate-code

Coding. CodeSystem version 2.4 (bad). ValueSet version pinned to 1.0. Version Parameter: default to 1.2.0

coding-vbb-vsnn-default $validate-code

Coding. CodeSystem version 2.4 (bad). No ValueSet version pinning. Version Parameter: default to 1.2.0

coding-vnn-vs1w-default $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 1.x. Version Parameter: default to 1.2.0

coding-vnn-vs1wb-default $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 1.x. Version Parameter: default to 1.2.0

coding-vnn-vs10-default $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 1.0. Version Parameter: default to 1.2.0

coding-vnn-vsbb-default $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 2.4 (bad). Version Parameter: default to 1.2.0

coding-vnn-vsnn-check $validate-code

Coding. No CodeSystem version. No ValueSet version pinning. Version Parameter: check is 1.2.0

coding-v10-vs1w-check $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.x. Version Parameter: check is 1.2.0

coding-v10-vs1wb-check $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.x. Version Parameter: check is 1.2.0

coding-v10-vs10-check $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.0. Version Parameter: check is1.2.0

coding-v10-vs20-check $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.2. Version Parameter: check is 1.2.0

coding-v10-vsbb-check $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 2.4 (bad). Version Parameter: check is 1.2.0

coding-v10-vsnn-check $validate-code

Coding. CodeSystem version 1.0. No ValueSet version pinning. Version Parameter: check is 1.2.0

coding-vbb-vs10-check $validate-code

Coding. CodeSystem version 2.4 (bad). ValueSet version pinned to 1.0. Version Parameter: check is 1.2.0

coding-vbb-vsnn-check $validate-code

Coding. CodeSystem version 2.4 (bad). No ValueSet version pinning. Version Parameter: check is 1.2.0

coding-vnn-vs1w-check $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 1.x. Version Parameter: check is 1.2.0

coding-vnn-vs1wb-check $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 1.x. Version Parameter: check is 1.2.0

coding-vnn-vs10-check $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 1.0. Version Parameter: check is 1.2.0

coding-vnn-vsbb-check $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 2.4 (bad). Version Parameter: check is 1.2.0

coding-vnn-vsnn-force $validate-code

Coding. No CodeSystem version. No ValueSet version pinning. Version Parameter: force to 1.2.0

coding-v10-vs1w-force $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.x. Version Parameter: force to 1.2.0

coding-v10-vs1wb-force $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.x. Version Parameter: force to 1.2.0

coding-v10-vs10-force $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.0. Version Parameter: force to 1.2.0

coding-v10-vs20-force $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.2. Version Parameter: force to 1.2.0

coding-v10-vsbb-force $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 2.4 (bad). Version Parameter: force to 1.2.0

coding-v10-vsnn-force $validate-code

Coding. CodeSystem version 1.0. No ValueSet version pinning. Version Parameter: force to 1.2.0

coding-vbb-vs10-force $validate-code

Coding. CodeSystem version 2.4 (bad). ValueSet version pinned to 1.0. Version Parameter: force to 1.2.0

coding-vbb-vsnn-force $validate-code

Coding. CodeSystem version 2.4 (bad). No ValueSet version pinning. Version Parameter: force to 1.2.0

coding-vnn-vs1w-force $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 1.x. Version Parameter: force to 1.2.0

coding-vnn-vs1wb-force $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 1.x. Version Parameter: force to 1.2.0

coding-vnn-vs10-force $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 1.0. Version Parameter: force to 1.2.0

coding-vnn-vsbb-force $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 2.4 (bad). Version Parameter: force to 1.2.0

codeableconcept-vnn-vsnn $validate-code

Coding. No CodeSystem version. No ValueSet version pinning. No version parameters

codeableconcept-v10-vs1w $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.x. No version parameters

codeableconcept-v10-vs1wb $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.x. No version parameters

codeableconcept-v10-vs10 $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.0. No version parameters

codeableconcept-v10-vs20 $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.2. No version parameters

codeableconcept-v10-vsbb $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 2.4 (bad). No version parameters

codeableconcept-v10-vsbb $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 2.4 (bad). No version parameters

codeableconcept-v10-vsnn $validate-code

Coding. CodeSystem version 1.0. No ValueSet version pinning. No version parameters

codeableconcept-vbb-vs10 $validate-code

Coding. CodeSystem version 2.4 (bad). ValueSet version pinned to 1.0. No version parameters

codeableconcept-vbb-vsnn $validate-code

Coding. CodeSystem version 2.4 (bad). No ValueSet version pinning. No version parameters

codeableconcept-vnn-vs1w $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 1.x. No version parameters

codeableconcept-vnn-vs1wb $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 1.x. No version parameters

codeableconcept-vnn-vs10 $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 1.0. No version parameters

codeableconcept-vnn-vsbb $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 2.4 (bad). No version parameters

codeableconcept-vnn-vsnn-default $validate-code

Coding. No CodeSystem version. No ValueSet version pinning. Version Parameter: default to 1.2.0

codeableconcept-v10-vs1w-default $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.x. Version Parameter: default to 1.2.0

codeableconcept-v10-vs1wb-default $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.x. Version Parameter: default to 1.2.0

codeableconcept-v10-vs10-default $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.0. Version Parameter: default to 1.2.0

codeableconcept-v10-vs20-default $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.2. Version Parameter: default to 1.2.0

codeableconcept-v10-vsbb-default $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 2.4 (bad). Version Parameter: default to 1.2.0

codeableconcept-v10-vsnn-default $validate-code

Coding. CodeSystem version 1.0. No ValueSet version pinning. Version Parameter: default to 1.2.0

codeableconcept-vbb-vs10-default $validate-code

Coding. CodeSystem version 2.4 (bad). ValueSet version pinned to 1.0. Version Parameter: default to 1.2.0

codeableconcept-vbb-vsnn-default $validate-code

Coding. CodeSystem version 2.4 (bad). No ValueSet version pinning. Version Parameter: default to 1.2.0

codeableconcept-vnn-vs1w-default $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 1.x. Version Parameter: default to 1.2.0

codeableconcept-vnn-vs1wb-default $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 1.x. Version Parameter: default to 1.2.0

codeableconcept-vnn-vs10-default $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 1.0. Version Parameter: default to 1.2.0

codeableconcept-vnn-vsbb-default $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 2.4 (bad). Version Parameter: default to 1.2.0

codeableconcept-vnn-vsnn-check $validate-code

Coding. No CodeSystem version. No ValueSet version pinning. Version Parameter: check is 1.2.0

codeableconcept-v10-vs1w-check $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.x. Version Parameter: check is 1.2.0

codeableconcept-v10-vs1wb-check $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.x. Version Parameter: check is 1.2.0

codeableconcept-v10-vs10-check $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.0. Version Parameter: check is1.2.0

codeableconcept-v10-vs20-check $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.2. Version Parameter: check is 1.2.0

codeableconcept-v10-vsbb-check $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 2.4 (bad). Version Parameter: check is 1.2.0

codeableconcept-v10-vsnn-check $validate-code

Coding. CodeSystem version 1.0. No ValueSet version pinning. Version Parameter: check is 1.2.0

codeableconcept-vbb-vs10-check $validate-code

Coding. CodeSystem version 2.4 (bad). ValueSet version pinned to 1.0. Version Parameter: check is 1.2.0

codeableconcept-vbb-vsnn-check $validate-code

Coding. CodeSystem version 2.4 (bad). No ValueSet version pinning. Version Parameter: check is 1.2.0

codeableconcept-vnn-vs1w-check $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 1.x. Version Parameter: check is 1.2.0

codeableconcept-vnn-vs1wb-check $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 1.x. Version Parameter: check is 1.2.0

codeableconcept-vnn-vs10-check $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 1.0. Version Parameter: check is 1.2.0

codeableconcept-vnn-vsbb-check $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 2.4 (bad). Version Parameter: check is 1.2.0

codeableconcept-vnn-vsnn-force $validate-code

Coding. No CodeSystem version. No ValueSet version pinning. Version Parameter: force to 1.2.0

codeableconcept-v10-vs1w-force $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.x. Version Parameter: force to 1.2.0

codeableconcept-v10-vs1wb-force $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.x. Version Parameter: force to 1.2.0

codeableconcept-v10-vs10-force $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.0. Version Parameter: force to 1.2.0

codeableconcept-v10-vs20-force $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 1.2. Version Parameter: force to 1.2.0

codeableconcept-v10-vsbb-force $validate-code

Coding. CodeSystem version 1.0. ValueSet version pinned to 2.4 (bad). Version Parameter: force to 1.2.0

codeableconcept-v10-vsnn-force $validate-code

Coding. CodeSystem version 1.0. No ValueSet version pinning. Version Parameter: force to 1.2.0

codeableconcept-vbb-vs10-force $validate-code

Coding. CodeSystem version 2.4 (bad). ValueSet version pinned to 1.0. Version Parameter: force to 1.2.0

codeableconcept-vbb-vsnn-force $validate-code

Coding. CodeSystem version 2.4 (bad). No ValueSet version pinning. Version Parameter: force to 1.2.0

codeableconcept-vnn-vs1w-force $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 1.x. Version Parameter: force to 1.2.0

codeableconcept-vnn-vs1wb-force $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 1.x. Version Parameter: force to 1.2.0

codeableconcept-vnn-vs10-force $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 1.0. Version Parameter: force to 1.2.0

codeableconcept-vnn-vsbb-force $validate-code

Coding. No CodeSystem version. ValueSet version pinned to 2.4 (bad). Version Parameter: force to 1.2.0

code-vnn-vsnn $validate-code

code. No CodeSystem version. No ValueSet version pinning. No version parameters

code-v10-vs1w $validate-code

code. CodeSystem version 1.0. ValueSet version pinned to 1.x. No version parameters

code-v10-vs1wb $validate-code

code. CodeSystem version 1.0. ValueSet version pinned to 1.x. No version parameters

code-v10-vs10 $validate-code

code. CodeSystem version 1.0. ValueSet version pinned to 1.0. No version parameters

code-v10-vs20 $validate-code

code. CodeSystem version 1.0. ValueSet version pinned to 1.2. No version parameters

code-v10-vsbb $validate-code

code. CodeSystem version 1.0. ValueSet version pinned to 2.4 (bad). No version parameters

code-v10-vsnn $validate-code

code. CodeSystem version 1.0. No ValueSet version pinning. No version parameters

code-vbb-vs10 $validate-code

code. CodeSystem version 2.4 (bad). ValueSet version pinned to 1.0. No version parameters

code-vbb-vsnn $validate-code

code. CodeSystem version 2.4 (bad). No ValueSet version pinning. No version parameters

code-vnn-vs1w $validate-code

code. No CodeSystem version. ValueSet version pinned to 1.x. No version parameters

code-vnn-vs1wb $validate-code

code. No CodeSystem version. ValueSet version pinned to 1.x. No version parameters

code-vnn-vs10 $validate-code

code. No CodeSystem version. ValueSet version pinned to 1.0. No version parameters

code-vnn-vsbb $validate-code

code. No CodeSystem version. ValueSet version pinned to 2.4 (bad). No version parameters

code-vnn-vsnn-default $validate-code

code. No CodeSystem version. No ValueSet version pinning. Version Parameter: default to 1.2.0

code-v10-vs1w-default $validate-code

code. CodeSystem version 1.0. ValueSet version pinned to 1.x. Version Parameter: default to 1.2.0

code-v10-vs1wb-default $validate-code

code. CodeSystem version 1.0. ValueSet version pinned to 1.x. Version Parameter: default to 1.2.0

code-v10-vs10-default $validate-code

code. CodeSystem version 1.0. ValueSet version pinned to 1.0. Version Parameter: default to 1.2.0

code-v10-vs20-default $validate-code

code. CodeSystem version 1.0. ValueSet version pinned to 1.2. Version Parameter: default to 1.2.0

code-v10-vsbb-default $validate-code

code. CodeSystem version 1.0. ValueSet version pinned to 2.4 (bad). Version Parameter: default to 1.2.0

code-v10-vsnn-default $validate-code

code. CodeSystem version 1.0. No ValueSet version pinning. Version Parameter: default to 1.2.0

code-vbb-vs10-default $validate-code

code. CodeSystem version 2.4 (bad). ValueSet version pinned to 1.0. Version Parameter: default to 1.2.0

code-vbb-vsnn-default $validate-code

code. CodeSystem version 2.4 (bad). No ValueSet version pinning. Version Parameter: default to 1.2.0

code-vnn-vs1wb-default $validate-code

code. No CodeSystem version. ValueSet version pinned to 1.x. Version Parameter: default to 1.2.0

code-vnn-vs10-default $validate-code

code. No CodeSystem version. ValueSet version pinned to 1.0. Version Parameter: default to 1.2.0

code-vnn-vsbb-default $validate-code

code. No CodeSystem version. ValueSet version pinned to 2.4 (bad). Version Parameter: default to 1.2.0

code-vnn-vsnn-check $validate-code

code. No CodeSystem version. No ValueSet version pinning. Version Parameter: check is 1.2.0

code-v10-vs1w-check $validate-code

code. CodeSystem version 1.0. ValueSet version pinned to 1.x. Version Parameter: check is 1.2.0

code-v10-vs1wb-check $validate-code

code. CodeSystem version 1.0. ValueSet version pinned to 1.x. Version Parameter: check is 1.2.0

code-v10-vs10-check $validate-code

code. CodeSystem version 1.0. ValueSet version pinned to 1.0. Version Parameter: check is1.2.0

code-v10-vs20-check $validate-code

code. CodeSystem version 1.0. ValueSet version pinned to 1.2. Version Parameter: check is 1.2.0

code-v10-vsbb-check $validate-code

code. CodeSystem version 1.0. ValueSet version pinned to 2.4 (bad). Version Parameter: check is 1.2.0

code-v10-vsnn-check $validate-code

code. CodeSystem version 1.0. No ValueSet version pinning. Version Parameter: check is 1.2.0

code-vbb-vs10-check $validate-code

code. CodeSystem version 2.4 (bad). ValueSet version pinned to 1.0. Version Parameter: check is 1.2.0

code-vbb-vsnn-check $validate-code

code. CodeSystem version 2.4 (bad). No ValueSet version pinning. Version Parameter: check is 1.2.0

code-vnn-vs1w-check $validate-code

code. No CodeSystem version. ValueSet version pinned to 1.x. Version Parameter: check is 1.2.0

code-vnn-vs1wb-check $validate-code

code. No CodeSystem version. ValueSet version pinned to 1.x. Version Parameter: check is 1.2.0

code-vnn-vs10-check $validate-code

code. No CodeSystem version. ValueSet version pinned to 1.0. Version Parameter: check is 1.2.0

code-vnn-vsbb-check $validate-code

code. No CodeSystem version. ValueSet version pinned to 2.4 (bad). Version Parameter: check is 1.2.0

code-vnn-vsnn-force $validate-code

code. No CodeSystem version. No ValueSet version pinning. Version Parameter: force to 1.2.0

code-v10-vs1w-force $validate-code

code. CodeSystem version 1.0. ValueSet version pinned to 1.x. Version Parameter: force to 1.2.0

code-v10-vs1wb-force $validate-code

code. CodeSystem version 1.0. ValueSet version pinned to 1.x. Version Parameter: force to 1.2.0

code-v10-vs10-force $validate-code

code. CodeSystem version 1.0. ValueSet version pinned to 1.0. Version Parameter: force to 1.2.0

code-v10-vs20-force $validate-code

code. CodeSystem version 1.0. ValueSet version pinned to 1.2. Version Parameter: force to 1.2.0

code-v10-vsbb-force $validate-code

code. CodeSystem version 1.0. ValueSet version pinned to 2.4 (bad). Version Parameter: force to 1.2.0

code-v10-vsnn-force $validate-code

code. CodeSystem version 1.0. No ValueSet version pinning. Version Parameter: force to 1.2.0

code-vbb-vs10-force $validate-code

code. CodeSystem version 2.4 (bad). ValueSet version pinned to 1.0. Version Parameter: force to 1.2.0

code-vbb-vsnn-force $validate-code

code. CodeSystem version 2.4 (bad). No ValueSet version pinning. Version Parameter: force to 1.2.0

code-vnn-vs1w-force $validate-code

code. No CodeSystem version. ValueSet version pinned to 1.x. Version Parameter: force to 1.2.0

code-vnn-vs1wb-force $validate-code

code. No CodeSystem version. ValueSet version pinned to 1.x. Version Parameter: force to 1.2.0

code-vnn-vs10-force $validate-code

code. No CodeSystem version. ValueSet version pinned to 1.0. Version Parameter: force to 1.2.0

code-vnn-vsbb-force $validate-code

code. No CodeSystem version. ValueSet version pinned to 2.4 (bad). Version Parameter: force to 1.2.0

code-vnn-vsmix-1 $validate-code

code (1). No CodeSystem version. ValueSet version includes both versions of the code system. No Version Parameter

code-vnn-vsmix-2 $validate-code

code (2). No CodeSystem version. ValueSet version includes both versions of the code system. No Version Parameter

vs-expand-all-v $expand

version specific expand tests

vs-expand-all-v1 $expand

version specific expand tests

vs-expand-all-v2 $expand

version specific expand tests

vs-expand-v-mixed $expand

version specific expand tests

vs-expand-v-n-request $expand

version specific expand tests

vs-expand-v-w $expand

version specific expand tests

vs-expand-v-wb $expand

version specific expand tests

vs-expand-v1 $expand

version specific expand tests

vs-expand-v2 $expand

version specific expand tests

vs-expand-all-v-force $expand

version specific expand tests

vs-expand-all-v1-force $expand

version specific expand tests

vs-expand-all-v2-force $expand

version specific expand tests

vs-expand-v-mixed-force $expand

version specific expand tests

vs-expand-v-n-force-request $expand

version specific expand tests

vs-expand-v-w-force $expand

version specific expand tests

vs-expand-v-wb-force $expand

version specific expand tests

vs-expand-v1-force $expand

version specific expand tests

vs-expand-v2-force $expand

version specific expand tests

vs-expand-all-v-default $expand

version specific expand tests

vs-expand-all-v1-default $expand

version specific expand tests

vs-expand-all-v2-default $expand

version specific expand tests

vs-expand-v-mixed-default $expand

version specific expand tests

vs-expand-v-n-default-request $expand

version specific expand tests

vs-expand-v-w-default $expand

version specific expand tests

vs-expand-v-wb-default $expand

version specific expand tests

vs-expand-v1-default $expand

version specific expand tests

vs-expand-v2-default $expand

version specific expand tests

vs-expand-all-v-check $expand

version specific expand tests

vs-expand-all-v1-check $expand

version specific expand tests

vs-expand-all-v2-check $expand

version specific expand tests

vs-expand-v-mixed-check $expand

version specific expand tests

vs-expand-v-n-check-request $expand

version specific expand tests

vs-expand-v-w-check $expand

version specific expand tests

vs-expand-v-wb-check $expand

version specific expand tests

vs-expand-v1-check $expand

version specific expand tests

vs-expand-v2-check $expand

version specific expand tests

vs-expand-versionless $expand

check expand without any version

overload general

A set of tests that test out handling of value sets that cross versions of the same code system

expand-all $expand

Expanding two versions of the same code system

expand-all-versioned $expand

Expanding two versions of the same code system, versioned

expand-all-merged $expand

Expanding two versions of the same code system, merging versions

expand-enum-good $expand

Expanding two versions of the same code system, codes selected from each version

expand-enum-bad $expand

Expanding two versions of the same code system, codes selected from both versions - but you can't do this

expand-exclude $expand

Excluding one version of the code system from the other (cheap diff analysis)

expand-exclude-versioned $expand

Excluding one version of the code system from the other (cheap diff analysis), versioned

expand-exclude-merged $expand

Excluding one version of the code system from the other (cheap diff analysis), merging versions

validate-all-good $validate-code

Is code in value set - in both versions

validate-all-good2 $validate-code

Is code in value set - in both versions, but display from the second

validate-all-good3 $validate-code

Is code in value set - in one version

validate-all-good4 $validate-code

Is code in value set - in one versions

validate-all-bad2 $validate-code

Is code in value set - in one versions

validate-all-bad2v $validate-code

code from one version, display from the other

expand-all-sysver $expand

Tests whether a system-version parameter forcing v1 overrides the value set's explicit dual-version includes. It should not, since it's just a default

expand-exclude-enum $expand

Expands a value set that includes all of both versions but excludes only code2 from v1 by enumeration, testing version-scoped exclusion of individual codes.

expand-mixed $expand

Expands a value set with one versioned include (v1) and one unversioned include, testing how the server resolves the unversioned reference.

validate-bad-enum-code1 $validate-code

Validates that code1 is rejected by the enum-good value set, since it's not in the enumerated list.

validate-bad-exclude-code1 $validate-code

Validates that code1 is rejected by the exclude value set, since it exists in both versions and the v1 overlap is excluded.

validate-bad-unknown $validate-code

Validates that a completely nonexistent code (code99) fails against the value set.

validate-v1code2-wrongdisplay $validate-code

Validates that code1 with version pinned to 1.0.0 succeeds, confirming version-pinning works for a code present in both versions

validate-bad-v1code4 $validate-code

Validates that code4 with version explicitly pinned to 1.0.0 fails, since code4 only exists in v2.

validate-bad-v2code3 $validate-code

Validates that code3 with version explicitly pinned to 2.0.0 fails, since code3 only exists in v1.

validate-good-code2-v1display $validate-code

Tests the ambiguous case of code2 with display "Display 2" and no version pin, where the display matches v1 but not v2

validate-good-enum-code3 $validate-code

Validates code3 against the enum-good value set, which explicitly enumerates it from v1

validate-good-exclude-code4 $validate-code

Validates that code4 is accepted by the exclude value set, where it's the only code surviving the v1 exclusion.

validate-good-v1code1 $validate-code

Validates that code1 with version pinned to 1.0.0 succeeds, confirming version-pinning works for a code present in both versions.

validate-good-v1code2-display $validate-code

Validates that code2 with version=1.0.0 and display "Display 2" succeeds, since that's the correct display for v1.

validate-good2a $validate-code

Validates that a codeableConcept with both versions in it works fine.

fragment general

Testing handling a code system fragment

fragment-expansion $expand

check that the fragment is reported correctly

validation-fragment-code-good $validate-code

if a code is a in a fragment, then it's all ok

validation-fragment-coding-good $validate-code

if a code is a in a fragment, then it's all ok

validation-fragment-codeableconcept-good $validate-code

if a code is a in a fragment, then it's all ok

validation-fragment-code-bad-code $validate-code

if a code is not in the fragment, we can't call it invalid (code variant)

validation-fragment-coding-bad-code $validate-code

if a code is not in the fragment, we can't call it invalid (coding variant)

validation-fragment-codeableconcept-bad-code $validate-code

if a code is not in the fragment, we can't call it invalid (CodeableConcept variant)

big general

Testing handling a big code system

big-echo-no-limit $expand

to be provided

big-echo-zero-fifty-limit $expand

to be provided

big-echo-fifty-fifty-limit $expand

to be provided

big-circle-bang $expand

to be provided

big-circle-validate $validate-code

to be provided

other general

Misc tests based on issues submitted by users

dual-filter $expand

to be provided

validation-dual-filter-in $validate-code

to be provided

validation-dual-filter-out $validate-code

to be provided

errors general

Testing Various Error Conditions

unknown-system1 $validate-code

Value set & request refers to an unknown system

unknown-system2 $validate-code

Value set & request refers to an unknown system; request is a different unknown system

broken-filter-validate $validate-code

Make sure that filters without value cause an error

broken-filter2-validate $validate-code

Make sure that filters without value cause an error (extension only)

broken-filter-expand $expand

Make sure that filters without value cause an error

combination-ok $validate-code

A value set that contains two identical codes - validates ok

combination-bad $validate-code

A value set that contains two identical codes - error if inferSystem is true

deprecated general

Testing Deprecated+Withdrawn warnings

withdrawn $expand

to be provided

not-withdrawn $expand

to be provided

withdrawn-validate $validate-code

to be provided

not-withdrawn-validate $validate-code

to be provided

experimental $expand

to be provided

experimental-validate $validate-code

to be provided

draft $expand

to be provided

draft-validate $validate-code

to be provided

vs-deprecation $expand

Deprecating a code in a valueset

deprecating-validate $validate-code

Validating a code that has been deprecated in the value set using a deprecated extension

deprecating-validate-2 $validate-code

Validating a code that has been deprecated in the value set

notSelectable general

Testing notSelectable

notSelectable-prop-all $expand

to be provided

notSelectable-noprop-all $expand

to be provided

notSelectable-reprop-all $expand

to be provided

notSelectable-unprop-all $expand

to be provided

notSelectable-prop-true $expand

to be provided

notSelectable-prop-trueUC $expand

to be provided

notSelectable-noprop-true $expand

to be provided

notSelectable-reprop-true $expand

to be provided

notSelectable-unprop-true $expand

to be provided

notSelectable-prop-false $expand

to be provided

notSelectable-noprop-false $expand

to be provided

notSelectable-reprop-false $expand

to be provided

notSelectable-unprop-false $expand

to be provided

notSelectable-prop-in $expand

to be provided

notSelectable-prop-out $expand

to be provided

notSelectable-prop-true-true $validate-code

to be provided

notSelectable-prop-trueUC-true $validate-code

to be provided

notSelectable-prop-in-true $validate-code

to be provided

notSelectable-prop-out-true $validate-code

to be provided

notSelectable-noprop-true-true $validate-code

to be provided

notSelectable-reprop-true-true $validate-code

to be provided

notSelectable-unprop-true-true $validate-code

to be provided

notSelectable-prop-true-false $validate-code

to be provided

notSelectable-prop-in-false $validate-code

to be provided

notSelectable-prop-in-unknown $validate-code

to be provided

notSelectable-prop-out-unknown $validate-code

to be provided

notSelectable-prop-out-false $validate-code

to be provided

notSelectable-noprop-true-false $validate-code

to be provided

notSelectable-reprop-true-false $validate-code

to be provided

notSelectable-unprop-true-false $validate-code

to be provided

notSelectable-prop-false-true $validate-code

to be provided

notSelectable-noprop-false-true $validate-code

to be provided

notSelectable-reprop-false-true $validate-code

to be provided

notSelectable-unprop-false-true $validate-code

to be provided

notSelectable-prop-false-false $validate-code

to be provided

notSelectable-noprop-false-false $validate-code

to be provided

notSelectable-reprop-false-false $validate-code

to be provided

notSelectable-unprop-false-false $validate-code

to be provided

notSelectable-noprop-true-unknown $validate-code

to be provided

notSelectable-reprop-true-unknown $validate-code

to be provided

notSelectable-unprop-true-unknown $validate-code

to be provided

notSelectable-prop-true-unknown $validate-code

to be provided

notSelectable-prop-false-unknown $validate-code

to be provided

notSelectable-noprop-false-unknown $validate-code

to be provided

notSelectable-reprop-false-unknown $validate-code

to be provided

notSelectable-unprop-false-unknown $validate-code

to be provided

notSelectable-prop-true-true-param-true $validate-code

to be provided

notSelectable-prop-true-true-param-false $validate-code

to be provided

notSelectable-prop-false-false-param-true $validate-code

to be provided

notSelectable-prop-false-false-param-false $validate-code

to be provided

inactive general

Testing Inactive codes

inactive-expand $expand

to be provided

inactive-inactive-expand $expand

to be provided

inactive-active-expand $expand

to be provided

inactive-1-validate $validate-code

to be provided

inactive-2-validate $validate-code

to be provided

inactive-3-validate $validate-code

to be provided

inactive-1a-validate $validate-code

to be provided

inactive-2a-validate $validate-code

to be provided

inactive-3a-validate $validate-code

to be provided

inactive-1b-validate $validate-code

to be provided

inactive-2b-validate $validate-code

to be provided

inactive-3b-validate $validate-code

to be provided

case general

Test Case Sensitivity handling

case-insensitive-code1-1 $validate-code

to be provided

case-insensitive-code1-2 $validate-code

to be provided

case-insensitive-code1-3 $validate-code

to be provided

case-sensitive-code1-1 $validate-code

to be provided

case-sensitive-code1-2 $validate-code

to be provided

case-sensitive-code1-3 $validate-code

to be provided

translate general

Tests for ConceptMap.$translate

translate-1 $translate

A very simple translation, using sourceCode + sourceSystem

translate-1-coding $translate

The same translation, but naming the source concept with sourceCoding

translate-1-codeableconcept $translate

The same translation, but naming the source concept with sourceCodeableConcept

translate-1-r4-code $translate

The same translation, using the R4 input names: code + system, and targetsystem

translate-1-r4-coding $translate

The same translation, using the R4 input names: coding, and targetsystem

translate-1-r4-codeableconcept $translate

The same translation, using the R4 input names: codeableConcept, and targetsystem

translate-2 $translate

Testing different relationship types

translate-2b $translate

Testing different relationship types

translate-3 $translate

Testing different relationship types

translate-4 $translate

Testing nomap functionality. In R4 the ConceptMap states this with a codeless 'unmatched' target; either way the response reports noMap and no concept

translate2 general

Tests for ConceptMap.$translate

translate-5 $translate

Testing unmapped functionality

translate-5a $translate

Testing unmapped functionality which specifying a particular map

translate-5b $translate

Testing unmapped functionality which specifying a particular map

translate-6a $translate

Testing other map - default concept map

translate-reverse-r5+ $translate

Same translation, but in reverse

translate-reverse-r5+-a $translate

reverse is not allowed in R5

translate-reverse-r4 $translate

Same translation, but in reverse, using the reverse parameter

translate-reverse-r4-a $translate

Same translation, using the reverse parameter (e.g. double reversed)

translate-reverse-r4-b $translate

Same translation, but in reverse, not using the reverse parameter

tho general

Misc assorted test cases from tho

act-class $expand

act class - don't remember what bug this was testing for but now it tests for proper handling of retired and deprecated codes

act-class-activeonly $expand

tests for proper handling of retired and deprecated codes (part 2)

act-exclusion $expand

tests for proper handling of excluded codes

exclude general

Tests for proper functioning of exclude

exclude-1 $expand

Test a simple exclude

exclude-2 $expand

Test a simple exclude combined with a filter

exclude-zero $expand

include and exclude the same code

exclude-all $expand

include and exclude all codes

exclude-combo $expand

exclude by value set

include-combo $expand

include limit by value set

exclude-gender $expand

See https://github.com/HealthIntersections/FHIRsmith/issues/156

exclude-gender2 $expand

See https://github.com/HealthIntersections/FHIRsmith/issues/156

search general

Tests for proper functioning of text search. Note what we're not interested in the implementation of the text search itself, so we only test very obvious results. We're just interested in testing support for the parameter

search-all-yes $expand

Test a simple search

search-all-no $expand

Test a simple search that returns no results

search-filter-yes $expand

Test a simple search

search-filter-no $expand

Test a simple search that returns no results

search-enum-yes $expand

Test a simple search

search-enum-no $expand

Test a simple search that returns no results

default-valueset-version general

Test the default-valueset-version parameter

direct-expand-one $expand

Test the actual value set directly - v1

direct-expand-two $expand

Test the actual value set directly - v2

indirect-expand-one $expand

Test the actual value set indirectly - v1

indirect-expand-two $expand

Test the actual value set indirectly - v2

indirect-expand-zero $expand

Test the actual value set indirectly - versionless

indirect-expand-zero-pinned $expand

Test the actual value set indirectly - versionless, and specify a version

indirect-expand-zero-pinned-wrong $expand

Test the actual value set indirectly - versionless, and specify a version that doesn't exist

indirect-validation-one $validate-code

Test the value set indirectly

indirect-validation-two $validate-code

Test the value set indirectly

indirect-validation-zero $validate-code

Test the value set indirectly

indirect-validation-zero-pinned $validate-code

Test the value set indirectly

indirect-validation-zero-pinned-wrong $validate-code

Test the value set indirectly

tx.fhir.org tx.fhir.org

These are tx.fhir.org specific tests. There's no expectation that other servers will pass these tests, and they are not executed by default. (other servers can, but they depend on other set up not controlled by the tests

snomed-validation-1 $cs-validate-code

to be provided

loinc-lookup-code $lookup

to be provided

loinc-lookup-part $lookup

to be provided

loinc-lookup-list $lookup

to be provided

loinc-lookup-answer $lookup

to be provided

loinc-validate-code $cs-validate-code

to be provided

loinc-validate-code-uz $cs-validate-code

to be provided

loinc-validate-discouraged-code $cs-validate-code

to be provided

loinc-validate-code-supp1 $cs-validate-code

LOINC supplement test - code in the supplement, but english

loinc-validate-code-supp2 $cs-validate-code

LOINC supplement test - code in the supplement, but german from the supplement

loinc-validate-part $cs-validate-code

to be provided

loinc-validate-list $cs-validate-code

to be provided

loinc-validate-answer $cs-validate-code

to be provided

loinc-validate-invalid $cs-validate-code

to be provided

loinc-expand-enum $expand

to be provided

loinc-expand-all $expand

to be provided

hgvs-expand-all $expand

Attempt to expand the whole HGVS code system: it has a grammar and cannot be iterated, so a not-supported OperationOutcome is expected

loinc-expand-all-limited $expand

to be provided

loinc-expand-enum-bad $expand

to be provided

loinc-expand-status $expand

to be provided

loinc-expand-parent $expand

to be provided

loinc-expand-class-regex $expand

to be provided

loinc-expand-prop-component $expand

to be provided

loinc-expand-prop-method $expand

to be provided

loinc-expand-prop-component-str $expand

to be provided

loinc-expand-prop-order-obs $expand

to be provided

loinc-expand-concept-is-a $expand

to be provided

loinc-expand-copyright $expand

to be provided

loinc-expand-scale-type $expand

to be provided

loinc-validate-enum-good $validate-code

to be provided

loinc-validate-enum-bad $validate-code

to be provided

loinc-validate-filter-prop-component-good $validate-code

to be provided

loinc-validate-filter-prop-component-bad $validate-code

to be provided

loinc-validate-filter-status-good $validate-code

to be provided

loinc-validate-filter-status-bad $validate-code

to be provided

loinc-validate-filter-class-regex-good $validate-code

to be provided

loinc-validate-filter-class-regex-bad $validate-code

to be provided

loinc-validate-filter-scale-type-good $validate-code

to be provided

loinc-validate-filter-scale-type-bad $validate-code

to be provided

loinc-expand-list-request-parameters $expand

to be provided

loinc-validate-list-good $validate-code

to be provided

loinc-validate-list-bad $validate-code

to be provided

loinc-expand-filter-list-request-parameters $expand

to be provided

loinc-validate-filter-list-type-good $validate-code

to be provided

loinc-validate-filter-list-bad $validate-code

to be provided

loinc-expand-filter-dockind-request-parameters $expand

to be provided

loinc-validate-filter-dockind-type-good $validate-code

to be provided

loinc-validate-filter-dockind-bad $validate-code

to be provided

loinc-validate-filter-classtype-good $validate-code

test classtype filter (numerical)

loinc-validate-filter-classtype-bad $validate-code

test classtype filter (numerical)

loinc-expand-filter-answers-for1 $expand

Test answers-for filters with LL code

loinc-expand-filter-answers-for2 $expand

Test answers-for filters with normal code

loinc-expand-filter-answer-list $expand

Test answer-list filters with normal code

snomed-expand-active $expand

Test the inactive filter

snomed-expand-inactive $expand

Test the inactive filter

snomed-expand-inactive2 $expand

Test the inactive filter

snomed-expand-moduleid-1 $expand

Test ModuleId filter

snomed-expand-moduleid-2 $expand

Test ModuleId filter

snomed-expand-moduleid-3 $expand

Test ModuleId filter

snomed-expand-moduleid-4 $expand

Test ModuleId filter

snomed-expand-property-1 $expand

Test Property filter

snomed-expand-property-2 $expand

Test Property filter

snomed-validate-active-bad $validate-code

Test inactive filter

snomed-validate-active-good $validate-code

Test inactive filter

snomed-validate-inactive-bad $validate-code

Test inactive filter

snomed-validate-inactive-good $validate-code

Test inactive filter

snomed-validate-moduleid-bad $validate-code

Test moduleid filter

snomed-validate-moduleid-good $validate-code

Test moduleid filter

snomed-validate-property-bad $validate-code

Test Property filter

snomed-validate-property-good $validate-code

Test Property filter

snomed-translate $translate

Implicit Snomed Concept Map

snomed snomed

This snomed tests are based on the subset distributed with the tx-ecosystem IG

snomed-inactive-display-lenient $cs-validate-code

check that inactive displays are validated properly

snomed-inactive-display-notlenient $cs-validate-code

check that inactive displays are validated properly

snomed-isa-in $validate-code

check that codes are validated properly (is-a heirachy) - in the value set

snomed-isa-out $validate-code

check that codes are validated properly (is-a heirachy) - not in the value set

snomed-expand-inactive $expand

check that inactive concepts and displays are expanded properly

snomed-expand-isa $expand

check that a set of concepts and displays are expanded properly (is-a)

snomed-expand-count-all $expand

Smoke test: total concept count for the loaded SNOMED edition subset must be 2206.

snomed-expand-too-big $expand

return too many codes at once - fails

lookup $lookup

Tests the $lookup operation for a simple SCT concept

lookup-pc $lookup

Tests the $lookup operation for a complex SCT expression

validate-code-pc-good $cs-validate-code

Tests the $validate-code operation for a complex SCT expression

validate-code-pc-bad1 $cs-validate-code

Tests the $validate-code operation for a complex SCT expression with a wrong qualifier code

validate-code-pc-bad2 $cs-validate-code

Tests the $validate-code operation for a complex SCT expression with a wrong qualifier code - the codes are valid but they are reversed

validate-code-pc-nested-good $cs-validate-code

Tests the $validate-code operation for an expression whose attribute value is itself refined - right hand as the procedure site

validate-code-pc-mrcm-lateralizable $cs-validate-code

The concept model does not allow laterality on a body structure that is not in the lateralizable body structure reference set

validate-code-pc-mrcm-domain $cs-validate-code

The concept model does not allow an attribute outside its domain - finding site on a body structure

validate-code-pc-mrcm-range $cs-validate-code

The concept model does not allow a value outside the attribute's range - a body structure as the value of laterality

validate-code-pc-mrcm-cardinality $cs-validate-code

The concept model does not allow an attribute more times than its cardinality - laterality is 0..1

validate-code-pc-mrcm-grouped $cs-validate-code

The concept model does not allow an ungrouped attribute inside a relationship group - laterality is ungrouped

validate-code-pc-concrete-good $cs-validate-code

Tests the $validate-code operation for an expression with a concrete value

validate-code-pc-mrcm-concrete-range $cs-validate-code

The concept model does not allow a concrete value outside the attribute's range - the value must be greater than zero

validate-code-pc-mrcm-concrete-int $cs-validate-code

The concept model does not allow a decimal where the attribute's range is an integer

validate-code-pc-mrcm-concrete-wanted $cs-validate-code

The concept model does not allow a concept where the attribute's range is a concrete value

validate-code-pc-mrcm-concept-wanted $cs-validate-code

The concept model does not allow a concrete value where the attribute's range is a concept

validate-code-pc-none $validate-code

Checks that a valid expression is not allowed when expressions are not allowed

validate-code-pc-list $validate-code

Checks that a valid expression is allowed when expressions are listed

validate-code-pc-list-bad $validate-code

Checks that a valid expression is not allowed just because it's primacy code is listed

validate-code-pc-filter $validate-code

Checks that a valid expression is allowed when expressions are allowed

expand-pc-none $expand

Expands no expresssions allowed - check settings

expand-pc-list $expand

Checks that a valid expression is not allowed just because it's primacy code is listed

expand-pc-filter $expand

Checks that a valid expression is allowed when expressions are allowed

validate-code-implied-1 $validate-code

Check that implied value sets work (isa)

validate-code-implied-1b $validate-code

Check that implied value sets work (bad isa)

validate-code-implied-2 $validate-code

Check that implied value sets work (refset)

validate-code-implied-2b $validate-code

Check that implied value sets work (refset)

sct-ecl snomed

SNOMED CT ECL tests (expand + validate-code), split out of the snomed suite for manageability. Files live in sct/ecl/.

snomed-validate-ecl-descendents-code-in $validate-code

validate-code against ECL "descendents": a code that IS in the set

snomed-validate-ecl-descendents-code-out $validate-code

validate-code against ECL "descendents": a code that is NOT in the set

snomed-validate-ecl-descendents-expr-in $validate-code

validate-code against ECL "descendents": a post-coordinated expression that IS in the set

snomed-validate-ecl-descendents-expr-out $validate-code

validate-code against ECL "descendents": a post-coordinated expression that is NOT in the set

snomed-validate-ecl-descOrSelf-code-in $validate-code

validate-code against ECL "descOrSelf": a code that IS in the set

snomed-validate-ecl-descOrSelf-code-out $validate-code

validate-code against ECL "descOrSelf": a code that is NOT in the set

snomed-validate-ecl-descOrSelf-expr-in $validate-code

validate-code against ECL "descOrSelf": a post-coordinated expression that IS in the set

snomed-validate-ecl-descOrSelf-expr-out $validate-code

validate-code against ECL "descOrSelf": a post-coordinated expression that is NOT in the set

snomed-validate-ecl-children-code-in $validate-code

validate-code against ECL "children": a code that IS in the set

snomed-validate-ecl-children-code-out $validate-code

validate-code against ECL "children": a code that is NOT in the set

snomed-validate-ecl-children-expr-in $validate-code

validate-code against ECL "children": a post-coordinated expression that IS in the set

snomed-validate-ecl-children-expr-out $validate-code

validate-code against ECL "children": a post-coordinated expression that is NOT in the set

snomed-validate-ecl-childrenOrSelf-code-in $validate-code

validate-code against ECL "childrenOrSelf": a code that IS in the set

snomed-validate-ecl-childrenOrSelf-code-out $validate-code

validate-code against ECL "childrenOrSelf": a code that is NOT in the set

snomed-validate-ecl-childrenOrSelf-expr-in $validate-code

validate-code against ECL "childrenOrSelf": a post-coordinated expression that IS in the set

snomed-validate-ecl-childrenOrSelf-expr-out $validate-code

validate-code against ECL "childrenOrSelf": a post-coordinated expression that is NOT in the set

snomed-validate-ecl-ancestors-code-in $validate-code

validate-code against ECL "ancestors": a code that IS in the set

snomed-validate-ecl-ancestors-code-out $validate-code

validate-code against ECL "ancestors": a code that is NOT in the set

snomed-validate-ecl-ancestors-expr-out $validate-code

validate-code against ECL "ancestors": a post-coordinated expression that is NOT in the set

snomed-validate-ecl-ancOrSelf-code-in $validate-code

validate-code against ECL "ancOrSelf": a code that IS in the set

snomed-validate-ecl-ancOrSelf-code-out $validate-code

validate-code against ECL "ancOrSelf": a code that is NOT in the set

snomed-validate-ecl-ancOrSelf-expr-out $validate-code

validate-code against ECL "ancOrSelf": a post-coordinated expression that is NOT in the set

snomed-validate-ecl-parents-code-in $validate-code

validate-code against ECL "parents": a code that IS in the set

snomed-validate-ecl-parents-code-out $validate-code

validate-code against ECL "parents": a code that is NOT in the set

snomed-validate-ecl-parents-expr-out $validate-code

validate-code against ECL "parents": a post-coordinated expression that is NOT in the set

snomed-validate-ecl-parentsOrSelf-code-in $validate-code

validate-code against ECL "parentsOrSelf": a code that IS in the set

snomed-validate-ecl-parentsOrSelf-code-out $validate-code

validate-code against ECL "parentsOrSelf": a code that is NOT in the set

snomed-validate-ecl-parentsOrSelf-expr-out $validate-code

validate-code against ECL "parentsOrSelf": a post-coordinated expression that is NOT in the set

snomed-validate-ecl-refinement-simple-code-in $validate-code

validate-code against ECL "refinement-simple": a code that IS in the set

snomed-validate-ecl-refinement-simple-code-out $validate-code

validate-code against ECL "refinement-simple": a code that is NOT in the set

snomed-validate-ecl-refinement-simple-expr-in $validate-code

validate-code against ECL "refinement-simple": a post-coordinated expression that IS in the set

snomed-validate-ecl-refinement-simple-expr-out $validate-code

validate-code against ECL "refinement-simple": a post-coordinated expression that is NOT in the set

snomed-validate-ecl-refinement-group-code-out $validate-code

validate-code against ECL "refinement-group": a code that is NOT in the set

snomed-validate-ecl-refinement-group-expr-in $validate-code

validate-code against ECL "refinement-group": a post-coordinated expression that IS in the set

snomed-validate-ecl-refinement-group-expr-out $validate-code

validate-code against ECL "refinement-group": a post-coordinated expression that is NOT in the set

snomed-validate-ecl-refinement-morphology-code-in $validate-code

validate-code against ECL "refinement-morphology": a code that IS in the set

snomed-validate-ecl-refinement-morphology-code-out $validate-code

validate-code against ECL "refinement-morphology": a code that is NOT in the set

snomed-validate-ecl-refinement-morphology-expr-in $validate-code

validate-code against ECL "refinement-morphology": a post-coordinated expression that IS in the set

snomed-validate-ecl-refinement-morphology-expr-out $validate-code

validate-code against ECL "refinement-morphology": a post-coordinated expression that is NOT in the set

snomed-validate-ecl-refinement-wildcard-code-in $validate-code

validate-code against ECL "refinement-wildcard": a code that IS in the set

snomed-validate-ecl-refinement-wildcard-code-out $validate-code

validate-code against ECL "refinement-wildcard": a code that is NOT in the set

snomed-validate-ecl-refinement-wildcard-expr-in $validate-code

validate-code against ECL "refinement-wildcard": a post-coordinated expression that IS in the set

snomed-validate-ecl-refinement-wildcard-expr-out $validate-code

validate-code against ECL "refinement-wildcard": a post-coordinated expression that is NOT in the set

snomed-validate-ecl-refinement-cardinality-code-in $validate-code

validate-code against ECL "refinement-cardinality": a code that IS in the set

snomed-validate-ecl-refinement-cardinality-code-out $validate-code

validate-code against ECL "refinement-cardinality": a code that is NOT in the set

snomed-validate-ecl-refinement-cardinality-expr-in $validate-code

validate-code against ECL "refinement-cardinality": a post-coordinated expression that IS in the set

snomed-validate-ecl-refinement-cardinality-expr-out $validate-code

validate-code against ECL "refinement-cardinality": a post-coordinated expression that is NOT in the set

snomed-validate-ecl-refinement-cardinality-grouped-code-in $validate-code

validate-code against ECL "refinement-cardinality-grouped": a code that IS in the set

snomed-validate-ecl-refinement-cardinality-grouped-code-out $validate-code

validate-code against ECL "refinement-cardinality-grouped": a code that is NOT in the set

snomed-validate-ecl-refinement-cardinality-grouped-expr-in $validate-code

validate-code against ECL "refinement-cardinality-grouped": a post-coordinated expression that IS in the set

snomed-validate-ecl-refinement-cardinality-grouped-expr-out $validate-code

validate-code against ECL "refinement-cardinality-grouped": a post-coordinated expression that is NOT in the set

snomed-validate-ecl-refinement-cardinality-rolegroup-code-in $validate-code

validate-code against ECL "refinement-cardinality-rolegroup": a code that IS in the set

snomed-validate-ecl-refinement-cardinality-rolegroup-code-out $validate-code

validate-code against ECL "refinement-cardinality-rolegroup": a code that is NOT in the set

snomed-validate-ecl-refinement-cardinality-rolegroup-expr-in $validate-code

validate-code against ECL "refinement-cardinality-rolegroup": a post-coordinated expression that IS in the set

snomed-validate-ecl-refinement-cardinality-rolegroup-expr-out $validate-code

validate-code against ECL "refinement-cardinality-rolegroup": a post-coordinated expression that is NOT in the set

snomed-validate-ecl-memberOf-refset-code-in $validate-code

validate-code against ECL "memberOf-refset": a code that IS in the set

snomed-validate-ecl-memberOf-refset-code-out $validate-code

validate-code against ECL "memberOf-refset": a code that is NOT in the set

snomed-validate-ecl-memberOf-refset-expr-out $validate-code

validate-code against ECL "memberOf-refset": a post-coordinated expression that is NOT in the set

snomed-validate-ecl-minus-code-in $validate-code

validate-code against ECL "minus": a code that IS in the set

snomed-validate-ecl-minus-code-out $validate-code

validate-code against ECL "minus": a code that is NOT in the set

snomed-validate-ecl-minus-expr-in $validate-code

validate-code against ECL "minus": a post-coordinated expression that IS in the set

snomed-validate-ecl-minus-expr-out $validate-code

validate-code against ECL "minus": a post-coordinated expression that is NOT in the set

snomed-validate-ecl-wildcard-code-in $validate-code

validate-code against ECL "wildcard": a code that IS in the set

snomed-validate-ecl-wildcard-expr-in $validate-code

validate-code against ECL "wildcard": a post-coordinated expression that IS in the set

snomed-validate-ecl-wildcard-minus-code-in $validate-code

validate-code against ECL "wildcard-minus": a code that IS in the set

snomed-validate-ecl-wildcard-minus-code-out $validate-code

validate-code against ECL "wildcard-minus": a code that is NOT in the set

snomed-validate-ecl-wildcard-minus-expr-in $validate-code

validate-code against ECL "wildcard-minus": a post-coordinated expression that IS in the set

snomed-validate-ecl-wildcard-minus-expr-out $validate-code

validate-code against ECL "wildcard-minus": a post-coordinated expression that is NOT in the set

snomed-expand-ecl-descOrSelf $expand

check that a set of concepts and displays are expanded properly (ecl descendent-or-self)

snomed-expand-ecl-descendents $expand

check that a set of concepts and displays are expanded properly (ecl descendent)

snomed-expand-ecl-ancestors $expand

check that a set of concepts and displays are expanded properly (ecl ancestor)

snomed-expand-ecl-ancOrSelf $expand

check that a set of concepts and displays are expanded properly (ecl ancestor-or-self)

snomed-expand-ecl-childrenOrSelf $expand

check that a set of concepts and displays are expanded properly (ecl descendent-or-self)

snomed-expand-ecl-children $expand

check that a set of concepts and displays are expanded properly (ecl descendent)

snomed-expand-ecl-parents $expand

check that a set of concepts and displays are expanded properly (ecl ancestor)

snomed-expand-ecl-parentsOrSelf $expand

check that a set of concepts and displays are expanded properly (ecl ancestor-or-self)

snomed-expand-ecl-wildcard $expand

All active concepts in the subset (wildcard).

snomed-expand-ecl-memberOf-refset $expand

Members of the REPLACED-BY association reference set.

snomed-expand-ecl-memberOf-nonRefset $expand

Negative case: ^ applied to a concept that is not a reference set should error.

snomed-expand-ecl-or $expand

Union of Cellulitis subtree and Liver-structure subtree.

snomed-expand-ecl-and $expand

Intersection: Cellulitis subtree AND Disease subtree; should equal << 128045006.

snomed-expand-ecl-minus $expand

Exclusion: Disease subtree minus Cellulitis subtree.

snomed-expand-ecl-minus-empty $expand

Degenerate exclusion: set minus itself, expects empty.

snomed-expand-ecl-wildcard-minus $expand

All active concepts minus the Liver-structure subtree.

snomed-expand-ecl-grouped-or $expand

Grouped OR: (<< A OR << B) AND << C — OR subexpression parenthesised; union of cellulitis and liver-structure subtrees intersected with disease; yields 1 result.

snomed-expand-ecl-grouped-and $expand

Grouped AND: << A OR (<< B AND << C) — AND subexpression parenthesised; liver-structure unioned with intersection of cellulitis and disease; yields 311 results.

snomed-expand-ecl-ambiguous-precedence $expand

Invalid ECL: mixing AND/OR without explicit grouping is forbidden by ECL spec (section 6.4) — must return an error.

snomed-expand-ecl-term-match $expand

Concept reference with matching term; should be accepted.

snomed-expand-ecl-term-mismatch $expand

Concept reference with incorrect term; should error with a term-mismatch message.

snomed-expand-ecl-term-with-operator $expand

Hierarchy operator plus concept plus term; should expand to same set as << 10200004.

snomed-expand-ecl-unknown-concept $expand

Unknown (non-existent) concept ID; expects an unknown-concept error.

snomed-expand-ecl-invalid-sctid $expand

Non-numeric focus concept; expects a lexer/parser error.

snomed-expand-ecl-missing-focus $expand

Operator with nothing after it; expects a parser error.

snomed-expand-ecl-trailing-tokens $expand

Extra tokens after a complete expression; expects a parser error.

snomed-expand-ecl-nested-parens $expand

Deeply nested parentheses; should expand to the same set as << 10200004.

snomed-expand-ecl-refinement-simple $expand

Refinement: Disease with finding-site in the Liver subtree. Currently unsupported; expect a clear error.

snomed-expand-ecl-refinement-morphology $expand

Refinement: Disease with associated-morphology = Closed fracture. Currently unsupported.

snomed-expand-ecl-refinement-wildcard $expand

Refinement with wildcard value. Currently unsupported.

snomed-expand-ecl-refinement-group $expand

Refinement with an attribute group. Currently unsupported.

snomed-expand-ecl-refinement-cardinality $expand

Ungrouped [1..1] cardinality: exactly 1 Finding site in liver across all role groups — excludes concepts with 2+ groups each containing a liver Finding site (573).

snomed-expand-ecl-refinement-cardinality-grouped $expand

Grouped [1..1] cardinality: exactly 1 role group containing exactly 1 Finding site in liver — same result as ungrouped for typical SNOMED models (573).

snomed-expand-ecl-refinement-cardinality-rolegroup $expand

Role group cardinality without outer count: at least one role group containing exactly 1 Finding site in liver — more permissive, includes concepts with multiple groups each having 1 liver Finding site (661).

snomed-expand-ecl-dotted $expand

Dotted expression: finding-site values across Disease descendants. Currently unsupported.

batch general

Test Batch Validation

batch-validate $batch-validate

Simple use of the batch validate operation

batch-validate-bad $batch-validate

Simple use of the batch validate operation

omop omop

Tests for OMOP implementations. Note that some servers only do OMOP (and some don't). The tests are based on a stable subset of OMOP maintained by Davera Gabriel

omop-basic-validation-code-good $cs-validate-code

Just validate a randomly chosen real OMOP code provided as system and code

omop-basic-validation-coding-good $cs-validate-code

Just validate a randomly chosen real OMOP code provided as coding

omop-basic-validation-codeableconcept-good $cs-validate-code

Just validate a randomly chosen real OMOP code provided as codeableConcept

omop-basic-validation-code-bad $cs-validate-code

Just validate a randomly chosen fake OMOP code that is not valid provided as system and code

omop-basic-validation-coding-bad $cs-validate-code

Just validate a randomly chosen fake OMOP code that is not valid provided as coding

omop-basic-validation-codeableconcept-bad $cs-validate-code

Just validate a randomly chosen fake OMOP code that is not valid provided as CodeableConcept

omop-basic-validation-code-bad-display $cs-validate-code

Just validate a randomly chosen real OMOP code with a wrong display provided as system, code and display

omop-basic-validation-coding-bad-display $cs-validate-code

Just validate a randomly chosen real OMOP code with a wrong display provided as coding

omop-basic-validation-codeableconcept-bad-display $cs-validate-code

Just validate a randomly chosen real OMOP code with a wrong display provided as CodeableConcept

omop-basic-validation-code-bad-version $cs-validate-code

Just validate a randomly chosen real OMOP code with a wrong display provided as system, code and display

omop-basic-validation-coding-bad-version $cs-validate-code

Just validate a randomly chosen real OMOP code with a wrong display provided as coding

omop-basic-validation-codeableconcept-bad-version $cs-validate-code

Just validate a randomly chosen real OMOP code with a wrong display provided as CodeableConcept

omop-basic-validation-code-good-vs $validate-code

Just validate a randomly chosen real OMOP code provided as system and code and require that it's in a particular domain by value set (it is!)

omop-basic-validation-coding-good-vs $validate-code

Just validate a randomly chosen real OMOP code provided as a coding and require that it's in a particular domain by value set (it is!)

omop-basic-validation-codeableconcept-good-vs $validate-code

Just validate a randomly chosen real OMOP code provided as a CodeableConcept and require that it's in a particular domain by value set (it is!)

omop-basic-validation-code-bad-vs $validate-code

Just validate a randomly chosen real OMOP code provided as system and code and require that it's in a particular domain by value set (it is not!)

omop-basic-validation-coding-bad-vs $validate-code

Just validate a randomly chosen real OMOP code provided as a coding and require that it's in a particular domain by value set (it is not!)

omop-basic-validation-codeableconcept-bad-vs $validate-code

Just validate a randomly chosen real OMOP code provided as a CodeableConcept and require that it's in a particular domain by value set (it is not!)

omop-lookup-code $lookup

Lookup a standard OMOP code

omop-lookup-code2 $lookup

lookup a non-standard OMOP Code

omop-lookup-code3 $lookup

lookup a non-standard OMOP Code

omop-basic-validation-code-good-vs-url $validate-code

Same as omop-basic-validation-code-good-vs but passing a value set in

omop-basic-validation-code-bad-vs-url $validate-code

Same as omop-basic-validation-code-bad-vs but passing a value set in

omop-expand-explicit $expand

Expand an OMOP value set

translate-loinc-implicit $translate

translating sucessfully from OMOP to LOINC, leaving it to the server to choose a concept map if it can find one. Note that not all servers are willing to let the client trust it like this, so this test is optional

translate-loinc-implicit-bad $translate

translating unsucessfully from OMOP to LOINC, leaving it to the server to choose a concept map if it can find one, Also this test - and the last one - assume that the server has no other source of OMOP -> LOINC mappings available

UCUM tx.fhir.org

UCUM Test Cases

lookup $lookup

Tests the $lookup operation

lookup-with-annotation $lookup

Tests the $lookup operation with annotation

expand-ucum-all-4 $expand

Tests the $expand operation for all codes (this is a special case). The special value set changed between R4 and R5

expand-ucum-all-5 $expand

Tests the $expand operation for all codes (this is a special case). The special value set changed between R4 and R5

expand-ucum-canonical $expand

Tests the $expand operation for all codes (this is a special case)

validate-ucum-canonical-good $validate-code

Tests the $validate-code operation for a valid UCUM code

validate-ucum-canonical-bad $validate-code

Tests the $validate-code operation for an valid UCUM code not in the canonicl value set

validate-all-canonical-good $validate-code

Tests the $validate-code operation for a valid UCUM code

validate-ucum-all-bad $validate-code

Tests the $validate-code operation for an invalid UCUM code

compare tx.fhir.org

Tests for candidate new 'related' operation

related-all $compare

Checks that an all value is the same as itself

related-active $compare

Checks that an all value is the same as itself, in the presence of the active flag = true

related-inactive $compare

Checks that an all value is the same as itself, in the presence of the active flag = false

related-enumerated $compare

Checks that an all value is the same as itself, in the presence of an enumerated list

related-is-a $compare

Checks that an all value is the same as itself, in the presence of an is-a filter

related-regex-1 $compare

Checks that an all value is the same as itself, in the presence of an regex filter

related-regex-2 $compare

Checks that an all value is the same as itself, in the presence of a property regex filter

related-lists $compare

Checks that two enumerated value sets are the same (concept order is different)

related-lists-more $compare

Checks that two enumerated value sets are related such that the other contains this

related-lists-less $compare

Checks that two enumerated value sets are related such that this contains the other

related-lists-over $compare

Checks that two enumerated value sets are overlapping

related-lists-disj $compare

Checks that two enumerated value sets are the disjoint

related-systems $compare

Checks that two valuesets that import the same entire code systems are identical

related-systems $compare

Checks that two valuesets that import the same entire code systems are identical

related-systems-less $compare

Checks that two valuesets that import the same entire code systems are identical

related-systems-more $compare

Checks that two valuesets that import the same entire code systems are identical

related-system-disj $compare

Checks that two valuesets that import the same entire code systems are identical

related-system-over $compare

Checks that two valuesets that import the same entire code systems are identical

related-filters-1 $compare

Checks that two valuesets that haev the same filters in different orders (as filters)

related-filters-2 $compare

Checks that two valuesets that haev the same filters in different orders (as includes)

related-filters-3 $compare

Checks that two valuesets that haev the same filters in different orders (as includes from the same system)

related-mixed-1 $compare

Checks that two valuesets that have the same content with incompatible definitions are considered the same

related-mixed-1-less $compare

Checks that two valuesets that have the same content with incompatible definitions are considered the same

related-mixed-1-more $compare

Checks that two valuesets that have the same content with incompatible definitions are considered the same

related-mixed-1-disj $compare

Checks that two valuesets that have the same content with incompatible definitions are considered the same

related-mixed-1-over $compare

Checks that two valuesets that have the same content with incompatible definitions are considered the same

related-filters-less $compare

Checks that two valuesets that have the same content with incompatible definitions are considered the same

related-filters-more $compare

Checks that two valuesets that have the same content with incompatible definitions are considered the same

bugs tx.fhir.org

A series of tests that deal with discovered bugs in FHIRsmith. These tests are specific to FHIRsmith - internal QA

country-codes $expand
cpt $expand
cpt-0 $expand
cpt-100 $expand
sct-ver-ex $expand
undefined $validate-code
no-system $cs-validate-code
sct-parse $cs-validate-code
sct-parse-pc $cs-validate-code
lang-case $cs-validate-code
lang-case2 $cs-validate-code
provenance $cs-validate-code
country-code $cs-validate-code
sct-isa $validate-code
sct-ver $cs-validate-code
sct-msg-4 $validate-code
sct-msg-5 $validate-code
sct-display-1 $cs-validate-code
sct-display-2 $cs-validate-code
ndc $cs-validate-code
x12-bad $cs-validate-code
3166-a $cs-validate-code

Check user assigned codes are valid

3166-b $cs-validate-code

Check user assigned codes can get display from a supplement

3166-c $cs-validate-code

But base names are still valid

3166-d $cs-validate-code

Check that wrong displays on user assigned codes are just a hint

permutations general

A set of permutations generated by Claude with the goal of increasing test coverage.

bad-cc1-all-request $validate-code
bad-cc1-enumerated-request $validate-code
bad-cc1-exclude-filter-request $validate-code
bad-cc1-exclude-import-request $validate-code
bad-cc1-exclude-list-request $validate-code
bad-cc1-import-request $validate-code
bad-cc1-isa-request $validate-code
bad-cc2-all-request $validate-code
bad-cc2-enumerated-request $validate-code
bad-cc2-exclude-filter-request $validate-code
bad-cc2-exclude-import-request $validate-code
bad-cc2-exclude-list-request $validate-code
bad-cc2-import-request $validate-code
bad-cc2-isa-request $validate-code
bad-coding-all-request $validate-code
bad-coding-enumerated-request $validate-code
bad-coding-exclude-filter-request $validate-code
bad-coding-exclude-import-request $validate-code
bad-coding-exclude-list-request $validate-code
bad-coding-import-request $validate-code
bad-coding-isa-request $validate-code
bad-scd-all-request $validate-code
bad-scd-enumerated-request $validate-code
bad-scd-exclude-filter-request $validate-code
bad-scd-exclude-import-request $validate-code
bad-scd-exclude-list-request $validate-code
bad-scd-import-request $validate-code
bad-scd-isa-request $validate-code
good-cc1-all-request $validate-code
good-cc1-enumerated-request $validate-code
good-cc1-exclude-filter-request $validate-code
good-cc1-exclude-import-request $validate-code
good-cc1-exclude-list-request $validate-code
good-cc1-import-request $validate-code
good-cc1-isa-request $validate-code
good-cc2-all-request $validate-code
good-cc2-enumerated-request $validate-code
good-cc2-exclude-filter-request $validate-code
good-cc2-exclude-import-request $validate-code
good-cc2-exclude-list-request $validate-code
good-cc2-import-request $validate-code
good-cc2-isa-request $validate-code
good-coding-all-request $validate-code
good-coding-enumerated-request $validate-code
good-coding-exclude-filter-request $validate-code
good-coding-exclude-import-request $validate-code
good-coding-exclude-list-request $validate-code
good-coding-import-request $validate-code
good-coding-isa-request $validate-code
good-scd-all-request $validate-code
good-scd-enumerated-request $validate-code
good-scd-exclude-filter-request $validate-code
good-scd-exclude-import-request $validate-code
good-scd-exclude-list-request $validate-code
good-scd-import-request $validate-code
good-scd-isa-request $validate-code
icd-11 icd-11

ICD-11 Test Cases

term-caps $term-caps

Check that the minimum expected things are found in the server TerminologyCapabilities for ICD-11 servers

regex-bad general

Bad Regex - checking defences against denial of service attack. These are unusual because servers have the option to succeed, or to refuse the request

expand-regex-bad $expand

Check expand is safe from catastrophic regex

validate-regex-bad $validate-code

Check validate is safe from catastrophic regex

expand-regex-bad-2 $expand

Check expand is safe from catastrophic regex

validate-regex-bad-2 $validate-code

Check validate is safe from catastrophic regex

related2 tx.fhir.org

Tests for $compare operation - comparing two value sets to determine their relationship (equivalent, subset, superset, overlap, disjoint, unknown)

related-eq-identical-def $compare

Equivalent: identical is-a filter definitions

related-eq-enum-reorder $compare

Equivalent: same enumerated codes in different order

related-eq-multi-include-reorder $compare

Equivalent: multiple includes from same system in different order

related-eq-filter-vs-enum $compare

Equivalent: is-a filter vs explicit enumeration of same codes

related-eq-import-vs-inline $compare

Equivalent: imported value set vs same definition inline

related-eq-import-reorder $compare

Equivalent: child value sets imported in different order

related-expeq-exclude-vs-enum $compare

Equivalent (expansion): all CS1 minus C vs enumeration of same codes

related-expeq-exclude-partial $compare

Equivalent (expansion): is-a root minus {A2,B2} vs enumeration of result

related-sub-branch-vs-root $compare

Subset: is-a A is subset of is-a root

related-sub-enum-vs-filter $compare

Subset: enumerated {A1,A2} is subset of is-a A

related-sub-base-vs-import-plus $compare

Subset: base VS is subset of VS that imports it and adds codes

related-sub-leaf-vs-subtree $compare

Subset: single leaf {A1} is subset of is-a A

related-super-root-vs-branch $compare

Superset: is-a root is superset of is-a A

related-expsub-exclude-narrower $compare

Subset (expansion): all minus {C,B1,B2} subset of all minus {C}

related-disj-diff-systems $compare

Disjoint: value sets from entirely different code systems

related-disj-diff-branches $compare

Disjoint: non-overlapping branches (A vs B) in same system

related-disj-enum-no-intersection $compare

Disjoint: enumerated codes with no intersection (flat system)

related-disj-multi-system $compare

Disjoint: multi-system value sets with no overlap

related-ov-enum-partial $compare

Overlap: partially overlapping enumerations

related-ov-filter-vs-enum $compare

Overlap: is-a A overlaps with enum {A2, B1}

related-ov-multi-include-partial $compare

Overlap: multi-include with partial overlap (is-a A+{B1} vs is-a B+{A1})

related-ov-import-partial $compare

Overlap: imported value sets creating partial overlap

related-ov-cross-system $compare

Overlap: cross-system partial overlap

related-ov-exclude-partial $compare

Overlap (expansion): overlap after excludes applied

related-unk-snomed-both-filter $compare

Unknown: two SNOMED is-a filters, can't determine relationship

related-unk-snomed-filter-vs-enum $compare

Unknown: SNOMED is-a filter vs enumerated SNOMED code

related-unk-unknown-system $compare

Unknown: unknown code system, can't expand

related-ver-same-def-diff-cs-version $compare

Version: same is-a A definition, CS1 v1 subset of CS1 v2

related-ver-all-diff-cs-version $compare

Version: all CS1, v1 subset of v2

related-ver-branch-diff-cs-version $compare

Version: is-a B, CS1 v1 subset of CS1 v2

related-ver-unversioned-vs-pinned $compare

Version: unversioned is-a A (uses latest=v2) superset of v1-pinned

related-ver-same-vs-diff-version $compare

Version: same VS URL, v1 subset of v2 (definition changed)

related-ver-import-version-cascade $compare

Version: import of v1-pinned VS subset of import of v2-pinned VS

langcodes tx.fhir.org

IETF language code (BCP-47) test cases

expand-langcodes-all $expand

Tests the $expand operation for all language codes (a special case): the grammar is unbounded, so the common-languages base value set is returned, marked as an incomplete (unclosed) expansion