How to search for a code and find further related child codes

As you will see, the situation after searching for a code can be rather complex. The tarmedValidator module provides several search and utility capabilities. This section describes one way to use the tarmedValidator module to help the user select all the services which belong to a particular code, and which match some criteria set by the user. (How you actually present the data to the user for selection is a user interface issue, and is beyond the scope of this document.)

The following steps are illustrated in the figure.

Before you search for a service code using any of the Search methods of the ISearch interface, you can set a dignity filter (DignityFilter) for the responsible physician to search only for services which match the specified dignity criteria. Then you search for a service code, either by code label SearchCode or service name (SearchName255 or SearchName35), using the ISearch interface. 

When you have found a valid code, you call the CanExpand method from the ISearch interface. Depending on the return value, you try to expand the code, selecting records matching the criteria defined by the user, using the Expand method from the IUtility interface.

If the user specifies that the code represents an emergency service, you can use either the EmergencyInconvenience (for the physician) or EmergencyAdmission (hospital) method from the IUtility interface to generate the corresponding emergency records.

If the method CanHaveAnaesthesiaServices from the ISearch interface returns a true value, you can use the Anaesthesia method from the IUtility interface to generate the anaesthesia records corresponding to the selected code, including non-medical care services.

Many codes represent base services with which additional services may be provided, such as OP utilization. The method CanHaveAdditionalServices from the ISearch interface helps you identify such codes. With the method SearchAdditionalServices you can then find the codes corresponding to the allowed additional services.

Besides additional services, a base service can have slave services. These are services which may only be provided in conjunction with the base service. The methods SearchSlave or FindDescendant locate slave codes for a given base code. Whereas FindSlave returns only the direct slaves of the given code, FindDescendant returns the entire descendant tree (including slaves of slaves). In both cases, the result might contain records which have already been retrieved by the Expand method from the IUtility interface. It is therefore necessary to check for duplication before presenting selection lists to the user.

The method FindInclusion from the ISearch interface returns the optional inclusions for a given service.

Finally, with the method FindCombinations from the ISearch interface, possible combinations for a given service can be found. A combination is a special case of inclusion. For example, it may be permitted to combine service A with either service B or with service C, but not with both.

Before you present the search result set to the physician you might want to filter out some services. The following methods and properties can be used for filtering the result set.


The tarmedValidator is designed to validate services in one session only. With the methods GetFirstQuantityMultiSessionRestriction and GetNextQuantityMultiSessionRestriction you get the necessary information that you can apply multi session validation by querying the patient service database.