Skip to content

Commit f9c350e

Browse files
committed
📝docs: initial Repofyr rebranding (documentation only)
1 parent 0dcd59d commit f9c350e

File tree

1 file changed

+49
-46
lines changed

1 file changed

+49
-46
lines changed

README.md

Lines changed: 49 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,50 @@
1-
# onFHIR FHIR Repository
1+
# Repofyr (formerly onFHIR)
22

3-
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.onfhir/onfhir-core/badge.svg)](https://search.maven.org/search?q=io.onfhir)
4-
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
3+
[![Maven Central](https://img.shields.io/maven-central/v/io.onfhir/onfhir-core_2.13.svg)](https://search.maven.org/search?q=g:io.onfhir)
4+
[![Research by SRDC](https://img.shields.io/badge/Research-SRDC-red)](https://srdc.com.tr)
5+
[![Commercial Support](https://img.shields.io/badge/Commercial%20Support-Pontegra-blue)](https://pontegra.com)
56

6-
[onFHIR](http://onfhir.io) is a FHIR compliant secure health data repository that you can use as a central data service for your FHIR compliant healthcare applications.
7-
You can use it as a standalone server, or you can extend it with your further custom FHIR Operations to build your own application layer in addition to having standard FHIR repository capabilities.
8-
onFHIR.io is using FHIR Infrastructure Resource definitions (CapabilityStatement, StructureDefinition, SearchParameter, etc.) to tailor
9-
the FHIR server to your specific FHIR capabilities you required; resource profiles, search parameters, FHIR interactions you wanted to support.
7+
> [!IMPORTANT]
8+
> **Rebranding Announcement**
9+
>
10+
> **onFHIR** has been officially rebranded as **Repofyr**. This change reflects our transition from a research-focused repository at [**SRDC**](https://srdc.com.tr) to a commercially supported product line by [**Pontegra**](https://pontegra.com).
11+
>
12+
> **Note on Technical Migration:** While the project identity has changed, the internal codebase - including package names (`io.onfhir`), configuration keys (e.g., `onfhir.conf`), and Maven coordinates - still uses the legacy `onfhir` naming. A full technical migration for these components is planned for future major releases.
1013
11-
It is implemented with Scala, based on Akka and MongoDB.
14+
## Overview
15+
**Repofyr** is a FHIR-compliant, secure health data repository designed as a central data service for healthcare applications. It is implemented in **Scala**, built on the **Akka** framework, and utilizes **MongoDB** for high-performance persistence.
1216

13-
Stable versions are released in [Maven Central](https://search.maven.org/search?q=io.onfhir) and snapshot versions in [Sonatype Snapshot Repository](https://oss.sonatype.org/content/repositories/snapshots/io/onfhir/).
17+
You can use Repofyr as a standalone server or extend it with custom FHIR Operations to build complex application layers. It uses FHIR Infrastructure Resource definitions (CapabilityStatement, StructureDefinition, SearchParameter, etc.) to tailor the server to your specific profile and search requirements.
1418

15-
## TEMPORARY WARNING
16-
**On March 6, 2023, we forcefully rearranged the existing onfhir_2.13 branch as master. The old master has been branched has onfhir_2.12.**
19+
* **Website:** [repofyr.io](https://repofyr.io)
20+
* **Open Source Core:** Maintained by [SRDC](https://srdc.com.tr)
1721

1822
## Basic Configuration
19-
You can copy and update **onfhir-core/src/main/resources/application.conf** file, which is the entrypoint configuration to configure onFHIR repository based on your needs.
23+
You can copy and update the **onfhir-core/src/main/resources/application.conf** file, which is the main entry-point configuration for tailoring the Repofyr repository to your needs.
2024

2125
For logger configurations, check **onfhir-core/src/main/resources/logback.xml**
2226

23-
For configuration of the FHIR API to be provided, you need to provide the followings;
27+
To configure the FHIR API to be provided, you need to supply the following:
2428
* A file providing your **Conformance statement** (FHIR Capability Statement - See http://hl7.org/fhir/capabilitystatement.html) that describes the capabilities of the FHIR server you want to provide
2529
* A folder including all your **Profile definitions** (FHIR StructureDefinition - See http://hl7.org/fhir/structuredefinition.html) including resource, data type and extension definitions that will be used in the FHIR server you want to provide
2630
* A folder including all your **Compartment definitions** (FHIR CompartmentDefinition - See http://hl7.org/fhir/compartmentdefinition.html) for all compartments that you want to support for search
2731
* A folder including all your **Search parameter definitions** (FHIR SearchParameter - See http://hl7.org/fhir/searchparameter.html) for all extra search parameters (apart from what is available from the base FHIR standard) that you define and support for your resources
2832
* A folder including all your **Value sets** (FHIR ValueSet - See http://hl7.org/fhir/valueset.html) that you define and refer in your resource profiles
2933
* A folder including all your **Operation definitions** (FHIR OperationDefinition - http://hl7.org/fhir/operationdefinition.html) that you define and refer from capability statement in operations part (For your OperationDefinitions write the full class path of your implementation of operation in OperationDefinition.name)
3034

31-
You can also provide the zip file for FHIR base definitions (Validation package - 'validation-min.xml.zip') that you want to support specifically.
32-
onFHIR supports all stable and build versions of HL7 FHIR. In this project, we provide modules for the last 3 main versions that are configured automatically with standard definitions and special configurators:
35+
You can also provide the ZIP file for FHIR base definitions (validation package: `validation-min.xml.zip`) that you want to support specifically.
36+
Repofyr supports all stable and build versions of HL7 FHIR. In this project, we provide modules for the last three main versions, configured automatically with standard definitions and dedicated configurators:
3337
* R5 >> onfhir-server-r5
3438
* R4 >> onfhir-server-r4
3539
* STU3 >> onfhir-server-stu3
3640

3741
## Prerequisites
38-
onFHIR requires a MongoDB database up and running. If you do not use the given docker containers, the MongoDB configuration parameters (host, port, dbname etc.)
39-
should be passed to onFHIR through either application.conf file or as runtime parameters. The parameter names can be seen in the provided application.conf file.
42+
Repofyr requires a MongoDB database up and running. If you do not use the provided Docker containers, the MongoDB configuration parameters (host, port, dbname, etc.)
43+
should be passed to Repofyr through either the `application.conf` file or runtime parameters. Parameter names can be seen in the provided `application.conf` file.
4044

4145
## Build & Run
4246

43-
You need to run the below command to build fhir-repository. This will compile
47+
Run the command below to build Repofyr. This will compile
4448
your code, execute unit tests and create a single standalone jar with all the dependencies:
4549
```
4650
$ mvn package
@@ -52,8 +56,8 @@ to the above command to skip the test execution, but it is **not recommended**:
5256
$ mvn package -DskipTests=true
5357
```
5458

55-
Executable standalone jars **target/onfhir-server-standalone.jar** will be created under each onfhir-server for
56-
different FHIR version. Executing the following command will run the onRHI server for that version with nearly whole FHIR
59+
Executable standalone JARs (**target/onfhir-server-standalone.jar**) will be created under each `onfhir-server-*` module for
60+
different FHIR versions. Executing the following command will run the Repofyr server for that version with nearly complete FHIR
5761
capabilities.
5862
```
5963
$ java -jar target/onfhir-server-standalone.jar
@@ -67,37 +71,37 @@ $ java -Dserver.port=9999 -Dserver.host=172.17.0.1 -jar target/onfhir-server-sta
6771
```
6872

6973
### Extensibility
70-
You can develop your own FHIR compliant backend application based on onFHIR. In order to do this you can import the
71-
corresponding server module as a dependency to your project and write a scala App (Boot) that initiates onFHIR with a
72-
custom configuration. **Onfhir.scala** is the main entrypoint to the project. The following is the default server Boot
74+
You can develop your own FHIR-compliant backend application based on Repofyr. To do this, you can import the
75+
corresponding server module as a dependency in your project and write a Scala App (Boot) that initializes Repofyr with a
76+
custom configuration. **Onfhir.scala** is the main entry-point of the project. The following is the default server Boot
7377
configuration for onfhir-server-r4. It initiates a FHIR R4 server with the given configurations.
7478
```
7579
object Boot extends App {
76-
//Initialize onfhir for R4
80+
// Initialize Onfhir for R4
7781
var onfhir = Onfhir.apply(new FhirR4Configurator())
78-
//Start it
82+
// Start it
7983
onfhir.start
8084
}
8185
```
82-
You can extend the onFHIR by implementing certain custom mechanisms;
83-
* Custom Authorizer (Implementing **io.onfhir.authz.IAAuthorizer** interface): In default(if you configure), onFHIR
84-
supports the authorization mechanism defined in [SmartOnFhir](https://docs.smarthealthit.org/authorization/) initiative
85-
which is based on OAuth2.0 Bearer Token based authorization. If you need a custom authorization mechanism with different set of
86-
scopes (permissions), you can implement a authorizer module and register it to onFHIR.
87-
* Custom Token Resolver (Implementing **io.onfhir.authz.ITokenResolver** interface): onFHIR supports two default token
88-
resolution methods; Signed JWT tokens and OAuth2.0 Token Introspection. You can use them by configurations or implement a new module.
89-
* Custom Audit Handler (Implementing **io.onfhir.audit.ICustomAuditHandler**): In default, you can configure onFHIR
90-
to store FHIR AuditEvent records to its own local repository, or a remote FHIR server running as a seperate audit repository.
91-
If you want to create audit events/logs in different format and send them to a custom audit repository (ElasticSearch+Kibana, etc),
86+
You can extend Repofyr by implementing certain custom mechanisms:
87+
* Custom Authorizer (implementing **io.onfhir.authz.IAAuthorizer**): By default (if configured), Repofyr
88+
supports the authorization mechanism defined by the [SMART on FHIR](https://docs.smarthealthit.org/authorization/) initiative,
89+
which is based on OAuth 2.0 Bearer Token authorization. If you need a custom authorization mechanism with a different set of
90+
scopes (permissions), you can implement an authorizer module and register it with Repofyr.
91+
* Custom Token Resolver (implementing **io.onfhir.authz.ITokenResolver**): Repofyr supports two default token
92+
resolution methods: signed JWT tokens and OAuth 2.0 token introspection. You can use them via configuration or implement a new module.
93+
* Custom Audit Handler (implementing **io.onfhir.audit.ICustomAuditHandler**): By default, you can configure Repofyr
94+
to store FHIR AuditEvent records in its own local repository, or in a remote FHIR server running as a separate audit repository.
95+
If you want to create audit events/logs in a different format and send them to a custom audit repository (Elasticsearch + Kibana, etc.),
9296
you can extend this interface with your module and register it.
93-
* Further FHIR Operations: You can implement custom FHIR Operations by extending **io.onfhir.api.service.FHIROperationHandlerService** and
97+
* Further FHIR Operations: You can implement custom FHIR operations by extending **io.onfhir.api.service.FHIROperationHandlerService** and
9498
preparing an OperationDefinition file describing the input and output parameters of the operation. You then need to provide a Map[String, String]
95-
of the (operation URL -> the class name of the module) that you implemented by extending FHIROperationHandlerService.
96-
* External Akka Routes: You can also implement non-FHIR REST services for your server and register them to onFHIR.
99+
of the (operation URL -> the class name of the module) that you implemented by extending FHIROperationHandlerService.
100+
* External Akka Routes: You can also implement non-FHIR REST services for your server and register them with Repofyr.
97101

98102
```
99103
object Boot extends App {
100-
//Initialize onfhir for R4
104+
// Initialize Onfhir for R4
101105
var onfhir =
102106
Onfhir.apply(
103107
fhirConfigurator = new FhirR4Configurator(),
@@ -106,31 +110,30 @@ object Boot extends App {
106110
customAuditHandler = new MyAuditHandler(),
107111
externalRoutes = ...my non-fhir routes
108112
)
109-
//Start it
113+
// Start it
110114
onfhir.start
111115
}
112116
```
113117
114118
### Docker
115-
We also provide a simple docker setup for onFHIR under 'docker' folder. It provides a docker-compose file with
116-
two containers; one for MongoDB database and one for onFHIR application. You can run it with our sample onFHIR setup given with 'sample-setup' directory.
117-
You can copy the 'onfhir-server-standalone.jar' file to this sample-setup directory and run the sample setup as it is with the following command;
119+
We also provide a simple Docker setup for Repofyr under the `docker` folder. It includes a `docker-compose` file with
120+
two containers: one for MongoDB and one for the Repofyr application. You can run it with our sample Repofyr setup in the `sample-setup` directory.
121+
You can copy the `onfhir-server-standalone.jar` file to this `sample-setup` directory and run the sample setup as is with the following command:
118122

119123
```
120124
$ cd docker
121125
$ cp ../onfhir-server-r4/target/onfhir-server-standalone.jar ./sample-setup/.
122126
$ docker-compose -f docker-compose.yml -p onfhir up -d
123127
```
124128

125-
Then you will be able to send requests to this running instance over your docker machine. The following will return the CapabilityStatement
129+
Then you will be able to send requests to this running instance from your Docker host. The following command returns the CapabilityStatement:
126130
```
127131
$ curl http://127.0.0.1:8080/fhir/metadata
128132
```
129133

130134
## Tests
131135

132-
fhir-repository uses **specs2** for unit testing. To execute tests for each build with
133-
the following command:
136+
Repofyr uses **specs2** for unit testing. To execute tests for each build, run the following command:
134137
```
135138
$ mvn test
136139
```

0 commit comments

Comments
 (0)