diff --git a/src/main/scala/se/nimsa/dicom/streams/DicomFlows.scala b/src/main/scala/se/nimsa/dicom/streams/DicomFlows.scala index f960dce..0de2819 100644 --- a/src/main/scala/se/nimsa/dicom/streams/DicomFlows.scala +++ b/src/main/scala/se/nimsa/dicom/streams/DicomFlows.scala @@ -372,7 +372,7 @@ object DicomFlows { override def onSequenceDelimitation(part: SequenceDelimitationPart): List[DicomPart] = super.onSequenceDelimitation(part) ::: ( if (part.bytes.isEmpty) - SequenceDelimitationPart(part.bigEndian, itemDelimitation(part.bigEndian)) :: Nil + SequenceDelimitationPart(part.bigEndian, sequenceDelimitation(part.bigEndian)) :: Nil else Nil) diff --git a/src/main/scala/se/nimsa/dicom/streams/ModifyFlow.scala b/src/main/scala/se/nimsa/dicom/streams/ModifyFlow.scala index 842241f..ca2f80c 100644 --- a/src/main/scala/se/nimsa/dicom/streams/ModifyFlow.scala +++ b/src/main/scala/se/nimsa/dicom/streams/ModifyFlow.scala @@ -19,10 +19,9 @@ package se.nimsa.dicom.streams import akka.NotUsed import akka.stream.scaladsl.Flow import akka.util.ByteString -import se.nimsa.dicom.data.isFileMetaInformation import se.nimsa.dicom.data.DicomParts._ import se.nimsa.dicom.data.TagPath.{EmptyTagPath, TagPathTag} -import se.nimsa.dicom.data.{Dictionary, TagPath, VR} +import se.nimsa.dicom.data.{Dictionary, TagPath, VR, isFileMetaInformation} object ModifyFlow { diff --git a/src/test/scala/se/nimsa/dicom/streams/ModifyFlowTest.scala b/src/test/scala/se/nimsa/dicom/streams/ModifyFlowTest.scala index 50aba56..0f7182d 100644 --- a/src/test/scala/se/nimsa/dicom/streams/ModifyFlowTest.scala +++ b/src/test/scala/se/nimsa/dicom/streams/ModifyFlowTest.scala @@ -430,4 +430,23 @@ class ModifyFlowTest extends TestKit(ActorSystem("ModifyFlowSpec")) with FlatSpe .expectValueChunk(mikeBytes) .expectDicomComplete() } + + it should "not emit sequence and item delimiters for data with explicit length sequences and items" in { + val bytes = patientNameJohnDoe() ++ + sequence(Tag.DerivationCodeSequence, 24) ++ + item(16) ++ studyDate() + + val source = Source.single(bytes) + .via(parseFlow) + .via(modifyFlow()) + + source.runWith(TestSink.probe[DicomPart]) + .expectHeader(Tag.PatientName) + .expectValueChunk() + .expectSequence(Tag.DerivationCodeSequence, 24) + .expectItem(1, 16) + .expectHeader(Tag.StudyDate) + .expectValueChunk() + .expectDicomComplete() + } }