PSI use the concepts of vouchers to track referrals issued to clients for the purpose of tracking uptake of product and services.
Voucher number characteristics
6 characters in length (letters and digits)
Letters are all capitalsThe values are converted to
Unique code: First 5 characters are generated from time based formula
value is converted to a base34 [0~9, A~X] (34 digit),
‘I' & ‘O’ (capital o) are
then
converted to ‘Y’ & 'Z’
.
Last 1 character is a control character, calculated by Summing summing the first 5 characters, and then taking the remainder.
Typical voucher operations
every 24h . It is use to validate client-size (including online) a valid voucher number.
Voucher backend generation
Every 24h a cron job + node.js
...
, fills the pool of draft ServiceResquest Ids to 10,000.
All generated vouchers are marked with status “draft”
Voucher operations
Issuing/ online applications
Online applications: bot or website request a voucher to issue to online client
status FHIR server: draft → active (issued)
Issuing/ offline apps
an application ask for
...
A bot as for a voucher: draft → active
...
N number of voucher to replenish it local pool (about 150)
status main fhir server: draft → on-hold
Voucher issuing (offline)
status local FHIR : on-hold → active
after sync, status main fhir server: on-hold → active
Reedem of voucher (online of offline)
voucher status updated: active → completed
FHIR representation
...