Comments (5)
@pmanko re. testing the streaming version, what I was thinking about was much simpler, i.e., start from a set of events on the server side (OpenMRS) and a "clean history" on the client side (our pipeline code). Clean history means that the streaming pipeline will read the events and fetch the corresponding records (e.g., by clearing the DB tables for the Atom Feed client or the event index file of Debezium). IOW, imagine we create a few events in OMRS and then freeze the DB to be used for all subsequent tests. Each test will start from scratch on the client side and read these events from OMRS server.
Also thanks for the pointer.
from fhir-data-pipes.
For testing the streaming modules, we have to trigger the creation and update of clinical data on the OpenMRS side.
I've previously done something similar in Postman using the OpenMRS Rest API, but I think Create/Update is now supported for many resources in the FHIR2 module, so we could use FHIR requests to trigger the streaming side.
Also, @bashir2 do you have an approach in mind to testing? This account might be useful: https://engineering.zalando.com/posts/2019/02/end-to-end-microservices.html#:~:text=End%20to%20end%20testing%20is,of%20them%20can%20get%20tricky.
from fhir-data-pipes.
Here is some information on how a simple version of this can work: There are three main pieces (1) the input, i.e., OpenMRS, (2) the pipeline to read FHIR resources from the input and do transformations, (3) the output. For all scenarios, we need simple scripts that bring up the input server, run the pipeline and validate the output. This should be run as part of Travis on each PR.
-
The input is OpenMRS for which we rely on what is done for issue #22, i.e., docker images for OpenMRS and MySQL with some test data pre-loaded. Note this is blocked by issue #38 right now.
-
There are three modes for the pipeline: batch, atom-feed based streaming, and debezium based streaming.
-
The output is either Parquet files or a target FHIR store.
We don't need to cover all combinations.
To test the streaming mode, we can create the events in the DB and save them in the docker image as the initial state. Each time the streaming pipeline runs in the test environment, it reads the events it has not processed (starting from a fake offset in the past) and create the output.
from fhir-data-pipes.
@jecihjoy I am changing the scope of this issue to be for the batch mode only. I will create a separate one for the streaming mode (seems @gitcliff has free cycles to work on that). Please close this once PR #56 is submitted (and thanks).
from fhir-data-pipes.
Fixed by #56
from fhir-data-pipes.
Related Issues (20)
- Setup Sonar for developers to identify bugs through static code analysis
- Sonar detected bugs on metrics package of pipeline-controller
- Fix Code smells in pipeline-controller
- Investigate Cloud Build flakiness because of dockerised pipeline runs HOT 4
- compose-controller-spark-sql-single.yaml fails to launch HOT 2
- Remove `hiveJdbcDriver` configuration property and unify driver loading
- New recurring Thrift server errors HOT 3
- Upgrade HAPI FHIR version
- Fix issues with `compose-controller-spark-sql-single.yaml` HOT 6
- Do not display the `View Raw Logs` button in case of no logs
- In the HAPI JDBC mode, when resources are created with PUT, resource Id's mismatch between the original FHIR resource and the corresponding resource in the parquet file. HOT 4
- Missing extension in the parquet file compared to source FHIR resource. HOT 1
- How to handle DataFormatException while parsing JSON encoded FHIR content HOT 1
- Make recursive depth of Bunsen a configuration parameter. HOT 1
- The `answer` fields are dropped in QuestionnaireResponse due to recursive structure.
- Unable to create Individual columns of nested array of objects in a dataframe HOT 9
- Investigate high memory utilisation for the pipeline controller and provide configurations to control them HOT 3
- Cannot override fhirServerUserName or fhirServerPassword as it keeps defaulting HOT 6
- Help needed running a fhri pipeline controller HOT 6
- Gracefully handle resource types with no instances in the FHIR server. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fhir-data-pipes.