0

There are some xsd's that describe FHIR objects and their content (element-names).

like:

fhir-single.xsd

https://build.fhir.org/validation.html#schema

(page 6 of below) https://www.devdays.com/wp-content/uploads/2020/12/wvoal_201118_GrahameGrieve_The_Use_and_Limits_of_Validation.pdf

and (some actual files themselves):

https://github.com/hapifhir/hapi-fhir/blob/master/hapi-fhir-validation-resources-r4/src/main/resources/org/hl7/fhir/r4/model/schema/fhir-single.xsd

and you can get a "single" FHIR resource as well https://github.com/hapifhir/hapi-fhir/blob/master/hapi-fhir-validation-resources-r4/src/main/resources/org/hl7/fhir/r4/model/schema/allergyintolerance.xsd

Ok, so if I go to the "resource CONTENT":

https://hl7.org/fhir/R4/allergyintolerance.html#resource

If I open up allergyintolerance.xsd

and search for the CONTENT (element-name) of "verificationStatus", it is found easily.

  <xs:complexType name="AllergyIntolerance">
    <xs:annotation>
      <xs:documentation xml:lang="en">Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance.</xs:documentation>
      <xs:documentation xml:lang="en">If the element is present, it must have either a @value, an @id, or extensions</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="DomainResource">
        <xs:sequence>
          <xs:element name="identifier" minOccurs="0" maxOccurs="unbounded" type="Identifier">
            <xs:annotation>
              <xs:documentation xml:lang="en">Business identifiers assigned to this AllergyIntolerance by the performer or other systems which remain constant as the resource is updated and propagates from server to server.</xs:documentation>
           </xs:annotation>
          </xs:element>
          <xs:element name="clinicalStatus" minOccurs="0" maxOccurs="1" type="CodeableConcept">
            <xs:annotation>
              <xs:documentation xml:lang="en">The clinical status of the allergy or intolerance.</xs:documentation>
           </xs:annotation>
          </xs:element>
          <xs:element name="verificationStatus" minOccurs="0" maxOccurs="1" type="CodeableConcept">
            <xs:annotation>
              <xs:documentation xml:lang="en">Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified substance (including pharmaceutical product).</xs:documentation>
           </xs:annotation>
          </xs:element>

However, if I go to the Search-Parameters (of AllergyIntolerance )

https://hl7.org/fhir/R4/allergyintolerance.html#search

and find "verification-status" (<< this is a search-parameter name)

if I got back and open and search for "verification-status" in allergyintolerance.xsd, there are no matches.

Aka, I don't see the search-parameters in the allergyintolerance.xsd.

...

I tried a few different FHIR resources.

  1. Download https://github.com/hapifhir/hapi-fhir/blob/master/hapi-fhir-validation-resources-r4/src/main/resources/org/hl7/fhir/r4/model/schema/visionprescription.xsd

  2. Find the SEARCH Parameters:

https://hl7.org/fhir/R4/visionprescription.html#search

  1. Pick one, a uniquely named one like 'datewritten' (< case matters)

  2. search the visionprescription.xsd file contents for "datewritten", and no results.

........

The question:

Is there any xsd's (or root single source of truth) that contains the SEARCH PARAMETER information of (any) FHIR-Resource ?

1 Answer 1

1

The StructureDefinitions define data that will flow over the wire as either XML, JSON, or TTL. We define XML schemas (and JSON schemas and ShEx schemas) that describe at least some of the validation expectations for those instances. None of those schema representations are considered "source of truth" though - they are generated, and often include significantly less information than the true source of truth.

On the other hand, search parameters do not define data structures that will be sent over the wire in any standard syntax - they'll just appear on the URL or as part of an encoded form. And there's no schema structure to define those things.

If you want the source of truth, look at the XML or JSON files for the StructureDefinitions, SearchParameters, OperationDefinitions, ValueSets, etc. You can see these in the 'definitions' links found on the downloads page (e.g. https://build.fhir.org/downloads.html if you want the definitions for the current build.)

Sign up to request clarification or add additional context in comments.

4 Comments

from url you gave, find "FHIR Definitions All the value sets, profiles, etc. defined as part of the FHIR specification, and the included implementation guides: XML" which points to : definitions.xml.zip -> search-parameters.xml is where they were hiding. for example: <fullUrl value="hl7.org/fhir/SearchParameter/…> and <fullUrl value="hl7.org/fhir/SearchParameter/…>
Sidenote : "build.fhir.org/downloads.html" find text "The whole specification so that you can host your own local copy (does not include the downloads)" and this link is broken. (build.fhir.org/fhir-spec.zip) I will try to report it on Monday.
No need to report it. In the CI-build, we never include that link because it takes too much room and is a pain to generate. We only include that link in the official releases of the spec. If you look in the hl7.org/fhir/downloads.html page, you'll see the link works.
Ah, ok. (build vs deployed "link"). Thanks.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.