Uploaded image for project: 'FHIR Specification Feedback'
  1. FHIR Specification Feedback
  2. FHIR-37591

Patient.deceased does not work with :missing

    XMLWordPrintableJSON

Details

    • Icon: Change Request Change Request
    • Resolution: Not Persuasive
    • Icon: Medium Medium
    • FHIR Core (FHIR)
    • R4B
    • Patient Administration
    • Patient
    • Search Parameter Registry
    • 8.1.13
    • Hide

      To address this fully, we would need to deprecate the existing search parameter and create a new one.  We don't believe that good support of the :missing modifier is sufficiently important to justify that disruptive change.

       

      If you have a specific need to support :missing, we'd recommend creating your own custom search parameter.

      Show
      To address this fully, we would need to deprecate the existing search parameter and create a new one.  We don't believe that good support of the :missing modifier is sufficiently important to justify that disruptive change.   If you have a specific need to support :missing, we'd recommend creating your own custom search parameter.
    • Brian Postlethwaite / Rick Lisseveld : 7-0-0

    Description

      The description and fhirpath expression for the searchparameter Patient.deceased are:

      This patient has been marked as deceased, or has a death date entered Patient.deceased.exists() and Patient.deceased != false

      This fhirpath expression always return a value, whether or not the 'deceased' element exists.

      When querying for "Patient?deceased:missing=true", the query by definition targets the searchparameter named 'deceased' and not the element 'deceased.

      Since this searchparameter will always have a value, it is never missing. Even though the element may very well be missing.

      It would be more correct if the expression just returned a boolean element if there actually is one in the resource.

      Suggestion:

      Patient.deceased.where($this.convertsToBoolean()) | Patient.deceased.where($this.convertsToDate()).convertsToDate()

      This expression selects:

      • the boolean element for a deceasedBoolean if actually has a value (and not just an extension)
      • 'true' for a deceasedDateTime if it actually has a date / datetime value (and not just an extension)

      When changed this way, users can search separately on:

      • deceased: false (by ?deceased=false)
      • no deceased element, or having just an extension an no value (by ?deceased:missing=true)
      • deceased element with value present (regardless of the value), by ?deceased:missing=false
      • for a deceased

      Attachments

        Activity

          People

            Unassigned Unassigned
            cpk Christiaan Knaap
            Alexander Zautke
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: