health-validator / hammer Goto Github PK
View Code? Open in Web Editor NEWSimple, reliable FHIR validator
Home Page: https://hammer.healthcare
License: MIT License
Simple, reliable FHIR validator
Home Page: https://hammer.healthcare
License: MIT License
We need Hammer to have the ability to self-update in an easy way for the user on all 3 platforms - otherwise, people will be running versions that are way out of date.
Describe the bug
QML signal for ValidationReport.WarningCount is never raised - only QML signal for ValidationReport.ErrorsCount. This makes any bindings that depend on WarningCount not work. Read-access seems to be fine, though.
To Reproduce
Expected behavior
WarningCount should be updated correctly.
Additional context
Maybe the issue lies in it being a nested property?
Describe the bug
When you use the "Load it here" field instead of opening a file, and paste content in it, the Java validator errors with an exception:
"Exception in thread ""main"" java.lang.Exception: Unable to find/resolve/read -ig "
To Reproduce
Steps to reproduce the behavior:
Desktop (please complete the following information):
Additional context
Since I pasted the content, there is no scope, and that might be the problem for the validator.
Given a resource, Hammer should try and figure out which profiles is it valid against.
Is your feature request related to a problem? Please describe.
https://github.com/thejoeejoee/IVS-VUT-BIT-2016-2017 looks pretty nice with the Roboto font - perhaps it'd look great for Hammer as well? Sometimes a simple font change can make quite a difference.
It would be cool if Hammer could be kicked off using command line options to set the scope, load the instance and/or start the validation. I think it would help with repeat operations, for example when validating the same profile over a stretch of time, or when always using the same scope,
Describe the bug
Dragging a file into Hammer works under Linux but not under Windows.
To Reproduce
Drag a file from explorer into Hammer - see blocked icon.
Expected behavior
An option to copy/move/etc the file should be given, and once you let go of the file, it should be loaded.
Desktop (please complete the following information):
Additional context
See qmlnet/qmlnet#142 for the issue in Qml.Net.
Is your feature request related to a problem? Please describe.
Consequent .NET validation is much quicker because the specification is already loaded - but this isn't the case for Java, which has to load the specification every time.
Describe the solution you'd like
Perhaps some long-running Java process and do IPC to it? Not sure on the design yet - ideas welcome.
Additional context
Any resulting solution needs to work on Windows, macOS, and Linux.
Is your feature request related to a problem? Please describe.
Right now the errors can be copied to CSV format. If you want to communicate with coworkers or report the errors on the command line, it would be nice to have a more readable format.
Describe the solution you'd like
Output of total status and individual errors in a human-readable format, eg. Markdown.
Is your feature request related to a problem? Please describe.
Hammer should ignore the terminology server option when the machine is offline, because the validation will always fail / be wrong in that case.
Describe the solution you'd like
Automatic detection that the validation is running offline, some kind of visual warning to the user that terminology is disabled, and no terminology server being passed as an argument to validation.
Additional context
C# doesn't have a cross-platform API for detecting this as far as I know. Qt might.
It would be cool if the text window would offer syntax highlighting for XML/JSON.
Describe the bug
Settings allow you to to disable error/warning/info messages entirely which means that you'll then simply get a blank status box and no messages. Doesn't look very good.
To Reproduce
Turn off error, warning, informational messages and hit Validate
.
Expected behavior
Settings should not allow you to disable all types - at least one should be on.
Describe the bug
Hammer currently doesn't set any application icon in the list of all applications the user has open.
Is your feature request related to a problem? Please describe.
A logo for Hammer! Right now I've just used the Unicode icon.
Describe the solution you'd like
A clean, modern logo for Hammer.
Describe the bug
Warning and info message reporting can be disabled in Hammer. However, the CSV and Markdown reports always include the complete list of errors, warnings and info messages. These reports should only include what the user is interested in.
When pressing the 'Validate' button, the app kicks off both validators and switches to the results page, where you can press the 'back' button. However, the validators keep on running, and when you press 'Validate' again, they might interfere with the newly created instances.
So the validators should probably be killed when pressing the 'back' button, or alternatively a check should be done if there are still old validators running when pressing the 'Validate' button.
Is your feature request related to a problem? Please describe.
You can tell Hammer if you want to show errors, warnings and/or info messages. However, the result boxes always tell you the number of warnings and errors regardless of these settings.
Describe the solution you'd like
The result boxes should show the number of errors, warnings and messages if they are requested, or hide each of these components if they are not requested.
Describe the bug
.NET validation can't find the base specification in the deployed zip
To Reproduce
Steps to reproduce the behavior:
Expected behavior
.NET validation should be able to find the base spec just fine.
Screenshots
https://files.slack.com/files-pri/TJH5CQH4Z-FKBRW52B0/image.png
Desktop (please complete the following information):
Additional context
Add any other context about the problem here.
copying one single error message from a list doesn't work.
Is your feature request related to a problem? Please describe.
Torinox only supports a local folder as the validation scope - having support for packages as well would be great.
Describe the solution you'd like
Additional context
Need @mharthoorn's package library to be released for this first.
Is your feature request related to a problem? Please describe.
It would be nice to have the standard right-click menu with cut/copy/paste actions as well as the standard shortcuts for them.
Describe the solution you'd like
A text editor like any other.
Describe alternatives you've considered
QML doesn't seem to have any standard components you can plug in.
Is your feature request related to a problem? Please describe.
When you validate a resource, and click on an error, the editor window opens. This is a nice feature. However, you cannot go back anymore - only re-validate - and therefore the option to open another resource is gone, because that is Back --> Open.
Describe the solution you'd like
I would like to have a button that makes it possible to open another resource. This could be a button to go back so you have the Open button again, or an Open button on the validation page.
Describe alternatives you've considered
The Ctrl-O shortcut does work, of course, but is not obvious to all.
Additional context
In order to limit the number of buttons on the validation page, I would also find it acceptable to go to the Settings, and being able to view the "Open file/Load it here" dialog on that page again, even though it is not really a setting. Or, alternatively, replacing the Settings button with the option to go back, although less desirable, since you might want to change the scope during validation.
Is your feature request related to a problem? Please describe.
Hammer should have a suite of tests to ensure we don't break functionality and make it more welcoming for new contributors to make changes.
Describe the solution you'd like
Not sure what testing a QML application involved.
Describe alternatives you've considered
Qt Test?
There is Squish, but that is too expensive.
Both Rene and Ward have issues launching the app - the process is there, but it doesn't do anything.
It seems to be related to downloading the Qml.Net binaries.
Describe the bug
Hammer crashes without an error after validating a resource. Looks like it is caused by the JAVA validator because .NET works.
To Reproduce
Steps to reproduce the behavior:
Describe the bug
When you restart validation before the existing Java validation is finished, a new Java process is spawned without stopping the existing one. If you hit Validate shortcut Ctrl+D
very many times in a row, you can spawn enough Java validators to use up all of the computers memory and thus lock it up.
To Reproduce
Steps to reproduce the behavior:
Ctrl+D
ten times quicklyExpected behavior
Previous Java validation should be cancelled right away before a new one is started.
When the scope is a file location that contains a space in the name, Hammer defaults back to the desktop folder if you want to open a new instance, instead of using the scope.
Steps:
Is your feature request related to a problem? Please describe.
It would be great to see where the errors are just by being able to look at the Instance Editor
Describe the solution you'd like
Marker(s) for the line on the right side of the editor - so scrolling the editor will show you where the issues lie.
Hovering over the line marker should explain the issues that are there.
Describe alternatives you've considered
An in-line annotation for the issue, so you don't have to hover your mouse over anything?
Describe the bug
problem with the Java validator giving errors when it finds resources/profiles in my folder that are not valid (like my R4 ObservationDefinition that I have in my test folder).
To Reproduce
https://transfer.sh/11gbrt/mirjamstestproject.zip - just load the adam file, then see the Java errors appear
Expected behavior
Unrelated resources should not be considered.
Additional context
This might be an issue in how the Java validator handles issues
Is your feature request related to a problem? Please describe.
You can configure Hammer in several ways, but these settings are not re-used when you open the app again.
Describe the solution you'd like
Save the settings and load them when you open the app again.
Describe the bug
Clicking the Choose resource
button on Windows will hang the validator.
Expected behavior
A filepicker should open.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Additional context
Add any other context about the problem here.
Describe the bug
Loading an instance file for the first time on Windows is pretty slow - freezes Hammer for a while.
To Reproduce
Steps to reproduce the behavior:
Choose an instance
Open
Expected behavior
The file should load instantly like on Linux.
Desktop (please complete the following information):
Additional context
Stdout says: QWindowsNativeFileDialogBase::shellItem: SHCreateItemFromParsingName()) failed (The network name cannot be found.
Describe the bug
When the .Net validator finishes, the messages are shown and the results box turns green. However, the number of warnings and errors is only shown when the Java validator finishes.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The left box should show the count of errors and warnings before the Java validator finishes.
Desktop (please complete the following information):
Describe the bug
When you have clicked on a validation error, and the editor opens, it reappears when you've gone back to the resource text, or have opened another resource and validate that.
The button at the bottom shows "Back", but it does not work to go back, instead doing a re-validate.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
I expected a 'clean' validation screen in step 4, and the 'Back' button to go back to the resource instead of performing the 're-validate'.
Desktop (please complete the following information):
Once #106 is done, tests should be run automatically on build.
Is your feature request related to a problem? Please describe.
I'd like to be able to choose an external terminology server to validate with.
Describe the solution you'd like
An option in settings that allows a terminology server to be set.
Once we have the resulting OperationOutcome
, we can run the FHIRPath on our instance and use IPositionInfo in .net to find line numbers.
Describe the bug
The main window isn't scrollable with a resource that doesn't fit.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
You should be able to scroll it
Additional context
It seems to happen because of reparenting. See this really long thread which has some solutioons but all with their unique drawbacks: https://forum.qt.io/topic/103100/how-to-get-scrollview-to-scroll-when-children-are-reparented-into-it/26
It would be great to give Hammer a whole folder of resource(s) to validate all at once, instead of having to feed them through one by one.
How do you configure Hammer to find, use, or ignore profiles and extensions?
Tested it with an R4 Patient Bundle from Synthea using the latest Mac OS X download.
I expected it to issue warnings or something about extensions it didn't recognize, rather than erroring, or to recognize US-Core by default (yes, I know, how very US-centric of me).
Describe the bug
Running the app gives me this error:
ERROR: No native Menu implementation available.
Qt Labs Platform requires Qt Widgets on this setup.
Add 'QT += widgets' to .pro and create QApplication in main().
App does start and seems to run fine, but gives a similar error when trying to open a file:
ERROR: No native FileDialog implementation available.
Qt Labs Platform requires Qt Widgets on this setup.
Add 'QT += widgets' to .pro and create QApplication in main().
No file dialog appears.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
No errors and working file dialog
Desktop:
Describe the bug
It looks like fatal errors are no longer shown in the list.
To Reproduce
Steps to reproduce the behavior:
Describe the solution you'd like
Double-click on Hammer to launch it, instead of dotnet Hammer.dll
Describe alternatives you've considered
AppImage for Linux and .dmg's for macOS.
Is your feature request related to a problem? Please describe.
The current plain white background is boring. Perhaps a gradient or a striped pattern would look nicer?
Describe the solution you'd like
Something that looks less boring and more pleasing.
Hammer should support validating resources from all currently supported FHIR versions - DSTU2, STU3, and R4.
When you have loaded a resource, and would like to validate another one, it is not intuitive how to do that.
Please add a button to be able to load a different resource, or a message explaining the Ctrl-A backspace method that is already available.
Is your feature request related to a problem? Please describe.
The Java validator is released at a fast pace - offer a way to update the validator jar from within Hammer.
Describe the solution you'd like
Not entirely sure - perhaps auto-download the latest or simply offer a notification with an easy button that does the whole job.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.