Skip to content

26.3 fb ios app integration - #1002

Merged
aschmidt34 merged 14 commits into
release26.3-SNAPSHOTfrom
26.3_fb_ios_app_integration
Aug 5, 2026
Merged

26.3 fb ios app integration#1002
aschmidt34 merged 14 commits into
release26.3-SNAPSHOTfrom
26.3_fb_ios_app_integration

Conversation

@aschmidt34

Copy link
Copy Markdown
Collaborator

PR DETAILS:

  • anesthesiaRecoveriesFullHistory.sql: Defines sql for table that holds data for full history.
  • anesthesiaRecovery.query.xml: Defines row details for anesthesiaRecovery official table.
  • anesthesiaRecovery/.qview.xml: Defines anesthesiaRecovery official table default view.
  • anesthesiaRecovery/Full History.qview.xml: Defines anesthesiaRecovery full history table default view.
  • anesthesiaRecovery/.qview.xml: Defines anesthesiaRecovery official table summary view.
  • anesthesiaRecovery/.qview.xml: Defines anesthesiaRecovery official table full history view.
  • anesthesiaRecovery/Full History.qview.xml: Adds anesthesia recovery as an option for full history.
  • session_log.query.xml: Adds a customizer for the session log query.
  • WNPRC_EHRController.java: Created trigger to validate & upload data to anesthesiaRecovery dataset.
  • WNPRC_EHRModule: Registers email notification.
  • AnesthesiaRecoveryReviewNotification.java: Creates email notification to let users know if there are unfinished recoveries or rows marked as 'review required'.
  • NotificationToolkit.java: Updated functionality to allow multiple params for field clauses.
  • WNPRC_EHRCustomizer.java: Added customizers for anesthesiaRecovery and sessionLog tables.
  • .gitignore: Added .DS_Store so iOS only uploads necessary files and no caches.
  • README: Empty, but created for future use.
  • build.gradle: Needed to create new external iOS module.
  • module.properties: Needed to create new external iOS module.
  • wnprc_ios_app-0.000-25.000.sql: Upgrade script that inserts iOS app tables into app on first load.
  • wnprc_ios_app.xml: Defines default .xml view for all iOS app tables.
  • begin.html: Created a default landing page for new iOS module.
  • wnprc_ios_appContainerListener.java: Needed to create new external iOS module.
  • wnprc_ios_appController.java: Creates all validation functions for new iOS module tables. They are muted for now and can be unmuted when needed.
  • wnprc_ios_appManager.java: Needed to create new external iOS module.
  • wnprc_ios_appModule.java: Needed to create new external iOS module.
  • wnprc_ios_appSchema.java: Needed to create new external iOS module.

Rationale

Related Pull Requests

Changes

…ich verifies the server time is within 10 minutes of the iPad time.

-Also updated the validation to correctly verify there are no animals with active recoveries before starting a new one.
…aset.

AnesthesiaRecoveryReviewNotification.java: Created email notification.
NotificationToolkit.java: Updated create query URL function so it works for multiple clauses.
WNPRC_EHRModule.java: Added new notification here.
WNPRC_EHRController.java: Updated the trigger validation function so it now handles the insert as well as validation.
…ation to show unfinished recoveries.

- WNPRC_EHRCustomizer.java: Added customizer funciton to add start time column.
- anesthesiaRecovery/... Created 3 new qviews for the anesthesia recovery table.
…ated to show red lines under required fields.

- WNPRC_EHR/resources/queries/wnprc_ios_app/session_log.query.xml: Created new xml to dfine this table.
- WNPRC_EHR/src/org/labkey/wnprc_ehr/WNPRC_EHRController.java: Completely revamped validation trigger function
- WNPRC_EHR/src/org/labkey/wnprc_ehr/table/WNPRC_EHRCustomizer.java: Updated anesthesiaRecovery customizer and added session log customizer.
…ory' query.

anesthesiaRecovery.query.xml: Added calculatd columns.
anesthesiaRecovery/.qview.xml: Added calculatd columns.
anesthesiaRecovery/Summary.qview.xml: Added total recovery time.
wnprcFullHistory.sql: Added data to show in 'full history' section.
wnprcFullHistory/.qview.xml: Added anesthesiaRecovery to options list.
WNPRC_EHRController.java: Revamped API insert call to insert rows into anesthesia recovery with all necessary validation.
AnesthesiaRecoveryReviewNotification.java: Updated email as needed.
WNPRC_EHRCustomizer.java: Added calculations to retrieve recoveryReason, groupId, cage, location, and room from first 'imported' observation, then apply to all other observations so this doesn't need to be manually inserted on every observation after 'imported'.
These are required for wnprc_ios_module to exist.
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

WARNING: This PR appears to have the default title generated by GitHub. Please use something more descriptive.

@LeviCameron1

Copy link
Copy Markdown
Collaborator

I just have a couple of notes.

  1. For the .gitignore file we have one in our wnprc_modules folder that eliminates the same ds_store files in all subdirectories so yours probably isn't needed and might cause some confusion.
  2. The README file is blank so you can probably remove this if you don't have anything to put in it right now. You can always re-add it in the future once you have stuff to put in there, but I would try to avoid putting it in right now.
  3. Kind of going along with the README above I think you can remove the begin.html if it doesn't currently serve a purpose.
  4. In your module.properties file I would add the License and LicenseURL properties. And going along with that I would add our copyright text to all your files in the module. You can do this in intellij easily and even configure it so it automatically adds the copyright to any future files you create.
  5. Small detail but I would rename your script versioning to 0.000-26.000 since we are on labkey 26 now.
  6. I would also consider renaming the module to better align with the other WNPRC modules to something like WNPRC_iOSApp or just iOSApp. Then update your java files accordingly. I think wnprc_ios_app looks kind of weird when comparing it to the rest of our modules and java files, and would help maintain the current formatting that we have.
  7. This last one you might have to recreate the folder but intellij isn't picking up the directory as a module. I am not sure how you created it but this is preventing the java files from having a smart IDE and color coding everything. You must have made it as a directory instead of a module. I would try to fix this so that it fits the rest of our modules standard and allows intellij to pick up on everything.

Let me know if you have any questions

Removed gitignore file.
Added header to build.gradle and module.properties.
Updated upgrade script to 26.
@aschmidt34

Copy link
Copy Markdown
Collaborator Author

Thank you for your review. I made a few changes, but left some as-is. This intention of this PR is to get a working version of the app onto production as soon as possible; we can fix any other small issues (like naming conventions or missing comments) down the road, but the priority should be approving and merging this as soon as it functions correctly.

  1. Deleted gitignore.

2 & 3. Personally, I think keeping the readme and landing page there as placeholders is a much better idea so the module follows standard protocol (and this makes updating them easier later) but I removed them for now.

  1. All of my necessary module files should have this header. I've never seen this header added to top level key-value pair files like module.properties or build.gradle (outside of your CageUI) but I added them anyways, can't hurt I guess.

  2. Renamed my versioning script.

  3. I'm going to leave the module name as-is. We have modules like 'WebUtils, wnprc_billing, and WNPRC_Compliance', so I don't think we currently have a format we're maintaining, and at this point in development I don't want to change something top-level like a module name that might have an untested cascading effect on other parts of that module.

  4. Can you try a gradle refresh to see if it fixes this? Looks like it's working correctly as a module on my instance; I followed all necessary LabKey documentation for module creation and set this up on a fresh LabKey instance so it should be implemented correctly.

@guyinco6nito

Copy link
Copy Markdown
Collaborator

Kooks good to me!

@guyinco6nito guyinco6nito left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me!

@aschmidt34
aschmidt34 merged commit 97368b1 into release26.3-SNAPSHOT Aug 5, 2026
5 of 8 checks passed
@aschmidt34
aschmidt34 deleted the 26.3_fb_ios_app_integration branch August 5, 2026 21:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants