Releases: WorldVistA/VistA-FHIR-Data-Loader
0.6 Final Release (v4 KIDS build)
Changes
- Support for Lab Panel loading (requires VistA Dataloader 3.1)
- Remove all code that called out to un-well-known external URLs (even if it is not actually used) to protect against dead domain names in the future
- Switch from custom JSON encoder to XLFJSON that's is now part of the VistA Kernel
- Remove adjusting decimal places for lab loader as that's now done by the VistA Dataloader automatically
- Update "already loaded message" to contain the file name
- Labs are loaded with Collection Samples for each lab. Previously, we used to guess the collection samples, resulting in strange labs such as WBC in CSF.
- Suppress printing of empty lines from DATA2PCE API (set DIQUIET).
- Check for lab keys before starting to load data
- Add a single file input mode (now default) when importing patients from Synthea
- Add lab rollover call - it's a no-op if it is not needed; otherwise, if taskman is down, the rollover may never happen and you will get lots of messages to the screen from the lab package saying that a rollover is needed
- Various cosmetic output changes to import output (print file name, add line feeds)
- Lab and Lab Panels counters are initialized to zero. No data will now mean zero; previous no data showed as an empty string, which was not friendly
- Don't log vitals when importing labs
- Handle non-numeric values for labs (e.g. 1+, TRACE for Urine results)
- Skip calculated labs (only GFR right now)
- Don't call lab loader if lab is not mapped
- All zwrites commented out for SAC compliance
- Don't re-initialize maps for every panel call; it was not necessary as they were already initialized
- Not finding a panel now counts as a failure. Previously, it was ignored
- Dynamically determine if a lab is part of a panel. If not, don't add it to the panel, but file it individually. The end users may choose to add the lab to a panel; and if they do, the software will automatically file it with its panel.
- Removed unused code in SYNFPAN
- Make Synthea users not login users (no verify code); remove addition to intro message.
- ENV check for install: Make sure you hold XUMGR key
- Map panels:
- 24321-2, 51990-0: BMP
- 24357-6, 24356-8: UA
- 24323-8: CMP
- 50190-8: Iron Group
- 57698-3: Lipid Profile
- 58410-2: CBC
- 34528-0: COAG PROFILE
- 24339-4: BLOOD GASES
- Map lots of additional labs.
- Add check/message on XUMGR key in KIDS
- Apply copyright notices to all files
- Create release notes for v0.6
- If non-numeric value from adjustment is not successful, fail immediately
- Standardize the recording of failing tests
- Support collection samples "Blood Venous", "Platlet Poor Plasma", "Blood Arterial"
- Handle "Presence" value of zero to be "NEG" in VistA.
- Handle "Urine Leukocytes not detected"
Install
Install these KIDS build in order:
- (GT.M/YottaDB only): https://github.com/shabiel/HL-GTM/releases/download/HL-1.6-10001/HL_1p6_10001.KID
- https://github.com/WorldVistA/VistA-DataLoader/releases/download/3.1/VISTA_DATALOADER_3P1.KID
- KIDS build attached to this release.
0.6 T4
Changes since T3:
- If non-numeric value from adjustment is not successful, fail immediately
- Standardize the recording of failing tests
- Support collection samples "Blood Venous", "Platlet Poor Plasma", "Blood Arterial"
- Handle "Presence" value of zero to be "NEG" in VistA.
- Handle "Urine Leukocytes not detected"
- Support PT panel and Venous/Arterial Blood gases (in progress, doesn't fully work yet)
- Support labs: URINE BLOOD, PROTIME, INR, TROPONIN, MAGNESIUM, RDW-CV, COMPUTED CREATININE CLEARANCE, PTT, FERRITIN, PH
Install these KIDS build in order:
- (GT.M/YottaDB only): https://github.com/shabiel/HL-GTM/releases/download/HL-1.6-10001/HL_1p6_10001.KID
- https://github.com/WorldVistA/VistA-DataLoader/releases/download/3.1/VISTA_DATALOADER_3P1.KID
- KIDS build attached to this release.
0.6 T3
0.6 T2
Changes since T1
- Labs are loaded with Collection Samples for each lab. Previously, we used to guess the collection samples, resulting in strange labs such as WBC in CSF.
- Suppress printing of empty lines from DATA2PCE API (set DIQUIET).
- Check for lab keys before starting to load data
- Add a single file input mode (now default) when importing patients from Synthea
- Add lab rollover call - it's a no-op if it is not needed; otherwise, if taskman is down, the rollover may never happen and you will get lots of messages to the screen from the lab package saying that a rollover is needed
- Various cosmetic output changes to import output (print file name, add line feeds)
- Lab and Lab Panels counters are initialized to zero. No data will now mean zero; previous no data showed as an empty string, which was not friendly
- Don't log vitals when importing labs
- Handle non-numeric values for labs (e.g. 1+, TRACE for Urine results)
- Skip calculated labs (only GFR right now)
- Don't call lab loader if lab is not mapped
- All zwrites commented out for SAC compliance
- Don't re-initialize maps for every panel call; it was not necessary as they were already initialized
- Not finding a panel now counts as a failure. Previously, it was ignored
- Dynamically determine if a lab is part of a panel. If not, don't add it to the panel, but file it individually. The end users may choose to add the lab to a panel; and if they do, the software will automatically file it with its panel.
- Removed unused code in SYNFPAN
- Make Synthea users not login users (no verify code); remove addition to intro message.
- ENV check for install: Make sure you hold XUMGR key
- Map additional panels:
- 24356-8: UA
- 24323-8: CMP
- 50190-8: Iron Group
- Map additional labs:
- 89579-7: Troponin
- 2502-3: Iron Saturation
- 2508-7: TIBC
- 2498-4: IRON
- 5799-2: Leukocyte Estrase, Urine
- 5802-4: Nitrite, Urine
- 5821-4: Urine WBC/HPF
- 13945-1: Urine RBC/HPF
- 5787-7: Epith Cells
- 24124-0: Urine Casts
- 8247-9: Urine Mucus
- 5769-5: Urine Bacteria
- 20570-8: HCT
Install
Install these KIDS build in order:
- (GT.M/YottaDB only): https://github.com/shabiel/HL-GTM/releases/download/HL-1.6-10001/HL_1p6_10001.KID
- https://raw.githubusercontent.com/WorldVistA/VistA-DataLoader/refs/heads/labpanel-dev/VistA/VISTA_DATALOADER_3P1T8.KID
KIDS build attached to this release.
v0.6 T1
Changes
- Support for Lab Panel loading (requires VistA Dataloader 3.1)
- Remove all code that called out to un-well-known external URLs (even if it is not actually used) to protect against dead domain names in the future
- Switch from custom JSON encoder to XLFJSON that's is now part of the VistA Kernel
- Remove adjusting decimal places for lab loader as that's now done by the VistA Dataloader automatically
- Update "already loaded message" to contain the file name
Install Instructions
Install these KIDS build in order:
- (GT.M/YottaDB only): https://github.com/shabiel/HL-GTM/releases/download/HL-1.6-10001/HL_1p6_10001.KID
- https://raw.githubusercontent.com/WorldVistA/VistA-DataLoader/refs/heads/labpanel-dev/VistA/VISTA_DATALOADER_3P1T7.KID
- KIDS build attached to this release.
Usage Instructions
See README
FHIR Data Loader v0.5 VA Version
Fixed issues
- Counters: It was found that the same exact counter was used for all items that were
converted to use globals rather than local variables. That counter was
@eval@("status","loaded")
&@eval@("status","errors")
. This caused us to get
bad numbers for each item as they were all effectively combined together. - Save log: Immunizations, Allergies, and Problems were load log was not saved.
Investigation eventually revealed that the save actually did indeed happen, but
it was killed after the save as the save was done in two spots, each with a
kill before it; and the last kill has no data to save. We removed the incorrect
spot. - Disable Allergy Bulletin: This caused each load to pause on FOIA
- Add new loinc code for Blood Pressure 85354-9
- Fix LOINC lookup in Lab file
- Add filename index to quickly identify patients which have already been loaded. Patients which have been loaded before won't be loaded and decoded before quitting; the quitting process is now almost instantaneous.
- Added setting of PSOMAILX for importing meds (new requirement as of PSO*7*753)
Install Instructions
- (GT.M/YottaDB only): https://github.com/shabiel/HL-GTM/releases/download/HL-1.6-10001/HL_1p6_10001.KID
- Dataloader: https://github.com/WorldVistA/VistA-DataLoader/raw/refs/heads/labpanel-dev/VistA/VISTA_DATALOADER_3P1T3.KID
- This KIDS build
Combined FHIR Importer/Exporter 0.4
This release is notable for two features:
- Latest Synthea code (last 3 months) fixed issues with Decimal points. Unfortunately, this broke the lab importer code in a bad way--it goes into an infinite loop. Now, this is kludge fixed by removing all decimals from labs.
- This KIDS build includes the FHIR-on-VistA code, so you need a single build for import and export.
VA Version of VistA FHIR Data Loader
This it the VA Version of the VistA FHIR Data Loader. The differences between the regular version and this version are:
- VA Cache Systems run on limited symbol table space, so this version manages symbol table use conservatively to prevent <STORE> errors.
- There is no downloading of extra code from the internet for MASH components
- There is no HTTPS set-up
- All percent namespaced code has been moved over to non-percent code.
- This code runs completely without the Web Server; and uses menu options for main operations. In the original version, historically, all operations went through the Web Server.
- README has been updated to describe the use of this version without HTTP commands.
T Versions History:
- T1 - Initial
- T2 - Fix Lab and Vitals issues
- T3 - Fix Encounter, Medications, Procedures, CarePlans issues, fix error counters
- T4 - FHIR4 issue with Encounters
- T5 - FHIR4 issue with Allergies; add ETS1.01 dependency; Create user menus; fix lab printing in ISI routines on Cache.
- T6 - Fix counters; problems, immunizations and allergies didn't log when loading; disable allergy bulletin in FOIA; VPR menu.
VistA Synthetic FHIR Loader version 0.31
This release adds a menu system over the 0.3 release for people who are not using or can't use the web server. The menus are:
- [SYNMENU] Synthetic Patients Importer Menu
- [SYN LOAD FILES] Load Patients from Filesystem
- [SYN FHIR JSON] View Ingested Patients' FHIR JSON
- [SYN LOAD LOG] Load Log
VistA Synthetic FHIR Loader version 0.3
This is the third release for this project.
This release provides these highlights:
- FHIR R4 Support. The previous release only supported FHIR DSTU3.
- Entry point
FILE^SYNFHIR(directory)
which will load patients directly from a directory. The only way to add patients previously was via a POST call to the web server. More on this functionality can be found in the README file.
For install instructions, see README.
There are some other non-user facing changes which are listed here:
/showfhir
web service supports?dfn={}
and?icn={}
in addition to the previously supported?ien={}
./vpr
web service supports/vpr/dfn
,/vpr?icn={}
, and/vpr?ien={}
. Previously, it only supported/vpr/dfn
.- Reconciliation with code collisions with the FHIR-On-VistA Project which currently shares the same name and numberspace.
- Removal of SYNDHPMAP and SYNDHPMAPO.
- Careplan Import Improvement
- A dependency of this project, the VistA-DataLoader was updated to the latest upstream version, 3.0. This required a change in how the hospital location was set-up in our software.
- Per discussions with a VA developer using the 0.2 version, change the build type from combined build to multi build.
- Tested against PCE Standardization T5. We have found some bugs dealing with changes in how Provider Narratives are handled. Discussions with the VA developer responsible for PCE Standardization resulted in the decision that we will bundle the fixes in this build.
Trying to learn from mistakes: We released several versions, and it look 17 versions of 0.2 till we reached the final stable version. I didn't make a list of what got changed in each version previously for 0.2. I will do that for 0.3:
T Release | Changes |
---|---|
T1 | Initial 0.3 Release |
T2 | Include a new build in the Multibuild for PCE Standardization T5 build |
T3 | Bug in $$HL^SYNINIT got fixed |
T4 | FHIR 4 change in reason -> reasonCode in encounters was not addressed (#37) |
Instances Tested:
- OSEHRA April 2019 on YottaDB.
- VEHU April 2019 on GT.M.
- VEHU Jan 2019 with a the 0.2 version installed on GT.M.
- FOIA June 2019 on Cache.
- VEHU April 2019 on Cache.
Testing Performed:
- Install of PCE Standardization works correctly
- Install of VistA FHIR Importer (this build) works correctly
- /addpatient POST works correctly on 2 patients.
- FILE^SYNFHIR works correctly on 2 patients.
- /loadstatus?latest=1 works correctly.