This is definitely wrong, take this example:

Someone loads the form, sets the mappings and saves, they go and create/update/delete a drug order

The next time they load the form, the array indices for what was read from the database would be out of order in comparison to what was it was the last time the form was saved, makes sense?
This is why i don't think you be saving the values as arrays and not use this PropertiesConfiguration class