Release 5 Draft Ballot

Operation-namingsystem-preferred-id.xml

FHIR Infrastructure Work GroupMaturity Level: N/AStandards Status: InformativeCompartments: Not linked to any defined compartments

Raw XML (canonical form + also see XML Format Specification)

Jump past Narrative

Operation Definition

<?xml version="1.0" encoding="UTF-8"?>

<OperationDefinition xmlns="http://hl7.org/fhir">
  <id value="NamingSystem-preferred-id"/> 
  <text> 
    <status value="extensions"/> 
    <div xmlns="http://www.w3.org/1999/xhtml">
      <h2> preferred-id</h2> 
      <p> OPERATION: preferred-id</p> 
      <p> The official URL for this operation definition is: </p> 
      <pre> http://hl7.org/fhir/OperationDefinition/NamingSystem-preferred-id</pre> 
      <div> 
        <p> This operation returns the preferred identifiers for identifiers, and terminologies. The
           operation takes 2 parameters:</p> 

        <ul> 

          <li> a system identifier - either a URI, an OID, or a v2 table 0396 (other) code</li> 

          <li> a code for what kind of identifier is desired (URI, OID, v2 table 0396 identifier)</li> 

        </ul> 

        <p> and returns either the requested identifier, or an HTTP errors response with an OperationOutcome
           because either the provided identifier was not recognized, or the requested identiifer
           type is not known.</p> 

        <p> The principle use of this operation is when converting between v2, CDA and FHIR Identifier/CX/II
           and CodeableConcepts/C(N/W)E/CD but the operation may also find use when converting metadata
           such as profiles.</p> 

      </div> 
      <p> URL: [base]/NamingSystem/$preferred-id</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> id</td> 
          <td> 1..1</td> 
          <td> 
            <a href="datatypes.html#string">string</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> The server parses the provided identifier to see what type it is (e.g. a URI, an OID as
                 a URI, a plain OID, or a v2 table 0396 code). If the server can't tell what type of identifier
                 it is, it can try it as multiple types. It is an error if more than one system matches
                 the provided identifier</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> type</td> 
          <td> 1..1</td> 
          <td> 
            <a href="datatypes.html#code">code</a> 
          </td> 
          <td> http://hl7.org/fhir/ValueSet/namingsystem-identifier-type|4.6.0|4.6.0 (Required)</td> 
          <td/>  
        </tr> 
        <tr> 
          <td> OUT</td> 
          <td> result</td> 
          <td> 1..1</td> 
          <td> 
            <a href="datatypes.html#string">string</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> OIDs are return as plain OIDs (not the URI form).</p> 

            </div> 
          </td> 
        </tr> 
      </table> 
      <div> 
        <p> Servers handle this request by finding the provided identifier in their known naming systems,
           and returning the requested identifier type (
          <a href="namingsystem-definitions.html#NamingSystem.uniqueId.type">NamingSystem.uniqueId.type</a> ). If there are multiple possible identifiers of the specified type (e.g. multiple OIDs)
           the server returns an error.
        </p> 

        <p> If the server wishes, it can also look through all code systems and value sets it knows
           about when attempting to find the requested identifier</p> 

      </div> 
    </div> 
  </text> 
  <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm">
    <valueInteger value="1"/> 
  </extension> 
  <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
    <valueCode value="trial-use"/> 
  </extension> 
  <url value="http://hl7.org/fhir/OperationDefinition/NamingSystem-preferred-id"/> 
  <version value="4.6.0"/> 
  <name value="preferred-id"/> 
  <title value="Fetch Preferred id"/> 
  <status value="draft"/> 
  <kind value="operation"/> 
  <date value="2021-05-06T18:01:32+00: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="This operation returns the preferred identifiers for identifiers, and terminologies. The
   operation takes 2 parameters:     

* a system identifier - either a URI, an OID, or a v2 table 0396 (other) code  
* a code for what kind of identifier is desired (URI, OID, v2 table 0396 identifier) 
     

and returns either the requested identifier, or an HTTP errors response with an OperationOutcome
   because either the provided identifier was not recognized, or the requested identiifer
   type is not known.    

The principle use of this operation is when converting between v2, CDA and FHIR Identifier/CX/II
   and CodeableConcepts/C(N/W)E/CD but the operation may also find use when converting metadata
   such as profiles."/> 
  <affectsState value="false"/> 
  <code value="preferred-id"/> 
  <comment value="Servers handle this request by finding the provided identifier in their known naming systems,
   and returning the requested identifier type ([NamingSystem.uniqueId.type](namingsystem-definitions.h
  tml#NamingSystem.uniqueId.type)). If there are multiple possible identifiers of the specified
   type (e.g. multiple OIDs) the server returns an error.    

If the server wishes, it can also look through all code systems and value sets it knows
   about when attempting to find the requested identifier"/> 
  <resource value="NamingSystem"/> 
  <system value="false"/> 
  <type value="true"/> 
  <instance value="false"/> 
  <parameter> 
    <name value="id"/> 
    <use value="in"/> 
    <min value="1"/> 
    <max value="1"/> 
    <documentation value="The server parses the provided identifier to see what type it is (e.g. a URI, an OID as
     a URI, a plain OID, or a v2 table 0396 code). If the server can't tell what type of identifier
     it is, it can try it as multiple types. It is an error if more than one system matches
     the provided identifier"/> 
    <type value="string"/> 
  </parameter> 
  <parameter> 
    <name value="type"/> 
    <use value="in"/> 
    <min value="1"/> 
    <max value="1"/> 
    <type value="code"/> 
    <binding> 
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
        <valueString value="NamingSystemIdentifierType"/> 
      </extension> 
      <strength value="required"/> 
      <valueSet value="http://hl7.org/fhir/ValueSet/namingsystem-identifier-type|4.6.0|4.6.0"/> 
    </binding> 
  </parameter> 
  <parameter> 
    <name value="result"/> 
    <use value="out"/> 
    <min value="1"/> 
    <max value="1"/> 
    <documentation value="OIDs are return as plain OIDs (not the URI form)."/> 
    <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.