Stream: social
Topic: Trivial tutorial please
Dave deBronkart (Oct 31 2019 at 20:02):
@Keith Boone or anyone, per our call the other day, I'd like to find a "hello world" FHIR mini-exercise that I can do myself and can show to friends who are completely new to the concept. I think the following is a meaningful request:
Please give me a line that I can paste into my browser that will ping a FHIR endpoint and make it barf back a screenful of data to me.
If there's a collection of such mini-exercises somewhere, it's sufficient to point me there.
I'm 98% sure that if it works as I think (from our call and some things I saw at DevDays last year), a bunch of data-starved e-patient people will lust at this and develop appropriate desires to learn more.
Lloyd McKenzie (Oct 31 2019 at 20:06):
What kind of data would you like? Most of the test servers only have our sample instances, which means we tend not to have much realistic depth/volume for most patients, though there are some test servers that have significant volume. Also, would you prefer to hit one of the EHR's test servers or something that is vendor-independent?
Dave deBronkart (Oct 31 2019 at 20:11):
Thanks for the quick response. Answer: I have no frickin' idea. :-)
I'm truly looking for a "hello world" sort of thing that shows the clueless how a RESTful API works (says Keith), specifically in FHIR. So, a trivial example might be (making this up without much thought):
- ping Server 1 to get all my blood pressure data from it
- another to ping Server 2 to get all my blood pressure data
I'm sure the response-barf would be wrapped in tags, not prettily formatted pictures. That's exactly what I expect: it would show the data-starved patient observer what FHIR does - pokes the server in the belly and makes it cough up the goods. It's then up to apps (or whatever skills the observer happens to have) to do something with it.
Is this a useful response?
It certainly doesn't need to be real data from a real hospital etc.
Rik Smithies (Oct 31 2019 at 20:15):
a little old but I made this: http://www.nprogram.co.uk/FHIR%20Hands%20On%20Guide.pdf
Peter Muir (Oct 31 2019 at 20:17):
Recommend Postman as tool, FHIR HL7 online tutorial (I attended very helpful ones with Simone and Lloyd last year at meeting), HL7 FHIR has list of sites such as FHIR, HAPI, Oridashi, etc that have some test data for queries.
Example to pull BP readings:
1) Download postman
https://www.getpostman.com/
2) example
http://demo.oridashi.com.au:8304/Observation?status=final&code=http://loinc.org|8462-4&value-quantity=lt90|http://unitsofmeasure.org/
Lloyd McKenzie (Oct 31 2019 at 20:27):
This gives you the weight of a particular patient on the HAPI server - and shows you what a programmer would see (but lets you hyperlink to referenced resources)
http://hapi.fhir.org/baseR4/Observation?code=29463-7&patient=30
Lloyd McKenzie (Oct 31 2019 at 20:27):
I'd have used test.fhir.org, but it's not up at the moment
Rik Smithies (Oct 31 2019 at 20:27):
URL example from the above PDF tutorial: http://nprogram.azurewebsites.net/Patient/1
that should always return some data straight to the browser without the need for Postman
Lloyd McKenzie (Oct 31 2019 at 20:28):
You shouldn't ever need postman just to do a GET...
Rik Smithies (Oct 31 2019 at 20:28):
true but some sites insist on you "saving as"
Peter Muir (Oct 31 2019 at 20:32):
But it looks pretty ;-)
Andrew Wason (Oct 31 2019 at 20:33):
If you sign up for a free Epic USCDI on FHIR account, most of their FHIR APIs let you interactively try them in the browser with a sample patient context and it just renders the resulting JSON
https://uscdi.epic.com/Sandbox?api=449
Screen-Shot-2019-10-31-at-4.31.02-PM.png
John Moehrke (Oct 31 2019 at 20:42):
I understand the interest in doing a GET in a browswer to a sandbox... but I think there is so much danger to things going wrong and things not being understood. I would far prefer to see a 5 minute YouTube that essentially does the same goal, but rather with carefully explained step-by-step
John Moehrke (Oct 31 2019 at 20:49):
Qvera has a nice 5 minute one, but is more geek focused than patient -- https://www.youtube.com/watch?v=CgfU6E1b9rU
John Moehrke (Oct 31 2019 at 20:52):
This one seems good, but very had to hear https://www.youtube.com/watch?v=y_8Q5D0ST58
John Moehrke (Oct 31 2019 at 21:00):
I am sure @Richard Ettema can make a good 5 minute youtube from his experience with FHIR Connectathon intro track.. :-)
Dave deBronkart (Oct 31 2019 at 21:05):
I understand the interest in doing a GET in a browswer to a sandbox... but I think there is so much danger to things going wrong and things not being understood.
Thanks, John - I promise that if I use the simplified thing that I asked for and Lloyd gave me :-) I will make clear that this is NOT what someone would / should actually do; I'm merely doing this for the sole purpose of showing how conceptually simple a RESTful API is, and how unmysterious FHIR's workings are: you send a request and get stuff spit back at you.
Is that WRONG to do? (Anyone?) My purpose here, again, is solely to convey the concept to people who are motivated and interested, so that they are appropriately encouraged to learn more.
This is all part of my interest in (soonish) evangelizing FHIR awareness to a broader public ... not to turn my mother-in-law into a coder, but to encourage people to WANT to have FHIR capabilities, and ASK for it, and in some situations kindle ideas about what apps and mash-ups might be put together.
Jose Costa Teixeira (Oct 31 2019 at 21:10):
@Dave deBronkart how about a simple example with sample data from an actual server?
here is a quick example - poor but just to show the idea - see if it has legs
Jose Costa Teixeira (Oct 31 2019 at 21:10):
Jose Costa Teixeira (Oct 31 2019 at 21:11):
(sorry for the long URL, just click it)
Jose Costa Teixeira (Oct 31 2019 at 21:12):
just open this
http://tiny.cc/eblifz
Dave deBronkart (Oct 31 2019 at 21:12):
This one seems good, but very had to hear https://www.youtube.com/watch?v=y_8Q5D0ST58
Oy, yes. I tried turning on Closed Captioning via the "CC" icon at bottom, but her accent made it think "the HL7 organization" was something rather different... :-) pasted image
Jose Costa Teixeira (Oct 31 2019 at 21:14):
this simple diagram has a short hint when you hover, to show what it will do (e.g. it will call a REST GET on the URL with some parameters for the patient and the type of observation).
and it gets data from an actual server
John Moehrke (Oct 31 2019 at 21:14):
ah yes, the hedghog organization... seen that one before
John Moehrke (Oct 31 2019 at 21:16):
So my worry about using a link like Lloyds is small, it is powerful as you mention. My worry is that there are many failures that can happen, these failures are inconcequential to the message, but they cause people to question what you are presenting. These are test servers, so they go down (like why Grahame's server was not able to be used by Lloyd, but Lloyd handled that one himself). Like that these test servers change data often. Like these test servers have other people adding data, which you might not be ready for... or might be a prank on you by someone putting something funny in there right at the time they know you are presenting. etc...
Dave deBronkart (Oct 31 2019 at 21:17):
UPDATE: a few minutes later Jose posted a pivotal explanation, in the post that starts "in this simple diagram," which renders most of this post irrelevant.
Original post:
(sorry for the long URL, just click it)
Thanks, I know about long URLs. :-)
I appreciate the pretty illustration - it's clear and all. It happens to be exactly what I'm NOT looking for ... that illustration could model any sort of interface that is opaque and conceptually inaccessible to ordinary people. We out here are far too accustomed to things that seem clear and simple but are utterly inscrutable to us, and it's both disempowering and discouraging.
That's why I like being able to show someone "Look, there's nothing to this - you just put something into a browser bar" (or do it programmatically in the background) and boom, back comes the data! No "Who the hell are you? Inappropriate syntax, you cretin. Go ask a proper nerd."
It may not be apparent how deeply frustrated many of us have been out here ... some of us hunger for just GIMME MY DaM DATA. Note the title slide on my talk at DevDays last year :-) https://www.epatientdave.com/2019/06/22/a-tale-of-two-patients-the-difference-fhir-hopes-to-make-with-free-flowing-data/
Michele Mottini (Oct 31 2019 at 21:19):
It is not WRONG but one caveat: any such example will skip authorization - with the risk that either the audience will think that with FHIR all health data is visible from anywhere / by anyone OR that the audience will want to try that on real data and immediately fail because no authorization - and think that they were sold a bill of goods
Dave deBronkart (Oct 31 2019 at 21:19):
this simple diagram has a short hint when you hover, to show what it will do (e.g. it will call a REST GET on the URL with some parameters for the patient and the type of observation).
and it gets data from an actual server
OH!!! So if in my personal little demo I click those links, it goes off and does that! That's entirely different! I'll go edit my previous post. Aha.
John Moehrke (Oct 31 2019 at 21:19):
note that with the link that Lloyd gave you.. that is using magjic web-server rendering
Rik Smithies (Oct 31 2019 at 21:20):
just to say that the nprogram one is read only, so all the examples always work, and is generally always up (has been up for the last 5 years anyway :-) It was specifically designed for this sort of tutorial.
Dave deBronkart (Oct 31 2019 at 21:24):
It is not WRONG but one caveat: any such example will skip authorization - with the risk that either the audience will think that with FHIR all health data is visible from anywhere / by anyone OR that the audience will want to try that on real data and immediately fail because no authorization - and think that they were sold a bill of goods
Super, @Michele Mottini! So if someday (ahem) I were to record a two minute YouTube micro-introduction, I would need to be sure I say that.
Dave deBronkart (Oct 31 2019 at 21:28):
a little old but I made this: http://www.nprogram.co.uk/FHIR%20Hands%20On%20Guide.pdf
Oo oo oo! This reminds me of a session I saw (utterly clueless) in Amsterdam last year.
I can easily imagine getting someone interested with my "one-line RESTful" demo, then perhaps adding @Jose Costa Teixeira 's simple diagram with clickable stuff, then leaving people alone to step through this 32 page thing.
I'm really curious about exploring this with an interested party or two. I'm going to think about who I know in the Boston area who might be interested.
Dave deBronkart (Oct 31 2019 at 21:32):
they cause people to question what you are presenting. These are test servers, so they go down (like why Grahame's server was not able to be used by Lloyd, but Lloyd handled that one himself). Like that these test servers change data often. Like these test servers have other people adding data, which you might not be ready for... or might be a prank on you by someone putting something funny in there right at the time they know you are presenting. etc...
Great points. So I'm going to suggest someday (soon?) that we create a sacred DEMO server, which is not an acceptable prankspace :slight_smile:
Just like the moments in product development when the brass start to want a RELIABLE demo, for investors or whoever, instead of going into the lab room and poking buttons on the unstable prototypes, y'know? ;-)
I bet that's why Epic stood up the USCDI server that @Andrew Wason mentioned, eh?
Dave deBronkart (Oct 31 2019 at 21:35):
note that with the link that Lloyd gave you.. that is using magjic web-server rendering
Dear sir, I have no idea what you just said, so I'm going to return a NOTE-FAIL error. :slight_smile:
Jose Costa Teixeira (Oct 31 2019 at 21:35):
+1 for demo server. I suggest it has some scripted use cases that tell some stories, not just dummy / test data.
Dave deBronkart (Oct 31 2019 at 21:39):
I suggest it has some scripted use cases that tell some stories, not just dummy / test data.
Yeahbut that's fine as long as it bears its first fruit quickly (MVP). (Should this be an activity we take on in Amsterdam, at a "go write code" table?)
And maybe it can evolve to step through the sequence I just imagined.
==== I just realized, perhaps our Amsterdam keynote speakers Kristina and Kate Sheridan would be interested in this. I'll see if I can get a response out of them. (Notoriously hard to get responses from them in email!)
Jose Costa Teixeira (Oct 31 2019 at 21:42):
I like the idea of an MVP, but I dislike a server that is polluted with much irrelevant stuff.
(just to have an idea, finding data on the server took me almost as much time as making the draft diagram)
Dave deBronkart (Oct 31 2019 at 21:44):
Lloyd said:
http://hapi.fhir.org/baseR4/Observation?code=29463-7&patient=30
Does "code=29463-7" mean "weight"? If so, where is the master dictionary of all such things?
Rik Smithies (Oct 31 2019 at 21:45):
Dave deBronkart (Oct 31 2019 at 21:46):
I like the idea of an MVP, but I dislike a server that is polluted with much irrelevant stuff.
Twas ever thus: smart technical people HATE the clutter layer that marketing people put around the GOOD stuff that creates value, so that those idiot consumers can comprehend how good it is :-) :-)
(Yes, I spent most of my career being an interface between the lab and early-adopter customers and sales people...)
John Moehrke (Oct 31 2019 at 21:54):
Lloyd said:
http://hapi.fhir.org/baseR4/Observation?code=29463-7&patient=30
Does "code=29463-7" mean "weight"? If so, where is the master dictionary of all such things?
Yes, he has encoded a query for any observations with a code value that is the loinc code for weight and the patient identity of 30. You will notice in the results line #31 has that loinc code, and line36 has that patient
Jose Costa Teixeira (Oct 31 2019 at 21:54):
hmm, since I do not understand your meaning, my point is:
I think what we need is marketing-oriented content, not test data.
A demo server should hve content that does not have to be technically cool - actually most is simple stuff. Low-tech demos, they are the most impactful.
I mean that we should avoid showing many scattered examples that do not tell any story. In other words, if we copy all our example resources that we have on fhir.org, those may be useful for tech folks, but not useful for the demo purposes.
It has to be something we can explain to a 5-year old.
Jose Costa Teixeira (Oct 31 2019 at 21:57):
I will definitely use some of these ideas in this chat in my tasks to demistify technology.
I want to explain how to use FHIR to get a patient's medication record in different countries (which is a big mess, and I want to show FHIR makes it less messy)
John Moehrke (Oct 31 2019 at 21:57):
There are some personal stories published by NIH. Would be nice to have data backing them -- https://www.nih.gov/health-information/nih-clinical-research-trials-you/personal-stories
Dave deBronkart (Oct 31 2019 at 22:05):
Yes, he has encoded a query for any observations with a code value that is the loinc code for weight and the patient identity of 30. You will notice in the results line #31 has that loinc code, and line36 has that patient
And since I only HEARD of loinc a few weeks ago, there is no way this consumer would have known that :-)
Many many things must be learned when the gates to the castle are first opened and snorting, belching, ignorant consumers burst through the door.
It's EXACTLY what happened in the font industry when desktop publishing arrived and the snorting, belching, ignorant Mac users belched things like "Kerning??? Waddaya mean? Who ever heard of that? You guys are idiots." and "SERIFS?? I don't know what that is - I just want the pointy things on the tips of letters." Get ready...:-)
Lloyd McKenzie (Oct 31 2019 at 22:06):
A demo space that can't be pranked means that you can't demo anything other than reads (which may be acceptable for some use-cases). Even then, systems go down occasionally for technical reasons, upgrades, etc.
Dave deBronkart (Oct 31 2019 at 22:08):
Brief response: I could nit-pick, but yes, I basically agree with most of this. (I certainly do what enough authentic-looking test data to let someone understand how it works)
I do like the idea of telling a story ... but remember the subject line of this thread: trivial is all I'm asking for, at present.
hmm, since I do not understand your meaning, my point is:
I think what we need is marketing-oriented content, not test data.A demo server should have content that does not have to be technically cool - actually most is simple stuff. Low-tech demos, they are the most impactful.
I mean that we should avoid showing many scattered examples that do not tell any story. In other words, if we copy all our example resources that we have on fhir.org, those may be useful for tech folks, but not useful for the demo purposes.
It has to be something we can explain to a 5-year old.
John Moehrke (Oct 31 2019 at 22:08):
I never asked for that. I used it as an example of the kind of failure that will happen that is not an important failure to the demonstration but it is the kind of failure that will throw into question the demo
John Moehrke (Oct 31 2019 at 22:09):
There is a set of patient persona defined by NIH/NIDDK that I thought they had made a set of data for... but I can't find the data yet... https://www.niddk.nih.gov/-/media/Files/Health-Information/Communication-Programs/NKDEP/Patient_Personas_508.pdf?la=en
Jose Costa Teixeira (Oct 31 2019 at 22:11):
I do like the idea of telling a story ... but remember the subject line of this thread: trivial is all I'm asking for, at present.
my point too, I think. we should have simple examples that make sense to non-techies.
John Moehrke (Oct 31 2019 at 22:12):
AH here is one.. part way down the page on the careplan is a download.. unfortunately it is not FHIR, but surely we can convert it to FHIR.. put that in a batch Bundle, so that it can be setup on any test server... https://www.niddk.nih.gov/health-information/communication-programs/nkdep/working-groups/health-information-technology/development-electronic-ckd-care-plan
John Moehrke (Oct 31 2019 at 22:15):
I think that the FHIR Connectathon - careplan track used this patient.. @Emma Jones did you create a realistic test dataset for the careplan test track from the NIH persona?
David Hay (Oct 31 2019 at 22:56):
the clinFHIR patient viewer gives a number of views of patient data if that is of interest...
Dave deBronkart (Nov 01 2019 at 00:21):
How would I use it, as an ordinary layman?
David Hay (Nov 01 2019 at 05:34):
Good question. Perhaps we can talk more at devdays... Sorta depends on what the layman wants to understand...
René Spronk (Nov 01 2019 at 07:48):
A CarePlan scenario would be nice [esp. from a patient perspective] (and they use one during the connectathon track, with sample data, based on the personas mentioned above). As for the data having to be read-only: that need not be true. We'll just have to make sure that frequently (e.g. once a day) one does a DELETE example_patient/$everything [which doesn't exist out of the box, but you know what I mean], followed by a 'POST' of the demo set. That's good enough for most demo use cases. We have a script which does a similar thing for resources needed during Fire.ly FHIR training courses, we just post them regularly to the various public test servers. If the data was mangled on one of these servers (it still happens occasionally), we'll just ask the attendees to switch to another server.
John Silva (Nov 01 2019 at 09:36):
@David Hay - I was just going to point @Dave deBronkart to http://clinfhir.com/ . The web-based click-through interface allows someone to walk through the FHIR resources and get a basic understanding of how these are linked together. The 'hardest past' is to find an existing patient with a particular scenario of interest, e.g. a CBG patient or a diabetes patient, to understand how a specific clinical scenario might be mapped to FHIR resources. (e.g. how to search for a patient by a particular clinical scenario rather than searching for a random patient by name and hoping that it has some interesting data.) I went to the http://clinfhir.com/patientViewer.html patient viewer and searched for 'everyman' and found many patients matching that name but not sure which one might have 'interesting' (or relatively full) set of FHIR data. The other question, for someone trying to understand the REST part of this, is how are the FHIR resources you see on clinfhir.com accessed by FHIR REST calls?
John Moehrke (Nov 01 2019 at 12:14):
There is a dataset backing the careplan connectathon track. Here is the GitHub https://github.com/chronic-care/sample-data
It has a full set of data for Betsy patient as json objects that can be loaded into a sandbox of your choice.
Gino Canessa (Nov 01 2019 at 13:32):
I'm a bit late to this thread, but are you asking for something like a 'first time FHIR user' version of the tooling I built for testing subscriptions?
If you go through one of the scenarios (after connecting on the main page), each step shows the URL of the request, what data was sent, what data was received, and (for most steps) a more human readable view of what that data means.
The inline documentation isn't designed for a novice since the target of this project is developers already working with FHIR, but the paired documentation (link at the top of the scenario) has basic explanations of the steps, flowcharts, etc.
It would be trivial to convert this over to an 'introductory' style walkthrough, but my concern would be that everyone wants that to look differently (e.g., connecting to multiple servers for the same data vs different use cases for data, etc). What would be useful?
David Hay (Nov 01 2019 at 17:50):
@John Silva - Answering the second question first - the app makes REST calls directly (via AJAX) to the server to get the data - actually, it's a $everything call which gets all the data in one go, then analyses it in different ways. The XML representations each make a separate call using _format to specify XML
(btw - a common way to find a patient with data is to create a new one from the 'select patient' dialog - it's a link at the bottom left of the dialog. This creates a random patient with a small set of data - @Mark Braunstein helped out with this, and uses it in his course)
wrt specific scenarios - we could create the resources for specific scenarios on a known server (maybe using the graph builder) and then adapt the patient selector dialog to support a 'select by scenario' as well as by patient name. Each scenario would have its own patient, so the changes required would be small. We could list the scenarios in a list of some sort rather than requiring the user to know what they are... This idea overlaps with ones we've had with patient care (@Russell Leftwich @Stephen Chu @Laura Heermann ) to do similar things for clinician scenarios...
The trick will be to choose a server to put the graphs on - the public servers are not really built for this. Maybe the hspc folk (@Shilpy Sharma @Viet Nguyen ) would be interested - and, of course, they have tons of data already...
@John Moehrke - Thanks for the reference - I'll see what I can do about pulling them into a server
@Gino Canessa - some nice ideas in there - perhaps a bit technical for a first time user?
btw - should we move this conversation to patient empowerment before we get told off? :)
Gino Canessa (Nov 01 2019 at 18:02):
@David Hay yes, I was more curious about the format of a 'rails' scenario with feedback as a template.
David Hay (Nov 01 2019 at 18:13):
BTW - I added the va careplan data into the hapi 4 server (too easy!). To see it:
- Start clinfhir (http://clinfhir.com/)
- Set the data server to 'Public Hapi R4'
- Select the Patient Viewer
- Load the patient with the id "va-pat-dan"
If the idea has legs, then I think a customized start screen for patients that automatically selects the server and just has a list of scenarios might be the way to go...
John Silva (Nov 01 2019 at 21:31):
David, can you load the data from the project @John Moehrke mentioned (https://github.com/chronic-care/sample-data); it seems to have a script to make it 'easy' to load. Another thought would be to somehow point clinFhir at some Synthea datasets? https://synthetichealth.github.io/synthea/
Dave Carlson (Nov 01 2019 at 21:59):
I authored all of these sample JSON data at (https://github.com/chronic-care/sample-data) over the past 2 years to support our connectathon work in the Care Planning track. The resources are intended to be realistic for the patient persona, Betsy Johnson, as defined by the NIH NIDDK project. This is all described on the connectathon page: https://confluence.hl7.org/display/FHIR/2019-09+Care+Planning+and+Management+Track#id-2019-09CarePlanningandManagementTrack-ChronicKidneyDiseaseCareManagement
Dave Carlson (Nov 01 2019 at 22:04):
We also used a slightly modified version of this patient person at HIMSS 2019 interoperability showcase in the Consumer-Centered Care Planning use case demo that included six organizations. This use case demo did include an explicit patient perspective and engagement, which was fulfilled by PatientLink in the showcase demo.
David Hay (Nov 01 2019 at 23:01):
@John Silva that was the va careplan I referred to above - I'll add the other one and ping when done... You can certainly point CF at the other datasets - just set the data server to the url and select the patient...
David Hay (Nov 01 2019 at 23:15):
OK - try with id = cc-pat-betsy
David Hay (Nov 01 2019 at 23:16):
I'll add a couple of functions to make viewing a bit easier...
John Silva (Nov 01 2019 at 23:48):
@David Hay - tried it with cc-pat-betsy -- works nicely. One problem I noticed; if I click on the Patient resource then the patient, it takes quite a while to load (I thought it was hung but I guess because it's building the tree of linked/referenced resources)
David Hay (Nov 02 2019 at 01:22):
Yeah - it wasn't really designed for large datasets so could use some attention performance -wise. Mind you, once loaded it should be pretty fast, so I might focus on functionality first - for example being able to choose a resource as the focus and hide those not connected. Suggestions welcomed...
John Silva (Nov 02 2019 at 04:27):
Maybe don't retrieve all the resources upfront, use a 'lazy loading' mechanism. As someone choses a resource (clicks on one) it only loads the immediate resources referenced by it; then as the user browses around, bring in more resources (and cache them maybe?)
David Hay (Nov 02 2019 at 04:33):
Actually suspect that the internal processing isn't that great - will look into it...
David Hay (Nov 04 2019 at 02:57):
Amanpreet Singh (Nov 07 2019 at 21:07):
Hi there
I am building interfaces to support FHIR messages. Presently interfaces is receiving HL7 v2.3 data and after mapping storing HL7v2.3 data in database. Moving forward interface should receive HL7v2.3 data and produce FHIR bundle and then save data to database. I am working on building new message mapping specs for HL7 to FHIR. Can someone please help me what is good tutorial/guide I can follow.
I finding it confusing to find corresponding placeholders in FHIR against HL7 fields.
Help is really appreciated.. thanks in advance.
Lloyd McKenzie (Nov 07 2019 at 21:26):
You may find the #v2 to FHIR stream helpful
Craig Newman (Nov 08 2019 at 13:25):
@Amanpreet Singh you may also want to check out the v2-to-FHIR project page at https://confluence.hl7.org/display/OO/2-To-FHIR+Project. We are attempting to provide starter maps for v2 messages and segments. We are slowly putting together text for an implementation guide but for the time being we are documenting it on https://confluence.hl7.org/display/OO/v2-to-FHIR+IG. This may be helpful too. In general, you'll find that not every v2 field will have a corresponding FHIR element, but most of the common ones do.
Dave deBronkart (May 17 2020 at 20:16):
@Lloyd McKenzie @John Moehrke @Michele Mottini @David Hay @Jose Costa Teixeira @Rik Smithies @David Hay @René Spronk and all -
It's time to rejuvenate this thread, because I'm happy to say that our tweeting about the upcoming DevDays Patient Innovator Track has awoken interest in some good patient advocates who are showing a good curiosity (at last!) about what FHIR really is, so again (as in October) I want to be able to show them.
These are people who've been climbing walls and jumping through hoops to get the data they need for a patient, which too often gets stymied by bureaucracy, and FHIR may be a GREAT help. Two recurring use cases are a cancer patient who urgently needs a second opinion, or one who urgently needs to get into a clinical trial. One such advocate (Stacy Hurt) has had three client-patients die while she struggled to get the required data out of their health system.
Some of these voices are technically minded, and all are not the least bit intimidated by discovering a new tool that may give them new ability to bend the trajectory of these cases.
Dave deBronkart (May 17 2020 at 20:27):
I want to give them a simple demo of how FHIR allows (with proper authorization) pulling specific data items, if you know what you're asking for. Way upthread Lloyd posted this example.
http://hapi.fhir.org/baseR4/Observation?code=29463-7&patient=30
That spits back a screenful of stuff in which I can easily point to (or highlight in a blog post) the answer "82.5", the units "kg," the date of the encounter, the measure itself (LOINC code 29463-7 = body weight), etc. While is is not technologically profound, the potent attraction of this demo is that they got it without logging in to some clunky portal. They got it by directly pinging the system.
(For any who don't know me, beware that while I basically understand what data is, how XML works, etc, I am no coder, and I'm very green about health data, LOINC, etc. This probably is the same for patient advocates in this population too.)
I know there are numerous products created by members of this community that will do such things, so nobody would need to learn FHIR to get someone's weight history. But I'm trying to stir up their interest in exploring the broad broad range of what data FHIR can let them get at.
So, RIGHT NOW it's game on. I will be blogging the above in some suitable form tonight and would love to have someone do a sanity check. I'll post the draft link here.
If I'm misguided say so, please. I really want consumers to come ASKING to get their data through FHIR. For those of you who have consumer apps, I'm sure some will find that you offer what they want. Others may uncover a need that will justify a new product. Who knows - that's the point. Powerful consumer voices in crisis have never really had access to this.
Here's an example question: What would a URL be to request a radiology report describing a lung tumor?
And in the few cases where an actual scan exists in the EHR, what would a URL look like?
Jose Costa Teixeira (May 17 2020 at 20:45):
@Dave deBronkart you, sir, are responsible for this coming insomnia.
Jose Costa Teixeira (May 17 2020 at 20:47):
Just to direct the ideas: What do you find more interesting:
a) "Let's see where is this patient's data out there - hey, let's start by asking which systems speak FHIR"
b) "Let's see the evolution of this patient's health path along a specific facility or set of facilities"
Jose Costa Teixeira (May 17 2020 at 20:48):
is it more about discovery or about follow-up?
Jose Costa Teixeira (May 17 2020 at 20:48):
(or anything else - please share some thoughts to sync wavelengths)
Dave deBronkart (May 17 2020 at 20:49):
Thanks, @Jose Costa Teixeira ! I think (a) would not be useful for the use cases I mentioned; the advocate would need to find out "My patient is from hospital X ... does X have a FHIR endpoint?" and then in either case, do (b) for all the needed data.
Jose Costa Teixeira (May 17 2020 at 20:50):
so for this we assume that the data is already collected in one place, right?
Dave deBronkart (May 17 2020 at 20:50):
I think I'll invite all the applicants so far (and potentially interested others from Twitter) to come have a look at this, as soon as I have my post drafted. In a few hours. Thanks again.
Jose Costa Teixeira (May 17 2020 at 20:52):
Thanks. I was thinking of putting something together, but it's important to do the most impactful thing
Dave deBronkart (May 18 2020 at 03:30):
Well folks, here's an unpublished draft of my first post daring to push this out to citizen-patients. PLEASE freely point out errors or give advice on how to make it more realistic in a consumer-friendly way. I just want people to get the basic idea so they can decide whether they see value for their needs and want to know more about FHIR.
https://www.epatientdave.com/?p=16082&shareadraft=baba16082_5ec20061b8705
René Spronk (May 18 2020 at 06:57):
Personally I'd make the analogy with 'the web' a lot stronger. Your readers will know how to "use HTTP to fetch a web page (in HTML format, a format understood by your web browser)" (you may wish to remind them of the acronyms). With FHIR you "use HTTP to fetch a healthcare-data-structure [aka resource] (in FHIR, a format easily understood by EHRs and APPs)".
GET http://hapi.fhir.org/baseR4/Observation?code=29463-7&patient=30 , explain highlights (as you're doing)
Explain that, much like a hyperlink in a HTML page, that Patient/30 is actually a reference to another resource, thus one has an interlinked set of resources to express a complex set of clinical data (much like a set of HTML pages that have links between them and jointly convey a full set of information)
GET http://hapi.fhir.org/baseR4/Patient/30 , explain highlights (as you're doing)
Explain that HTTP as used on the web mostly uses GET, but that you can also do a POST (send something to a server, could be a FHIR resource).
Briefly mention that security/authorization mechanism is the same as used by all other applications on the web (Facebook, twitter, Google, etc.).
Mention this is mandated by law(s) and where most of the uptake is.
[call to action] imagine what YOU could do with this (or something akin to that).
Dave deBronkart (May 18 2020 at 11:41):
@René Spronk ! Fabulous response! You've taken it much farther than I imagined, but I'm thrilled that apparently I'm on the right track. I think I'll put in some of your additions in a response (and some in this post). Thank you!
Anyone else?
John Moehrke (May 18 2020 at 14:45):
I love the way you approached this.
John Moehrke (May 18 2020 at 14:47):
It is unfortunate that the data you have doesn't have the display name for the LOINC code. What you have is minimally populated, but does leave the reader thinking that it never is explained. I guess the minimal population is best approach to set expectations.
John Moehrke (May 18 2020 at 14:48):
Similarly there should be a .text element where the whole thing is explained in human readable form. But again, your resource sample is minimally populated and thus has none.
John Moehrke (May 18 2020 at 14:50):
for example the simple body weight example in the FHIR specification is http://hl7.org/fhir/observation-example.json.html
John Moehrke (May 18 2020 at 14:51):
or the example in US-Core also is more descriptive http://hl7.org/fhir/us/core/STU2/Observation-weight.json.html
John Moehrke (May 18 2020 at 14:51):
but, yes the minimal is possible and likely does drive home the need for an app
John Moehrke (May 18 2020 at 14:57):
as to @René Spronk comment on security... this is not a wrong statement, but not complete and might drive the wrong impression. In that security in healthcare data has just as many failures as corporately controlled data (facebook, etc). Or that corporations can be just as stupid about the subjects ability to control and access their data. I suspect the point is that we have not invented new security technology, we are applying mature and capable technology developed by standards organizations that focus on web technologies. We do also have standards in FHIR for addressing things not common in web technologies: AuditEvent, Consent, Provenance, Sensitivity tagging, Digital Signatures, etc...
René Spronk (May 18 2020 at 15:11):
Glossing over some 'details' is the nature of the game, but we should try and spin the security issue in a positive way.
As for this example not being the best one - for training courses we regularly run a script to ensure that the resources we need for training courses can be found on all major public FHIR servers. We could create better examples (a fullblown graph of them, we could perhaps use clinFhir to construct this example set) and ensure they're available on all major public FHIR servers. One of the points of Dave's blog is: "DO try this at home".
Dave deBronkart (May 18 2020 at 16:21):
René Spronk said:
One of the points of Dave's blog is: "DO try this at home".
YES. I am just beginning the process of making people aware that such things could even be possible, given how horribly difficult it has often been. Perhaps we'll start to see people asking, "Can FHIR get it??" when faced with access problems. THAT would be perfect, wouldn't it. :slight_smile:
Dave deBronkart (May 18 2020 at 16:23):
John Moehrke said:
It is unfortunate that the data you have doesn't have the display name for the LOINC code. ...does leave the reader thinking that it never is explained.
That's why I touch on it in the blog post. And again, the sole purpose of this initial post is to get appropriate people interested, wanting to learn more.
Jenni Syed (May 18 2020 at 16:30):
Ignoring that the .text for the loinc is missing...
Jenni Syed (May 18 2020 at 16:30):
That also is missing the narrative, which is one of the safety checklist items...
Dave deBronkart (May 18 2020 at 16:37):
René Spronk said:
Great - I'm so new to this that I wouldn't even have guessed that! It'll be a good sequel. Maybe I'll make it into some Google Slides: "Here, click this! Now click that! See what's going on?"
http://hapi.fhir.org/baseR4/Location/32 = "ER"
"period": {
"start": "2019-09-17 T21:52:23+00:00",
"end": "2019-09-26 T18:30:00.000Z"
Aha: a 9 day hospitalization.
(Is it possible to retrieve the photo via a URL?) (Funny that they named the patient John Doe, gender F, Merkel photo :-))
I mean, this is radically transparent and accessible. Radically.
Dave deBronkart (May 18 2020 at 16:43):
René Spronk said:
Personally I'd make the analogy with 'the web' a lot stronger.
@René I'm inserting this:
(In fact, FHIR does use HTTP. Browsers use HTTP to fetch web data; FHIR uses HTTP to fetch health data. How cool is that?)
Dave deBronkart (May 18 2020 at 16:47):
Jose Costa Teixeira said:
Dave deBronkart you, sir, are responsible for this coming insomnia.
:grinning_face_with_smiling_eyes:
Lloyd McKenzie (May 18 2020 at 16:59):
To view the file, post the content of the base-64-encoded image information into the text box in this site: https://base64.guru/converter/decode/file
Dave deBronkart (May 18 2020 at 17:06):
Okay, I published it. https://www.epatientdave.com/2020/05/18/a-glimpse-of-how-fhir-works-for-people-whove-fought-to-get-their-data/
David Hay (May 18 2020 at 17:54):
Nice post! How about a followup that talks about the 'kind' of information you can get. - ie resource types simplified. For example:
- To find out results use Observation (which does a whole lot of stuff)
- For Diagnoses use Condition
- For Medications it does vary a bit. Try MedicationStatement (used in lists), MedicationRequest (perscriptions), MedicationDispense (dispenses)
- ...
Also perhaps - how to find your number (and it will be different on each EHR)
- Patient?name=dave deBronkart
How far do you want to take it? You may recall the 'Intro to FHIR for clinicians' talk you attended - do you think something like that tidied up a bit would be useful? And do you remember the graph builder - letting you stitch resources together - would people be interested in that (perhaps with simple scenarios and answers available if stuck)...
Dave deBronkart (May 18 2020 at 18:05):
YES to all of that. Right now this week I'm focused entirely on getting applications to DevDays Patient Track so this is at the MOST basic level, but I'd love it if we (you!) could flesh out a series of such things!
Dave deBronkart (May 18 2020 at 18:13):
My daughter's a high school science teacher who's into synthetic biology, specifically the BioBuilder program. Their slogan is "What will YOU build with biology?" I can see stealing it being inspired by that: "What can YOU do with FHIR?"
Dave deBronkart (May 18 2020 at 18:17):
Seriously, yes, the advocates I'm already talking to are very task-driven ("get things done, NOW") and would be very interested in having things they can watch with companion materials to "click along with." VERY. Because then they'll connect it to their current needs and say "Okay, so how would I fetch X?" And then they OWN the whole thing - they've become users. "Okay, how do I connect to Mass General / Stanford / Hopkins / Wilson Community Hospital" etc ec.
And they'll bang on doors of hospitals that aren't supporting FHIR yet. Etc.
David Hay (May 18 2020 at 18:21):
What would help would be to get a 'wish list' (from those wanting to get their data) - about what data they would want. I could guess of course, but it would be so much better if the users could indicate their requirements. And - any thoughts about what would be good candidates for graph builder scripts?
David Hay (May 18 2020 at 18:34):
Actually - could that be a question for your devdays attendees - "what information would you like to be able to access"?
Dave deBronkart (May 18 2020 at 18:36):
LOL first you have to tell me what a graph builder script it :slight_smile:
David Hay (May 18 2020 at 18:41):
Just a specific requirement of some sort. eg what does a medication list look like? What about all the bits in a lab result (who ordered it, who did it, why did they do it). Sorta falls out of the requirements I guess - in the example you mentioned in your blog you had a single observation - but key to understanding FHIR is that individual resources are linked together to tell the 'bigger picture'... who took that weight?
Dave deBronkart (May 18 2020 at 19:42):
I suspect we'll need to explore, at first, finding out what questions different advocates / activists have. After a few such relationships blossom a little perhaps we'll be able to propose an introductory sequence that proves valuable to the next one.
In any case it starts with starting!
Last updated: Apr 12 2022 at 19:14 UTC