Project - Hybrid App with Image Processing

@RachelEllison
I have added the QR/Barcode scanner to GitHub - openemr/app-flutter-openemr: app-flutter-openemr. Currently, it scans and copies the scanned data to the clipboard.
Can you please tell me how the scanned code is saved or used in the openemr system so I can connect them.
P.S. Let me know if you plan to build the app and face any difficulty

Hi Amit,

Great job so far. So there’s a couple of places I can think of where you’d need the barcode/QR code scanner.

Let’s start with vaccines:

Vaccines generally use 1D barcodes to encode vaccine ID, CVX.
https://www2a.cdc.gov/vaccines/IIS/IISStandards/vaccines.asp?rpt=cvx
But are trialing 2D (QR)
https://www.cdc.gov/vaccines/programs/iis/2d-vaccine-barcodes/index.html
But there’s another type of vaccine ID system VIS.
https://www.cdc.gov/vaccines/programs/iis/code-sets/vis-barcode-lookup-table.html

Basically, see whatever information you can pull out from the barcode. If it’s VIS you’ll want to look up the VIS/CVX mapping.
https://www2.cdc.gov/vaccines/iis/iisstandards/vaccines.asp?rpt=cvxvis

The information in the barcode and on the label + other information e.g the clinician name, date, etc. is logged into a SQLtable “immunizations”, and “immunization_observations”.


To get info on what options to put for route, and administration site look at Administration -> Forms -> Lists and look up drug routes. For administration site, look up Immunization administered site list.

You can look this up with SQL query: SELECT * FROM list_options WHERE list_id = “drug_route”

and

SELECT * FROM list_options WHERE list_id = “immunization_administered_site”

data in returned column list_id will be a reference to that option throughout the codebase. The title field should get translated from language to language.

2 Likes

Next Target:
Checkpoint 1. Implement Patient Finder
Checkpoint 2. Edit Immunization

Sounds good?
@brady.miller @RachelEllison @mdsupport

2 Likes

@brady.miller @sjpadgett @stephenwaite @RachelEllison
Update:
New Patient List Implementation


This patient list can be easily moved to the home screen same as clock widget in smartphone.
P.S. Icon is based on the gender
Thanks
-Amit

1 Like

Make sure to build some intelligence in the list. Many practices could have 1000s or 10000+ records. On small form factors any list beyond 15-20 hits degrades user experience.

I would also recommend that you go to pharmacy and take pictures of few packages - medications and injections. Be sure simulate real world for image quality, background and effort involved vs manual data entry. Then review how well formatted the recognizable data is. That will guide your next steps.

@mdsupport The List constructor creates items as they’re scrolled onto the screen and automatically destroy the previous ones so no need to worry about performance degrade or high ram usage.
Currently my city is under total lockdown till April 14 thus we aren’t allowed to leave home till their is a emergency. I will grab some once the lockdown gets over.
Thanks
-Amit

hey @im-Amitto I am super intrested in this project as well. I know flutter(dart) little bit and want to learn more. If u need any support you can DM me or just call me on github.

1 Like

I know about the mechanism. Unfiltered lists work when user and/or app wants to view full catalog. In this case, imagine scrolling through 900 list items to reach e.g. ‘Yash’ as Yash is waiting for your response. We have tried quantum jumps and alphabet tabs. It tends to irritate users when they know the attributes and interface forces them thru n-number of meaningless swipes. The need does not show up with demo databases.

Ideal approach is start with filter box at top and initial list of items selected in the past ending with a show all option. Then user can use filter or begin scrolling.

1 Like

hi @im-Amitto , Very neat stuff! Looking forward to getting flutter and emulator up and running locally (planning to do this in near future), so can run and test your app.

Sure, you can start with building the app. You may encounter a few minor problems as it’s currently a beta version, listing them out will be quite helpful.
Thanks
-Amit

1 Like

I’m gonna debug the code once done with qr code scanner on immunization tab then we can have a stable build.

1 Like

Sorry, I mistook it for something else previously. I was already planning to add a filter.
Also after reading your post, I got another idea that can ease the operation for user.

  • As you suggested we can have the recently selected patients in the initial list
  • We can also add a pin to top option.

So the final list may look something like this->
Row 1-> Filter
Row 2 -> Pinned patients (Hidden when using the filter)
Row 2 -> Recently selected patients(Hidden when using the filter)
Row 4 -> Complete list (Visible if their are no entries in pinned and recently selected section else hidden unless user click on show all option or uses filter)

Thanks
-Amit

2 Likes

Hi @brady.miller ,
The firm I was supposed to join after GSoC withdrew the offer letter yesterday so I am planning to focus on the interviews next week. I will be back on or before Apr 18th.
Also, I am done with the immunization page and will try to push a stable version for testing before going inactive.
Best
-Amit

1 Like

Hey @im-Amitto before you go if have something on which i can workon (something easy) then you can assign it to me. I am ready to give some time on this project. Although you can review it later on.

Thanks
Yash Bothra

1 Like

@yashrajbothra I am really sorry, I just saw your reply. I will review your PR on GitHub in an hour and let’s chat on slack regarding what we can do next.

It took me longer than I expected but I am back with my 100%.

1 Like

Also @brady.miller do we have any API to refresh or validate token.

Hi @im-Amitto is this what you were looking for?

I know about this readme but i did not found any token validation endpont so i think @brady.miller can tell if we need it or their is a existing workaround.

Welcome come back @im-Amitto :tada::tada:

1 Like

hi @im-Amitto ,

At this point, seems like we are stuck storing credentials in apps to collect tokens when needed. Time to begin thinking about expanding the current bare bones API auth/token process.

@sjpadgett , @dixonwhitmire, Any thoughts about how to support the following simple use case:

  1. Android app that allows a OpenEMR user (not patient) to connect to OpenEMR API to do a couple things.
    Is there a standard way to support this (ie. longer token time or other mechanism that avoids needing to store the openemr user credentials in the android app)?