← Back to team overview

dhis2-devs team mailing list archive

Re: Generating sequential numbers in program rule

 

Dear Zubair, Nick

I have upgraded the instance to 2.30 now and am attempting to once again
implement the sequential numbering using the TextPattern option. I am using
it on a TEAttribute, but have not had any success.

Thus far, my Defined program rule action looks as follows:

d2:concatenate( V{enrollment_date}, '-', V{orgunit_code}, '-')

This is currently working and generating the UID, but of course, without
the sequential numbers. I have attempted the following combinations to try
include the sequential numbers to no avail:
d2:concatenate( V{enrollment_date}, '-', V{orgunit_code}, '-',
SEQUENTIAL(###))
d2:concatenate( V{enrollment_date}, '-', V{orgunit_code}, '-',
Sequential(###))
d2:concatenate( V{enrollment_date}, '-', V{orgunit_code}, '-',
V{Sequential(###)})
d2:concatenate( V{enrollment_date}, '-', V{orgunit_code}, '-',
V{sequential(###)})
d2:concatenate( V{enrollment_date}, '-', V{orgunit_code}, '-',
V{sequential###})
d2:concatenate( V{enrollment_date}, '-', V{orgunit_code}, '-',
'SEQUENTIAL(###)') - this one simply added the text in (as suspected).
d2:concatenate( V{enrollment_date}, '-', V{orgunit_code}, '-') +
SEQUENTIAL(###)

None of these combinations have worked thus far. Clearly I am
misunderstanding something or missing something and would appreciate any
help.

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 3:06 PM Zubair Asghar Raja <zubair@xxxxxxxxx> wrote:

> Hi Terence,
> There could be many reasons for that.
> Have you tried implementing what Nick suggested? The only limitation is
> that the TextPattern option is only available for TEAttribute and not to
> DataElement.
>
>
> Zubair Asghar
> DHIS-2 Developer
> University of Oslo
> zubair@xxxxxxxxx <lars@xxxxxxxxx>
> https://www.dhis2.org
>
>
> On Wed, Oct 10, 2018 at 2:48 PM Terence Scott <
> terence.scott@xxxxxxxxxxxxxxxxxx> wrote:
>
>> 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