Current Build
Vocabulary Work Group Maturity Level: 5Normative Compartments: N/A

Normative Candidate Note: This page is candidate normative content for R4 in the Conformance Package. Once normative, it will lose it's Maturity Level, and breaking changes will no longer be made.

Validate that a coded value is in the code system. If the operation is not called at the instance level, one of the parameters "url" or "codeSystem" must be provided. One (and only one) of the in parameters (code, coding, codeableConcept) must be provided. The operation returns a result (true / false), an error message, and the recommended display for the code

The official URL for this operation definition is

 http://hl7.org/fhir/OperationDefinition/CodeSystem-validate-code

Formal Definition (as a OperationDefinition).

URL: [base]/CodeSystem/$validate-code

URL: [base]/CodeSystem/[id]/$validate-code

This is an idempotent operation

In Parameters:
NameCardinalityTypeBindingProfileDocumentation
url0..1uri

CodeSystem URL. The server must know the code system (e.g. it is defined explicitly in the server'scode systems, or it is known implicitly by the server

codeSystem0..1CodeSystem

The codeSystem is provided directly as part of the request. Servers may choose not to accept code systems in this fashion. This parameter is used when the client wants the server to check against a code system that is not stored on the server

code0..1code

The code that is to be validated

version0..1string

The version of the code system, if one was provided in the source data

display0..1string

The display associated with the code, if provided. If a display is provided a code must be provided. If no display is provided, the server cannot validate the display value, but may choose to return a recommended display name in an extension in the outcome. Whether displays are case sensitive is code system dependent

coding0..1Coding

A coding to validate. The system must match the specified code system

codeableConcept0..1CodeableConcept

A full codeableConcept to validate. The server returns true if one of the coding values is in the code system, and may also validate that the codings are not in conflict with each other if more than one is present

date0..1dateTime

The date for which the validation should be checked. Normally, this is the current conditions (which is the default values) but under some circumstances, systems need to validate that a correct code was used at some point in the past. A typical example of this would be where code selection is constrained to the set of codes that were available when the patient was treated, not when the record is being edited. Note that which date is appropriate is a matter for implementation policy.

abstract0..1boolean

if true, then an abstract code is allowed to be used in the context of the code that is being validated. Typically, abstract codes are allowed to be used in value set specifications (e.g. any code that is subsumed by an abstract code), but not in an actual recrod. If false (which is the default value), then only concrete codes as defined by the code system are allowed

displayLanguage0..1code

Specifies the language to be used for description when validating the display property

Out Parameters:
NameCardinalityTypeBindingProfileDocumentation
result1..1boolean

True if the concept details supplied are valid

message0..1string

Error details, if result = false. If this is provided when result = true, the message carries hints and warnings

display0..1string

A valid display for the concept if the system wishes to display this to a user

Simple validation of a code against a known code system (Request):

GET [base]/CodeSystem/loinc/$validate-code?code=1963-8&display=test

Validate a CodeableConcept against a client specified code system (Request):

POST [base]/CodeSystem/$validate-code
[other headers]

{
  "ResourceType" : "Parameters",
  "parameter" : [
    {
    "name" : "coding",
    "valueCodeableConcept" : {
      "coding" : {
        "system" : "http://example.org",
          "code" : "code",
      "display" : "test"
      }
    }
  },
  {
    "name" : "codeSystem",
    "resource": {
      "resourceType" : "codeSystem",
    [etc.]
    }
  }
  ]
}

Response:

HTTP/1.1 200 OK
[other headers]

{
  "resourceType" : "Parameters",
  "parameter" : [
    {
    "name" : "result",
    "valueBoolean" : "false"
  },
  {
    "name" : "message",
    "valueString" : "The display \"test\" is incorrect"
  },
  {
    "name" : "display",
    "valueString" : "Bicarbonate [Moles/volume] in Serum"
  }
  ]
}

 

For more information about operations, including how they are invoked, see Operations.