{"id":16195065,"url":"https://github.com/chgl/magnifhir","last_synced_at":"2025-03-19T04:30:52.135Z","repository":{"id":50610751,"uuid":"519610327","full_name":"chgl/magniFHIR","owner":"chgl","description":"Basic Patient resource browser to provide visibility into your FHIR servers.","archived":false,"fork":false,"pushed_at":"2024-10-29T09:25:17.000Z","size":1494,"stargazers_count":7,"open_issues_count":11,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-29T11:42:04.378Z","etag":null,"topics":["blazor","blazor-server","ehr","electronic-health-record","fhir","healthcare"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chgl.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-30T20:05:36.000Z","updated_at":"2024-07-02T20:15:12.000Z","dependencies_parsed_at":"2023-02-18T19:45:27.554Z","dependency_job_id":"ec559288-de16-48b2-a2f7-11e9a4186855","html_url":"https://github.com/chgl/magniFHIR","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chgl%2FmagniFHIR","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chgl%2FmagniFHIR/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chgl%2FmagniFHIR/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chgl%2FmagniFHIR/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chgl","download_url":"https://codeload.github.com/chgl/magniFHIR/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243971156,"owners_count":20376784,"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":["blazor","blazor-server","ehr","electronic-health-record","fhir","healthcare"],"created_at":"2024-10-10T08:26:04.095Z","updated_at":"2025-03-19T04:30:51.633Z","avatar_url":"https://github.com/chgl.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# magniFHIR\n\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/chgl/magniFHIR/badge)](https://api.securityscorecards.dev/projects/github.com/chgl/magniFHIR)\n[![SLSA 3](https://slsa.dev/images/gh-badge-level3.svg)](https://slsa.dev)\n\nVisibility into your FHIR server.\n\n## Running\n\n\u003c!-- x-release-please-start-version --\u003e\n\n```sh\ndocker run --rm -it -p 8080:8080 \\\n    -e FhirServers__0__Name=\"HAPI FHIR Test Server\" \\\n    -e FhirServers__0__BaseUrl=\"https://hapi.fhir.org/baseR4\" \\\n    ghcr.io/chgl/magnifhir:v1.5.2\n```\n\n\u003c!-- x-release-please-end --\u003e\n\nOpen \u003chttp://localhost:8080/\u003e in your browser, select the `HAPI FHIR Test Server` in the server selection and click on `Patient Browser` in the left-hand menu.\n\n## Screenshots\n\n![Screenshot showing the server selection](/docs/img/screenshots/server-selection.png \"Configure multiple FHIR servers to connect to\")\n\n![Screenshot showing the patient browser](/docs/img/screenshots/patient-browser.png \"List all Patient resources stored in the server\")\n\n![Screenshot showing the patient record conditions tab](/docs/img/screenshots/patient-record-conditions.png \"See a Patient's Condition resources\")\n\n![Screenshot showing the patient record observations tab](/docs/img/screenshots/patient-record-observations.png \"See a Patient's Observation resources\")\n\n## Configuration\n\nMultiple FHIR servers can be configured including support for basic authentication.\nYou can use environment variables to set each entry in the `FhirServers` key, as done above,\nor mount a file called `appsettings.Production.json` inside the container as `/opt/magnifhir/appsettings.Production.json`.\n\nThe basic structure and available configuration options is shown here:\n\n```json\n{\n  \"FhirServers\": [\n    {\n      \"Name\": \"HAPI FHIR JPA Server\",\n      \"BaseUrl\": \"http://hapi-fhir-server.127.0.0.1.nip.io/fhir\"\n    },\n    {\n      \"Name\": \"Linux4Health FHIR Server (empty)\",\n      \"BaseUrl\": \"http://l4h-fhir-server.127.0.0.1.nip.io/fhir-server/api/v4\",\n      \"Auth\": {\n        \"Basic\": {\n          \"Username\": \"fhiruser\",\n          \"Password\": \"change-user-password\"\n        }\n      }\n    }\n  ]\n}\n```\n\n## Customizing Resource Browsers\n\n\u003e **Warning**\n\u003e This is an experimental feature. No guarantees that there won't be changes to the default\n\u003e resource tables or the way data is displayed.\n\nIt is possible to customize the tables displaying FHIR resources in the `Patient Record` view.\nThis allows changing the type of resources displayed and the path within each resource to show as a column in the table.\nSee the `ResourceBrowsers` key in [appsettings.json](./src/magniFHIR/appsettings.json) for the defaults.\n\nIt's easiest to define a custom `appsettings.Production.json` and mount it inside the container.\nSee the [configuration section](#configuration) above.\n\n## Development\n\n### Docker Compose\n\nStart all prerequisite services for development by running:\n\n```sh\ndocker compose -f hack/compose.yaml --profile=l4h --profile=azure up\n```\n\nThis will start three FHIR servers and their corresponding databases. The servers are running behind Traefik as a\nreverse proxy to provide nice URLs that are resolved to `localhost`:\n\n| Type                                                                                    | Base URL                                                     |\n| --------------------------------------------------------------------------------------- | ------------------------------------------------------------ |\n| [HAPI FHIR JPA Server Starter](https://github.com/hapifhir/hapi-fhir-jpaserver-starter) | \u003chttp://hapi-fhir-server.127.0.0.1.nip.io/fhir\u003e              |\n| [Linux4Health FHIR Server](https://github.com/LinuxForHealth/FHIR)                      | \u003chttp://l4h-fhir-server.127.0.0.1.nip.io/fhir-server/api/v4\u003e |\n| [FHIR Server for Azure](https://github.com/microsoft/fhir-server)                       | \u003chttp://azure-fhir-server.127.0.0.1.nip.io/\u003e                 |\n\nThe HAPI FHIR JPA Server is pre-filled with sample Synthea data. To only start the HAPI FHIR server, you can remove the `--profile=l4h --profile=azure` flags\nfrom the `docker compose` invocation.\n\nInstall the packages and launch the server in [Hot-Reload mode](https://docs.microsoft.com/en-us/aspnet/core/test/hot-reload?view=aspnetcore-6.0):\n\n```sh\ndotnet restore\ndotnet watch --project=src/magniFHIR\n```\n\n### Kubernetes (KinD)\n\nPrerequisites:\n\n- [KinD](https://kind.sigs.k8s.io/)\n- [kubectl](https://kubernetes.io/docs/tasks/tools/)\n- [Kustomize](https://kustomize.io/)\n- [Skaffold](https://skaffold.dev/)\n- [Helm](https://helm.sh/)\n\nCreate a cluster for testing using KinD:\n\n```sh\nkind create cluster --name=magnifhir-dev\n```\n\nBuild the container image and deploy to the cluster in development mode:\n\n```sh\nskaffold dev\n```\n\nThis includes a HAPI FHIR server deployed via Helm and the same set of sample data as used\nby the Docker Compose setup.\n\nSkaffold is used to re-build the container image whenever the source code changes, deploy the HAPI FHIR server as a test-dependency, and also build and deploy the job used to load sample data into the server. See [skaffold.yaml](./skaffold.yaml) and the contents of the `hack/k8s` directory for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchgl%2Fmagnifhir","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchgl%2Fmagnifhir","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchgl%2Fmagnifhir/lists"}