flask から外部の python の関数にアクセスして weasis 起動

ローカルの flask から ubuntu server の pacsdb にアクセスして、ある条件で検索して以下のような一覧を得たとします。

このテーブルをクリックすると dicom ファイルがダウンロードされて閲覧できるというイメージです。
ただ、ここではテーブルをクリックしたときに python の関数を呼び出せるかどうかだけをテーマにしています。
これだけでもなかなかに難しいと思います。

テーマとして 2 つあり、1つは python からシェルスクリプトが動かせるのかということ。
もう 1 つは flask から python を呼び出せるのかということです。

python からシェルスクリプトを実行

これはとても簡単です。


import os
os.system('javaws /var/www/html/weasis/weasisStart.jnlp')

これで weasis が起動します。

flask から外部の python の関数を使う

まずは weasis を起動する python を関数化する必要があるようです。

startWeasis.py

import os

def weasis():
    os.system('javaws /var/www/html/weasis/weasisStart.jnlp')

if __name__ == '__main__':
    weasis()

実際に動くことを確認します。


python startWeasis.py

メインのプログラムである dcm01.py を書き換えます。

dcm01.py

from flask import Flask, render_template, redirect
import startWeasis
     .....
@app.route('/weasis/')
def detail():
	return redirect('/'), startWeasis.weasis()  

つまり、自作の python をインポートしてその関数である weasis を呼び出しています。

そして、jquery で動的にルーティングします。

layout.html

$(function(){
	$('td').click(function() {  	
		location.href = "/weasis/" ;
	});
});

シェルスクリプトに変数を渡す

ここでは jquery からいきなり weasis を起動しましたが、本来はその前に dicom ファイルを ftp ダウンロードするプログラムに変数を渡して、それに該当する dicom ファイルをローカルにダウンロードする必要があります。

あともう少しでしょうか。