Git Product home page Git Product logo

fhir-creator's Introduction

Fhir-Creator

Visit the project at https://fhir-creator.com

Features

  • All data is stored in the browser, no backend server for data storage
  • Create FHIR Resources from custom or base profiles
  • Upload and edit FHIR Resources
  • Upload and edit FHIR Bundles
  • Export Resources and Bundles

Build

Clone the repo, install all dependencies and run the dev server.

yarn install
yarn run dev

The app should be available at http://localhost:3000

Bugs

If you encounter any bugs or issues while using FHIR Creator, please report them on the Issues page. Provide detailed information about the problem, including steps to reproduce it, expected behavior, and any error messages or logs.

Contributing

Contributions are welcome! If you have any ideas, suggestions, bug reports, or feature requests, please open an issue or submit a pull request. Make sure to follow the project's code of conduct.

Take a look at our Roadmap

fhir-creator's People

Contributors

trostalski avatar itisgreg avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

paulobunga

fhir-creator's Issues

DateTime Time

When filling out a dateTime field there is only a calendar selection for the date part but no clock for the time part.

Expected behaviour:
Both a date and a time select.

Import Profile not working

When using the Import Button and selecting Profile and uploading a profile the error message file is not a bundle appears.
When using the Upload Profile button it works.

Expected Behaviour:
the Import Button works for profiles in the same way as the Upload Profile buttons

Hidden elements can not be edited

By default only some of the elements are shown when selecting a profile. A number is hidden by default and can be made visible by clicking checking the respective box on the right sidebar.
When checking the respective Box the element is shown as expected. When attempting to insert input into the element the element disappears again. When checking the box again, no input is present.

Example:
Condition profile, text element

Expected Behaviour:
When checked in the right sidebar the element appears. When being edited the element does not disappear.

Chrome error

On Chrome on Ubuntu fhir-creator.com throws following Error:
image

Constraint check

For each resource it need to be checked wether the constraints of the respective structure definition are met. This should be done using fhir path.

DateTime Time Selection

at the moment for DateTime Elements you can only select the Date with the calendar, there is no input field that let's you specify time.

ResourceList Selection combines

When clicking a resource in the resource list the resource gets loaded in the editor to be edited. When having different resources of the same resourceType in the resource list and clicking them one after the other, the content of the different resources get combined in the editor:

E.g. Two Condition resources, one with clinical status element and one with verification status element. After clicking the first resource and then the second, in the editor the resource has the clinical status element of the first resource. After clicking the first resource again, the first resource has the verification status element of the second resource.

Bundle editor

At the moment Bundle can only be uploaded or exported. Though they cannot be created and stored for later use. This might be a desirable feature.

In the bundle tab a "Create from resources button"

-> dialog window like for export
-> select resources
-> store as bundle

Number input field

Number input field only offers arrow Up/arrow down editing of the number. No free typing. Example:
Profile: MII_PR_Medikation

  • dosage
  • maxDosePerPeriod

CSV export improvements

  • Implement Condition statement to improve fhir element selection
  • Evaluate whether its enough to only allow a single target resource type
  • Enable other indeces other than patient id

Reference

Reference atm are handled simply as string inputs which gives an error when validating.

They should look like this:

"subject": {
    "reference": "Patient/12345"
},

Mark edited elements

When an element was edited it should be visible thereafter. Like colour coded like now when you have cardinality errors. Maybe a nice green, or try this beauty #dfss334

Slicing

Slicing operators should not be contained in the FHIR resource.

delete Resources in Store

It is kinda time consuming to delete a larger amount of resources from the store as each time it request confirmation that you really want to delete it. Possible solutions:

  • delete all button
  • selection of resources and then delete all selected

Consistent Interface

Lets pick some colours (primary, secondary, etc. ...) and make the appearance consistent with the HNS website.

Editing of added resources

After adding a resource you can not edit it anymore. This should be made possible. It would also be desirable to work on several resources at the same time. So a tab context would be in order that lets you jump in between resources.

Number input field

Number input field only offers arrow Up/arrow down editing of the number. No free typing. Example:
Profile: MII_PR_Medikation

  • dosage
  • maxDosePerPeriod

Slices display path

Primitive slices display root. in their path, this should not be case.
Furthermore the whole path is displayed in each nested element. Only the name of the last member of the path should be displayed

ResourcePathRepr

Atm ResourcePathRepr are stored in the database parallel to the resource. This is a source for errors as there is no single origin of truth. Change implementation so that only resources are stored and PathRepr is generated when neccessary.

fhirpath not implemented

Found another fhirpath expression that is not implemented in fhirpath.js:

htmlChecks()

This expression is used in the evaluation of text.div elements.

For now I just caught the error and am throwing a window.confirm to notify the user. Going to open an issue at fhirpath.js

ToDos for valueset handling

  • filter codes valuesets and codesystem
  • exclude codes valuesets
  • expandion valusets
  • Snomed resovler -> alsofor base valueset such as severity

Test created profiles

Create a FHIR-resource for the MII condition resource with meaningless data.
Upload the MII condition profile to a public server.
Upload the created resource to the public server.
The upload should not fail.

values not saved after collapsing

By default all elements are collapsed when opening a new profile for resource creation. When decollapsing an element, filling out values, collapsing again and then decollapsing, the values filled out are gone.

Expected Behaviour: The values are still there.

Selection before export

When you click the export button all resources that got added up to that point are being exported. Before export starts there should be a dialouge window that gives you the opportunity to deselct certain resources for export.

Clear button

When using the clear button the whole profile is being unloaded, meaning the form disappears.
From intuition, I believe it should rather clear the input fields.

DateTime Time Selection

at the moment for DateTime Elements you can only select the Date with the calendar, there is no input field that let's you specify time.

Next Todos

  • Create MVP

Criteria for MVP:

  • export of valid resource.json
  • each element defined in the profile should be editable
  • differential handling needs to be solved
  • cardinalities defined in the profile need to be met
  • handle references
  • handle [x] e.g. at onset

Constraint `div`error.

This error is currently thrown from the constraint checking, when the text.div field is filled out.

Error: line: 1; column: 15; message: mismatched input 'div' expecting {'is', 'as', 'in', 'contains', '$this', '$index', '$total', IDENTIFIER, DELIMITEDIDENTIFIER}
line: 1; column: 18; message: extraneous input '.' expecting {'+', '-', 'is', 'as', 'in', 'contains', '(', '{', 'true', 'false', '%', '$this', '$index', '$total', DATETIME, TIME, IDENTIFIER, DELIMITEDIDENTIFIER, STRING, NUMBER}

This fhirpath expression seems to cause the error when being evaluated by fhirpath.js. The backticks are probably read as template strings and the .exists() seems not to be passed to the evaluate function or something.

"text.div.exists()"

Id Field is missing

For the MII condition profile the id field is missing when displayed in the GUI.

Additional Creation "Modes"

Modes

Besides the current "Mode" of creating a new resource (fill in a value for every element), we should consider adding additional modes.

Example

Bulk Mode: For each element create an array of possible values associated with a probability. Specify how many Resources you want to generate. When submitted, the resources are created with the values assigned randomly according to the specidied probabilities. -> This would improve creating a large batch of resources.

Compact Mode: Only show the most "relevant" elements for the specific resource. This would simplify resource creation in general.

export Resources always bundled

When exporting a resource and unchecking the "Bundle Output" option, the resource is bundled nevertheless.

Expected Behaviour:
Resource is exported without bundle overhead.

Constraint check

For each resource it need to be checked wether the constraints of the respective structure definition are met. This should be done using fhir path.

Code Refactoring

At the moment all the logic is in index.ts. This is not very readable

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.