Projo FHIR Documentation
0.1.0 - ci-build Switzerland flag

Projo FHIR Documentation - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Extension: Extraction Writeback (Experimental)

Official URL: https://projo.evoleen.com/fhir/StructureDefinition/extraction-writeback Version: 0.1.0
Draft as of 2024-01-01 Computable Name: ExtractionWriteback

Copyright/Legal: Copyright (c) Projo. Licensed under CC0-1.0 (public domain dedication). FHIR(R) is the registered trademark of HL7 and is used with permission. This IG references WhatsApp(R), a trademark of Meta Platforms, Inc., for descriptive purposes only.

Complex extension on a Questionnaire group item that routes its extracted content to a writeback target instead of creating a fresh resource. Sub-extensions: target (only code 'subject' — write back to the Patient referenced by QR.subject); mode (only code 'fill-if-empty' — patch only fields that are absent). Set by clinical questionnaire authors. Read by the orchestrator's classifyExtractedResources during SDC $extract: the extracted Patient fragment is wrapped as a Binary carrying a base64-encoded RFC 6902 JSON-Patch, posted as a transaction entry with method=PATCH. The patch leads with a test op on /meta/versionId to fail closed on concurrent writes. Requires Patient/patch authorization on the Device role. Used by the dermacare-language-selection Questionnaire to write back Patient.communication.language (ADR 0010).

Documentation-only artifact. Projo's runtime extensions, code systems, identifier systems and search parameter are TypeScript constants and bootstrap-time resources, NOT deployed StructureDefinitions. This StructureDefinition exists to document the contract; the source of truth is src/functions/src/lib/fhir/types.ts and docs/FHIR_EXTENSIONS.md.

Context of Use

Usage info

Usages:

  • This Extension is not used by any profiles in this Specification

You can also check for usages in the FHIR IG Statistics

Formal Views of Extension Content

Description of Profiles, Differentials, Snapshots, and how the XML and JSON presentations work.

This structure is derived from Extension

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Extension 0..* Extension Extraction Writeback
... extension 2..* Extension Extension
... Slices for extension Content/Rules for all slices
.... extension:target 1..1 Extension Extension
..... extension 0..0 Extension
..... url 1..1 uri "target"
..... value[x] 0..1 code Value of extension
Binding: Extraction Writeback Target Value Set (required)
.... extension:mode 1..1 Extension Extension
..... extension 0..0 Extension
..... url 1..1 uri "mode"
..... value[x] 0..1 code Value of extension
Binding: Extraction Writeback Mode Value Set (required)
... url 1..1 uri "https://projo.evoleen.com/fhir/StructureDefinition/extraction-writeback"

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Extension 0..* Extension Extraction Writeback
... id 0..1 string Unique id for inter-element referencing
... Slices for extension 2..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:target 1..1 Extension Extension
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "target"
..... value[x] 0..1 code Value of extension
Binding: Extraction Writeback Target Value Set (required)
.... extension:mode 1..1 Extension Extension
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "mode"
..... value[x] 0..1 code Value of extension
Binding: Extraction Writeback Mode Value Set (required)
... url 1..1 uri "https://projo.evoleen.com/fhir/StructureDefinition/extraction-writeback"

doco Documentation for this format

This structure is derived from Extension

Summary

Complex Extension: Complex extension on a Questionnaire group item that routes its extracted content to a writeback target instead of creating a fresh resource. Sub-extensions: target (only code 'subject' — write back to the Patient referenced by QR.subject); mode (only code 'fill-if-empty' — patch only fields that are absent). Set by clinical questionnaire authors. Read by the orchestrator's classifyExtractedResources during SDC $extract: the extracted Patient fragment is wrapped as a Binary carrying a base64-encoded RFC 6902 JSON-Patch, posted as a transaction entry with method=PATCH. The patch leads with a test op on /meta/versionId to fail closed on concurrent writes. Requires Patient/patch authorization on the Device role. Used by the dermacare-language-selection Questionnaire to write back Patient.communication.language (ADR 0010).

  • target: code: An Extension
  • mode: code: An Extension

Differential View

This structure is derived from Extension

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Extension 0..* Extension Extraction Writeback
... extension 2..* Extension Extension
... Slices for extension Content/Rules for all slices
.... extension:target 1..1 Extension Extension
..... extension 0..0 Extension
..... url 1..1 uri "target"
..... value[x] 0..1 code Value of extension
Binding: Extraction Writeback Target Value Set (required)
.... extension:mode 1..1 Extension Extension
..... extension 0..0 Extension
..... url 1..1 uri "mode"
..... value[x] 0..1 code Value of extension
Binding: Extraction Writeback Mode Value Set (required)
... url 1..1 uri "https://projo.evoleen.com/fhir/StructureDefinition/extraction-writeback"

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Extension 0..* Extension Extraction Writeback
... id 0..1 string Unique id for inter-element referencing
... Slices for extension 2..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:target 1..1 Extension Extension
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "target"
..... value[x] 0..1 code Value of extension
Binding: Extraction Writeback Target Value Set (required)
.... extension:mode 1..1 Extension Extension
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "mode"
..... value[x] 0..1 code Value of extension
Binding: Extraction Writeback Mode Value Set (required)
... url 1..1 uri "https://projo.evoleen.com/fhir/StructureDefinition/extraction-writeback"

doco Documentation for this format

This structure is derived from Extension

Summary

Complex Extension: Complex extension on a Questionnaire group item that routes its extracted content to a writeback target instead of creating a fresh resource. Sub-extensions: target (only code 'subject' — write back to the Patient referenced by QR.subject); mode (only code 'fill-if-empty' — patch only fields that are absent). Set by clinical questionnaire authors. Read by the orchestrator's classifyExtractedResources during SDC $extract: the extracted Patient fragment is wrapped as a Binary carrying a base64-encoded RFC 6902 JSON-Patch, posted as a transaction entry with method=PATCH. The patch leads with a test op on /meta/versionId to fail closed on concurrent writes. Requires Patient/patch authorization on the Device role. Used by the dermacare-language-selection Questionnaire to write back Patient.communication.language (ADR 0010).

  • target: code: An Extension
  • mode: code: An Extension

 

Other representations of profile: CSV, Excel, Schematron

Terminology Bindings

Path Status Usage ValueSet Version Source
Extension.extension:target.​value[x] Base required Extraction Writeback Target Value Set 📦0.1.0 This IG
Extension.extension:mode.​value[x] Base required Extraction Writeback Mode Value Set 📦0.1.0 This IG

Constraints

Id Grade Path(s) Description Expression
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()