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

Add multi-module attribute inspection #240

Open
mrnosal opened this issue Mar 20, 2019 · 2 comments
Open

Add multi-module attribute inspection #240

mrnosal opened this issue Mar 20, 2019 · 2 comments
Assignees

Comments

@mrnosal
Copy link
Contributor

mrnosal commented Mar 20, 2019

When writing a module, it can be useful to know what attributes are available from other modules, and to see which modules may set and attribute's value, and which ones may read an attribute's value. An inspector for attributes could give the user a list of attributes available from other modules, and to let them see sample values.

@mrnosal mrnosal self-assigned this Mar 20, 2019
@arscan
Copy link
Member

arscan commented May 17, 2019

This would be a great feature. The plan was to include this in two of the tabs, but due to time constraints we had to cut back on scope. Though these features should fit right in if someone to implement them.

The 'Attributes List' tab would provide a list of all available attributes, so that a user could search through them to get a hint of what data is available to use.

The 'Related Modules' tab would provide a list of all modules that affect and are affected by the current module, including through the use of attributes. That would help users reason about how the current module affects overall system behavior. The use of attributes as global variables is simple and flexible, but will likely result in unintended (or forgotten) interdependencies as the number of modules increases.

@jawalonoski
Copy link
Member

We can generate an attributes.json file in Synthea now, so it could be something we could push/pull directly from the Synthea master build.

If you run ./gradlew attributes it generates the file in the /output folder.

The file has a list of attributes and which modules and states read and write to those attributes.

See synthetichealth/synthea#489

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants