inferno-program
inferno-program copied to clipboard
Warning Clarification: "A Reference without an actual reference or identifier should have a display"
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.
our response when .requester is not populated:
I realize these are just warnings but want to make sure we are following the rules.
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 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?
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" } ] }
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
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.
I want to throw out some scenarios to see if you can help me understand how we should behave based on this NPI guidance:
- 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?
- 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
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:
- You server shall return Practitioner with DEA number. Your server is not required to return NPI with DAR extension
- 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.
- 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.
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" } ] }
What is the failed message?
Have you figured out why you were having this problem @bh021790? Thanks!
So sorry for the longest delay! this can be closed out! We will just ensure our test users have NPIs :)