Commit Graph

250 Commits

Author SHA1 Message Date
Jason Kulatunga cce4a2577b fixed tests. 2023-09-20 14:57:05 -07:00
Jason Kulatunga c8718b2d8f adding NoopEventBus version. Fixing tests. 2023-09-20 14:57:05 -07:00
Jason Kulatunga b6da493d62 removed singleton eventbus. Moved to application init.
Added interface for eventbus.
verified working.
2023-09-20 14:57:05 -07:00
Jason Kulatunga 85986cf95c disabling eventbus on windows, causes deadlock. 2023-09-13 13:57:17 -07:00
Jason Kulatunga ce8efdb753 making all references to EventBusListeners pointers
adding a keepalive event type.
2023-09-13 13:57:17 -07:00
Jason Kulatunga 7078f784c4
fixing dashboard on windows - https://github.com/golang/go/issues/45230 2023-09-13 11:31:11 -07:00
Jason Kulatunga 70ca68a6ec
added background context todo 2023-09-13 09:43:56 -07:00
Jason Kulatunga 9e1c7455d1 moved event bus into its own package.
created models for event bus messaging.
added logger.
added source complete and sync events.
2023-09-10 09:25:15 -07:00
Jason Kulatunga 74fc682dbf renamed sse endpoint to events. Using the technology name in the API isnt a good idea. 2023-09-10 09:25:15 -07:00
Jason Kulatunga 6a3afe150e working private event notifications. 2023-09-10 09:25:15 -07:00
Jason Kulatunga 862e3d6ea7 pass in the event bus to the DatabaseRepository for notifications. 2023-09-10 09:25:15 -07:00
Jason Kulatunga 8ff42142fb deriving background context based on Gin Contex.
Removed testing message bus heartbeats -> moved to /health endpoint.
2023-09-10 09:25:15 -07:00
Jason Kulatunga b344469caa refactoring. Created EventBus singleton. 2023-09-10 09:25:15 -07:00
Jason Kulatunga 0fd78b7533 refactoring. Created EventBus singleton. 2023-09-10 09:25:15 -07:00
Jason Kulatunga 2027e898b3 using Server-sent-events (SSE) for notifications support (and background processing)
WIP.
2023-09-10 09:25:15 -07:00
Jason Kulatunga 00d0684b57
cache location 2023-08-29 16:05:36 -07:00
packagrio-bot 507cb12c0b (v0.1.6) Automated packaging of release by Packagr 2023-08-29 03:19:10 +00:00
packagrio-bot c4eb009e9d (v0.1.5) Automated packaging of release by Packagr 2023-08-29 03:11:28 +00:00
Jason Kulatunga a9cb793c8a split frontend routing config from backend config.
Added method to use embedded frontend routing.
rename desktop config to desktop_sandbox config.

adding desktop_mode (used for Wails Desktop app + hash based routing)
make sure all `window.location` parsing works correctly with desktop_mode
2023-08-28 18:36:32 -07:00
Jason Kulatunga 0a9eb88b1b
fixing module name (fasten-onprem vs fastenhealth-onprem) 2023-08-27 17:09:46 -07:00
Jason Kulatunga 9a4dcf9852 adding tests for dashboard settings
fixing database persistence for settings.
using reflection instead of abusing AppConfig for parsing UserSettingsEntries to UserSettings struct.
2023-08-25 08:36:12 -07:00
Jason Kulatunga cb6cb1d2c5 adding the ability to add one custom dashboard at a time.
make sure source information is automatically populated for remote dashboards
adding modals to add dashboard via UI
addign modals to edit
make sure we can switch between dashboards.
2023-08-25 08:36:12 -07:00
Jason Kulatunga 31479a4fc4 adding support for user settings (Remote Dashboard Locations) 2023-08-25 08:36:12 -07:00
Jason Kulatunga 3fe72918fd
adding ability to count by wildcard (source_resource_type).
internal fields like `id`, `source_id`, `source_resource_id` and `source_resource_type` are now queryable via keyword type.
2023-08-23 12:24:08 -07:00
Jason Kulatunga dd50faab57
update instructions for dashboard. 2023-08-22 15:58:20 -07:00
Jason Kulatunga 3db12ee4b8
adding information about the unsafe endpoints.
Dashboard locations should be added to settings table.
2023-08-21 17:20:17 -07:00
Jason Kulatunga 2a8b302319 fixing tests. 2023-08-17 17:19:26 -06:00
Jason Kulatunga 3c30298b7c fixing tests. 2023-08-17 17:19:26 -06:00
Jason Kulatunga 2f292397f7 where possible store the SourceURI with the resource.
requires updated version of Fasten sources (better Binary compatibility)
2023-08-17 17:19:26 -06:00
Jason Kulatunga b3a173df01 working aggregation code 2023-08-14 17:23:36 -06:00
Jason Kulatunga 6f56fa9c3b working aggregation code.
added tests for sql generation.
2023-08-14 17:23:36 -06:00
Jason Kulatunga 2c5133bef7 adding testing framework for Aggregation code.
WIP.
2023-08-14 17:23:36 -06:00
Jason Kulatunga 495fce5696 starting to work on GroupBy aggregations 2023-08-14 17:23:36 -06:00
Jason Kulatunga 1f113cdf63
make sure reference fields are correctly extracted and stored in the DB. 2023-08-13 15:28:03 -06:00
Jason Kulatunga 4dad809f19
removing Resource. segment of FHIRpath expressions (not supported) 2023-08-13 12:30:39 -06:00
Jason Kulatunga ddbf65080d
fixing Condition onset and abatement extraction. 2023-08-13 12:21:43 -06:00
Jason Kulatunga 410696c26f adding pagination to the explore page. fixes #216
simplified fallback component for table list
2023-08-12 10:27:46 -06:00
packagrio-bot 8c4e926d20 (v0.1.4) Automated packaging of release by Packagr 2023-08-09 04:12:38 +00:00
Jason Kulatunga cb1dab738d fix backend tests 2023-08-08 21:08:17 -07:00
Jason Kulatunga 0397a2f0cb sort all resources by "sort_date" column during query
return units when querying
rename all usages of "source" page to "explore"
adding new explore page.
fix dashboard widgets to correctly
2023-08-08 21:08:17 -07:00
Jason Kulatunga 28cb91817a
make sure sortTitle and SortDate are correctly set when extracting searchParamters
Failures during searchparameter extraction should not cause the resource to be skipped.
Update searchparameter extraction to correctly handle Time objects
Update searchparameter extraction to default to nil if empty list is returned during extraction.
2023-08-01 20:29:35 -07:00
Jason Kulatunga 9e776c60b8 make sure HumanName and Address types are correctly extracted as searchable strings.
Make sure they can be searched against using the query endpoint.
2023-07-31 18:46:52 -07:00
Jason Kulatunga 94fa479ff8 update the generator script for FhirResource storage. 2023-07-31 18:46:52 -07:00
Jason Kulatunga 0517f9b350 make sure we can handle HumanName and Address type objects (convert to string). 2023-07-31 18:46:52 -07:00
Jason Kulatunga 6433de8f25
make sure refreshed token is stored in the database when making raw unsafe requests. 2023-07-30 19:51:47 -07:00
packagrio-bot 60bedabe01 (v0.1.3) Automated packaging of release by Packagr 2023-07-21 05:39:54 +00:00
Jason Kulatunga 07d01fc33b
fixing tests. 2023-07-20 22:08:31 -07:00
Jason Kulatunga f1b7e80e13
make sure that we print the error response body if we can.
Added an update source method.
After sync, if sourcecredential access token/refresh token has been updated make sure we store it int he database.
2023-07-20 21:43:37 -07:00
Jason Kulatunga a5b37159c1
- make sure that we can generate offline tokens for Epic providers (using dynamic client registration - https://fhir.epic.com/Documentation?docId=Oauth2&section=Standalone-Oauth2-OfflineAccess-0)
- when SourceCredential is sent to the CreateSource API, we'll check if dynamic client regirstion is enabled. If it is, we'll use this token to register a new client, store the client information, and geneate a new Access Token using the key pair associated with this newly registered client.
- added additional fields to SourceCredential table (registration_endpoint, dynamic_client_registration_mode, dynamic_client_jwks, dynamic_client_id)
- renamed RefreshTokens to SetTokens in SourceCredential model - to have consistent naming
- added IsDynamicClient and RefreshDynamicClientAccessToken methods to SourceCredential Model

fixes #178
2023-07-19 22:45:14 -07:00
packagrio-bot 879312a852 (v0.1.2) Automated packaging of release by Packagr 2023-07-16 19:57:20 +00:00
packagrio-bot 5e6c823b5b (v0.1.1) Automated packaging of release by Packagr 2023-07-16 19:51:59 +00:00
packagrio-bot 40ca73ea2e (v0.1.0) Automated packaging of release by Packagr 2023-07-16 19:40:50 +00:00
Jason Kulatunga 59fd25c8e8
do not print out the issuer key in plain text. only used for debugging. 2023-07-16 09:37:46 -07:00
Jason Kulatunga 12cfcaee41
make sure that the sourcecredential interface is a pointer reciever. 2023-07-14 19:52:02 -07:00
Jason Kulatunga 50ba91ff93
differentiate error messages
adding 600+ manually downloaded logos, thanks to everyone who contributed!
2023-07-09 21:23:41 -07:00
Jason Kulatunga f0fa05c297
adding new fhir resources. 2023-07-08 17:54:19 -07:00
Jason Kulatunga f1f2da2dd3
Widget Dashboard Queries using extracted Search Parameters (#179) 2023-07-08 07:43:30 -07:00
packagrio-bot b177ccc72b (v0.0.12) Automated packaging of release by Packagr 2023-05-14 17:45:02 +00:00
packagrio-bot 3879156ff5 (v0.0.11) Automated packaging of release by Packagr 2023-05-05 16:07:50 +00:00
Jason Kulatunga 2eced4fe91
Storybook Integration for Component testing. (#142)
Co-authored-by: Serinus1 <junkmayle670@yahoo.com>
2023-05-05 09:06:33 -07:00
Jason Kulatunga 2e53ce79c7
make sure we can dynamically generate directed graph relationships on… (#131) 2023-04-22 22:08:58 -07:00
packagrio-bot c2d251c56c (v0.0.10) Automated packaging of release by Packagr 2023-04-15 17:18:10 +00:00
Jason Kulatunga 29ed792f03
Update version.go 2023-04-15 09:53:04 -07:00
Jason Kulatunga 01b6cc3aee
started working on DICOM support (stored in Media object) (#116) 2023-04-04 19:25:48 -07:00
Jason Kulatunga 390cea6108
adding a glossary endpoint which attempts to get patient-friendly descriptions from code. (#120) 2023-03-21 08:04:43 -07:00
packagrio-bot 64027777c1 (v0.0.8) Automated packaging of release by Packagr 2023-02-01 05:58:16 +00:00
Jason Kulatunga d6a6654681
using packagr app for version bumping while still keeping branch rest… (#56) 2023-01-31 21:55:41 -08:00
Jason Kulatunga 668bccebbd fix current version. 2023-01-31 18:58:04 -08:00
Jason Kulatunga 22f23e20f1 fixing config file -- correct database mount location. 2023-01-26 03:10:36 -08:00
Jason Kulatunga e68900b1bc make sure we handle error if the current user is invalid. 2023-01-15 11:07:41 -08:00
Jason Kulatunga cdf7f83777
UI Tweaks (#32) 2023-01-15 10:25:46 -08:00
Jason Kulatunga f903c38b55
adding support for Composition resource type (Custom grouping) (#20) 2023-01-10 19:23:47 -08:00
Jason Kulatunga ba333fce42 make sure sortTitle and sortDate is stored with every resource in the database. 2023-01-07 09:41:43 -08:00
Jason Kulatunga d0f87c4381 added tests to ensure that implementation stays in sync with interfaces from fasten-sources lib. 2023-01-03 20:50:43 -08:00
Jason Kulatunga efe5f0a0a8
update fasten-sources library. (#16) 2023-01-03 11:11:04 -08:00
Jason Kulatunga 918c856338 adding allow_unsafe_endpoints config option.
adding flattend resource graph.
adding Reciprocal resources
adding a report labs page.
2022-12-21 19:51:02 -08:00
Jason Kulatunga 6fd69575d1
Better Reporting (#12) 2022-12-17 15:10:19 -08:00
Jason Kulatunga f67c369a22 make SyncSourceResources exposed, so it can be used in Cloud version. 2022-12-03 22:33:27 -08:00
Jason Kulatunga e8981ff9bb simplify the Source-patient query to work in Postgres.
Make sure that we can handle auth_username provided by context object (in cloud).
2022-12-03 19:16:32 -08:00
Jason Kulatunga 1a18319c8c tweaks to jwt to be consistent. 2022-12-03 17:15:19 -08:00
Jason Kulatunga 0d57a75890 updating database interface.
Using public database fields.
2022-12-03 12:48:35 -08:00
Jason Kulatunga 492d2a7efb make the SqliteRepository accessible so we can inherit. 2022-12-03 11:08:14 -08:00
Jason Kulatunga e360369706
begin restoring Sqlite functionality. (#11) 2022-12-02 19:40:58 -08:00
Jason Kulatunga c79dc02a1d cleanup unnecessary constants.
adding anthem sourcetypes.
2022-11-08 19:45:05 -08:00
Jason Kulatunga bcb3f58d6e get full name information, make sure its displayed in the UI.
added a white on transparent banner image.
2022-11-03 22:24:30 -07:00
Jason Kulatunga 032946100c
working backend changes to generate JWT tokens during signin and signup. (#9) 2022-11-02 00:12:54 -07:00
Jason Kulatunga f0f37cd738 adding a new configuration for "cloud_sandbox" - used for AWS bucket.
consistent couchdb creds.
removed metadata endpoint and config.
ensure that the couchdb endpoint can be relative or absolute url. added tests for relative vs abs urls.
2022-10-28 19:01:20 -07:00
Jason Kulatunga 947586c71d fixing genreated mock database.
fixing time on toasts.
2022-10-12 19:01:43 -07:00
Jason Kulatunga 4f90a9eedb provide a consistent way to retrun results from WebWorkers.
fixed Username field in login page.
added support for CORS relay
fixed spec files.
2022-10-12 18:47:12 -07:00
Jason Kulatunga d89cb920af remove web.jwt.encryptionkey requirement
when running just CouchDB, make sure fasten services are not present.
added auth interceptor when session has expired.
2022-10-09 12:59:09 -07:00
Jason Kulatunga 8f933e626d cleanup config files and messages. 2022-10-09 12:30:26 -07:00
Jason Kulatunga a7daae9047 working couchdb reverse proxy behind webapp binary. 2022-10-09 09:34:57 -07:00
Jason Kulatunga f2bb44e8be refactor backend to remove all storage logic. Just auth and metadata endpoints now.
Adding docker image for couchdb and addign docker-compose file.
2022-10-08 19:40:33 -07:00
Jason Kulatunga 349b627845 remove the CreateSource endpoint from backend api. 2022-10-06 17:57:31 -07:00
Jason Kulatunga bca11bdf87 adding test for logica. 2022-09-26 20:50:34 -07:00
Jason Kulatunga 631bb9bdcd fixing db path in tests. 2022-09-26 19:50:00 -07:00
Jason Kulatunga d765b03808 added ci. 2022-09-26 18:42:33 -07:00
Jason Kulatunga 61ed115dae fixing breadcrumbs
make sure patient is sent with SourceSummary.
2022-09-25 18:35:36 -07:00
Jason Kulatunga cd6a0fb68f working getResourceBySourceId query and api. 2022-09-25 16:57:30 -07:00
Jason Kulatunga 581d008f09 fix CareEvolution (now configured as a Confidential client)
fixes fastenhealth/docs#10
2022-09-25 16:13:06 -07:00
Jason Kulatunga 61d16cfb55 fixed error where the source ID was not populated whne source is first created, causing next SyncAll command to have invalid source_id values.
Created default SyncAll function (using $everything) and SyncAllByResourceName which can be used as a fallback.

cleaned up DB layer , dont use Model unless Gorm cannot figure out the table. Use pointers consistently.
When syncing resources, store errors in a map, so that all resources get synced before returing errors
2022-09-24 22:18:07 -07:00
Jason Kulatunga 8531a028c9 move sync logic to base FHIR401 class. 2022-09-24 19:30:46 -07:00
Jason Kulatunga 6b5ef7f71e for confidential sources, provide way to pass patient_id back to frontend.
When GetRequest fails, print the body (may have helpful messages)
Make sure we can set the headers used by the GetRequest method per Source (BlueButton doesnt work with application/json+fhir header)

Added BlueButton Client, WIP
2022-09-24 16:46:15 -07:00
Jason Kulatunga 5f2f99a202 handle authorize claim for confidential sources.
update BlueButton image to use Medicare logo.
2022-09-24 14:19:25 -07:00
Jason Kulatunga 4afbd6f834 fixing Athena client.
fixing popup for re-sync.
2022-09-23 23:21:57 -07:00
Jason Kulatunga 564fee9e90 added athena health client.
fixed header.
added a logout/signout function.
2022-09-23 22:42:01 -07:00
Jason Kulatunga 270abdc7af adding a generalpurpose GetResourceBundle method.
adding tests for cerner.
2022-09-22 22:32:20 -07:00
Jason Kulatunga 734dac28f6 fix oauth token refresh.
make sure raw request query params are passed in.
2022-09-21 22:02:55 -07:00
Jason Kulatunga 38dbc465bf added test recordings for logicahealth 2022-09-21 21:23:38 -07:00
Jason Kulatunga 356838fd97 working pagination.
added test recordings for logicahealth
2022-09-21 21:08:21 -07:00
Jason Kulatunga fa09bfafd6 adding docker image.
adding cerner client.
adding new images
using yarn for npm package management.
2022-09-21 18:57:38 -07:00
Jason Kulatunga 342cfa740b marketing updates.
make sure the oauth endpoints are configurable.
2022-09-19 20:21:22 -07:00
Jason Kulatunga 080379eabe adding more services. 2022-09-18 19:46:57 -07:00
Jason Kulatunga cc485a0615 support logica service.
update dashboard.
moved RAW API endpoint outside of the secure block.
2022-09-18 00:36:53 -07:00
Jason Kulatunga 02dcbcc507 working summary api 2022-09-17 10:14:59 -07:00
Jason Kulatunga 7bced71569 adding source summary endpoint
added generic resource list component
added resource-list outlet directive and component.
2022-09-17 00:12:12 -07:00
Jason Kulatunga 5f71891970 adding support for dropzone
adding support for manual  source
2022-09-15 22:26:37 -07:00
Jason Kulatunga 11605aae93 added a getResources and ListResourceFhir API endpoint 2022-09-14 21:56:32 -07:00
Jason Kulatunga 5ae77a0459 adding sourceDetail component.
make sure we 404 if an api endpoint doesn't exist.
2022-09-14 19:59:16 -07:00
Jason Kulatunga f845ae3716 make sure we wait for the token to be stored before reloading the page. 2022-09-14 08:19:28 -07:00
Jason Kulatunga edd8587ab2 make sure that the jwt encryption key is configurable by the end user. 2022-09-13 21:41:10 -04:00
Jason Kulatunga 129d728d34 consistently use source_type / sourceType instead of provider_id providerId.
using LighthouseService instead of PassportService.
2022-09-13 21:15:18 -04:00
Jason Kulatunga 360af5adee renamed usages of providerId to sourceType 2022-09-13 21:02:26 -04:00
Jason Kulatunga 1535f139c1 when making requests to the db, use the current user context. 2022-09-12 21:20:56 -04:00
Jason Kulatunga 87db3cf751 better error messages. 2022-09-12 17:34:03 -04:00
Jason Kulatunga d67650eaf1 make sure we parse the auth header.
make sure the token signing method is one we expect.
2022-09-12 01:03:20 -04:00
Jason Kulatunga 6aa92674bc working authentication check (via token presence in localstorage).
HTTP interceptor to always add token to header.
2022-09-12 00:58:19 -04:00
Jason Kulatunga 1a3dce77cb adding form validation on signup.
adding auth/signin and auth/signup api endpoints.
2022-09-11 23:59:13 -04:00
Jason Kulatunga aefe96c71e added a details page (unwired)
fixed logo
print more error messages.
added aetna client.
2022-09-10 23:12:29 -04:00
Jason Kulatunga e24ff1b8f6 fixing fonts.
tweaking dashboard UI
fixing medical sources component to be dynamically generated via list.
2022-09-10 14:59:13 -04:00
Jason Kulatunga 68eb18e64b update expired access token automatically (using refreshtoken). if updatedSource is returned from client, it must be stored in the DB. 2022-09-08 23:51:46 -07:00
Jason Kulatunga 187d72b085 added mechanism to query resources stored in DB.
Adding raw lookup from source.
2022-09-08 22:53:54 -07:00
Jason Kulatunga c9fc23e3a9 sync all resources on completion. 2022-09-08 21:14:03 -07:00
Jason Kulatunga 96465f23df adding test framework/recordings for client.
Adding generic upsert fuction for models.
2022-09-01 18:54:01 -07:00
Jason Kulatunga caa7315ad9 adding tests.
fixing go generate
updating FHIR models to version with comments.
2022-08-31 19:06:12 -07:00
Jason Kulatunga 79755d8e8b fixing composite unique index (when embedded the index is not unique).
creating a lookup table for retrieving Resource references (and generated UUIDs).
Adding organization processing.
2022-08-30 21:36:40 -07:00
Jason Kulatunga 9902daa75d make sure null is handled correctly. 2022-08-30 20:24:37 -07:00
Jason Kulatunga 05b13677a6 working serialization, storage in DB. 2022-08-30 19:55:27 -07:00
Jason Kulatunga 4c0d3c831d working on Gorm Serialization of structs. 2022-08-30 19:35:01 -07:00
Jason Kulatunga c8441086c8 added ModelBase and OriginBase which can be used as base classes for Gorm Models.
Updated BaseClient - use Source vs ProviderCredentials terminolgy.
Updated CignaClient
Added a raw request api endpoint which can
2022-08-30 19:03:24 -07:00
Jason Kulatunga e6944cb4ee reorganzing functions. 2022-08-28 21:32:13 -07:00
Jason Kulatunga fa714d6bff working hub with versioned fhir clients. 2022-08-28 19:09:39 -07:00
Jason Kulatunga 7a9fdfd1b9 working on Hub for retreiving data from Health Providers. 2022-08-28 10:51:58 -07:00
Jason Kulatunga 93f04802fe working. list provider credentials. 2022-08-27 19:34:48 -07:00
Jason Kulatunga cf24362806 working, on provider credential create, return created object. 2022-08-27 08:39:55 -07:00
Jason Kulatunga cc9c1277e0 when adding new medical provider, disable the button.
Add primary key constraint to th eProviderCredential.
Add ForeignKey/association to the ProviderCredntial.
2022-08-27 08:17:09 -07:00
Jason Kulatunga 41e60cd7d6 working frontend, after token swap store credential in SQLite db. 2022-08-25 21:57:29 -07:00
Jason Kulatunga e657d73e0e working frontend. adding database. 2022-08-25 18:26:29 -07:00
Jason Kulatunga d46f12928e rename 2022-08-22 18:11:00 -07:00
Jason Kulatunga cc9948cd04 Initial commit 2022-08-22 17:51:46 -07:00