I had a FHIR student ask this recently:
I understand the business identifier (bi) is the “real world identifier” to identify the data. The logical identifier (li) is the unique ID in the current system. So if an observation is first generated/stored in system X then for example bi=1234 and li=abcd. When the observation is transferred to software system Y then bi stays the same (=1234) but the li is new (new unique identifier within new system Y).
having all this said, I do not understand why the business identifier’s cardinality is 0…*. Why isn’t it 1? >Shouldn’t every object have a unique identifier in the real world?
My response was:
I believe the FHIR standard creators/maintainers want it to be as ‘open’ as possible i.e. cater for all scenarios including where no bi exists in a system, there might not be many such systems, but they do exist; at the same time, as an implementer you can create an Implementation Guide (IG) that requires anyone you interoperate with, to always have a bi on all or select resources, depending on your use case.
I also advised the student to join this forum as well as http://chat.fhir.org/ and post their questions recommendations there as well to get more insights into this and any other FHIR questions they may have in future.
Any other suggestions?