inferno-program icon indicating copy to clipboard operation
inferno-program copied to clipboard

Warning Clarification: "A Reference without an actual reference or identifier should have a display"

Open bh021790 opened this issue 3 years ago • 10 comments

We receive this warning in a couple of places when we use a DAR extension for a US Core MUST HAVE. On MedicationRequest, when we expose historical meds (home meds), we don't have the concept of a .requester so we use an unknown DAR and we receive the warning. Is the warning suggesting we should also include a display of 'unknown'. If so, that's different from what the General Guidance suggests.

image

image

our response when .requester is not populated:

image

I realize these are just warnings but want to make sure we are following the rules.

bh021790 avatar Feb 08 '22 21:02 bh021790

Somewhat similar issue on Practitioner.identifier - when a clinician doesn't have an identifier, we use a DAR extension of unknown like the MedRequest example above. In USCPR-02, we fail the test because identifier doesn't have a system: Practitioner/3863780: Practitioner.identifier[0]: Practitioner.identifier.system: minimum required = 1, but only found 0 (from http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner)

When we have missing data and are supplementing with a DAR, should the tests exclude those scenarios?

bh021790 avatar Feb 08 '22 22:02 bh021790

@bh021790 Thank you for reaching to us. For your first question, this is a warning from validator. Inferno Program does not count warning. For your second question, could you post a sample of failed Practitioner resource?

yunwwang avatar Feb 09 '22 14:02 yunwwang

USCPR-02: Practitioner resources returned during previous tests conform to the US Core Practitioner Profile.

Message: Practitioner/3863780: Practitioner.identifier[0]: Practitioner.identifier.system: minimum required = 1, but only found 0 (from http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner) Practitioner/3863780: Practitioner.identifier[0]: Practitioner.identifier.value: minimum required = 1, but only found 0 (from http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner)

GET 200 https://fhir-myrecord.cerner.com/r4/17316440-14fe-4957-b62f-9d85de2c88ca/Practitioner/3863780

{ "resourceType": "Practitioner", "id": "3863780", "meta": { "versionId": "5", "lastUpdated": "2019-08-14T21:43:11.000Z" }, "text": { "status": "generated", "div": "<div xmlns="http://www.w3.org/1999/xhtml">

Practitioner

Name: T., Greg

Status: Active

" }, "extension": [ { "valueBoolean": true, "url": "https://fhir-ehr.cerner.com/r4/StructureDefinition/is-physician" } ], "identifier": [ { "extension": [ { "valueCode": "unknown", "url": "http://hl7.org/fhir/StructureDefinition/data-absent-reason" } ] } ], "active": true, "name": [ { "use": "usual", "text": "T., Greg", "family": "T", "given": [ "Greg" ], "period": { "start": "2016-10-18T22:19:12.000Z" } } ], "telecom": [ { "system": "email", "value": "[email protected]", "use": "work" } ] }

bh021790 avatar Feb 09 '22 18:02 bh021790

This is an error from FHIR validator. It is really tricky to apply extension on an array element. Actually, what your example says is that I don't know the first identifier of the Practitioner. There is no good way in FHIR to say that I don't know any identifier of the Practitioner.

US Core Practitioner.identifier element has required identifier.system and identifier.value element. The "correct" way to make FHIR validator happy is to apply DAR extension to these required subelement. For example:

{
  "resourceType": "Practitioner",
  "id": "3863780",
  "meta": {
    "versionId": "5",
    "lastUpdated": "2019-08-14T21:43:11.000Z"
  },
  "extension": [
    {
      "valueBoolean": true,
      "url": "https://fhir-ehr.cerner.com/r4/StructureDefinition/is-physician"
    }
  ],
  "identifier": [
    {
      "system": "http://hl7.org/fhir/sid/us-npi",
      "_value": {
        "extension": [
          {
            "valueCode": "unknown",
            "url": "http://hl7.org/fhir/StructureDefinition/data-absent-reason"
          }
        ]
      }
    }
  ],
  "active": true,
  "name": [
    {
      "use": "usual",
      "text": "T., Greg",
      "family": "T",
      "given": [
        "Greg"
      ],
      "period": {
        "start": "2016-10-18T22:19:12.000Z"
      }
    }
  ],
  "telecom": [
    {
      "system": "email",
      "value": "[email protected]",
      "use": "work"
    }
  ]
}

This means I don't know the NPI number of the Practitioner

yunwwang avatar Feb 10 '22 15:02 yunwwang

Thanks as always for all of the detail! First to clarify: my example is meant to indicate there are NO IDENTIFIERS for the practitioner in question.

Next I want to make sure I’m following what I see in the US Core Profile for Practitioner because I’m struggling with this interpretation “Practitioner.identifier element has required identifier.system and identifier.value element”:

Both the Must Have guidance and the Differential View suggest that my server does not ALWAYS have to have an NPI. What I failed to share in my example above is that I did have an example of another Practitioner for the given patient who does have an NPI associated. Each Practitioner must have Pasted Graphic

I want to throw out some scenarios to see if you can help me understand how we should behave based on this NPI guidance:

  1. For some reason a physician doesn’t have an NPI but has other identifiers like DEA. Is the expectation that my server return the DEA and then a DAR with an NPI system?
  2. What about for non-physicians who are not expected to have NPIs? Do we always have to populate the .identifier element with an NPI system and DAR it? That seems inappropriate to me

bh021790 avatar Feb 22 '22 14:02 bh021790

What it means is that each US Core Practitioner resource must have at least one identifier and each identifier must have system and value populated. The server must be able to provide NPI identifier if such identifier is available. For your scenario:

  1. You server shall return Practitioner with DEA number. Your server is not required to return NPI with DAR extension
  2. The same as previous one. Your server SHALL return Practitioner with at least one identifier. It does not matter what the type/system of identifier is.
  3. Beyond these two scenarios, the same MS testing logic applies to NPI identifier. That is the server must demonstrate that it support NPI identifier. Inferno tests this by looking if there is at least one NPI identifier (where system is NPI and value is not DAR) among all the identifiers (in all the Practitioner) returned from server.

yunwwang avatar Feb 22 '22 18:02 yunwwang

In my test which is failing, I have one practitioner with an NPI and one with a DAR. I'm still not following why we are failing:

GET 200 https://fhir-myrecord.cerner.com/r4/17316440-14fe-4957-b62f-9d85de2c88ca/Practitioner/3883782 Response Headers Body { "resourceType": "Practitioner", "id": "3883782", "meta": { "versionId": "3", "lastUpdated": "2019-08-14T21:43:06.000Z" }, "text": { "status": "generated", "div": "<div xmlns="http://www.w3.org/1999/xhtml">

Practitioner

Name: B., Anna

Identifiers: NPI: 1356602296, SPI: 6927347909001

Gender: Female

Status: Active

" }, "extension": [ { "valueBoolean": true, "url": "https://fhir-ehr.cerner.com/r4/StructureDefinition/is-physician" } ], "identifier": [ { "use": "usual", "type": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/v2-0203", "code": "NPI", "display": "National provider identifier" } ], "text": "National Provider Identifier" }, "system": "http://hl7.org/fhir/sid/us-npi", "value": "1356602296", "period": { "start": "2016-10-18T21:16:15.000Z" } }, { "use": "usual", "type": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/v2-0203", "code": "PRN", "display": "Provider number" } ], "text": "SureScripts Prescriber Index" }, "_system": { "extension": [ { "valueCode": "unknown", "url": "http://hl7.org/fhir/StructureDefinition/data-absent-reason" } ] }, "value": "6927347909001", "period": { "start": "2016-10-18T21:16:15.000Z", "end": "2099-12-31T06:00:00.000Z" } } ], "active": true, "name": [ { "use": "usual", "text": "B., Anna", "family": "B", "given": [ "Anna" ], "period": { "start": "2016-10-18T21:16:15.000Z" } } ], "gender": "female" } GET 200 https://fhir-myrecord.cerner.com/r4/17316440-14fe-4957-b62f-9d85de2c88ca/Practitioner/3863780 Response Body { "resourceType": "Practitioner", "id": "3863780", "meta": { "versionId": "5", "lastUpdated": "2019-08-14T21:43:11.000Z" }, "text": { "status": "generated", "div": "<div xmlns="http://www.w3.org/1999/xhtml">

Practitioner

Name: T., Greg

Status: Active

" }, "extension": [ { "valueBoolean": true, "url": "https://fhir-ehr.cerner.com/r4/StructureDefinition/is-physician" } ], "identifier": [ { "extension": [ { "valueCode": "unknown", "url": "http://hl7.org/fhir/StructureDefinition/data-absent-reason" } ] } ], "active": true, "name": [ { "use": "usual", "text": "T., Greg", "family": "T", "given": [ "Greg" ], "period": { "start": "2016-10-18T22:19:12.000Z" } } ], "telecom": [ { "system": "email", "value": "[email protected]", "use": "work" } ] }

bh021790 avatar Feb 24 '22 14:02 bh021790

What is the failed message?

yunwwang avatar Mar 09 '22 16:03 yunwwang

Have you figured out why you were having this problem @bh021790? Thanks!

arscan avatar Apr 26 '22 16:04 arscan

So sorry for the longest delay! this can be closed out! We will just ensure our test users have NPIs :)

bh021790 avatar May 25 '22 15:05 bh021790