I am trying to make an inventory system for laboratories that allows users to keep track of where their cell samples (stored in vials) are kept. The samples are stored in boxes where each box has a slot number. An example grid is shown below which displays the general way in which I want the boxes to be represented. As you can see, there are filters that allow the user to locate boxes in the freezer. After filtering for the correct box, I want the users to be able to see exactly where their samples are located in the box (the boxes are numbered left to right 1 - n, where n is the max number of slots in the box).
So here’s the question: can I have information displayed in non-consecutive slots in a repeating group? I would like to be able to insert vials, say, in slot 1-14, and then also place a different kinds of vial from a different experiment in slots 70-81, which means all slots in between would show as empty. I tried using normal groups within groups at first, which is how I constructed the above grid, but I wasn’t able to conduct a search for a specific item in my freezer stock because a search returns a list, which is only appropriate for a repeating group, I think, unless I’m doing something wrong. I would appreciate any guidance at all for this!
I have thought of using a list of number before, because it would be easier to enter duplicate vials of samples should any occur (storing 10+ vials of the same cell type is common), so your solution will definitely help me in this regard. If I have a user enter the number of vials, I suppose I could auto-generate a list of slot numbers that accommodates the number of vials?
If you are always going to have the same grid size ( I assume so because it is for representing a “freezer” and the space of the freezer would always be constant ) then you might consider using a system that accepts a number as a data field on your data types.
For setting up the data base consider having a data type of Sample with data fields of “name”, “id”, “slot_number” “experiment” and any other information necessary for the sample.
Do little digging online and the forum about relational databases. You should also include in yours a data type of “Experiments” and use the relationship for the data field of “experiments” in your data type of Samples.
You could also consider having in the data type of Sample a data field of “sample_type” if there will be different types of samples for things like blood samples, urine samples etc. ( I don’t think those would ever be stored together but I don’t know much about what labs you are building for are testing )
Then what I would do, assuming the lab workers are using your tool and entering the data themselves, provide a way for them to upload the “slot number”.
Make sure to limit the max and min value of 81 and 1 respectively.
Then you could set up your conditionals on the repeating group that searches for data type “Samples”. Actually, you’d have a group containing all elements pertaining to the sample of the cell ( all the data you want to display )… I label these groups in my apps Group_Contents.
I set the conditionals on those groups to “be visible” based on current cell’s index. The index of a repeating group is a number…basically if you have a grid of 81 squares as a repeating group, it would have a max index of 81…each cell has an index number and they are consecutive.
Set the conditionals to make the group visible or not visible based on the “current cells index = current cells samples slot number”