W3C

– DRAFT –
FHIR RDF

12 August 2021

Attendees

Present
Brad Simons, Darrell Woelk, David Booth, Emily Pfaff, EricP, Gopi, Guoqian Jiang, Harold Solbrig, Sajjad
Regrets
-
Chair
David Booth
Scribe
dbooth

Meeting minutes

Brad Simons, SureScripts

brad: Motivation for the project was to reuse info from C-CDA: strip out wanted data and get at it more effectively. Work is patented.
… We take a FHIR RDF model and a SureScripts model.
… We created our own full FHIR model: all resources, all property, all constraints, cardinalities, datatypes. Then added SureScripts model, to: 1. add properties.
… Grahame's model does not have a system name on coding. We added one to make it more readable.
… Also the SureScripts model has a whole mapping model -- what a C-CDA would be to FHIR.
… Take in the FHIR model and SureScripts model and take all the possible xpath permutations, and breadcrumb trail of all resources and properties needed to populate it.
… So an instance or attribute that contains a problem.code it knows what all the components are, so it can instantiate it.
… I'm able to execute those to extract the relevant data to build all the RDF objects that you see, to populate them with the appropriate data.
… Can also generate a list of instances w data values.
… For coding value I can get the relevant info from the FHIR model and give it to HAPI, and HAPI will generate the proper code using reflection.

sajjad: FHIR in RDF vs FHIR RDF? You have your own ont of FHIR.

brad: the base FHIR model is our own ont, but if you lay it next to the FHIR ont, it is very similar.
… My goal is to adopt yours.

eric: The stuff you add is to make it more readable?

brad: I also have my own mappings to get from C-CDA to FHIR, but also rules in that add-on model.

sajjad: scalability and maintenance issue, when FHIR spec changes? Diff between FHIR RDF and FHIR in RDF.

brad: Yes, and I want to get off of using my own model. Want to be able to use your FHIR RDF.

sajjad: you're taking xpaths to populate your schema? Why not JSON into FHIR schema?

brad: If the purpose was to go from XML to FHIR, you probably wouldn't need to go through RDF, but you cannot do rules processing on JSON.

sajjad: There are rules reasoners available on RDF.

brad: Can support augmentation, process breadcrumb trail, capture data from text section and auto-populate the coded section.

brad: Ran into naming convention issues -- not consistent across FHIR RDF models.
… Also ran into recursion issue.
… contains can have a "contains" and the names keep being concatenated.

eric: questionnaire response has that recursion problem too.

harold: Yes, there are recursive structures in FHIR, and that's one of the reasons we need JSON-LD 1.1

brad: You don't want to keep concatenating contains.contains.contains ....

brad: Instead, we just had valueset expansion contains component and left it at that.

harold: I think we've addressed this with JSON-D 1.1

eric: Q about xpath annotations.

brad: We have a mapping file, w a multitude of nodes with xpath segments, and those segments have an affiliation w a particular FHIR resource property.
… When I churn through that stuff, I dynamically build full xpath from breadcrumb trail.

eric: Do those end up on instance data, like Sally's diagnosis, or on metadata.

brad: The xpath that I built is captured in a binary file, and access them at parse time. They're never passed through to anybody.
… Point is to generate a FHIR rep of the C-CDA data, but there's too much unnecessary stuff in C-CDA.

eric: Could we see one of the instances, populated with your extra stuff?

guoqian: When you convert C-CDA to RDF, how many FHIR resources do you cover?

brad: A lot of the resources are reused: Allergy, Med, Immun, Problems, Condition, OBservations (incl familiy history, vitals, etc.), insurance.

guoqian: Do you have issues with your FHIR RDF to the XML representation?

brad: None. Part of the reason I'm converting to FHIR, is a lot of vendors (Epic, etc.) want to consume FHIR. Meaningful Use caused vendors to use C-CDA, but it didn't tell them how, so the C-CDAs differ.
… I want to be able to pass on only the info that is needed, to maintain privacy.

guoqian: No issues w HAPI FHIR? brad: None.

brad: I'm using HAPI to take my FHIR RDF and produce JSON, and using reflection it produces everything, with only hundreds of lines of code.

brad: I'm generating metadata that a colleague uses to generate from POJOs in HAPI.

eric: C-CDA diversity was the shortcoming? And will that be any better with FHIR?

brad: Probably more structured, but not better.
… Consider Allergies. people will codify your Allergies, or your lab results, with ranges, etc.
… But if you go into the doc's office and say which meds you are taking, they never look up the codes. Allergies are even worse: 9/10 times its coded in the text section -- never codified.
… But here, I'm able to extract info like that and put it into the codified section.

gopi: Our EHR only provides text fields for the user, so it's not codified

david: How to improve FHIR RDF model?

brad: We compared w ours, and matched it as much as possible.
… We saw that if we could fix the recursion and standardize on naming, we could drop our model and go with yours.

david: Got the list of diffs between yours and ours?

brad: I had a few data augmentations that I put into the base FHIR model that are not relevant to you -- branch points.

david: Lists?

brad: We have lists of lists.

Action: Brad to find the comparison of their FHIR RDF to ours

sajjad: Suppose you have Organization w a name, assume it is 0 or 1. How would you define the cardinality in RDF?

brad: We use OWL to capture the cardinality.

sajjad: For usability, from C-CDA, vendors are more interested in being in FHIR. When you transform C-CDA to FHIR, how do you deal w templating? E.g. family history? They all go to Observation. Specialized rules/templates?

brad: i have mappings defined for specific sections like Family History. They're driven off of LOINC code in C-CDA for the section.

sajjad: There is a mapping from C-CDA to FHIR:

Link from sajjad: https://github.com/GoogleCloudPlatform/healthcare-data-harmonization/tree/master/mapping_configs/cda_fhir_r4

brad: Our models are very close.

eric: From working w this at NHS, one challenge I've seen in usability is the lenght of the predicates and the lack of connection betweeen similar predicates.
… FHIR folks have make a big effort to harmonize them. We're now looking at using just the last segment of the predicates. Does that alarm you or okay with it?

brad: I'll have to see.

FHIR RDF R4 issues collected by Harold Solbrig

https://github.com/fhircat/fhir_rdf_validator/tree/master/tutorial

We'll discuss these on a future call, but wanted to give you the link, to start looking at them.

ADJOURNED

Summary of action items

  1. Brad to find the comparison of their FHIR RDF to ours
Minutes manually created (not a transcript), formatted by scribe.perl version 136 (Thu May 27 13:50:24 2021 UTC).

Diagnostics

Succeeded: i/Link from sajjad/sajjad: There is a mapping from C-CDA to FHIR:

Succeeded: i/david: How to improve FHIR RDF model/gopi: Our EHR only provides text fields for the user, so it's not codified

No scribenick or scribe found. Guessed: dbooth

Maybe present: brad, david, eric, guoqian, harold