Go to the first, previous, next, last section, table of contents.

Methods that select parts of a HL7 class

const component type& getcomponent()
Selector(s) or extractor(s) one for each component of public relevance. Extractors are canonically named getcomponent(), where component is the name of the component that the extractor will access. The component is returned by constant reference as the value of the function. Thus you can use the getcomponent() function in any term except you may not modify the returned object.
result setcomponent(component type&)
Modifier(s) one for each component of public relevance. Modifiers always set an object to be present.

If you want to modify a component of an object, you have to getcomponent() the object first, assigning it to a variable. Then modify this variable and finally write the variable back to the outer object with setcomponent(). It would be not correct to allow modifying access to parts of an object directly, because this would violate encapsulation of data. On the other hand it results in quite ugly code. Suppose you want to set the first name of a patient in an ADT message. Instead of writing something like this:

ACKmsg ack;

ack.PatIde.PatName.FirstName = "Peter";

You must break the assignment term down into the following sequence:

ACKmsg ack;
PIDseg pid = ack.getPatIde();
PNtyp   pn = pid.getPatName();

        pn.setFirstName("Peter");
       pid.setPatName(pn);
       ack.setPatIde(pid);

Go to the first, previous, next, last section, table of contents.