Polaris FHIR Implementation Guide
1.10.0 - ci-build

Polaris FHIR Implementation Guide - Local Development build (v1.10.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Change Log

Polaris FHIR Specification Changelog

[1.10.0] – 2026-05-26

  • Added: PolarisCoreSchedule profile — bookable calendar resource with flexible actor slicing (PractitionerRole 0..1 + Location 0..1 + HealthcareService 0..1, at-least-one invariant). Supports provider, room/equipment, and service-line schedules.
  • Added: PolarisCoreSlot profile — individual bookable time window with status (free busy busy-tentative busy-unavailable). Slot.schedule 1..1 MS references PolarisCoreSchedule. Identifier strategy is deterministic (<provider_no>-<yyyyMMdd>-<index>) for materialised-resource idempotency.
  • Enhanced: PolarisCoreAppointment profile — added Appointment.slot 0..* MS constrained to Reference(PolarisCoreSlot). Backward-compatible addition (cardinality 0..* supports walk-in and historical appointments without a Slot reference).
  • Note: Appointment.slot targetProfile is tightened from base FHIR Reference(Slot) to Reference(PolarisCoreSlot). Consumers running HAPI strict-mode validation against the 1.9.9 snapshot may need to upgrade to the 1.10.0 snapshot — additive change, but strict validators surface unknown-targetProfile constraints.
  • Added: scheduling feature documentation under docs/guide/features/scheduling/ — overview, booking flow design, Oscar↔FHIR mapping docs, converter migration spec (for the existing partial OscarPro ScheduleConverter/SlotConverter code), FHIR-19 spike notes, and a CapabilityStatement deferral rationale.
  • Source: FHIR-18 (Polaris IG New Profiles epic). Closes the availability-discovery gap that previously forced booking UIs to bypass the FHIR layer or infer availability from Appointment absence.

[1.9.9] – 2026-04-27

  • Breaking (vs 1.9.8): oscar-billing-pay-program-extension removed. Oscar pay_program now lives on FHIR-native Invoice.type.coding sliced by system — see PolarisCoreInvoice profile. The OscarPayProgramCS code system and OscarPayProgramVS value set are retained and rebound to the coding slice.
  • Added: PolarisCoreInvoice profile Invoice.type 0..1 MS with type.coding[payProgram] slice bound to OscarPayProgramVS (extensible).
  • Added: oscar-service-location-extension on Invoice — Reference(PolarisCoreLocation) resolving Oscar's billing_on_cheader1.location (SLI code) to a typed Location resource instead of a raw string.
  • Added: identifier[sliCode] slice on PolarisCoreLocation carrying the Ontario Service Location Indicator with a fixed on-sli-code naming system.
  • Added: Aliases $OntarioSLICode, $OscarPayProgramCS, $OscarServiceLocation.
  • Removed: $OscarPayProgram alias (referenced a deleted extension).

[1.9.8] – 2026-04-24

  • Added: PolarisCoreInvoice profile for Canadian provider-side billing records — Phase 1 Ontario (OHIP) + Oscar Pro
  • Added: oscar-billing-status-extension on Invoice — carries the raw 10-code Oscar billing_on_cheader1.status enum (H/O/P/N/W/B/S/X/D/I) alongside FHIR-canonical Invoice.status
  • Added: oscar-billing-shadow-bill-extension on Invoice — boolean flag for FHO/FHN capitated submissions
  • Added: oscar-billing-pay-program-extension on Invoice — carries Oscar pay_program code (HCP/RMB/PAT/OCF/ODS/CPP/STD/IFH/WCB)
  • Added: identifier[ohipBillingNumber] slice on PolarisCorePractitioner mapping to provider.ohip_no
  • Added: identifier[rmaNumber] slice on PolarisCorePractitioner for RMA group billing (provider.rma_no)
  • Added: Code-system aliases for OHIP Schedule of Benefits, OHIP diagnostic codes, Ontario HCN, ICD-9-CM, ICD-10-CM, ICD-10-CA
  • Changed: PolarisCoreCondition category tightened to 1..* MS with binding guidance distinguishing problem-list-item (dxresearch, CPP) from encounter-diagnosis (invoice-line, appointment)
  • Added: Oscar Pro Billing feature documentation under docs/guide/features/oscar-billing/ — overview, oscar-to-fhir mapping, fhir-to-oscar write-back mapping, and write-back design

[1.9.7] – 2026-04-15

  • Enhanced: DocumentReference profile attachments now accept inline base64 data, a blob storage URL, or both
  • Changed: content.attachment.data relaxed from required (1..1) to optional (0..1) - supports fetch-on-demand workflows for large documents
  • Added: content.attachment.url (0..1 MS) for references to Polaris-managed blob storage
  • Added: invariant attachment-has-data-or-url ensuring every attachment carries content via data, url, or both

[1.9.6] – 2026-03-03

  • Fixed: EMR Device profile identifier system patterns corrected to use *-device-identifier and *-device-raw-code conventions, aligning slice documentation with the emrdevice-has-polaris-id invariant FHIRPath expression

[1.9.5] – 2026-02-02

  • Enhanced: Consent profile with relaxed identifier cardinality for improved interoperability
  • Changed: identifier[rawCode] slice from required (1..) to optional (0..) - accommodates systems that don't track proprietary consent identifiers
  • Aligns with the AllergyIntolerance cardinality relaxation introduced in v1.9.4

[1.9.4] – 2025-11-26

  • Enhanced: AllergyIntolerance profile with relaxed cardinality requirements for improved interoperability
  • Changed: identifier.rawCode slice from required (1..) to optional (0..) - accommodates systems that don't use proprietary allergen codes
  • Changed: code.coding[rawCode] slice from required (1..) to optional (0..) - supports standard-only allergen coding workflows
  • Changed: code.coding[rawCode].display from required (1..1) to optional (0..1) - aligns with FHIR standard for Coding.display
  • Build: Added history.html generation for version tracking in ci-build releases
  • Build: Fixed version status handling - all versions correctly marked as ci-build in package-list.json
  • Build: Improved GitHub Pages deployment workflow for pre-built site deployment
  • Documentation: Added comprehensive codebase review documentation

[1.9.3] – 2025-10-08

  • Enhanced: Appointment profile participant cardinality restricted to single patient and practitioner (Patient 0..1, PractitionerRole 0..1, previously 0..*)
  • Ensures 1:1 relationship between appointments and encounters for simplified clinical workflow modeling
  • Multi-patient and multi-provider appointments no longer supported, aligning with Juno EMR capabilities and reducing implementation complexity
  • Build: Added versioned FHIR documentation snapshot preservation to track specification evolution across releases
  • Build: Clean script enhanced to preserve version subdirectories (e.g., docs/fhir/1.9.2/) while removing transient artifacts
  • Documentation: Added comprehensive release process automation guide in prompts/polaris-fhir-release-prompt.md

[1.9.2] – 2025-10-03

  • Enhanced: DocumentReference profile status field now supports document lifecycle management with three allowed values: current, superseded, and entered-in-error
  • Previously restricted to current only, now enables proper version tracking when documents are updated or corrected
  • Enhanced: MedicationRequest profile doseQuantity.code relaxed from required to optional
  • Addresses real-world scenarios where dose units are captured in text but structured UCUM codes are unavailable
  • Documentation: Standardized all profile intro page titles from "Polaris X Core Profile" to "Polaris Core X Profile" for consistency

[1.9.1] – 2025-10-01

  • Enhanced: PolarisCoreAppState profile now supports multiple values (1..*) instead of single value (1..1)
  • AppState can now function as a tuple of [subject, value, value, …] for multi-key storage scenarios
  • Addresses real-world requirement for storing application state indexed by multiple keys

[1.9.0] – 2025-09-30

  • Major naming convention update aligning with international FHIR standards (US Core, Canadian profiles)
  • Breaking: All profile names renamed from PolarisXCore/polaris-x-core to PolarisCoreX/polaris-core-x pattern (e.g., PolarisPatientCorePolarisCorePatient, polaris-patient-corepolaris-core-patient)
  • Breaking: All canonical URLs updated to reflect new naming (e.g., https://fhir.apps.health/StructureDefinition/polaris-patient-corehttps://fhir.apps.health/StructureDefinition/polaris-core-patient)
  • Breaking: All profile IDs, file names, and references updated across 26 core profiles and 3 experimental profiles
  • Enhanced: Location pattern documentation now mandates at least one Location resource per EMR instance, even for single-site clinics
  • Requirement: Every EMR must create at least one Location to support PolarisCoreAppointment's required Location participant (1..1 cardinality)
  • Enhanced: Organization identifier examples updated with correct system URIs based on implementer feedback (Bianca)
  • Impact: Implementers validating against Polaris profiles must update all profile references to use new naming convention. This change improves readability and aligns with established FHIR community standards
  • Source: Location requirements driven by CII project app team implementation needs; naming convention update for standards alignment

[1.8.1] – 2025-09-18

  • Point release addressing MERT specification alignment and OSCAR implementation refinements
  • Enhanced: MedicationRequest profile now supports doseRange for patient-administered dose flexibility (e.g., "take 2-5 tablets")
  • Enhanced: AllergyIntolerance profile with type and asserter fields, expanded standard coding to include DIN codes for drug allergies, added reaction.description
  • Enhanced: Condition profile expanded to support ICD-9 in addition to ICD-10/SNOMED, abatement[x] marked Must Support, asserter field added
  • Implementation: Changes driven by real-world OSCAR EMR integration experience and MERT clinical data requirements

[1.8.0] – 2025-09-17

  • Breaking changes to MedicationRequest profile and identifier display requirements for better FHIR alignment
  • Enhanced: MedicationRequest profile with form field support for medication formulations
  • Enhanced: Added boundsDuration to dosageInstruction.timing.repeat for duration-based medication instructions
  • Changed: Raw code display field no longer mandatory on top-level identifiers across all profiles - only required within references
  • Removed: Redundant PolarisMedicationRequest-codeable-example.json example
  • Updated: CII documentation and bidirectional mapping specifications reflecting current profile structures
  • Fixed: Identifier display requirements now properly align with FHIR R4 standard which doesn't support display on identifiers

[1.7.0] – 2025-09-10

  • Mandatory raw code tracking across all 21 core profiles for improved EMR data fidelity
  • Enhanced: All profiles now require rawCode slices (1..*) in both identifiers and code.coding to preserve original EMR codes
  • Enhanced: Added mandatory display field (1..1) to all rawCode identifiers ensuring human-readable context is preserved
  • Modified profiles: AllergyIntolerance, AppConsent, Appointment, ClinicalImpression, Condition, DiagnosticReport, DocumentReference, EMRDevice, Encounter, Immunization, Location, MedicationDispense, MedicationRequest, Observation, Organization, Patient, Practitioner, PractitionerRole, Procedure, RosterPanel, ServiceRequest
  • Impact: Systems must now always include raw codes with display values when mapping to Polaris profiles, ensuring clinical context is maintained even when standard terminology mappings are unavailable

[1.6.4] – 2025-09-09

  • Fixed critical omission from 1.6.3 release for Oscar EMR integration
  • Enhanced: MedicationRequest profile now includes boundsDuration in dosageInstruction.timing.repeat
  • Added: Support for duration-based medication instructions required by Rebecca Skitch for Oscar prescriptions

[1.6.3] – 2025-09-09

  • Added meta.source tracking to all 23 core profiles for EMR pipeline provenance
  • Enhanced: All profiles now include meta.source (0..1 MS) to identify EMR instance and pipeline version
  • Documentation: Revised Encounter profile intro to clarify primary care synthetic encounter generation
  • Documentation: Added deprecation notice for Contained Medication profile - use medicationCodeableConcept instead
  • Fixed: MedicationRequest profile formatting and alignment issues

[1.6.2] – 2025-09-03

  • Bug fixes and profile cleanup based on implementation feedback from development teams
  • Fixed: MedicationRequest profile duplicate dispenseRequest sections consolidated
  • Fixed: Organization profile name now optional (0..1) to handle edge cases in Oscar EMR
  • Fixed: Appointment documentation corrected to reference PractitionerRole instead of Practitioner
  • Improved: UCUM units binding for medication dose quantities now properly enforced

[1.6.1] – 2025-08-28

  • Refined profile constraints based on MERT discovery meeting feedback to improve EMR alignment
  • Enhanced: Immunization profile with expirationDate, doseQuantity, and note elements marked as Must Support
  • Enhanced: Procedure profile with relaxed performed[x] cardinality (0..1), required bodySite.text, and note element
  • Enhanced: DocumentReference profile with required display for rawCode, mandatory period.start for context timing
  • Clarified: Standard terminology codes (LOINC, SNOMED, CVX) marked as optional but helpful across profiles
  • Fixed: Must Support flags adjusted to focus on essential elements while maintaining backwards compatibility

[1.6.0] – 2025-08-22

  • New: MedicationRequest profile redesigned with CodeableConcept approach replacing contained Medication pattern
  • New: PolarisMedicationStrength extension for capturing medication strength separately from medication code
  • Enhanced: MedicationRequest now supports dual approaches - medicationCodeableConcept (recommended) or medicationReference (deprecated)
  • Added: Direct DIN coding support in medicationCodeableConcept with raw code slicing
  • Documentation: Added Slack community link prominently to README and homepage for improved community engagement
  • Documentation: Comprehensive explanation of MedicationRequest evolution aligning with PrescribeIT patterns

[1.5.1] – 2025-08-20

  • Fixed Immunization profile performer element cardinality and structure to align with FHIR R4 requirements
  • Enhanced identifier slicing across all 27 core profiles with consistent gold standard implementation pattern
  • Added raw code slicing to all CodeableConcept fields for supporting text-based EMR storage requirements
  • Improved profile documentation with comprehensive field descriptions and Canadian healthcare context
  • Corrected reference constraints across multiple profiles removing redundant actor.display requirements
  • Added Provincial Health Number (PHN) support to Patient profile with jurisdictional validation
  • Fixed Practitioner name validation invariant to require family or given name
  • Updated examples with proper performer.actor references for Immunization resources

[1.5.0] – 2025-08-11

  • Relaxed cardinality constraints on Patient and Organization profiles for real-world compatibility
  • Patient: Made gender and birthDate optional (0..1) to accommodate incomplete demographics; added name validation invariant requiring family or given name
  • Organization: Made active field optional (0..1), defaults to active when absent - supports primary care EMR ownership model
  • MedicationRequest: Strengthened medication coding with mandatory ingredient.itemCodeableConcept for DIN requirements
  • DocumentReference: Added required status, description, and authenticator fields; fixed inheritance chain
  • Updated all Task examples to use identifier-based references instead of literal references for consistency
  • Added comprehensive field-level documentation across all profiles with Canadian healthcare context
  • Build system refactored with modular utilities and improved cross-platform support

[1.4.0] – 2025-08-05

  • BREAKING CHANGE: All Polaris profiles renamed to include 'Core' suffix in preparation for future 'Extended' profile set
  • Renamed: All 27 profiles from 'Polaris[Resource]' to 'Polaris[Resource]Core' with updated canonical URLs, filenames, and aliases
  • Fixed: Practitioner references throughout codebase to properly use PractitionerRole for EMR users instead of Practitioner for persons
  • Updated: Patient profile generalPractitioner now correctly references PractitionerRole
  • Corrected: Task owner/requester, Composition author, and MedicationDispense performer to reference PractitionerRole
  • Infrastructure: Pinned hl7.fhir.uv.extensions dependency to stable version 5.2.0 to resolve IG Publisher compatibility issues

[1.3.0] – 2025-08-01

  • New: Dedicated FHIR Shorthand (FSH) pages for all profiles in the Implementation Guide, providing detailed technical documentation alongside the generated FHIR artifacts
  • Enhanced: Patient profile and all other profiles now include comprehensive FSH source documentation
  • Refactored: Build pipeline consolidation with cross-platform script support for Windows and Unix environments
  • Updated: Java requirement to version 17 for compatibility with latest FHIR IG Publisher
  • Documentation: Migrated placeholder content from Confluence to Markdown for better version control
  • Infrastructure: Simplified CI/CD workflow and removed obsolete build scripts

[1.2.1] – 2025-07-24

  • Updated documentation navigation structure for improved user experience
  • Enhanced README.md with clearer project description and setup instructions
  • Minor site accessibility improvements

[1.2.0] – 2025-07-24

  • Significant consent profile improvements with proper FHIR R4 compliance and third-party app Device references
  • Enhanced third-party app consent modeling with simplified KISS approach for core requirements
  • Fixed critical consent profile issues: added required policyRule field, corrected JSON syntax errors, implemented proper FHIR R4 patterns
  • Renamed 'emr task' to 'clinical task' throughout codebase for better terminology alignment
  • Added comprehensive release automation tooling for systematic version management
  • Corrected download links and cleaned up experimental content organization
  • Fixed documentation link warnings and updated navigation structure
  • Updated URI patterns across FHIR examples and documentation to new canonical format
  • Corrected CII patient identifier mapping to use system fields instead of type fields
  • Streamlined GitHub Actions workflow and removed redundant test jobs for better CI/CD performance

[1.1.1] – 2025-07-18

  • Added experimental PolarisCoreAppConsent profile for patient app signup and consent management
  • Specifically designed to model consent for patients signing up with third-party applications
  • Includes support for AI scribe assistance consent, information access permissions, and granular data sharing controls
  • Added PolarisCoreAppDevice profile for applications that integrate with patient data
  • Comprehensive warning suppression implementation for clean validation builds
  • Enhanced development workflow with proper FHIR IG Publisher warning management

[1.1.0] – 2025-06-18

  • 1.1.0 release.
  • MAJOR CHANGE: updated canonical system URL rules to place the 'instance identifier' after the Artifact type rather than before it.
  • Updated LOINC codes for PolarisObservations in CII documentation.

[1.0.0] – 2025-06-18

  • 1.0.0 release.
  • new: PolarisCoreClinicalImpression - for exporting clinical assessments ('A' from SOAP notes) from EMRs that can parse SOAP notes.
  • added 'category' field: PolarisCoreServiceRequest - to differentiate lab requests, DI requests, and referrals
  • added 'category' field: PolarisCoreObservation - to differentiate lab results from vitals observations
  • updated Alberta CII feature mapping documentation to include new clinical impression StructureDefinition and category fields on Observation and ServiceRequest.

[0.1.0]

  • Initial pre-release of IG - FHIR modeling supporting Alberta CPAR and CII features complete.