Skip to content
APIsConceptsDrug Identification

Drug Identification

Posos APIs use a structured hierarchy to identify drugs at different levels of specificity. Understanding this hierarchy is essential for sending the right codes to analysis APIs.

Drug Concept Levels

Drugs are organized in four concept levels, from most generic to most specific:

International Virtual Drug

The international virtual drug (IVD) serves as the common ground between drugs from different countries. It allows linking equivalent concepts (same substance, same dosage, same form) across borders, facilitating international interoperability.

** good to know **: The IVD level is not currently exposed in Posos APIs but may be used in future releases to enable cross-country drug mapping.

Clinical Drug (Virtual Drug)

A clinical drug represents a group of clinically equivalent drugs sharing the same:

  • Active substance(s) (INN)
  • Dosage(s)
  • Pharmaceutical form
  • Route of administration

Clinical drugs are brand-agnostic. For example, all generic and branded versions of “atorvastatin 20 mg tablet” are grouped under a single clinical drug.

Posos internal code: prefix MV (e.g., MV00001165)

Branded Drug (Specialty)

A branded drug is a specific marketed product from a particular manufacturer. For example, “TAHOR 20 mg, comprimé pelliculé” (Pfizer’s brand of atorvastatin 20 mg).

Multiple branded drugs can correspond to one clinical drug.

Packaged Drug (Presentation)

A packaged drug is a specific commercial packaging of a branded drug — for example, “TAHOR 20 mg, box of 90 film-coated tablets.”

Coding Terminologies

Different coding systems are used depending on the drug concept level:

LevelTerminologyDescription
Clinical DrugpososPosos internal identifier (code prefix MV)
Clinical DrugmedicabaseMedicabase reference
Clinical DrugATC4 / ATC5 / ATC7WHO Anatomical Therapeutic Chemical classification
Branded DrugcisCode Identifiant de Spécialité (French national drug identifier, ANSM)
Branded DrugUCD7 / UCD13Unité Commune de Dispensation (hospital dispensing unit)
Packaged DrugCIP7 / CIP13Code Identifiant de Présentation (packaging-level code)
Ingredientinn / SMSInternational Nonproprietary Name

Regional note: The terminologies above are for the French market (fr_FR). For Belgium (fr_BE), available terminologies include amp, CNK, CTI Extended, and vmp.

Using Drug Codes in APIs

The DrugInput GraphQL type accepts one of three fields:

input DrugInput {
  clinicalDrug: CodingInput # for clinical drug codes
  brandedDrug: CodingInput # for branded drug codes (CIS, UCD)
  packagedDrug: CodingInput # for packaged drug codes (CIP)
  id: String # unique drug identifier
}
 
input CodingInput {
  code: String! # the drug code
  terminology: String! # the coding system (e.g., "posos", "cis", "CIP13")
}

Resolving Drug Identifiers

In most integrations, you first need to convert drug names or external codes into Posos identifiers using the autocomplete API:

GET /autocomplete-api/autocomplete?query=atorvastatin&entity_type=DRUG

The response includes coded identifiers that you can extract and pass to analysis APIs:

{
  "candidates": [
    {
      "label": "Atorvastatin 20 mg tablet",
      "codings": {
        "posos": [{ "code": "MV00001165", "terminology": "posos" }],
        "cis": [{ "code": "60151894", "terminology": "cis" }]
      }
    }
  ]
}

See Also