15.08. Barcode scanning with handheld computers (The Zapp App)

Added: Version 8.00

It is possible to use a handheld computer barcode scanner with mSupply. This gives you greater flexibility as you are not tethered to a device running mSupply. A handheld computer barcode scanner looks like this:

Currently mSupply is compatible with Honeywell handheld computer barcode scanners like the CK65 shown in the image above and the only function available on these scanners is goods receiving.

As with using simple barcode scanners as described in the previous pages of the documentation, mSupply reads GS1 type barcodes with these devices. These barcodes can be in either 1D linear or 2D QR-code or datamatrix forms. Non GS1 type barcodes will be scanned successfully but ignored by mSupply.

Requirements

The scanner must be able to connect to the mSupply server used in the warehouse. This is usually achieved using a WiFi network. This WiFi must:

be available everywhere you want to use the barcode scanner in the warehouse

be able to connect the barcode scanner to the mSupply server.

The scanner must be a Honeywell type compatible with mSupply. If in doubt, please check with The mSupply Foundation before purchasing.

Set up

1. Create users on mSupply

The first step is to create users in mSupply for all the users who are going to use the barcode scanners. Follow the instructions here to do that: 25.15. Managing users. The users don't need any particular permissions to use the barcode scanner, they just need to be active and able to login to mSupply.

2. Download the mSupply scanner app

Download the app from here: https://github.com/msupply-foundation/zapp/releases

3. Load the mSupply scanner app onto the scanner

Load the mSupply scanner app (Zapp App) apk file onto the scanner device itself by following the manufacturer's instructions. Find the apk file on the device and tap on it to install it. When you have done that, you will see the Zapp App icon on the scanner's main screen:

4. Open the app

Tap on the Zapp App icon and the app will open at the login window:

Tap on the Show settings text and the API URL field will be displayed:

Enter the URL of your mSupply alternative server in the field (see the 20.03. Cold Chain App Notifications page for details on how this is set up). You only have to do this step the first time you open the app or if you need to change the URL).

5. Login to the app

Enter your mSupply user name and password in the Username and Password fields. Then tap on the Login button to login to the app. Your credentials will be checked against those stored on the mSupply server found at the URL entered in step 4.

Initial setup is now complete.

Goods Receiving

1. Login

When using the app after initial set up set up has been completed, the first thing you must do is login to the app. Tap on the Zappo App icon on the scnner's main screen and enter your mSupply username and passowrd in the Username and Password fields. Tap on the Login button to login. If you are allowed to login to more than one store you will be shown a list of stores to select from:

Tap on the store you want to login to and you will be taken to the next step (the list of supplier invoices).

If you are only allowed to login to a single store thern this will automatically be selected for you and you will immediately be taken to the next step, the list of supplier invoices.

2. Select the supplier invoice

You are shown a list of new ('nw') status supplier invoice in the store you are logged in to:

Tap on the supplier invoice you want to received goods into. If a new status supplier invoice was added in mSupply since you logged in, you can tap on the Refresh button to add it to the list. You can also tap on the hamburger in the page header (the icon) to open the configuration menu:

Tap on:

Select Shipment to go back to the supplier invoice selection window.

Config to change the server API URL.

Logout to log out.

This same menu is available wherever the hamburger is displayed in a page header.

When you have selected an invoice you will be shown a list of lines that belong to the invoice:

3. Start scanning

Now the fun starts! You can start scanning GS1 barcodes on received stock now, either on pallets, cartons or the primary packaging. Be careful you scan the right thing. The first barcode you scan must contain the item GTIN (Global Trade Identifier Number), element (01) in a GS1 barcode, so that mSupply can identify which item is being received. Be careful because not all barcodes contain the GTIN. Here are some examples, all found on cartons (rather than on pallets or primary packaging):

Example 1

The datamatrix barcode (at the top right) contains the GTIN and all the other information. There is no human readable information next to it so you can't tell before you scan it whether it contains the GTIN. But scan it with your phone and you'll see we're telling the truth .

The next linear barcode down contains the expiry date (element (10)), the batch number (element (17)) and the number of packs (element (30)).

The final linear barcode at the bottom contains the GTIN (element (01)), and the carton serial number (element (21)).

So you could either scan the datamatrix or the bottom linear barcode first, but not the middle linear barcode.

Example 2

Neither of the two linear barcodes contain the GTIN on this label.

The datamatrix barcode does contain the GTIN, along with the batch and expiry date. The human readable information to the right of it makes this clear.

So you can scan the datamatrix barcode first on this label.

Example 3

This label has a single datamatrix barcode with clear human readable data next to it, telling you that it contains the GTIN (called DI here), batch number, expiry date and a few other bits of information.

This is a good example of misleading human readable information - not all the human readable information is contained in the barcode. Beware!

So this datamatrix barcode is fine to scan first.

Example 4

This datamatrix barcode has clear humen-readable information next to it that accurately describes what it contains. But there is no GTIN present and there is no other barcode available on the carton.

So you cannot scan this barcode first. You would be forced to look at the pallet wrapping to see if there's a barcode containing the GTIN there or open the carton and see if there is a barcode containing the GTIN on the primary packaging. If there is no barcode containing the GTIN then you cannot use scanning to enter this item, you must enter it manually into the supplier invoice in mSupply when you have finished scanning the other lines.

What happens when you make the scan depends on the contents of the barcode and the lines (if any) already on the supplier invoice:

a. If the barcode doesn't contain a GTIN

You will be shown an error message and asked to scan again.

b. If the GTIN does not belong to an item in mSupply

You will be shown a page to enable you to connect the scanned GTIN with an item in mSupply:

The GTIN field shoes the GTIN that was scanned (without its (01) element identifier)

In the Search drop-down list, type a few characters of the item's name or code to see a list of items with names or codes that contain what you typed. Tap on the item to connect the GTIN with in the list.

A Pack size field will then appear for you to enter the pack size that this GTIN represents. Please be careful when entering this, you must get it right! It will affect all future scans of this GTIN and can only be corrected in mSupply by editing the item's barcodes (see the 15.02. Adding barcodes to items page for details). This is a feature of the GTIN; it represents a unique combination of item and pack size. The same item with a different pack size will have a different GTIN.

When the item and pack size are correct, tap on the Associate button to connect the GTIN to the item.

What happens next depends on the content of the barcode you have scanned - see the options below!

c. If the GTIN matches an item not already on the supplier invoice

You will be shown a page with fields showing the contents of the scan and with a message telling you that this is a new item that is not yet on the invoice:

Note that only the fields that were present in the scan will be filled in, other fields will not be affected or will be empty.

The name of the item matcvhing the GTIN scanned and its code are displayed at the top.

The Quantity (Packs) field contains the number of packs that were scanned. This will be 0 if the barcode did not contain the number of packs (most often they do not). This is the only field that is editable. All other fields are read only and can only be filled with information from a scanned barcode. To edit the contents of this field, tap on it and then enter the number of packs for this line. If there is no number of packs contained in the scanned barcode then you will need to enter this field manually.

The Batch field contains the batch of the item. This will be left empty if no batch was included in the barcode.

The Expiry field contains the expiry date that was in the barcode. This will be left empty if there was no expiry date in the barcode.

To continue, either:

scan another barcode containing a GTIN. This will save the line and display a window according to what you scanned (one of the options a-e). Note: saving the line is not possible if a Quantity (packs) value has not been entered - you will be shown a message telling you this if you scan another GTIN-containing barcode before entering a Quantity (packs) value.

tap on the Save button, which is enabled as soon as a Quantity (packs) value has been entered. This will save the current line and take you back to the list of lines on this invoice.

tap on the Cancel button. This will discard the current line and take you back to the list of lines on this invoice.

d. If the barcode contains a GTIN, batch and expiry date matching a line already on the invoice

You will be shown a window with the name of the item associated with the GTIN in the scan at the top, followed by a message telling you that this line is already on the invoice:

Quantity to add: this is the only editable field. Tap in here and enter the number of packs to be added to the line on the invoice. This field will be filled in for you if the barcode contains a number of packs value.

The Current field tells you how many packs of this item and batch are already on the invoice.

Batch: the batch of this line. Read only, populated from the barcode scanned.

Expiry: the expiry date of this line. Read only, populated from the barcode scanned.

Pack size: the number of units in a pack. Read only, a property of the GTIN.

To continue, either:

scan another barcode containing a GTIN. This will save the line and display a window according to what you scanned (one of the options a-e). Note: saving the line is not possible if a Quantity (packs) value has not been entered - you will be shown a message telling you this if you scan another GTIN-containing barcode before entering a Quantity (packs) value.

tap on the Save button, which is enabled as soon as a Quantity (packs) value has been entered. This will save the current line and take you back to the list of lines on this invoice.

tap on the Cancel button. This will discard the current line and take you back to the list of lines on this invoice.

e. If the barcode contains a GTIN which matches an item but with a different batch and expiry date

You will be shown a window with the item matching the GTIN scanned:

Quantity (Packs) contains the number of packs in this invoice line. Will be empty if the barcode did not contain the number of packs (most common). This is the only editable field. Tap in here and enter a value if nothing has been entered (this field must have a value in it).

Batch contains the batch number from the barcode. Read only.

Expiry contains the expoiry date from the barcode. Read only.

Pack size the number of units in a pack, a property of the GTIN. Read only.

To continue, either:

scan another barcode containing a GTIN. This will save the line and display a window according to what you scanned (one of the options a-e). Note: saving the line is not possible if a Quantity (packs) value has not been entered - you will be shown a message telling you this if you scan another GTIN-containing barcode before entering a Quantity (packs) value.

tap on the Save button, which is enabled as soon as a Quantity (packs) value has been entered. This will save the current line and take you back to the list of lines on this invoice.

tap on the Cancel button. This will discard the current line and take you back to the list of lines on this invoice.

4. Scanning complete

When scanning is complete and all lines have been saved, you will be back at the list of invoice lines:

You will have one line for every batch of every item on the invoice.

Now tap on the Complete shipment button to finish working on this supplier invoice. You will be asked to confirm that it is complete. On confirmation, the invoice will be saved at suggested status (sg) and removed from the list of invoices waiting for scanning.

Previous: 15.07. Barcode scanning and prescriptions | | Next: 16.01. General preferences