Skip to content

Polaris Clinical Document Architecture - Design Document

THIS IS A DRAFT PROPOSAL - NOT YET APPROVED FOR PRODUCTION USE

Date: July 23, 2025
Version: 2.0
Status: Draft - Major Revision
Purpose: Define FHIR R4 profiles for comprehensive clinical document architecture supporting three distinct section types with recursive containment

Executive Summary

This design document specifies a FHIR R4-based clinical document architecture for the Polaris implementation guide. The solution addresses user requirements for a universal, interoperable document model that can represent "every kind of EMR form" with graceful degradation across different EMR systems.

Key Design Principles

  1. Bundle-based Document Model: All documents are FHIR Bundles starting with a Composition resource
  2. Three Section Types: Text, Questionnaire/Form, and Canvas sections with recursive containment
  3. Flexible Section Architecture: Multiple sections of each type allowed in any order
  4. Universal Translation Target: Rich enough to capture diverse EMR content, with fallback strategies
  5. File Attachment Support: Arbitrary file attachments supported alongside structured content
  6. Canadian Standards Alignment: Consistent with CA-Core+, CABase, PSCA, and provincial implementations using standard LOINC codes

Architecture Overview

Core Resource Model

PolarisCoreDocumentBundle (Bundle)
├── PolarisCoreComposition (first entry, required)
├── Supporting Resources (Patient, Practitioner, etc.)
├── Section-specific Resources (multiple of each type, any order):
    ├── Text Sections: Embedded in Composition.section.text (LOINC: 34109-9)
    ├── Form Sections: Questionnaire + QuestionnaireResponse (LOINC: 74468-0/74465-6)
    ├── Canvas Sections: DocumentReference + Extensions (LOINC: 11540-0)
    └── File Attachment Sections: DocumentReference (any MIME type)

Section Type Architecture

Section Type Primary FHIR Resource Content Format LOINC Code Embedding Support
Text Composition.section.text XHTML + Markdown extension 34109-9 "Note" Structured data pills, inline forms, canvas elements
Questionnaire/Form Questionnaire + QuestionnaireResponse Name-value pairs, single column layout 74468-0/74465-6 References to other sections
Canvas DocumentReference + Extensions Images, PDFs, drawings, signatures 11540-0 "Image" Coordinate-based overlays
File Attachment DocumentReference Any MIME type, arbitrary files Standard document codes Referenced from other sections

Detailed FHIR Profile Specifications

1. PolarisCoreDocumentBundle Profile

Parent: Bundle
Canonical URL: https://fhir.apps.health/StructureDefinition/polaris-core-document-bundle

Key Constraints:

  • Bundle.type = "document" (fixed)
  • First entry must be PolarisCoreComposition
  • All referenced resources must be included (Bundle integrity)
  • Support for versioning through Bundle.identifier and timestamp

Bundle Entry Requirements:

  • Entry[0]: PolarisCoreComposition (required)
  • Entry[1..n]: Referenced resources (Patient, Practitioner, Organization, etc.)
  • Entry[n+1..m]: Section-specific resources (Questionnaire, DocumentReference, etc.)

2. PolarisCoreComposition Profile

Parent: Composition
Canonical URL: https://fhir.apps.health/StructureDefinition/polaris-core-composition

Core Elements:

  • identifier: Business identifier for document version tracking
  • status: Document lifecycle status (preliminary, final, amended, corrected)
  • type: Document type (LOINC-coded, extensible binding)
  • subject: Reference to PolarisCorePatient
  • date: Document creation/last modified timestamp
  • author: Reference to Practitioner/PractitionerRole/Device/Organization
  • title: Human-readable document title
  • confidentiality: Security classification
  • section: Hierarchical sections supporting four distinct types, multiple of each allowed in any order

Section Structure:

* section 0..* MS
* section ^slicing.discriminator.type = #value
* section ^slicing.discriminator.path = "code.coding.code"
* section ^slicing.rules = #open

// Text Section Slice - Multiple allowed
* section contains textSection 0..*
* section[textSection].code = http://loinc.org#34109-9 "Note"
* section[textSection].text 1..1 MS  
* section[textSection].text.div 1..1 MS  // XHTML content
* section[textSection] obeys polaris-text-section-constraints
* section[textSection].extension contains PolarisMarkdownExtension named markdown 0..1

// Form Section Slice - Multiple allowed
* section contains formSection 0..*
* section[formSection].code from PolarisFormSectionCodes (required)
* section[formSection].entry 1..* MS
* section[formSection].entry only Reference(PolarisQuestionnaire or PolarisQuestionnaireResponse)

// Canvas Section Slice - Multiple allowed  
* section contains canvasSection 0..*
* section[canvasSection].code = http://loinc.org#11540-0 "Image"
* section[canvasSection].entry 1..* MS
* section[canvasSection].entry only Reference(PolarisCanvasDocumentReference)

// File Attachment Section Slice - Multiple allowed
* section contains attachmentSection 0..*
* section[attachmentSection].code from PolarisAttachmentSectionCodes (extensible)
* section[attachmentSection].entry 1..* MS
* section[attachmentSection].entry only Reference(PolarisFileAttachmentDocumentReference)

// Value Sets for Section Codes
ValueSet: PolarisFormSectionCodes
Id: polaris-form-section-codes
* http://loinc.org#74468-0 "Questionnaire form definition Document"
* http://loinc.org#74465-6 "Questionnaire response Document"

ValueSet: PolarisAttachmentSectionCodes  
Id: polaris-attachment-section-codes
* http://loinc.org#18842-5 "Discharge summary"
* http://loinc.org#11492-6 "History and physical note"
* http://loinc.org#28570-0 "Procedure note"
* http://loinc.org#34133-9 "Summary of episode note"

3. Text Section Extensions

PolarisMarkdownExtension

URL: https://fhir.apps.health/StructureDefinition/polaris-markdown-content Context: Composition.section.text Purpose: Provide Markdown version alongside XHTML

Extension: PolarisMarkdownExtension
Id: polaris-markdown-content
Title: "Polaris Markdown Content Extension"
Description: "Provides Markdown representation of text content for systems supporting markdown rendering"
* ^context.type = #element
* ^context.expression = "Composition.section.text"
* value[x] only markdown
* valueMarkdown 1..1 MS

PolarisEmbeddedSectionExtension

URL: https://fhir.apps.health/StructureDefinition/polaris-embedded-section Context: Composition.section.text.div (on span elements) Purpose: Embed complete sections of any type within text content

Extension: PolarisEmbeddedSectionExtension
Id: polaris-embedded-section
Title: "Polaris Embedded Section Extension"
Description: "Embeds complete Polaris sections (Text/Form/Canvas/File) within text content as actual nested content"
* ^context.type = #element
* ^context.expression = "Element"  // Applied to span/div elements in XHTML
* extension contains
    embeddedSectionType 1..1 MS and
    embeddedSectionContent 1..1 MS and
    displayHint 0..1 MS and
    fallbackText 0..1 MS
* extension[embeddedSectionType].value[x] only code
* extension[embeddedSectionType].valueCode from PolarisEmbeddedSectionTypes (required)
* extension[embeddedSectionContent].value[x] only Composition.section
* extension[displayHint].value[x] only string
* extension[fallbackText].value[x] only string

ValueSet: PolarisEmbeddedSectionTypes
Id: polaris-embedded-section-types
* #text-section "Embedded Text Section"
* #form-section "Embedded Form Section"
* #canvas-section "Embedded Canvas Section"
* #attachment-section "Embedded File Attachment Section"

4. Form Section Profiles

PolarisQuestionnaire Profile

Parent: Questionnaire
Canonical URL: https://fhir.apps.health/StructureDefinition/polaris-questionnaire

Key Constraints:

  • Must include version for consistency with bundled responses
  • Support for single-column layout hint
  • Extended item types for clinical data
  • Support for embedded sections as answer values
  • Recursive containment of any section type
Profile: PolarisQuestionnaire
Parent: Questionnaire
* version 1..1 MS  // Required for version pinning
* item MS
* item.type MS
* item.type from PolarisQuestionnaireItemTypes (extensible)
* item.text 1..1 MS
* item.answerOption.value[x] MS
// Support for embedded sections in answer options
* item.answerOption.extension contains PolarisEmbeddedSectionAnswerExtension named embeddedSection 0..1
// Extension for layout hints
* item.extension contains PolarisLayoutHintExtension named layoutHint 0..1

ValueSet: PolarisQuestionnaireItemTypes
Id: polaris-questionnaire-item-types
* Questionnaire.item.type#string "String"
* Questionnaire.item.type#text "Text"
* Questionnaire.item.type#boolean "Boolean"
* Questionnaire.item.type#decimal "Decimal"
* Questionnaire.item.type#integer "Integer"
* Questionnaire.item.type#date "Date"
* Questionnaire.item.type#dateTime "DateTime"
* Questionnaire.item.type#choice "Choice"
* Questionnaire.item.type#open-choice "Open Choice"
* #embedded-section "Embedded Section" // New type for section containment

Extension: PolarisEmbeddedSectionAnswerExtension
Id: polaris-embedded-section-answer
Title: "Polaris Embedded Section Answer Extension"
Description: "Allows questionnaire answer options to contain complete embedded sections"
* ^context.type = #element
* ^context.expression = "Questionnaire.item.answerOption"
* value[x] only Composition.section

PolarisQuestionnaireResponse Profile

Parent: QuestionnaireResponse
Canonical URL: https://fhir.apps.health/StructureDefinition/polaris-questionnaire-response

Key Features:

  • Mandatory reference to specific Questionnaire version
  • Support for embedded sections as actual answer values
  • Clinical value type validation
  • Recursive containment support in responses
Profile: PolarisQuestionnaireResponse
Parent: QuestionnaireResponse
* questionnaire 1..1 MS  // Must reference specific version
* questionnaire only Canonical(PolarisQuestionnaire)
* item.answer.value[x] MS
// Standard FHIR answer types
* item.answer.value[x] ^type[+].code = #string
* item.answer.value[x] ^type[+].code = #boolean
* item.answer.value[x] ^type[+].code = #decimal
* item.answer.value[x] ^type[+].code = #integer
* item.answer.value[x] ^type[+].code = #date
* item.answer.value[x] ^type[+].code = #dateTime
* item.answer.value[x] ^type[+].code = #Coding
// Extended to support embedded sections as answer values
* item.answer.extension contains PolarisEmbeddedSectionResponseExtension named embeddedSectionAnswer 0..1

Extension: PolarisEmbeddedSectionResponseExtension
Id: polaris-embedded-section-response
Title: "Polaris Embedded Section Response Extension"
Description: "Contains complete sections as questionnaire response values"
* ^context.type = #element
* ^context.expression = "QuestionnaireResponse.item.answer"
* value[x] only Composition.section

5. Canvas Section Profiles

PolarisCanvasDocumentReference Profile

Parent: DocumentReference
Canonical URL: https://fhir.apps.health/StructureDefinition/polaris-canvas-document-reference

Enhanced Features:

  • Support for multiple content formats (images, PDFs)
  • Coordinate-based annotation overlays with embedded sections
  • Drawing and signature capabilities
  • PDF import with component positioning
  • Recursive section embedding at specific coordinates
Profile: PolarisCanvasDocumentReference
Parent: DocumentReference
* content 1..* MS
* content.attachment.contentType from PolarisCanvasContentTypes (extensible)
* content.attachment.data 1..1 MS
// Extension for canvas-specific metadata and embedded sections
* extension contains 
    PolarisCanvasMetadataExtension named canvasMetadata 0..1 MS and
    PolarisCanvasAnnotationExtension named annotations 0..* MS

PolarisCanvasMetadataExtension

Purpose: Canvas dimensions, coordinate system, PDF page mapping

Extension: PolarisCanvasMetadataExtension
Id: polaris-canvas-metadata
* extension contains
    width 0..1 MS and
    height 0..1 MS and
    coordinateSystem 0..1 MS and
    pdfPageNumber 0..1 MS
* extension[width].value[x] only positiveInt
* extension[height].value[x] only positiveInt
* extension[coordinateSystem].value[x] only code
* extension[coordinateSystem].valueCode from PolarisCoordinateSystems (required)

PolarisCanvasAnnotationExtension

Purpose: Drawings, signatures, positioned form elements, AND embedded sections at coordinates

Extension: PolarisCanvasAnnotationExtension
Id: polaris-canvas-annotation
Title: "Polaris Canvas Annotation Extension"
Description: "Supports drawings, signatures, positioned elements, and embedded complete sections at specific coordinates on canvas"
* extension contains
    annotationType 1..1 MS and
    coordinates 1..1 MS and
    content 0..1 MS and
    embeddedSection 0..1 MS and
    style 0..1 MS
* extension[annotationType].value[x] only code
* extension[annotationType].valueCode from PolarisCanvasAnnotationTypes (required)
* extension[coordinates].value[x] only string  // JSON coordinate data
* extension[content].value[x] only string  // For simple text/drawing content
* extension[embeddedSection].value[x] only Composition.section  // For embedded sections
* extension[style].value[x] only string  // CSS-like styling

ValueSet: PolarisCanvasAnnotationTypes
Id: polaris-canvas-annotation-types
Title: "Polaris Canvas Annotation Types"
Description: "Types of annotations that can be placed on canvas sections"
* #drawing "Drawing" "Freehand drawing or sketch"
* #signature "Signature" "Digital signature"
* #text "Text" "Text annotation"
* #shape "Shape" "Geometric shape"
* #embedded-text-section "Embedded Text Section" "Complete text section at coordinates"
* #embedded-form-section "Embedded Form Section" "Complete questionnaire/form at coordinates"  
* #embedded-canvas-section "Embedded Canvas Section" "Nested canvas section at coordinates"
* #embedded-attachment-section "Embedded File Section" "File attachment reference at coordinates"

6. File Attachment Section Profiles

PolarisFileAttachmentDocumentReference Profile

Parent: DocumentReference
Canonical URL: https://fhir.apps.health/StructureDefinition/polaris-file-attachment-document-reference

Key Features:

  • Support for arbitrary file types and MIME types
  • File metadata preservation (size, creation date, etc.)
  • Integration with other section types through references
  • Fallback display strategies for unsupported formats
Profile: PolarisFileAttachmentDocumentReference
Parent: DocumentReference
Id: polaris-file-attachment-document-reference
Title: "Polaris File Attachment DocumentReference Profile"
Description: "Profile for arbitrary file attachments in clinical documents, supporting any MIME type with appropriate metadata"

* content 1..1 MS
* content.attachment 1..1 MS
* content.attachment.contentType 1..1 MS  // Any MIME type allowed
* content.attachment.data 0..1 MS  // Base64 data or URL
* content.attachment.url 0..1 MS   // Alternative to embedded data
* content.attachment.size 0..1 MS
* content.attachment.hash 0..1 MS  // For integrity checking
* content.attachment.title 0..1 MS
* content.attachment.creation 0..1 MS

// Extension for file metadata
* extension contains PolarisFileMetadataExtension named fileMetadata 0..1 MS

// Must reference subject patient
* subject 1..1 MS
* subject only Reference(PolarisCorePatient)

PolarisFileMetadataExtension

Purpose: Additional file metadata and display hints

Extension: PolarisFileMetadataExtension
Id: polaris-file-metadata
Title: "Polaris File Metadata Extension"
Description: "Additional metadata for file attachments including display hints and processing instructions"

* extension contains
    originalFileName 0..1 MS and
    fileCategory 0..1 MS and
    displayHint 0..1 MS and
    processingInstructions 0..1 MS and
    embeddedSections 0..* MS

* extension[originalFileName].value[x] only string
* extension[fileCategory].value[x] only code
* extension[fileCategory].valueCode from PolarisFileCategories (extensible)  
* extension[displayHint].value[x] only string
* extension[processingInstructions].value[x] only string
* extension[embeddedSections].value[x] only Composition.section

// Value set for file categories
ValueSet: PolarisFileCategories
Id: polaris-file-categories
Title: "Polaris File Categories"
Description: "Categories for file attachments to aid in processing and display"
* ^status = #draft
* #document "Document" "Text-based document (PDF, DOC, etc.)"
* #image "Image" "Image file (JPEG, PNG, etc.)"
* #audio "Audio" "Audio recording"
* #video "Video" "Video recording"  
* #data "Data" "Structured data file (XML, JSON, CSV, etc.)"
* #archive "Archive" "Compressed archive (ZIP, TAR, etc.)"
* #other "Other" "Other file type"

Clinical Form Library Architectures and Mapping Strategies

This section comprehensively describes every conceivable architecture for clinical form libraries and how they map to and from the Polaris clinical document architecture. The goal is to ensure Polaris can serve as a universal translation target for any clinical form system.

1. Static Layout Form Architectures

1.1 Native Mobile/Desktop App Forms

Architecture: Fixed pixel-positioned UI controls with predefined layouts - Components: Buttons, text fields, checkboxes, dropdowns, sliders - Layout: Absolute positioning, fixed screen sizes, platform-specific controls - Data: Structured JSON/XML with field IDs and values

Mapping to Polaris: - Form Section: Use Questionnaire with PolarisLayoutHintExtension for positioning - Canvas Section: Screenshot of form layout as background image with coordinate overlays - Text Section: Fallback narrative description of form content

Mapping from Polaris: - Questionnaire → Native Controls: Map item types to platform controls - Canvas Annotations → Positioning: Use coordinates for control placement - Embedded Sections → Sub-forms: Recursive form generation

1.2 Web Form Libraries (React, Angular, Vue Components)

Architecture: Component-based forms with CSS styling and responsive layouts - Components: Reusable form components, validation libraries, state management - Layout: CSS Grid/Flexbox, responsive breakpoints, theme systems - Data: Component props, state objects, validation schemas

Mapping to Polaris: - Form Section: Questionnaire items map to component props - Text Section: CSS styles embedded as processing instructions - Canvas Section: Complex layouts rendered as images with hotspots - File Attachment: Component library exports (JSON schemas)

Mapping from Polaris: - Questionnaire → Components: Generate component trees from item hierarchy - Embedded Sections → Compound Components: Recursive component composition - Canvas Overlays → CSS Positioning: Convert coordinates to CSS transforms

2. Document-Based Form Architectures

2.1 Text Document Forms (Word, Google Docs)

Architecture: Document-based forms with fillable fields embedded in rich text - Components: Text boxes, checkboxes, dropdown lists, tables - Layout: Flow-based layout, page breaks, section headers - Data: Mail merge fields, form field references, document properties

Mapping to Polaris: - Text Section: Document content as XHTML with embedded form fields - Form Section: Extract fillable fields as Questionnaire items - File Attachment: Original document preserved with metadata - Canvas Section: Document rendered as images with form field overlays

Mapping from Polaris: - Text + Form → Document: Generate document template with mail merge fields - Embedded Sections → Document Sections: Map to document headings/sections - Canvas Annotations → Comments: Convert to document review comments

2.2 PDF Form Architectures

Architecture: PDF documents with interactive form fields and JavaScript behaviors - Components: PDF form fields (text, choice, signature), JavaScript actions - Layout: Fixed page layouts, absolute positioning, print-optimized - Data: PDF form data (FDF/XFDF), field dictionaries, annotation streams

Mapping to Polaris: - Canvas Section: PDF pages as images with field position metadata - Form Section: PDF form fields as Questionnaire items with coordinates - File Attachment: Original PDF with form field extraction metadata - Text Section: Extracted text content with field placeholders

Mapping from Polaris: - Canvas + Form → PDF: Generate PDF with form fields at specified coordinates - Embedded Sections → PDF Layers: Create layered PDF with section groups - Questionnaire → PDF Forms: Map item types to PDF field types

2.3 Scanned Paper Form Architectures

Architecture: Paper forms digitized through scanning with OCR and field recognition - Components: Scanned images, OCR text regions, checkbox recognition - Layout: Fixed paper dimensions, handwriting recognition zones - Data: OCR confidence scores, field boundary boxes, extracted text

Mapping to Polaris: - Canvas Section: Scanned form images with OCR-derived field overlays - Form Section: Recognized fields as Questionnaire items with confidence scores - Text Section: OCR text with uncertainty annotations - File Attachment: Original scan files with processing metadata

Mapping from Polaris: - Canvas → Print Template: Generate printable forms from canvas layouts - Form → Field Recognition: Provide field templates for future scanning - Text → OCR Validation: Use narrative text for OCR accuracy checking

3. Custom Form Engine Architectures

3.1 Absolute Positioning Form Engines

Architecture: Custom form builders with pixel-perfect positioning and complex layouts - Components: Drag-drop form designer, custom widgets, complex validation rules - Layout: Absolute X,Y positioning, z-index layering, responsive containers - Data: Form definition JSON, widget libraries, custom JavaScript behaviors

Mapping to Polaris: - Canvas Section: Form background/template with precise field positioning - Form Section: Field definitions with exact coordinate metadata - Text Section: Form instructions and help text with positioning hints - File Attachment: Custom widget definitions and JavaScript libraries

Mapping from Polaris: - Canvas + Form → Form Engine: Reconstruct form with exact positioning - Embedded Sections → Nested Widgets: Create compound custom widgets - Coordinates → Pixel Positioning: Direct mapping of canvas coordinates

3.2 Dynamic Layout Form Engines

Architecture: Forms generated from field lists with automatic layout algorithms - Components: Field type libraries, layout managers, responsive containers - Layout: Algorithm-driven positioning, responsive grids, automatic spacing - Data: Field definitions, layout rules, conditional logic, validation schemas

Mapping to Polaris: - Form Section: Direct mapping to Questionnaire items with layout hints - Text Section: Form descriptions and conditional logic as narrative - Canvas Section: Layout screenshots for complex arrangements - File Attachment: Layout rule engines and field libraries

Mapping from Polaris: - Questionnaire → Dynamic Layout: Use layout hints to guide algorithms - Embedded Sections → Sub-forms: Recursive layout generation - Text Instructions → Conditional Logic: Parse narrative for form rules

3.3 Flow-Based Form Architectures

Architecture: Multi-step forms with branching logic and conditional flows - Components: Step definitions, flow charts, conditional branches, progress tracking - Layout: Wizard interfaces, progress bars, step navigation - Data: Flow state machines, branching conditions, step completion tracking

Mapping to Polaris: - Form Section: Each step as separate Questionnaire with flow metadata - Text Section: Flow instructions and step descriptions - Canvas Section: Flow diagrams and step visualizations - Multiple Sections: Each flow step as separate section in sequence

Mapping from Polaris: - Multiple Form Sections → Flow Steps: Reconstruct flow from section sequence - Embedded Sections → Sub-flows: Create nested flow branches - Questionnaire Logic → Conditions: Map skip patterns to flow branches

4. Multimedia Form Architectures

4.1 Video/Audio Form Architectures

Architecture: Forms integrated with multimedia content for training or assessment - Components: Video players, audio controls, synchronized form fields, timestamps - Layout: Media players with overlay forms, timeline scrubbing, chapter markers - Data: Media files, timestamp markers, synchronized responses, media metadata

Mapping to Polaris: - Canvas Section: Video frames with timestamp-based form overlays - Form Section: Time-synchronized questions with media cues - File Attachment: Media files with synchronization metadata - Text Section: Transcripts and media descriptions

Mapping from Polaris: - Canvas + Form → Multimedia: Synchronize questions with media timeline - File Attachments → Media: Embed media with form interaction points - Timestamps → Questionnaire Logic: Create time-based conditional logic

4.2 3D/VR Form Architectures

Architecture: Forms in virtual or augmented reality environments - Components: 3D models, spatial interfaces, gesture controls, head tracking - Layout: 3D positioning, spatial relationships, immersive environments - Data: 3D coordinates, orientation data, gesture events, spatial annotations

Mapping to Polaris: - Canvas Section: 3D environment screenshots with spatial overlays - Form Section: Spatial interactions as specialized Questionnaire items - File Attachment: 3D models and VR environment definitions - Text Section: Spatial instructions and environment descriptions

Mapping from Polaris: - Canvas Coordinates → 3D Space: Convert 2D coordinates to 3D positioning - Embedded Sections → Spatial Zones: Create interactive 3D regions - Form Logic → Spatial Triggers: Map questionnaire logic to spatial events

5. Specialized Clinical Form Architectures

5.1 Medical Device Integration Forms

Architecture: Forms that interface directly with medical devices for real-time data - Components: Device connectors, real-time data streams, calibration controls - Layout: Device-specific interfaces, data visualization, alarm displays - Data: Device protocols, real-time measurements, calibration parameters

Mapping to Polaris: - Form Section: Device parameters as Questionnaire items with data types - Canvas Section: Device interface screenshots with control overlays - File Attachment: Device protocols and calibration data - Text Section: Device instructions and measurement interpretations

Mapping from Polaris: - Questionnaire → Device Controls: Map items to device parameter settings - Canvas Overlays → Interface Elements: Reconstruct device control interfaces - Real-time Data → Dynamic Updates: Handle live data in static document format

5.2 Clinical Decision Support Forms

Architecture: Forms with embedded clinical algorithms and decision trees - Components: Clinical calculators, risk assessments, guideline algorithms - Layout: Decision tree visualizations, risk meters, recommendation displays - Data: Clinical algorithms, decision matrices, evidence references

Mapping to Polaris: - Form Section: Decision inputs as Questionnaire with calculation logic - Canvas Section: Decision tree diagrams and algorithm flowcharts
- Text Section: Clinical guidelines and evidence-based recommendations - File Attachment: Algorithm definitions and reference materials

Mapping from Polaris: - Questionnaire Logic → Algorithms: Reconstruct clinical calculations - Canvas Diagrams → Decision Trees: Recreate decision support visualizations - Text Guidelines → Help Systems: Provide contextual clinical guidance

5.3 Genomic/Laboratory Form Architectures

Architecture: Forms for complex laboratory data entry and genomic variant annotation - Components: Sequence browsers, variant browsers, lab result entry, pedigree editors - Layout: Scientific visualizations, data tables, hierarchical displays - Data: Genomic coordinates, variant annotations, pedigree relationships, lab values

Mapping to Polaris: - Canvas Section: Genomic browser screenshots with variant annotations - Form Section: Lab values and variant data as structured Questionnaire - File Attachment: Genomic data files (VCF, FASTA) with metadata - Text Section: Genomic interpretations and lab result narratives

Mapping from Polaris: - Canvas Annotations → Genomic Coordinates: Map to genome browser positions - Form Data → Lab Systems: Export to laboratory information systems - Embedded Sections → Multi-scale Data: Handle genomic data hierarchies

6. Emerging Form Architectures

6.1 AI-Assisted Form Architectures

Architecture: Forms with AI-powered auto-completion, validation, and suggestions - Components: NLP processors, machine learning models, predictive text, smart validation - Layout: AI suggestion overlays, confidence indicators, learning interfaces - Data: Training data, model predictions, confidence scores, user feedback

Mapping to Polaris: - Form Section: AI suggestions as pre-populated Questionnaire answers - Text Section: AI-generated narrative with confidence annotations - File Attachment: AI model definitions and training data references - Canvas Section: AI decision visualizations and confidence heatmaps

Mapping from Polaris: - Questionnaire → AI Training: Use responses to improve AI models - Text Narrative → NLP Processing: Extract structured data for AI training - Embedded Sections → Multi-modal AI: Train on complex nested data structures

6.2 Blockchain-Based Form Architectures

Architecture: Forms with cryptographic integrity and distributed validation - Components: Digital signatures, smart contracts, distributed ledgers, proof systems - Layout: Cryptographic verification displays, audit trails, consensus indicators - Data: Hash chains, digital signatures, consensus proofs, audit logs

Mapping to Polaris: - Form Section: Cryptographic metadata as Questionnaire items - File Attachment: Blockchain transaction records and proof chains - Text Section: Audit narratives and verification instructions - Bundle Signatures: Cryptographic integrity for entire document

Mapping from Polaris: - Bundle → Blockchain Transaction: Submit entire document to distributed ledger - Questionnaire Signatures → Smart Contracts: Execute form logic on blockchain - Embedded Sections → Merkle Trees: Create cryptographic proofs of nested content

7. Universal Mapping Principles

7.1 Bidirectional Transformation Rules

  1. Structure Preservation: Maintain logical form structure through sections
  2. Data Fidelity: Preserve all data values with appropriate type conversion
  3. Layout Information: Capture positioning through Canvas sections when critical
  4. Behavioral Logic: Represent form logic through Questionnaire skip patterns
  5. Metadata Preservation: Store original format metadata in File Attachments
  6. Fallback Strategies: Always provide Text section fallbacks for complex content

7.2 Complexity Handling Strategies

  1. Recursive Decomposition: Break complex forms into nested embedded sections
  2. Multi-section Mapping: Use multiple Polaris sections for complex layouts
  3. Progressive Enhancement: Start with basic mapping, add complexity as needed
  4. Format Negotiation: Allow systems to request specific levels of complexity
  5. Graceful Degradation: Ensure basic functionality even with feature loss

7.3 Implementation Priorities

  1. Common Architectures First: Focus on web forms, PDFs, and document-based forms
  2. Standards Compliance: Ensure LOINC coding and FHIR conformance
  3. Tool Integration: Provide conversion utilities for major form platforms
  4. Validation Testing: Test round-trip conversion with major form systems
  5. Community Feedback: Iterate based on real-world implementation experience

This comprehensive mapping strategy ensures the Polaris clinical document architecture can serve as a true universal translation target for any clinical form system, regardless of its underlying technology or architectural approach.

Recursive Containment Examples and Demonstrations

This section provides concrete examples demonstrating how the Polaris architecture achieves complete symmetric recursive containment, where any section type can embed any other section type at unlimited depth.

Example 1: Canvas with Embedded Questionnaire Components

Scenario: Cardiac Assessment with Interactive EKG

A cardiologist needs to annotate an EKG trace with assessment questions and patient drawings.

{
  "resourceType": "Bundle",
  "type": "document",
  "entry": [
    {
      "resource": {
        "resourceType": "Composition",
        "section": [
          {
            "code": {
              "coding": [{"system": "http://loinc.org", "code": "11540-0", "display": "Image"}]
            },
            "entry": [{"reference": "DocumentReference/ekg-canvas"}]
          }
        ]
      }
    },
    {
      "resource": {
        "resourceType": "DocumentReference",
        "id": "ekg-canvas",
        "content": [{
          "attachment": {
            "contentType": "image/png",
            "data": "[base64 EKG trace image]"
          }
        }],
        "extension": [
          {
            "url": "https://fhir.apps.health/StructureDefinition/polaris-canvas-annotation",
            "extension": [
              {
                "url": "annotationType",
                "valueCode": "embedded-form-section"
              },
              {
                "url": "coordinates", 
                "valueString": "{\"x\": 200, \"y\": 100, \"width\": 300, \"height\": 200}"
              },
              {
                "url": "embeddedSection",
                "valueSection": {
                  "code": {
                    "coding": [{"system": "http://loinc.org", "code": "74468-0"}]
                  },
                  "entry": [{"reference": "Questionnaire/rhythm-assessment"}]
                }
              }
            ]
          }
        ]
      }
    },
    {
      "resource": {
        "resourceType": "Questionnaire",
        "id": "rhythm-assessment", 
        "item": [
          {
            "linkId": "rhythm",
            "text": "What rhythm do you see?",
            "type": "choice",
            "answerOption": [
              {"valueString": "Normal sinus rhythm"},
              {"valueString": "Atrial fibrillation"}
            ]
          },
          {
            "linkId": "patient-drawing",
            "text": "Patient's description of symptoms",
            "type": "embedded-section",
            "extension": [
              {
                "url": "https://fhir.apps.health/StructureDefinition/polaris-embedded-section-answer",
                "valueSection": {
                  "code": {"coding": [{"system": "http://loinc.org", "code": "11540-0"}]},
                  "entry": [{"reference": "DocumentReference/patient-chest-drawing"}]
                }
              }
            ]
          }
        ]
      }
    }
  ]
}

Result: EKG image with a questionnaire overlay at coordinates (200,100), where one question's answer is itself a canvas containing the patient's drawing of their chest pain location.

Example 2: Text Section with Embedded Canvas with Embedded Forms

Scenario: Surgical Report with Anatomical Diagrams and Assessment Forms

// Text section with embedded content
* section[textSection].text.div = """
<div>
  <h2>Surgical Procedure Report</h2>
  <p>Patient underwent laparoscopic cholecystectomy. The following anatomical 
     diagram shows the surgical approach:</p>

  <div data-fhir-embedded="canvas-section" 
       data-section-ref="DocumentReference/surgical-diagram">
    [Embedded surgical diagram with positioned assessment forms]
  </div>

  <p>Post-operative assessment completed with patient input at marked locations.</p>
</div>
"""

// The embedded canvas contains positioned forms
DocumentReference: surgical-diagram
  content.attachment.data = "[base64 anatomical diagram]"
  extension[annotations] = [
    {
      annotationType: "embedded-form-section",
      coordinates: "{\"x\": 150, \"y\": 200}",
      embeddedSection: {
        // Pain assessment questionnaire positioned over surgical site
        entry: ["Questionnaire/post-op-pain-assessment"]
      }
    },
    {
      annotationType: "embedded-form-section", 
      coordinates: "{\"x\": 300, \"y\": 150}",
      embeddedSection: {
        // Recovery tracking form positioned over recovery area
        entry: ["Questionnaire/recovery-tracking"]
      }
    }
  ]

Result: Surgical report text that contains an embedded anatomical diagram, which itself contains multiple questionnaires positioned at specific anatomical locations.

Example 3: Infinite Recursive Nesting

Scenario: Complex Multi-Modal Clinical Assessment

Document Structure:
└── Text Section: "Comprehensive Neurological Assessment"
    ├── Embedded Canvas: Brain MRI scan
    │   ├── Annotation at (100,150): Lesion marker
    │   └── Embedded Form at (200,100): Lesion Assessment
    │       ├── Question: "Lesion characteristics?"
    │       ├── Answer: Embedded Text: "Detailed radiological description..."
    │       │   └── Embedded Canvas: Magnified view of lesion
    │       │       └── Embedded Form: Measurement tool
    │       │           └── Answer: Embedded Canvas: Measurement annotations
    │       └── Question: "Clinical correlation?"
    │           └── Answer: Embedded Text: "Patient symptoms include..."
    │               └── Embedded Form: Symptom severity scale
    │                   └── Answer: Embedded Canvas: Patient pain drawing
    ├── Text continues: "Cognitive assessment results..."
    └── Embedded Form: Montreal Cognitive Assessment (MoCA)
        ├── Question: "Clock drawing test"
        │   └── Answer: Embedded Canvas: Patient's clock drawing
        │       ├── Scoring annotations at various coordinates
        │       └── Embedded Form: Scoring rubric
        └── Question: "Additional observations"
            └── Answer: Embedded Text: "Patient exhibited..."

Example 4: Real-World Clinical Form Architectures Mapped to Polaris

PDF Form with Interactive Elements → Polaris Mapping

Original PDF Form: - Page 1: Patient demographics form - Page 2: Medical history with checkboxes and signature area - Interactive JavaScript calculating BMI

Polaris Representation:

// Canvas section for PDF page as background
* section[canvasSection].entry = "DocumentReference/demographics-pdf-page1"
  extension[annotations] = [
    // Name field overlay
    {
      annotationType: "embedded-form-section",
      coordinates: "{\"x\": 100, \"y\": 50, \"width\": 200, \"height\": 25}",
      embeddedSection: {
        entry: ["Questionnaire/name-field"]
      }
    },
    // BMI calculator overlay  
    {
      annotationType: "embedded-form-section",
      coordinates: "{\"x\": 300, \"y\": 200, \"width\": 150, \"height\": 100}",
      embeddedSection: {
        entry: ["Questionnaire/bmi-calculator"]
      }
    }
  ]

// The BMI calculator questionnaire can embed results as text
Questionnaire: bmi-calculator
  item[calculation-result].extension[embeddedSectionAnswer] = {
    valueSection: {
      // Embedded text section with calculated BMI result
      text.div: "<div>Calculated BMI: <strong>24.5</strong></div>"
    }
  }

Example 5: 3D/VR Form → Polaris Mapping

Original VR Form: - 3D anatomical model - Spatial questionnaires at organ locations - Gesture-based annotations

Polaris Representation:

// Canvas section for 3D model screenshot/render
* section[canvasSection].entry = "DocumentReference/3d-anatomy-render"
  extension[annotations] = [
    // Heart assessment at 3D coordinates (converted to 2D)
    {
      annotationType: "embedded-form-section",
      coordinates: "{\"x\": 250, \"y\": 180, \"z\": 150}",  // 3D → 2D projection
      embeddedSection: {
        entry: ["Questionnaire/heart-assessment"]
      }
    }
  ]

// Heart assessment can embed gesture data as canvas
Questionnaire: heart-assessment  
  item[gesture-annotation].extension[embeddedSectionAnswer] = {
    valueSection: {
      entry: ["DocumentReference/gesture-trace"]  // Canvas with gesture path
    }
  }

Example 6: AI-Assisted Form → Polaris Mapping

Original AI Form: - Text input with AI suggestions - Confidence indicators - Dynamic form generation based on AI analysis

Polaris Representation:

// Form section with AI-suggested content
* section[formSection].entry = "QuestionnaireResponse/ai-assisted-assessment"

QuestionnaireResponse: ai-assisted-assessment
  item[chief-complaint].answer.extension[embeddedSectionAnswer] = {
    valueSection: {
      // AI suggestion embedded as text section
      text.div: """
        <div class="ai-suggestion" data-confidence="0.85">
          <p>AI suggests possible diagnosis: Acute appendicitis</p>
          <div data-fhir-embedded="canvas-section" data-section-ref="ai-heatmap">
            [Confidence heatmap visualization]
          </div>
        </div>
      """
    }
  }

Symmetry Matrix: All Possible Embeddings

Container Can Embed Mechanism Use Case
Text → Text PolarisEmbeddedSectionExtension Nested narratives, citations
Text → Form PolarisEmbeddedSectionExtension Inline questionnaires, assessments
Text → Canvas PolarisEmbeddedSectionExtension Inline images, diagrams
Text → File PolarisEmbeddedSectionExtension Referenced documents, attachments
Form → Text PolarisEmbeddedSectionResponseExtension Narrative answers, explanations
Form → Form PolarisEmbeddedSectionResponseExtension Sub-questionnaires, conditional logic
Form → Canvas PolarisEmbeddedSectionResponseExtension Drawing answers, image selections
Form → File PolarisEmbeddedSectionResponseExtension Document uploads, file attachments
Canvas → Text PolarisCanvasAnnotationExtension Positioned text annotations
Canvas → Form PolarisCanvasAnnotationExtension Positioned questionnaires, hotspots
Canvas → Canvas PolarisCanvasAnnotationExtension Nested images, zoom regions
Canvas → File PolarisCanvasAnnotationExtension Positioned file references
File → Text PolarisFileMetadataExtension Document structure metadata
File → Form PolarisFileMetadataExtension Embedded form definitions
File → Canvas PolarisFileMetadataExtension Image/diagram metadata
File → File PolarisFileMetadataExtension Archive contents, nested files

Implementation Guidelines for Recursive Containment

1. Bundle Integrity Rules

  • All embedded sections MUST be complete and self-contained
  • No external references allowed in embedded content
  • Embedded sections inherit parent section's context

2. Depth Limitation Recommendations

// Recommended maximum nesting depth for performance
* section.extension[embeddedSection].extension[maxDepth].valueInteger = 10

// Circular reference prevention
* section.extension[embeddedSection].extension[preventCircular].valueBoolean = true

3. Fallback Strategies for Complex Nesting

// Always provide text fallback for deeply nested content
* extension[fallbackText].valueString = "Complex interactive assessment form with anatomical diagrams and measurement tools"

// Progressive disclosure hints
* extension[displayHint].valueString = "expand-on-interaction"

4. Performance Considerations

  • Lazy Loading: Embedded sections can be loaded on-demand
  • Compression: Deep nesting may benefit from content compression
  • Caching: Commonly embedded sections should be cached
  • Validation: Complex nesting requires enhanced validation rules

This recursive containment architecture enables the Polaris clinical document format to represent arbitrarily complex clinical forms and assessments while maintaining FHIR compliance and ensuring graceful degradation across different systems.

Recursive Containment Strategy

Embedded Section Patterns

Rather than simple cross-referencing, the Polaris architecture supports complete symmetric recursive containment where any section type can embed any other section type as actual content:

  1. Text Sections → Embedded Sections: Use data-fhir-embedded attributes in XHTML with PolarisEmbeddedSectionExtension to embed complete Form/Canvas/File sections inline
  2. Form Sections → Embedded Sections: Questionnaire field values can contain complete Canvas/Text/File sections as the actual answer content via PolarisEmbeddedSectionResponseExtension
  3. Canvas Sections → Embedded Sections: Canvas annotations can embed complete Form/Text/File sections at specific X,Y coordinates via PolarisCanvasAnnotationExtension
  4. File Sections → Embedded Sections: File attachments can contain embedded sections as metadata describing structured content within files via PolarisFileMetadataExtension
  5. Complete Symmetry: Every section type can embed every other section type, including itself (recursive nesting)
  6. Unlimited Depth: Any embedded section can itself contain embedded sections, creating unlimited recursive depth

Bundle Integrity Rules

  • All referenced resources MUST be included in the Bundle
  • No external references allowed (ensures portability)
  • Version consistency between Questionnaire and QuestionnaireResponse
  • Canonical URL resolution within Bundle scope

Interoperability and Fallback Strategies

Translation Capabilities

Source System Capability Polaris Representation Target System Fallback
Rich text with embedded forms Text section with embedded element extensions Plain text with form data as appendix
Dynamic forms Questionnaire + QuestionnaireResponse Read-only name-value pairs
PDF with annotations Canvas section with annotation overlays Static PDF attachment
Drawings/signatures Canvas annotations with coordinate data Flattened image
Arbitrary file attachments File attachment sections with metadata Basic document attachment
Multi-section documents Multiple sections of each type in any order Sequential sections with type indicators

Graceful Degradation Rules

  1. Text sections: Always preserve as XHTML narrative
  2. Form sections: Convert to read-only text representation if Questionnaire not supported
  3. Canvas sections: Fall back to static image/PDF if annotations not supported
  4. File attachment sections: Preserve as basic DocumentReference with MIME type
  5. Cross-references: Maintain as textual descriptions if dynamic linking unavailable
  6. Section ordering: Maintain logical flow even if specific section types not supported

Validation and Quality Assurance

FHIR Validation Rules

  • Bundle integrity: All references resolved within bundle
  • Profile conformance: All resources conform to Polaris profiles
  • Clinical constraints: Business rules for document lifecycle
  • Security requirements: Proper confidentiality and provenance

Testing Strategy

  • Profile validation using FHIR IG Publisher
  • Round-trip testing: Polaris → Target EMR → Polaris
  • Degradation testing: Feature removal and reconstruction
  • Cross-system interoperability testing

Future Considerations

FHIR R5 Migration Path

  • Leverage improved Composition features in R5
  • Enhanced Bundle capabilities
  • Better questionnaire rendering support

Canadian Standards Evolution

  • Monitor CA-Core+ composition module development
  • Align with provincial implementation guide updates
  • Integrate with Canadian terminology updates

Technology Enhancement

  • Web Components for embedded elements
  • SMART on FHIR integration for dynamic forms
  • Digital signature integration with Provenance

Conclusion

This design provides a comprehensive, standards-based approach to clinical document representation that meets the user's requirements for universal EMR interoperability while maintaining graceful degradation capabilities. The four-section architecture with recursive containment offers the flexibility needed to represent diverse clinical content while ensuring consistent, predictable behavior across different EMR systems.

Key Enhancements in Version 2.0:

  • Standard LOINC Codes: Text sections use LOINC 34109-9 "Note", Canvas sections use LOINC 11540-0 "Image", Form sections use LOINC 74468-0/74465-6 for full standards compliance
  • Flexible Section Architecture: Multiple sections of each type allowed in any order, supporting complex document structures
  • File Attachment Support: Arbitrary file types supported with comprehensive metadata and fallback strategies
  • Recursive Containment: Any section type can embed any other section type as actual content (not just references)
  • Universal Form Architecture Mapping: Comprehensive strategies for mapping to/from every conceivable clinical form system
  • Enhanced Questionnaire Embedding: Form field values can contain complete Canvas/Text/File sections
  • Enhanced Interoperability: Better alignment with PS-CA, MERT, and CA-Core+ requirements

The FHIR profiles specified in this document provide a solid foundation for implementation, with clear migration paths for future enhancements and strong alignment with Canadian healthcare standards. The design successfully balances innovation with standards compliance, ensuring broad adoption potential across Canadian healthcare systems.