On Sun, Jul 8, 2012 at 12:23 AM, Yaroslav Halchenko <[email protected]>wrote:
With such a size it is worth looking if major part of this is some non > volatile (rarely changing) data which might be packaged separately and just > Depend:ed upon > It would be sad if each update would need 1 gb download > -- > Yes, that's a good point. The same question came up on Friday among VistA developers. :-) http://osehra.org/event/code-convergence-call-thursday-july-12th#comment-640 The good news is that: It is indeed the case that updates will be very small compared to the size of VistA itself. Again, comparing VistA to Linux: Updates usually come in the form of focused updates to one of the many VistA components, and very rarely in the form of a whole system-wide update. Currently VistA is organized into Packages (at least at the file representation level). There are about 125 Packages. The current mechanism for distributing updates is the use of "KIDS" files (Kernel Installation and Distribution System). Some background about it can be found here: http://www.osehra.org/wiki/vista-kidsskids-background KIDS files contain a combination of - pre-installation checks (for example, dependencies) - routine updates - database changes - post-installation steps The KIDS files however, also have some limitations, and the VistA community is now looking at improving this mechanism. There is a lot in this front where Debian packagers could contribute their experience to the improvement of KIDS files. For reference: A collection of the KIDS update files released by the VA is available here: http://code.osehra.org/files/patches/ Let's take for example, these HL7 patches http://code.osehra.org/files/patches/Health%20Level%20Seven/ Here is the actual patch: http://code.osehra.org/files/patches/Health%20Level%20Seven/HL-1P6_SEQ-123_PAT-152.KID and a description of it: http://code.osehra.org/files/patches/Health%20Level%20Seven/HL-1P6_SEQ-123_PAT-152.TXT The patch is only: ~30K. Note that, conceptually, in VistA, the routines are stored as entries in the database (a NoSQL one), and therefore, you can interpret "source code" updates as "database updates". in the KIDS file above, you can see for example in line 217: "RTN","HLOFILER") that refers to the routine HLOFILER http://code.osehra.org/dox/Routine_HLOFILER.html whose source code is: http://code.osehra.org/dox/Routine_HLOFILER_source.html If one follows the lines 127 to 547, in the KIDS file, one can see the listing of the HLOFILER routine, line by line. For example in lines 431-432 of the KIDS file, one finds: 431: "RTN","HLOFILER",107,0) 433: D ^%ZTER Where RTN refers to Routine, HLOFILER is the name of the routine, 107 is the line of code that follow, and the text "D ^%ZTER" is the actual text of that line of code, which matches line 107 in the routine in file: VistA-FOIA/Packages/Health Level Seven/Routines/HLOFILER.m http://code.osehra.org/dox/Routine_HLOFILER_source.html One could imagine that the Debian updates to VistA could be repackaging the KIDS files and then applying them as part of the "vista" package update. Precautions will have to be taken to preserve the "customer" data that may have been put in the VistA database. Consider the highly simplified scenario: a) July 2012: Install VistA b) August 2012 - April 2015: Load patient data into VistA c) September 2015: Install VistA updates, without losing nor damaging (b) As with any other system based on a database, a procedure has to be defined to safely check if the updates can be made without destroying, or reducing the integrity of the customer data in the database. Also, Just like "aptitude" in Debian, VistA has a level of self-awareness of the updates that have been applied to it. This is implemented in the FileMan component of VistA, that also includes a self description of the system. This certainly will be a great topic for a joint hackathon of Debian and VistA developers... :-) -- In summary: 1) Yes, updates to the system can be done in small increments. 2) A mechanism (KIDS) exists for current VistA installations. 3) This mechanism (KIDS) can be improved... 4) Work will have to be done to translate or integrate the KIDS mechanism with the Debian update procedures. 5) In many cases, manual intervention will be needed by the Database Administrator of the local installation, to ensure the integrity of the customer data that has been stored in the database. A word of caution: At this early point of the VistA Debian packaging, this is certainly not intended as the system that you could deploy in a clinical facility. The goal rather is to make VistA readily available to anyone who want to take a look at the system, and get familiar with it, hopefully then joining the VistA community and helping develop, maintain and improve the system. Luis

