BioTrackTHC – Rooms are Broken
The BioTrackTHC system in Washington State mis-handles the room data. Once it's broken it is not possible to resolve this issue via the API, nor via the Web-UI. Let's take a look at the data.
{ "success": 1, "inventory_room": [ { "transactionid": "14835464", "name": "Quarantine", "quarantine": 1, "deleted": 0, "location": "416689", "roomid": "1", "transactionid_original": "14835464" }, { "name": "Quarantine", "quarantine": 1, "transactionid": "28505882", "transactionid_original": "28505882", "roomid": null, "location": "416689", "deleted": 0 } ] }
The issue that we have has been highlighted. How can we have a roomid that is null?
In the documentation provided by BioTrackTHC we see that in the inventory_room_add API call we understand that the room ID is an integer value and “A room identifier must always be greater than zero”. Ok, it's required.
Then we review the inventory_room_modify and inventory_room_remove API calls which describe that the ID field is required to be able to either remove, or modify this record. Ok, seems like this Room ID field is a pretty critical component of the API calls.
When we asked BioTrackTHC about this missing data the reply was that 'name and roomid are “user” defined fields' and they (BioTrack) “suggest you double check your data submissions before sending to traceability.” Obviously, they are user defined and yes, let's double check our data.
These rooms were not created through the API, these rooms MUST have been created by BioTrackTHC. See, in their system the room Quarantine is a pre-defined room. It's not created through the API. Furthermore, the API to create a room REQUIRES a room ID – therefore it's not possible that this record was created through the API.
Further reading of the API document describes the roomid field as “Integer, user provided, that uniquely identifies the inventory room”. Here we have a situation where this data is missing.
This is a simple case where the data from BioTrackTHC doesn't match the description in the documentation. It appears to be another case where their support team failed to comprehend the question and then attempts to blame the integrator.
When your documentation indicates that a field is required, and API calls force the field to be present then you cannot blame an integrator for the failure. Either the API calls are not forcing this field (bad) OR this pre-defined room was created in error by the operator (BioTrackTHC). Either outcome points to a broken system.