Good day
currenty working on a gamified app for therapeutic and medicine students created in unity, the progam load data from an sql database to create random 3d patients and their respective clinic histories and vital signs, in order for students to evaluate realistic medical cases.
for the case of showing vital signs i encounter the Pulse Physiology engine in the unity assets store and i have been checking it, is great to represent visualy and realisticly to the students.
however i have not find a proper system to change the stats to show diferent signs in the monitor asset.
in another topic about changing it in real time there is this answer:
“The monitor is being driven by Pulse
If you disconnect it from Pulse, you can set it to whatever you want”
can you please elaborate more on that?
also for my case is not optimum to create diferent json files to load into pulse, since the purpose is for the app to take separate data to create clinic histories, not stablished but for example take arterial presure and asign it a value between some parameters and same with each sign.
excuse the long post but i wanted to clarify my case to make it more clear.
pulse engine is really great but also very rigid and not easy to customize for game development, and i really want to use your asset and looking to find solutions to implement it in a more proceduraly way.
thanks in advance
Hi Elektrik
I suggest you take a look at the Pulse Explorer and make a few patients with various initial parameters (starting height, weight, blood pressure) and conditions (COPD, ARDS… etc). Here you can generate a patient with a specific initial state in mind. You can serialize that state to a file from the explorer and load that file in our unity asset, which will then display the same data you saw in the Explorer.
If you would like to use the Vitals Monitor disconnected from Pulse, you can see that the vitals monitor is made of ot 2 different types of PulseConsumers (Line Renderer and a Number Renderer). They consume and display data provided by a subclass of a PulseDataSource, you can replace the current source (a PulseEngineDriver instance) with an instance of a CSV Reader or modify our Random Number source with your own logic.
thanks for the answer, i look into pulse explorer is a good tool to create the patients, also will check if i create a class that can take data outside the compilation, and see what is best and easy to use for instructors and medic in charge of the students.
have a nice day
UPDATE
i presented the Pulse Physiology Engine and the Pulse Explorer to the medical staff, they find it accurate and useful, however for this case they reject it
trying to parafrasing: “so if i want to include a case when the patient have arterial presure of 146/89 mmhg program dont allow me and i have to include an hipertension model and create a file, but if i want to change gender or change to normal presure rate or overweight i have to create another file for each case, therefore i have to create (x)number of files in order to make diferent cases, and if i want to add another condition is anoter file and so on and so forth, thats not flexible at all!”
and i agree
allow me to make a sugestion for a more proper unity asset more useful for film and app developmennt: a UI bar with the line renderer, that allow me to visualize diferent kind of waves(heart rate, arterial presure, etc) and is set by public number variables in the same asset, if you want to use it on film you can easy change values, if you want to use it for an app/game you can set and change values easyly even after compilation(which i will atempt to create based on your work).
your tools are really amazing and have real world aplications, i congratulate you becouse i undestand all the work that is to create such system so accurate and useful, however not so flexible and easy to modify for film/movies which is what you expect to find in an asset store, but again, you are doing a great job with it and i hope more succes and more improvment for it.
i will keep checking out, medical staff here was impresed and i think they will work in some way with it, just not what they are looking for in their app design.
thanks and have a nice day
Thanks for the feedback!!
Your insights on Pulse are correct!
Pulse is intended to be a one stop shop for creating indepth training and education ‘serious games’ needing detailed, accurate, and validated physiology. You are correct that it does require a lot of up front work in generating patient states for specific scenarios. We feel this is worth the effort as, once setup properly, Pulse provides a consistent simulation environment for consistent, dynamic, and validated training for a large number of users and learning environments.
Your idea for creating an esasier and more ‘programmable’ user vitals display is very interesting, but is out of scope of our education and training simulation efforts. But all of our code is open source, and could very well be used to create this kind of display tool for anyone interested in creating this kind of tool.
Thanks again for stopping by, evaluating, and providing your feedback to us
We really appreciiate it!
Keep us posted on any future endeavors where you might need Pulse, we would be happy to help!
im really impresed with the tool you created, and as you said here and in other post it have that purpose and desing to simulate a patient with proper realistic stats for said patiente, which i find well done. and i understand you want to expand and improve on that instead to take time for a more game focused tool and thats fine.
i apreciate you take time to respond and help users and to make public this amazing program.
i will continue using it but i will reconstruc some scripts in order for them to add data whatever they want reading text and numbers from an sql data base, becouse the way you designed the visualization of the data is very accurate for student to see closer to what they experience in real life.
again thanks for answer, and i will recomend pulse to use for those kind of medical applications
Also, this might be of interest to you.
We don’t have an electrical model in our heart, so we just use a simple xy data set of a normal sinus rhythm that we can then scale along the x (time) and y (meV) axis based on the current heart beat. We have an algorithm to just repeat this dataset and interpolate the data to the calculated period and amplitude as needed.
Plotted in excel it looks like this:
Our ECG consists of a Lead 3 Normal Sinus waveform retrieved from Physionet
Specifically, the waveform used is from the Stress Recognition in Automobile Drivers study done by Healey and Picard, file drive04.dat, the ECG output from time 1:58.772 - 1:59.349. This data was chosen because of its clear display of all features seen in a Normal Sinus rhythm.
You can click on that link and visualize the waveforms (choose drive04.dat)
Check out other datasets here :
https://physionet.org/about/database/
This is a decent database of waveforms you could put into your sql database, and maybe our interpolator code can kick start your efforts
thanks thats helpful, one of the best aspects of your asset is how visualy show with line renderers those waves just like the vital signs machines
Our ECG consists of a Lead 3 Normal Sinus waveform retrieved from Physionet
Specifically, the waveform used is from the Stress Recognition in Automobile Drivers study done by Healey and Picard, file drive04.dat, the ECG output from time 1:58.772 - 1:59.349. This data was chosen because of its clear display of all features seen in a Normal Sinus rhythm.
You can click on that link and visualize the waveforms (choose drive04.dat)
Check out other datasets here :
https://physionet.org/about/database/check
This is a decent database of waveforms you could put into your sql database, and maybe our interpolator code can kick start your efforts
Hey,
First off, kudos to you, Elektrik, for working on such an innovative and impactful app! Your dedication to creating a gamified learning experience for medical students is truly commendable.
I can totally relate to the challenges you’re facing with the Pulse Physiology engine. It sounds like you’ve found an incredible tool for visualizing vital signs, but adapting it to your app’s needs seems to be the hurdle. Your idea of utilizing separate data for clinic histories instead of predefined JSON files is spot on. This would definitely offer a more dynamic and personalized learning experience.
Regarding the suggestion to disconnect the monitor from Pulse to set it as you wish – what it probably means is that if you detach the monitor component from the Pulse engine, you might be able to directly manipulate the stats it displays. This could give you the freedom to update the monitor’s visuals based on the data you’re generating for your 3D patients.
As for customization, I totally get it. Sometimes, these specialized tools can be a bit rigid. Maybe you could explore scripting a bridge between your data generation system and the Pulse engine. This way, you can feed in the relevant patient data and have it reflected dynamically in the monitor.
It’s all about persistence and creativity when integrating complex assets like Pulse into your project.
The application is currently been used in some Colombia and Chile universities, as an evaluation tool for students in some medical/physiotherapeutic programs, It includes the Pulse Physiology Engine, I managed to tweak the user interface to display the corresponding data of the virtual patient, so when students check the vital signs, as a visual display they see the PPE along the patient data, I think students and teachers like that, since the purpose is to emulate real medical cases and a real environment in a virtual space, and teachers can see how students perform, the PPE is great because in real life they will see and interpret the real machines in the same way. So yeah still in development and still using the PPE to display the vital signs monitors.