Tuesday 23 April 2013

Further thoughts on "How does MyOSCAR file its records"

I had written the principles behind the filing system for MyOSCAR previously. The current MyOSCAR database server is based on an Open Source product MySQL version 5.1.30. MyOSCAR v1 began its life as an unintentional "fork" of the Indivohealth project. The original Indivohealth project has now been replaced by the totally different Indivo X (or the Smart Indivo) which fully supports the SmartPlatform project. The original Indivo PHR was based on the Berkeley DB which is now owned by Oracle. Over time pressures from a number of research projects necessitated a switch to a relational database. We have been using MySQL for our other projects (OSCAR EMR) so MySQL was a natural choice. However, health documents are still stored as individual documents. MySQL provides some relational structure to facilitate database searches and improve overall database performance.

Now looking into the future, how can we provide storage for potentially very large number of documents, some of which can be very large documents (e.g. the file size of a 30X human genome sequencing file is estimated to be about 500GB). And how can we enable the possibility of an individual storing his health records across multiple databases, which may be physically separate? What do organizations like Google, Facebook, or Twitter teach us about this?

I have started looking at a couple of potential solutions:

NoSQL


SQLite

Will continue...

Tuesday 16 April 2013

Installing MyOSCAR Server (v2) from scratch

[Dr. Peter Hutton-Czapski maintained a much more hands-on detail installation instructions in the OSCAR Manual site.]

Server requirementThe following aren't truly requirements but are what was used during the initial development of this version.
running :
- oracle jdk1.7.0_17
- tomcat 7.0.14
- mysql 5.1.30
build :
- maven 3.0.5



Technical details
The MyOscar Server projects code is a maven2 project. To build the code you run "mvn package" and you should find a war file in the target directory.
The MyOscar Server projects war file should be a standard war file and should in theory deploy like any other war in any normal servlet container (although tomcat is the only one tested).
From a runtime point of view, the server is mostly just a set of network accessible SOAP services with a database back end, there is currently no UI built into the server although in the future a thin set of administrative pages maybe build.

Installation details
1) build the code or get a copy of the war file
2) copy/deploy the war file to tomcat as you would with any war file.
3) When starting tomcat, you can pass a system parameter of "-Dmyoscar_server_config=override.xml" where override.xml is an xml config file which overlays the default one., you will most likely want to at least set the database configuration parameters in here if not smtp parameters as well.
4) start the tomcat server
5) go to the url https://localhost:8091/myoscar_server/, follow the options to go to the install page. This page will setup the database and tables for you. The page will disable itself once the database schema exists to prevent anyone else from running it or accidents from happening. After initial install this is also the admin / monitoring url. There is an option for enabling recaptch on the admin login to mitigate automated hacks, see the recaptcha.txt file.
You will need a client program to access anything, examples include the Oscar EMR, or the MyOscar Client, you will need to remember the administrative user/password you just used in step #5.

Upgrading Installations
Always backup your database before performing an upgrade.
To upgrade the system, just deploy the new war file into tomcat, then start the server.
Upon startup if any database updates are required they are run automatically. There maybe some lines printed denoting the running of these updates they will look similar to : "start update : UpdateTo2"

Testing URL
to be redetermined, old urls no longer supported by cxf, no more browser pings



Installing MyOSCAR Client (v2) from scratch

[Dr. Peter Hutton-Czapski maintained a much more hands-on detail installation instructions in the OSCAR Manual site.]

Server RequirementThe following aren't truly requirements but are what was used during development.
running:
- oracle jdk1.7.0_17
- tomcat 7.0.14 (version 6 is not sufficient)
build:
- maven 3.0.5



Overview
This is one of the client side applications for the MyOscar Server (v2) program. The MyOscar Client program is primarily intended to be used by patients to view and control the data in their medical records. Generally speaking doctors/providers should be using an EMR for their access like the Oscar EMR.

Technical details
This is a maven2 project. To build the code you run "mvn package" and you should find a war file in the target directory. The projects war file should be a standard war file and should in theory deploy like any other war in any normal servlet container (although tomcat is the only one tested). From a runtime point of view, the client is just a set of web pages which communicate with the MyOscar Server's web services. The client side has no data store and does not maintain or store any data (other than tomcat access logs).

Installation details
1) build the code or download the war archive
2) deploy/copy the war file into a servlet container like any standard war.
3) When starting tomcat, you can pass a system parameter of "-Dmyoscar_client_config=override.xml" where override.xml is an xml file which overlays the default one. The only really important setting right now is "myoscar_server_base_url" = "https://localhost:8091/myoscar_server/ws" That needs to point to the SOAP url that's running your MyOscar Server. If you go to it with a web browser it would be the page that is says "Available SOAP Services:" as the first line.
4) go to the client url, i.e. https://127.0.0.1:8096/myoscar_client/, you should be at the login screen. You should be able to login with the default user/password you specified in the MyOscar Server installation.