Stream: implementers
Topic: correct usage of FHIR identifier
Lukas Rupprecht (Jul 08 2021 at 13:16):
Hey everybody,
we are currently implementing a FHIR solution that serves different organizations. We create a dedicated FHIR organization resource for each organization and use the id of the fhir resource as part of our identifier set for other resources to see which organization sent a resource, like this:
organization id: ff9c7e42-6e68-47c3-b7df-20be15f8a499
"identifier": [
{
"system": "https://random_name/fhir/ff9c7e42-6e68-47c3-b7df-20be15f8a499",
"value": "0"
}
]
With that approach we have a different system for each organization and therefore no overall same system for the organizations.
Another approach would be to do something like this:
"identifier": [
{
"system": "https://random_name/fhir/",
"value": "0",
"assigner": "ff9c7e42-6e68-47c3-b7df-20be15f8a499"
}
]
Here we would use the same system for the different organizations, but have the problem, that the actual values that are used within the system are not the same over all organizations, meaning that the value of "0" in one organization defines something else than in the other organization.
So to summarize my questions are:
- How can we state distinguish between resources that are sent to the FHIR server from different organizations best?
- How should we use the system/value logic to point out, that they are in fact using the same idea of the system (they want to describe patients for example), but that it could be possible that different organizations use the same value and mean a different patient?
- Is it mandatory that if we use the same system for different resources that the same used value should represent the same "real" resource?
Thanks in advance for your help!
Lukas
René Spronk (Jul 08 2021 at 14:12):
Have you looked at Meta.source ? That would seem a more appropriate way to capture what system/organization sent a particular resource.
René Spronk (Jul 08 2021 at 14:12):
http://build.fhir.org/resource.html#Meta
Lloyd McKenzie (Jul 08 2021 at 14:16):
Identifier.system indicates the "namespace" in which an identifier is unique. It doesn't indicate where a given resource came from.
Lukas Rupprecht (Jul 09 2021 at 05:16):
René Spronk said:
Have you looked at Meta.source ? That would seem a more appropriate way to capture what system/organization sent a particular resource.
I will have a look into that, thank you!
Alan Pinder (Jul 09 2021 at 16:50):
I have a similar kind of challenge. We have a lot of Identifiers that are effectively internal system IDs. They only make sense to the source EMR or Labs system that originated the data. There is no public URI to define the system.name. We could point to the website of the source EMR, or the host Hospital... what is best identifier system name in this kind of case?
Daniel Venton (Jul 09 2021 at 17:39):
If you are making up values just to "fill a slot" where that value has no meaning to a consumer, why bother including it at all?
If labcorp sends you result 123245515242312, you should contact labcorp to tell you the unique system value, that way labcorp (hopefully) tells every consumer of their data the same value. LabCorp is the assigning authoriy, labcorp should state what their assigning authority name (url is). When they have the same value then consumers can correlate with other consumers of labcorp data.
Rik Smithies (Jul 09 2021 at 19:01):
@Alan Pinder yes you can make one up using the appropriate domain name e.g. http://myhospital.nhs.org/lab/accession. That is specific to you, unless someone else starts using your domain, so you can control it and make it unique and consistent and that is all you need.
Technically it has no semantic meaning and is just a unique string of bytes, but using the uri makes it manageable and readable. Ideally keep a register of them, and/or tell a regional entity about them, so they can be looked up and people can know what it refers to should that ever be necessary. You can use a NamingSystem resource on a FHIR server if you want to record them that way.
Lloyd McKenzie (Jul 09 2021 at 19:05):
The purpose of the URI isn't necessarily to resolve (though it's nice if it does), it's to provide a unique namespace such that the combination of URI + value is globally unique and can be safely matched. It means that when data flows via multiple paths, you can know that you're looking at the same thing as opposed to something at coincidentally happens to share the same number sequence. Without a system, the best you can do when comparing values is flag them as 'candidate matches'.
Bill Harty (Dec 17 2021 at 16:15):
We're supplying the medicare beneficiary id (MBI) as one of the identifiers in the Patient resource, using "http://hl7.org/fhir/sid/us-mbi" as the .system value, as specified by the identifier registry. Two questions: 1. The FHIR validator throws an error ("URL xxx does not resolve"). Given Lloyd's comment above that URI doesn't necessarily have to resolve and is just a namespace, why does the Validator throw an error instead of an Information or Warning? 2. It seems like the hl7.org/fhir/sid URL should resolve but is broken - it reports an error: "Internal Error - unknown id us-mbi (from crsid.asp) ." Thanks as always for any insights.
Last updated: Apr 12 2022 at 19:14 UTC