Giter Site home page Giter Site logo

nvidia / clara-dicom-adapter Goto Github PK

View Code? Open in Web Editor NEW
38.0 11.0 14.0 1.64 MB

DICOM Adapter is a component of the Clara Deploy SDK which facilitates integration with DICOM compliant systems, enables ingestion of imaging data, helps triggering of jobs with configurable rules and offers pushing the output of jobs to PACS systems.

Home Page: https://nvidia.github.io/clara-dicom-adapter/

License: Apache License 2.0

Dockerfile 0.24% Shell 1.05% C# 98.62% Mustache 0.10%
dicom medical-imaging healthcare nvidia-clara medical nvidia ai fo-dicom dotnet-core csharp

clara-dicom-adapter's Introduction

NVIDIA

Clara DICOM Adapter

License CI Build codecov

Designed for the Clara Deploy SDK, the Clara DICOM Adapter implements the necessary DICOM services for interoperability between Clara and other medical devices. The Clara DICOM Adapter allows you to send/receive DICOM objects using standard DICOM protocols and interpret standard DICOM part-10 formats.

Additional Resources to Learn More on Clara Deploy

Build

Prerequisites

Development Environment

DICOM Adapter follows the Generic Host design with .NET Core. In order for it to pickup appsettings.Development.json you must export the following environment variable before executing dotnet run:

export DOTNETCORE_ENVIRONMENT=Development

Building Clara DICOM Adapter

src$ dotnet build

Building Clara DICOM Adapter Docker Container

$ ./build.sh

Running Unit Test

src$ ./run-tests-in-docker.sh [--unit|--integration]
# or 
src$ ./run-tests.sh  [--unit|--integration]

Contributing

For guidance on making a contribution to Clara DICOM Adapter, see the contributing guidelines.

Licenses

clara-dicom-adapter's People

Contributors

coco-ben avatar evberrypi avatar igobypenn avatar mocsharp avatar whoisj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

clara-dicom-adapter's Issues

Update Clara install user references to point to Ansible install vs using Bootstrap

Description

Starting in Clara 0.7.3 and mandatory in Clara 0.8.1 the installation/uninstallation method for Clara uses Ansible scriptis and bootstrap is no longer supported in 0.8.1

Steps to reproduce

Please share a clear and concise description of the problem.

  1. In the Setup.md section the recommendation to install Clara reference bootstrap.
    ...

Expected behavior

Expect that it will reference the Ansible script package on NGC or the new link consistent in Clara 0.8.1 documentation

Actual behavior

A clear and concise description of what actually happened.

Ability to attach files to the ACR API for inference

Is your feature request related to a problem? Please describe.
In environments where the EHR systems have limited access due to security concerns, DICOM Adapter cannot access EHR directly to retrieve EHR data that are required for a model to execute.

Describe the solution you'd like
The ACR API can support multipart upload to include the ACR request message plus any additional files (as attachments) that need to be uploaded for inference.

Describe alternatives you've considered

  1. Wrap FHIR data in DICOM Secondary Objects and send both DICOM and EHR in SC to DICOM Adapter via DIMSE.
  2. Manually upload all data (DICOM+EHR) to Platform Payloads API and trigger a new pipeline job.

Additional context
Implementation details to follow.

Unable to create Clara AET with priority "higher"

Description

Exception found in DICOM Adapter log when creating a new clara AE Title with priority set to "higher"

Steps to reproduce

Please share a clear and concise description of the problem.

  1. clara dicom create aet -a test pipeline-test=12345 priority=higher
  2. kubectl logs $(kubectl get po | grep dicom | awk '{print $1}') -f

Expected behavior

Clara AET added without error.

Actual behavior

2020-10-06 23:22:19.065 +00:00 [EROR] [clara-dicom-adapter-654bc8ffcd-plqm2] Nvidia.Clara.DicomAdapter.Services.K8s.CustomResourceWatcher[41] {} Error polling CRD of type dicom.clara.nvidia.com/v1beta2/ClaraAeTitle.
System.TypeLoadException: Could not load type 'Nvidia.Clara.DicomAdapter.Server.Processors.AeTitleJobProcessor' from assembly 'Nvidia.Clara.DicomAdapter, Version=0.7.2.13487, Culture=neutral, PublicKeyToken=null'.
   at System.Reflection.RuntimeAssembly.GetType(QCallAssembly assembly, String name, Boolean throwOnError, Boolean ignoreCase, ObjectHandleOnStack type, ObjectHandleOnStack keepAlive, ObjectHandleOnStack assemblyLoadContext)
   at System.Reflection.RuntimeAssembly.GetType(String name, Boolean throwOnError, Boolean ignoreCase)
   at System.TypeNameParser.ResolveType(Assembly assembly, String[] names, Func`4 typeResolver, Boolean throwOnError, Boolean ignoreCase, StackCrawlMark& stackMark)
   at System.TypeNameParser.ConstructType(Func`2 assemblyResolver, Func`4 typeResolver, Boolean throwOnError, Boolean ignoreCase, StackCrawlMark& stackMark)
   at System.TypeNameParser.GetType(String typeName, Func`2 assemblyResolver, Func`4 typeResolver, Boolean throwOnError, Boolean ignoreCase, StackCrawlMark& stackMark)
   at System.Type.GetType(String typeName, Func`2 assemblyResolver, Func`4 typeResolver, Boolean throwOnError)
   at Nvidia.Clara.DicomAdapter.Common.TypeExtensions.CreateInstance[T](Type interfaceType, IServiceProvider serviceProvider, String typeString, Object[] parameters) in /Clara/src/Services/DicomAdapter/src/Server/Common/TypeExtensions.cs:line 22
   at Nvidia.Clara.DicomAdapter.Services.Scp.ApplicationEntityHandler..ctor(IServiceProvider serviceProvider, ClaraApplicationEntity applicationEntity, String storageRootFullPath, CancellationToken cancellationToken, IFileSystem iFileSystem) in /Clara/src/Services/DicomAdapter/src/Server/Services/Scp/ApplicationEntityHandler.cs:line 77
   at Nvidia.Clara.DicomAdapter.Services.Scp.ApplicationEntityManager.NewHandler(IServiceProvider serviceProvider, ClaraApplicationEntity entity) in /Clara/src/Services/DicomAdapter/src/Server/Services/Scp/ApplicationEntityManager.cs:line 205
   at Nvidia.Clara.DicomAdapter.Services.Scp.ApplicationEntityManager.AddNewAeTitle(ClaraApplicationEntity entity) in /Clara/src/Services/DicomAdapter/src/Server/Services/Scp/ApplicationEntityManager.cs:line 190
   at Nvidia.Clara.DicomAdapter.Services.Scp.ApplicationEntityManager.HandleClaraAeTitleChanges(Object sender, AeTitleUpdatedEventArgs e) in /Clara/src/Services/DicomAdapter/src/Server/Services/Scp/ApplicationEntityManager.cs:line 226
   at Nvidia.Clara.DicomAdapter.Services.K8s.K8sCrdMonitorService.HandleClaraAeTitleEvents(WatchEventType eventType, ClaraApplicationEntityCustomResource item) in /Clara/src/Services/DicomAdapter/src/Server/Services/K8s/K8sCrdMonitorService.cs:line 233
   at Nvidia.Clara.DicomAdapter.Services.K8s.CustomResourceWatcher`2.Poll() in /Clara/src/Services/DicomAdapter/src/Server/Services/K8s/CustomResourceWatcher.cs:line 147

Configuration

  • DICOM Adapter version: 0.7.2, 0.7.3
  • OS and version (distro if applicable): Ubuntu 18.04
  • Kubernetes version (if applicable): v1.15.12
  • Docker version (if applicable): 19.03.13
  • Installation source (NGC, Dockerhub, or something else): NGC

Recreating same Clara AET results in multiple pipeline jobs created

Description

Deleting an AE then recreating it (with same AET) causes multiple jobs to be created.

Steps to reproduce

Please share a clear and concise description of the problem.

  1. clara dicom create aet -a MYAE pipeline-X=123456
  2. clara dicom delete aet -n MYAE
  3. clara dicom create aet -a MYAE pipeline-X=ABCDEFG

Expected behavior

A new job is created with pipeline ABCDEFG

Actual behavior

2 jobs are created, one with 123456 and other one ABCDEFG

Configuration

  • DICOM Adapter version: 0.7.2
  • OS and version (distro if applicable): Ubuntu 18.04
  • Kubernetes version (if applicable): v1.15.12
  • Docker version (if applicable): 19.03.13
  • Installation source (NGC, Dockerhub, or something else): NGC EA

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.