@burke and @craigappl, maybe this is a good topic for a design call spot this week?
Burke - to your point, this is the approach that we have started to take. Our Haiti team has built a small spring boot application that runs easily on the client, and is responsible for interacting with the fingerprint device. This exposes a REST API with endpoints: "/is-scanner-connected" and "/scan". The "is-scanner-connected" endpoint can be used to determine whether fingerprinting options should be enabled in the UI. The "scan" endpoint waits for a fingerprint to be sent from the device, and extracts this into a template.
I started throwing together a small module last week to expose a REST endpoint on the server side to do identification and matching.
We are using the Verifinger Extended SDK from Neurotechnology and a Futronic FS88 scanner in our setup, but my hope is that we could build the client-side REST API and server-side REST API to be independent of the underlying fingerprint libraries, and then for us to be able to plug in Neurotechnology, M2Sys, or other libraries into this as an implementation requires. From what I recall, Ampath also uses Neurotechnology via Muzima, is that right?
I haven't given much thought yet to how this would interact with a remote master fingerprint database, but I would expect this would be similar to how we would interact with any other element of an HIE, like an MPI for example.
Let me know if you all think that this would be useful to have in a design call spot week. Or I'm happy to have it at another mutually agreeable time in a public forum as well.