Generation of Unique Human readable IDs #872
Replies: 9 comments 15 replies
-
Here is some little documentation on the current OpenSRP implementation. |
Beta Was this translation helpful? Give feedback.
-
@pld @f-odhiambo Based on the eCBIS forms we need to discuss and refine this. We have two options.
|
Beta Was this translation helpful? Give feedback.
-
Can't we add human readable IDs as separate identifiers?
And not use them in the system internally at all.
… On Mar 13, 2022, at 19:28, Benjamin Mwalimu ***@***.***> wrote:
Context
Patients are assigned unique identifiers to help the health workers to track them easily. In OpenSRP we used to generate this and assign them to the patients during registration.
Implementation requirements
We need to come up with a similar if not improved functionality for the FHIR work. This unique identifier should have the following characteristics.
Should be human-readable
Should have the following items configurable by the implementations
The identifier id -- Used to tell the mobile apps which identifier configuration to use.
The generation algorithms to use
Base character set to use for the identifiers
Min & Max number of digits
Prefix & Postfix to use on the identifers
Any validation regex to act on the identifiers
The identifiers should be saved as part of the FHIR identifiers on the patient resources.
This should preferably be saved and the official identifier
The identification of what identifier to use for each app should be part of the configurable items when loading up a new app track.
The identifiers should be unique across the whole implementation, not just a facility, and the apps should not allow for duplicate identifier assignment or generation.
@pld @f-odhiambo Based on the eCBIS forms we need to discuss and refine this. We have two options.
Talk to the rest of community to see if this can be added as part of HAPI & Android SDK.
Build the functionality on the extensions we have, Add this to FHIRCore. This will mean needing to add a custom table to the SQLite table.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you were mentioned.
|
Beta Was this translation helpful? Give feedback.
-
If each app that's generating them used a unique static prefix they won't collide.
Alphanum is good, a 3 char prefix and 5 char random suffix should be enough to do it
… On Mar 20, 2022, at 08:52, Benjamin Mwalimu ***@***.***> wrote:
They are mostly 8 characters long, They are alphanumeric and some have prefixes and postfixes depending on the client. Most of the time they are sequential i.e a device can receive 1-250 then the other receives 250 -500 this is with assumptions to the client is using the +ve integers from 1 - n
Yes, we can also make the random to make them more unique. I am not sure of how to make sure they do not collide in the different HF/CHW connected to the same server. Think this is while we let the server generate them.
I might need to do more R&D on how to avoid the collision while they are generated on the app.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you were mentioned.
|
Beta Was this translation helpful? Give feedback.
-
I wonder if we can guarantee some uniqueness per client device deployment wide by generating a prefix from the server for every fresh install and letting the client manage it's own suffices. How it would work. Generate a prefix using the Douglas Crockford Base32 character set - it is basically an alpha numeric char. set that skips some characters that are prone to human error. See link.
Note: In order to cater for the number times users may install and uninstall an application we might want to use 4 for example it we do a national wide deployment. There's no way to track the device from the server so every fresh install has to be a new prefix allocation. It should not be a problem though since we DO NOT encourage uninstalling the app in Production Advantages:
|
Beta Was this translation helpful? Give feedback.
-
@allan-on @f-odhiambo please add the PHN requirements here. |
Beta Was this translation helpful? Give feedback.
-
Diabetes compass ID generation requirements
1. Proposed workflow
2. MVP workflow
|
Beta Was this translation helpful? Give feedback.
-
In terms of ID gen configurations. Do we have consensus on what should be configurable?
|
Beta Was this translation helpful? Give feedback.
-
I want to note we found a use case that would require batch generation. If a project wants to use IDs that need to be verified as existing in an external system, for example a voucher you can redeem for services, they you need to have a pre-generated set of IDs so that when a user enters there ID somewhere else the system can say whether it is valid or not. If we use on-demand generation we won't be able to say whether an ID the user reported is one that should exist. This will matter if an implementation wants to verify the validity of IDs, if they only want to verify the structure of IDs we wouldn't need batch. Like perhaps it's enough to know that the ID presented matches the structure of potential IDs (eg correct length, correct check digit). cc @roywanyaga |
Beta Was this translation helpful? Give feedback.
-
Context
Implementation requirements
id
-- Used to tell the mobile apps which identifier configuration to use.official
identifierBeta Was this translation helpful? Give feedback.
All reactions