Skip to end of metadata
Go to start of metadata

VSD ElementFHIR resource/extension urlCardinality change neededNotesFHIR Action Needed?Action
1

Value Set Identifier

url or identifierNoIn VSD, the value set identifer is the "globally unique string that characterizes the Value Set Definition". In FHIR the valueset.uri is the "Canonical identifier for this value set, represented as a URI (globally unique)". In FHIR, valueset = the defintion, expansion and metadata.Yes

1) Update VSD to adopt the FHIR URI definition - "A globally unique string for this value set, when it is referenced in a specification, model, design or an instance". 
2) In the description, include statement that this is intended to be the canonical identifier

VSD Changes Identified as Part of VSD-P


To Do: confirm FHIR definition for valueSet.identifier is correct.

2Definitional




3

Value Set Scope

purpose or description or useContextNoNeither purpose, useContext or any other existing FHIR element represents this VSD definitional element. Yes

1. Add a FHIR JIRA ticket (FHIR-25273) to summarize the gap. Options for resolution: update purpose? Update description and move what is in description currently into purpose?

Note that FHIR-24085 is related.

2. Add a FHIR JIRA ticket (FHIR-25272) to add a new complex element valueSet.scope with sub-elements named clinicalFocus, inclusionCriteria, exclusionCriteria and modelContext. All data types = string.

Definitions from VSD: 

Scope: Description of the semantic space the Value Set Expansion is intended to cover.

Focus: The general focus of the Value Set as it relates to the intended semantic space. This can be the information about clinical relevancy or the statement about the general focus of the Value Set, such as a description of types of messages, payment options, geographic locations, etc.

Model Context: A statement that describes how this Value Set is to be used in an artifact.

Inclusion Criteria: Criteria describing what concepts or codes should be included and why.

Exclusion Criteria: Criteria describing what concepts or codes should be excluded and why.

Still to be decided: core element or extension. This is a required VSD element. 


4Value Set ImmutableimmutableYesVSD requires the immutable element, FHIR does not, but that's OKNoIn the profile, this needs to be required
5Non-Definitional




6name or title or valueset-otherNameYes (FHIR is 0...1, VSD is 1...1)In FHIR, supports both a human readable (title) and computable (name) string. Though VSD does not include a computable string for this purpose, that's OK. Would be ideal if the preferred vsd.name is the FHIR.nameYes

VSD Profile - Note for vsd.name that fhir.valueset.title is the preferred corresponding name/match to the vsd.valueset.name. However, if a language or a preferred indicator is present, then you must use the valuset-otherTitle extension. 

FHIR - the following need to be entered into a ticket:

1) update name of valuset-otherName to otherTitle, as its definition is currently inconsistent with the use of Name (computer friendly) vs Title (Human friendly) within FHIR

2) Update attribute "name" to "title"

3) Add attribute "titleLanguage" to support vsd.preferrednameindicator


FHIR-25395

7naming.NameLanguagegap
gap, but okYesSee item 6
8naming.PreferredNameIndicatorgap
gap, but okYesSee item 6
9Definition URLvalueset-authoritativeSource
VSD definition for this: "a web pointer to where the Value Set Definition may be located." So this is simply a location to find the value set definition and is not an identifier.
This has been resolved in FHIR by the addition of this resource: http://build.fhir.org/extension-valueset-authoritativesource.html
No
10Intellectual Property Informationcopyright
OKNo
11Experimentalexperimental
OKNo
12Source Referencevalueset-sourceReference
Added as an extension in FHIR: http://build.fhir.org/extension-valueset-sourcereference.htmlNo
13Keywordvalueset-keyWord
FHIR Extension: http://build.fhir.org/extension-valueset-keyword.htmlNo
14UseuseContext or valueset-usage
UseContext requires a code-value pair with codable concepts, usage is all text.Yes
15Value Set Definition Version


No
16ValueSetDefinitionVersion.IdentifierversionYes, requiredThe only version in valueSet is the overall version. This could change based on metadata or compose changes. When an expansion is the only included element in a resource, this is the version used for the expand.NoDiscussed on Jan 14, 2020 - version is critical to understanding a value set definition or expansion.  See notes on ValueSetDefinition.activityStatus. Consider changing cardinality to 1.1
17Definitional


No
18ValueSetDefinitionVersion.Content Logical Definitioncompose

No
19Non-Definitional


No
20ValueSetDefinitionVersion.Activity StatusValueSet.status

Clarification needed in FHIR. 
1) ValueSet.status is the status of the entire valueset resource other than the expansion. This aligns with VSD using the word "definition" to mean the CLD/compose PLUS all the other non-expansion metadata. A valueset expansion is STATELESS.
2) Add an invariant to say that the valueset.status in a resource that is only an expansion SHALL be the valueset.status of the valueset resource when the expansion was created, so it can be any valid status value. 


Yes

1) Has been addressed in the defintion of valuset.expansion with the inclusion of an explicit statement around the stateless nature of expansions http://build.fhir.org/valueset-definitions.html#ValueSet.expansion

2) Upon review on 1/14/2020, group does not believe an invariant is required. Rather, an update to ticket FHIR-22664 (previously entered to address the issue with naked expansions) to state that, if a value set is to be persisted, the instance information recieved on a value set resource must be persisted by the terminology service. In other words, both valueset.status and valueset.version SHALL be populated with the instance information from the resource used for the expansion. See verbiage in http://build.fhir.org/valueset-definitions.html#ValueSet.expansion.parameter as an example. 

21ValueSetDefinitionVersion.Activity Status Datevalueset-activityStatusDate
current extensions only address one activity status which means a new resource instance for every status update.<-Agree with ?
22ValueSetDefinitionVersion.Workflow Statusvalueset-workflowStatus
VSD element has broader scope in that it applies to any activity state, not just 'draft' (FHIR 'preliminary') as FHIR does.  extension modification needed; needs change request

make definition of extension and how used more robust.  Note: the text changed to not restrict to preliminary status (found at the Feb 2020 meeting).  Discussed that this element could be a coded element with an example binding. 

Feb 2020: ADD JIRA: Change the name of the existing extension to workflowStatusDescription. 

23ValueSetDefinitionVersion.Stewardvalueset-steward,  publisher + contact

extension was added as an extension for UTG, 0-* ContactDetail,

Publisher is a string that is intended to be used along with contact where the Publisher is only a string name but actual information for contacting is in contact.

DO we Need a tracker to add text explaining that in FHIR the steward and publisher + contact are assumed to be the same, but if they are different then the steward extension (see above) should be used. 
24ValueSetDefinitionVersion.Authorvalueset-author
valueset-author is 0-* ContactDetail 

25
valueset.jurisdiction
In FHIR this reflects the jurisdiction where the value set author expects that the value set is intended to be used.  It is not the same as the V3 realm that is part of value set binding in V3.

26Commentsgap



27ValueSetDefinitionVersion.comments.CommentStringgap



28ValueSetDefinitionVersion.comments.CommentTimeStampgap



29ValueSetDefinitionVersion.Trusted Value Set Expansion Sourcevalueset-trusted-expansion
This extension should only be used if the "authoritative source" (valueset-authoritativeSource extension) does not have a FHIR service which is capable of generating a valid FHIR expansion.Add a tracker to add text to the valueset-authoritativeSource extension to state that the designated "authoritative source" is normally expected to be able to generate a valid expansion of the value set, and if for some reason it cannot then the valueset-trusted-expansion should be used.

Change the valueset-trusted-expansion text to:
If the designated "authoritative source" (as specified in the valueset-authoritativeSource extension, if present) is unable to provide a valid expansion, this extension indicates an alternate authoritative source where the value set expansion may be obtained.

Note: this topic is related to the discussion in the August 29, 2019 vocab call. 


authoritative source:  #23784



trusted expansion: #23785





30Derived Elements




31ValueSetDefinitionVersion.Code System Sourcevalueset.compose.include.system
Datatype uri

32Creation Information




33ValueSetDefinitionVersion.Creation DateValueSet.dategap?There is no equivalent currently in FHIR (valueset-effectiveDate is not the same thing). It will be one of the .dates for the various resource "copies" stored.

34ValueSetDefinitionVersion.CreatedBy
gap?There is no equivalent currently in FHIR (valueset-author is not the same thing). At best this would require identifying a specific stored resource copy that is "the creation" version.

35Revision History
gapThis might be via linking in Provenance

36ValueSetDefinitionVersion.Revision Date
gapThere is no equivalent currently in FHIR (meta is not sufficient).

37ValueSetDefinitionVersion.Tracking Identifier
gapThere is no equivalent currently in FHIR.

38ValueSetDefinitionVersion.Revised By
gapThere is no equivalent currently in FHIR.

39ValueSetDefinitionVersion.Change Notes
gapThere is no equivalent currently in FHIR.

40ValueSetDefinitionVersion.Revision History - derived
gapThere is no equivalent currently in FHIR.

41ValueSetDefinitionVersion.Revision Version Identifier
gapThere is no equivalent currently in FHIR (meta is not sufficient).

42Content Logical Definition - Definitional?

Ended here on 20180911. Note this is not an element but is a header.

43LockedDateValueset.compose.lockedDate
the text in the FHIR defintion is an explanatory usage note, not a definition; must be fixednew tracker item to update the FHIR definition of the element to match the VSD definition tracker 
44ActiveOnlycompose.inactive
the semantic matches OK, but note that the flag states are reversed ie VSD.ActiveOnly=TRUE is the same as ValueSet.compose.inactive=FALSE.No change neededShould we add text to implementation notes?
45CLDSyntaxReference

ValueSet.extension(valueset-expression).expression.language

(We are not sure if this is the correct syntax for this)


FHIR does not support multiple defining syntaxes in ValueSet.compose.  

When Valueset.compose is not used, then when the expression is computable - has a syntax - that expression is found in valueset-expression which uses the datatype Expression. Within that datatype the element language would be used to represent the syntax. 

The issue is that element is bound Extensable to ExpressionLanguage which means that whatever syntax is used must be registered at http://www.rfc-editor.org/bcp/bcp13.txt .

This restriction/expectation will be discussed at next SNOMED on FHIR Meeting.


Robert Hausam Was this ever discussed at a SNOMED on FHIR meeting?
46Content Expressions




47Syntax-based Content ExpressionsValueSet.extension(http://hl7.org/fhir/StructureDefinition/valueset-expression).expression

This uses the valueset-expression extension as noted above. When this extension is used and the syntax is intended to be computable, ValueSet.compose should NOT exist (although technically it is allowed.) Use the rules-text extension for a non-computable description.

Comment:

The expression may be a reference or the actual expression, and is expected to be a computable format.

(note: Nov 21, 2019 WG conf call reviewed cpg-expressionvalueset)

See action for row 50
48Non-computable Content ExpressionValueSet.extension(http://hl7.org/fhir/StructureDefinition/valueset-rules-text)

Use the rules-text extension for a non-computable description.

(note: Nov 21, 2019 WG conf call reviewed cpg-cachedvalueset - definition that act like expansion because of a HAPI and other basic terminology server limitation)  



49Content Defining Element Types




50ContentSystemElement




51ContentSystemElement.DrawnFromCodeSystemcompose.include.system

There are two instances of DrawnFromCodeSystem.  This instance corresponds with 7.1.1.1 in VSD.

compose.include.system is equivalent to VSD DrawnFromCodeSystem. Only change is to review/remove valueset-system.

yes

Removing the the valueset-system extension to ValueSet.compose.include.system.  This extension requires review, as it seems to be redundant and doesn't provide any additional semantics.


#23786

52CodeBasedContentSetcompose.include

VSD separates out valueset and code based valuesets, the compose.include is equivalent as it can apply to both



53CodeBasedContentcompose.include
VSD separates out valueset and code based valuesets, the compose.include is equivalent as it can apply to both

54ContentSystemElement.CodeBasedContent.codecompose.include.concept.code or compose.include.filter.value

VSD defines the CodeBasedContent.code to be the code included on its own or it may define a header code. In FHIR, the former is equivalent to compose.include.concept.code and the latter is equivalent to compose.include.filter.value in combination of the compose.include.filter.op = is-a and compose.include.filter.property = concept



55ContentSystemElement.CodeBasedContent.IncludeRelatedCodescompose.include.filter
This is the collection of lines 56-58

56ContentSystemElement.CodeBasedContent.IncludeRelatedCodes.RelationshipNamecompose.include.filter.property
Similar to the above description, for IncludeRelatedCodes, the FHIR equivalent is compose.include.filter where value = code, op is = and property = relationshipName

57ContentSystemElement.CodeBasedContent.IncludeRelatedCodes.RelationshipTraversalcompose.include.filter.op

The operation is equivalent to compose.include.filter.op. However it has a required binding to the FilterOperator value set. When compared, we have the following:

VSD TransitiveClosure = descendant-of

VSD DirectRelationsOnly = GAP

VSD TransitiveClosureLeaves = GAP

Also, it should be noted in the result VSD profile that the VSD considers the above an "exhaustive list for this item" and therefore the FilterOperator valueset will need to be constrained, assuming new values are added to cover the gaps above

Yessee item 58
58ContentSystemElement.CodeBasedContent.IncludeRelatedCodes.IncludeHeadCodeif true: compose.include.filter.op = is-a

As noted above, there is a gap in the FilterOperator valueset. There is not boolean operation in FHIR for inclusion or exclusion of head codes. When combined with above, we have the following:

VSD TransitiveClosure w/head code (FALSE) = descendant-of

VSD TransitiveClosure w/head code (TRUE) = is-a

VSD DirectRelationsOnly w/head code (FALSE) = GAP

VSD DirectRelationsOnly w/head code (TRUE) = GAP

VSD TransitiveClosureLeaves w/head code (FALSE) = GAP

VSD TransitiveClosureLeaves w/head code (TRUE) = GAP

YesgForge ticket requesting additions to the FilterOperator valueset to cover the gaps noted.  #23783
59PropertyBasedContentSetcompose.include
This is the collection of lines 60-63

60ContentSystemElement.PropertyBasedContentSet.IncludeWithPropertycompose.include.filter.property
compose.include.filter.op
compose.include.filter.value

This is the group of possibly repeating elements, See lines 61-63

61ContentSystemElement.PropertyBasedContentSet.IncludeWithProperty.Namecompose.include.filter.property

In this group of elements, only this one (property.name) is required (if the group exists).

compose. include.filter.property = Name' 

Per VSD, either Value or Expression must be present

If Value is provided and expression not: 

  • compose.include.filter.op = '='
  • compose.include.filter.value = Value

If Expression is provided and Value is not

  • compose.include.filter.op = 'regex'
  • compose.include.filter.value = Expression


62ContentSystemElement.PropertyBasedContentSet.IncludeWithProperty.Valuecompose.include.filter.op
see line 61

63ContentSystemElement.PropertyBasedContentSet.IncludeWithProperty.Expressioncompose.include.filter.value
see line 61

64RelationshipBasedContent

This is the group of possibly repeating elements, 

65ContentSystemElement.RelationshipBasedContent.RelationshipTypecompose.include.filter.property

Per VSD, either RelationshipType = string uniquely identifying the relationship being used to filter the content.

In FHIR:

compose.include.filter.property = RelationshipType

The Data Type in VSD = STR while FHIR filter.property's Data Type = code. However code includes "a set of constrained strings", in which the relationship types are constrained by the code system. 

Where FHIR filter.property.op is used, to determine absence or presence:

filter.property.op = '='

Further, where FHIR filter.property.value is used, to specify the presence or absence or of a specific target of the relationship:

filter.property.value =  a code defined by the code system

For example, to find all concepts in Code System A with the SNOMED CT 'laterality' relationship to the SNOMED CT Concept 'Left', the following combination would be used:

filter.property.name = '272741003'

filter.property.op = '='

filter.property.value = '7771000'



66ContentSystemElement.RelationshipBasedContent.MinimumMultiplicity

For WGM - discuss use of Regex to fill this gap. 

Decision 9/16/2019: add TRACKER extensions to cover minimum and maximum multiplicity

filter.extension


Yes. FHIRPath? Issues w/An extension might be more straight forward to use rather than requiring implementers intepret regex
67ContentSystemElement.RelationshipBasedContent.MaximumMultiplicity

See note above

68ContentSystemElement.RelationshipBasedContent.TargetConcepts

compose.include.filter.op = in

compose.include.filter.value =

comma separated list of concept identifiers (this should be clearly stated)

9/16/2019 Discussion: change value to a choice element to allow a value set uri?  Cannot change the normative resource.  Implementers cannot set value = value set uri as the value of "in" is documented as being a comma separated list.  An extension isn't feasible as it would be a sibling of filter. 



69CodeFilterContent

This is the group of possibly repeating elements, 

70ContentSystemElement.CodeFilterContent.ExpressionTypecompose.include.filter.property
compose.include.filter.op
compose.include.filter.value

9/16/2019 Discussed: value-set.expression extension. Rejected. This extension is at the resource level. 

There is an extensible value set called "Expression Language". 

We have the construct to represent what we need - through the value-set.expression extension.  The extension provides an alternative to compose. 



71ContentSystemElement.CodeFilterContent.Expression

See above - supported in the value-set.expression extension. 

TRACKER:  change the language to allow one or the other, compose or value-set.expression extension. 

Robert Hausam  Add action item: Investigate creating an invariant to force what is described above. 

Yes
72ValueSetReference

This is the group of possibly repeating elements, 

73ContentSystemElement.ValueSetReference.ValueSetRefIDcompose.include.valueSet  
Need to look at this on 10/8, why was it skipped?Should this be 'No'?
74ContentSystemElement.ValueSetReference.Versioncompose.include.valueSet
Because this is now a canonical data type, version is supported.

75ContentSystemElement.ValueSetReference.NameValueSet.title for the compose.include.valueSet

9/16/2019: 

Reminder to attendees:  valueSet.title is the human readable "name", not "ValueSet.name"

Tracker:  4 options discussed

  1. The referenced value set may have an optional title. Depend on the referenced value set to have a name, (extension = otherName exists with context of use = root of value set - otherName definition does not align with ValueSet.name or title), (con: cannot see the name of the value set that is included) or
  2. Add a 2 component extension to support pairing the value set reference ID with a value set title. Sibling to ValueSet.reference (compose.include.valueSet)
  3. Add best practice recommendations 
  4. Value ValueSet.description with information about the value set itself, and any included value sets.

WINNER = 4

Question: is the goal of this project to create a profile that supports all of VSD? Yes. 

Yes - add text in the profile indicating how ValueSet.description should be used. 
76CombinedContent

Quick review, group thinks the spirit of these CombinedContent items are captures through the compose.includes and compose.excludes when combined with $expansion operationNo
77ContentSystemElement.CombinedContent.UnionWithContentcompose.include.valueSet

See comment on line 76 AND

compose.include.valueset in FHIR states "If multiple value sets are specified this includes the union of the contents of all of the referenced value sets."

No
78ContentSystemElement.CombinedContent.IntersectionWithContentcompose.include.valueSet

Per the definition of compose.include.valueset, multiple valuesets listed in an include.valueset reference results in a UNION of members. However, composition rules here, indicate that within compose.include, multiple criterion result in the intersection of the criterion...which appears to be contradictory. Thus, the group is unaware of how existing elements can be used to result in the intersection of two references value sets. 

Update:10/27/19: Grahame has confirmed that the definition of compose.include.valueset appears to be erroneous, when it was moved under compose.include (previously it was under compose), the definition was supposed to be updated FROM:

"If multiple value sets are specified this includes the union of the contents of all of the referenced value sets."

TO

"If multiple value sets are specified this includes the intersection of the contents of all of the referenced value sets."

Yes

Tracker should be opened to state the issue.

Grahame has indicated that there are two possible paths

1) Correct the error in R5

2) Update the valueset-filter-operator valueset (bound to compose.include.filter.op) to include an "in valueset" option.

General initial survey of implementers (Peter and Michael) is that #1 is optimal.

Additionally, looking at VSAC, who is using FHIR 3.0.1) to determine if correcting the include.valuset definition would have an impact, it appears that the Grouping valuesets (example of union) use multiple include statements for union (e.g. here), not multiple include..valueset instances to perform a union. Thus, would not be impacted by the proposed change.

As Valueset is normative, Vocab would need to query "all" implementers and get agreement that the definition was wrong to begin with and should be fixed.

If that were done, Grahame has indicated, as product manager, he would accept the requested change for inclusion into R5.  

05-November-2019

Tracker to be added: (CC) (minutes updated)

  1. Fix the definition of compose.include.valueset to reference intersection, not union.
  2. Add guidance on how to accomplish union - following the method used by VSAC

#25179

79ContentSystemElement.CombinedContent.ExcludeContentcompose.exclude
See comment on line 76

80SOURCE CODE SYSTEM SPECIFICATION

Set of parameters that lay out a series of constraints relative to Code Systems

81DrawnFromCodeSystem

This is the group of possibly repeating elements, 

82DrawnFromCodeSystem.CodeSystemcompose.include.system

No
83DrawnFromCodeSystem.VersionLockedDatecompose.include.version
VSD allows for the specification of versionlockeddate to a particular code system. FHIR only allows for compose.lockeddate to be set for the entire compose statement, i.e., FHIR allows you to specify compose.include.system and compose.include.version, it does not allow you to pass a date per code systemNo tracker item needed, consider inclusion in future documentation regarding alignment of VSD with FHIR
84DrawnFromCodeSystem.VersionLockedStringcompose.include.version
VSD allows for the specification of versionlockeddate to a particular code system. FHIR only allows for compose.lockeddate to be set for the entire compose statement, i.e., FHIR allows you to specify compose.include.system and compose.include.version, it does not allow you to pass a date per code systemNo tracker item needed, consider inclusion in future documentation regarding alignment of VSD with FHIR
85DrawnFromCodeSystem.DescriptiveNameextension valueset-systemName
present as an extensionNo
86DrawnFromCodeSystem.UsedCodeSystemPartition

Not present, only extension avaialble is valueset-supplement, which indicates when a expansion is dependent upon a supplement, no current way to indicate when a partition is required. Not deemed to require further actionNo
87DrawnFromCodeSystem.UsedCodeSystemSupplementextension valuset-supplement

No
88CodeSystemConstraintParameters




89CodeSystemConstraintParameters.AllowedRepresentationvalueset.expansion.parameter.name
To do this, you would pass a name = AllowedRepresentation (or the codesystem defined name for the representation)  for valueset.expansion.parameter.name then value = as defined by the codesystem, the representation you intend to retrieveNo
90CodeSystemConstraintParameters.AreBaseQualifiersUnlimited




91AllowedQualifiers

Does not appear possible to restrict qualifiers. Is that correct?Yesenter tracker item to pose the question and confirm if there is a way to restrict qualifiers
92AllowedQualifiers.RelationshipName




93AllowedQualifiers.MinimumMultiplicity




94AllowedQualifiers.MaximumMultiplicity




95AllowedQualifiers.SortKey




96AllowedQualifiers.TargetConcepts




97CodeSystemPartitions and Supplements??




  • No labels

2 Comments

  1. meeting without quorum 2019-03-05 got through row 22

  2. 2019-05-06 Montreal WGM Monday Q3 - got through row 63