-
-
Notifications
You must be signed in to change notification settings - Fork 218
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
Barcode scanning using device camera #6669
Comments
@isaacholeman please add any additional context specific to the project (or correct anything I misunderstood) |
Looks great @MaxDiz. I added that it's also a requirement to be able to scan barcodes to get patient ID. Thanks! |
Also investigate supporting QR codes. |
Relevant CHT Forum conversation |
Update:
1 - Registration of a new patient and getting the patient's ID: 2- Searching for a patient in contact tab by scanning the barcode: CC: |
@michaelkohn @lorerod @n-orlowski FYI Nb. This will be delivered in 4 different PRs:
This work uses the native Barcode Detector API from the browser by using a hidden input type It works the following way:
More considerations:
Telemetry:
Snackbar messages:
Videos
|
Read the previous comments for more details. Knowns
Troubleshooting
How it works technically As mentioned in the previous comment, this approach uses a hidden input type, When the browser uses this API, it utilises the OS tooling to be able to interpret barcodes from image elements. There are many types of barcode, and the support for these type of barcodes are built into the OS (MacOS, ChromeOS, and Android OS). The browsers are using Android's ML Kit (previously known as GMS Vision) to read and interpret barcodes, this is usually available in the phone with the |
@latin-panda Thanks for the update! Did you have a look at this barcode-detector library? It looks well supported (12k weekly downloads, recent updates, etc) and works as a polyfill for the experimental API you're using so it may be easy to drop in. I haven't tested it or checked bundle size, etc but it might be worth a look.
We know that this doesn't usually happen (despite our recommendations). In fact, last time I was in Kenya, safaricom txted me and recommended disabling app auto-updates to save data. Is there an easy way to figure out what is available in the MLKit that's available in Google Play services that shipped with Android 5 (minimum supported android version)? |
Thanks @garethbowen the barcode-detector polyfill looks nice, and I like that it follows the same specification as the native API. These are other libraries I looked at before:
|
@garethbowen The release notes are published online since these are toolings that Android developers need: I haven't analyzed the release notes in detail, but a quick search on those pages shows mentions of the Barcode feature in Mobile Vision package of |
Removing from milestone as it wasn't completed on that iteration |
Is your feature request related to a problem? Please describe.
As a nurse/CHW, I do home visits to follow-up with patients who are in treatment for disease management, but did not show for clinic appointments. Patients are often taking multiple medications (or using other health products), which are hard to keep track of. Having an accurate list of these products is critical to creating and managing up-to-date health record for patients. The process for collecting this information is currently manual, making it difficult to capture it in a timely and accurate way.
Describe the solution you'd like
As a nurse, I would like the ability to scan barcodes for patient IDs or barcodes on medications (or other health products) to quickly and accurately acquire patient health information.
Describe alternatives you've considered
Additional context
bar code scanner is supported by XLSForm and ODK Collect
Worth noting that ZXing is in maintenance mode, and ODK Collect had to build in the scanner as opposed to an intent since 1.7. There is more investigation needed to know if this is a relatively simple task (handle the XLSForm type and make/handle a new intent) or a big lift.
The text was updated successfully, but these errors were encountered: