← Back to team overview

dhis2-devs team mailing list archive

Re: Generating sequential numbers in program rule

 

Dear Zubair

Thank you for your rapid response. I have attempted to do this without
success. I think I am misunderstanding.

1) I created the program variable "auto-increment' as suggested
2) In this step - is this a new program rule? I created a program rule as
follows: "d2:hasValue #UID", Assign "#auto-increment + 1" to field
"auto-increment". I then set this as priority 2.
3) I created my UID program rule as with the following action:
"d2:concatenate( V{enrollment_date}, '-', A{Closest Health Center},
#{auto-increment})" assigned to the attribute for UID. This is set as
priority 1.

Unfortunately, this does not create the sequential number, but the
concatenated sequence is showing in the UID Attribute.

Do I have my priorities incorrect or have I done something else incorrectly?

Kind regards,
Terence

Terence Scott

Global Alliance for Rabies Control (GARC)
Pan-African Rabies Control Network (PARACON) Steering Committee
terence.scott@xxxxxxxxxxxxxxxxxx
https://paracon.rabiesalliance.org
Skype: tpscott1987



On Wed, Oct 10, 2018 at 2:01 PM Zubair Asghar Raja <zubair@xxxxxxxxx> wrote:

> Hi Terence,
> Should be possible using CALCULATED_VALUE.
> Program rule variable having source type as CALCULATED_VALUE will get its
> value assigned by some other program rule. Try these steps
> 1. create program rule variable of source type CALCULATED_VALUE // Let say
> "auto-increment"
> 2. create program rule with Program Rule Action as Assign Value and select
> variable created in step 1 and assign it "#{auto-increment} + 1"
> 3. Use it in your program rule where ever needed for example
> v{current-date}-#{orgunit}-#{auto-increment}
>
> In order to use CALCULATED_CALUE make sure you are correctly setting rule
> *priority*.
>
> Zubair Asghar
> DHIS-2 Developer
> University of Oslo
> zubair@xxxxxxxxx <lars@xxxxxxxxx>
> https://www.dhis2.org
>
>
> On Wed, Oct 10, 2018 at 1:25 PM Terence Scott <
> terence.scott@xxxxxxxxxxxxxxxxxx> wrote:
>
>> Dear All
>>
>> I am creating a program rule to develop a UID for the patient. I have
>> currently created a program rule using d2:concatenate to bring various
>> attributes and DEs together into the Unique ID (such as date and OrgUnit
>> code). However, I would also like to include sequential numbering after
>> this to ensure that more than 1 case can be registered on a single day.
>>
>> I have looked through all of the documentation and am unable to find
>> anything along these lines. Is it possible?
>>
>> Example:
>> 2018-10-10-OrgUnit code-1;
>> 2018-10-10-OrgUnit code-2;
>> 2018-10-10-OrgUnit code-3; etc.  (where 1,2 and 3 are the sequential
>> numbers generated).
>>
>> I have also looked at Program Rule variables and am unsure as to what the
>> "Calculated value" source type is, as in the documentation it is listed as
>> "TBA" with no further information.
>>
>> I would appreciate any help or advise.
>>
>> Kind regards,
>> Terence
>>
>>
>>
>>
>> Terence Scott
>>
>> Global Alliance for Rabies Control (GARC)
>> Pan-African Rabies Control Network (PARACON) Steering Committee
>> terence.scott@xxxxxxxxxxxxxxxxxx
>> https://paracon.rabiesalliance.org
>> Skype: tpscott1987
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~dhis2-devs
>> Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~dhis2-devs
>> More help   : https://help.launchpad.net/ListHelp
>>
>

Follow ups

References