All Projects β†’ Asymmetrik β†’ Graphql Fhir

Asymmetrik / Graphql Fhir

Licence: mit
A secure GraphQL implementation for the HL7 FHIR specification based on the current implementation guide for GraphQL with FHIR and developed with Node.js and Express.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Graphql Fhir

Meteor Integration
πŸš€ meteor add apollo
Stars: ✭ 107 (-2.73%)
Mutual labels:  graphql
Src Cli
Sourcegraph CLI
Stars: ✭ 108 (-1.82%)
Mutual labels:  graphql
Apollo Link
πŸ”— Interface for fetching and modifying control flow of GraphQL requests
Stars: ✭ 1,434 (+1203.64%)
Mutual labels:  graphql
Strapi
πŸš€ Open source Node.js Headless CMS to easily build customisable APIs
Stars: ✭ 41,786 (+37887.27%)
Mutual labels:  graphql
Angular1 Apollo
AngularJS integration for the Apollo Client
Stars: ✭ 108 (-1.82%)
Mutual labels:  graphql
Graphql Pundit
Pundit authorization helpers for the GraphQL Ruby gem
Stars: ✭ 109 (-0.91%)
Mutual labels:  graphql
Porn Vault
πŸ’‹ Manage your ever-growing porn collection. Using Vue & GraphQL
Stars: ✭ 1,634 (+1385.45%)
Mutual labels:  graphql
Json Serverless
Transform a JSON file into a serverless REST API in AWS cloud
Stars: ✭ 108 (-1.82%)
Mutual labels:  graphql
Gatsbytutorials.com
A community-updated list of video, audio and written tutorials to help you learn GatsbyJS. πŸ‘©β€πŸ’»
Stars: ✭ 109 (-0.91%)
Mutual labels:  graphql
Thorium
Platform for starship simulator controls
Stars: ✭ 109 (-0.91%)
Mutual labels:  graphql
Prettier
Prettier is an opinionated code formatter.
Stars: ✭ 41,411 (+37546.36%)
Mutual labels:  graphql
Snug
Write reusable web API interactions
Stars: ✭ 108 (-1.82%)
Mutual labels:  graphql
Gest
πŸ‘¨β€πŸ’» A sensible GraphQL testing tool - test your GraphQL schema locally and in the cloud
Stars: ✭ 109 (-0.91%)
Mutual labels:  graphql
Spectrum
Simple, powerful online communities.
Stars: ✭ 10,315 (+9277.27%)
Mutual labels:  graphql
Action policy Graphql
Action Policy integration for GraphQL
Stars: ✭ 110 (+0%)
Mutual labels:  graphql
Firebase Functions Graphql Example
GraphQL server running on Cloud Functions for Firebase
Stars: ✭ 107 (-2.73%)
Mutual labels:  graphql
Flask Graphene Sqlalchemy
βš—οΈProject template to build a GraphQL API in Python
Stars: ✭ 109 (-0.91%)
Mutual labels:  graphql
Formql
FormQL - A framework for building dynamic forms in Angular
Stars: ✭ 110 (+0%)
Mutual labels:  graphql
Persianjsonplaceholder
Persian fake REST/GraphQL API for testing and prototyping.
Stars: ✭ 110 (+0%)
Mutual labels:  graphql
Gql
Stars: ✭ 109 (-0.91%)
Mutual labels:  graphql

GraphQL-FHIR Build Status Coverage Status GitHub license

A secure GraphQL implementation for the HL7 FHIR specification based on the current implementation guide for GraphQL with FHIR and developed with Node.js and Express.

Prerequisites

You should have a basic understanding of working in Node.js and at least a basic understanding of what GraphQL is and how it works.

Getting Started

  1. Installation
git clone https://github.com/Asymmetrik/graphql-fhir.git
cd graphql-fhir
yarn install
  1. Start a local dev server
# For development
yarn nodemon
  1. View http://localhost:3000/3_0_1/$graphiql to explore the available queries and mutations in the graphiql interface. The standard graphql endpoint is available at http://localhost:3000/3_0_1/$graphql.

What's next

See our Frequently Asked Questions for explanations on how to configure the server, connect to an actual database, setup authentication, and more. You can also read up on the project structure under the Architecture section if you are curious about that kind of thing. If you are want to know about our future plans, see our Roadmap. If you have any other questions, please ask them on StackOverflow with the tag graphql-fhir.

Frequently Asked Questions

Architecture

We designed this project in the way that we did so we can support multiple versions simultaneously and add new versions very quickly. Everything in src/resources is generated by an internal tool that reads Structure Definitions downloaded from the official FHIR website. The tool output's schemas, inputs, parameter files, custom scalars, and profile endpoints, which includes files used to register queries and mutations with the server as well as resolvers.

If you decide to use this server, you will rarely need to modify code in src/resources except for code in the profiles, since this is where you add resolver logic and configure which profiles you want to support.

The folder structure for the project looks like this:

src
| - config.js
| # Contains server and version configuration 
| - index.js
| # Entry to the application
| - src/lib
| # Contains custom libs we use, server, logger's, etc
| - src/middleware
| # Custom express middleware
| - src/scripts
| # Scripts for local development and testing.
| - src/utils
| # Various utilities used throughout the application
| - src/resources
| # All the code in here is auto generated for each version
|  | - 3_0_1
|  | # This directory contains all the 3_0_1 logic
|  |  | - inputs
|  |  | # Contains all input schemas for mutations
|  |  | - parameters
|  |  | # Defines what arguments can be provided to search operations.
|  |  | - scalars
|  |  | # Contains some custom FHIR types.
|  |  | - schemas
|  |  |  # Defines all the output schemas.
|  |  | - profiles
|  |  |  # Contains all the configurable profiles for GraphQL.
|  |  |  | - patient # or any other resource for that matter
|  |  |  |  | - index.js
|  |  |  |  | # File used to register capabilities with the server
|  |  |  |  | - mutation.js
|  |  |  |  | # Mutations configuration. Auto-Generated and should not modify
|  |  |  |  | - query.js
|  |  |  |  | # Query configuration. Auto-Generated and should not modify 
|  |  |  |  | - resolver.js
|  |  |  |  | # Contains placeholders, your logic to query your backend goes here.

Roadmap

  • [x] Authentication Initializers and passport support
  • [x] Better documentation on setup and configurations
  • [x] Change return format for ResourceList queries to a FHIR Bundle instead of a GraphQLList
  • [ ] Implementation guides and demos
  • [ ] Support for more resources
    • [ ] USCore resources.
  • [ ] Support for more versions
    • [x] DSTU2 (1.0.2).
    • [x] STU3 (3.0.1).
    • [x] R4
  • [ ] Work with community to continue to establish best practices for FHIR with GraphQL and implement them here.

Contributing

Please see CONTRIBUTING.md for more details regarding contributing issues or code.

License

graphql-fhir is MIT licensed.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].