Clinical Terminologies for Australian FHIR
Clinical terminologies provide standardized codes for representing health information. In Australia, the National Clinical Terminology Service (NCTS) manages SNOMED CT-AU, AMT, and other terminologies essential for FHIR implementations.
This module covers NCTS, SNOMED CT-AU, AMT, Ontoserver, Pathling, and the FHIR Terminology Services API for code validation, expansion, translation, and lookup operations.
This is the key beginner mental model for FHIR terminology. A CodeSystem defines the universe of concepts, a ValueSet selects the allowed subset for one use case, and a ConceptMap explains how to translate between systems when one coding scheme is not enough.
Terminology Importance
Standardized terminologies enable semantic interoperability - ensuring that "myocardial infarction" means the same thing across all systems, enabling accurate data exchange and analytics.
- NCTS: National Clinical Terminology Service (ADHA)
- SNOMED CT-AU: Comprehensive clinical terminology
- AMT: Australian Medicines Terminology
- Ontoserver: FHIR terminology server (CSIRO)
- Pathling: FHIR analytics and terminology library
- FHIR Terminology API: Standard terminology operations
National Clinical Terminology Service (NCTS)
The National Clinical Terminology Service (NCTS) is operated by the Australian Digital Health Agency and provides authoritative access to clinical terminologies for the Australian healthcare system.
NCTS Responsibilities
- Distribute SNOMED CT-AU to Australian healthcare
- Maintain and extend AMT (Australian Medicines Terminology)
- Provide terminology licensing and access
- Support terminology implementation and education
- Coordinate with international terminology bodies
- Integrate with PBS (Pharmaceutical Benefits Scheme)
NCTS Architecture
NCTS service architecture
Loading diagram...
Accessing NCTS
- NCTS Online Portal: Browser-based terminology browser
- Terminology Download: Bulk downloads for local systems
- FHIR API: Programmatic access via Ontoserver
- Licensing: Required for commercial use
NCTS Licensing
SNOMED CT and AMT require licensing. Australian healthcare organizations typically have coverage through ADHA agreements. Verify licensing requirements for your use case.
NCTS Portal
ADHA page describing the National Clinical Terminology Service, licensing, and access models.
NCTS PortalSNOMED CT-AU
SNOMED CT (Systematized Nomenclature of Medicine - Clinical Terms) is the world's most comprehensive clinical terminology. SNOMED CT-AU is the Australian edition including local extensions.
SNOMED CT Coverage
- Clinical findings (diseases, disorders)
- Procedures (interventions, surgeries)
- Organisms (bacteria, viruses)
- Substances (drugs, materials)
- Body structures (anatomy)
- Events (history, family history)
- Social contexts (occupation, lifestyle)
- Specimens (sample types)
SNOMED CT Hierarchy
SNOMED CT uses a hierarchical structure with parent-child relationships:
SNOMED CT-AU Hierarchy Example:
138875005 |Snomed CT Concept (hierarchy)|
└── 404684003 |Clinical finding (finding)|
└── 390649002 |Disorder of respiratory system (disorder)|
└── 195967001 |Asthma (disorder)|
├── 313424008 |Mild asthma (disorder)|
├── 313425009 |Moderate asthma (disorder)|
└── 313426005 |Severe asthma (disorder)|
└── 272379006 |Event (event)|
└── 182840001 |Drug therapy (procedure)|
└── 432102000 |Administration of substance (procedure)|
└── 373873005 |Pharmaceutical / biologic product (product)|
└── 3118004 |Medicinal product (product)|
Australian Extensions
SNOMED CT-AU includes Australian-specific content:
- Indigenous health concepts
- Australian disease patterns
- Local procedure terminology
- Australian medication concepts
- Regional organism variations
SNOMED CT in FHIR
SNOMED CT is used in FHIR for:
SNOMED CT in FHIR Condition
Structured JSON example rendered with depth controls for easier inspection.
Click on an annotation to highlight it in the JSON
Australian Medicines Terminology (AMT)
The Australian Medicines Terminology (AMT) provides standardized representation of medicines used in Australian healthcare, including brands, generics, formulations, and PBS items.
AMT Structure
AMT hierarchy levels
| Level | Description | Example |
|---|---|---|
| Substance | Active ingredient (e.g., Paracetamol) | Paracetamol 500mg tablet |
| Item | Branded or unbranded product | Panadol tablets, Paracetamol tablets |
| Pack | Packaged product with quantity | Panadol 20 tablets pack |
| PBS Item | PBS-subsidized product | Paracetamol 500mg tablet 20 (PBS) |
AMT Components
- Substances: Active ingredients
- Products: Branded and unbranded medicines
- Packages: Packaged products with quantity
- PBS Items: Subsidized products
- VMP: Virtual Medicinal Product (generic)
- AMP: Actual Medicinal Product (branded)
AMT in FHIR
AMT is used in FHIR for medication representation:
AMT in FHIR MedicationRequest
Structured JSON example rendered with depth controls for easier inspection.
Click on an annotation to highlight it in the JSON
PBS Integration
AMT integrates with PBS (Pharmaceutical Benefits Scheme) codes, enabling accurate prescription processing and subsidy claiming.
Ontoserver: FHIR Terminology Server
Ontoserver is a FHIR terminology server developed by CSIRO's Australian e-Health Research Centre, providing comprehensive terminology services for SNOMED CT, AMT, and other code systems.
Ontoserver Capabilities
- FHIR R4 Terminology Service API
- SNOMED CT-AU support
- AMT (Australian Medicines Terminology)
- LOINC for laboratory tests
- Value set expansion and validation
- Code translation via ConceptMaps
- Subsumption testing
- Custom terminology loading
Ontoserver Deployment
Ontoserver can be deployed on AWS:
- ECS Fargate for container orchestration
- RDS PostgreSQL for terminology storage
- ALB for load balancing
- ElastiCache for query caching
- S3 for terminology file storage
- CloudWatch for monitoring
Terraform: Ontoserver on AWS
# ECS Cluster for Ontoserver
resource "aws_ecs_cluster" "ontoserver" {
name = "ontoserver-cluster"
setting {
name = "containerInsights"
value = "enabled"
}
tags = {
Name = "ontoserver-cluster"
}
}
# ECR Repository for Ontoserver image
resource "aws_ecr_repository" "ontoserver" {
name = "ontoserver"
image_tag_mutability = "MUTABLE"
image_scanning_configuration {
scan_on_push = true
}
tags = {
Name = "ontoserver-repo"
}
}
# ECS Task Definition
resource "aws_ecs_task_definition" "ontoserver" {
family = "ontoserver"
network_mode = "awsvpc"
requires_compatibilities = ["FARGATE"]
cpu = 2048
memory = 4096
execution_role_arn = aws_iam_role.ecs_execution.arn
task_role_arn = aws_iam_role.ecs_task.arn
container_definitions = jsonencode([{
name = "ontoserver"
image = "${aws_ecr_repository.ontoserver.repository_url}:latest"
portMappings = [{
containerPort = 8080
hostPort = 8080
protocol = "tcp"
}]
environment = [
{
name = "JAVA_OPTS"
value = "-Xmx2g -Xms1g"
},
{
name = "SPRING_PROFILES_ACTIVE"
value = "aws"
},
{
name = "DB_HOST"
value = aws_db_instance.terminology_db.address
},
{
name = "DB_PASSWORD"
value = "${aws_secretsmanager_secret_version.db_credentials.secret_string}"
}
]
logConfiguration = {
logDriver = "awslogs"
options = {
"awslogs-group" = aws_cloudwatch_log_group.ontoserver.name
"awslogs-region" = "ap-southeast-2"
"awslogs-stream-prefix" = "ontoserver"
}
}
}])
}
# RDS PostgreSQL for terminology storage
resource "aws_db_instance" "terminology_db" {
identifier = "terminology-db"
engine = "postgres"
engine_version = "15"
instance_class = "db.r6g.large"
allocated_storage = 100
storage_encrypted = true
kms_key_id = aws_kms_key.fhir_data.arn
db_name = "terminology"
username = "ontoserver"
password = var.db_password
vpc_security_group_ids = [aws_security_group.ontoserver_db.id]
db_subnet_group_name = aws_db_subnet_group.main.name
backup_retention_period = 30
multi_az = true
tags = {
Name = "terminology-db"
}
}Ontoserver
CSIRO Ontoserver documentation and learning material for FHIR terminology operations.
OntoserverPathling: FHIR Analytics & Terminology
Pathling is an open-source FHIR analytics and terminology library developed by CSIRO, enabling powerful querying and analysis of FHIR data with built-in terminology support.
Pathling Features
- FHIRPath expression evaluation
- Terminology-aware queries
- Code system membership testing
- Value set expansion
- Subsumption testing in queries
- Aggregate functions with terminology
- Spark-based processing for large datasets
Pathling Terminology Functions
Pathling provides FHIRPath extensions for terminology:
// Check if code is in value set
Observation.code.memberOf('http://hl7.org/fhir/ValueSet/observation-vitalsigns')
// Translate code using ConceptMap
Patient.generalPractitioner.translate('http://hl7.org.au/fhir/ConceptMap/gp-roles')
// Get code display
Condition.code.display
// Subsumption test
Condition.code.subsumes('http://snomed.info/sct|195967001|')
// Value set expansion
expand('http://hl7.org.au/fhir/ValueSet/australian-indigenous-status')Pathling Benefits
Pathling enables terminology-aware analytics without requiring a separate terminology server, making it ideal for population health and research use cases.
FHIR Terminology Services API
The FHIR Terminology Services API defines standard operations for working with terminologies, including validation, expansion, translation, and lookup.
Terminology Operations
FHIR terminology operations
| Operation | Description | Input | Output |
|---|---|---|---|
| $validate-code | Validate a code against a value set | ValueSet + Coding/CodeableConcept | Validation result (valid/invalid, issues) |
| $expand | Expand a value set to list all codes | ValueSet + expansion parameters | Expanded ValueSet with all matching codes |
| $lookup | Look up code properties | Code + CodeSystem | Code definition, display, properties |
| $translate | Translate code between systems | Coding + ConceptMap | Translated Coding in target system |
| $subsumes | Test subsumption relationship | Two codes | Relationship (equivalent, subsumes, subsumed-by) |
| $compose | Compose value set from components | ValueSet composition | Composed ValueSet |
FHIR terminology operations workflow
Loading diagram...
Terminology Server
Ontoserver and NCTS FHIR APIs implement these standard terminology operations, enabling code validation, value set expansion, and cross-terminology translation.
$validate-code Example
POST /ValueSet/$validate-code
Content-Type: application/fhir+json
{
"valueSet": {
"url": "http://hl7.org.au/fhir/ValueSet/australian-indigenous-status"
},
"coding": {
"system": "https://healthterminologies.gov.au/fhir/CodeSystem/australian-indigenous-status-1",
"code": "1",
"display": "Aboriginal but not Torres Strait Islander origin"
}
}
Response:
{
"resourceType": "Parameters",
"parameter": [
{
"name": "result",
"valueBoolean": true
},
{
"name": "display",
"valueString": "Aboriginal but not Torres Strait Islander origin"
}
]
}$expand Example
GET /ValueSet/$expand?url=http://hl7.org.au/fhir/ValueSet/australian-indigenous-status
Response:
{
"resourceType": "ValueSet",
"url": "http://hl7.org.au/fhir/ValueSet/australian-indigenous-status",
"expansion": {
"contains": [
{
"system": "https://healthterminologies.gov.au/fhir/CodeSystem/australian-indigenous-status-1",
"code": "1",
"display": "Aboriginal but not Torres Strait Islander origin"
},
{
"system": "...",
"code": "2",
"display": "Torres Strait Islander but not Aboriginal origin"
}
// ... more codes
]
}
}FHIR ValueSet Resource
FHIR ValueSet Example
Structured JSON example rendered with depth controls for easier inspection.
Click on an annotation to highlight it in the JSON
FHIR ConceptMap Resource
FHIR ConceptMap Example
Structured JSON example rendered with depth controls for easier inspection.
Click on an annotation to highlight it in the JSON
Summary & Key Takeaways
Clinical terminologies are essential for semantic interoperability in Australian healthcare FHIR implementations. NCTS, SNOMED CT-AU, AMT, Ontoserver, and Pathling provide the foundation for standardized health data exchange.
Core Concepts Recap
- NCTS: National Clinical Terminology Service (ADHA)
- SNOMED CT-AU: Comprehensive clinical terminology
- AMT: Australian Medicines Terminology
- Ontoserver: FHIR terminology server
- Pathling: FHIR analytics with terminology
- FHIR Terminology API: Standard operations
Implementation Checklist
- Obtain NCTS licensing for SNOMED CT and AMT
- Deploy Ontoserver or use NCTS FHIR API
- Implement $validate-code for data entry validation
- Use $expand for dropdown/value set population
- Create ConceptMaps for code translation
- Integrate Pathling for terminology-aware analytics
- Bind FHIR elements to appropriate ValueSets
- Test terminology operations in Connectathons
Next Steps
After understanding terminologies, explore real-world implementations (PROMs, PCA), Connectathon testing, and community engagement opportunities.
Knowledge Check
Test your understanding with this quiz. You need to answer all questions correctly to mark this section as complete.