forked from kevinpeterson/fhir
-
Notifications
You must be signed in to change notification settings - Fork 0
/
rim mapping expression.txt
44 lines (26 loc) · 1.26 KB
/
rim mapping expression.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
mapping :== (conditional-mapping)* map (exists in context of FHIR element)
conditional mapping :== "?" conditionlist ":" map
condition :== path "=" literal
conditionlist = conditionExpr (, operation conditionExpr)
operation = and | or
conditionExpr :== (not ) condition | "(" conditionList ")"
condition = path "=" value | function
value :== "" or number or OID
function :== name "(" param ")" (functions : drawnFromValueSet, memberOfConceptDomain, isSubsumedBy, "sub" (Substring), "cell" (CellFromString))
param = value | path
path (in FHIR) :== node(.node)+
node :== [name | ".."] "(" conditionlist ")"
map (in RIM) :==
map = path
condition :== path == literal
node :== name {[path]}
setting multiple values
-----------------------
context: [path]
(n = .[path])
path: node(.node)+
element - data type mapping - all attributes
1 FHIR element can create multiple data type properties on RIM Attributes on different paths
(CodeableConcept) = .code(code = .coding[1].code, codeSystem = codeSystem(.coding[1].system), displayName = .coding[1].display,
translation[n = .coding(2..n)](code = .coding[n].code, codeSystem = codeSystem(.coding[n].system), displayName = .coding[n].display,
originalText(@value = .text) )