Update installation documentation

Issue #630 resolved
David Platten
created an issue

Yesterday I helped a colleague at another hospital install OpenREM. This flagged a number of issues with the (0.7.4) documentation.

Comments (38)

  1. David Platten reporter

    The list of things to clarify are:

    • Erlang is not mentioned in the documentation. You get an error when trying to install RabbitMQ which prompts you to download and install Erlang
    • Numpy install could benefit from a reminder to navigate to where you have saved the file prior to the install command
    • Under Postgresql setup:
      • Setup of a user for the database doesn’t note the privileges the user needs (logging in, creating databases)
      • Suggests openremdb as a database name but later uses openrem_db
    • Configuring openrem settings the allowed hosts shows an IP address; it could be clearer that it should be the IP address of the OpenREM server itself
    • Scheduling celery
      • Rewrite as “how to setup” rather than “here’s how it should look when done”
      • Suggest the description be put into text to allow copy/paste
      • Detail the security options
    • No prompts when to install Conquest (or other DICOM software). Likely fits in under Docs »DICOM Store and QR »DICOM Network Configuration
    • DICOM store and QR instructions come after the “Now start testing things”
    • Instructions for command window querying prompts qrscu.py but should call on openrem_qr.py
    • Somewhere along the lines I was missing dicom 0.9.9 and needed to use pip install dicom
  2. David Platten reporter

    Ok, thanks @Ed McDonagh. At which point in the (0.7.4) installation process should the dicom python package be installed? This package wasn't present on the system that I was helping out with yesterday, even though openrem and your pynetdicom package were there.

  3. Ed McDonagh

    Thanks for this @David Platten. This is just the sort of testing we need with the docs!

    I think some of the issues may have been dealt with in the current docs maybe? I have certainly tried to reorganise them to make them work better!

    In the 0.7.4 docs, pynetdicom was installed as part of the prep. This now happens after OpenREM, partly because it drags in pydicom and gets the latest version. OpenREM is pinned to the <1 pydicom, so if that is installed first pynetdicom is happy with the old version.

  4. Ed McDonagh

    Cross posted. Hopefully my comment will help explain, but I don't understand why it wasn't installed with OpenREM. Or pynetdicom (though the wrong version)

  5. David Platten reporter

    I've just created a fresh virtualenv on Ubuntu and started to follow the 0.7.4 install prep instructions. I installed numpy, and then tried to install pynetdicom, but was met with an error (see below). I'll test this on Windows too.

    (openrem_test) dplatten@newton:~/apps/openrem_test$ pip list
    Package    Version
    ---------- -------
    pip        10.0.1 
    setuptools 39.1.0 
    wheel      0.31.1 
    (openrem_test) dplatten@newton:~/apps/openrem_test$ pip install numpy
    Collecting numpy
      Using cached https://files.pythonhosted.org/packages/c0/e7/08f059a00367fd613e4f2875a16c70b6237268a1d6d166c6d36acada8301/numpy-1.14.3-cp27-cp27mu-manylinux1_x86_64.whl
    Installing collected packages: numpy
    Successfully installed numpy-1.14.3
    (openrem_test) dplatten@newton:~/apps/openrem_test$ pip install https://bitbucket.org/edmcdonagh/pynetdicom/get/default.tar.gz#egg=pynetdicom-0.8.2b2
    Collecting pynetdicom-0.8.2b2 from https://bitbucket.org/edmcdonagh/pynetdicom/get/default.tar.gz#egg=pynetdicom-0.8.2b2
      Downloading https://bitbucket.org/edmcdonagh/pynetdicom/get/default.tar.gz (47kB)
        100% |████████████████████████████████| 51kB 105kB/s 
      Running setup.py (path:/tmp/pip-install-jVEmH8/pynetdicom-0.8.2b2/setup.py) egg_info for package pynetdicom-0.8.2b2 produced metadata for project name pynetdicom. Fix your #egg=pynetdicom-0.8.2b2 fragments.
    Collecting pydicom>=0.9.7 (from pynetdicom)
      Downloading https://files.pythonhosted.org/packages/d3/74/f1e9d1b8f86a94a732fed44545e2096580c1719661866bf46df5d0faa3f7/pydicom-1.0.2.tar.gz (6.7MB)
        100% |████████████████████████████████| 6.7MB 142kB/s 
    Building wheels for collected packages: pynetdicom, pynetdicom, pydicom
      Running setup.py bdist_wheel for pynetdicom ... done
      Stored in directory: /tmp/pip-ephem-wheel-cache-Cc_ope/wheels/25/ce/70/db6c67879ab7e47863c71761cf5708e946ea51936175936263
      Running setup.py bdist_wheel for pynetdicom ... error
      Complete output from command /home/dplatten/apps/openrem_test/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-jVEmH8/pynetdicom/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/pip-wheel-2NwnNK --python-tag cp27:
      Traceback (most recent call last):
        File "<string>", line 1, in <module>
      IOError: [Errno 2] No such file or directory: '/tmp/pip-install-jVEmH8/pynetdicom/setup.py'
    
      ----------------------------------------
      Failed building wheel for pynetdicom
      Running setup.py clean for pynetdicom
      Complete output from command /home/dplatten/apps/openrem_test/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-jVEmH8/pynetdicom/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" clean --all:
      Traceback (most recent call last):
        File "<string>", line 1, in <module>
      IOError: [Errno 2] No such file or directory: '/tmp/pip-install-jVEmH8/pynetdicom/setup.py'
    
      ----------------------------------------
      Failed cleaning build dir for pynetdicom
      Running setup.py bdist_wheel for pydicom ... done
      Stored in directory: /home/dplatten/.cache/pip/wheels/64/c5/a6/dfde9039d7c59b83cc165848da7580ea68c338da02eee98249
    Successfully built pynetdicom pydicom
    Failed to build pynetdicom
    Installing collected packages: pydicom, pynetdicom
    Successfully installed pydicom-1.0.2 pynetdicom-0.8.2b2
    (openrem_test) dplatten@newton:~/apps/openrem_test$ pip list
    Package    Version
    ---------- -------
    numpy      1.14.3 
    pip        10.0.1 
    pydicom    1.0.2  
    pynetdicom 0.8.2b2
    setuptools 39.1.0 
    wheel      0.31.1 
    
  6. Ed McDonagh

    With pip 10.0.1 I had the same messages as you, though it seems they are just noise as the software gets installed just the same.

    With pip 9.0.1 I had the following:

    root@frp-testpynetdicom1:/home/test# pip -V 
    pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7)
    root@frp-testpynetdicom1:/home/test# pip install https://bitbucket.org/edmcdonagh/pynetdicom/get/default.tar.gz#egg=pynetdicom-0.8.2b2
    Collecting pynetdicom-0.8.2b2 from https://bitbucket.org/edmcdonagh/pynetdicom/get/default.tar.gz#egg=pynetdicom-0.8.2b2
      Cache entry deserialization failed, entry ignored
      Downloading https://bitbucket.org/edmcdonagh/pynetdicom/get/default.tar.gz (47kB)
        100% |################################| 51kB 20kB/s 
      Running setup.py (path:/tmp/pip-build-vKUoRm/pynetdicom-0.8.2b2/setup.py) egg_info for package pynetdicom-0.8.2b2 produced metadata for project name pynetdicom. Fix your #egg=pynetdicom-0.8.2b2 fragments.
    Collecting pydicom>=0.9.7 (from pynetdicom)
      Cache entry deserialization failed, entry ignored
    Installing collected packages: pydicom, pynetdicom
      Running setup.py install for pynetdicom ... done
    Successfully installed pydicom-1.0.2 pynetdicom-0.8.2b2
    

    Either way, pydicom 1.0.2 was installed, which is an issue.

  7. Ed McDonagh

    I think the backupRestorePostgreSQL.rst could do with aligning with the other db docs, but apart from that I am going to merge in your changes for this beta.

  8. David Platten reporter

    The example Windows dicom.ini file, Lua scripts and batch files assume the user has not used a virtualenv. As they stand, they won't work if the user does use a virtualenv. The Lua scripts will need to be modified to call a batch file that activates the virtualenv and runs the importer; at the moment the importer is run directly within the Lua script. I don't think there's a way of activating a virtualenv from Lua and then running a python command in it. Before I go ahead and update the documentation I will need to check that what I think will work actually does...

  9. Ed McDonagh

    Thanks for looking into this David. I think the way around that is to specify the python executable - if you do that you don't need to activate the virtualenv. So on linux this command should work:

    /home/me/venv/bin/python /home/me/venv/bin/openrem_rdsr.py rdsrfiletoimport.dcm
    
  10. Ed McDonagh

    @David Platten - I've been trying and failing to install the current version of conquest, which is frustrating! I've been liaising with Marcel via the forum. I will need to demonstrate to myself I can install on linux before I can finalise the docs and release 0.8.

    Also, I was thinking that maybe we should drop the recommendation to create the scripts and call them from dicom.ini, preferring instead to just recommend a lua script, maybe with a simple version and the some suggestions for your advanced version?

  11. Log in to comment