Custom Fields

Custom fields are the extra pieces of information your organisation tracks against a record that Open mSupply doesn't have a standard field for - a procurement code on an item, a district on a customer, a funding source on a shipment.

The Custom fields page in the Manage section is where you decide where each custom field appears: out of sight, on the record's Custom fields tab, or promoted onto the top of the record itself.

The Custom fields page is only available on the Open mSupply Central Server, and only to users who have the Access server administration permission (see the Permissions page). It is not shown on remote sites, and the fields it configures apply to the whole system rather than to one store.

Where custom fields come from🔗

Custom fields are defined in mSupply and are synchronised to the Open mSupply central Server. This page changes only where a field is shown - you cannot use it to manage fields (yet!).

To add, rename or change a custom field, or to change the list of choices an Option field offers, do it in mSupply. The change reaches Open mSupply Central on the next sync, and every other site on the sync after that.

The following mSupply fields become custom fields in Open mSupply:

RecordmSupply fieldAppears asType
ItemItem categories 1, 2 and 3Category, Category 2, Category 3Option
ItemItem user fields 1–7User field 1 … User field 7See below
NameName categories 1–6Category 1 … Category 6Option
NameName custom fields 1–3Custom 1, Custom 2, Custom 3Text
ShipmentTransaction categoriesCategory on each shipment, return and prescriptionOption
PrescriptionPrescriptions (2) categories - Patient typePatient typeOption

Notes on the table above:

  • Item fields carry the types mSupply gives them: user fields 1, 2, 3 and 6 are Text, user field 5 is a Number, and user fields 4 and 7 are Boolean (a tick box).
  • Name means customers, suppliers and patients. They share the same nine definitions in mSupply, but each is configured separately for each of the three - see A field is configured once per record type.
  • If you have renamed a field in mSupply, that name is what Open mSupply shows. User field 1 only appears as "User field 1" while it is still unnamed in mSupply.
  • Item category 1 and name category 1 are hierarchical in mSupply, and Open mSupply keeps that structure: when you choose a value, the choices are shown as a tree
  • Transaction categories in mSupply that Open mSupply has no screen for (builds and tenders) are not brought across
A standalone Open mSupply Central Server - one with no mSupply system behind it - has no custom fields at all, so this page will show No custom fields defined on every tab.

Field types🔗

Every custom field has a type, which decides how it is displayed, how it is entered, and how you can filter a list by it.

TypeOn a recordFiltering a list by it
TextA text boxContains the text you type
IntegerA whole numberA Min / Max range
NumberA number, decimals allowedA Min / Max range
DateA date pickerA From / To date range
BooleanA tick boxYes / No
OptionA drop-down list of the choices set up in mSupplyChoose one or more options. Choosing a parent option also matches everything beneath it

Viewing the custom fields configuration🔗

Choose Manage > Custom fields in the navigation panel.

The page has one tab per record type, in this order:

  • Items
  • Customers
  • Suppliers
  • Patients
  • Inbound shipment
  • Outbound shipment
  • Prescriptions
  • Supplier return
  • Customer return

Each tab lists every custom field configured for that record type, in the order the fields are displayed on the record.

Custom fields - item tab The following columns are shown:

ColumnDescription
NameThe field's name, as set in mSupply. Read-only
TypeThe field's type (see Field types). Read-only
VisibleTick to show the field on this record type
ProminentTick to promote the field to the top of the record, next to its other key details. Only shown on the five shipment, return and prescription tabs - see Display options

If a tab shows No custom fields defined, no custom fields have been set up in mSupply for that record type. Fields you have hidden still appear in this list, so an empty tab always means "nothing configured", rather than "everything hidden".

Display options🔗

The Visible and Prominent tick boxes combine to control if and where a field is displayed:

SettingWhere the field appears
Visible untickedNowhere - not on the record, not as a list column, not as a list filter
Visible tickedOn the record's Custom fields tab, and as a column and filter on the list
Visible + Prominent tickedAt the top of the record, alongside its other key details - and not repeated on the Custom fields tab

Where the custom fields then appear🔗

Once a field is visible, it appears on that record type's list and its detail view. Whether it can be edited depends on the record: items, customers and suppliers are maintained in mSupply, so their custom fields are shown but not editable in Open mSupply.

Record typeOn the recordEditable
ItemsCustom fields tabNo - items are maintained in mSupply
CustomersOn the customer's detailsNo
SuppliersCustom fields tabNo
PatientsCustom fields tabYes, with the patient editing permission
Inbound shipmentsCustom fields tab, plus prominent fields in the headerYes, while the shipment is still editable
Outbound shipmentsCustom fields tab, plus prominent fields in the headerYes, while the shipment is still editable
PrescriptionsCustom fields tab, plus prominent fields in the headerYes, while the prescription is still editable
Supplier returnsCustom fields tab, plus prominent fields in the headerYes, while the return is still editable
Customer returnsCustom fields tab, plus prominent fields in the headerYes, while the return is still editable

Good to know🔗

Hiding a field never deletes anything. Values already recorded against a hidden field stay in the database and stop being displayed. Tick Visible again and both the field and its values reappear exactly as they were.

A field is configured once per record type🔗

Customers, suppliers and patients share the same custom fields in mSupply, but Open mSupply configures them independently. Custom 1 can be visible for customers, prominent for patients and hidden for suppliers at the same time. Changing one tab never affects another - so if a field you expected is missing, check the tab for that specific record type.