You are on page 1of 85

DHIS2 eLMIS sandbox

eLMIS solutions configuration guide

May 2023

HISP Centre University of Oslo

eLMIS team

https://lmis.integration.dhis2.org/sandbox
Table of contents

TABLE OF CONTENTS

1 Introduction 3

1.1 Audience 3

1.2 Purpose 3

1.3 Design principles 3

1.4 System access and updates 3

1.5 Feedback 4

2a Monthly stock data recording / aggregate Data Entry form 5

2a.1 Use case 5

2a.2 DHIS2 configuration 5

2a.3 DHIS2 user interfaces 7

2b Monthly stock data recording and calculation / aggregate Data Entry form 9

2b.1 Use case 9

2b.2 DHIS2 configuration 9

2b.3 DHIS2 user interfaces 24

3 Real-Time Stock Management tool / Tracker Program 28

3.1 Use case 28

3.2 DHIS2 configuration 28

3.3 DHIS2 user interfaces 42

4 Manual temperature recording / aggregate Data Entry form 46

4.1 Use case 46

4.2 DHIS2 configuration details 46

4.3 DHIS2 user interfaces 48

5 Health care product catalogue / Tracker program 50

5.1 Use case 50

5.2 DHIS2 configuration 50

1
Table of contents

5.3 DHIS2 user interfaces 53

6 Biomedical equipment lifecycle management / Tracker program 54

6.1 Use case 54

6.2 DHIS2 configuration details 54

6.3 DHIS2 user interfaces 60

7 Cold chain equipment lifecycle management / Tracker program 63

7.1 Use case 63

7.2 DHIS2 configuration details 63

7.3 DHIS2 user interfaces 72

7.4 Workflow for registering new appliances 75

8 GS1 DataMatrix code parsing / Event program 77

8.1 Use case 77

8.2 DHIS2 quick configuration guide 77

8.3 DHIS2 user interfaces 82

2
1 Introduction

1 INTRODUCTION

This document is intended to demonstrate some fully functional prototype for using DHIS2
logistics applications at the health care facility level.

1.1 Audience
This guide is intended for users interested in using DHIS2 for logistics applications at the
health care facility level as well as for implementers supporting any implementations.

1.2 Purpose
This short guide intends to demonstrate the feasibility of and options for configuring DHIS2
as end-user logistics applications while promoting best practices for logistics management.
This guide explains (only) the settings specific to the use case such as the Category options or
Data Set settings but not the details of Organisation Units, User roles etc. which are not specific
to the configuration.
The metadata configurations are presented in the order in which they appear in the DHIS2
"Maintenance" app.
Users are encouraged to adopt these prototypes to their specific use cases, situations,
constraints and needs.

1.3 Design principles


The applications are all "designed for Android" (mobile applications) for use on mobile
devices (mobile phones or tablet computers). This also means that all applications can be used
off-line for any period of time and data can be synchronized once a suitable network
connection is available (again).
All applications are kept as simple as possible and only configured with essential features in
order to minimize the workload of (health) staff at health care facilities as well as the amount
of data as much as possible.
As much as possible wherever possible native DHIS2 functionality is used.

1.4 System access and updates


The sandbox can be accessed through the following URL:
https://lmis.integration.dhis2.org/sandbox
The credentials (user name and password) are provided on the login page.
For accessing the applications on the mobile device, the DHIS2 Capture app needs to be
downloaded from Google Plastore and be installed on the mobile device. Access is available
with the same credentials as for the web portal.
Users are welcome to explore the system by entering data and modifying the configuration.
However, all data will be erased and all changes will be reset to the original version very day
during the night hours.

3
1 Introduction

1.5 Feedback
Please provide any feedback, suggestions for improvements or other use cases on the DHIS2
communityLMIS channel:
https://community.dhis2.org/c/implementation/supply-chain-and-lmis/46

4
2a Monthly stock data recording / "aggregate" data entry form

2a MONTHLY STOCK DATA RECORDING / "aggregate" data entry form

This Default Data Entry Form ("aggregate") allows storekeepers at health care facilities to
enter monthly data on demand ("consumption") as well as stock on hand digitally on a on- or
off-line on a mobile device and synchronize the data with a central DHIS2 server for analysis,
data sharing and integration with national eLMIS systems.

2a.1 Use case


At the end of the month, storekeepers will count the quantity of all health care products in
the medical store and record the stock on hand. Furthermore, to obtain the total amount of
each health care product issued from the medical store from the first to the last day of the
month and record the total monthly demand ("consumption") directly on a mobile device. The
list of stock items ("Data Elements") can be adapted to each health care facility as needed and
user access can be given selectively to individual storekeepers as required.

2a.2 DHIS2 configuration guide


The configuration of this Default Data Entry form uses "Disaggregation categories" as this is
technically the only way to display a table for recording data in the DHIS2 Capture app on a
mobile device and relies only on basic, native DHIS2 functionality.

CATEGORY System default settings

Name:
- "Stock correction"
- "Stock discarded"
- "Stock distributed"
Category option
- "Stock on hand"
- "Stock received"
- "Stock redistributed"
(Not shared).

Name: "Monthly stock report - Data collection"


Data dimension type: "Disaggregation"
Assigned Category option in the following order:
- "Stock received"
- "Stock distributed"
Category
- "Stock redistributed"
- "Stock discarded"
- "Stock on hand"
- "Stock correction"
(Not shared).

5
2a Monthly stock data recording / "aggregate" data entry form

Name: "Monthly stock report - Data collection"


Data dimension type: "Disaggregation"
Category combination Skip category total in reports: tag
Categories: "Monthly stock report - Data collection"
(Not shared).

Name (examples only, configure according to national drug list):


- "CLOXACILLIN, 250 mg, caps."
- "FOLIC ACID, 5 mg, tab."
- "METRONIDAZOLE, 500 mg, tab."
- "ORAL REHYDRATION SALTS (O.R.S.), sachet 20.5 g/1 L"
- "PARACETAMOL (acetaminophen), 500 mg, tab."
Data element - "SALBUTAMOL, 0.1mg/puff, 200 puffs, inhaler"
Domain type (*): "Aggregate"
Value type (*): "Integer"
Aggregation type (*): "Sum"
Store zero data values: tag
Category combination (*): "Monthly stock report - Data collection"
(Not shared).

Name: "Monthly stock report - Data recording"


Color: "#00ACC1"
Icon:

Expiry days: "5"


Open future periods for data entry: "1"
Days after period to qualify for timely submission: "15"
Data set Period type (*): "Monthly"
Category combination (*): "None"
Render sections as tabs: tag
Data elements: assign as required (see above)
Organisation units: select as required
Sharing settings: share with users or user groups as required
Sections: created a "Section" for each group of health care
products such as disinfectants, oral drug products etc. as required

6
2a Monthly stock data recording / "aggregate" data entry form

Name: "DHIS2 end-user eLMIS - Stock report / Last 3 months /


Facility"
Visualization type: "Pivot table"
Columns
Data visualizer - Period: "Last 3 months"
- Your Dimensions: "Monthly stock report - Data collection" (select
all six Category options)
Rows: Data: select Data elements as required
Filter: Organisation Unit: select Organisation units as required

2a.3 DHIS2 user interfaces


Web portal / Data Entry form

Web portal / Data Visualizer

7
2a Monthly stock data recording / "aggregate" data entry form

Capture Android app

8
2b Monthly stock data recording and calculation / "aggregate" data entry form

2b MONTHLY STOCK DATA RECORDING AND CALCULATION / "aggregate" data entry form

This Default Data Entry Form ("aggregate") allows storekeepers at health care facilities to
enter monthly data on demand ("consumption") as well as stock on hand digitally on a on- or
off-line on a mobile device and synchronize the data with a central DHIS2 server for analysis,
data sharing and integration with national eLMIS systems.
In addition to the configuration presented above, this Default Data Entry Form automatically
calculates the "Opening balance" (stock on hand from the end of the previous month), "Closing
balance" (Opening balance plus all stock receipts minus all stock issues) as well as "Stock
discrepancy" (difference between the Stock on hand as counted and the calculated Closing
balance).

2b.1 Use case


At the end of the month, storekeepers will count the quantity of all health care products in
the medical store and record the stock on hand. Furthermore, to obtain the total amount of
each health care product issued from the medical store from the first to the last day of the
month and record the total monthly demand ("consumption") directly on a mobile device. The
list of stock items ("Data Elements") can be adapted to each health care facility as needed and
user access can be given selectively to individual storekeepers as required.
The calculations are prompted by running the Predictors either separately or by configuring
the "Scheduler" app to run all Predictors at the same time.

2b.2 DHIS2 configuration guide


The configuration of this Default Data Entry form uses "Disaggregation categories" as this is
technically the only way to display a table for recording data in the DHIS2 Capture app on a
mobile device. The results of the Predictor calculations are "assigned" to the respective
Category Options.

CATEGORY System default settings

Name:
- "Closing balance"
- "Opening balance"
- "Stock correction"
- "Stock discarded"
Category option - "Stock discrepancy"
- "Stock distributed"
- "Stock on hand"
- "Stock received"
- "Stock redistributed"
(Not shared).

9
2b Monthly stock data recording and calculation / "aggregate" data entry form

Name: "Monthly stock report - Data collection"


Data dimension type: "Disaggregation"
Assigned Category option in the following order:
- "Opening balance"
- "Stock received"
- "Stock distributed"
Category - "Stock redistributed"
- "Stock discarded"
- "Stock on hand"
- "Closing balance"
- "Stock discrepancy"
- "Stock correction"
(Not shared).

Name: "Monthly stock report - Data collection and calculation"


Data dimension type: "Disaggregation"
Category
Skip category total in reports: tag
combination
Categories: "Monthly stock report - Data collection and calculation"
(Not shared).

Name (examples only, configure according to national drug list):


- "CLOXACILLIN, 250 mg, caps. - CL"
- "FOLIC ACID, 5 mg, tab. - CL"
- "METRONIDAZOLE, 500 mg, tab. - CL"
- "ORAL REHYDRATION SALTS (O.R.S.), sachet 20.5 g/1 L - CL"
- "PARACETAMOL (acetaminophen), 500 mg, tab. - CL"
- "SALBUTAMOL, 0.1mg/puff, 200 puffs, inhaler - CL"
Data element
Domain type (*): "Aggregate"
Value type (*): "Integer"
Aggregation type (*): "Sum"
Store zero data values: tag
Category combination (*): "Monthly stock report - Data collection and
calculation"
(Not shared).

10
2b Monthly stock data recording and calculation / "aggregate" data entry form

Name: "Monthly stock report - Data recording and calculation"


Color: "#00838F"
Icon:

Expiry days: "5"


Open future periods for data entry: "1"
Days after period to qualify for timely submission: "15"
Period type (*): "Monthly"
Category combination (*): "None"
Data set Render sections as tabs: tag
Data elements, assign:
- "CLOXACILLIN, 250 mg, caps. - CL"
- "FOLIC ACID, 5 mg, tab. - CL"
- "METRONIDAZOLE, 500 mg, tab. - CL"
- "ORAL REHYDRATION SALTS (O.R.S.), sachet 20.5 g/1 L - CL"
- "PARACETAMOL (acetaminophen), 500 mg, tab. - CL"
- "SALBUTAMOL, 0.1mg/puff, 200 puffs, inhaler - CL"
Organisation units: select as required
Sharing settings: share with users or user groups as required

Name: "Number (Factor 1)"


Indicator type
Factor: "1"

11
2b Monthly stock data recording and calculation / "aggregate" data entry form

Name: "Stockouts"
Short name: "Stockouts"
Description: "Number of items with a stockout"
Numerator description: "Stockouts - Numerator"
Numerator: [Item 1.Stock on hand]
if(#{uwQn42CZ5qI.eKdBeWyrmPN}==0,1,0)+
if(#{Ev8PDcJ9I5X.eKdBeWyrmPN}==0,1,0)+
if(#{irAGhTCJcO8.eKdBeWyrmPN}==0,1,0)+
if(#{Z4bjHvGS6aH.iIC4YhgrxQY}==0,1,0)+
if(#{Csg4rTaIYDj.eKdBeWyrmPN}==0,1,0)+
if(#{mIYcOnLcqes.eKdBeWyrmPN}==0,1,0)
Denominator: "1"
Name: "0-1 months"
Short name: "0-1 months"
Description: "Number of items with a coverage time of 0-1 months"
Numerator description: "0-1 months - Numerator"
Numerator: [Item 1.Stock on hand / Item 1.Stock.distributed>0 && Item 1.Stock
on hand / Item 1.Stock.distributed<1]
Indicator if(#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}>0 &&
#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}<1,1,0)+
if(#{Ev8PDcJ9I5X.eKdBeWyrmPN}/#{Ev8PDcJ9I5X.VCzZmn4Xpjg}>0 &&
#{Ev8PDcJ9I5X.eKdBeWyrmPN}/#{Ev8PDcJ9I5X.VCzZmn4Xpjg}<1,1,0)+
if(#{irAGhTCJcO8.eKdBeWyrmPN}/#{irAGhTCJcO8.VCzZmn4Xpjg}>0 &&
#{irAGhTCJcO8.eKdBeWyrmPN}/#{irAGhTCJcO8.VCzZmn4Xpjg}<1,1,0)+
if(#{VNT5TGE3uBQ.eKdBeWyrmPN}/#{VNT5TGE3uBQ.VCzZmn4Xpjg}>0 &&
#{VNT5TGE3uBQ.eKdBeWyrmPN}/#{VNT5TGE3uBQ.VCzZmn4Xpjg}<1,1,0)+
if(#{Csg4rTaIYDj.eKdBeWyrmPN}/#{Csg4rTaIYDj.VCzZmn4Xpjg}>0 &&
#{Csg4rTaIYDj.eKdBeWyrmPN}/#{Csg4rTaIYDj.VCzZmn4Xpjg}<1,1,0)+
if(#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}>0 &&
#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}<1,1,0)
Denominator: "1"
Name: "1-2 months"
Short name: "1-2 months"
Description: "Number of items with a coverage time of 1-2 months"
Numerator description: "1-2 months - Numerator"
Numerator: [Item 1.Stock on hand / Item 1.Stock.distributed>=1 && Item 1.Stock
on hand / Item 1.Stock.distributed<2]
if(#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}>=1 &&
#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}<2,1,0)+

12
2b Monthly stock data recording and calculation / "aggregate" data entry form

if(#{Ev8PDcJ9I5X.eKdBeWyrmPN}/#{Ev8PDcJ9I5X.VCzZmn4Xpjg}>=1 &&
#{Ev8PDcJ9I5X.eKdBeWyrmPN}/#{Ev8PDcJ9I5X.VCzZmn4Xpjg}<2,1,0)+
if(#{irAGhTCJcO8.eKdBeWyrmPN}/#{irAGhTCJcO8.VCzZmn4Xpjg}>=1 &&
#{irAGhTCJcO8.eKdBeWyrmPN}/#{irAGhTCJcO8.VCzZmn4Xpjg}<2,1,0)+
if(#{VNT5TGE3uBQ.eKdBeWyrmPN}/#{VNT5TGE3uBQ.VCzZmn4Xpjg}>=1 &&
#{VNT5TGE3uBQ.eKdBeWyrmPN}/#{VNT5TGE3uBQ.VCzZmn4Xpjg}<2,1,0)+
if(#{Csg4rTaIYDj.eKdBeWyrmPN}/#{Csg4rTaIYDj.VCzZmn4Xpjg}>=1 &&
#{Csg4rTaIYDj.eKdBeWyrmPN}/#{Csg4rTaIYDj.VCzZmn4Xpjg}<2,1,0)+
if(#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}>=1 &&
#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}<2,1,0)
Denominator: "1"
Name: "2-3 months"
Short name: "2-3 months"
Description: "Number of items with a coverage time of 2-3 months"
Numerator description: "2-3 months - Numerator"
Numerator: [Item 1.Stock on hand / Item 1.Stock.distributed>=2 && Item 1.Stock
on hand / Item 1.Stock.distributed<3]
if(#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}>=2 &&
#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}<3,1,0)+
if(#{Ev8PDcJ9I5X.eKdBeWyrmPN}/#{Ev8PDcJ9I5X.VCzZmn4Xpjg}>=2 &&
#{Ev8PDcJ9I5X.eKdBeWyrmPN}/#{Ev8PDcJ9I5X.VCzZmn4Xpjg}<3,1,0)+
if(#{irAGhTCJcO8.eKdBeWyrmPN}/#{irAGhTCJcO8.VCzZmn4Xpjg}>=2 &&
#{irAGhTCJcO8.eKdBeWyrmPN}/#{irAGhTCJcO8.VCzZmn4Xpjg}<3,1,0)+
if(#{VNT5TGE3uBQ.eKdBeWyrmPN}/#{VNT5TGE3uBQ.VCzZmn4Xpjg}>=2 &&
#{VNT5TGE3uBQ.eKdBeWyrmPN}/#{VNT5TGE3uBQ.VCzZmn4Xpjg}<3,1,0)+
if(#{Csg4rTaIYDj.eKdBeWyrmPN}/#{Csg4rTaIYDj.VCzZmn4Xpjg}>=2 &&
#{Csg4rTaIYDj.eKdBeWyrmPN}/#{Csg4rTaIYDj.VCzZmn4Xpjg}<3,1,0)+
if(#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}>=2 &&
#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}<3,1,0)
Denominator: "1"
Name: "3-4 months"
Short name: "3-4 months"
Description: "Number of items with a coverage time of 3-4 months"
Numerator description: "3-4 months - Numerator"
Numerator: [Item 1.Stock on hand / Item 1.Stock.distributed>=3 && Item 1.Stock
on hand / Item 1.Stock.distributed<4]
if(#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}>=3 &&
#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}<4,1,0)+
if(#{Ev8PDcJ9I5X.eKdBeWyrmPN}/#{Ev8PDcJ9I5X.VCzZmn4Xpjg}>=3 &&
#{Ev8PDcJ9I5X.eKdBeWyrmPN}/#{Ev8PDcJ9I5X.VCzZmn4Xpjg}<4,1,0)+
if(#{irAGhTCJcO8.eKdBeWyrmPN}/#{irAGhTCJcO8.VCzZmn4Xpjg}>=3 &&
#{irAGhTCJcO8.eKdBeWyrmPN}/#{irAGhTCJcO8.VCzZmn4Xpjg}<4,1,0)+

13
2b Monthly stock data recording and calculation / "aggregate" data entry form

if(#{VNT5TGE3uBQ.eKdBeWyrmPN}/#{VNT5TGE3uBQ.VCzZmn4Xpjg}>=3 &&
#{VNT5TGE3uBQ.eKdBeWyrmPN}/#{VNT5TGE3uBQ.VCzZmn4Xpjg}<4,1,0)+
if(#{Csg4rTaIYDj.eKdBeWyrmPN}/#{Csg4rTaIYDj.VCzZmn4Xpjg}>=3 &&
#{Csg4rTaIYDj.eKdBeWyrmPN}/#{Csg4rTaIYDj.VCzZmn4Xpjg}<4,1,0)+
if(#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}>=3 &&
#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}<4,1,0)
Denominator: "1"
Name: "4-5 months"
Short name: "4-5 months"
Description: "Number of items with a coverage time of 4-5 months"
Numerator description: "4-5 months - Numerator"
Numerator: [Item 1.Stock on hand / Item 1.Stock.distributed>=4 && Item 1.Stock
on hand / Item 1.Stock.distributed<5]
if(#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}>=4 &&
#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}<5,1,0)+
if(#{Ev8PDcJ9I5X.eKdBeWyrmPN}/#{Ev8PDcJ9I5X.VCzZmn4Xpjg}>=4 &&
#{Ev8PDcJ9I5X.eKdBeWyrmPN}/#{Ev8PDcJ9I5X.VCzZmn4Xpjg}<5,1,0)+
if(#{irAGhTCJcO8.eKdBeWyrmPN}/#{irAGhTCJcO8.VCzZmn4Xpjg}>=4 &&
#{irAGhTCJcO8.eKdBeWyrmPN}/#{irAGhTCJcO8.VCzZmn4Xpjg}<5,1,0)+
if(#{VNT5TGE3uBQ.eKdBeWyrmPN}/#{VNT5TGE3uBQ.VCzZmn4Xpjg}>=4 &&
#{VNT5TGE3uBQ.eKdBeWyrmPN}/#{VNT5TGE3uBQ.VCzZmn4Xpjg}<5,1,0)+
if(#{Csg4rTaIYDj.eKdBeWyrmPN}/#{Csg4rTaIYDj.VCzZmn4Xpjg}>=4 &&
#{Csg4rTaIYDj.eKdBeWyrmPN}/#{Csg4rTaIYDj.VCzZmn4Xpjg}<5,1,0)+
if(#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}>=4 &&
#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}<5,1,0)
Denominator: "1"
Name: "5-6 months"
Short name: "5-6 months"
Description: "Number of items with a coverage time of 5-6 months"
Numerator description: "5-6 months - Numerator"
Numerator: [Item 1.Stock on hand / Item 1.Stock.distributed>=5 && Item 1.Stock
on hand / Item 1.Stock.distributed<6]
if(#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}>=5 &&
#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}<6,1,0)+
if(#{Ev8PDcJ9I5X.eKdBeWyrmPN}/#{Ev8PDcJ9I5X.VCzZmn4Xpjg}>=5 &&
#{Ev8PDcJ9I5X.eKdBeWyrmPN}/#{Ev8PDcJ9I5X.VCzZmn4Xpjg}<6,1,0)+
if(#{irAGhTCJcO8.eKdBeWyrmPN}/#{irAGhTCJcO8.VCzZmn4Xpjg}>=5 &&
#{irAGhTCJcO8.eKdBeWyrmPN}/#{irAGhTCJcO8.VCzZmn4Xpjg}<6,1,0)+
if(#{VNT5TGE3uBQ.eKdBeWyrmPN}/#{VNT5TGE3uBQ.VCzZmn4Xpjg}>=5 &&
#{VNT5TGE3uBQ.eKdBeWyrmPN}/#{VNT5TGE3uBQ.VCzZmn4Xpjg}<6,1,0)+
if(#{Csg4rTaIYDj.eKdBeWyrmPN}/#{Csg4rTaIYDj.VCzZmn4Xpjg}>=5 &&
#{Csg4rTaIYDj.eKdBeWyrmPN}/#{Csg4rTaIYDj.VCzZmn4Xpjg}<6,1,0)+

14
2b Monthly stock data recording and calculation / "aggregate" data entry form

if(#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}>=5 &&
#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}<6,1,0)
Denominator: "1"
Name: "6-7 months"
Short name: "6-7 months"
Description: "Number of items with a coverage time of 6-7 months"
Numerator description: "6-7 months - Numerator"
Numerator: [Item 1.Stock on hand / Item 1.Stock.distributed>=6 && Item 1.Stock
on hand / Item 1.Stock.distributed<7]
if(#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}>=6 &&
#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}<7,1,0)+
if(#{Ev8PDcJ9I5X.eKdBeWyrmPN}/#{Ev8PDcJ9I5X.VCzZmn4Xpjg}>=6 &&
#{Ev8PDcJ9I5X.eKdBeWyrmPN}/#{Ev8PDcJ9I5X.VCzZmn4Xpjg}<7,1,0)+
if(#{irAGhTCJcO8.eKdBeWyrmPN}/#{irAGhTCJcO8.VCzZmn4Xpjg}>=6 &&
#{irAGhTCJcO8.eKdBeWyrmPN}/#{irAGhTCJcO8.VCzZmn4Xpjg}<7,1,0)+
if(#{VNT5TGE3uBQ.eKdBeWyrmPN}/#{VNT5TGE3uBQ.VCzZmn4Xpjg}>=6 &&
#{VNT5TGE3uBQ.eKdBeWyrmPN}/#{VNT5TGE3uBQ.VCzZmn4Xpjg}<7,1,0)+
if(#{Csg4rTaIYDj.eKdBeWyrmPN}/#{Csg4rTaIYDj.VCzZmn4Xpjg}>=6 &&
#{Csg4rTaIYDj.eKdBeWyrmPN}/#{Csg4rTaIYDj.VCzZmn4Xpjg}<7,1,0)+
if(#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}>=6 &&
#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}<7,1,0)
Denominator: "1"
Name: "7-8 months"
Short name: "7-8 months"
Description: "Number of items with a coverage time of 7-8 months"
Numerator description: "7-8 months - Numerator"
Numerator: [Item 1.Stock on hand / Item 1.Stock.distributed>=7 && Item 1.Stock
on hand / Item 1.Stock.distributed<8]
if(#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}>=7 &&
#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}<8,1,0)+
if(#{Ev8PDcJ9I5X.eKdBeWyrmPN}/#{Ev8PDcJ9I5X.VCzZmn4Xpjg}>=7 &&
#{Ev8PDcJ9I5X.eKdBeWyrmPN}/#{Ev8PDcJ9I5X.VCzZmn4Xpjg}<8,1,0)+
if(#{irAGhTCJcO8.eKdBeWyrmPN}/#{irAGhTCJcO8.VCzZmn4Xpjg}>=7 &&
#{irAGhTCJcO8.eKdBeWyrmPN}/#{irAGhTCJcO8.VCzZmn4Xpjg}<8,1,0)+
if(#{VNT5TGE3uBQ.eKdBeWyrmPN}/#{VNT5TGE3uBQ.VCzZmn4Xpjg}>=7 &&
#{VNT5TGE3uBQ.eKdBeWyrmPN}/#{VNT5TGE3uBQ.VCzZmn4Xpjg}<8,1,0)+
if(#{Csg4rTaIYDj.eKdBeWyrmPN}/#{Csg4rTaIYDj.VCzZmn4Xpjg}>=7 &&
#{Csg4rTaIYDj.eKdBeWyrmPN}/#{Csg4rTaIYDj.VCzZmn4Xpjg}<8,1,0)+
if(#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}>=7 &&
#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}<8,1,0)
Denominator: "1"
Name: "8-9 months"

15
2b Monthly stock data recording and calculation / "aggregate" data entry form

Short name: "8-9 months"


Description: "Number of items with a coverage time of 8-9 months"
Numerator description: "8-9 months - Numerator"
Numerator: [Item 1.Stock on hand / Item 1.Stock.distributed>=8 && Item 1.Stock
on hand / Item 1.Stock.distributed<9]
if(#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}>=8 &&
#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}<9,1,0)+
if(#{Ev8PDcJ9I5X.eKdBeWyrmPN}/#{Ev8PDcJ9I5X.VCzZmn4Xpjg}>=8 &&
#{Ev8PDcJ9I5X.eKdBeWyrmPN}/#{Ev8PDcJ9I5X.VCzZmn4Xpjg}<9,1,0)+
if(#{irAGhTCJcO8.eKdBeWyrmPN}/#{irAGhTCJcO8.VCzZmn4Xpjg}>=8 &&
#{irAGhTCJcO8.eKdBeWyrmPN}/#{irAGhTCJcO8.VCzZmn4Xpjg}<9,1,0)+
if(#{VNT5TGE3uBQ.eKdBeWyrmPN}/#{VNT5TGE3uBQ.VCzZmn4Xpjg}>=8 &&
#{VNT5TGE3uBQ.eKdBeWyrmPN}/#{VNT5TGE3uBQ.VCzZmn4Xpjg}<9,1,0)+
if(#{Csg4rTaIYDj.eKdBeWyrmPN}/#{Csg4rTaIYDj.VCzZmn4Xpjg}>=8 &&
#{Csg4rTaIYDj.eKdBeWyrmPN}/#{Csg4rTaIYDj.VCzZmn4Xpjg}<9,1,0)+
if(#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}>=8 &&
#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}<9,1,0)
Denominator: "1"
Name: "9-10 months"
Short name: "9-10 months"
Description: "Number of items with a coverage time of 9-10 months"
Numerator description: "9-10 months - Numerator"
Numerator: [Item 1.Stock on hand / Item 1.Stock.distributed>=9 && Item 1.Stock
on hand / Item 1.Stock.distributed<10]
if(#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}>=9 &&
#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}<10,1,0)+
if(#{Ev8PDcJ9I5X.eKdBeWyrmPN}/#{Ev8PDcJ9I5X.VCzZmn4Xpjg}>=9 &&
#{Ev8PDcJ9I5X.eKdBeWyrmPN}/#{Ev8PDcJ9I5X.VCzZmn4Xpjg}<10,1,0)+
if(#{irAGhTCJcO8.eKdBeWyrmPN}/#{irAGhTCJcO8.VCzZmn4Xpjg}>=9 &&
#{irAGhTCJcO8.eKdBeWyrmPN}/#{irAGhTCJcO8.VCzZmn4Xpjg}<10,1,0)+
if(#{VNT5TGE3uBQ.eKdBeWyrmPN}/#{VNT5TGE3uBQ.VCzZmn4Xpjg}>=9 &&
#{VNT5TGE3uBQ.eKdBeWyrmPN}/#{VNT5TGE3uBQ.VCzZmn4Xpjg}<10,1,0)+
if(#{Csg4rTaIYDj.eKdBeWyrmPN}/#{Csg4rTaIYDj.VCzZmn4Xpjg}>=9 &&
#{Csg4rTaIYDj.eKdBeWyrmPN}/#{Csg4rTaIYDj.VCzZmn4Xpjg}<10,1,0)+
if(#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}>=9 &&
#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}<10,1,0)
Denominator: "1"
Name: "10-11 months"
Short name: "10-11 months"
Description: "Number of items with a coverage time of 10-11 months"
Numerator description: "10-11 months - Numerator"

16
2b Monthly stock data recording and calculation / "aggregate" data entry form

Numerator: [Item 1.Stock on hand / Item 1.Stock.distributed>=10 && Item


1.Stock on hand / Item 1.Stock.distributed<11]
if(#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}>=10 &&
#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}<11,1,0)+
if(#{Ev8PDcJ9I5X.eKdBeWyrmPN}/#{Ev8PDcJ9I5X.VCzZmn4Xpjg}>=10 &&
#{Ev8PDcJ9I5X.eKdBeWyrmPN}/#{Ev8PDcJ9I5X.VCzZmn4Xpjg}<11,1,0)+
if(#{irAGhTCJcO8.eKdBeWyrmPN}/#{irAGhTCJcO8.VCzZmn4Xpjg}>=10 &&
#{irAGhTCJcO8.eKdBeWyrmPN}/#{irAGhTCJcO8.VCzZmn4Xpjg}<11,1,0)+
if(#{VNT5TGE3uBQ.eKdBeWyrmPN}/#{VNT5TGE3uBQ.VCzZmn4Xpjg}>=10 &&
#{VNT5TGE3uBQ.eKdBeWyrmPN}/#{VNT5TGE3uBQ.VCzZmn4Xpjg}<11,1,0)+
if(#{Csg4rTaIYDj.eKdBeWyrmPN}/#{Csg4rTaIYDj.VCzZmn4Xpjg}>=10 &&
#{Csg4rTaIYDj.eKdBeWyrmPN}/#{Csg4rTaIYDj.VCzZmn4Xpjg}<11,1,0)+
if(#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}>=10 &&
#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}<11,1,0)
Denominator: "1"
Name: "11-12 months"
Short name: "11-12 months"
Description: "Number of items with a coverage time of 11-12 months"
Numerator description: "11-12 months - Numerator"
Numerator: [Item 1.Stock on hand / Item 1.Stock.distributed>=11 && Item
1.Stock on hand / Item 1.Stock.distributed<12]
if(#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}>=11 &&
#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}<12,1,0)+
if(#{Ev8PDcJ9I5X.eKdBeWyrmPN}/#{Ev8PDcJ9I5X.VCzZmn4Xpjg}>=11 &&
#{Ev8PDcJ9I5X.eKdBeWyrmPN}/#{Ev8PDcJ9I5X.VCzZmn4Xpjg}<12,1,0)+
if(#{irAGhTCJcO8.eKdBeWyrmPN}/#{irAGhTCJcO8.VCzZmn4Xpjg}>=11 &&
#{irAGhTCJcO8.eKdBeWyrmPN}/#{irAGhTCJcO8.VCzZmn4Xpjg}<12,1,0)+
if(#{VNT5TGE3uBQ.eKdBeWyrmPN}/#{VNT5TGE3uBQ.VCzZmn4Xpjg}>=11 &&
#{VNT5TGE3uBQ.eKdBeWyrmPN}/#{VNT5TGE3uBQ.VCzZmn4Xpjg}<12,1,0)+
if(#{Csg4rTaIYDj.eKdBeWyrmPN}/#{Csg4rTaIYDj.VCzZmn4Xpjg}>=11 &&
#{Csg4rTaIYDj.eKdBeWyrmPN}/#{Csg4rTaIYDj.VCzZmn4Xpjg}<12,1,0)+
if(#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}>=11 &&
#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}<12,1,0)
Denominator: "1"
Name: "1-2 years"
Short name: "1-2 years"
Description: "Number of items with a coverage time of 1-2 years"
Numerator description: "1-2 years - Numerator"
Numerator: [Item 1.Stock on hand / Item 1.Stock.distributed>=12 && Item
1.Stock on hand / Item 1.Stock.distributed<24]
if(#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}>=12 &&
#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}<24,1,0)+

17
2b Monthly stock data recording and calculation / "aggregate" data entry form

if(#{Ev8PDcJ9I5X.eKdBeWyrmPN}/#{Ev8PDcJ9I5X.VCzZmn4Xpjg}>=12 &&
#{Ev8PDcJ9I5X.eKdBeWyrmPN}/#{Ev8PDcJ9I5X.VCzZmn4Xpjg}<24,1,0)+
if(#{irAGhTCJcO8.eKdBeWyrmPN}/#{irAGhTCJcO8.VCzZmn4Xpjg}>=12 &&
#{irAGhTCJcO8.eKdBeWyrmPN}/#{irAGhTCJcO8.VCzZmn4Xpjg}<24,1,0)+
if(#{VNT5TGE3uBQ.eKdBeWyrmPN}/#{VNT5TGE3uBQ.VCzZmn4Xpjg}>=12 &&
#{VNT5TGE3uBQ.eKdBeWyrmPN}/#{VNT5TGE3uBQ.VCzZmn4Xpjg}<24,1,0)+
if(#{Csg4rTaIYDj.eKdBeWyrmPN}/#{Csg4rTaIYDj.VCzZmn4Xpjg}>=12 &&
#{Csg4rTaIYDj.eKdBeWyrmPN}/#{Csg4rTaIYDj.VCzZmn4Xpjg}<24,1,0)+
if(#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}>=12 &&
#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}<24,1,0)
Denominator: "1"
Name: "2-3 years"
Short name: "2-3 years"
Description: "Number of items with a coverage time of 2-3 years"
Numerator description: "2-3 years - Numerator"
Numerator: [Item 1.Stock on hand / Item 1.Stock.distributed>=24 && Item
1.Stock on hand / Item 1.Stock.distributed<36]
if(#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}>=24 &&
#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}<36,1,0)+
if(#{Ev8PDcJ9I5X.eKdBeWyrmPN}/#{Ev8PDcJ9I5X.VCzZmn4Xpjg}>=24 &&
#{Ev8PDcJ9I5X.eKdBeWyrmPN}/#{Ev8PDcJ9I5X.VCzZmn4Xpjg}<36,1,0)+
if(#{irAGhTCJcO8.eKdBeWyrmPN}/#{irAGhTCJcO8.VCzZmn4Xpjg}>=24 &&
#{irAGhTCJcO8.eKdBeWyrmPN}/#{irAGhTCJcO8.VCzZmn4Xpjg}<36,1,0)+
if(#{VNT5TGE3uBQ.eKdBeWyrmPN}/#{VNT5TGE3uBQ.VCzZmn4Xpjg}>=24 &&
#{VNT5TGE3uBQ.eKdBeWyrmPN}/#{VNT5TGE3uBQ.VCzZmn4Xpjg}<36,1,0)+
if(#{Csg4rTaIYDj.eKdBeWyrmPN}/#{Csg4rTaIYDj.VCzZmn4Xpjg}>=24 &&
#{Csg4rTaIYDj.eKdBeWyrmPN}/#{Csg4rTaIYDj.VCzZmn4Xpjg}<36,1,0)+
if(#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}>=24 &&
#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}<36,1,0)
Denominator: "1"
Name: ">3 years"
Short name: ">3 years"
Description: "Number of items with a coverage time of >3 years"
Numerator description: ">3 years - Numerator"
Numerator: [Item 1.Stock on hand / Item 1.Stock.distributed>=36]
if(#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}>=36,1,0)+
if(#{Ev8PDcJ9I5X.eKdBeWyrmPN}/#{Ev8PDcJ9I5X.VCzZmn4Xpjg}>=36,1,0)+
if(#{irAGhTCJcO8.eKdBeWyrmPN}/#{irAGhTCJcO8.VCzZmn4Xpjg}>=36,1,0)+
if(#{VNT5TGE3uBQ.eKdBeWyrmPN}/#{VNT5TGE3uBQ.VCzZmn4Xpjg}>=36,1,0)+
if(#{Csg4rTaIYDj.eKdBeWyrmPN}/#{Csg4rTaIYDj.VCzZmn4Xpjg}>=36,1,0)+
if(#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}>=36,1,0)

18
2b Monthly stock data recording and calculation / "aggregate" data entry form

Denominator: "1"
Name: "CLOXACILLIN, 250 mg, caps. - CL / Coverage time"
Short name: "CLOXACILLIN, 250 mg, caps. - CL / Coverage time"
Description: "CLOXACILLIN, 250 mg, caps. - CL / Coverage time"
Numerator description: "CLOXACILLIN, 250 mg, caps. - CL / Coverage time"
#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}
Denominator: "1"
Name: "FOLIC ACID, 5 mg, tab. - CL / Coverage time"
Short name: "CLOXACILLIN, 250 mg, caps. - CL / Coverage time"
Description: "CLOXACILLIN, 250 mg, caps. - CL / Coverage time"
Numerator description: "CLOXACILLIN, 250 mg, caps. - CL / Coverage time"
#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}
Denominator: "1"
Name: "METRONIDAZOLE, 500 mg, tab. - CL / Coverage time"
Short name: "METRONIDAZOLE, 500 mg, tab. - CL / Coverage time"
Description: "METRONIDAZOLE, 500 mg, tab. - CL / Coverage time"
Numerator description: "METRONIDAZOLE, 500 mg, tab. - CL / Coverage time"
#{uwQn42CZ5qI.eKdBeWyrmPN}/#{uwQn42CZ5qI.VCzZmn4Xpjg}
Denominator: "1"
Name: "ORAL REHYDRATION SALTS (O.R.S.), sachet 20.5 g/1 L - CL / Coverage
time"
Short name: "ORAL REHYDRATION SALTS (O.R.S.), sachet 20.5 g/1 L - CL /
Coverage time"
Description: "ORAL REHYDRATION SALTS (O.R.S.), sachet 20.5 g/1 L - CL /
Coverage time"
Numerator description: "ORAL REHYDRATION SALTS (O.R.S.), sachet 20.5 g/1 L -
CL / Coverage time"
#{Z4bjHvGS6aH.iIC4YhgrxQY}/#{Z4bjHvGS6aH.zogrUrI7Crs}
Denominator: "1"
Name: "PARACETAMOL (acetaminophen), 500 mg, tab. - CL / Coverage time"
Short name: "PARACETAMOL (acetaminophen), 500 mg, tab. - CL / Coverage
time"
Description: "PARACETAMOL (acetaminophen), 500 mg, tab. - CL / Coverage
time"
Numerator description: "PARACETAMOL (acetaminophen), 500 mg, tab. - CL /
Coverage time"
#{Nn1L7CNEtC8.iIC4YhgrxQY}/#{Nn1L7CNEtC8.zogrUrI7Crs}
Denominator: "1"
Name: "SALBUTAMOL, 0.1mg/puff, 200 puffs, inhaler - CL / Coverage time"
Short name: "SALBUTAMOL, 0.1mg/puff, 200 puffs, inhaler - CL / Coverage time"

19
2b Monthly stock data recording and calculation / "aggregate" data entry form

Description: "SALBUTAMOL, 0.1mg/puff, 200 puffs, inhaler - CL / Coverage time"


Numerator description: "SALBUTAMOL, 0.1mg/puff, 200 puffs, inhaler - CL /
Coverage time"
#{mIYcOnLcqes.eKdBeWyrmPN}/#{mIYcOnLcqes.VCzZmn4Xpjg}
Denominator: "1"

20
2b Monthly stock data recording and calculation / "aggregate" data entry form

Name: "Stock discrepancy"


Code: "STOCK DISCREPANCY"
Legend item "Negative"
- Name: "Negative"
- Start value: "-1000000"
- End value: "0"
- Colour: #8411D7
Legend item "Correct stock"
- Name: "Correct stock"
- Start value: "0"
- End value: "1"
- Colour: #68FE4C
Legend item "Positive"
- Name: "Positive"
- Start value: "1"
- End value: "1000000"
- Colour: #FF2000
Name: "Stock coverage time"
Legend Code: "STOCK_COVERAGE_TIME"
Legend item "Stockout"
- Name: "Stockout"
- Start value: "0"
- End value: "0.00001"
- Colour: #EE391E
Legend item "Understock"
- Name: "Understock"
- Start value: "0.0001"
- End value: "2"
- Colour: #FEFB08
Legend item "Adequate stock"
- Name: "Adequate stock"
- Start value: "2"
- End value: "3"
- Colour: #0BFF00
Legend item "Overstock"
- Name: "Overstock"
- Start value: "3"

21
2b Monthly stock data recording and calculation / "aggregate" data entry form

- End value: "12"


- Colour: #0011FF
Legend item "Excessive stock"
- Name: "Excessive stock"
- Start value: "12"
- End value: "1000"
- Colour: #DC00FF

22
2b Monthly stock data recording and calculation / "aggregate" data entry form

The following 3 Predictors need to be created for each Data element separately:
Name: CLOXACILLIN, 250 mg, caps. - CL / Closing balance
Output data element (*); CLOXACILLIN, 250 mg, caps. - CL
Output category option combo: "Closing balance"
Generator:
#{uwQn42CZ5qI.DDi5WPwhtVZ}
+#{uwQn42CZ5qI.FhxQW61lsG7}
-#{uwQn42CZ5qI.VCzZmn4Xpjg}
-#{uwQn42CZ5qI.gSTwuZJQ2sl}
-#{uwQn42CZ5qI.NwUY4l4x6Gl}
-#{uwQn42CZ5qI.fzhyKGI9Pa0}
CLOXACILLIN, 250 mg, caps. - CL Opening balance +CLOXACILLIN, 250 mg, caps. -
CL Stock received -CLOXACILLIN, 250 mg, caps. - CL Stock distributed
-CLOXACILLIN, 250 mg, caps. - CL Stock redistributed -CLOXACILLIN, 250 mg, caps.
- CL Stock discarded -CLOXACILLIN, 250 mg, caps. - CL Stock correction
-
Name: CLOXACILLIN, 250 mg, caps. - CL / Opening balance
Predictor Output data element (*); CLOXACILLIN, 250 mg, caps. - CL
Output category option combo: "Opening balance"
Generator: avg(#{uwQn42CZ5qI.eKdBeWyrmPN})
avg(CLOXACILLIN, 250 mg, caps. - CL Stock on hand)
-
Name: CLOXACILLIN, 250 mg, caps. - CL / Stock discrepancy
Output data element (*); CLOXACILLIN, 250 mg, caps. - CL
Output category option combo: "Stock discrepancy"
Generator: #{uwQn42CZ5qI.eKdBeWyrmPN}-#{uwQn42CZ5qI.Q2LQDdGMNXm}
CLOXACILLIN, 250 mg, caps. - CL Stock on hand-CLOXACILLIN, 250 mg, caps. - CL
Closing balance
-
Period type (*): Monthly
Organisation unit levels: "Facility"
Organisation units providing data (*): "At selected level(s) only"
Sequential skip count (*): "1"
Annual sample count (*): "0"

23
2b Monthly stock data recording and calculation / "aggregate" data entry form

Name: "Monthly stock report - Recording and calculation"


Visualization type: "Pivot table"
Columns: "Your dimensions" / "Monthly stock reporting - Data collection and
calculation" (select all nine Category options)
Data visualizer
Rows:
- Data: select the Data elements as required
- Period: "Last 3 months"
Filter: Organisation Unit: select Organisation units as required

2b.3 DHIS2 user interfaces


Web portal / Data Entry form

Web portal / Data Visualizer


Monthly stock report - Data collection

Monthly stock report - Data collection and calculation

24
2b Monthly stock data recording and calculation / "aggregate" data entry form

25
2b Monthly stock data recording and calculation / "aggregate" data entry form

26
2b Monthly stock data recording and calculation / "aggregate" data entry form

Capture Android app

27
3 Real-Time Stock Management tool / Tracker Program

3 REAL-TIME STOCK MANAGEMENT TOOL / TRACKER PROGRAM


This Tracker Program provides a native, user-friendly DHIS2 solution for real-time stock
management and reporting of health care products.

3.1 Use case


The DHIS2-RTS provides a web and mobile app-based tool (with off-line capability), real-time
digital solution for stock management which can be integrated with national eLMIS systems for
managing stock replenishment as well as end-to-end supply chain analytics.
The system provides global, real-time stock and data visibility from healthcare facilities to
pharmacy staff as well as health and logistics staff at all levels of the supply chain regardless of
their physical location.
Staff at healthcare facilities replace data collection on paper or with spreadsheet applications
by recording data directly on mobile devices on-line (with off-line capability) using a dedicated
mobile device application. Staff at healthcare facilities or at the district level no longer have to
re-enter data provided by pharmacies into Excel files (or any other application) for calculating
monthly replenishment orders.
The current, paper- (or spreadsheet) based, workflow for replenishing pharmacies at assisted
healthcare facilities is replaced by a fully digital, integrated and systematic workflow which is
standardized across all healthcare facilities.

3.2 DHIS2 configuration


Xx
The following logic is used for configuring the metadata used for the Tracker Program:
Data element Represent the various transactions which affect the Stock on hand
calculations (receipt, distributions, corrections, count etc.)

Option set The “Deliver to” Data element uses the “Deliver to” Option Set which
lists the names of the different departments

Tracked entity The item attributes are Item code, description and the barcode (field
attribute for scanning)

Tracked entity type The item (health care product) is tracked

The “Previous stock balance” Data element is needed for the Program rules to temporarily
store Stock on hand values.
The Tracker Program uses a single repeatable Program stage named “Stock on hand”:

28
3 Real-Time Stock Management tool / Tracker Program

The table below summarizes the main metadata configurations and settings for the Tracker
Program on which the customized DHIS2-RTS is based and using "in the background". While
not visible to users it is indispensable and critical for customizing the configuration to individual
countries as well as for managing data such as adding or removing items (health care
products).

CATEGORY System default settings

According to national protocols and policies and/or existing DHIS2


Organisation unit
configuration

29
3 Real-Time Stock Management tool / Tracker Program

Name (*):
- "Deliver to": “Text” / "Option set" = "Deliver to"
- "Previous stock balance": "Positive integer"
- "Stock correction": "Number"
- "Stock count": "Positive integer"
- "Stock discard": "Positive integer"
- "Stock distribution": "Positive integer"
- "Stock on hand": "Positive integer"
- "Stock received": "Positive integer"
Domain type (*): "Tracker"
Value type (*): see above
Store zero data values: tag
Primary Details / Name: "Deliver to"
Primary Details / Value type: "Text"
Options / Name:
Data element - "Diagnostic imaging (X-ray)" / "diagn_imag"
- "Emergency Room" / "emerg_room"
- "High Dependency Unit" / "hi_dep_unit"
- "Inpatient Medical Department" / "inp_med_dep"
- "Inpatient Surgical Department" / "inp_surg_dep"
- "Laboratory Department" / "lab_dep"
- "Mortuary" / "mort"
- "Obstetrics an Gynaecology services" / "obs_gyn"
- "Operating Theatre" / "op_theatre"
- "Out-Patient Department" / "outpat_dep"
- "Paediatric Department" / "paed_dep"
- "Physiotherapy Department" / "phys_dep"
- "Recovery Room" / "rec_room"
- "Sanitation and Housekeeping" / "san_housek"
- "Sterilization Department" / "sterii_dep"
- "Transfusion services" / "transf_serv"

30
3 Real-Time Stock Management tool / Tracker Program

Primary Details / Name: "Deliver to"


Primary Details / Value type: "Text"
Options / Name:
- "Diagnostic imaging (X-ray)" / "diagn_imag"
- "Emergency Room" / "emerg_room"
- "High Dependency Unit" / "hi_dep_unit"
- "Inpatient Medical Department" / "inp_med_dep"
- "Inpatient Surgical Department" / "inp_surg_dep"
- "Laboratory Department" / "lab_dep"
- "Mortuary" / "mort"
Option set
- "Obstetrics an Gynaecology services" / "obs_gyn"
- "Operating Theatre" / "op_theatre"
- "Out-Patient Department" / "outpat_dep"
- "Paediatric Department" / "paed_dep"
- "Physiotherapy Department" / "phys_dep"
- "Recovery Room" / "rec_room"
- "Sanitation and Housekeeping" / "san_housek"
- "Sterilization Department" / "sterii_dep"
- "Transfusion services" / "transf_serv"
- "Others" / "other"

Name:
- "Item barcode"
- "Item code"
Tracked entity attribute - "Item description"
"Value type (*)": "Text"
"Aggregation type (*)": "None"
"Unique": "Unique" / “Organisation unit“

31
3 Real-Time Stock Management tool / Tracker Program

Name: "Item"
"Minimum number of attributes required to search": "1"
"Feature type": "None"
"Tracked entity type attributes":
- Item code / not “Searchable”
Tracked entity type
- Item description / not “Searchable”
- "Display in list": unchecked
- "Mandatory": unchecked
- "Searchable": see above
Note: “Item barcode” is intentionally not included here.

Program "Real-Time Stock management"

"Name (*)": "Real-Time Stock Management"


"Short name (*)": "Real-Time Stock Management"
"Tracked entity type (*)": "Item"
1 Program details "Display front page list": check (appears as white tick in a blue
square)
"Access level": "Open"
"Minimum number of attributes required to search": "1".

2 Enrolment details "Show incident date": check

3 Attributes

"Program tracked entity attributes":


- Item barcode
1 Assign attributes
- Item code
- Item description

2 Create registration form Leave blank

4 Program stages

Name: "Stock on Hand"


1 Stage Details "Scheduled days from start (*)": "0"
Repeatable: check (appears as white tick in a blue square)

32
3 Real-Time Stock Management tool / Tracker Program

Selected items:
- "Stock count"
- "Stock distribution"
- "Stock correction"
2 Assign data elements - "Stock discarded"
- "Stock received"
- "Stock on Hand"
- "Deliver to"
- "Previous stock balance"

BASIC: "Stock management":


- "Stock distribution"
- "Stock count"
- "Stock discarded"
3 Create data entry form
- "Stock received"
- "Stock on hand"
- "Deliver to"
- "Previous stock balance"

X Organisation units:
- “0001 CH Mahosot”
5 Access - “0002 CH Mittahap»
"Roles and Access": "Real-Time Stock Management"
"APPLY TO SELECTED STAGES": "Stock on Hand"

6 Notification Leave blank

Program rule

Program (*): “Real-Time Stock Management”


Name (*): "Assign Stock correction"
Condition: "d2:hasValue( #{Stock count} )”
Assign Stock correction Action: "Assign value"
Data element to assign to: "Stock on hand"
Expression to evaluate and assign: “#{Stock count}-#{Previous stock
balance}”

33
3 Real-Time Stock Management tool / Tracker Program

Program (*): “Real-Time Stock Management”


Name (*): "Assign Stock on Hand"
Condition: "true"

Assign Stock on hand Action: "Assign value"


Data element to assign to: "Stock on hand"
Expression to evaluate and assign: "#{Previous stock
balance}+#{Stock received}-#{Stock distribution}-#{Stock
discarded}"

Program (*): “Real-Time Stock Management”


Name (*): "Assign Stock correction"

Assign Stock on hand Condition: "d2:hasValue( #{Stock count} )”


correction Action: "Assign value"
Data element to assign to: "Stock on hand"
Expression to evaluate and assign: “#{Stock count}”

Name (*): "Assign previous stock balance"


Condition: "d2:hasValue( #{Initial stock on hand - Previous event} )"
Assign previous stock Action: "Assign value"
balance
Data element to assign to: "Previous Stock Balance"
Expression to evaluate and assign: "#{Initial stock on hand -
Previous event}"

Program (*): "Real-Time Stock Management"


Name / Data element
- "Initial stock on hand - Previous event": "Data element from
previous event" / “Stock on hand”
- "Previous stock balance": "Data element in current event" /
“Previous stock balance”
- "Stock correction": "Data element in current event" / “Stock on
hand”
Program rule variable - "Stock count": "Data element in current event"/ “Stock on hand”
- "Stock discarded": "Data element in current event" / “Stock
discarded”
- "Stock distribution": "Data element in current event" / “Stock
distribution”
- "Stock received": "Data element in current event" / “Stock
received”
Source type (*): see above
Data element: see above

34
3 Real-Time Stock Management tool / Tracker Program

Appearance > Program > Specific settings > Add a Program Setting
Select "Cold chain appliance lifecycle management"
Allow the user to create a TEI without searching: check (appears as
a white tick in a green box)

Android Settings app

Configure Program
General
- Program Types: "Logistics"
- Description: "Real-time stock management application"
- Program *: "Real-Time Stock Management"
Details
- Item Code *: "Item code"
- Item Description *: "Item description"
Use case configuration app - Stock on Hand *: "Stock on hand"
Transactions
- Distributed to *: "Deliver to"
- Distributed Stock *: "Stock distribution"
Corrected
- Corrected Stock *: "Stock correction"
- Stock Count *: "Stock count"
Discarded
- Discarded Stock *: "Stock discard"

Reports can be customized to the national requirements but, as a


Line Listing app
starting point, some essential reports are listed below.

35
3 Real-Time Stock Management tool / Tracker Program

Input
- Event
Program dimensions
- Program: Real-Time Stock Management
- Stage: Stock on Hand
Columns
- Event date: "Months this year"
- Deliver to (no condition)
- Item code (no condition)
- Item description (no condition)
Digital stock card
- Previous Stock Balance (no condition)
- Stock receipt (no condition)
- Stock distribution (no condition)
- Stock discard (no condition)
- Stock correction (no condition)
- Stock on hand (no condition)
Filter
- Organisation unit / "User organisation unit"
Options
- Style / Digit group separator: "Comma"

Input
- Event
Program dimensions
- Program: Real-Time Stock Management
- Stage: Stock on Hand
Columns
- Event date: "Months this year"
Transaction reports - Deliver to (no condition)
- Item code (no condition)
- Item description (no condition)
- Stock distribution (no condition)
Filter
- Organisation unit / "User organisation unit"
Options
- Style / Digit group separator: "Comma"

36
3 Real-Time Stock Management tool / Tracker Program

Input
- Enrollment (!)
Program dimensions
- Program: Real-Time Stock Management
Columns
- Item code (no condition)
- Item description (no condition)
- Stock on hand:
- - "Conditions": none
Current Stock on hand
- - "Repeated events": "Most recent events" = "1", "Oldest events"
= "0"
- Enrollment date: "Relative periods" and "Months": "This month"
and "Last 12 months"
Filter
- Organisation unit / "User organisation unit"
Options
- Style / Digit group separator: "Comma"
- Legend: "Choose a single legend for the entire visualization":
"Stockout"

Data Visualizer / Data


element

37
3 Real-Time Stock Management tool / Tracker Program

Name
DHIS2-RTS Monthly report - Summary
Type: "Pivot table"
Columns
"RTS - Monthly stock report" (from "Your Dimensions"):
- Previous stock balance
- Stock receipt
- Stock distribution
- Stock discard
- Stock correction
Monthly report - Summary
- Stock on hand
Rows
- Data: "Data Type" = "Data elements", then select all Data
elements with suffix "MTH"
- Period: "Fixed periods" and "Monthly", then select the last three
months (or more as required)
Filter
- Organisation unit: "0001 CH Mahosot"
Options
- Empty data: "Hide empty columns" and "Hide empty rows": check
both

38
3 Real-Time Stock Management tool / Tracker Program

Name
"DHIS2-RTS Monthly report - Detailed"
Type: "Pivot table"
Columns
"RTS - Monthly stock report" (from "Your Dimensions"):
- Previous stock balance
- Stock receipt
- "DIS - Diagn. imaging"
- "DIS - Emergency Room"
- "DIS - High Depend. Unit"
- "DIS - Housekeeping"
- "DIS - Inp. Med. Depart."
- "DIS - Inp. Surg. Depart."
- "DIS - Laboratory Depart."
- "DIS - Mortuary"
- "DIS - Obst. & Gynae."
- "DIS - OPD"
- "DIS - Oper. Theatre"
Monthly report - Detailed - "DIS - (Other)"
- "DIS - Paed. Dep."
- "DIS - Physioth. Dep."
- "DIS - Recovery Room"
- "DIS - Steril. Dep."
- "DIS - Transf. services"
- Stock distribution
- Stock discard
- Stock correction
- Stock on hand
Rows
- Data: "Data Type" = "Data elements", then select all Data
elements with suffix "MTH"
- Period: "Fixed periods" and "Monthly", then select January to
December 2023
Filter
- Organisation unit: "0001 CH Mahosot"
Options
- Empty data: "Hide empty columns" and "Hide empty rows": check
both

39
3 Real-Time Stock Management tool / Tracker Program

Name
DHIS2-RTS Daily report - Summary
Columns
"RTS - Monthly stock report" (from "Your Dimensions"):
- Previous stock balance
- Stock receipt
- Stock distribution
- Stock discard
- Stock correction
- Stock on hand
- Period: "Fixed periods" and "Monthly", then select the last three
Daily report - Summary months (or more as required)
Rows
Note that the order of these two fields can be switched either
displaying items with their chronological order of transactions or
displaying days in chronological order with the transactions of
every day in alphabetical order of the items.
- Data: "Data Type" = "Data elements", then select all Data
elements with suffix "DAY"
Filter
- Organisation unit: "0001 CH Mahosot"
Options
- Empty data: "Hide empty columns" and "Hide empty rows": check
both

40
3 Real-Time Stock Management tool / Tracker Program

Name
DHIS2-RTS Daily report - Detailed
Columns
"RTS - Monthly stock report" (from "Your Dimensions"):
- Previous stock balance
- Stock receipt
- "DIS - Diagn. imaging"
- "DIS - Emergency Room"
- "DIS - High Depend. Unit"
- "DIS - Housekeeping"
- "DIS - Inp. Med. Depart."
- "DIS - Inp. Surg. Depart."
- "DIS - Laboratory Depart."
- "DIS - Mortuary"
- "DIS - Obst. & Gynae."
- "DIS - OPD"
- "DIS - Oper. Theatre"

Daily report - Detailed - "DIS - (Other)"


- "DIS - Paed. Dep."
- "DIS - Physioth. Dep."
- "DIS - Recovery Room"
- "DIS - Steril. Dep."
- "DIS - Transf. services"
- Stock distribution
- Stock discard
- Stock correction
- Stock on hand
Rows
- Data: "Data Type" = "Data elements", then select all Data
elements with suffix "DAY"
- Period: "Fixed periods" and "Daily", then select all days for 2023
Filter
- Organisation unit: "0001 CH Mahosot"
Options
- Empty data: "Hide empty columns" and "Hide empty rows": check
both

41
3 Real-Time Stock Management tool / Tracker Program

3.3 DHIS2 user interfaces


Web portal / Capture app

Web portal / Line Listing app


Digital stock card

Stock distribution report

42
3 Real-Time Stock Management tool / Tracker Program

Current stock on hand

Web portal / Data Visualizer app


Monthly report - Summary

43
3 Real-Time Stock Management tool / Tracker Program

Monthly report - Detailed

Daily report - Summary

Daily report - Detailed

44
3 Real-Time Stock Management tool / Tracker Program

Capture Android app

45
4 Manual temperature recording / aggregate Data Entry form

4 MANUAL TEMPERATURE RECORDING / "aggregate" data entry form


This simple Default Data Entry allows digitizing the the twice daily manual temperature
recordings on paper forms, sharing and analysing them digitally on the DHIS2 database

4.1 Use case


Twice a day, in the morning when starting work and in the afternoon before leaving, the
storekeeper reads out the room temperature from the storeroom as well as each refrigerator
and freezer used for storing vaccines and other drug products and records the minimum,
current as well as maximum temperature on a mobile device. The storekeeper at the health
care facility as well as cold chain technicians or biomedical engineers anywhere else can access
the record and review the data table as well as the chart for assessing the cold chain.

4.2 DHIS2 configuration


The configuration of this Default Data Entry form uses "Disaggregation categories" as this is
technically the only way to display a table for recording data in the DHIS2 Capture app on a
mobile device. Every refrigerator, freezer or other place (such as a store room) where
temperature needs to be recorded is configured as a separate "Data element". The application
uses only simple and native DHIS2 functionality.

CATEGORY System default settings

Name:
- "Current"
- "Maximum"
- "Minimum"
Category option
- "Stock on hand"
- "Temperature recording - morning"
- "Temperature recording - afternoon"
Organisation units: assign as required

Name: "Temperature recording - Time of day"


Category options:
- "Temperature recording - morning"
- "Temperature recording - afternoon"
Name: "Temperature recording - Time of day"
Category Category options: "Temperature recording - Measurement"
- "Minimum"
- "Current"
- "Maximum"
Data dimension type: "Disaggregation"
(Not shared).

46
4 Manual temperature recording / aggregate Data Entry form

Name: "Monthly stock report - Data collection"


Data dimension type: "Disaggregation"
Category combination Skip category total in reports: tag
Categories: "Monthly stock report - Data collection"
(Not shared).

Name (examples only, configure according to national drug list):


- "Vaccine refrigerator 1"
- "Vaccine refrigerator 2"
Domain type (*): "Aggregate"
Data element Value type (*): "Number"
Aggregation type (*): "Sum"
Store zero data values: tag
Category combination (*): "Health facility - temperature recording"
(Not shared).

Name: "Health facility - Temperature monitoring"


Color: "#304FFE"
Icon:

Expiry days: "2"


Open future periods for data entry: "1"
Days after period to qualify for timely submission: "15"
Data set
Period type (*): "Daily"
Category combination (*): "None"
Data elements:
- "Vaccine refrigerator 1"
- "Vaccine refrigerator 2"
Organisation units: select as required
Sharing settings: share with users or user groups as required

47
4 Manual temperature recording / aggregate Data Entry form

Name: "Temperature monitoring - Daily reporting / Table"


Visualization type: "Pivot table"
Columns:
- Data: "Vaccine refrigerator 1", "Vaccine refrigerator 2"
- Your Dimensions:
- - "Temperature recording - Time of day": "Temperature recording
- morning", "Temperature recording - afternooon"
- - "Temperature recording - Measurement": "Minimum",
"Current", "Maximum"
Rows
- Period: "Last 30 days"
Data visualizer Filter: Organisation Unit: select Organisation units as required
+++
Name: "Temperature monitoring - Daily reporting / Chart / Vaccine
refrigerator 1 / Last 30 days#"
Visualization type: "Line"
Series: "Temperature recording - Measurement": "Minimum",
"Current", "Maximum"
Category:
- "Temperature recording - Time of day": "Temperature recording -
morning", "Temperature recording - afternoon"
- Period: "Relative periods" / "Days" / "Last 30 days"
Filter: Organisation Unit: select Organisation units as required

4.3 DHIS2 user interfaces


Web portal / Data Entry form

Web portal / Data Visualizer

48
4 Manual temperature recording / aggregate Data Entry form

Temperature monitoring - Daily reporting / Table

Capture Android app

49
5 Health care product catalogue / Tracker program

5 HEALTH CARE PRODUCT CATALOGUE / Tracker program


This simple Tracker program allows building and digitally sharing a simple product catalogue
with a picture of the product as well as essential product information which health
professionals can consult on a mobile device on- or offline.

5.1 Use case


A health worker who requires information on what health care products are available at the
respective health or requires details on the product searches on- or offline in the product
catalogue, views the image, consults the specifications and (where available) opens the link to
more detailed information.

5.2 DHIS2 configuration


The product catalogue is configured as a very simple "Tracker program" which uses only
simple, native DHIS2 functionality but without any actual program "stages".

CATEGORY System default settings

Name:
- "Electronic product information" / "URL"
- "Item barcode image" / "Text"
- "Item code" / "Text"
- "Item description" / "Text"
- "Item group code" / "Text"
- "Item group description" / "Text"
- "Product image" / "Image"
Tracked entity attribute
- "Regulations" / "Text"
- "Required storage temperature / ° Celsius" / "Text"
- "Secondary packaging quantity" / "Text"
- "WHO EML classification number" / "Text"
- "WHO EML classification description" / "Text"
Short Name (*): (same as name)
Value type (8*): (see above)
Aggregation type (*): "None"

50
5 Health care product catalogue / Tracker program

Name: "Health care product specifications"


Minimum number of attributes required to search: "1"
Feature type: "None"
Tracked entity type attributes, assign in the following order:
- "Product image" [ensures image is visible]
- "Item code"
- "Item group code"
- "Item group description"
- "Item description"
Tracked entity type - "Secondary packaging quantity"
- "WHO EML classification number"
- "WHO EML classification description"
- "Required storage temperature / ° Celsius"
- "Regulations"
- "Electronic product information" / URL
- "Item barcode image"
Display in list: tag all
Mandatory: tag all
Searchable: tag all

Program

1 Program details Name (*): "Health care product catalogue"


Short name (*): "Health care product catalogue"
Color: "#F50057"
Icon:

Tracked entity type (*): "Health care product specifications"


Category combination (*): "None"
Display front page list: tag
Access level: "Open"
Completed events expiry days: "0"
Expiry days: "0"
Minimum number of attributes required to search: "1"
Maximum number of tracked entity instance to return in search:
"0"

2 Enrollment details Show incident date: tag

51
5 Health care product catalogue / Tracker program

3 Attributes Assign attributes in the following order:


1 Assign attributes - "Item description" / "Default"
- "Item code" / "Bar code"
- "WHO EML classification description" / "Default"
- "Item group code" / "Default"
- "Item group description" / "Default"
- "WHO EML classification number" / "Default"
- "Secondary packaging quantity" / "Default"
- "Required storage temperature / ° Celsius" / "Default"
- "Regulations" / "Default"
- "Electronic product information" / "Default"
- "Item barcode image" / "Default"
- "Product image" / "Default"
Display in list: tag all
Mandatory: leave all untagged
Searchable: tag all
Mobile render type: (see above)

3 Attributes "SECTION" assign Tracked entity attributes in the following order:


2 Create registration - "Item code"
form
- "Item description"
- "Item group code"
- "Item group description"
- "Secondary packaging quantity"
- "WHO EML classification number"
- "WHO EML classification description"
- "Required storage temperature / ° Celsius"
- "Regulations"
- "Electronic product information"
- "Item barcode image"
- "Item barcode image"
- "Product image

4 Program stages (none)

5 Access Organisation units: assign as required

6 Notifications (none)

52
5 Health care product catalogue / Tracker program

5.3 DHIS2 user interfaces


Web portal / Capture app

Capture Android app

53
5 Health care product catalogue / Tracker program

6 BIOMEDICAL ENGINEERING LIFE CYCLE MANAGEMENT / Tracker program

This simple Tracker program provides an asset register similar to the product catalogue which
can be customized to any type of biomedical equipment, including but not limited to cold chain
equipment. In addition, this mobile application allows maintaining a detailed record of
installation, alarm record, equipment status, servicing, repair and disposal and thereby
covering the entire life cycle of biomedical equipment with records available to health care
facility staff off-line and to any other other authorized staff anywhere in the country through
the web portal.

6.1 Use case


The biomedical engineering or cold chain technician team establishes a detailed asset
register for each health care facility or uploads data from a national database. Biomedical
engineers or technicians document the installation, testing, commissioning and initial training
when setting up new pieces of equipment. Health staff and/or technicians carry out period
(daily/weekly/monthly) equipment checks and document alarm events, causes as well as
resolution. Biomedical engineers and/or technicians maintain a detailed record for each
servicing or repair which documents works, parts repaired or replaced and testing. Finally,
when the equipment reaches the end of its useful life time, the decommissioning and disposal
of equipment is documented before removing it from the asset register.

6.2 DHIS2 configuration


This application is configured as a "Tracker program" which uses only simple, native DHIS2
functionality. The number, description and contents of each of the stages can be very easily
customized to national needs without the need for any programming knowledge.

CATEGORY System default settings

54
5 Health care product catalogue / Tracker program

Name (for stages)


- "Biomedical equipment alarm" / "Long text"
- "Biomedical equipment disposal" / "Long text"
- "Biomedical equipment installation" / "Long text"
- "Biomedical equipment repair" / "Long text"
- "Biomedical equipment servicing" / "Long text"
- "Biomedical equipment status" / "Long text"
Name (for questions within stages)
Data element - "Alarm cause" / "Long text"
- "Alarm corrective action" / "Long text"
- "Alarm escalated and supervisor informed" / "Long text"
- "Alarm resolved" / "Long text"
- "Alarm type" / "Long text"
- "Audible or visible alarm" / "Long text"
- "Equipment switches on" / "Long text"
Domain type: "Tracker"
Value type: see above
Name:
- "Brand name" / "Text"
- "Country of Origin" / "Text"
- "Department of installation" / "Text"
- "Equipment code" / "Text"
- "Equipment image" / "Text"
Tracked entity type attributes - "Equipment model" / "Text"
- "Manufacturer" / "Text"
- "Provided by" / "Text"
- "Serial Number" / "Text"
- "Type of equipment" / "Text"
- "Warranty expiry date" / "Text"
Aggregation type (*): "None"

55
5 Health care product catalogue / Tracker program

Name: "Biomedical equipment life cycle management"


Enable tracked entity instance audit log: tag
Minimum number of attributes required to search: 1
Maximum number of tracked entity instances to return in search:
100
Tracked entity type attributes (assign in the following order):
- "Equipment image" / "Text"
- "Type of equipment" / "Text"
- "Brand name" / "Text"
- "Equipment model" / "Text"

Tracked entity type - "Equipment code" / "Text"


- "Manufacturer" / "Text"
- "Country of Origin" / "Text"
- "Department of installation" / "Text"
- "Provided by" / "Text"
- "Serial Number" / "Text"
- "Warranty expiry date" / "Text"
- "Unique identification number" / "Text"
Display in list: tag all
Mandatory: leave untagged
Searchable: tag all except for "Equipment image"
Program
1 Program details Name (*): "Biomedical equipment life cycle management"
Short name (*): "Biomedical equipment life cycle management"
Color: "#6200EA"
Icon:

Tracked entity type (*): "Biomedical equipment life cycle


management"
Category combination (*): "None"
Display front page list: tag
Access level: "Open"
Completed events expiry days: "0"
Expiry days: "0"
Minimum number of attributes required to search: "1"
Maximum number of tracked entity instances to return in search:
"0"

56
5 Health care product catalogue / Tracker program

2 Enrollment details Allow future enrollment dates: tag


Show incident data: tag
Ignore overdue events: do not tag
3 Attributes Program tracked entity attributes (assign in the following order):
1 Assign attributes - "Unique identification number" / "Text"
- "Type of equipment" / "Text"
- "Equipment image" / "Text"
- "Department of installation" / "Text"
- "Manufacturer" / "Text"
- "Brand name" / "Text"
- "Equipment model" / "Text"
- "Equipment code" / "Text"
- "Serial Number" / "Text"
- "Country of Origin" / "Text"
- "Provided by" / "Text"
- "Warranty expiry date" / "Text"
Display in list: tag all
Mandatory: not tagged
Searchable: tag all except "Equipment image"
Mobile render type: "Default" except "Qr code" for "Unique
identification number"
3 Attributes Name: "Biomedical life cycle equipment monitoring"
2 Create registration "SECTION" assign Tracked entity attributes in the following order:
form
- "Type of equipment" / "Text"
- "Department of installation" / "Text"
- "Unique identification number" / "Text"
- "Manufacturer" / "Text"
- "Brand name" / "Text"
- "Equipment model" / "Text"
- "Equipment code" / "Text"
- "Serial Number" / "Text"
- "Country of Origin" / "Text"
- "Provided by" / "Text"
- "Equipment image" / "Text"
- "Warranty expiry date" / "Text"

57
5 Health care product catalogue / Tracker program

4 Program stages Name: "Biomedical equipment installation"


Assign data elements / Create data entry form "BASIC":
- "Biomedical equipment installation"
Name: "Biomedical equipment alarm" / "Repeatable"
Assign data elements / Create data entry form "BASIC":
- "Alarm type"
- "Alarm cause"
- "Alarm corrective action"
- "Alarm resolved"
- "Alarm escalated and supervisor informed"
Name: "Biomedical equipment status" / "Repeatable"
Assign data elements / Create data entry form "BASIC":
- "Biomedical equipment status"
Name: "Biomedical equipment servicing" / "Repeatable"
Assign data elements / Create data entry form "BASIC":
- "Biomedical equipment servicing"
Name: "Biomedical equipment repair" / "Repeatable"
Assign data elements / Create data entry form "BASIC":
- "Biomedical equipment repair"
Name: "Biomedical equipment disposal"
Assign data elements / Create data entry form "BASIC":
- "Biomedical equipment disposal"
Display generate event box when completed: tag
Auto-generate event: tag
Hide due date: tag
5 Access Organisation units: assign as requested
6 Notifications (not applicable)

58
5 Health care product catalogue / Tracker program

Name: "Biomedical equipment alarm report"


Columns:
- "Last updated on"
- "Type of equipment"
- "Brand name"
- "Alarm type"
- "Alarm cause" / Condition "is not empty / not null" (optional)
- "Alarm corrective action"
- "Alarm resolved"
Line Listing
- "Alarm escalated and supervisor informed"
Filter
- Organisation Unit: select Organisation units as required
- Event date: "Last 3 months"
Name (configure the reports accordingly):
- "Biomedical equipment disposal report"
- "Biomeical equipment repair report"
- "Biomedical equipment service report"
- "Biomedical equipment status report"

59
5 Health care product catalogue / Tracker program

6.3 DHIS2 user interfaces


Web portal / Tracker program

Web portal / Line listing

60
5 Health care product catalogue / Tracker program

61
5 Health care product catalogue / Tracker program

Capture Android app

62
7 Cold chain appliance lifecycle management / Tracker program

7 COLD CHAIN EQUIPMENT LIFECYCLE MANAGEMENT / Tracker program

This very simple Tracker program is very similar to the biomedical equipment lifecycle
management solution but customized for cold chain equipment and considers the World
Health Organization PQS (Program Quality Standards).
In addition it offers a solution for creating and maintaining a dedicated catalogue of
(selected) prequalified equipment which serves as a template for registering and enrolling new
cold chain appliances. This allows "copying" the template of any specific prequalified appliance
and adding device specific attributes such as the serial number or manufacturing date.
For purposes of demonstration a few specifications of a few refrigerators and freezers from
the WHO PQS catalogue are configured but the same approach can be used for any other type
of health care equipment.

7.1 Use case


The cold chain equipment lifecycle management "Tracker program " allows establishing,
updating and maintaining a complete catalogue of cold chain appliances with all their "generic"
specifications commonly used in the country with .
Whenever a new piece of cold chain appliance is delivered to and installed at a healthcare
facility, the respective "generic" appliance is selected from the national catalogue and
"enrolled" in the "Cold chain equipment lifecycle management / Tracker program" of the
respective "Organisation Unit". The "registration" and "enrolment" are completed with device
specific attributes such as the manufacturing date and serial number are completed for the
installed device.

7.2 DHIS2 configuration


This application is configured as a "Tracker program" which uses only simple, native DHIS2
functionality. The number, description and contents of each of the stages can be very easily
customized to national needs without any programming knowledge.

CATEGORY System default settings

In addition to the national health facility register and structure,


create a OU for the PQS catalogue repository:
Organisation unit
Name (*): "World Health Organization PQS catalogue"
Short name (*): "WHO PQS catalogue"

63
7 Cold chain appliance lifecycle management / Tracker program

Name:
- "Alarm cause" / "Long text"
- "Alarm corrective action" / "Long text"
- "Alarm escalated to supervisor" / "Yes/No"
- "Alarm resolved" / "Yes/No"
- "Alarm type" / "Long text"
- "Assessment of technical fault" / "Long text"
- “Clean refrigerator with water and mild detergent" / "Yes/No"
- “Clean the grill on the side of the refrigerator" / "Yes/No"
- "Cold chain appliance installation report" / "Long text"
- "Cold chain appliance product number" / "Long text"
- "Cold chain appliance restored to service" / "Yes/No"
- "Cold chain technician" / "User name "
- "Daily inspection completed" / "Yes/No"
- "Daily tasks completed" / "Yes/No"
- "Defect image" / "Image"
- "Equipment removed from cold chain appliance inventory" /
"Yes/No"
Data element
- "Interventions" / "Long text"
- “Lid gasket checked for sealing when the lid is closed” / "Yes/No"
- "Method of disposal" / "Long text"
- “Monthly tasks” / “Long text”
- "Reason for disposal" / "Long text"
- "Reason for repair request" / "Long text"
- "Received at" / "Organisation unit"
- "Received from" / "Organisation unit"
- "Sent from" / "Organisation unit"
- "Technical fault resolved" / "Yes/No"
- "Transferred to" / "Organisation unit"
- "Urgency of repair request" / "Long text"
- "Water droplets wiped off from the inside wall" / "Yes/No"
- "Water removed at the bottom of the refrigerator" / "Yes/No"
- "Weekly tasks" / “Text”
Domain Type (*): "Tracker"
Value type (*): see above
Aggregation type (*): "None"

64
7 Cold chain appliance lifecycle management / Tracker program

Name (*):
- "Appliance image" / "Image"
- "Company" / "Text"
- "Energy source" / "Text"
- "Freezer gross volume (litres)" / "Number"
- "GS1 GIAI" / "Text"
- "GTIN" / "Text"
- "Manufactured in" / "Text"
- "Manufacturer's reference" / "Text"
- "Place of installation" / "Text"
- "PQS code" / "Text"
- "PQS code category" / "Text"
Tracked entity attribute - "Product number" / "Text"
- "Production date" / "Date"
- "Product number" / "Text"
- "Serial number" / "Text"
- "Type of appliance" / "Text"
- "Unique identifier" / "Text"
- "Vaccine gross volume (litres)" / "Number"
- "Vaccine storage capacity (litres)" / "Number"
Name (*): (see above)
Short name (*): same as "Name (*)".
Value type: "Text".
Aggregation type: "None"
Inherit: check (appears as a blue tag with a white tick)

65
7 Cold chain appliance lifecycle management / Tracker program

Name (*): "Cold chain appliance"


Color": leave empty
Icon": leave empty
Description": leave empty
Enable tracked entity instance audit log: check (appears as white
tick in a blue box)
Minimum number of attributes required to search: 1
Tracked entity type attributes: assign the following Tracked entity
attributes in this order
- "Appliance image" / "Image"
- "Place of installation" / "Text"
- "PQS code category" / "Text"
- "PQS code" / "Text"
- "Type of appliance" / "Text"
- "Company" / "Text"

Tracked entity type - "Manufactured in" / "Text"


- "Manufacturer's reference" / "Text"
- "Energy source" / "Text"
- "Vaccine storage capacity (litres)" / "Number"
- "Vaccine gross volume (litres)" / "Number"
- "Freezer gross volume (litres)"
- "Production date" / "Date"
- "Product number" / "Text"
- "GTIN" / "Text"
- "Serial number" / "Text"
- "GS1 GIAI" / "Text"
- "Unique identifier" / "Text"
- "Unique identifier scan" / "Text"
Display in list: tag all
Searchable: tag except for "Appliance image", "Manufactured in"
and "Production date"

Program

66
7 Cold chain appliance lifecycle management / Tracker program

1 Program details Name (*): "Cold chain appliance lifecycle management"


Short name (*): " Cold chain appliance lifecycle management".
Color: "#64B5F6"
Icon: "cold chain outline"
Tracked entity type (*): select "Cold chain appliance".
Category combination (*): select "None".
Display front page list: tag

2 Enrollment details Allow future enrollment dates: do not tag


Allow future incident dates: do not tag
Only enrol once (per tracked entity instance lifetime): do not tag
Show incident date: tag
Description of incident date: "Cold chain appliance management"
Description of enrollment date: leave blank
Ignore overdue events: leave untagged.
Feature type: (blank)
Related program: (blank)

3 Attributes "Program tracked entity attributes": select and arrange in the


following order:
1 Assign attributes
- "Appliance image"
- "Place of installation"
- "PQS code category"
- "PQS code"
- "Type of appliance"
- “Company”
- "Manufactured in"
- "Manufacturer's reference"
- "Production date"
- "Product number"
- "GTIN"
- "Serial number"
- "GS1 GIAI"
- "Unique identifier"
Display in list: tag all
Mobile render type: see above

67
7 Cold chain appliance lifecycle management / Tracker program

3 Attributes Name: "Cold chain appliance lifecycle management"


2 Create registration - "Appliance image"
form
- "Place of installation"
- "PQS code category"
- "PQS code"
- "Type of appliance"
- “Company”
- "Manufactured in"
- "Manufacturer's reference"
- "Production date"
- "Product number"
- "GTIN"
- "Serial number"
- "GS1 GIAI"
- "Unique identifier"

4 Program stages Name:


1 Stage details - "Cold chain appliance transfer" / "Repeatable"
- "Cold chain appliance installation" / "Repeatable"
- "Cold chain appliance inspection" / "Repeatable"
- "Cold chain appliance weekly preventive maintenance" /
"Repeatable"
- "Cold chain appliance monthly preventive maintenance" /
"Repeatable"
- "Cold chain appliance alert" / "Repeatable"
- "Cold chain appliance repair request" / "Repeatable"
- "Cold chain appliance corrective maintenance" / "Repeatable"
- "Cold chain appliance disposal" / not repeatable
Repeatable: see above

68
7 Cold chain appliance lifecycle management / Tracker program

4 Program stages Cold chain appliance transfer


2 Assign data elements - "Sent from"
- "Transferred to"
- "Received from"
- "Received at"
Cold chain appliance installation
- "Cold chain appliance installation report"
Cold chain appliance inspection
- "Daily inspection completed"
Cold chain appliance weekly preventive maintenance
- "Water removed at the bottom of the refrigerator"
- "Water droplets wiped off from the inside wall"
- "Lid gasket checked for sealing when the lid is closed"
Cold chain appliance monthly preventive maintenance
- “Clean refrigerator with water and mild detergent”
- “Clean the grill on the side of the refrigerator”
Cold chain appliance alarm
- "Alarm type"
- "Alarm cause"
- "Alarm corrective action"
- "Alarm resolved"
- "Alarm escalated to supervisor"
Cold chain appliance repair request
- "Reason for repair request"
- "Urgency of repair request"
- “Defect image”
- “Cold chain technician”
Cold chain appliance corrective maintenance
- "Assessment of technical fault"
- "Interventions"
- "Technical fault resolved"
- "Equipment restored to service"
Cold chain appliance disposal
- "Reason for disposal"
- "Method of disposal"
- "Equipment removed from cold chain appliance inventory"
Display in report: make visible for all items

69
7 Cold chain appliance lifecycle management / Tracker program

Mobile render type: "Default"


Desktop render type: "Default"

4 Program stages "BASIC" is configured by default, no configuration is needed.


3 Create data entry form

5 Access "Organisation units": tag the health care facility for assigning to the
DHIS2 Capture.
"Roles and access": "Biomedical equipment life cycle
management" appears by default
"SELECT ALL"

6 Notifications (not applicable)

Name (*): "World Health Organization PQS catalogue"


Relationship name seen from initiating entity (*): "World Health
Organization PQS catalogue"
From constraint (*): "Tracked entity instance"

Relationship type Tracked entity type *: "Cold chain appliance"


Program: "Cold chain appliance lifecycle management"
To constraint (*): "Tracked entity instance"
Tracked entity type *: "Cold chain appliance"
Program: "Cold chain appliance lifecycle management"

Appearance > Program > Specific settings > Add a Program Setting
Select "Cold chain appliance lifecycle management"
Allow the user to create a TEI without searching: check (appears as
a white tick in a green box)

Android Settings app

70
7 Cold chain appliance lifecycle management / Tracker program

Name: "Cold chain equipment lifecycle management"


Columns:
- "Last updated on"
- "Type of equipment"
- "Brand name"
- "Alarm type"
Line Listing - "Alarm cause" / Condition "is not empty / not null" (optional)
- "Alarm corrective action"
- "Alarm resolved"
- "Alarm escalated and supervisor informed"
Filter
- Organisation Unit: select Organisation units as required
- Event date: "Last 3 months"

71
7 Cold chain appliance lifecycle management / Tracker program

7.3 DHIS2 user interfaces


Web portal / Tracker program

Web portal / Line listing

72
7 Cold chain appliance lifecycle management / Tracker program

73
7 Cold chain appliance lifecycle management / Tracker program

Capture Android app

74
7 Cold chain appliance lifecycle management / Tracker program

7.4 Workflow for registering new appliances


While details on all DHIS2 workflows are available in the general DHIS2 documentation and
although the "cloning" of appliances uses only native DHIS2 functionality, it is an "edge case", a
very specific use of the "Relationship" function and therefore the steps are explained below:
The workflow below explains the workflow for the following example:
A new icelined refrigerator (E003/007) has been delivered to the health facility (OU) "0001
CH Mahosot". The user "registers" and "enrols" this new appliance using the default
specifications from the catalogue of PQS pre-qualified appliances in the "World Health
Organization PQS catalogue". These "generic" appliance specifications are then "copied" for
creating a new appliance at the "0001 CH Mahosot" before adding the appliance specific
attributes such as the serial number or the manufacturing date. User:
- opens the DHIS2 Capture Android app on a mobile device and authenticates: the DHIS2
home screen opens showing all Programs and Data sets
- select "Cold chain equipment lifecycle management": a list of all registered and enrolled
appliances is displayed
- selects "World Health Organization PQS catalogue" from the "ORG. UNIT" filter: a catalogue
with all of the PQS pre-qualified appliances appears
- searches for and selects the cold chain appliance which is being installed: a single appliance
is listed
- taps on the cold chain appliance: the TEI dashboard of the Tracker Program for this
particular appliance is displayed
- taps on the "Relationship" icon at the bottom in the middle: a separate dialogue window
opens
- taps on the "+" icon: a list of available "Relationships" appears
- selects "World Health Organization PQS catalogue" from the list of "Relationships": a
separate dialogue window opens
- taps in the header "All Cold chain appliance": a drop-down dialogue window opens
- selects "Cold chain appliance lifecycle management": a list of appliances appears
Note: this screen may look like "back to square one" (as it looks like the home screen) but is a
necessary step in the whole process
- selects the "+ Create new" icon at the right bottom of the screen: the OU dialogue window
opens
- selects the "Organisation unit" where the appliance is being installed by checking the box
(in our example "0001 CH Mahosot")
- selects the "Done" icon: the calendar dialogue window opens: by default the current date is
pre-selected
- selects the installation data of the appliance from the calendar
- selects the "ACCEPT" icon: the dialogue window of the "cloned" (newly "registered" and
"enrolled" device) with the selected "Enrolloing OU" and "Enrollment date" is displayed
- expands the lower section "2 Cold chain appliance lifecycle management" by tapping on the
caret down (inverted caret) symbol ( ): the list of specifications (Tracked Entity Attributes) is
displayed

75
7 Cold chain appliance lifecycle management / Tracker program

- completes the missing appliance specific entries such as "Place of installation", "Production
date" etc.
- selects the blue "Save" icon at the bottom right: the dialogue window displaying all
available "Relationships" is displayed
- selects the red trash icon displayed next to the "Relationship" entry: "There are no
relationships, click + to add a new one" appears
Note that once the new appliance has been "cloned" in the health facility where the appliance
is installed, there is no need to maintain any "Relationship" with "World Health Organization
PQS catalogue" catalogue item.
- selects the back arrow: the "cloned" appliance appears on the Tracker Program home
screen
- taps on the grey synchronization icon appearing next to the "cloned" appliance: the "Sync
needed" dialogue window opens
- taps on the "Send" icon: the new appliance is synchronized with the central server
(provided a network connection is available)
- continues work or closes the Capture Android app.
Note that this workflow is currently only available in Capture Android app as the DHIS2 web
app does not (yet) allow changing the Organisation Unit (OU) when creating a new Tracked
Entity Instance (TEI) but this enhancement is planned for future DHIS2 versions.

76
8 GS1 DataMatrix code parsing / Event program

8 GS1 DATAMATRIX CODE PARSING / Event program

This Event program allows any DHIS2 user to "read" GS1 DataMatrix codes and parse ("split")
the information stored in the alphanumeric text string into their components as indicated by
their Application Identifiers (AIs). This Event program is intended for demonstrating DHIS2
capabilities which can be integrated into other applications such as for Traceability and
Verification System (TRVST) and the biomedical engineering life cycle management in future.
Currently there are two use cases: reading GS1 DataMatrix codes printed on health care
products and reading out the product identification number, batch number, expiry date and
serialized number (unit pack number) and presenting them in the correct human readable
format. Secondly, to read GS1 DataMatrix codes standardized according to the World Health
Organization PQS performance specification E003 for "Global asset identification" and reading
out the production identification number (Global Trade Item Number GTIN), production date,
unique serial number and the PQS number.

8.1 Use case


A storekeeper or a health worker such as an immunization worker, scans the GS1 DataMatrix
code at the point of dispensing or before administering a vaccination for:
- Recording the batch number and serialized number in the eRegistry of the patient
- Referencing the batch numer and serilized number in case of an AEFI (Adverse Effect
Following Immunization)
- Identifying batches subject to a batch recall
- Managing of health care products at the batch level
- Alerting users in case health care products have expired
- Complying with national Track & Trace regulations (in force in many countries since 2019)
- Drug quality verification for detecting counterfeit or falsified health care products
- "Decommissioning" serialized numbers in national or global Track & Trace databases
- Tracking unit packs end to end through global supply networks
- Matching unit pack distribution paths with temperature records of storage equipment
- Identifying cold chain equipment assets (and other biomedical equipment) through a
unique GS1 DataMatrix code.

8.2 DHIS2 configuration

CATEGORY System default settings

77
8 GS1 DataMatrix code parsing / Event program

Name (*):
- "Batch number" / "Text"
- "Expiration date" / "Text"
- "Global Individual Asset Identifier (GIAI)" / "Text"
- "GS1 DataMatrix code data string" / "Text"
- "PQS number" / "Text"
Data element - "Production date" / "Text"
- "Product identification number" / "Text"
- "Remaining shelf life"
- "Serialized number": "Text"
Short name (*): same as "Name (*)"
Domain type (*): "Tracker"
Value type (*): see above

Program

1 Program details Name: "GS1 DataMatrix code parsing"


Color: "#8E24AA"
Icon:

Short name: "GS1 DataMatrix code parsing"


Category combination (*): "None"
Expiry days: "0"
Block entry form after completed: tag
Validation strategy (*): "On complete"
Pre-generate event UID: tag

78
8 GS1 DataMatrix code parsing / Event program

2 Assign data elements Assign Data elements in the following order:


- "GS1 DataMatrix code data string"
- "Product identification number"
- "Batch number"
- "Serialized number"
- "Expiration date"
- "Production date"
- "PQS number"
- "Global Individual Asset Identifier (GIAI)"
Allow provided elsewhere: tag all
Display in reports: select all
Mobile render type: "Default" except "Qr code" for "GS1
DataMatrix code data string"

3 Create data entry form BASIC


"GS1 DataMatrix code data string"
"Product identification number"
"Batch number"
"Serialized number"
"Expiration date"
"Production date"
"PQS number"
"Global Individual Asset Identifier (GIAI)"

4 Access - Select all 5 health care facilities in Mali

5 Create notifications (not applicable)

Program rule Program (*): "GS1 DataMatrix code parsing"


1 Enter Program rule details Name (*): "GS1 DataMatrix code parsing"
Description: "Parsing of GS1 DataMatrix code string into product
identification number, batch number, expiration date (as
represented in the data string) and serial number as well
reformatted expiration date"

2 Enter Program rule


d2:hasValue( #{GS1 DataMatrix code data string} )
expression

79
8 GS1 DataMatrix code parsing / Event program

3 Define program rule Action: "Assign value"


actions
Data element to assign to: "Batch number"
Expression to evaluate and assign: "d2:extractDataMatrixValue( 'lot
number', #{GS1 DataMatrix code data string})"
Action: "Assign value"
Data element to assign to: "Expiration date"
Expression to evaluate and assign: "d2:extractDataMatrixValue(
'expiration date', #{GS1 DataMatrix code data string})"
Action: "Assign value"
Data element to assign to: "Global Individual Asset Identifier
(GIAI)"
Expression to evaluate and assign: "d2:extractDataMatrixValue(
8004, #{GS1 DataMatrix code data string})"
Action: "Assign value"
Data element to assign to: "PQS number"
Expression to evaluate and assign: "d2:extractDataMatrixValue( 22,
#{GS1 DataMatrix code data string})"
Action: "Assign value"
Data element to assign to: "Production date"
Expression to evaluate and assign: "d2:extractDataMatrixValue(
'production date', #{GS1 DataMatrix code data string})"
Action: "Assign value"
Data element to assign to: "Product identification number"
Expression to evaluate and assign: "d2:extractDataMatrixValue(
'gtin', #{GS1 DataMatrix code data string})
Action: "Assign value"
Data element to assign to: "Serialized number"
Expression to evaluate and assign: "d2:extractDataMatrixValue(
'serial number', #{GS1 DataMatrix code data string})"

Program rule variable Program (*): "GS1 DataMatrix code parsing"


Name (*): "GS1 DataMatrix - Expiration date dd-mm-yyyy
Source type (*): "Data element in current event"
Data element: "Expiration date dd-mm-yyyy"
Program (*): "GS1 DataMatrix code parsing"
Name (*): "GS1 DataMatrix code data string"
Source type (*): "Data element in current event"
Data element: "GS1 DataMatrix code data string"

80
8 GS1 DataMatrix code parsing / Event program

Program indicator A separate Program indicator has to be created for every "pair" of
item description and transaction type. For example:
DASDCHLC5S1 - Distribution

1 Program indicator details - Program (*): Real-Time Stock Management


- Name (*): DASDCHLC5S1 - Distribution
- Aggregation type: "Sum"
- Analytics type (*): "Event"
- Analytics period boundaries:
- - Boundary target: "Event date"
- - Analytics period boundary type: "After start of reporting period"
- - Offset period by amount: 0
- - Period type: (leave blank)
- - Boundary target: "Event date"
- - Analytics period boundary type: "Before end of reporting
period"
- - Offset period by amount: 0
- - Period type: (leave blank)
- Display in form: select (appears as a white tick in a blue square)

2 Edit expression - #{CSszngrLaoW.smwdEfUz8vo}


"Stock on Hand\.Stock distribution"

3 Edit filter - A{XYvrLoYSMRU} == 'DASDCHLC5S1'


"Item code == 'DASDCHLC5S1'"

81
8 GS1 DataMatrix code parsing / Event program

8.3 DHIS2 user interfaces


Web portal / Tracker program

82
8 GS1 DataMatrix code parsing / Event program

Web portal / Line listing program

83
8 GS1 DataMatrix code parsing / Event program

Capture Android app

84

You might also like