Substances are modeled as 'Substance Definition' resources in the GSRS system and referenced both in the request Task and in the resulting PhPID
Search by substance (Methotrexat):
Here we use the search parameter _has:Ingredient:for:substance-code=GSID23G92UMX93H45.
Search by parent PhPID (i.e. searching all PhPIDs that has a specific level1, 2, or 3 PhPID as parent):
or we can explicitly specify the system
Search by MedicinalProductId
Here we use the search parameter 'form-of.identifier=[MPID]'
The identifier can also be specified as 'form-of.identifier=[System|MPID]'
Search by id:
Search by name:
Search by code:
To search for a MedicinalProductDefinition representing an MPID we need to search that resource, specifying what AdministrableProductDefinition it is connected to via the formOf attribute according to the following example:
fhir/MedicinalProductDefinition?_has:AdministrableProductDefinition:form-of:identifier=[PhPId]
When searching for a MedicinalProductDefinition using an Id or Identifier we simply use the format _id=[productId] or identifier=[MPID].
In the current implementation Id and Identifier is often (but not always) the same but Id should be the Id of the resource in the UMC system (WHODrug Product Id) while the Identifier should be the national IDMP MPID.
The following two examples actually retrieve the same resource.
Search by id:
Search by identifier:
Any resource can be returned either as xml or json. This is defined using an accept header or by a query string parameter as follows:
The PhPID resource (AdministrableProductDefinition).
The Medicinal Product resource used to validate the request (MedicinalProductDefinition).
The Substance resource (SubstanceDefinition)
The Organization resource
The Task resource (used for PhPID and GSID requests)