← Back to team overview

dhis2-devs team mailing list archive

Re: Generating sequential numbers in program rule

 

Hi MSP

Thank you for the suggestion. I have also attempted this and was unable to
have any success. I tried to create a new rule with simply having
"Sequential(###)" alone, and did not have any success either. Therefore, I
assumed that there would be some sort of additional text that is required
to make it work.

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 Tue, Oct 30, 2018 at 5:49 PM M.Selvaraaj Prabu <msp.cbe@xxxxxxxxx> wrote:

> 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