Stream: IG creation
Topic: Unable to process Value unless a single type is specified
Rob Hausam (Aug 17 2018 at 03:43):
I'm slicing on ConceptMap.group.element.target.dependsOn with 'property' as the discriminator and getting this error. I'm not absolutely sure what it wants me to fix, as I think I have only a single type (uri). Anyone have tips on what to look at?
Grahame Grieve (Aug 17 2018 at 03:44):
that's a spreadhseet loading error - you have specified a fixed value, but the spreadsheet parser doesn't know how to parse it unless you explicitly specify the type
Grahame Grieve (Aug 17 2018 at 03:45):
the spreadsheet parser doesn't have access to the underlying resource at that point
Rob Hausam (Aug 17 2018 at 03:46):
right, it's spreadsheet (since that's what LIVD is using) - so add the type for both of my slices?
Grahame Grieve (Aug 17 2018 at 03:48):
yes in this case you have to, just so it can parse the fixed value
Rob Hausam (Aug 17 2018 at 03:48):
that's no problem, but it didn't work - unless I didn't do it right
Grahame Grieve (Aug 17 2018 at 03:49):
what do you have for the value of Type?
Rob Hausam (Aug 17 2018 at 03:50):
uri
Grahame Grieve (Aug 17 2018 at 03:51):
I'll have to debug it then. commit, and I'll look at it in a sec- just trying to figure out a DEQM issue
Rob Hausam (Aug 17 2018 at 03:53):
sure - I haven't done much with profiling with spreadsheets before so I'm probably making multiple mistakes
Grahame Grieve (Aug 17 2018 at 03:56):
let me know when you've committed
Rob Hausam (Aug 17 2018 at 04:07):
ok - I was just trying something first - following a pattern that I've seen (a bit blindly), but now working yet
I'm also trying to use a required binding to a code list with the uri slices - that could be a bit off the beaten path
will commit now
Grahame Grieve (Aug 17 2018 at 04:11):
which ig?
Rob Hausam (Aug 17 2018 at 04:13):
committed - HL7/livd
Grahame Grieve (Aug 17 2018 at 04:19):
k on it shortly
Rob Hausam (Aug 17 2018 at 04:19):
sure
Rob Hausam (Aug 17 2018 at 04:21):
as I said, I'm probably doing plenty of things wrong - haven't found many examples to look at and documentation is somewhat sparse
Grahame Grieve (Aug 17 2018 at 04:30):
@Lloyd McKenzie livd won't build for me because it's not getting the latest iG publisher
Grahame Grieve (Aug 17 2018 at 04:30):
though it claims that it's current
Rob Hausam (Aug 17 2018 at 04:32):
I'm actually in the process of removing that from git and just handling it locally
you can run as ./_genUpdatePublisher.sh
Rob Hausam (Aug 17 2018 at 04:32):
oh, ok - that worked for me
Grahame Grieve (Aug 17 2018 at 04:34):
it's trying to run 14809 for me - really really old
Rob Hausam (Aug 17 2018 at 04:35):
hmm - I don't really get that - but it can be downloaded separately, of course
Lloyd McKenzie (Aug 17 2018 at 04:42):
Did you commit with the new publisher after running the getnUpdatePublisher?
Grahame Grieve (Aug 17 2018 at 04:43):
who? why?
Lloyd McKenzie (Aug 17 2018 at 04:43):
Rob
Rob Hausam (Aug 17 2018 at 04:44):
I committed after downloading the new publisher - because I needed it to resolve the issue with the rollback (which I had, too)
Lloyd McKenzie (Aug 17 2018 at 04:44):
And everything in src-generated was committed?
Grahame Grieve (Aug 17 2018 at 04:45):
I do not understand this spreadsheet. what are you trying to do with the target?
Grahame Grieve (Aug 17 2018 at 04:46):
you've tried slicing something that doesn't repeat, and you've not specified a type for the value?
Rob Hausam (Aug 17 2018 at 04:47):
I'm on 14877
Rob Hausam (Aug 17 2018 at 04:48):
ConceptMap.group.element.target.dependsOn is 0..*
Rob Hausam (Aug 17 2018 at 04:48):
trying to slice on property
Grahame Grieve (Aug 17 2018 at 04:48):
but you sliced property
Grahame Grieve (Aug 17 2018 at 04:49):
what would slicing on property do?
Rob Hausam (Aug 17 2018 at 04:49):
ok - that's not what I intended - trying to get a handle on how to do it in the spreadsheet
Rob Hausam (Aug 17 2018 at 04:49):
I'm finding the xml a lot easier to understand for this
Rob Hausam (Aug 17 2018 at 04:50):
slicing on property allows you to provide exactly one each of a dependsOn value for specimen and result
Rob Hausam (Aug 17 2018 at 04:52):
so property is sliced and bound to the value set with 'specimen' and 'result'
and then dependsOn.value will be populated for those (exactly two) slices
Grahame Grieve (Aug 17 2018 at 04:53):
so this is a uri element. so the values need to be full uris (not technically but it's good practive)
Grahame Grieve (Aug 17 2018 at 04:53):
there's no need for a binding. just set the fixed value
Grahame Grieve (Aug 17 2018 at 04:53):
and then you prohibit system.... because?
Rob Hausam (Aug 17 2018 at 04:57):
yeah - I was concerned about that, but relative urls are allowed, as well as binding to a value set
the rationale for prohibiting system is that property is mandatory and earlier the group didn't feel it was needed (and Hans likes to get rid of things that aren't needed)
but that doesn't really make any sense, particularly if we're using the binding - we do have a system
and in fact I tried to populate it (forgetting for the moment that it had been constrained away)
Rob Hausam (Aug 17 2018 at 04:59):
as I said - learning from multiple mistakes trying to get comfortable with doing it this way - and I know that spreadsheets are going away, but we have them now
Grahame Grieve (Aug 17 2018 at 04:59):
right. system is necessary because you're mapping from and to CodeableConcept elements
Rob Hausam (Aug 17 2018 at 05:00):
yes, it certainly is - just forgot to fix that
Rob Hausam (Aug 17 2018 at 05:03):
dependsOn isn't directly in the mapping, but we need it to enable the guidance for differentiating between multiple available LOINC mappings for some IVD codes
it's expected that value will mostly be text - it is string - but maybe could be computable at some point
Grahame Grieve (Aug 17 2018 at 05:05):
then we should not constrain system out.
Rob Hausam (Aug 17 2018 at 05:06):
no, I totally agree - it was an oversight to leave it constrained - that makes no sense
Grahame Grieve (Aug 17 2018 at 05:07):
where would specimen come from ?
Grahame Grieve (Aug 17 2018 at 05:08):
Specimen.type?
Rob Hausam (Aug 17 2018 at 05:10):
from the local lab knowing what they want to do with it
it could be specimen type - but the group felt that for the IVD manufacturers and labs who receive it it would normally be text descriptions of the specimen(s) that would be associated with that particular mapping
Grahame Grieve (Aug 17 2018 at 05:11):
but it would still conceptually be Specimen.type, just not coded
Rob Hausam (Aug 17 2018 at 05:11):
yes, I agree
Grahame Grieve (Aug 17 2018 at 05:13):
ok committed what I think you want in the spreadsheet
Grahame Grieve (Aug 17 2018 at 05:13):
no. I missed fixing the cardinality on system. you can do that
Rob Hausam (Aug 17 2018 at 05:14):
ok - very helpful - I'll see how close I'm thinking now to what you actually did - thanks!
Grahame Grieve (Aug 17 2018 at 05:15):
I'll let you know when I'm done fighting with git
Rob Hausam (Aug 17 2018 at 05:15):
ok
Grahame Grieve (Aug 17 2018 at 05:15):
looks like I win. you can pull now
Rob Hausam (Aug 17 2018 at 05:16):
excellent
Rob Hausam (Aug 17 2018 at 05:31):
the slicing pattern makes sense - I just hadn't managed to come up with it
appreciate the pointer in the right direction
Rob Hausam (Aug 17 2018 at 05:31):
a further question I have is, what's the way to set closed slicing in the spreadsheet?
I haven't found anything obvious (to me) for doing that yet
Rob Hausam (Aug 17 2018 at 05:41):
the system discussion kind of went in a circle - since there's no binding for 'value' and it's expected to be text, 'system' isn't relevant, which was the original idea - so leaving it constrained out makes sense
Grahame Grieve (Aug 17 2018 at 06:18):
it
Grahame Grieve (Aug 17 2018 at 06:19):
it's always going to be text? never going to be computable?
Grahame Grieve (Aug 17 2018 at 06:21):
there appears to be no way to make it closed in the spreadsheet - that's odd. @Lloyd McKenzie I thought we routinely did that?
Lloyd McKenzie (Aug 17 2018 at 06:22):
Closing slices is a very bad thing, so no we don't routinely do it. It is possible though. The hover on the heading text in the spreadsheet explains how.
Lloyd McKenzie (Aug 17 2018 at 06:23):
Why would we close slices? That says no-one can send other data they want to send and if someone else needs it, you have to build a separate interface. General guidance is leave slicing open and ignore what you don't care about.
Rob Hausam (Aug 17 2018 at 06:25):
I read the explanation using the '|' delimited fields, but it didn't work - I tried "property | false | closed", which seemed to be the pattern, but maybe that's not quite it - it didn't seem to parse anything past the first bar
Grahame Grieve (Aug 17 2018 at 06:26):
that's not supported in IG spreadsheets - that's what the code says
Lloyd McKenzie (Aug 17 2018 at 06:27):
It was supported at one point...
Rob Hausam (Aug 17 2018 at 06:27):
I don't disagree generally with you, Lloyd - but the LIVD group has felt quite strongly that they have a very specific use case and they have been rather draconian (definitely too much so, in my opinion) about wanting to remove just about everything that they don't have an immediate use for (thinking they would add it back in later if it's ever needed in the LIVD context).
Lloyd McKenzie (Aug 17 2018 at 06:27):
In any case, why are you closing your slices?
Rob Hausam (Aug 17 2018 at 06:28):
well that explains why it didn't work
Lloyd McKenzie (Aug 17 2018 at 06:28):
The problem with that is they're saying "anyone talking to LIVD must do so with a custom interface" - which is a foolish thing to do in a standard.
Lloyd McKenzie (Aug 17 2018 at 06:29):
Expect negative ballots :)
Rob Hausam (Aug 17 2018 at 06:29):
they're looking at a specific limited use right now and only want to support that at the moment
I will prepare them for that :)
Rob Hausam (Aug 17 2018 at 06:30):
maybe they will soften the stance a bit now
Rob Hausam (Aug 17 2018 at 06:37):
actually closed slicing really shouldn't even be needed to do what they are wanting
the cardinalities should also work - with two required slices and max 2 set on the sliced element
although I'm noticing that the cardinality on that element (dependsOn) isn't being rendering at all in the differential and is showing incorrectly as 1..1 in the snapshot
Grahame Grieve (Aug 17 2018 at 06:40):
is that GF#17241 ?
Rob Hausam (Aug 17 2018 at 06:42):
actually it's not showing up for either differential or snapshot (although I'm sure I did see it on snapshot at first)
and the cardinality renders fine for other non-sliced backbone elements
Rob Hausam (Aug 17 2018 at 06:43):
yes, that is GF#17241
Rob Hausam (Aug 17 2018 at 06:46):
also the binding shows up as required, but what's bound do doesn't show
Rob Hausam (Aug 17 2018 at 06:46):
other than the fixed value, which is shown - but not the value set
Rob Hausam (Aug 17 2018 at 06:50):
the constrained out (0..0) elements also don't show that way and have incorrect cardinalities in the snapshot, but are correct in the differential
Last updated: Apr 12 2022 at 19:14 UTC