23.09. iVEDiX integration

mSupply has an interface with the iVEDiX reporting API. The interface allows the automatic sending of batch and transaction information to the iVEDiX reporting platform.

Set up

Preferences

The preferences that define how this interface works are managed on the iVEDiX tab of the File > Preferences menu. The tab looks like this:

NOTE: the fields on this page are disabled if mSupply's synchronisation system is not in use.

Send information to iVEDiX checkbox: If this is checked then mSupply will automatically send information about transactions and new batches to the iVEDiX platform. If it is unchecked then no information is sent to iVEDiX.

iVEDiX API URL: The URL of the iVEDiX API to send information to.

iVEDiX API key: The authentication key to be sent to authorise communictaion with the API.

Interval between retries: The number of minutes to wait between attempts to resend information that fails to reach the iVEDiX API for any reason.

Send now button: If this is clicked, all information waiting in the failed queue to be sent to the iVEDiX API is sent immediately.

Number of times to retry sending: The maximum number of times to retry sending information to iVEDiX. Once a piece of information has failed to be sent this number of times, the failure becomes permanent: it is removed from the send queue and the final failure is logged.

Send errors to this email address: All errors sending information to the iVEDiX platform are sent to this email address. You can enter multiple email addresses in here by entering them one after another separated with a semicolon (;).

Store preferences

You must also tell mSupply which stores to send information to iVEDiX for. This is done by adding a “pushToIvedix” custom field to a store. Set it to “true” in all stores that you want to send information to iVEDiX like this:

Details on how to set these custom fields can be found on the page.

What it does

Sending batches

Batches are sent to iVEDiX whenever a stockline is created (e.g. when a supplier invoice or inventory adjustment-add is confirmed) or updated (which means that either the batch or expiry date is changed) in any store with a WHXXXX code (where XXXX is a 4 digit number) or its corresponding malaria store (which will have a matching GF-MAL-XXXX code).

The batches are sent using the /batch/createUpdate endpoint of the API using these fields:

batchNumber: the stock lines's batch.

availableDate: the current date and time in ISO format.

expiryDate: the expiry date of the batch. “31/12/3000T00:00:00” is sent if the batch has no expiry date.

Sending transactions

Transactions are all sent to iVEDiX when they are confirmed. Transactions are only sent from stores having a WHXxXX code or a corresponding GF-MAL-XXXX code and transactions in any GF-MAL-XxXX store are sent as if they were in the WHXXXX store. Stock transfers (or credits) between a WHXXXX or GF-MAL-XXXX store are ignored and not sent to iVEDiX.

If a transaction is edited or a line added or removed from it, the whole transaction is sent again, in its new form, to iVEDiX.

The transactions are sent using the /inventoryStockStatus/updateInventory endpoint of the API using these fields:

transactionId: the transaction's UUID.

transactionDate: the transaction's confirmed date in ISO date format.

warehouse: the store code; WH0004, 6 or 7 and the corresponding Malaria stores take the corresponding main store code.

donor: the transaction category of the transaction.

productCode: the item code.

batchNumber: the batch of the stock.

creditDebit: “Credit” for credit (stock increase), “Debit” for debit (stock decrease).

transactionType: “GoodsIssued” for customer invoices, “GoodsReceived” for supplier invoices and customer credits, “TradeReturns” for supplier credits, “PositiveAdjustment” for inventory adjustment-adds and “NegativeAdjustment” for inventory adjustment-reduces. For a cancelled transaction the appropriate opposite type is used.

quantity: pack size x number of packs for this transaction line.

There are actually two schedulers running to control sending transactions to iVEDiX: one picks up all new transactions and sends them for the first time. The other picks up all the failed transactions and sends them again until they have reached the maximum number of retries before permanent failure.

Errors

If errors are encountered during either of the sending processes then the information to be sent is entered into a queue. All pices of information (batches or transactions) in that queu are attempted to be resent after the number of minutes stored in the Interval between retries field. When a piece of informaiton is successfully sent it is removed from the queue. If a piece of information is not sent successfully after the number of retries in the Number of times to retry sending field then it is removed from the queue, the final failure is logged (see the 25.19. The system log page for details on how to view the log) and an email giving details of the error is sent to the email address stored in the Send errors to this email address field.

Previous: 23.08. HL7 and Tamanu/Patis Plus integration | | Next: 23.10. Siglofa integration