FHIR Chat · StructureMaps · implementers

Stream: implementers

Topic: StructureMaps


view this post on Zulip Stephen Royce (Jul 26 2016 at 04:12):

When building a StructureMap where one StructureMap.structure defines a StructureDefinition as "produced", should there also be an instance of StructureMap.group.input for that StructureDefinition as "target"?

view this post on Zulip Grahame Grieve (Jul 26 2016 at 04:26):

well, that depends.

view this post on Zulip Stephen Royce (Jul 26 2016 at 04:27):

Great! On what?

view this post on Zulip Grahame Grieve (Jul 26 2016 at 04:28):

when you define an output parameter, you are sawying that the object to map to is created outside the sciprt

view this post on Zulip Grahame Grieve (Jul 26 2016 at 04:28):

I mean, outside this map

view this post on Zulip Grahame Grieve (Jul 26 2016 at 04:29):

that's really useful - in fact, required - when you are using one map from another

view this post on Zulip Grahame Grieve (Jul 26 2016 at 04:30):

but when it comes to incoking it from an application, it's not always what you want - that the application has to create teh right thing in order to invoke the map

view this post on Zulip Stephen Royce (Jul 26 2016 at 04:30):

I don't think so. Perhaps, then, I shouldn't be using "produced"? My mean of that was that it's an artefact that doesn't yet exist and is being produced by the transformation, but perhaps I misread.

view this post on Zulip Grahame Grieve (Jul 26 2016 at 04:30):

so the map can do it either way - create the output internally, or require it to be passed in exteranly

view this post on Zulip Grahame Grieve (Jul 26 2016 at 04:30):

I don't think we've got this bit right yet

view this post on Zulip Stephen Royce (Jul 26 2016 at 04:31):

Suite!

view this post on Zulip Stephen Royce (Jul 26 2016 at 04:33):

I'm happy for the map to create the output internally.

view this post on Zulip Stephen Royce (Jul 26 2016 at 04:35):

(I think!)

view this post on Zulip Alexander Henket (Sep 03 2016 at 20:31):

I'm trying to see if StructureMap could be the missing link for mapping onto a profile. My source is not FHIR, but an ART-DECOR artifact called Dataset which sort of aligns with a FHIR Logical Models (we could have a different discussion about that.

I'm failing at almost every level to make it work, mostly because I cannot figure out how StructureMap is supposed to be used.

Also I'm missing (as is true in many places around FHIR) multi lingual labels options. I just wish multi lingual as just baked into the datatypes rather than bolted on later if at all.

Anyway... Every mapping line for me consists of this info:

Source: dataset id + version + multi lingual name, concept id + version + multi lingual name
Target: StructureDefinition element/@id or element/@path. Usually 1 path, could be multiple in parallel or as choice.

Optional: use ConceptMap for vocabulary

@Grahame Grieve Could we get together somewhere on topic in Baltimore?

view this post on Zulip Grahame Grieve (Sep 03 2016 at 22:03):

we can discuss, though I'm not sure when. I don't know whether StructureMap is the right thing for what you're trying to do - your mapping sounds like a concept mapping from meta-model to meta-model to me, and that's not really what StructureMap does. But perhaps I don't understand.what you're doing, and you should provide a specific example

view this post on Zulip Grahame Grieve (Sep 03 2016 at 22:04):

I think it would be good to move through the discussion here first

view this post on Zulip Grahame Grieve (Sep 03 2016 at 22:04):

StructureMap/the mapping language does require a shift of perspective, that's true.

view this post on Zulip Alexander Henket (Sep 04 2016 at 06:43):

Ok, let's try setting the stage. From a helicopter view I'm marrying things we do in ART-DECOR, with stuff in FHIR. Overall purposes is to provide insight to implementers of profiles (StructureDefinitions) as to how the logical definition of what they are implementing relates to it.

What we do in ART-DECOR:
===
Create dataset for definitional purposes. Characteristics of a dataset:
1. Has id (OID) + version (timestamp YYYY-MM-DDThh:m:ss), multi lingual name and other properties
2. Has concepts. Concepts can be a group and contain concepts or be an item and have value domains (code|string|ordinal| ...)
3. Concepts have an id (OID) + version (timestamp YYYY-MM-DDThh:m:ss), multi lingual name and other properties
4. The concept as well as coded value domains have vocab bindings
5. The concept binds to 0.* single terminology codes/expressions that provide definition/context
6. The concept coded valuedomain binds to 0..* value sets
===
Create scenario/transaction for contextual purposes. Characteristics of a transaction are most relevant:
1. Has id (OID) + version (timestamp YYYY-MM-DDThh:m:ss), multi lingual name and other properties
2. Binds to (a subset of) concepts from a dataset -- the context may not require use of every item in the dataset
3. Every concept is assigned cardinality / conformance / conditions
4. At present we do not yet support choosing terminology at this level, but we intend to
===
So I see a couple of routes:
1. Try to keep stuff in ART-DECOR where it is and find a bridging language that connects it to FHIR

2. Re-express everything we do in ART-DECOR as FHIR, e.g. Dataset = FHIR Logical Model and Transaction = Profile on FHIR Logical Model, and then try to bridge to profiles.

Both fail for lack of a FHIR expression language that connects the dots. I have an expression language in ART-DECOR, and I can visualize a profile with clickable links linking the profile directly to the logical definition, but that does not really help me on Simplifier, the build, or any other currently conventional platform. My thinking is that every modeller that creates Logical Models in FHIR would have the exact same problem to solve: how do I tell my profile implementer about the relationship between the logical model and the profile? How do you intend to do this for NEHTA?


Last updated: Apr 12 2022 at 19:14 UTC