I’m using the Java JNI bridge for Pulse and I would like to have some clarification about Data Requests in general.
It seems to me that there are 2 ways to create a Pulse Engine instance:
- By providing a Patient, Conditions and Data Requests
- By providing a previously serialized instance and the Data Requests
The part that I don’t fully understand is why do we have to pass the Data Requests when creating an instance from a previously serialized engine. The serialized data already has the Data Requests in it. My thought was that we could use a different set of Data Requests when deserializing an engine, but that doesn’t appear to be the case. When deserializing an engine, Pulse seems to expect the same Data Requests (or maybe a subset of them) that were used in the serialized version.
In my scenario, we are creating a Pulse Engine instance for a patient, serializing it and then creating multiple Pule Engine instances based on it. This way we don’t have to wait for Pulse to be stabilized each time we want to run a simulation. The problem here is that because a single serialized engine instance can be used in multiple simulations (with different data requirements), and because the Data Requests cannot be changed when deserializing an engine, I’m kind of forced to create the initial version of the engine with ALL the supported Data Requests enabled. Is there any penalty in doing this?
So, summarizing, my questions are:
1.- Why do we have to provide a list of Data Requests when deserializing a Pulse Engine instance if it seems that you have to use the same Data Requests that were used when the Pulse Engine was serialized in the first place?
2.- When deserializing a Pulse Engine, can I provide a subset of the Data Requests used by the Pulse Engine that was serialized?
3.- Does the number of Data Requests affects the performance of the engine in any way? It is the same to have an engine with 1 Data Requests or with 50?