https://github.com/fhircat/FHIRCat/issues/31
harold: I took two very differnet
JSON representations for patient record, Phenopacket and a
patient record. Mapped phenopacket to FHIR patient resource and
got an aggregate resource.
... Cool side effect: phenopacket had "sex male", but FHIR had
"gender MALE". ShEx can detect that, to detect mapping
problems!
... But the exciting key is that phenopacket had an attribute
not present in FHIR patient. I mapped it to an ID. But Guoqian
pointed out that there's a group defining a mapping from
phenopacket to FHIR. I then changed my URI to match theirs. We
want the RDF rep of extended FHIR to be the same as the patient
record that was not converted.
... Ignoring modifiers and underscore issue for the moment, the
extensions should just get flattened out so the RDF does not
even have the extension.
david: Where would the extension go?
harold: Example name with first
and last, and want to extend it. In FHIR, you have first, last
and extension with URI "title", extension, for example, with
value "sir".
... I want that in RDF to have subject patient, predicate name,
bnode, with first last and title predicates on it.
... So the extension node would disappear entirely.
... JSON-LD has a thing called "nest", and it pulls a property
up a level. They also have a framing inverse.
... So if I understand the extension URI, I can go back the
other way. But if I get extensions that I don't understand,
then I don't know how to turn that back into the extension
form.
... That allows me to take a completely foreign form of JSON,
and treat it as a FHIR extension.
... Another issue: URI in the predicate is a valueString.
david: How about marking each extension predicate as type fhir:ExtensionPredicate?
harold: Still need to wrestle
with extensions for primitive types. Looked for nested
extension, and was surirised at the number of underscore cases
I found -- a lot more than expected.
... for modifierExtensions, name first and last should not be
visible unless you traverse the modifier property.
AGREED: The regulard data should not be visible iif there is a modifierExtension without explicitly navigating through the modifierExtension.
harold: for primitive property
like "active", I'd like to have the value be a bnode.
... Another approach to extension would be a variation on
option 2, and use 'birthdate.extension' predicate.
... But that would be no better than option 3.
... Option 3 would increase the ontology size, having a
relationship for every primitive type.
... Also, now there are two ways of handling extensions, for
primitives or non-primitives.
david: But that is at odds with the motivation for treating primitives differently from non-primitives, because primitives were too clumsy in R4 with the extra bnode.
eric: Could use the R4 approach when there is an extension.
harold: I'd rather that my code
always expects a literal, but discards an extra bnode if not
needed.
... We don't want fhir:active bnode. That doesn't match the
rest of the world.
... I want to be able to say birthDate maps to
fhir:Patient.birthDate . Not put them inside gratuitous
objects.
<hsolbrig> qw+
david: In many cases, RDF user will ignore non-mod extensions.
harold: I think RDF users will often want the extensions. If an extension is just a new RDF predicate, what would that look like with primitive extensions?
<hsolbrig> eric: what if I had a status of '7' with an uncertainty w/ uncertainty of 0.2
eric: What would a modeler do in RDF if you have 'status 7' , but extended to 'status 7 with undertainty 2'?
<hsolbrig> ... in this case they'd add the extra level of indirection
<hsolbrig> ... fhir has solved that in a pathological way by making everything indirect
eric: FHIR solved that by making an extra level of indirection everywhere, but that's not ideal in RDF.
harold: There are also FHIR examples with underscore properties and no corresponding non-underscore property.
david: Does that just mean there is no data to put in the non-extended property?
<ericP> ericP: screw case: an extension predicate that could apply to both a literal or the subject of the literal arc.
<scribe> ACTION: Please add pros/cons to each option
<ericP> david: the definition of the extensions precludes that
<scribe> ACTION: Dazhi and Harold to create an RDF triplestore for testing proposed R5 RDF.
This is scribe.perl Revision: 1.154 of Date: 2018/09/25 16:35:56 Check for newer version at http://dev.w3.org/cvsweb/~checkout~/2002/scribe/ Guessing input format: Irssi_ISO8601_Log_Text_Format (score 1.00) Present: Harold_Solbrig EricP Dazhji David_Booth hsolbrig No ScribeNick specified. Guessing ScribeNick: dbooth Inferring Scribes: dbooth WARNING: No date found! Assuming today. (Hint: Specify the W3C IRC log URL, and the date will be determined from that.) Or specify the date like this: <dbooth> Date: 12 Sep 2002 People with action items: add cons dazhi harold please pros WARNING: IRC log location not specified! (You can ignore this warning if you do not want the generated minutes to contain a link to the original IRC log.)[End of scribe.perl diagnostic output]