https://github.com/cdcgov/nedss-dataingestion

Data Ingestion for Modernization of NEDSS Project by Enquizit

https://github.com/cdcgov/nedss-dataingestion

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
Last synced: 11 months ago · JSON representation

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
Created over 3 years ago · Last pushed 11 months ago
Metadata Files
Readme License

README.md

NEDSS-DataIngestion

Quality Gate Status

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

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

All Time
  • Total Commits: 372
  • Total Committers: 15
  • Avg Commits per committer: 24.8
  • Development Distribution Score (DDS): 0.64
Past Year
  • Commits: 204
  • Committers: 8
  • Avg Commits per committer: 25.5
  • Development Distribution Score (DDS): 0.627
Top Committers
Name Email 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

report-service/Dockerfile docker
  • openjdk 18 build
report-service/build.gradle maven
  • 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
.github/workflows/Build-data-ingestion-service.yaml actions
  • actions/checkout v3 composite
  • aws-actions/amazon-ecr-login v1 composite
  • aws-actions/configure-aws-credentials v1 composite
.github/workflows/karate-tests.yaml actions
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/setup-java v1 composite
  • actions/upload-artifact v2 composite
.github/workflows/sonar.yaml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/setup-java v3 composite
docker-compose.yml docker
  • confluentinc/cp-kafka 7.3.0
  • confluentinc/cp-zookeeper 7.3.0
build.gradle maven
hl7-parser/build.gradle maven
  • 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
karatetest/build.gradle maven
  • 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
phdc-xsd-jaxb/build.gradle maven
  • jakarta.xml.bind:jakarta.xml.bind-api 4.0.0 implementation
  • org.glassfish.jaxb:jaxb-runtime 4.0.2 runtimeOnly
coverage-report/build.gradle maven