Giter Site home page Giter Site logo

worldvista / vista Goto Github PK

View Code? Open in Web Editor NEW
125.0 41.0 85.0 118.95 MB

OSEHRA VistA

License: Apache License 2.0

Shell 0.09% CMake 0.11% Python 1.41% Genshi 69.86% Pascal 20.21% M 0.46% CSS 0.15% JavaScript 2.20% HTML 5.40% Batchfile 0.01% Brightscript 0.01% Qt Script 0.01% TeX 0.04% Java 0.01% POV-Ray SDL 0.01% PHP 0.03%

vista's Introduction

OSEHRA VistA

This source tree contains patches, tests, and tools for VistA, the Veterans Health Information Systems and Technology Architecture. It is maintained by OSEHRA, the Open Source Electronic Health Record Alliance.

This version of VistA includes Open Source Community contributions accepted by OSEHRA.

Purpose

The OSEHRA VistA-M Source Tree contains a static representation of VistA. VistA is built on a database platform that houses both code and data so it requires programmatic operations to apply changes while maintaining consistency. Patches in this source tree may be applied to a running VistA instance to keep it up to date.

Layout

The source tree is organized as follows:

  • Packages.csv: A spreadsheet recording VistA packages. For each package it has a name, namespaces, file numbers and names, and a directory name for this source tree.
  • CMake: CMake build system modules.
  • Documentation: OSEHRA VistA documentation pages.
  • Scripts: Contains scripts to process VistA patch files, populate the Packages/ directory layout, analyze dependencies, and compute an order for patch installation.
  • Packages/<package>/Patches/<patch>/: Holds distribution files for one patch. The <package> directory name matches that in Packages.csv. The <patch> directory name is derived from the patch build name. For example, directory Packages/Kernel/Patches/XU_8.0_431 holds files for KERNEL patch XU*8.0*431.
  • Packages/Order Entry Results Reporting/CPRS: Delphi sources for the "Computerized Patient Record System".
  • Packages/RPC Broker/BDK: Delphi sources for the "Broker Development Kit".
  • Packages/MultiBuilds: Holds distribution files for multi-build patches. Since these may contain builds from multiple packages we do not keep them under a specific package directory.
  • Packages/Uncategorized: Holds files with no clear package category. In addition, it contains *.csv spreadsheets derived from the VA FOIA Spreadsheets. See Scripts/HowtoUpdateSpreadsheets.rst to update them.

Links

vista's People

Contributors

betsymcphail avatar bradking avatar cbranea avatar christopheredwards avatar cjh1 avatar cryos avatar dependabot[bot] avatar dgramop avatar glilly avatar jason-li avatar jennyp7 avatar jimmyspivey avatar josephsnyder avatar osehr-agent avatar sankhesh avatar shabiel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vista's Issues

Explore deprecation warnings in REGEX for repository

Via @shabiel

/home/sam/workspace/repo/VistA/Python/vista/OSEHRAHelper.py:124: DeprecationWarning: invalid escape sequence \s
match = self.wait_re(volume + ':.+\s', None)
/home/sam/workspace/repo/VistA/Python/vista/OSEHRAHelper.py:131: DeprecationWarning: invalid escape sequence \s
self.wait_re(volume + ':.+\s', None)
/home/sam/workspace/repo/VistA/Python/vista/OSEHRAHelper.py:668: DeprecationWarning: invalid escape sequence ?
"""
/home/sam/workspace/repo/VistA/Python/vista/OSEHRAHelper.py:670: DeprecationWarning: invalid escape sequence (
re_chars = '?*.+-|^$()[]{}'

XINDEX tests are failing in Python 2

   All Routines? No => No
161:
161:
161:
161:   Routine:
161:
161:   Traceback (most recent call last):
161:
161:     File "C:/Users/betsy.mcphail/development/VistA-Build/Testing/XINDEX/SurgeryTest.py", line 47, in <module>
161:       VistA.write(prefix + '*')
161:     File "C:/Users/betsy.mcphail/development/VistA/Python/vista\OSEHRAHelper.py", line 199, in write
161:       self.connection.write(encode(command) + encode('\r'))
161:     File "C:\Python27\lib\telnetlib.py", line 280, in write
161:       if IAC in buffer:
161:     File "C:\Users\betsy.mcphail\AppData\Roaming\Python\Python27\site-packages\future\types\newstr.py", line 127, in __contains__
161:       newkey = newstr(key)
161:     File "C:\Users\betsy.mcphail\AppData\Roaming\Python\Python27\site-packages\future\types\newstr.py", line 102, in __new__
161:       return super(newstr, cls).__new__(cls, value)
161:
161:   UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 0:
161:   ordinal not in range(128)

Put pexpect and winpexpect back into Repo

In #128, winexpect and pexpect were removed from the repository and added to a requirements.txt file so that they could be pip installed.

While testing another change, I found that winpexpect fails when running in a virtual environment. It turns out that pip uses this repo while the pexpect that was in the VistA repo was a slightly newer version from here. In particular, this commit is needed to fix the virtual environment issue.

I also noticed that the copies of both winpexpect and pexpect in the VistA repo had been modified. Are these modifications needed?

Ubuntu autoInstaller breaks

This line does not actually block an installation without one of these 3 DBs.
https://github.com/OSEHRA/VistA/blob/303a301ef30bfc3df6f33f61b1477d4bd2b9430d/Scripts/Install/Ubuntu/autoInstaller.sh#L162

I think the intention of this line is to block execution if one of these 3 DBs is not included. (This is not documented.) For some reason, this line does not work as I would expect either. If it were to work as I expect, then it would block if GT.M is not included because ! $installgtm || ! $cacheinstallerpath is true if $installgtm regardless of whether or not $cacheinstallerpath is included. So, something bash related is wrong here. Then, the logic is not what I would expect. These should be ANDs instead of ORs. If they were ANDs, then if NOT installgtm AND NOT cacheinstallerpath AND NOT installYottaDB would be true and would lead to the next statement running and breaking execution.

This causes issues down the line:

# Install GT.M or YottaDB
if $installgtm; then
    cd GTM
    if $bootstrap; then
        ./install.sh
    else
        ./install.sh -s
    fi
    # Create the VistA instance
    if $bootstrap; then
        ./createVistaInstance.sh -i $instance
    else
        ./createVistaInstance.sh -i $instance -f
    fi
fi

if $installYottaDB; then
    cd GTM
    if $bootstrap; then
        ./install.sh -y
    else
        ./install.sh -s -y
    fi
    # Create the VistA instance
    if $bootstrap; then
        ./createVistaInstance.sh -i $instance -y
    else
        ./createVistaInstance.sh -i $instance -f -y
    fi
fi

# Install Caché if requested
if $cacheinstallerpath; then
    echo "Cache installer path:" $cacheinstallerpath
fi

# Modify the primary user to be able to use the VistA instance
usermod -a -G $instance $primaryuser
chmod g+x /home/$instance

usermod relies on createVistaInstance to have created the instance user
* So, really if cacheinstallerpath is used, then it will also break, I think.

Python 3: Determine fate of *pexpect files

Determine if we are going to maintain a copy of the pexpect and winpexpect python files in the OSEHRA VistA repository. If so, ready the files for python 3

If not: determine the pip packages that should be installed for the system to work correctly

Import script failing in Python 2

$ cmake -P Testing/Setup/ImportRG.cmake
-- Stopping cache instance CACHE
-- Replacing C:/InterSystems/Cache/mgr/VistA/CACHE.DAT
-- Starting cache instance CACHE
-- Preparing M Components...
Looking for routines in subdirectories below C:/Users/betsy.mcphail/development/VistA-M
Looking for globals in subdirectories below C:/Users/betsy.mcphail/development/VistA-M
Looking for routines in subdirectories below C:/Users/betsy.mcphail/development/VistA/Scripts
Looking for globals in subdirectories below C:/Users/betsy.mcphail/development/VistA/Scripts
Packing routines into routines.ro file
Done!
Packing global paths into globals.lst file
Done!
-- Importing VistA Routines...
-- Updating the DPTLK7 routine
-- Importing globals...
-- Initializing VistA...
Traceback (most recent call last):
  File "C:/Users/betsy.mcphail/development/VistA-Build/Testing/Setup/Initialize.py", line 56, in <module>
    OSEHRASetup.addMPILocalNumber(VistA)
  File "C:/Users/betsy.mcphail/development/VistA/Python/vista\OSEHRASetup.py", line 179, in addMPILocalNumber
    VistA.write(localNum)
  File "C:/Users/betsy.mcphail/development/VistA/Python/vista\OSEHRAHelper.py", line 199, in write
    self.connection.write(encode(command) + encode('\r'))
  File "C:\Python27\lib\telnetlib.py", line 280, in write
    if IAC in buffer:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 0: ordinal not in range(128)
-- Running PostImportSetup script...
Traceback (most recent call last):
  File "C:/Users/betsy.mcphail/development/VistA-Build/Testing/Setup/PostImportSetupScript.py", line 81, in <module>
    OSEHRASetup.setupVistADomain(VistA,"DEMO.OSEHRA.ORG")
  File "C:/Users/betsy.mcphail/development/VistA/Python/vista\OSEHRASetup.py", line 310, in setupVistADomain
    VistA.write('S $P(^XWB(8994.1,1,0),"^")=' + VistA.IENumber)
  File "C:/Users/betsy.mcphail/development/VistA/Python/vista\OSEHRAHelper.py", line 199, in write
    self.connection.write(encode(command) + encode('\r'))
  File "C:\Python27\lib\telnetlib.py", line 280, in write
    if IAC in buffer:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 0: ordinal not in range(128)
CMake Error at Testing/Setup/ImportRG.cmake:18 (message):
  ERROR: Post Import Setup Failed
Call Stack (most recent call first):
  Testing/Setup/ImportRG.cmake:118 (CheckResult)

Python 3: Convert Non-RAS tests

Convert the rest of the Python scripts used in testing:
XINDEX, Unittest , prefixparsing,and gtm routines parsing python scripts

Test   #1: XINDEX_Accounts_Receivable
..
Test #196: XINDEX_Uncategorized
Test #197: PYTHON_PrefixParser
Test #198: PyUnitTest_TestPatchOrderGenerator
Test #199: PyUnitTest_TestVistATestClient
Test #200: PYTHON_MenuTraversal

FileManDataToHtml.py: Fix string replacement in _getTableRows()

When this file was converted to be Python 3 compatible in #152 , it was difficult to find a solution that worked in both Python 2 and 3, so the replacement was temporarily removed. This issue is to find a solution that works in both versions of Python.

Before:

dataHtmlLink = "<a href=\"%s/%s/%s\">%s</a>" % (VIV_URL, fileNo.replace(".","_"),
                                                       getDataEntryHtmlFileName(ien, fileNo),
                                                       str(name).replace("\xa0", "")) <<< ----- REIMPLEMENT THIS LINE

After:

dataHtmlLink = "<a href=\"%s/%s/%s\">%s</a>" % (VIV_URL, fileNo.replace(".","_"),
                                                       getDataEntryHtmlFileName(ien, fileNo),
                                                       name)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.