Skip to content

Restore FHIR validation server #15

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
costateixeira opened this issue Jan 10, 2025 · 8 comments
Open

Restore FHIR validation server #15

costateixeira opened this issue Jan 10, 2025 · 8 comments

Comments

@costateixeira
Copy link
Collaborator

the FHIR validator server was removed - not sure why, if it was working for the tests.
Perhaps related to the json schema (which is not sufficient for FHIR validation)?

The validator should be restored

@bjungs
Copy link
Collaborator

bjungs commented Jan 15, 2025

The local FHIR server is still included in the base compose, for testing/dev purposes. However, the version for distribution should be configured to point to a "target" FHIR server to be used as SUT. Since the SUT will perform validations anyway, there is no point in maintaining a separate FHIR server that may or may not be compatible with the target.

@costateixeira
Copy link
Collaborator Author

costateixeira commented Jan 15, 2025 via email

@bjungs
Copy link
Collaborator

bjungs commented Jan 15, 2025

Validation can be done via the test cases. However, if I remember well, you said that validation was not necessary since the FHIR server itself would perform the validation. And you were right. There is no point of extra validation if the target FHIR server validates the request already. So instead of validating against a harcoded version of a specific implementation of the FHIR spec, we let the SUT itself handle the request and validate the response. This not only results in a more accurate interoperability testing (since we can validate the response directly from the SUT, and not some test-dummy), but also better maintainability on our side as it makes our code completely de-coupled from the SUT implementation.

Nevertheless, the compose files are just that. Docker Compose files.
For our current use-case we did not need the FHIR server so we removed it from the distribution file. However, anyone should feel free to create their own setups with the images we build in this repo. The distribution compose is just what we decided to use for the fhir-thon.

@costateixeira
Copy link
Collaborator Author

costateixeira commented Jan 15, 2025 via email

@bjungs
Copy link
Collaborator

bjungs commented Jan 15, 2025

Since the introduction of the proxy the architecture has changed, yes.
The goal is to de-couple the testing system (ITB) from the SUTs (FHIR Server).
The user configures the SUT and connects their application (FHIR Client) to the proxy.

If you want to test against a local FHIR Server, you can add the local FHIR server to the setup and just configure that as the target.

In the near future we'll want to be able to support multiple users at the same time from the cloud. With the old architecture that was simply not possible, since we would need a new FHIR server per user.

Did anyone decide that the FHIR server was not needed?

I decided it was not needed anymore given the direction the project was going (proxy + multi-user cloud support) and the feedback given by you some time ago regarding the way a FHIR Server automatically validates requests. Which makes total sense.
Now, why would be want to run the same request in a local server if we can just check the response from the target server? The only reason it was useful was to use it as a test-dummy for the SUT, and it can still be used like that, if configured as such.

@costateixeira
Copy link
Collaborator Author

costateixeira commented Jan 15, 2025 via email

@bjungs
Copy link
Collaborator

bjungs commented Jan 15, 2025

My expectation is still that the FHIR validator should be in the
testing platform.

The FHIR validator can easily be included but right now the test cases don't make use of it.
My point is just that it should not be part of the architecture itself but as an optional add-on, just like you can run any other service you like and be able to call them as services from within the test cases through their REST APIs.

@costateixeira
Copy link
Collaborator Author

costateixeira commented Jan 15, 2025 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants