Id: |
WhatMattersLogic |
Version: |
0.2.0 |
Url: |
WhatMattersLogic |
Status: |
draft |
Type: |
system: http://terminology.hl7.org/CodeSystem/library-type
code: logic-library
|
Date: |
2024-10-25 20:08:38+0000 |
Publisher: |
Mountain Lotus WellBeing LLC |
Jurisdiction: |
001 |
Related Artifacts: |
Dependencies
|
Parameters: |
Name | Type | Min | Max | In/Out |
Measurement Period | Period | 0 | 1 | In |
Follow-Up Interval | Range | 0 | 1 | In |
Patient | Patient | 0 | 1 | Out |
What Matters Observations | Observation | 0 | * | Out |
|
Data Requirements: |
Type | Profile | MS | Code Filter |
Patient |
http://hl7.org/fhir/StructureDefinition/Patient |
|
|
Observation |
http://hl7.org/fhir/StructureDefinition/Observation |
; |
code filter:
path: code
value set: http://mtnlotus.com/uv/pco/ValueSet/what-matters-focus-areas
|
Observation |
http://hl7.org/fhir/StructureDefinition/Observation |
; |
|
Goal |
http://hl7.org/fhir/StructureDefinition/Goal |
;; |
|
Condition |
http://hl7.org/fhir/StructureDefinition/Condition |
; |
|
|
Content: text/cql |
library WhatMattersLogic version '0.1.0'
using FHIR version '4.0.1'
include FHIRHelpers version '4.4.000' called FHIRHelpers
include PCOCommon version '0.1.0' called PC
valueset "What Matters Focus Areas": 'http://mtnlotus.com/uv/pco/ValueSet/what-matters-focus-areas'
parameter "Measurement Period" Interval<DateTime>
default Interval[@2024-01-01T00:00:00.000Z, @2024-12-31T23:59:59.999Z]
parameter "Follow-Up Interval" Interval<System.Quantity>
default Interval[2 weeks, 26 weeks]
context Patient
define "What Matters Observations":
[Observation: "What Matters Focus Areas"]
// Returns a list of what matters Observations this Goal addresses.
define fluent function whatMattersObservations(goal Goal):
flatten( goal.addresses GA
return [Observation] obs
where obs.id = GA.reference.getId()
and obs.isWhatMatters()
)
define fluent function isWhatMatters(obs Observation):
"What Matters Observations" contains obs
// Returns a list of Goals that address this Observation
define fluent function addressedByGoals(obs Observation):
[Goal] goal
where exists ( goal.addresses GA
where obs.id = GA.reference.getId()
)
// Returns a list of Conditions that this Goal addresses.
define fluent function addressesConditions(goal Goal):
flatten( goal.addresses GA
return [Condition] obs
where obs.id = GA.reference.getId()
)
|
|
Content: application/elm+xml |
Encoded data (38816 characters)
|
|
Content: application/elm+json |
Encoded data (73560 characters)
|
|