https://github.com/cdcgov/nedss-dataingestion
Data Ingestion for Modernization of NEDSS Project by Enquizit
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (8.8%) to scientific vocabulary
Repository
Data Ingestion for Modernization of NEDSS Project by Enquizit
Basic Info
- Host: GitHub
- Owner: CDCgov
- License: apache-2.0
- Language: Java
- Default Branch: main
- Size: 66.9 MB
Statistics
- Stars: 6
- Watchers: 7
- Forks: 5
- Open Issues: 3
- Releases: 25
Metadata Files
README.md
NEDSS-DataIngestion
Data Ingestion for Modernization of NEDSS Project by Enquizit
Running Application inside Docker
Requirement
- Java 21
Docker
- Gradle
Building application with Docker
- Create env file on the top directory and name it as dataingestion.env. Update the content below with appropriate value ``` NBS_DBSERVER=value
NBS_DBUSER=value
NBS_DBPASSWORD=value
BOOTSTRAP_SERVERS=value
DILOGPATH=value
DIAUTHURI=value
DISFTPENABLED=value
DISFTPHOST=value
DISFTPUSER=value
DISFTPPWD=value
DISFTPELRFILEEXTNS=value
DIPHCRIMPORTER_VERSION=value
DISFTPFILEPATHS=value
KCBOOTSTRAPADMIN_USERNAME=value
KCBOOTSTRAPADMIN_PASSWORD=value
OBRSPLITTINGENABLED=value
HL7BATCHSPLITTING_ENABLED=value ``` - Run "docker compose up -d" - If encounter gradle exception such as missing wrapper then run the following command - "gradle wrapper"
Build project with gradle (no docker)
- ./gradlew :hl7-parser:build
- ./gradlew :data-ingestion-service:build
- ./gradlew build
Local development environment setup
Instructions for setting up a local development environment can be found in the DevSetup.md
Building Docker image for EKS (1)
- If you are on Mac OS Environnment, look into Docker Buildx, so linux image can be built
- This example assume local machine run Mac OS.
Run "docker buildx build --platform linux/amd64 -t <DOCKER_REPOS>/<IMAGE_NAME>:<VERSION> -f data-ingestion-service/Dockerfile . --push"- This command look for Dockerfile inside data-ingestion-service directory and build image from the top level of the project's hierarchy
Deploy Docker image on EKS (2)
- These steps assume EKS cluster already exist and running, and it is being manage by Helm Charts
Run "helm upgrade --install dataingestion-service -f ./dataingestion-service/values-dev.yaml --set jdbc.dbserver='VALUE',jdbc.dbname='VALUE',jdbc.username='VALUE',jdbc.password='VALUE',jdbc.nbs.dbserver='VALUE',jdbc.nbs.dbname='VALUE',jdbc.nbs.username='VALUE',jdbc.nbs.password='VALUE',kafka.cluster='VALUE' dataingestion-service"- What this command does is create new if not service not exist and update existing one if it exists.
- values-dev.yaml: indicate value file, helm charts pull values such as enviroment variable from this file.
- --set jdb.dbserver='VALUE': argument to pass value into enviroment variable, this value is defined in values-dev.yaml.
- --set image.repository='VALUE': image repos, say if using registry other than docker hub. Ex: ECR
- Docker Image need to be specify in values-dev.yaml
- For Helm Chart and EKS configuration, please refer to this NEDSS-Helm
- Other useful commands
-
helm delete <SERVICE-NAME>: delete service -
kubectl exec -it <POD-ID> -- /bin/bash: access pod environment -
kubectl get pods -
kubectl describe pod <POD-ID>: get pod info, useful to inspect configuration and debug -
kubectl logs <POD-ID>
-
Unit Testing and Code Coverage
- Requirement:
- Code coverage must be greater than 90%
- Progress:
- hl7-parser is greater than 80%.
- data-ingestion-service is greater than 80%.
- Excluding classes and files.
- Unused model classes in Jaxb package
- models in this package are generated after built based on given xml definition
- Unused model classes
- AnswerType
- CaseType
- ClinicalInformationType
- CodedType
- CommonQuestionsType
- DiseaseSpecificQuestionsType
- EpidemiologicInformationType
- HeaderType
- HierarchicalDesignationType
- HL7NumericType
- HL7OBXValueType
- HL7SNType
- HL7TMType
- IdentifiersType
- IdentifierType
- InvestigationInformationType
- LabReportCommmenType
- LabReportType
- NameType
- NoteType
- NumericType
- ObjectFactory
- ObservationsType
- ObservationType
- OrganizationParticipantType
- ParticipantsType
- PatientType
- PostalAddressType
- ProviderNameType
- ProviderParticipantType
- ReferenceRangeType
- ReportingInformationType
- SectionHeaderType
- SpecimenType
- SusceptibilityType
- TelephoneType
- TestResultType
- TestsType
- UnstructuredType
- ValuesType
- Configuration classes
- DataSourceConfig
- NbsDataSourceConfig
- OpenAPIConfig
- SecurityConfig
SFTP ENV PARAMS
DI_SFTP_ENABLED=value - value should be 'enabled' or 'disabled'
DI_SFTP_HOST=value - SFTP server host name
DI_SFTP_USER=value
DI_SFTP_PWD=value
DI_SFTP_ELR_FILE_EXTNS=value - Comma separted list of file extensions (ex: txt,hl7)
DI_PHCR_IMPORTER_VERSION=value - 1 for classic phcrImporter batch job, 2 for RTI
DI_SFTP_FILEPATHS=value - Comma separted list of file extensions (ex: /ELRFiles,/ELRFiles/lab-1,/ELRFiles/lab-2)
Owner
- Name: Centers for Disease Control and Prevention
- Login: CDCgov
- Kind: organization
- Email: data@cdc.gov
- Location: Atlanta, GA
- Website: http://open.cdc.gov/
- Twitter: CDCgov
- Repositories: 114
- Profile: https://github.com/CDCgov
CDC's collaborative software projects to protect America from health, safety, and security threats, both foreign and in the U.S.
Committers
Last synced: about 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| Duc Nguyen | 1****1 | 134 |
| Michael Peels | 1****s | 63 |
| Selvarasu Sathiah | 1****h | 51 |
| Ragul Shanmugam | 1****t | 30 |
| Sheham Izat | 1****t | 23 |
| Bala Puli | 1****i | 18 |
| Ramesh Addanki | 8****4 | 14 |
| Snehaa Shri Hari | 1****l | 10 |
| Alaap Bharadwaj | 1****j | 9 |
| Ramesh Addanki | 1****q | 9 |
| Kavitha Potluri | 1****i | 4 |
| Serban Zamfir | 7****r | 2 |
| Stefan Deusch | s****h@g****m | 2 |
| DucSandBox | d****x@D****l | 2 |
| Anand Loganathan | 1****t | 1 |
Issues and Pull Requests
Last synced: 11 months ago
All Time
- Total issues: 4
- Total pull requests: 588
- Average time to close issues: 3 days
- Average time to close pull requests: 5 days
- Total issue authors: 3
- Total pull request authors: 16
- Average comments per issue: 1.25
- Average comments per pull request: 0.79
- Merged pull requests: 444
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 4
- Pull requests: 390
- Average time to close issues: 3 days
- Average time to close pull requests: 4 days
- Issue authors: 3
- Pull request authors: 9
- Average comments per issue: 1.25
- Average comments per pull request: 0.8
- Merged pull requests: 284
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- mpeels (2)
- ndduc01 (1)
- sizatenquizit (1)
Pull Request Authors
- ndduc01 (196)
- mpeels (118)
- ssathiah (76)
- sizatenquizit (52)
- rshanmugam-enquizit (47)
- snehaasjournal (33)
- raddanki-eq (18)
- bspuli (16)
- ndduc-bot (11)
- alaapbharadwaj (9)
- szamfir (4)
- kavitha-potluri (3)
- ndduc (2)
- alog-enquizit (1)
- snehaashrihari (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- openjdk 18 build
- org.projectlombok:lombok * compileOnly
- ca.uhn.hapi.fhir:hapi-fhir-structures-r4 6.1.3 implementation
- ca.uhn.hapi:hapi-base 2.3 implementation
- ca.uhn.hapi:hapi-structures-v251 2.3 implementation
- io.github.linuxforhealth:hl7v2-fhir-converter 1.0.19 implementation
- org.springframework.boot:spring-boot-starter-data-jpa * implementation
- org.springframework.boot:spring-boot-starter-data-mongodb * implementation
- org.springframework.boot:spring-boot-starter-web * implementation
- org.junit.jupiter:junit-jupiter * testImplementation
- org.springframework.boot:spring-boot-starter-test * testImplementation
- org.testcontainers:testcontainers 1.17.3 testImplementation
- actions/checkout v3 composite
- aws-actions/amazon-ecr-login v1 composite
- aws-actions/configure-aws-credentials v1 composite
- actions/cache v2 composite
- actions/checkout v2 composite
- actions/setup-java v1 composite
- actions/upload-artifact v2 composite
- actions/cache v3 composite
- actions/checkout v3 composite
- actions/setup-java v3 composite
- confluentinc/cp-kafka 7.3.0
- confluentinc/cp-zookeeper 7.3.0
- org.apache.commons:commons-math3 3.6.1 api
- org.projectlombok:lombok 1.18.26 compileOnly
- ca.uhn.hapi:hapi-base 2.3 implementation
- ca.uhn.hapi:hapi-structures-v231 2.3 implementation
- ca.uhn.hapi:hapi-structures-v251 2.3 implementation
- com.google.code.gson:gson 2.10.1 implementation
- com.google.guava:guava 31.1-jre implementation
- io.github.linuxforhealth:hl7v2-fhir-converter 1.0.19 implementation
- org.junit.jupiter:junit-jupiter 5.9.1 testImplementation
- org.slf4j:slf4j-api 1.7.32 implementation
- org.slf4j:slf4j-simple 1.7.32 implementation
- com.github.javafaker:javafaker 1.0.2 testImplementation
- com.intuit.karate:karate-junit5 ${karateVersion} testImplementation
- org.junit.jupiter:junit-jupiter * testImplementation
- jakarta.xml.bind:jakarta.xml.bind-api 4.0.0 implementation
- org.glassfish.jaxb:jaxb-runtime 4.0.2 runtimeOnly