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://
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://
We'll discuss these on a future call, but wanted to give you the link, to start looking at them.
ADJOURNED