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

Docker/Development Containers support #1406

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

rolandknight
Copy link

Added support for Development Containers. If you have docker and VSCode installed, you can open a fully functional environment with one click (click the DevContainers link at the top of the README.md file)

Copy link
Collaborator

@eedrummer eedrummer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for this PR. A one-click method for spinning up a Docker container with Synthea would be cool.

That said, this PR contains a lot of dependencies and files that are unrelated to that goal. Please remove the Makefile, editor configuration file and dependency on hermit. Additional detail is included in comments.

@@ -0,0 +1,29 @@
# EditorConfig is awesome: https://EditorConfig.org
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Personal source code editor configuration files should not be a part of this PR.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I disagree. .editorconfig is intended to ensure any .editorconfig compliant editor (most modern editors/IDEs) comply to the standards used in the repo. otherwise you will spurious indent changes from contributors.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Synthea uses checkstyle for this purpose.


COPY --chown=${USER}:${USER} ./ ./synthea

# install hermit and binary deps
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is unclear to me why you would want to use hermit in a Docker environment. I understand that hermit allows you to specify the exact version of tools that you want to use for development, such as the JDK. That said, you can do the same thing with plain Docker.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you can, but we've used hermit in Dockerfiles for years with great success. hermit provides a simple way to ensure local environment binary tools exactly match docker container tools. and it simplifies installation (no need to look up the exact installation URL and procedure for each tool

@@ -0,0 +1,20 @@
.PHONY: build install visualize
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Synthea uses gradle for its build system. Adding a Makefile replicates gradle functionality and will likely lead to confusion for users.

The project does not incorporate any tool management systems such as hermit, SDKMAN or jabba. Doing so would likely cause issues for users who may not be able to install these types of tools.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the Makefile is a minor convenience mostly for installation. I could replace with an install.sh script

@@ -39,7 +39,7 @@
/**
* This is a rudimentary check of the CCDA Export. It uses XPath expressions to ensure that the
* mandatory sections for the Continuity of Care Document (CCD) (V3) are present as specified in
* HL7 Implementation Guide for CDA® Release 2: Consolidated CDA Templates for Clinical Notes
* HL7 Implementation Guide for CDA(R) Release 2: Consolidated CDA Templates for Clinical Notes
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change is harmless, but also not in any way related to the purpose of the PR.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this was causing a build failure due to this special character. some sort of characterset issue. not sure how to fix so removal was the only option

@@ -55,7 +55,7 @@ public void testCvdModelPatient2() {
Risk Factor Value Points
Age 53 8
Total cholesterol 161 1
HDL 55 1
HDL 55 -1
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same comment as before, it's unclear what this has to do with the PR.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this was causing a build failure due to this special character. some sort of characterset issue. not sure how to fix so removal was the only option

Copy link

@npagare npagare Mar 20, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @rolandknight, will you be fixing this issue and other suggestions made by @eedrummer?
It will be great if your pull request could be merged in the main branch.
I will be happy to be the first user of your contribution.
Thanks

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

Successfully merging this pull request may close these issues.

None yet

3 participants