Skip to content

Object Relationships

Eddy Lelièvre-Berna edited this page May 18, 2021 · 1 revision

The GAM_OBJECTRELATION table is meant to represent the relationship between objects. Here, a relationship between two objects usually refers to objects are connected by the flow of Helium through the system. When Helium moves from one object to another, there is a relationship between the two. The information stored by this table is used for the representation of the system in the web client used at HZB.

Some examples of relationships and the devices connected by them are:

  • Vessels are assigned to level meters through relationships
  • Level meters are assigned to positions through relationships
  • Level meters are assigned to base stations through relationships
  • Base stations are assigned to positions through relationships
  • Vessels are assigned to balance devices using relationships

Some objects such as positions or base stations are most of the time static, while others such as level meters and vessels are not. This reflects on the status of relationships, which can be permanent or temporary. When a vessel moves around, a relationship between the level meter and a coordinator is ended and a new relationship is made with the coordinator that is now the closest.

In order for a balance measurement to be made and thus for a vessels to be checked in or out, a relationships needs to be created between the vessel and the balance device. This relationship is only active while the vessel is being weighed, and as a result it ends in only a couple of seconds.

The OR_OUTFLOW attribute is used for relationships between a position and any another object except coordinators. It is used to specify if the object drains or feeds the system with Helium when connected to a position. The value of it is 0 for feeding the system, and 1 for draining the system. This attribute can also impact how the object connected to the position is displayed. For relationships between coordinators and positions, this attribute will always be NULL.

Booking Request

The booking request attribute is used to coordinate various programs that make up the Helium Management Program.

When you book in a gas bottle, the measurement program needs to tell the bottle program it is booked in. The relationship in this case is between the bottle and the position.

This attribute is usually only used for relationships between bottles and positions, but could be used for relationships between vessels and balance devices.

Primary relationships

Primary relationships are relationships between coordinators and positions whose position is the default position of the coordinate to be given to a vessel. There is at most one primary relationship for each coordinator. A relationship is primary if it is specified in the OR_PRIMARY attribute. This attribute is only used for relationships between coordinators and positions.

Relationships

There are two many to one relationships between this table and the GAM_OBJECT table, each relationship must be between two object, but objects do not have to participate in a relationship. These two relationships are represented by two foreign keys.

Object relationships table

Attribute name Attribute meaning Data type Mandatory Notes
OR_ID ID of relationship 32-bit Integer Yes It is the primary key. It is automatically incremented, no need to set it manually.
OR_PRIMARY Whether the relationship is a primary relationship. Integer from 0 to 9 No Only used for relationships between coordinators and positions. It is 1 for a primary relationship, and NULL otherwise.
OR_OBJECT_ID ID of one of the objects in the relationship 24-bit integer Yes e.g. Level Meter, Coordinator

It is a foreign key to the primary key of the GAM_OBJECT table.
OR_OBJECT_ID_ASSIGNED ID of the other objects in the relationship 24-bit integer Yes e.g. Vessel, Cryostat

It is a foreign key to the primary key of the GAM_OBJECT table.
OR_DATE_ASSIGNMENT Date this relationship was created String showing date in YYYY-MM-DD hh:mm:ss format Yes
OR_DATE_REMOVAL Date this relationship was ended String showing date in YYYY-MM-DD hh:mm:ss format No
OR_OUTFLOW Code that specifies if the object in a relationship with a position feeds or drains the system Integer can be 1 or 2 No It is 0 for an object that feeds the system, 1 for an object that drains the system
OR_BOOKINGREQUEST Code that specifies the status of the booking request Integer from 0 to 9 No It is 0 for NULL, 1 for asking to be booked in, 2 for booked in, 3 asking to booked out, 4 for booked out
Clone this wiki locally