Created
April 3, 2019 08:32
-
-
Save ise/acaf6cf2a6ffd37f71b9d34a2cb689bc to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| JMARECEIPT_ENV="/etc/jma-receipt/jma-receipt.env" | |
| if [ ! -f ${JMARECEIPT_ENV} ]; then | |
| echo "${JMARECEIPT_ENV} does not found." | |
| exit 1 | |
| fi | |
| . $JMARECEIPT_ENV | |
| #-------------------------------------------------------------------------- | |
| # | |
| # ORCA「日医標準レセプトソフト」 | |
| # | |
| # 薬剤情報マスタの取り込みを行う。 | |
| # | |
| # CREATE: 2006/09/26 | |
| # UPDATE: 2007/09/20 グループ診療対応 | |
| # : 2008/02/14 サーバよりデータのバージョン情報を取得するよう修正 | |
| # : 2011/06/08 見直し(コマンド名変更など) | |
| # : 2014/11/17 ver4.8.0対応 | |
| # : 2017/01/17 ver5.0.0対応 | |
| # | |
| #-------------------------------------------------------------------------- | |
| VERSIONFL=${ORCA_DIR}/doc/version | |
| WORKDIR=/tmp/jma-receipt-set-yakujyo-$(date +%Y%m%d) | |
| FTP=http://ftp.orca.med.or.jp/pub/etc | |
| MEDVERSIONFL=medversion.dat | |
| echomsg() { | |
| if [ "${LANG}" = "ja_JP.UTF-8" ] || \ | |
| [ "${LANG}" = "ja_JP.UTF8" ] || \ | |
| [ "${LANG}" = "ja_JP.utf8" ]; then | |
| if [ -z ${2} ]; then | |
| echo -e ${1} | |
| else | |
| echo -en ${1} | |
| fi | |
| else | |
| if [ -z ${2} ]; then | |
| echo -e `echo ${1} | nkf -eW` | |
| else | |
| echo -en `echo ${1} | nkf -eW` | |
| fi | |
| fi | |
| return 0 | |
| } | |
| orcawget () { | |
| #受信ファイル削除 | |
| if [ -e ${1} ]; then | |
| rm ${1} | |
| fi | |
| wget -q --passive-ftp ${FTP}/${1} | |
| #接続確認 | |
| if [ $? -eq 0 ]; then | |
| # echo "wget end OK" | |
| return 0; | |
| else | |
| return 1; | |
| fi | |
| #ファイルサイズチェック | |
| if [ -s ${1} ]; then | |
| return 0; | |
| else | |
| return 1; | |
| fi | |
| } | |
| cleanup_exit (){ | |
| rm -fr ${WORKDIR} | |
| } | |
| trap cleanup_exit EXIT | |
| if [ `whoami` != "orca" ]; then | |
| echomsg "orcaユーザーで実行してください。" | |
| exit 1 | |
| fi | |
| # disk space check | |
| VOLSIZE=`df -m /tmp | tail -1 | sed 's/\s\{1,\}/ /g' | cut -d' ' -f4` | |
| if [ -z "${MINSIZE}" ]; then | |
| #set default 500MB | |
| MINSIZE=500 | |
| fi | |
| if [ $VOLSIZE -lt $MINSIZE ]; then | |
| echomsg "/tmp の使用可能領域が少なくなっています。処理を中止します。[ ${VOLSIZE}MB / ${MINSIZE}MB ]" | |
| exit 99 | |
| fi | |
| # バージョンチェック | |
| VERLIST=`awk '/version/{gsub(/\t| |;/,""); print} ' ${VERSIONFL}` | |
| VERDATA=`echo ${VERLIST} | awk '{i=split($0,arr,"("); print arr[i]} ' ` | |
| VERDATA1=`echo ${VERDATA}| awk '{gsub(/[-)]/,""); print } ' ` | |
| # echo "VERDATA1=" ${VERDATA1} | |
| if [ "${VERDATA1}" != "0408001" ] && \ | |
| [ "${VERDATA1}" != "0500001" ]; then | |
| echomsg "このツールは日レセver5.0.0及び4.8.0用です。" | |
| exit 99 | |
| fi | |
| echomsg | |
| # 作業ディレクトリ作成 | |
| if ! [ -d ${WORKDIR} ]; then | |
| mkdir -m 755 -p ${WORKDIR} | |
| fi | |
| cd ${WORKDIR} | |
| # センタから薬剤情報データ構造バージョン情報をダウンロード | |
| if orcawget yakujyo/${MEDVERSIONFL} ; then | |
| echomsg | |
| else | |
| echomsg "\nセンタからバージョン情報のダウンロードに失敗しました。" | |
| exit 99 | |
| fi | |
| YAKUJYOFL="" | |
| YAKUJYOPHOTOFL="" | |
| medinf=(`ruby -e "ARGF.readlines.each{|l| (min,max,meddata,medphotodata)=l.split(/ /) | |
| if (\"${VERDATA1}\" >= min) and (\"${VERDATA1}\" <= max) | |
| puts meddata + \" \" + medphotodata | |
| exit 0 | |
| end | |
| } " ${MEDVERSIONFL}`) | |
| YAKUJYOFL=${medinf[0]} | |
| YAKUJYOPHOTOFL=${medinf[1]} | |
| if [ -z ${YAKUJYOFL} ]; then | |
| echomsg "\n日レセバージョンに対応した薬剤情報データは存在しません。処理を中止します。" | |
| exit 99 | |
| fi | |
| echomsg "薬剤情報データの取り込みを行います。" | |
| # センタから薬剤情報データをダウンロード | |
| if orcawget yakujyo/${YAKUJYOFL} ; then | |
| echomsg "\nセンタから薬剤情報データのダウンロードが終了しました。" | |
| else | |
| echomsg "\nセンタから薬剤情報データのダウンロードに失敗しました。" | |
| exit 99 | |
| fi | |
| # 薬剤情報データファイルの解凍 | |
| echomsg "薬剤情報データを解凍しています。" | |
| tar xfz ${YAKUJYOFL} | |
| # 薬剤情報データを/tmpへコピー | |
| echomsg "薬剤情報データを/tmpにコピーします。" | |
| cp meddata.txt /tmp | |
| if [ ! -d /tmp/medphotodata ]; then | |
| mkdir -m 755 -p /tmp/medphotodata | |
| mkdir -m 755 -p /tmp/medphotodata/medimage | |
| fi | |
| echo "" > /tmp/medphotodata/path | |
| while [ "${REPLY}" != "Y" ] && \ | |
| [ "${REPLY}" != "y" ] && \ | |
| [ "${REPLY}" != "N" ] && \ | |
| [ "${REPLY}" != "n" ]; | |
| do | |
| echomsg "薬剤情報のイメージファイルをダウンロードしますか? (y/n)" -n | |
| read REPLY | |
| done | |
| if [ "${REPLY}" = "Y" ] || \ | |
| [ "${REPLY}" = "y" ]; then | |
| echomsg "イメージファイルの取り込みを行います。" | |
| if orcawget yakujyo/${YAKUJYOPHOTOFL} ; then | |
| echomsg "\nセンタからイメージファイルのダウンロードが終了しました。" | |
| else | |
| echomsg "\nセンタからイメージファイルのダウンロードに失敗しました。" | |
| exit 99 | |
| fi | |
| # イメージファイルの解凍 | |
| echomsg "イメージファイルを解凍しています。" | |
| tar xfz ${YAKUJYOPHOTOFL} | |
| # イメージデータを/tmpへコピー | |
| echomsg "イメージファイルを/tmpにコピーします。" | |
| mv medphotodata medimage | |
| mv medimage /tmp/medphotodata | |
| echo "/tmp/medphotodata/" > /tmp/medphotodata/path | |
| fi | |
| # 作業プログラムを複写 | |
| # compile COBOL programs | |
| for f in "*.CBL"; do | |
| m=`echo $f | sed 's/CBL$/so/'` | |
| echo -n "Building ${m}..." | |
| ${COBOL} ${COBOLFLAGS} -o ${SITELIBDIR}/${m} \ | |
| -I . \ | |
| -I ${PATCHCOPYDIR} \ | |
| -I ${COPYDIR} \ | |
| -I ${SITESRCDIR}/cobol/copy \ | |
| ${f} | |
| echo "done" | |
| done | |
| # 処理終了 | |
| echomsg "\n薬剤情報データの取り込み処理はすべて終了しました。" | |
| echomsg "\n説明書に従い薬剤情報マスタの更新処理を行ってください。\n" | |
| exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment