how c-move and c-store works ? - DICOM

This is a discussion on how c-move and c-store works ? - DICOM ; Hello, i'll tell you what i know firstly. then i'll ask my questions.. All the things that i understand from C-Move service class Client wants to get a file from server. It issues C-Move service to Server. This C-Move service ...

+ Reply to Thread
Results 1 to 7 of 7

Thread: how c-move and c-store works ?

  1. how c-move and c-store works ?

    Hello, i'll tell you what i know firstly. then i'll ask my questions..

    All the things that i understand from C-Move service class

    Client wants to get a file from server. It issues C-Move service to
    Server. This C-Move service holds informatioon . In its command set,
    Move Destination field will be AE of the server. Because server will
    start to perform C-Store Service. Server prepares a C-Move Rsp to
    Client and start a new association to client. Client become a SCP. To
    do that, client accept requests from its port 104..
    Server start to send store-rq packets using this channel.. Client
    optionally send C-Move response which holds number of c-store
    suboperation status via association which established at the beginning.


    Client get a file from server with this way.

    My first question : So how a client send a file to the server? Will it
    use C-Store service directly ? If so, how can it tell to the server
    about the numbers of c-store status ---which holds by cmove response---
    ..

    My second question: In the documents that i read so far -if i dont
    understand wrongly-, it can get a file from another client. Should all
    clients listen to their port 104 for this. Should all clients act as a
    server everytime ?

    Regards..
    Atila Gunes


  2. Re: how c-move and c-store works ?

    Hi

    > My first question : So how a client send a file to the server? Will it
    > use C-Store service directly ? If so, how can it tell to the server
    > about the numbers of c-store status ---which holds by cmove response---


    Client requests data to server in CMove. So server will transfer file
    to the client. Server will use CStore as a sub operation for CMove. I
    didnt get your next question about number of CStore status. Depending
    upon the number of files transfered its status will be communicated
    through CStore communication only and as this whole process is a
    suboperation of CMove at the end a CMOve status responce will be send.

    > My second question: In the documents that i read so far -if i dont
    > understand wrongly-, it can get a file from another client. Should all
    > clients listen to their port 104 for this. Should all clients act as a
    > server everytime ?


    As you said in CMove command an AETitle of Move destination is
    mentioned. This AETitle should be configured on server side (IP,Port
    etc) so that server knows where to send data.

    Regards,
    Prashant
    Atila Gunes wrote:
    > Hello, i'll tell you what i know firstly. then i'll ask my questions..
    >
    > All the things that i understand from C-Move service class
    >
    > Client wants to get a file from server. It issues C-Move service to
    > Server. This C-Move service holds informatioon . In its command set,
    > Move Destination field will be AE of the server. Because server will
    > start to perform C-Store Service. Server prepares a C-Move Rsp to
    > Client and start a new association to client. Client become a SCP. To
    > do that, client accept requests from its port 104..
    > Server start to send store-rq packets using this channel.. Client
    > optionally send C-Move response which holds number of c-store
    > suboperation status via association which established at the beginning.
    >
    >
    > Client get a file from server with this way.
    >
    > My first question : So how a client send a file to the server? Will it
    > use C-Store service directly ? If so, how can it tell to the server
    > about the numbers of c-store status ---which holds by cmove response---
    > .
    >
    > My second question: In the documents that i read so far -if i dont
    > understand wrongly-, it can get a file from another client. Should all
    > clients listen to their port 104 for this. Should all clients act as a
    > server everytime ?
    >
    > Regards..
    > Atila Gunes



  3. Re: how c-move and c-store works ?

    Atila Gunes wrote:
    > Hello, i'll tell you what i know firstly. then i'll ask my questions..
    >
    > All the things that i understand from C-Move service class
    >
    > Client wants to get a file from server. It issues C-Move service to
    > Server. This C-Move service holds informatioon . In its command set,
    > Move Destination field will be AE of the server. Because server will
    > start to perform C-Store Service. Server prepares a C-Move Rsp to
    > Client and start a new association to client. Client become a SCP. To
    > do that, client accept requests from its port 104..
    > Server start to send store-rq packets using this channel.. Client
    > optionally send C-Move response which holds number of c-store
    > suboperation status via association which established at the beginning.
    >
    >
    > Client get a file from server with this way.
    >
    > My first question : So how a client send a file to the server? Will it
    > use C-Store service directly ? If so, how can it tell to the server
    > about the numbers of c-store status ---which holds by cmove response---
    > .
    >
    > My second question: In the documents that i read so far -if i dont
    > understand wrongly-, it can get a file from another client. Should all
    > clients listen to their port 104 for this. Should all clients act as a
    > server everytime ?
    >
    > Regards..
    > Atila Gunes


    Hello Attila.

    First of all, you tend to be too 104-centric .

    The port 104 is the IANA's assigned port for DICOM but nothing prevents
    server/clients to use other ports. And in fact, many PACS installations
    use different ports than that.

    What is probably most confusing is the way the CMOVE works.

    As you note, the CMOVE operation requires the mandatory Destination
    AE-TITLE to be specified in the request.
    But you don't see any IP/port in the request command dataset*. This is
    because the MOVE SCP must have at hand a list of AE-TITLE--->IP/PORT
    mappings that acts like a security layer in DICOM. In other words, the
    move SCP will "resolve" the address of the client using the ae-title
    based lookup table.

    This is where you get things wrong: the C-MOVE SCP does not send the
    images to the requesting client.
    Instead, it sends them to the entity specified by the AE-TITLE which
    can very well be the AE title of the client that poses the request.

    So, if you want to have multiple clients at the same time on a single
    machine receiving data from a CMOVE, you must:
    1. assign different listening ports to each of them.
    2. assign different AE titles to each of them
    3. let the CMOVE SCP (the dicom server) know of all these AE titles.

    Although I am not responding directly to all of your questions (which
    may benefit for some clarifications themselves), I hope this clarifies
    things a bit.

    Razvan

    (*) - P.S. 3.7-2006, Page 28.


  4. Re: how c-move and c-store works ?

    Minor correction to port 104 usage: IANA actually lists port 11112 for
    DICOM, allocated about 2 years ago. 104 was used most often, but
    created sometimes conflicts. It would be good practise to use the one
    that IANA allocates, but as mentioned before, you can use any other
    non-used port (which has the risk someone else might use it),

    herman O.


    Razvan Costea-Barlutiu wrote:
    > Atila Gunes wrote:
    > > Hello, i'll tell you what i know firstly. then i'll ask my questions..
    > >
    > > All the things that i understand from C-Move service class
    > >
    > > Client wants to get a file from server. It issues C-Move service to
    > > Server. This C-Move service holds informatioon . In its command set,
    > > Move Destination field will be AE of the server. Because server will
    > > start to perform C-Store Service. Server prepares a C-Move Rsp to
    > > Client and start a new association to client. Client become a SCP. To
    > > do that, client accept requests from its port 104..
    > > Server start to send store-rq packets using this channel.. Client
    > > optionally send C-Move response which holds number of c-store
    > > suboperation status via association which established at the beginning.
    > >
    > >
    > > Client get a file from server with this way.
    > >
    > > My first question : So how a client send a file to the server? Will it
    > > use C-Store service directly ? If so, how can it tell to the server
    > > about the numbers of c-store status ---which holds by cmove response---
    > > .
    > >
    > > My second question: In the documents that i read so far -if i dont
    > > understand wrongly-, it can get a file from another client. Should all
    > > clients listen to their port 104 for this. Should all clients act as a
    > > server everytime ?
    > >
    > > Regards..
    > > Atila Gunes

    >
    > Hello Attila.
    >
    > First of all, you tend to be too 104-centric .
    >
    > The port 104 is the IANA's assigned port for DICOM but nothing prevents
    > server/clients to use other ports. And in fact, many PACS installations
    > use different ports than that.
    >
    > What is probably most confusing is the way the CMOVE works.
    >
    > As you note, the CMOVE operation requires the mandatory Destination
    > AE-TITLE to be specified in the request.
    > But you don't see any IP/port in the request command dataset*. This is
    > because the MOVE SCP must have at hand a list of AE-TITLE--->IP/PORT
    > mappings that acts like a security layer in DICOM. In other words, the
    > move SCP will "resolve" the address of the client using the ae-title
    > based lookup table.
    >
    > This is where you get things wrong: the C-MOVE SCP does not send the
    > images to the requesting client.
    > Instead, it sends them to the entity specified by the AE-TITLE which
    > can very well be the AE title of the client that poses the request.
    >
    > So, if you want to have multiple clients at the same time on a single
    > machine receiving data from a CMOVE, you must:
    > 1. assign different listening ports to each of them.
    > 2. assign different AE titles to each of them
    > 3. let the CMOVE SCP (the dicom server) know of all these AE titles.
    >
    > Although I am not responding directly to all of your questions (which
    > may benefit for some clarifications themselves), I hope this clarifies
    > things a bit.
    >
    > Razvan
    >
    > (*) - P.S. 3.7-2006, Page 28.



  5. Re: how c-move and c-store works ?

    Ooops! Thank you Herman for the correction/wake-up call!

    Razvan

    herman o. wrote:
    > Minor correction to port 104 usage: IANA actually lists port 11112 for
    > DICOM, allocated about 2 years ago. 104 was used most often, but
    > created sometimes conflicts. It would be good practise to use the one
    > that IANA allocates, but as mentioned before, you can use any other
    > non-used port (which has the risk someone else might use it),
    >
    > herman O.
    >
    >
    > Razvan Costea-Barlutiu wrote:
    > > Atila Gunes wrote:
    > > > Hello, i'll tell you what i know firstly. then i'll ask my questions..
    > > >
    > > > All the things that i understand from C-Move service class
    > > >
    > > > Client wants to get a file from server. It issues C-Move service to
    > > > Server. This C-Move service holds informatioon . In its command set,
    > > > Move Destination field will be AE of the server. Because server will
    > > > start to perform C-Store Service. Server prepares a C-Move Rsp to
    > > > Client and start a new association to client. Client become a SCP. To
    > > > do that, client accept requests from its port 104..
    > > > Server start to send store-rq packets using this channel.. Client
    > > > optionally send C-Move response which holds number of c-store
    > > > suboperation status via association which established at the beginning.
    > > >
    > > >
    > > > Client get a file from server with this way.
    > > >
    > > > My first question : So how a client send a file to the server? Will it
    > > > use C-Store service directly ? If so, how can it tell to the server
    > > > about the numbers of c-store status ---which holds by cmove response---
    > > > .
    > > >
    > > > My second question: In the documents that i read so far -if i dont
    > > > understand wrongly-, it can get a file from another client. Should all
    > > > clients listen to their port 104 for this. Should all clients act as a
    > > > server everytime ?
    > > >
    > > > Regards..
    > > > Atila Gunes

    > >
    > > Hello Attila.
    > >
    > > First of all, you tend to be too 104-centric .
    > >
    > > The port 104 is the IANA's assigned port for DICOM but nothing prevents
    > > server/clients to use other ports. And in fact, many PACS installations
    > > use different ports than that.
    > >
    > > What is probably most confusing is the way the CMOVE works.
    > >
    > > As you note, the CMOVE operation requires the mandatory Destination
    > > AE-TITLE to be specified in the request.
    > > But you don't see any IP/port in the request command dataset*. This is
    > > because the MOVE SCP must have at hand a list of AE-TITLE--->IP/PORT
    > > mappings that acts like a security layer in DICOM. In other words, the
    > > move SCP will "resolve" the address of the client using the ae-title
    > > based lookup table.
    > >
    > > This is where you get things wrong: the C-MOVE SCP does not send the
    > > images to the requesting client.
    > > Instead, it sends them to the entity specified by the AE-TITLE which
    > > can very well be the AE title of the client that poses the request.
    > >
    > > So, if you want to have multiple clients at the same time on a single
    > > machine receiving data from a CMOVE, you must:
    > > 1. assign different listening ports to each of them.
    > > 2. assign different AE titles to each of them
    > > 3. let the CMOVE SCP (the dicom server) know of all these AE titles.
    > >
    > > Although I am not responding directly to all of your questions (which
    > > may benefit for some clarifications themselves), I hope this clarifies
    > > things a bit.
    > >
    > > Razvan
    > >
    > > (*) - P.S. 3.7-2006, Page 28.



  6. Re: how c-move and c-store works ?


    Thanks Razvan.

    i wonder all clients need to be listener at the same time. For example
    there are 2 clients and 1 server.. Server is SAE and clients are CAE1
    and CAE2..

    if CAE1 want an image from SAE for CAE2, SAE will send that image to
    CAE2.. But CAE2 have to listen to the assigned port (which is set and
    known by SAE)..

    It seems all clients have also listeners for C-store and also maybe for
    some other services such as c-echo.. but i couldnt find information
    about it, just C-move whisper it..

    Thanks in advance..


  7. Re: how c-move and c-store works ?

    If both CAE1 and CAE2 are on the same machine and active at the same
    time, be sure that SAE knows their ports AND their ports are different.
    Your setup won't work correctly othewise, from obvious network
    considerations.

    A CMOVE client can be a listener as well but that's not the point. A
    CMOVE client can have a whole PACS underneath it and respond to various
    DIMSE Commands (CFIND, C-ECHO anso). The important thing here is that
    the server is sending the data to the AE specified in the CMOVE
    request.
    If that AE points to the same CMOVE client then alas, the CMOVE client
    must be also a store SCP. OFFIS cmove client (movescu), for instance,
    will become a store SCP if the move destination AE is not specified.

    Getting to your example, if CAE1 instructs SAE to send the data to CAE2
    that's just fine as long as CAE2 listens to a different port than CAE1
    and the server knows that port.

    At server level, there is no shortage on how many AE-title/IP/port
    tuples can coexist as long as the AE-titles are different.

    Razvan

    Atila Gunes wrote:
    > Thanks Razvan.
    >
    > i wonder all clients need to be listener at the same time. For example
    > there are 2 clients and 1 server.. Server is SAE and clients are CAE1
    > and CAE2..
    >
    > if CAE1 want an image from SAE for CAE2, SAE will send that image to
    > CAE2.. But CAE2 have to listen to the assigned port (which is set and
    > known by SAE)..
    >
    > It seems all clients have also listeners for C-store and also maybe for
    > some other services such as c-echo.. but i couldnt find information
    > about it, just C-move whisper it..
    >
    > Thanks in advance..



+ Reply to Thread