ISO IDMP asks for products, substances, organisations, and pack data as structured, identified, resolvable data. Most of that information currently exists as narrative text in an SmPC and as rows in a system built to manage documents. TopQuadrant models it as governed data, reconciled to SPOR referentials and ready for the PMS API.
Trusted to govern the data behind the world's most regulated decisions.
EMA is retiring xEVMPD and SIAMED and replacing them with a FHIR-based Product Management Service. PMDA has mandated eCTD v4.0 since April 2026, the EU is targeting Q3 2026, and the FDA remains voluntary. A global regulatory function has to serve all of it from one product data model, or it maintains three and reconciles forever.
EMA deadline for PMS enrichment of pack size and manufacturing data for non-critical products, following the June 2026 date for ULCM and centrally authorised products.
ISO IDMP standards to satisfy at once: 11615, 11616, 11238, 11239, and 11240, all resolving against SPOR.
One governed product, substance, and organisation model serving EMA, FDA, and PMDA submissions.
Structured product data
Medicinal products, pharmaceutical products, presentations, and pack sizes are modelled with the identifiers, relationships, and controlled values IDMP requires. What existed only as narrative in an SmPC becomes governed, queryable, submittable data.
SPOR referential alignment
Product data is only valid if the organisations, substances, and controlled terms behind it resolve to SPOR. Organisation Loc-IDs, substance identifiers, and RMS controlled vocabularies are governed here and reconciled continuously rather than at submission time.
Multi-region submission support
Regional requirements differ in structure, not in substance. Hold the product data once, express region-specific views for EMA, FDA, and PMDA, and keep the differences visible as governed mappings instead of as three divergent databases.
Validation & audit
EMA portal business rules now govern technical validation. Express those rules as SHACL constraints and check your data continuously, so a gap is a violation on a dashboard rather than a rejection notice. Every value keeps its full change history for inspection.