WHO-UMC IDMP Management and Publish API, published by Uppsala Monitoring Centre. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/Uppsala-Monitoring-Centre/WHO-UMC-IDMP-Service/ and changes regularly. See the Directory of published versions
In this section it is described how the WHO-UMC IDMP service (API) is used to request a new global PhPID represented by a AdministrableProductDefinition
(APD) in an asynchronous way.
The reason for using an asynchronous request model is that the process for generating PhPIDs includes a manual data validation step which can not be done instantly.
The asynchronous nature of the request is achieved by using a FHIR Task. In the Task a MedicinalProductDefinition
(MPD) resource, for which a PhPID should be generated, is used as input, placed in the contained section of the Task. The (MPD) contains information identifying the Medicinal Product, such as: name, marketing authorization holder, local MPID etc. The ingredient(s), form and strength of the MPD is modelled using Ingredient resources.
Upon a successful request, a PhPID is generated and an (APD) resource representing it will be available, referenced in the output section of the Task. The ID (WHODrugID) of the WHODrug entry corresponging to the provided MPD will also be available in the output.
MedicinalProductDefinition
(MPD) resource together with Ingredient
(I) resource(s) with the information available for PhPID generation. The resources should only have ids for internal references in the Task
. If available, local Medicinal Product Identifiers (MPID)s should be present in the identifier section of the (MPD). Substances should (if possible) be referenced using the Global Substance Identifiers (GSID)s. Also add a Marketing Authorization Holder for the (MPD) using an Organization
(O) resource.Task
to the maintenance organization. Before POSTing the Task
it should be validated using a Task/$validate
POST
call.POST
.
Repeat step (4) until the status is Completed. Not to overload the server a exponential back-off approach should be used starting from four seconds up to 1024 seconds between the requests.GET
call will display status 'completed' and the body of the get will contain the Task
with a reference to the generated AdministrableProductDefinition
(APD) resource (including a PhPID) in the output section as well as a WHODrugID as an identifier.