Skip to main content

OCDX File Format

1. References

3. Purpose and Core Concepts

The OCDX file format is designed to enable seamless transfer of medical 3D project data between cDx and other 3D applications within the organization. It facilitates collaboration and editing across various toolsets.

3.1 Key Features

  • Container Structure: ZIP archive with .ocdx extension, containing project files and a description file in XML/JSON format.
  • Data Protection: Encryption for critical files and password protection for sensitive content.
  • 3D Object Support: Handles STL and PLY formats, aligned to DICOM volumes.
  • Comprehensive Data Types: Supports volumetric scans (DICOM), images, and attachments.

3.2 Main Components

  • Container Description File: Metadata, patient information, and file references.
  • Patient Data: Includes metadata, volumes, models, and planning information.
  • Treatment Plans: Detailed planning data, including implants and surgical guides.
  • Supporting Files: Images and attachments at patient and plan levels.

3.3 Technical Specifications

  • Identification: UUIDs for unique component identification.
  • Transformations: 4x4 matrices for object positioning.
  • Versioning: Tracks container format and software compatibility.

4. OCDX Format Specification

4.1 Container Description File Structure

The description file provides metadata about the container contents. It supports XML or JSON, with JSON being the preferred format.

4.2 General Structure

  • Root Element: <ocdx>
    • Attributes:
      • version (string): Format version.
    • Child Elements:
      • <meta>: Container metadata.
      • <patient>: Patient data.
      • <plans>: Treatment plans.

4.3 Metadata Element (<meta>)

  • Attributes:
    • <id>: UUID of the container.
    • <created>: ISO 8601 creation timestamp.
    • <modified>: Last modification timestamp.
  • Child Elements:
    • <editor>: Software metadata.

4.4 Patient Element (<patient>)

  • Attributes:
    • <id>: UUID of the patient.
  • Child Elements:
    • <meta>: Patient metadata (e.g., name, birthdate).
    • <volumes>: Volumetric scan data.
    • <models>: 3D models.
    • <images>: Images.
    • <attachments>: Attachments.

4.5 Plan Element (<plan>)

  • Attributes:
    • <id>: UUID of the plan.
  • Child Elements:
    • <meta>: Plan metadata (e.g., name, creation date).
    • <content>: Plan details (e.g., implants, models, images).

4.6 Example JSON Structure

{
"version": "1.0",
"meta": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"created": "2025-01-01T12:00:00Z",
"modified": "2025-01-31T15:30:00Z",
"editor": {
"codiagnostix": {
"version": "3.2",
"softwareVersion": "3.2.1"
}
}
},
"patient": {
"id": "987e6543-b21a-34c1-d789-123456789abc",
"meta": {
"id": "P001",
"name": "John Doe",
"birthDate": "1980-05-15"
},
"volumes": [
{
"id": "vol1",
"format": "dcm",
"recordDate": "2025-01-01T10:00:00Z"
}
],
"models": [
{
"id": "mod1",
"format": "stl",
"jawType": "upper",
"name": "Upper Jaw",
"color": "#FF00FF"
}
],
"images": [
{
"id": "img1",
"format": "png",
"name": "Pre-op Scan",
"created": "2025-01-01T11:00:00Z"
}
],
"attachments": [
{
"id": "att1",
"format": "pdf",
"name": "Surgical Report",
"created": "2025-01-02T09:00:00Z"
}
]
},
"plans": [
{
"id": "plan1",
"meta": {
"name": "Implant Plan 1",
"created": "2025-01-05T14:00:00Z",
"modified": "2025-01-06T16:00:00Z",
"jawType": "upper"
},
"content": {
"implants": [
{
"id": "impl1",
"format": "stl",
"article": "1234567",
"manufacturer": "Straumann",
"model": "Bone Level Roxolid SLActive",
"diameter": 4.1,
"length": 12.0
}
],
"modelsLocal": [
{
"id": "mod2",
"format": "stl",
"jawType": "upper",
"name": "Surgical Guide",
"color": "#00FF00"
}
],
"images": [
{
"id": "img2",
"format": "jpeg",
"name": "Post-op Scan",
"created": "2025-01-07T12:00:00Z"
}
],
"attachments": [
{
"id": "att2",
"format": "txt",
"name": "Procedure Notes",
"created": "2025-01-07T15:00:00Z"
}
]
}
}
]
}

5. Recommendations

  1. Standardize Transformation Matrices: Ensure alignment with DICOM space.
  2. Consolidate JSON Structure: Include all related data (e.g., nerves, panoramic curves) in the main JSON.
  3. Adopt Draco Compression: Optimize storage and transfer efficiency.
  4. Expand Format Support: Ensure compatibility with PLY and other formats.
  5. Define Validation Guidelines: Provide clear rules for file structure and content validation.

By addressing these points, the OCDX format can achieve better interoperability and alignment with organizational goals.