← Back to team overview

dhis2-devs team mailing list archive

Re: Generating sequential numbers in program rule

 

Hi Terrance,

Sometime back I read about this. I think you need to use the expression like

   -

   ORG_UNIT_CODE(…) + "-" + CURRENT_DATE(yyyyww) + "-" + SEQUENTIAL(#####)


Instead of using the function concatenate. Please refer the below link for
more details:

   -
   https://docs.dhis2.org/master/en/user/html/working-with-textpattern.html

Hope this helps.

Thanks and regards

MSP


On Tue, Oct 30, 2018 at 4:56 PM Terence Scott <
terence.scott@xxxxxxxxxxxxxxxxxx> wrote:

> 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
>>>>>
>>>> _______________________________________________
> 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