Posts by lyakh92

    Good day, Marcel! I'm not sure, but possible i found some bug.

    This my Worklist Structure in dicom.sql dicomsql.zip

    Here conquest debug log with responce for workListquery: dicomdebuglog.txt

    You can see, that:

    Coding sequence (0040,0008), level=2

    [CONQUESTSRV1] >0008,0100 8 SH CodeValue "ST-0017 "

    [CONQUESTSRV1] >0008,0102 6 SH CodingSchemeDesignat "XPROM "

    [CONQUESTSRV1] >0008,0104 8 LO CodeMeaning "Fluorogr"

    AND

    [CONQUESTSRV1] Coding sequence (0032,1064), level=1

    [CONQUESTSRV1] 0008,0100 8 SH CodeValue "ST-0017 "

    [CONQUESTSRV1] 0008,0102 6 SH CodingSchemeDesignat "XPROM "

    [CONQUESTSRV1] 0008,0104 8 LO CodeMeaning "Fluorogr"


    have similar values, but in sql database fields for this tags have different values.

    So value dicom-tag (0032,1064)/(0008,0100) rewrite value in dicom-tag (0040,0100)/(0040,0008)/(0008,0100), when Conquest generate worklist response.

    May be i have mistake in dicom.sql? Can you explain me, please?

    Good day!

    We installed in hospital digital fluorograph.

    So, application of fluorograph sends requests worklist to Conquest, but records doesn't appear in application. In Conquest i have the next log:

    [CONQUESTSRV1] Coding sequence (0040,4018), level=1

    [CONQUESTSRV1] (sequence is empty)

    [CONQUESTSRV1] Coding sequence (0040,4025), level=1

    [CONQUESTSRV1] (sequence is empty)

    [CONQUESTSRV1] Coding sequence (0040,4026), level=1

    [CONQUESTSRV1] (sequence is empty)

    [CONQUESTSRV1] Coding sequence (0040,4027), level=1

    [CONQUESTSRV1] (sequence is empty)

    [CONQUESTSRV1] Coding sequence (0040,4034), level=1

    [CONQUESTSRV1] Coding sequence (0040,4009), level=2

    [CONQUESTSRV1] (sequence is empty)

    [CONQUESTSRV1] Records = 4

    [CONQUESTSRV1] C-Find (Modality Work List) located 4 records

    [CONQUESTSRV1] UPACS THREAD 19: ENDED AT: Mon Nov 11 16:00:59 2019

    [CONQUESTSRV1] UPACS THREAD 19: TOTAL RUNNING TIME: 0 SECONDS

    [CONQUESTSRV1]

    [CONQUESTSRV1] UPACS THREAD 20: STARTED AT: Mon Nov 11 16:01:14 2019

    [CONQUESTSRV1] A-ASSOCIATE-RQ Packet Dump

    [CONQUESTSRV1] Calling Application Title : "PROSCAN "

    [CONQUESTSRV1] Called Application Title : "CONQUESTSRV1 "

    [CONQUESTSRV1] Application Context : "1.2.840.10008.3.1.1.1", PDU length: 16384

    [CONQUESTSRV1] Number of Proposed Presentation Contexts: 1

    [CONQUESTSRV1] Presentation Context 0 "1.2.840.10008.5.1.4.31" 1

    [CONQUESTSRV1] Server Command := 0020

    [CONQUESTSRV1] Message ID := 0001

    [CONQUESTSRV1] (ModalityWorkListQuery) search level:

    [CONQUESTSRV1] Query On Modality WorkList

    [CONQUESTSRV1] Queried item 0008 0005 is not in the database

    [CONQUESTSRV1] Queried item 0008 0016 is not in the database

    [CONQUESTSRV1] Queried item 0008 0018 is not in the database

    [CONQUESTSRV1] Queried item 0008 1111 is not in the database

    [CONQUESTSRV1] Queried item 0010 1000 is not in the database

    [CONQUESTSRV1] Queried item 0010 4000 is not in the database

    [CONQUESTSRV1] Queried item 0029 0001 is not in the database

    [CONQUESTSRV1] Queried item 0008 0100 is not in the database

    [CONQUESTSRV1] Queried item 0008 0102 is not in the database

    [CONQUESTSRV1] Queried item 0008 0104 is not in the database

    [CONQUESTSRV1] Queried item 0038 0050 is not in the database

    [CONQUESTSRV1] Queried item 0038 0500 is not in the database

    [CONQUESTSRV1] Queried item 0040 4004 is not in the database

    [CONQUESTSRV1] Queried item 0040 4005 is not in the database

    [CONQUESTSRV1] Queried item 0040 4006 is not in the database

    [CONQUESTSRV1] Queried item 0040 4011 is not in the database

    [CONQUESTSRV1] Queried item 0040 4015 is not in the database

    [CONQUESTSRV1] Queried item 0008 0100 is not in the database

    [CONQUESTSRV1] Queried item 0008 0102 is not in the database

    [CONQUESTSRV1] Queried item 0040 4021 is not in the database

    [CONQUESTSRV1] Queried item 0040 4022 is not in the database

    [CONQUESTSRV1] Queried item 0008 0100 is not in the database

    [CONQUESTSRV1] Queried item 0008 0102 is not in the database

    [CONQUESTSRV1] Queried item 0008 0100 is not in the database

    [CONQUESTSRV1] Queried item 0008 0102 is not in the database

    [CONQUESTSRV1] Queried item 0008 0100 is not in the database

    [CONQUESTSRV1] Queried item 0008 0102 is not in the database

    [CONQUESTSRV1] Queried item 0008 0100 is not in the database

    [CONQUESTSRV1] Queried item 0008 0102 is not in the database

    [CONQUESTSRV1] Queried item 0040 4035 is not in the database

    [CONQUESTSRV1] Queried item 0040 a370 is not in the database

    [CONQUESTSRV1] Issue Query on Columns: DICOMWorkList.AccessionN, DICOMWorkList.PatientNam, DICOMWorkList.PatientID, DICOMWorkList.PatientBir, DICOMWorkList.PatientSex, DICOMWorkList.MedicalAle, DICOMWorkList.ContrastAl, DICOMWorkList.StudyInsta, DICOMWorkList.ReqProcID

    [CONQUESTSRV1] Values:

    [CONQUESTSRV1] Tables: DICOMWorkList

    [CONQUESTSRV1] Sorting (DICOMWorkList.PatientNam) DoSort := 1

    [CONQUESTSRV1] Coding sequence (0032,1064), level=1

    [CONQUESTSRV1] (sequence is empty)

    [CONQUESTSRV1] Coding sequence (0040,4018), level=1

    [CONQUESTSRV1] (sequence is empty)

    [CONQUESTSRV1] Coding sequence (0040,4025), level=1

    [CONQUESTSRV1] (sequence is empty)

    [CONQUESTSRV1] Coding sequence (0040,4026), level=1

    [CONQUESTSRV1] (sequence is empty)

    [CONQUESTSRV1] Coding sequence (0040,4027), level=1

    [CONQUESTSRV1] (sequence is empty)

    [CONQUESTSRV1] Coding sequence (0040,4034), level=1

    [CONQUESTSRV1] Coding sequence (0040,4009), level=2

    [CONQUESTSRV1] (sequence is empty)

    [CONQUESTSRV1] Records = 4

    [CONQUESTSRV1] C-Find (Modality Work List) located 4 records

    [CONQUESTSRV1] UPACS THREAD 20: ENDED AT: Mon Nov 11 16:01:14 2019

    [CONQUESTSRV1] UPACS THREAD 20: TOTAL RUNNING TIME: 0 SECONDS


    It means that in Conquest database SQl not enough fields for correct answer? Is it right? How i can decide this problem?

    Hi,


    so you intend to create a modality worklist entry on one server when another server receives a study. Are both servers conquest?


    Marcel

    No, other server is our medical infrormation system(MIS) MED-Complete(it includes also functionality of radiological information system(RIS)). By this moment I made integration our MIS with your Conquest PACS server and in 5 hosptital it works fine. But current way is not perfect: 1. Doctor creates medical appointment in our system and then send it to Conquest Pacs Server (For this i create record in Conquest by direct query to database).

    2. So, also i developed exe file which i performs when study was received by Conquest. This exe file updates status of medical appointment in our system by direct query to database of MIS.

    3. By click this appointment doctor has opportunity to view study in web or automatically download this study and open in his computer (all this by one click - it is very comfortable)

    P.S. Problem in that: in during running of my exe file our database may be not accessing by many reasons, so status of appointment never not updates. That's why i need get submittion from mis about receiveing this side. Hope you understand me.

    In plans this month - make CAMI (Based on conquest) - Central Archive Medical Images - for union hospitals bases in one LAN.

    Good day, Marcel!

    I want to ask you some questions:

    1. According to your answer: "Hi, there is no DICOM way of entering worklist entries. So best you can use database access tools to directly to copy worklist entries." So, is it possible to modify source code of conquest (some integrate or write code MWL SCP (with ORM HL7 Service)), such it can to process query for adding new worklist item in HL7 format as service (not in web and not by direct insert in database)? If it is possible, please, say me first step for start develop this improvment. I ready to write code for this.

    2. In conquest settings file i can set import converter for performing any external exe file or lua script after getting last study image to pacs. In windows, conquest can install as service. Can i modify src code such, that after getting study conquest service will send hl7 message in some ip:port by some timeout until from this external ip:port conquest receive submition about getting? (it is similar on message queue). Can you help me a few?:)

    Hi, Marcel!

    1. gpps('webdefaults', 'WebScriptAddress', '') works fine!

    2. Also this function needs to use in line 243: local compress = CGI('compression', 'un') replace with local compress = gpps('webdefaults', 'compress', ''), because compress always has value 'un', don't know why.

    3. It's doesn't work:

    Code
    ser[k].StudyInstanceUID=nil
    if wt~='' then ser[k].WadoTransferSyntaxUID = wt end
    xmlopen('SERIES', tablify(ser[k])) 


    The next code works:

    Code
    for k=0, #ser-1 do
    local r = tablify(ser[k])
    if wt~='' then r.WadoTransferSyntaxUID = wt end
    r.WadoTransferSyntaxUID = wt
    r.QueryRetrieveLevel=nil
    r.TransferSyntaxUID=nil
    r.StudyInstanceUID=nil
    xmlopen('SERIES', r)

    So, firstly need make tablify() function, and the next make xmlopen()


    Now all works fine! Thanks for your help. You are great man!

    Hello, Marcel. I change dicom.ini in cgi-bin, so now i use weasis_starter, all ok, BUT:

    1. I'm not sure, but WadoTransferSyntaxUID="1.2.840.10008.1.2.4.80" must be in <Series> tag (such as in the past releases or in weasisstudyxml.lua), else weasis always use uncompressed mode, so may be need correct weasis_starter.

    <Patient PatientID="72600" PatientName="____________________________________" PatientSex="F">

    <Study StudyTime="090602.04144" ReferringPhysicianName="" AccessionNumber="9998000000009136" StudyInstanceUID="1.2.826.0.1.3680043.8.839.1.109779686789265668069099347868938805" StudyID="" StudyDate="20181015" StudyDescription="">
    <Series SeriesNumber="4" SeriesDescription="" Modality="MG" SeriesInstanceUID="1.2.826.0.1.3680043.8.839.2.106594289127071084398992639143521512">
    <Instance InstanceNumber="" WadoTransferSyntaxUID="1.2.840.10008.1.2.4.80" SOPInstanceUID="1.2.840.10008.5.1.4.1.1.1.2.448697421972977866308412939741360800"/>

    </Series>

    <Series SeriesNumber="1" SeriesDescription="" Modality="MG" SeriesInstanceUID="1.2.826.0.1.3680043.8.839.2.162987651609855627322597340844212180">
    <Instance InstanceNumber="" WadoTransferSyntaxUID="1.2.840.10008.1.2.4.80" SOPInstanceUID="1.2.840.10008.5.1.4.1.1.1.2.159156482954743744489781713485521500"/>

    </Series>

    <Series SeriesNumber="2" SeriesDescription="" Modality="MG" SeriesInstanceUID="1.2.826.0.1.3680043.8.839.2.725580140258827284489454857940963040">
    <Instance InstanceNumber="" WadoTransferSyntaxUID="1.2.840.10008.1.2.4.80" SOPInstanceUID="1.2.840.10008.5.1.4.1.1.1.2.163200712621855152301552917151867400"/>

    </Series>

    <Series SeriesNumber="3" SeriesDescription="" Modality="MG" SeriesInstanceUID="1.2.826.0.1.3680043.8.839.2.940914230953344633023846305208816549">
    <Instance InstanceNumber="" WadoTransferSyntaxUID="1.2.840.10008.1.2.4.80" SOPInstanceUID="1.2.840.10008.5.1.4.1.1.1.2.135280840729859202159334231808433500"/>

    </Series>

    </Study>

    </Patient>

    2. From where script weasis_starter get the next params server_name and compression? When script creates .jnlp file in this my server_name is 127.0.0.1, but i need server_name is 127.0.0.1:8080 . (in dicom.ini WebScriptAddress = http://127.0.0.1:8080/cgi-bin/dgate.exe)

    local xmlline = string.format([[<argument>$dicom:get -w "http://%s?mode=weasis_starter&parameter=xml&compress=%s&%s&dum=.xml"</argument>]],

    server_name..script_name, (compression or 'un'), level..'='..ident)

    yes, of course

    <?xml version="1.0" encoding="UTF-8"?>

    <!DOCTYPE jnlp PUBLIC "-//Sun Microsystems, Inc//DTD JNLP Descriptor 6.0//EN" "http://java.sun.com/dtd/JNLP-6.0.dtd">

    <jnlp spec="1.6+" codebase="http://127.0.0.1:8080/weasis" href="">

    <information>

    <title>Weasis</title>

    <vendor>Weasis Team</vendor>

    <description>DICOM images viewer</description>

    <description kind="short">An application to visualize and analyze DICOM images.</description>

    <description kind="one-line">DICOM images viewer</description>

    <description kind="tooltip">Weasis</description>

    </information>

    <security>

    <all-permissions />

    </security>


    <resources>

    <!-- Requires Java SE 6 update 10 release for jnlp extension without codebase (substance.jnlp) -->

    <j2se version="1.6.0_10+" href="http://java.sun.com/products/autodl/j2se" initial-heap-size="128m" max-heap-size="512m" />

    <j2se version="1.6.0_10+" initial-heap-size="128m" max-heap-size="512m" />


    <jar href="http://127.0.0.1:8080/weasis/weasis-launcher.jar" main="true" />

    <jar href="http://127.0.0.1:8080/weasis/felix.jar" />


    <!-- Optional library (Substance Look and feel, only since version 1.0.8). Requires the new Java Plug-in introduced in the Java SE 6 update 10 release.For previous JRE 6, substance.jnlp needs a static codebase URL -->



    <!-- Allows to get files in pack200 compression, only since Weasis 1.1.2 -->

    <property name="jnlp.packEnabled" value="true" />


    <!-- ================================================================================================================= -->

    <!-- Security Workaround. Add prefix "jnlp.weasis" for having a fully trusted application without signing jnlp (only since weasis 1.2.9), http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6653241 -->


    <!-- Required parameter. Define the location of config.properties (the OSGI configuration and the list of plug-ins to install/start) -->

    <property name="jnlp.weasis.felix.config.properties" value="http://127.0.0.1:8080/weasis/conf/config.properties" />

    <!-- Optional parameter. Define the location of ext-config.properties (extend/override config.properties) -->

    <property name="jnlp.weasis.felix.extended.config.properties" value="http://127.0.0.1:8080/weasis-ext/conf/ext-config.properties" />


    <!-- Required parameter. Define the code base of Weasis for the JNLP -->

    <property name="jnlp.weasis.weasis.codebase.url" value="http://127.0.0.1:8080/weasis" />


    <!-- Optional parameter. Define the code base ext of Weasis for the JNLP -->

    <property name="jnlp.weasis.weasis.codebase.ext.url" value="http://127.0.0.1:8080/weasis-ext" />


    <!-- Required parameter. OSGI console parameter -->

    <property name="jnlp.weasis.gosh.args" value="-sc telnetd -p 17179 start" />


    <!-- Optional parameter. Allows to have the Weasis menu bar in the top bar on Mac OS X (works only with the native Aqua look and feel) -->

    <property name="jnlp.weasis.apple.laf.useScreenMenuBar" value="true" />


    <!-- Optional parameter. Allows to get plug-ins translations -->

    <property name="jnlp.weasis.weasis.i18n" value="http://127.0.0.1:8080/weasis-i18n" />


    <!-- Optional Weasis Documentation -->

    <!-- <property name="jnlp.weasis.weasis.help.url" value="${cdb}/../weasis-doc" /> -->


    <!-- ================================================================================================================= -->

    </resources>


    <application-desc main-class="org.weasis.launcher.WebstartLauncher">

    <argument>$dicom:get -w http://127.0.0.1:8080/cgi-bin/…9099347868938805&dum=.xml</argument>

    </application-desc>

    </jnlp>

    Hello, Marcel.

    Please, help me.

    I installed xamp server, copied all need folder to server, copied weasis files. JRE 1.8 installed.

    So, when i press view button of some study in web panel of conquest in IE, .jnlp loads success, then start weasis, but i get the next error: "Error on loading the XML manifest from http://192.168.0.100/cgi-bin/dgate.exe?port=11112". And files for corresponding study don't download in weasis.

    So, I Check command argument ($dicom:get ) for weasis in .jnlp file and if it copy in browser i get xml file correct. But automatically from web panel conquest study not loading. Do you have any issues?

    I already using wildcard mechanism for creating dynamically AE Titles for my clients. This way not solve problem with router and other subnet.

    Pre-release of c version is very GOOD!

    Yes, i can send C-GET command from my client. So, can you explain in details, how C-GET command may solve my problem with router and other subnet?

    Thank you very much for so fast reply, Marcel.

    Yes, i have many clients in subnet 192.168.1.*, because i send request for pacs server from my medical information system (which may be install in any number computers, and now all doctors may create request c-move to pacs for getting study), so number clients may be infinite (when all clients in same subnet with pacs all ok, and for each client i create temp StoreSCP dynamically). if I understood correctly, i have to assign statically port to each IP client in subnet 192.168.1.*. Is there other desicion for this situation?

    Good day!

    I have the next problem:

    Our hospital has many departments located in different places in city.

    So in main department conquest server with ip 192.168.24.179.

    In other department i have router with ip 192.168.24.249 and inside lan in this department pc has ip 192.168.1.*.

    So, i send request command C-MOVE from pc with ip 192.168.1.25 to conquest server with ip 192.168.24.179 for getting study in this pc.

    Server getting this request, but client PC with ip 192.168.1.25 not getting response from pacs server. I couldn't merge this subnets in one for technical reasons. In server logs error: Host didn't accept connection.

    Has conquest server pacs some settings for solving this problem?

    Please, help. Sorry for terrible english grammar.