Order Catalog Implementation Guide
current - CI Build

Order Catalog Implementation Guide, published by HL7 International - Orders and Observations Work Group. This is not an authorized publication; it is the continuous build for version current). This version is based on the current content of https://github.com/HL7/fhir-order-catalog/ and changes regularly. See the Directory of published versions

Spec - Devices

Detailed specifications for catalogs of medical devices

Resources and Profiles for all devices

The figure below shows the resources and profiles used to represent catalogs of medical devices.

Resources used by a catalog medical devices

When method 1 is chosen by the custodian of the catalog of devices, the catalog references its items: the Composition resource constrained by the Catalog profile to represent the whole catalog, references the items of this catalog from its Composition.section.entry elements.

When method 2 is chosen instead, the catalog is referenced by its items: Each DeviceDefinition resource constrained by the DeviceModel profile and representing an item of the catalog, references the Composition resource constrained by the CatalogHeader profile to represent the header of the catalog header, which holds the general properties of the catalog.

An item of the catalog describes a model or type of device, with its various identifiers, classifications, safety characteristics and properties, instantiated as a DeviceDefinition resource linked to a number of supporting resources providing further details.

Searching and retrieving devices from the catalog

Searching Approaches

The key searcheable assets in a catalog of devices are the model of devices exposed to the consumers of the compendium as instances of DeviceDefinition.

  • Two-step search: A client application browsing the content of the compendium may wish to first get the overview of a collection of devices at first glance, and then retrieve the full details associated with the ones of interest. In this case, the first query will perform a simple search on DeviceDefinition with the desirable criteria listed in the table below ; and then a second narrower search will add the _include:iterate=* parameter, to retrieve the selected DeviceDefinition resource(s) with their supporting resources (ClinicalUseDefinition, ChargeItemDefinition) in the searchset Bundle.
  • One-step search: Conversely a client application may wish to retrieve the full details of a device (or a small collection of devices) at first glance. In this case, it uses the appropriate search criteria for DeviceDefinition, in combination with the _include:iterate=* parameter so as to obtain all the supporting resources of each device retrieved, in the searchset Bundle.

Catalog servers may limit the iteration depth to an appropriate level for performance sake.

Search Parameters for models of devices (DeviceDefinition)

Name Type Description Expression Comment
_lastUpdated date Last system point in time of the DeviceDefinition instance can be used with =gt...
class token specific class of models of devices DeviceDefinition.classification.type For instance device class in GMDN or in EMDN
udi token The primary UDI of the device model DeviceDefinition.udiDeviceIdentifier.deviceIdentifier
packaging-udi token The primary UDI of the package containing the device DeviceDefinition.packaging.udiDeviceIdentifier.deviceIdentifier
identifier token A business identifier (other than the primary UDI) of the device DeviceDefinition.identifier
model-number string The model number of the device DeviceDefinition.modelNumber
name string a name of the model of device DeviceDefinition.deviceName.name A device may have more than one name.
catalog reference The reference to a Composition resource (profiled by CatalogHeader) owning this item DeviceDefinition.extension.where(url='http://hl7.org/fhir/uv/order-catalog/StructureDefinition/CatalogReference').valueReference.reference(Composition) catalog to search from

Examples of searching and retrieving devices from catalogs

In all examples below, [base] represents the endpoint of the catalog server. The answer of the server comes as a Bundle of type 'searchset' encapsulating the resources selected by the search.

One particular device compendium, is assumed to have Composition.id "a1" on the server.

List all catalogs of the server
GET [base]/Composition?type:text=Catalog&_summary=true

Obtains the summary of every catalog available on the server.The anwser Bundle contains one entry with a Composition resource for each catalog found.

List all device catalogs
GET [base]/Composition?type:text=Catalog&category=device&_summary=true

Obtains the summary of each catalog of devices available on the server. The anwser Bundle contains one entry with a Composition resource for each device catalog found.

Retrieve all details for a device model
GET [base]/DeviceDefinition?modelNumber=SCF332&_include:iterate=*

Obtains the full content of instances of DeviceDefinition with modelNumber = "SCF332" accompanied by their supporting resources. The anwser Bundle contains the full details for each: An entry for each matching DeviceDefinition and, below it, as many entries as resources referenced by this one (recursively).

Resources and Profiles for IVD testing devices

See the LIVD Implementation Guide