Skip to main content

CodeSystem $import

Large standard terminologies like SNOMED CT (350k+ codes) and LOINC (100k+ codes) are too large to manage within a single FHIR resource. The $import operation bulk-loads codes, display names, and metadata into a CodeSystem, enabling you to work with these essential terminologies efficiently.

Use Cases

  • Loading standard terminologies: Import SNOMED CT, LOINC, RxNorm, or ICD code systems into your Medplum instance
  • Custom code system management: Create and populate organization-specific code systems for internal coding standards
  • Terminology updates: Incrementally add new codes or update metadata when new terminology versions are released
  • Migration and synchronization: Import codes from existing terminology servers or legacy systems
[baseUrl]/CodeSystem/$import
[baseUrl]/CodeSystem/[id]/$import
Privileged Operation

This operation is only available to Project Admins and Super Admins.

Parameters

NameTypeDescriptionRequired
systemuriThe canonical URL of the code system to import intoNo*
conceptCodingA code, along with optional display text to add to the code systemNo
propertyPart[] (see below)Metadata about codes in the code system to be importedNo
designationPart[] (see below)Additional synonyms or translations of codes' display textNo
note

* If system is not provided, the operation must be invoked on a specific CodeSystem instance by ID.

Each property parameter contains a part array with three nested parameters:

NameTypeDescriptionRequired
codecodeThe code to which the property appliesYes
propertycodeThe property name (from CodeSystem.property.code)Yes
valuestringThe value of the propertyYes

Any designation parameters have three nested part parameters:

NameTypeDescriptionRequired
codecodeThe code to which the synonym or translation appliesYes
languagecodeThe language code for translationsNo
valuestringDisplay stringYes

Output

The operation returns the CodeSystem resource representing the code system into which the given concepts and properties were imported.

Examples

Request:

const result = await medplum.post(medplum.fhirUrl('CodeSystem', '$import').toString(), {
resourceType: 'Parameters',
parameter: [
{ name: 'system', valueUri: 'http://example.com/local-codes' },
{ name: 'concept', valueCoding: { code: 'VS', display: 'Vital signs' } },
{ name: 'concept', valueCoding: { code: 'HR', display: 'Heart rate' } },
{
name: 'property',
part: [
{ name: 'code', valueCode: 'VS' },
{ name: 'property', valueCode: 'child' },
{ name: 'value', valueString: 'HR' },
],
},
{
name: 'property',
part: [
{ name: 'code', valueCode: 'HR' },
{ name: 'property', valueCode: 'units' },
{ name: 'value', valueString: 'bpm' },
],
},
],
});