Repository navigation
Replies: 3 comments
|
Currently, I have a good idea of how SMART apps work and what they can do. The main difficulties I've identified so far are:
Some useful resources I've found:
Currently I am working on:
I could do (4) right now by basically gluing together the different examples I've seen so far, but I think doing it from scratch would be instructional and I'd like to see what a more-modern example looks like. On the topic of more-modern examples, there are also Typescript+React examples. This one in particular is of interest because it also demonstrates use of |
|
I've familiarized myself with HAPI server and set up a local HAPI JPA server following this starter project. I chose a JPA server over a Plain Server (aka Facade) because the JPA server provides its own relational database and storage/retrieval logic out of the box, which seems well-suited for app development. If I were looking to integrate with existing data sources, I would choose the Plain Server. For more on the different servers see REST Server Types. The HAPI FHIR docs are very good, enough that I didn't need to consult any other sources to understand what I was doing. I like that they adequately explain many of the concepts without requiring the reader to have more than basic familiarity with FHIR. I only ran into two difficulties. Neither were significant but are worth documenting:
Next I'll bulk load Synthea data into the server and connect a simple SMART app. (Bonus: The server comes with an admin GUI where you can search, query, perform CRUD operations on, and validate FHIR resources.) |
|
I can run a very simple browser-based SMART app and request FHIR resources from my server! It returns the searchsets I expect. Feels satisfying. One file <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Simple Browser-Based SMART App</title>
<script src="https://cdn.jsdelivr.net/npm/fhirclient/build/fhir-client.js"></script>
<script type="text/javascript">
const client = FHIR.client("http://localhost:8080/fhir");
client.request("Patient").then(console.log).catch(console.error);
client.request("Encounter").then(console.log).catch(console.error);
</script>
</head>
</html>I'll try something more complex now and see if/where things break. |


Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Big Picture: Can we build a SMART app + are there tools Sero can offer?
@jamais-vu documenting our previous discussion here, let's use this discussion thread for now. We might create specific issues, but as of right now this is research.
All reactions