R4 Ballot #1 (Mixed Normative/Trial use)

This page is part of the FHIR Specification (v3.3.0: R4 Ballot 2). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4

Operation-codesystem-validate-code.xml

Vocabulary Work GroupMaturity Level: N/ABallot Status: InformativeCompartments: Not linked to any defined compartments

Raw XML (canonical form)

Jump past Narrative

Operation Definition

<OperationDefinition xmlns="http://hl7.org/fhir">
  <id value="CodeSystem-validate-code"/> 
  <text> 
    <status value="generated"/> 
    <div xmlns="http://www.w3.org/1999/xhtml">
      <h2> Code System based Validation</h2> 
      <p> OPERATION: Code System based Validation</p> 
      <p> The official URL for this operation definition is: </p> 
      <pre> http://hl7.org/fhir/OperationDefinition/CodeSystem-validate-code</pre> 
      <div> 
        <p> Validate that a coded value is in the code system. If the operation is not called at the
           instance level, one of the parameters &quot;url&quot; or &quot;codeSystem&quot; 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</p> 

      </div> 
      <p> URL: [base]/CodeSystem/$validate-code</p> 
      <p> URL: [base]/CodeSystem/[id]/$validate-code</p> 
      <p> Parameters</p> 
      <table class="grid">
        <tr> 
          <td> 
            <b> Use</b> 
          </td> 
          <td> 
            <b> Name</b> 
          </td> 
          <td> 
            <b> Cardinality</b> 
          </td> 
          <td> 
            <b> Type</b> 
          </td> 
          <td> 
            <b> Binding</b> 
          </td> 
          <td> 
            <b> Documentation</b> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> url</td> 
          <td> 0..1</td> 
          <td> uri</td> 
          <td/>  
          <td> 
            <div> 
              <p> 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</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> codeSystem</td> 
          <td> 0..1</td> 
          <td> CodeSystem</td> 
          <td/>  
          <td> 
            <div> 
              <p> 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</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> code</td> 
          <td> 0..1</td> 
          <td> code</td> 
          <td/>  
          <td> 
            <div> 
              <p> The code that is to be validated</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> version</td> 
          <td> 0..1</td> 
          <td> string</td> 
          <td/>  
          <td> 
            <div> 
              <p> The version of the code system, if one was provided in the source data</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> display</td> 
          <td> 0..1</td> 
          <td> string</td> 
          <td/>  
          <td> 
            <div> 
              <p> 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</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> coding</td> 
          <td> 0..1</td> 
          <td> Coding</td> 
          <td/>  
          <td> 
            <div> 
              <p> A coding to validate. The system must match the specified code system</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> codeableConcept</td> 
          <td> 0..1</td> 
          <td> CodeableConcept</td> 
          <td/>  
          <td> 
            <div> 
              <p> 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</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> date</td> 
          <td> 0..1</td> 
          <td> dateTime</td> 
          <td/>  
          <td> 
            <div> 
              <p> 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.</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> abstract</td> 
          <td> 0..1</td> 
          <td> boolean</td> 
          <td/>  
          <td> 
            <div> 
              <p> 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</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> displayLanguage</td> 
          <td> 0..1</td> 
          <td> code</td> 
          <td/>  
          <td> 
            <div> 
              <p> Specifies the language to be used for description when validating the display property</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> OUT</td> 
          <td> result</td> 
          <td> 1..1</td> 
          <td> boolean</td> 
          <td/>  
          <td> 
            <div> 
              <p> True if the concept details supplied are valid</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> OUT</td> 
          <td> message</td> 
          <td> 0..1</td> 
          <td> string</td> 
          <td/>  
          <td> 
            <div> 
              <p> Error details, if result = false. If this is provided when result = true, the message
                 carries hints and warnings</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> OUT</td> 
          <td> display</td> 
          <td> 0..1</td> 
          <td> string</td> 
          <td/>  
          <td> 
            <div> 
              <p> A valid display for the concept if the system wishes to display this to a user</p> 

            </div> 
          </td> 
        </tr> 
      </table> 
      <div/>  
    </div> 
  </text> 
  <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm">
    <valueInteger value="5"/> 
  </extension> 
  <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-ballot-status">
    <valueString value="Normative"/> 
  </extension> 
  <url value="http://hl7.org/fhir/OperationDefinition/CodeSystem-validate-code"/> 
  <name value="Code System based Validation"/> 
  <status value="draft"/> 
  <kind value="operation"/> 
  <date value="2018-04-03T12:05:46+10:00"/> 
  <publisher value="HL7 (FHIR Project)"/> 
  <contact> 
    <telecom> 
      <system value="url"/> 
      <value value="http://hl7.org/fhir"/> 
    </telecom> 
    <telecom> 
      <system value="email"/> 
      <value value="fhir@lists.hl7.org"/> 
    </telecom> 
  </contact> 
  <description value="Validate that a coded value is in the code system. If the operation is not called at the
   instance level, one of the parameters &quot;url&quot; or &quot;codeSystem&quot; 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"/> 
  <code value="validate-code"/> 
  <resource value="CodeSystem"/> 
  <system value="false"/> 
  <type value="true"/> 
  <instance value="true"/> 
  <parameter> 
    <name value="url"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="1"/> 
    <documentation value="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"/> 
    <type value="uri"/> 
  </parameter> 
  <parameter> 
    <name value="codeSystem"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="1"/> 
    <documentation value="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"/> 
    <type value="CodeSystem"/> 
  </parameter> 
  <parameter> 
    <name value="code"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="1"/> 
    <documentation value="The code that is to be validated"/> 
    <type value="code"/> 
  </parameter> 
  <parameter> 
    <name value="version"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="1"/> 
    <documentation value="The version of the code system, if one was provided in the source data"/> 
    <type value="string"/> 
  </parameter> 
  <parameter> 
    <name value="display"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="1"/> 
    <documentation value="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"/> 
    <type value="string"/> 
  </parameter> 
  <parameter> 
    <name value="coding"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="1"/> 
    <documentation value="A coding to validate. The system must match the specified code system"/> 
    <type value="Coding"/> 
  </parameter> 
  <parameter> 
    <name value="codeableConcept"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="1"/> 
    <documentation value="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"/> 
    <type value="CodeableConcept"/> 
  </parameter> 
  <parameter> 
    <name value="date"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="1"/> 
    <documentation value="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."/> 
    <type value="dateTime"/> 
  </parameter> 
  <parameter> 
    <name value="abstract"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="1"/> 
    <documentation value="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"/> 
    <type value="boolean"/> 
  </parameter> 
  <parameter> 
    <name value="displayLanguage"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="1"/> 
    <documentation value="Specifies the language to be used for description when validating the display property"/> 
    <type value="code"/> 
  </parameter> 
  <parameter> 
    <name value="result"/> 
    <use value="out"/> 
    <min value="1"/> 
    <max value="1"/> 
    <documentation value="True if the concept details supplied are valid"/> 
    <type value="boolean"/> 
  </parameter> 
  <parameter> 
    <name value="message"/> 
    <use value="out"/> 
    <min value="0"/> 
    <max value="1"/> 
    <documentation value="Error details, if result = false. If this is provided when result = true, the message
     carries hints and warnings"/> 
    <type value="string"/> 
  </parameter> 
  <parameter> 
    <name value="display"/> 
    <use value="out"/> 
    <min value="0"/> 
    <max value="1"/> 
    <documentation value="A valid display for the concept if the system wishes to display this to a user"/> 
    <type value="string"/> 
  </parameter> 
</OperationDefinition> 

Usage note: every effort has been made to ensure that the examples are correct and useful, but they are not a normative part of the specification.