Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Apr 05 2019 16:58

    KarlSjostrand on master

    Update README.md (compare)

  • Apr 05 2019 16:55

    KarlSjostrand on master

    Update README.md (compare)

  • Apr 05 2019 16:55

    KarlSjostrand on develop

    Update README.md (compare)

  • Feb 14 2019 21:42

    KarlSjostrand on develop

    Prepare for release 2.0.2 Post release version bump (compare)

  • Feb 14 2019 21:41

    KarlSjostrand on v2.0.2

    (compare)

  • Feb 14 2019 21:40

    KarlSjostrand on master

    Post release version bump Updated deps Prepare for release 2.0.2 (compare)

  • Feb 14 2019 21:38

    KarlSjostrand on develop

    Updated deps (compare)

  • Feb 11 2019 14:57

    KarlSjostrand on v1.6.1

    (compare)

  • Feb 11 2019 14:56

    KarlSjostrand on v1.6.1

    Backport of S3 bulk delete bug … (compare)

  • Feb 11 2019 13:27

    KarlSjostrand on develop

    Prepare for release 2.0.1 Post release version bump (compare)

  • Feb 11 2019 13:10

    KarlSjostrand on v2.0.1

    (compare)

  • Feb 11 2019 13:08

    KarlSjostrand on master

    Post release version bump Added explicit lengths to anon … Fixed bulk delete. Map only cre… and 7 more (compare)

  • Feb 11 2019 12:37

    KarlSjostrand on develop

    Fixed tests (compare)

  • Feb 09 2019 16:08

    KarlSjostrand on develop

    Another fix for flat series ord… (compare)

  • Feb 09 2019 16:01

    KarlSjostrand on develop

    Another fix for flat series ord… (compare)

  • Feb 09 2019 01:21

    KarlSjostrand on develop

    Fix for flatSeries id problem (compare)

  • Feb 08 2019 21:21

    KarlSjostrand on develop

    Updated deps. Fixed foreign key… (compare)

  • Feb 08 2019 14:14

    KarlSjostrand on 328-bulk-delete

    (compare)

  • Feb 08 2019 14:14

    KarlSjostrand on develop

    Fixed bulk delete. Map only cre… Merge pull request #329 from sl… (compare)

  • Feb 08 2019 14:14
    KarlSjostrand closed #329
Ghislain Antony Vaillant
@ghisvail
Thanks for clarifying
Your call for the newcomer tag name :-)
Karl Sjöstrand
@KarlSjostrand
Hmm, I'll add small first and see how we go :smile:
Karl Sjöstrand
@KarlSjostrand
Ok first issue tagged with small.
Michael Kober
@kobmic
@ghisvail Regarding your question about scu/scp and running in docker - I have to admit that I never tested that until now. Easiest way should be docker run -p 5000:5000 -p 11112:11112 or if you want to add multiple scu/scp configs you'd probably define a port range: docker run -p 5000:5000 -p 11110-11119:11110-11119.
Ghislain Antony Vaillant
@ghisvail
I tried using -p 11112:11112 but then the host application (storescu or storescp for instance) complains the port is already bound
Michael Kober
@kobmic
OK, now I see the problem, my scu/scp test was from one sbx to another sbx on different hosts
Ghislain Antony Vaillant
@ghisvail
what would the nominal setup to instantiate a single SCU provider as a Source[ByteString, NotUsed]
I am struggling to extract this logic from the slicebox code base
I'd basically want to call a function or a class where I can pass the SCU parameters (port, aetitle, accepted sop and transfer syntaxes) and get a Source[ByteString, NotUsed] which could then be plugged to an integration pipeline.
Ghislain Antony Vaillant
@ghisvail
Without the overhead of DAO and Actor management
Same issue will happen for the SCP as a Sink[ByteString, Future[Done]]
Ghislain Antony Vaillant
@ghisvail
@KarlSjostrand @kobmic any ideas?
For now, I have got a basic pipeline feeding from a source directory of DICOM files (via Directory.ls from alpakka)
and writing to a target directory
ideally I'd want to replace these source and sink by a rudimentary SCP / SCU
Ghislain Antony Vaillant
@ghisvail
I can't get the tag modification function to work on a simple toy example
I have tried the following:
FileIO.fromPath(Paths.get(path))
    .via(validateFlow)          // Validate the flow as DICOM.
    .via(parseFlow)             // Parse the flow to DICOM parts.
    .via(blacklistFilter(Set(TagPath.fromTag(Tag.PixelData))))
    .via(attributeFlow)
    .via(groupLengthDiscardFilter)
    .via(modifyFlow(
      TagModification.endsWith(TagPath.fromTag(Tag.InstitutionName), _ => updateInstitution, insert = true),
    ))
    .via(fmiGroupLengthFlow)
    .runForeach {
      case DicomAttribute(h, v) if h.tag == Tag.InstitutionName => println(h, v)
      case other => ()
    }
And I am getting:
(DicomHeader (0008,0080) LO length = 8 value length = 0 ByteString(8, 0, -128, 0, 76, 79, 0, 0),List())
where I should be getting the value in updateInstitution
which is defined as val updateInstitution: ByteString = padToEvenLength(ByteString("My Institution"), VR.LO)
Am I doing something wrong here?
Karl Sjöstrand
@KarlSjostrand
@ghisvail Try removing .via(attributeFlow) which groups each header and its value chunks into a single object. The modifyFlow does not modify these combined objects. As a side note, attributeFlow is mostly used as preparation for creating a dcm4che Attributes but I never liked this pattern. This is improved in the dicom-streams repo which will soon be released.