{"id":24752069,"url":"https://github.com/inferno-framework/dynamic-fhir-servers","last_synced_at":"2026-04-05T20:35:05.236Z","repository":{"id":55041256,"uuid":"304663304","full_name":"inferno-framework/dynamic-fhir-servers","owner":"inferno-framework","description":"Tool to create FHIR servers dynamically based on an implementation guide.","archived":false,"fork":false,"pushed_at":"2021-01-14T17:46:52.000Z","size":5230,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-02-17T04:28:43.461Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/inferno-framework.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-16T15:14:39.000Z","updated_at":"2021-06-14T09:15:38.000Z","dependencies_parsed_at":"2022-08-14T09:50:52.399Z","dependency_job_id":null,"html_url":"https://github.com/inferno-framework/dynamic-fhir-servers","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inferno-framework%2Fdynamic-fhir-servers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inferno-framework%2Fdynamic-fhir-servers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inferno-framework%2Fdynamic-fhir-servers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inferno-framework%2Fdynamic-fhir-servers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/inferno-framework","download_url":"https://codeload.github.com/inferno-framework/dynamic-fhir-servers/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245052670,"owners_count":20553172,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-28T10:34:42.321Z","updated_at":"2025-12-30T23:40:18.875Z","avatar_url":"https://github.com/inferno-framework.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# README\n\nThe fhir-api provides a dynamic server for handling get/search requests based on user provided json data in the form of the implementation guide that contains a capability statement\n\n## REST API:\n\n### GetById\n\nAbility to search for specific resources by id and get data back based on example json data provided for that resource\n\n#### Route:\n\nGET /resource/id\n\n#### Response:\n\nresource JSON\n\n### Search\n\nAbility to query with various valid parameter combinations and get data back based on example json data provided for that resource\n\n#### Route:\n\nGET /resource?queryParameters\n\n#### Response:\n\nresource JSON\n\n#### Requires:\n\nfhir-validator-wrapper running in the background found at: https://github.com/inferno-community/fhir-validator-wrapper\n\n### Create\n\n#### Route:\n\nPOST /resource BODY: Must contain \"id\", \"resource_type\", \"resource\"\n\n#### Reponse:\n\ncreated resource JSON\n\n### Delete\n\n#### Route:\n\nDELETE /resource/id\n\n#### Reponse:\n\nsuccessfully deleted resource with specified id\n\n### Update\n\n#### Route:\n\nPUT /resource/id BODY: Must contain valid JSON to be stored in resource column\n\n#### Reponse:\n\nsuccessfully updated resource with specified id\n\n## System dependencies\n\nRequires PostGreSQL installed 1.2.3 or above\n\nRequires Ruby version 2.7.2\n\nRequires Rails 6.0.3.4\n\n## Configuration\nAssumes default PostGreSQL username/password, can be modified in the config/Database.yml file as needed\n\n### Windows PostGreSQL Tips\nIf you don't know the username/password of the postgre installed on your OS, uninstalling and reinstalling will\nbe the easiest way to reset it. The default credentials are username: postgres password: null\n\n### MAC PostGreSQL Tips\n```shell script\nbrew update\nbrew install postgresql\ninitdb /usr/local/var/postgres\npg_ctl -D /usr/local/var/postgres start\npg_ctl -D /usr/local/var/postgres stop\n```\n## Database creation - this ideally will be simplified in the future to be one command that can run on startup without user interaction\n\n```shell script\nrake db:create\nrake db:structure:load\n# To load json example data from \u003cRuby Root\u003e/db/seeds/package/example/\nrake db:seed json_file='package'\n# To load json data from Synthea from \u003cRuby Root\u003e/db/seeds/synthea\nrake db:seed json_file='synthea'\n```\n\n## Running Locally\n\n### Initial Setup Commands\n\n```shell script\nbundle install\n```\n\n### Starting up server each time\n\n```shell script\nrails s\n```\n\n#### Note: https://github.com/inferno-community/fhir-validator-wrapper must be running on port 4567 if using search commands\n\n## Running in Docker\n\nTo run this service in Docker, run the following commands in the `dynamic-fhir-servers` directory:\n* `docker-compose up --build`\n* (once the prior command has started all the containers): `docker-compose run dfs bin/setup_db.sh`\n\n### Rails port configuration\n\nThe docker-compose configuration maps the rails endpoint to port `3000` on the host machine.\n\nTo change this, change the `ports` line in the `dfs` entry in `docker-compose.yml` from `- \"3000:3000\"` to `- \"\u003cyour_desired_port\u003e:3000\"`, and restart the containers.\n\nFor example: `- \"8080:3000\"` will map the rails endpoint to port `8080` on your machine.\n\nThe docker-compose maps the `package` and `synthea` directories in `db/seeds` into the container. Re-running `docker-compose run dfs bin/setup_db.sh` after changing those directories (and restarting the `dfs` container by running `docker-compose restart dfs`) will re-seed the database with the new structure. To clear the old structure prior to reloading, run `docker-compose run dfs bin/rake db:drop`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finferno-framework%2Fdynamic-fhir-servers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finferno-framework%2Fdynamic-fhir-servers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finferno-framework%2Fdynamic-fhir-servers/lists"}