Code Monkey home page Code Monkey logo

tscharts-station's Introduction

tscharts-station

Android UI used for patient checkin and checkout, and access to digital medical records at clinicstations of a Thousand Smiles clinic.

Overview

See https://github.com/slogan621/tscharts for the backend to which this application interfaces.

https://www.youtube.com/playlist?list=PLPoa7kXBiFDVmroxIjCOmvcHhGIjsZUCJ is a YouTube channel devoted to the use of the Thousand Smiles EMR.

License

(C) Copyright Syd Logan 2017
(C) Copyright Thousand Smiles Foundation 2017

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

tscharts-station's People

Contributors

slogan621 avatar

Watchers

 avatar James Cloos avatar  avatar

tscharts-station's Issues

Initial load of next patient doesn't always happen

If station app is launched before a patient is placed in a queue, it will not show that patient's info once placed in the queue. The patient info dialog needs to check periodically to see if a patient has been put into its queue and display once the queue is not empty.

Add headshot support

If present in the database, display headshots, not headshot drawings or shadow images.

Need ability to send patient away

Some patients are sent away without being seen but we need to account for that in some way because the number of patients registered won’t match the number seen, and we currently can’t determine this.

Implement immersive mode

Testing with potential users indicated that they can easily get in trouble by escaping the app, to fix this:

  1. immersive mode should be used
  2. instead of Android back button, implement one inside the app (similar to the next button)

Handle failure to read medical history better

On failure, create a new med history object, populate yo, and record that the med history is new. If dirty, make sure to create, not update, then clear new flag so that subsequent changes reflected in an update.

Redo CheckoutPatient.checkoutPatient()

Find out why sometimes updating routing slip fails.
In face of failure, consider retries.
If failure occurs at any step, continue with other steps instead of bailing out of function.

Routing slip not updated if station is active when app started

Step to reproduce:

Sign in.
Select station.
Check in patient.
Exit app.
Sign in again.
Select same station.
Checkout patient. Observe error toast indicating routing slip entry not updated.

Root cause - routing slip entry for active patient is determined by inspecting queue. But this queue entry is deleted when patient is signed in. We lose that data if app is exited.

Fix would be to iterate all routing slip entries in search of correct one if no queue entries match.

Provide a way for a dentist to send patient to X-Ray

Add UI that is like check out button (for Dental stations only) but adds X-Ray to routing slip and records this in the database so that when patient is checked out of X-Ray, the patient is put back into the same dental station queue, at the head of the line.

Support clinicstation "finished" state

clinicstation API in tscharts supports this state. Scheduler in tscharts would need to be updated possibly to support this (if state is finished, not patients are scheduled into that clinicstation's queue). Monitor app would also need to be updated to support displaying a "finished" status. In addition to UI allowing the clinicstation to finish, need UI to reopen it should the finished state be entered by mistake.

Better handle when there are no patients to checkin

The display, when there are not patients to checkin, has usability problems.

Checkin button is enabled
Screen is blank. We need to show something to indicate that there are currently no patients to select.

App crashes when rotated to vertical.

App crashes when rotated to vertical. Update thread is executing when dependent activity has been destroyed.

E/AndroidRuntime: FATAL EXCEPTION: main
Process: org.thousandsmiles.thousandsmilesstation, PID: 19998
java.lang.IllegalStateException: Activity has been destroyed
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1864)
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:650)
at android.support.v4.app.BackStackRecord.commitAllowingStateLoss(BackStackRecord.java:614)
at org.thousandsmiles.thousandsmilesstation.StationActivity.updatePatientDetail(StationActivity.java:355)
at org.thousandsmiles.thousandsmilesstation.StationActivity.access$300(StationActivity.java:48)
at org.thousandsmiles.thousandsmilesstation.StationActivity$UpdatePatientLists$2.run(StationActivity.java:101)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5491)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:984)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
I/AndroidRuntime: To Report FATAL to activityManagerService
I/AndroidRuntime: Finished reporting FATAL to activityManagerService
I/Process: Sending signal. PID: 19998 SIG: 9
Disconnected from the target VM, address: 'localhost:8615', transport: 'socket'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.