Skip to content
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

(feat) HIE-9: Add MPI workflows to OpenMRS frontend #1397

Open
wants to merge 22 commits into
base: main
Choose a base branch
from
Open

Conversation

reagan-meant
Copy link
Contributor

@reagan-meant reagan-meant commented Dec 4, 2024

Requirements

  • This PR has a title that briefly describes the work done including the ticket number. If there is a ticket, make sure your PR title includes a conventional commit label. See existing PR titles for inspiration.
  • My work conforms to the OpenMRS 3.0 Styleguide and design documentation.
  • My work includes tests or is validated by existing tests.

Summary

https://openmrs.atlassian.net/browse/HIE-9

Screenshots

Screen.Recording.2024-12-13.at.14.32.28.mov

Related Issue

See background conversation here

Other

Copy link
Contributor

github-actions bot commented Dec 10, 2024

Size Change: -170 kB (-2.31%)

Total Size: 7.2 MB

Filename Size Change
packages/esm-patient-registration-app/dist/745.js 0 B -71.5 kB (removed) 🏆
packages/esm-patient-search-app/dist/51.js 0 B -105 kB (removed) 🏆
ℹ️ View Unchanged
Filename Size Change
packages/esm-active-visits-app/dist/106.js 8.63 kB 0 B
packages/esm-active-visits-app/dist/130.js 395 kB 0 B
packages/esm-active-visits-app/dist/136.js 65.6 kB 0 B
packages/esm-active-visits-app/dist/233.js 3.37 kB 0 B
packages/esm-active-visits-app/dist/236.js 614 B 0 B
packages/esm-active-visits-app/dist/240.js 615 B 0 B
packages/esm-active-visits-app/dist/261.js 615 B 0 B
packages/esm-active-visits-app/dist/271.js 805 B 0 B
packages/esm-active-visits-app/dist/272.js 615 B 0 B
packages/esm-active-visits-app/dist/316.js 42.9 kB 0 B
packages/esm-active-visits-app/dist/319.js 735 B 0 B
packages/esm-active-visits-app/dist/325.js 3.09 kB 0 B
packages/esm-active-visits-app/dist/336.js 614 B 0 B
packages/esm-active-visits-app/dist/378.js 731 B 0 B
packages/esm-active-visits-app/dist/443.js 6.98 kB 0 B
packages/esm-active-visits-app/dist/460.js 817 B 0 B
packages/esm-active-visits-app/dist/539.js 613 B 0 B
packages/esm-active-visits-app/dist/574.js 615 B 0 B
packages/esm-active-visits-app/dist/6.js 28 kB 0 B
packages/esm-active-visits-app/dist/644.js 800 B 0 B
packages/esm-active-visits-app/dist/652.js 615 B 0 B
packages/esm-active-visits-app/dist/673.js 615 B 0 B
packages/esm-active-visits-app/dist/705.js 615 B 0 B
packages/esm-active-visits-app/dist/711.js 615 B 0 B
packages/esm-active-visits-app/dist/725.js 647 B 0 B
packages/esm-active-visits-app/dist/727.js 615 B 0 B
packages/esm-active-visits-app/dist/737.js 615 B 0 B
packages/esm-active-visits-app/dist/744.js 843 B 0 B
packages/esm-active-visits-app/dist/757.js 731 B 0 B
packages/esm-active-visits-app/dist/784.js 2.63 kB 0 B
packages/esm-active-visits-app/dist/788.js 628 B 0 B
packages/esm-active-visits-app/dist/807.js 959 B 0 B
packages/esm-active-visits-app/dist/814.js 3.04 kB 0 B
packages/esm-active-visits-app/dist/833.js 765 B 0 B
packages/esm-active-visits-app/dist/879.js 3.02 kB 0 B
packages/esm-active-visits-app/dist/899.js 611 B 0 B
packages/esm-active-visits-app/dist/967.js 611 B 0 B
packages/esm-active-visits-app/dist/main.js 96 kB 0 B
packages/esm-active-visits-app/dist/openmrs-esm-active-visits-app.js 3.5 kB 0 B
packages/esm-appointments-app/dist/111.js 10.6 kB 0 B
packages/esm-appointments-app/dist/123.js 272 kB 0 B
packages/esm-appointments-app/dist/130.js 395 kB 0 B
packages/esm-appointments-app/dist/171.js 223 B 0 B
packages/esm-appointments-app/dist/2.js 2.23 kB 0 B
packages/esm-appointments-app/dist/228.js 2.05 kB 0 B
packages/esm-appointments-app/dist/236.js 2.05 kB 0 B
packages/esm-appointments-app/dist/240.js 2.05 kB 0 B
packages/esm-appointments-app/dist/261.js 2.05 kB 0 B
packages/esm-appointments-app/dist/265.js 1.79 kB 0 B
packages/esm-appointments-app/dist/269.js 7.66 kB 0 B
packages/esm-appointments-app/dist/271.js 2.44 kB 0 B
packages/esm-appointments-app/dist/272.js 2.05 kB 0 B
packages/esm-appointments-app/dist/319.js 2.32 kB 0 B
packages/esm-appointments-app/dist/325.js 3.08 kB 0 B
packages/esm-appointments-app/dist/336.js 2.05 kB 0 B
packages/esm-appointments-app/dist/372.js 2.57 kB 0 B
packages/esm-appointments-app/dist/378.js 2.31 kB 0 B
packages/esm-appointments-app/dist/443.js 6.97 kB 0 B
packages/esm-appointments-app/dist/460.js 2.49 kB 0 B
packages/esm-appointments-app/dist/539.js 2.05 kB 0 B
packages/esm-appointments-app/dist/574.js 2.05 kB 0 B
packages/esm-appointments-app/dist/581.js 9.03 kB 0 B
packages/esm-appointments-app/dist/591.js 16.8 kB 0 B
packages/esm-appointments-app/dist/644.js 2.44 kB 0 B
packages/esm-appointments-app/dist/652.js 2.05 kB 0 B
packages/esm-appointments-app/dist/673.js 2.05 kB 0 B
packages/esm-appointments-app/dist/705.js 2.05 kB 0 B
packages/esm-appointments-app/dist/711.js 128 kB 0 B
packages/esm-appointments-app/dist/727.js 2.05 kB 0 B
packages/esm-appointments-app/dist/737.js 2.05 kB 0 B
packages/esm-appointments-app/dist/744.js 2.58 kB 0 B
packages/esm-appointments-app/dist/757.js 2.44 kB 0 B
packages/esm-appointments-app/dist/775.js 36.2 kB 0 B
packages/esm-appointments-app/dist/784.js 2.62 kB 0 B
packages/esm-appointments-app/dist/788.js 2.05 kB 0 B
packages/esm-appointments-app/dist/807.js 2.67 kB 0 B
packages/esm-appointments-app/dist/833.js 2.37 kB 0 B
packages/esm-appointments-app/dist/899.js 2.04 kB 0 B
packages/esm-appointments-app/dist/903.js 864 B 0 B
packages/esm-appointments-app/dist/main.js 413 kB 0 B
packages/esm-appointments-app/dist/openmrs-esm-appointments-app.js 3.56 kB 0 B
packages/esm-bed-management-app/dist/130.js 395 kB 0 B
packages/esm-bed-management-app/dist/148.js 1.37 kB 0 B
packages/esm-bed-management-app/dist/205.js 50.7 kB 0 B
packages/esm-bed-management-app/dist/236.js 793 B 0 B
packages/esm-bed-management-app/dist/240.js 793 B 0 B
packages/esm-bed-management-app/dist/261.js 794 B 0 B
packages/esm-bed-management-app/dist/271.js 793 B 0 B
packages/esm-bed-management-app/dist/272.js 794 B 0 B
packages/esm-bed-management-app/dist/319.js 908 B 0 B
packages/esm-bed-management-app/dist/325.js 3.09 kB 0 B
packages/esm-bed-management-app/dist/336.js 794 B 0 B
packages/esm-bed-management-app/dist/378.js 937 B 0 B
packages/esm-bed-management-app/dist/443.js 6.97 kB 0 B
packages/esm-bed-management-app/dist/460.js 892 B 0 B
packages/esm-bed-management-app/dist/539.js 793 B 0 B
packages/esm-bed-management-app/dist/542.js 396 B 0 B
packages/esm-bed-management-app/dist/574.js 794 B 0 B
packages/esm-bed-management-app/dist/591.js 16.8 kB 0 B
packages/esm-bed-management-app/dist/644.js 794 B 0 B
packages/esm-bed-management-app/dist/652.js 794 B 0 B
packages/esm-bed-management-app/dist/673.js 795 B 0 B
packages/esm-bed-management-app/dist/705.js 794 B 0 B
packages/esm-bed-management-app/dist/711.js 794 B 0 B
packages/esm-bed-management-app/dist/727.js 794 B 0 B
packages/esm-bed-management-app/dist/737.js 794 B 0 B
packages/esm-bed-management-app/dist/744.js 1.01 kB 0 B
packages/esm-bed-management-app/dist/746.js 125 kB 0 B
packages/esm-bed-management-app/dist/757.js 939 B 0 B
packages/esm-bed-management-app/dist/768.js 26.5 kB 0 B
packages/esm-bed-management-app/dist/784.js 2.63 kB 0 B
packages/esm-bed-management-app/dist/788.js 793 B 0 B
packages/esm-bed-management-app/dist/807.js 793 B 0 B
packages/esm-bed-management-app/dist/833.js 957 B 0 B
packages/esm-bed-management-app/dist/899.js 792 B 0 B
packages/esm-bed-management-app/dist/main.js 4.18 kB 0 B
packages/esm-bed-management-app/dist/openmrs-esm-bed-management-app.js 3.43 kB 0 B
packages/esm-patient-list-management-app/dist/130.js 395 kB 0 B
packages/esm-patient-list-management-app/dist/233.js 3.38 kB 0 B
packages/esm-patient-list-management-app/dist/236.js 1.34 kB 0 B
packages/esm-patient-list-management-app/dist/240.js 1.34 kB 0 B
packages/esm-patient-list-management-app/dist/261.js 1.34 kB 0 B
packages/esm-patient-list-management-app/dist/271.js 1.6 kB 0 B
packages/esm-patient-list-management-app/dist/272.js 1.34 kB 0 B
packages/esm-patient-list-management-app/dist/319.js 1.52 kB 0 B
packages/esm-patient-list-management-app/dist/325.js 3.09 kB 0 B
packages/esm-patient-list-management-app/dist/336.js 1.34 kB 0 B
packages/esm-patient-list-management-app/dist/37.js 12.5 kB 0 B
packages/esm-patient-list-management-app/dist/378.js 1.55 kB 0 B
packages/esm-patient-list-management-app/dist/443.js 6.98 kB 0 B
packages/esm-patient-list-management-app/dist/460.js 1.71 kB 0 B
packages/esm-patient-list-management-app/dist/539.js 1.34 kB 0 B
packages/esm-patient-list-management-app/dist/548.js 58.5 kB 0 B
packages/esm-patient-list-management-app/dist/574.js 1.34 kB 0 B
packages/esm-patient-list-management-app/dist/591.js 16.9 kB 0 B
packages/esm-patient-list-management-app/dist/644.js 1.6 kB 0 B
packages/esm-patient-list-management-app/dist/652.js 1.34 kB 0 B
packages/esm-patient-list-management-app/dist/673.js 1.34 kB 0 B
packages/esm-patient-list-management-app/dist/705.js 1.34 kB 0 B
packages/esm-patient-list-management-app/dist/711.js 1.34 kB 0 B
packages/esm-patient-list-management-app/dist/727.js 1.34 kB 0 B
packages/esm-patient-list-management-app/dist/737.js 1.34 kB 0 B
packages/esm-patient-list-management-app/dist/744.js 1.72 kB 0 B
packages/esm-patient-list-management-app/dist/757.js 1.64 kB 0 B
packages/esm-patient-list-management-app/dist/784.js 2.63 kB 0 B
packages/esm-patient-list-management-app/dist/788.js 1.34 kB 0 B
packages/esm-patient-list-management-app/dist/807.js 1.83 kB 0 B
packages/esm-patient-list-management-app/dist/814.js 3.05 kB 0 B
packages/esm-patient-list-management-app/dist/833.js 1.6 kB 0 B
packages/esm-patient-list-management-app/dist/899.js 1.34 kB 0 B
packages/esm-patient-list-management-app/dist/900.js 115 kB 0 B
packages/esm-patient-list-management-app/dist/main.js 176 kB 0 B
packages/esm-patient-list-management-app/dist/openmrs-esm-patient-list-management-app.js 3.48 kB 0 B
packages/esm-patient-registration-app/dist/130.js 395 kB 0 B
packages/esm-patient-registration-app/dist/169.js 6.71 kB 0 B
packages/esm-patient-registration-app/dist/2.js 2.24 kB 0 B
packages/esm-patient-registration-app/dist/236.js 2.12 kB 0 B
packages/esm-patient-registration-app/dist/240.js 2.12 kB 0 B
packages/esm-patient-registration-app/dist/250.js 526 B 0 B
packages/esm-patient-registration-app/dist/261.js 2.12 kB 0 B
packages/esm-patient-registration-app/dist/271.js 2.51 kB 0 B
packages/esm-patient-registration-app/dist/272.js 2.12 kB 0 B
packages/esm-patient-registration-app/dist/319.js 2.43 kB 0 B
packages/esm-patient-registration-app/dist/323.js 72.2 kB 0 B
packages/esm-patient-registration-app/dist/325.js 3.09 kB 0 B
packages/esm-patient-registration-app/dist/336.js 2.12 kB 0 B
packages/esm-patient-registration-app/dist/371.js 547 B 0 B
packages/esm-patient-registration-app/dist/372.js 2.57 kB 0 B
packages/esm-patient-registration-app/dist/378.js 2.37 kB 0 B
packages/esm-patient-registration-app/dist/46.js 133 kB 0 B
packages/esm-patient-registration-app/dist/460.js 2.51 kB 0 B
packages/esm-patient-registration-app/dist/501.js 7.03 kB 0 B
packages/esm-patient-registration-app/dist/539.js 2.12 kB 0 B
packages/esm-patient-registration-app/dist/574.js 2.12 kB 0 B
packages/esm-patient-registration-app/dist/591.js 16.8 kB 0 B
packages/esm-patient-registration-app/dist/644.js 2.51 kB 0 B
packages/esm-patient-registration-app/dist/652.js 2.12 kB 0 B
packages/esm-patient-registration-app/dist/662.js 453 B 0 B
packages/esm-patient-registration-app/dist/673.js 2.12 kB 0 B
packages/esm-patient-registration-app/dist/705.js 2.12 kB 0 B
packages/esm-patient-registration-app/dist/711.js 2.12 kB 0 B
packages/esm-patient-registration-app/dist/727.js 2.12 kB 0 B
packages/esm-patient-registration-app/dist/737.js 2.12 kB 0 B
packages/esm-patient-registration-app/dist/744.js 2.56 kB 0 B
packages/esm-patient-registration-app/dist/757.js 2.54 kB 0 B
packages/esm-patient-registration-app/dist/784.js 2.63 kB 0 B
packages/esm-patient-registration-app/dist/788.js 2.12 kB 0 B
packages/esm-patient-registration-app/dist/807.js 2.74 kB 0 B
packages/esm-patient-registration-app/dist/833.js 2.39 kB 0 B
packages/esm-patient-registration-app/dist/879.js 3.03 kB 0 B
packages/esm-patient-registration-app/dist/899.js 2.12 kB 0 B
packages/esm-patient-registration-app/dist/main.js 205 kB +685 B (+0.33%)
packages/esm-patient-registration-app/dist/openmrs-esm-patient-registration-app.js 3.52 kB 0 B
packages/esm-patient-search-app/dist/130.js 395 kB 0 B
packages/esm-patient-search-app/dist/133.js 108 kB 0 B
packages/esm-patient-search-app/dist/2.js 2.23 kB 0 B
packages/esm-patient-search-app/dist/233.js 3.37 kB 0 B
packages/esm-patient-search-app/dist/236.js 936 B 0 B
packages/esm-patient-search-app/dist/240.js 937 B 0 B
packages/esm-patient-search-app/dist/261.js 937 B 0 B
packages/esm-patient-search-app/dist/271.js 1.14 kB 0 B
packages/esm-patient-search-app/dist/272.js 937 B 0 B
packages/esm-patient-search-app/dist/319.js 1.07 kB 0 B
packages/esm-patient-search-app/dist/325.js 3.09 kB 0 B
packages/esm-patient-search-app/dist/336.js 936 B 0 B
packages/esm-patient-search-app/dist/372.js 2.57 kB 0 B
packages/esm-patient-search-app/dist/378.js 1.1 kB 0 B
packages/esm-patient-search-app/dist/443.js 6.98 kB 0 B
packages/esm-patient-search-app/dist/460.js 1.16 kB 0 B
packages/esm-patient-search-app/dist/539.js 935 B 0 B
packages/esm-patient-search-app/dist/574.js 991 B +54 B (+5.76%) 🔍
packages/esm-patient-search-app/dist/591.js 16.8 kB 0 B
packages/esm-patient-search-app/dist/644.js 1.14 kB 0 B
packages/esm-patient-search-app/dist/652.js 937 B 0 B
packages/esm-patient-search-app/dist/673.js 937 B 0 B
packages/esm-patient-search-app/dist/705.js 937 B 0 B
packages/esm-patient-search-app/dist/711.js 937 B 0 B
packages/esm-patient-search-app/dist/727.js 936 B 0 B
packages/esm-patient-search-app/dist/737.js 936 B 0 B
packages/esm-patient-search-app/dist/744.js 1.17 kB 0 B
packages/esm-patient-search-app/dist/750.js 62.2 kB +1.41 kB (+2.32%)
packages/esm-patient-search-app/dist/757.js 1.15 kB 0 B
packages/esm-patient-search-app/dist/784.js 2.63 kB 0 B
packages/esm-patient-search-app/dist/788.js 933 B 0 B
packages/esm-patient-search-app/dist/807.js 1.23 kB 0 B
packages/esm-patient-search-app/dist/814.js 3.05 kB 0 B
packages/esm-patient-search-app/dist/833.js 1.1 kB 0 B
packages/esm-patient-search-app/dist/899.js 933 B 0 B
packages/esm-patient-search-app/dist/main.js 172 kB +4.21 kB (+2.51%)
packages/esm-patient-search-app/dist/openmrs-esm-patient-search-app.js 3.51 kB +4 B (+0.11%)
packages/esm-service-queues-app/dist/1006.js 1.75 kB 0 B
packages/esm-service-queues-app/dist/1060.js 1.82 kB 0 B
packages/esm-service-queues-app/dist/130.js 395 kB 0 B
packages/esm-service-queues-app/dist/1325.js 3.09 kB 0 B
packages/esm-service-queues-app/dist/1644.js 3.66 kB 0 B
packages/esm-service-queues-app/dist/1727.js 8.12 kB 0 B
packages/esm-service-queues-app/dist/1800.js 1.68 kB 0 B
packages/esm-service-queues-app/dist/2.js 2.23 kB 0 B
packages/esm-service-queues-app/dist/236.js 3.05 kB 0 B
packages/esm-service-queues-app/dist/2757.js 3.76 kB 0 B
packages/esm-service-queues-app/dist/2760.js 7.31 kB 0 B
packages/esm-service-queues-app/dist/2784.js 2.62 kB 0 B
packages/esm-service-queues-app/dist/3199.js 1.36 kB 0 B
packages/esm-service-queues-app/dist/3372.js 2.57 kB 0 B
packages/esm-service-queues-app/dist/3574.js 3.03 kB 0 B
packages/esm-service-queues-app/dist/3604.js 6.96 kB 0 B
packages/esm-service-queues-app/dist/3652.js 3.05 kB 0 B
packages/esm-service-queues-app/dist/3818.js 2.56 kB 0 B
packages/esm-service-queues-app/dist/3828.js 1.38 kB 0 B
packages/esm-service-queues-app/dist/4272.js 3.05 kB 0 B
packages/esm-service-queues-app/dist/4378.js 3.5 kB 0 B
packages/esm-service-queues-app/dist/443.js 6.98 kB 0 B
packages/esm-service-queues-app/dist/4460.js 3.81 kB 0 B
packages/esm-service-queues-app/dist/4705.js 3.05 kB 0 B
packages/esm-service-queues-app/dist/4911.js 7.76 kB 0 B
packages/esm-service-queues-app/dist/5236.js 5.98 kB 0 B
packages/esm-service-queues-app/dist/5240.js 3.04 kB 0 B
packages/esm-service-queues-app/dist/5282.js 9.12 kB 0 B
packages/esm-service-queues-app/dist/5336.js 3.05 kB 0 B
packages/esm-service-queues-app/dist/539.js 3.05 kB 0 B
packages/esm-service-queues-app/dist/5673.js 3.05 kB 0 B
packages/esm-service-queues-app/dist/5711.js 3.05 kB 0 B
packages/esm-service-queues-app/dist/5737.js 3.05 kB 0 B
packages/esm-service-queues-app/dist/5833.js 3.59 kB 0 B
packages/esm-service-queues-app/dist/6578.js 179 kB 0 B
packages/esm-service-queues-app/dist/6591.js 16.8 kB 0 B
packages/esm-service-queues-app/dist/6670.js 10.1 kB 0 B
packages/esm-service-queues-app/dist/6727.js 3.05 kB 0 B
packages/esm-service-queues-app/dist/744.js 3.76 kB 0 B
packages/esm-service-queues-app/dist/752.js 1.62 kB 0 B
packages/esm-service-queues-app/dist/7807.js 4.07 kB 0 B
packages/esm-service-queues-app/dist/8271.js 3.66 kB 0 B
packages/esm-service-queues-app/dist/8319.js 3.47 kB 0 B
packages/esm-service-queues-app/dist/8788.js 3.06 kB 0 B
packages/esm-service-queues-app/dist/899.js 3.05 kB 0 B
packages/esm-service-queues-app/dist/9261.js 3.05 kB 0 B
packages/esm-service-queues-app/dist/9392.js 7.84 kB 0 B
packages/esm-service-queues-app/dist/940.js 21.4 kB 0 B
packages/esm-service-queues-app/dist/9993.js 96.8 kB 0 B
packages/esm-service-queues-app/dist/main.js 277 kB 0 B
packages/esm-service-queues-app/dist/openmrs-esm-service-queues-app.js 3.48 kB 0 B
packages/esm-ward-app/dist/109.js 350 B 0 B
packages/esm-ward-app/dist/124.js 3.68 kB 0 B
packages/esm-ward-app/dist/125.js 5.87 kB 0 B
packages/esm-ward-app/dist/126.js 9.69 kB 0 B
packages/esm-ward-app/dist/130.js 395 kB 0 B
packages/esm-ward-app/dist/146.js 2.13 kB 0 B
packages/esm-ward-app/dist/15.js 480 B 0 B
packages/esm-ward-app/dist/325.js 3.08 kB 0 B
packages/esm-ward-app/dist/348.js 349 B 0 B
packages/esm-ward-app/dist/362.js 476 B 0 B
packages/esm-ward-app/dist/372.js 2.56 kB 0 B
packages/esm-ward-app/dist/443.js 6.97 kB 0 B
packages/esm-ward-app/dist/471.js 6.86 kB 0 B
packages/esm-ward-app/dist/481.js 1.25 kB 0 B
packages/esm-ward-app/dist/53.js 12.2 kB 0 B
packages/esm-ward-app/dist/559.js 342 B 0 B
packages/esm-ward-app/dist/574.js 1.63 kB 0 B
packages/esm-ward-app/dist/576.js 6.03 kB 0 B
packages/esm-ward-app/dist/577.js 17.7 kB 0 B
packages/esm-ward-app/dist/591.js 16.8 kB 0 B
packages/esm-ward-app/dist/598.js 35.8 kB 0 B
packages/esm-ward-app/dist/649.js 2.51 kB 0 B
packages/esm-ward-app/dist/662.js 11.1 kB 0 B
packages/esm-ward-app/dist/767.js 648 B 0 B
packages/esm-ward-app/dist/768.js 15 kB 0 B
packages/esm-ward-app/dist/784.js 2.62 kB 0 B
packages/esm-ward-app/dist/921.js 6.09 kB 0 B
packages/esm-ward-app/dist/922.js 9.04 kB 0 B
packages/esm-ward-app/dist/925.js 90.9 kB 0 B
packages/esm-ward-app/dist/940.js 21.4 kB 0 B
packages/esm-ward-app/dist/969.js 202 B 0 B
packages/esm-ward-app/dist/main.js 98.5 kB 0 B
packages/esm-ward-app/dist/openmrs-esm-ward-app.js 3.46 kB 0 B

compressed-size-action

@reagan-meant reagan-meant changed the title MPI Workflow (feat) HIE-9: Add MPI workflows to OpenMRS frontend Dec 13, 2024
Copy link
Member

@ibacher ibacher left a comment

Choose a reason for hiding this comment

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

Thanks @reagan-meant! A few comments on this overall.

const { data: attributes, isLoading: isLoadingAttributes } = useInitialPersonAttributes(patientUuid);
const { data: identifiers, isLoading: isLoadingIdentifiers } = useInitialPatientIdentifiers(patientUuid);
const { data: relationships, isLoading: isLoadingRelationships } = useInitialPatientRelationships(patientUuid);
import { useMpiPatient } from './mpi/mpi-patient.resource';
Copy link
Member

Choose a reason for hiding this comment

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

Can we move this import to be with the others?

Comment on lines 46 to 51
const { freeTextFieldConceptUuid, fieldConfigurations } = useConfig<RegistrationConfig>();
const { isLoading: isLoadingPatientToEdit, patient: patientToEdit } = usePatient(isLocal ? patientUuid : null);
const { isLoading: isLoadingMpiPatient, patient: mpiPatient } = useMpiPatient(!isLocal ? patientUuid : null);
const { data: deathInfo, isLoading: isLoadingDeathInfo } = useInitialPersonDeathInfo(isLocal ? patientUuid : null);
const { data: attributes, isLoading: isLoadingAttributes } = useInitialPersonAttributes(isLocal ? patientUuid : null);
const { data: identifiers, isLoading: isLoadingIdentifiers } = useInitialPatientIdentifiers(
Copy link
Member

Choose a reason for hiding this comment

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

It feels like this hook would be better broken out into a useInitialFormValuesLocal(string) and useInitialFormValueMpi(string).


useEffect(() => {
const fetchValues = async () => {
//check that patient is not dead
Copy link
Member

Choose a reason for hiding this comment

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

???

isLocal,
]);

useEffect(() => {
Copy link
Member

Choose a reason for hiding this comment

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

This pattern feels off. This feels like it should be split into it's own hook or something an ultimately useSWR() if at all possible.


for (const identifier of patient.identifier) {
for (const config of identifierConfig) {
const identifierConfig = config.identifierTypeSystem === identifier.system ? config : null;
Copy link
Member

Choose a reason for hiding this comment

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

This feels much cleaner:

Suggested change
const identifierConfig = config.identifierTypeSystem === identifier.system ? config : null;
if (config.identifierTypeSystem !== identifier.system) {
continue;
}

preferred: false,
address1: '',
})),
age: null,
Copy link
Member

Choose a reason for hiding this comment

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

We have a birthdate, so we should be able to calculate the age. There's a helper for that in the framework.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@ibacher this helper does not return a number.
Incompatible with our patient interface

Copy link
Member

@ibacher ibacher Dec 16, 2024

Choose a reason for hiding this comment

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

I see... Can we omit it? It's weird, because there's no reasonable numeric representation of "age", i.e., this probably shouldn't be a number at all.

Comment on lines 33 to 34
dead: fhirPatient.deceasedBoolean,
deathDate: fhirPatient.deceasedDateTime,
Copy link
Member

Choose a reason for hiding this comment

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

In FHIR, only one of these two properties will be set at any given time, so we need to be responsive to that. If deceasedBoolean is set, deceasedDateTime will be null and vice-versa. At the very least, if deceasedDateTime is non-null we can infer that the patient is deceased if the datetime is now or in the past.

Comment on lines 36 to 38
display: fhirPatient.name[0].text
? fhirPatient.name[0].text
: `${fhirPatient.name[0].family} ${fhirPatient.name[0].given[0]}`,
Copy link
Member

Choose a reason for hiding this comment

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

The name format here probably needs to be templateable.

Suggested change
display: fhirPatient.name[0].text
? fhirPatient.name[0].text
: `${fhirPatient.name[0].family} ${fhirPatient.name[0].given[0]}`,
display: fhirPatient.name[0].text ??
`${fhirPatient.name[0].given[0]} ${fhirPatient.name[0].family}`,

import { type SearchedPatient } from '../types';
import { getCoreTranslation } from '@openmrs/esm-framework';
export function inferModeFromSearchParams(searchParams: URLSearchParams) {
return searchParams.get('mode')?.toLowerCase() === 'external' ? 'external' : 'internal';
Copy link
Member

Choose a reason for hiding this comment

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

These should probably be mpi and just no value, which can be interpretted as local or whatever.

@@ -43,6 +44,7 @@ const patientSearchCustomRepresentation = `custom:(${patientProperties.join(',')
*/
export function useInfinitePatientSearch(
searchQuery: string,
searchMode: string,
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
searchMode: string,
searchMode: 'mpi' | null | undefined,

@@ -407,6 +517,186 @@ describe('Registering a new patient', () => {
});
});

describe('Import an MPI patient record', () => {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

@ibacher Unfortunately, this test isn't providing much value at the moment. The issue seems to be that I'm unable to update the initially mocked values that are supposed to be updated via the useEffect hook.

Copy link
Member

@samuelmale samuelmale left a comment

Choose a reason for hiding this comment

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

Nice Regan! I've left a few comments.

@@ -351,6 +352,21 @@ export const esmPatientRegistrationSchema = {
},
},
},
identifier: {
Copy link
Member

Choose a reason for hiding this comment

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

identifierMappings reads better.

identifier: {
_type: Type.Array,
_elements: {
identifierTypeSystem: {
Copy link
Member

Choose a reason for hiding this comment

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

fhirIdentifierSystem reads better.

_type: Type.String,
_description: 'Identifier system from the fhir server',
},
identifierTypeUuid: {
Copy link
Member

Choose a reason for hiding this comment

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

openmrsIdentifierTypeUuid would be more specific.

@@ -180,6 +188,64 @@ export function useInitialFormValues(patientUuid: string): [FormValues, Dispatch
return [initialFormValues, setInitialFormValues];
}

export function useInitialFormValueMpi(patientUuid: string): [FormValues, Dispatch<FormValues>] {
Copy link
Member

Choose a reason for hiding this comment

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

Since it returns form values, let's rename this hook to something like: useMpiInitialFormValues or useFormValuesWithMpi or better.

Comment on lines +73 to +83
/* const [sourceRecord, setSourceRecord ] = useState<string | undefined>()
useDefineAppContext<MPIContext>("sourceRecord", {
sourceRecord: sourceRecord
}); */

const handleCreatePatientRecord = (externalId: string) => {
//setSourceRecord(externalId);
navigate({
to: `${window.getOpenmrsSpaBase()}patient-registration?sourceRecord=${externalId}`,
});
};
Copy link
Member

Choose a reason for hiding this comment

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

Do you plan on cleaning this up?

{isMPIPatient && (
<div>
<Tag className={styles.mpiTag} type="blue">
&#127760; {'MPI'}
Copy link
Member

Choose a reason for hiding this comment

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

I think this tag should be wrapped in a t(...) function to take advantage of translation overrides.

}

interface PatientSearchResultsProps {
searchResults: SearchedPatient[];
searchTerm: string;
searchMode?: 'mpi' | null | undefined;
Copy link
Member

Choose a reason for hiding this comment

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

Shouldn't this be a binary type? Something like:

  searchMode?: 'local' | 'mpi'; 

And we default to local.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@ibacher advised we go this route. See here
The default is local

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