Polaris FHIR Implementation Guide
1.9.2 - ci-build

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

Resource Profile: PolarisCoreComposition - FSH Source

Draft as of 2025-07-23

FSH source of the polaris-core-composition resource profile.

Raw FSH | Download

// =============================================================================
// THIS IS A DRAFT PROPOSAL - NOT YET APPROVED FOR PRODUCTION USE
// =============================================================================
// StructureDefinition-polaris-core-composition.fsh  
// Polaris Clinical Document Composition Profile
// Version 1.0 - July 23, 2025

Profile: PolarisCoreComposition
Parent: Composition
Id: polaris-core-composition
Title:          "Polaris Clinical Document Composition Core"
Description: "A FHIR Composition supporting four section types (Text, Form, Canvas, File) with recursive containment"

* ^status = #draft
* ^version = "1.0.0"
* ^date = "2025-07-23"
* ^publisher = "Polaris FHIR Implementation Guide"
* ^contact.telecom.system = #url
* ^contact.telecom.value = "https://fhir.apps.health"
* ^purpose = "Provides a comprehensive FHIR Composition profile supporting recursive section embedding for rich clinical documents"
* ^copyright = "Copyright 2025 Polaris FHIR Implementation Guide"

// Core Composition elements
* identifier 1..1 MS
* identifier ^short = "Business identifier for document version tracking"
* identifier ^definition = "Unique identifier for this specific version of the clinical document"

* status 1..1 MS
* status ^short = "Document lifecycle status"
* status ^definition = "The workflow/clinical status of the composition"

* type 1..1 MS  
* type ^short = "Kind of composition (LOINC)"
* type ^definition = "Specifies the particular kind of composition"
* type ^binding.strength = #extensible
* type ^binding.valueSet = "http://hl7.org/fhir/ValueSet/doc-typecodes"

* subject 1..1 MS
* subject only Reference(Patient)
* subject ^short = "Who the composition is about"
* subject ^definition = "The patient this clinical document relates to"

* date 1..1 MS
* date ^short = "Composition editing time"
* date ^definition = "The composition editing time, when the composition was last logically changed"

* author 1..* MS
* author only Reference(PolarisCorePractitionerRole or Device or Patient or RelatedPerson or Organization)
* author ^short = "Who and/or what authored the composition"
* author ^definition = "Identifies who is responsible for the information in the composition"

* title 1..1 MS
* title ^short = "Human Readable name/title"
* title ^definition = "Official human-readable label for the composition"

* confidentiality 0..1 MS
* confidentiality ^short = "As defined by affinity domain"
* confidentiality ^definition = "The code specifying the level of confidentiality of the Composition"

// Section architecture supporting four types with recursive containment
* section 0..* MS
* section ^slicing.discriminator.type = #value
* section ^slicing.discriminator.path = "code.coding.code"
* section ^slicing.rules = #open
* section ^short = "Composition sections supporting four types with recursive embedding"

// Text Section Slice - Multiple allowed
* section contains textSection 0..*
* section[textSection] ^short = "Narrative text sections with embedded content"
* section[textSection].code = http://loinc.org#34109-9 "Note"
* section[textSection].text 1..1 MS  
* section[textSection].text.div 1..1 MS
* section[textSection].text ^short = "XHTML narrative with embedded sections"
* section[textSection].extension contains PolarisMarkdownExtension named markdown 0..1
* section[textSection].emptyReason 0..1 MS

// Form Section Slice - Multiple allowed
* section contains formSection 0..*
* section[formSection] ^short = "Questionnaire and response sections"
* section[formSection].code from PolarisFormSectionCodes (required)
* section[formSection].entry 1..* MS
* section[formSection].entry only Reference(Questionnaire or QuestionnaireResponse)
* section[formSection].emptyReason 0..1 MS

// Canvas Section Slice - Multiple allowed  
* section contains canvasSection 0..*
* section[canvasSection] ^short = "Visual content with embedded sections at coordinates"
* section[canvasSection].code = http://loinc.org#11540-0 "Image"
* section[canvasSection].entry 1..* MS
* section[canvasSection].entry only Reference(DocumentReference)
* section[canvasSection].emptyReason 0..1 MS

// File Attachment Section Slice - Multiple allowed
* section contains attachmentSection 0..*
* section[attachmentSection] ^short = "File attachments with embedded section metadata"
* section[attachmentSection].code from PolarisAttachmentSectionCodes (extensible)
* section[attachmentSection].entry 1..* MS
* section[attachmentSection].entry only Reference(DocumentReference)
* section[attachmentSection].emptyReason 0..1 MS

// Value Sets for Section Codes
ValueSet: PolarisFormSectionCodes
Id: polaris-form-section-codes
Title:          "Polaris Form Section Codes Core"
Description: "LOINC codes for form-based sections"
* ^status = #draft
* http://loinc.org#74468-0 "Questionnaire form definition Document"
* http://loinc.org#74465-6 "Questionnaire response Document"

ValueSet: PolarisAttachmentSectionCodes  
Id: polaris-attachment-section-codes
Title:          "Polaris Attachment Section Codes Core"
Description: "LOINC codes for file attachment sections"
* ^status = #draft
* 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"