BUGs, TODOs

問い合わせへの返答メールに返信できない問題がある。返信できるようにすべて見直す必要あり。

日本動物高度医療センター 管理部 IT・設備課 國分 真理子(こくぶん まりこ)

●失敗
AVIファイルをおいているパス
Q:\名古屋動画サーバ\手術動画\702001-702500\702093柳沢ポテト\20160313OT\2016-03-04 702093\POTETO_YANAGISAWA_20160222142458_1425440

その時のログ
[in#0 @ 0000015f33fc2980] Error opening input: No such file or directory
Error opening input file Q:\名古屋動画サーバ\手術動画\702001-702500\702093柳沢ポテト\20160313OT\2016-03-04.
Error opening input files: No such file or directory
Failed to convert: POTETO_YANAGISAWA_20160222142458_1425440.avi
続行するには何かキーを押してください . . .


●成功
AVIファイルをおいているパス
Q:\名古屋動画サーバ\手術動画\702001-702500\702093柳沢ポテト\20160313OT

その時のログ
Output #0, mp4, to 'Q:\名古屋動画サーバ\手術動画\702001-702500\702093柳沢ポテト\20160313OT\POTETO_YANAGISAWA_20160222142458_1425440_noaudio.mp4':
  Metadata:
    encoder         : Lavf61.1.100
  Stream #0:0: Video: h264 (avc1 / 0x31637661), nv12(progressive), 800x652, q=2-31, 44 fps, 11264 tbn
      Metadata:
        encoder         : Lavc61.3.100 h264_qsv
      Side data:
        cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
[mp4 @ 00000170d6f20080] Starting second pass: moving the moov atom to the beginning of the file
[out#0/mp4 @ 00000170d6f2af00] video:3728KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 0.129619%
frame=  390 fps=147 q=26.0 Lsize=    3733KiB time=00:00:08.81 bitrate=3467.6kbits/s speed=3.32x
Converted: POTETO_YANAGISAWA_20160222142458_1425440.avi to Q:\名古屋動画サーバ\手術動画\702001-702500\702093柳沢ポテト\20160313OT\POTETO_YANAGISAWA_20160222142458_1425440_noaudio.mp4
続行するには何かキーを押してください . . .
dokuwiki_data/scripts/opvs-viewer.php

にて、max-width: 100vw; となっているせいで横幅いっぱいで不評だった

  #app video {
      width: 800px;
      min-width: 60vw;
      max-width: 100vw;
      height: auto;
  }

2024/5/21 日本動物高度医療センター 國分真理子 様 からのご指摘

http://opvs.emuyn.net:8080/index.html?do=login&u=0000&p=0000

を https に対応させるべく、まずは Apache に opvs.conf を新設し、

https://opvs.emuyn.net:8443/index.html?do=login&u=0000&p=0000
https://opvs.emuyn.net:8444

を表示できるようにした。 javascript から http://opvs.emuyn.net:8081 にて /video/ ディレクトリを読もうとしているところを、

https://opvs.emuyn.net:8444

に書き換えた! あとは、start.php の

sudo reboot
crontab -l
sudo crontab -u username -l
sudo docker-compose up -d
/etc/letsencrypt/live/opvs.emuyn.net/fullchain.pem
/etc/letsencrypt/live/opvs.emuyn.net/privkey.pem
sudo docker ps
sudo docker-compose -f /home/ubuntu/dokuwiki/docker-compose.yml up -d
sudo docker-compose -f /home/ubuntu/dokuwiki/docker-compose.yml down
http://opvs.emuyn.net:8080/index.html?do=login&u=0000&p=0000
https://opvs.emuyn.net:8443/index.html?do=login&u=0000&p=0000
  1. ここに未払いをリスト
  • ダイレクトメール送信機能を付ける
    • SAKURA internet の web mail system を使うのでよいのでは?迷惑メールに振り分けられる確率が高そうなので要検討
  • 帳票
    • 編集機能を考えてみる
      • client_company, client_name, client_email の3つだけでも簡単に編集できるようにしたい。直接書き換えでも問題なし。
      • 帳票のコピーを作成するボタンを付ける
    • クリックでアドレスがクリップボードに入るようにボタンを付ける
  • 病院リストを取得する
    • 国土数値情報 医療機関データ 住所付き、一応商用利用禁止にはなっているが公開データなので…
    • 全国版をダウンロードして Nextcloud\商売\広告郵送\ネットで拾ったリストなどの一時保管用 に保管してある
  • 見積書をクリックして注文した場合に不安感が残るので、これを解消する方法を考える。
    • 「クリックして注文手続きに進む」くらいの文言のほうが良い
  • 同日内の複数回手術に対応する必要がある?
    • 手術では例外的なのだが…
  • 手術台帳を取り込んだ際に、それに対応したフォルダ構造を自動構成できるようにすれば便利。
  • 一覧を表示し、ビデオファイルアップロードボタンを付ける。
  • Docker Composeのバージョンが古いと https://opvs.emuyn.net が立ち上がらなくなるので、バージョンアップが必要となる。
    • add-apt-repository にてにDockerの公式リポジトリを追加したので、あとは自動的にアップデートされて問題ないはず。

DONE

  • 契約延長の際のロジックを確認し、間違いが無いように備える
    • 大槻様の薬局グループの場合は手入力で問題なく処理されていたのでおそらく大丈夫。
  • “手術台帳からNCD登録するためのエクセルのサンプル” のページに、呼吸器外科・乳腺外科のエクセルファイルを用意する
  • 手術データの注入 - データ注入のサンプル ページで、架空データによるデータ入力サンプルを押したときに「NCDの表示ができません」となるのを何とかしたい
  • NCD helperの「検索結果全自動抽出」を利用して、専門医領域「心臓血管外科専門医(血管外科部門)」でデータ抽出を行うと、ページ最下部にある「ステントグラフトフォローアップ」の項目が「6ヶ月後」の項目のみが抽出され、「1年後」以降の項目が抽出されません。
    • 可読形式で抽出する際、未対応要素は変換せず抽出するオプションがあっても良い。
    • 抽出に意味がないことがわかっている項目のリストを作っておき、それは可読形式ではない場合でも排除する。
    • API を用いてリストを取得したり、辞書に載っていない項目があれば自動対応するような機能があると良いが。
  • Proxmox 試す

htmlok plugin で php を実行したとき、 DIR は /var/www/emuyn/info/lib/plugins/htmlok になる。 もしくは、DIR を一掃すべき。
念のため、通常の /home/medeputize/www/emuyn/dokuwiki/inc/parser を再設定すべき。

`htmlok` プラグインによって影響を受ける可能性のあるグローバル変数は、主に次のものです。
1. `$INPUT`
2. `$GLOBAL`
3. `$_SERVER`
4. `$_ENV`
5. `$_REQUEST`
6. `$_GET`
7. `$_POST`
8. `$_COOKIE`
9. `$_FILES`
10. `$_SESSION`
これらのグローバル変数は、通常のPHPスクリプトと同様に、`htmlok` プラグインによって生成されたPHPコード内で使用されます。
特に注意が必要なのは、`$INPUT` と `$GLOBAL` 変数です。
- `$INPUT` は、DokuWikiの入力データ(URLパラメータ、POSTデータなど)を扱うためのオブジェクトです。`htmlok`プラグインは、この変数を介して外部からのデータを取得する可能性があります。
- `$GLOBAL` は、DokuWikiのグローバル設定やメタデータにアクセスするためのオブジェクトです。この変数を不用意に変更すると、DokuWikiの動作に影響を及ぼす可能性があります。
そのため、`htmlok` プラグイン内でこれらの変数を使用する場合は、十分に注意が必要です。安全性を高めるには、これらの変数を直接変更するのではなく、適切にサニタイズした上で使用することをお勧めします。
また、セッションデータや Cookie、ファイルアップロードなどを扱う場合も注意が必要です。`htmlok` プラグイン内でこれらの機能を使用すると、潜在的なセキュリティリスクにつながる可能性があります。
自作のプラグインであれば、これらの問題を解決することができます。
具体的には、次のようなアプローチが考えられます。

1. **入力値のサニタイズ**
   - `$INPUT`オブジェクトから取得した値は、適切に無害化(サニタイズ)する必要があります。
   - 例えば、`htmlspecialchars()`関数を使って、HTMLエンティティに変換することで、XSSなどの攻撃を防ぐことができます。
2. **グローバル変数の隔離**
   - プラグイン内で使用するグローバル変数は、独自の名前空間に閉じ込めることで、他の変数への影響を最小限に抑えることができます。
   - 例えば、クラスのスタティックプロパティや、匿名関数の引数で受け取るなどの方法があります。
3. **セキュリティ機能の利用**
   - DokuWikiには、様々なセキュリティ機能が組み込まれています。プラグインではこれらの機能を最大限活用するべきです。
   - 例えば、`auth.php`でアクセス制御を行ったり、`SecurityUtilities`クラスの機能を使ってセキュリティチェックを行うことができます。
4. **適切なエラー処理**
   - プラグイン内で発生したエラーは、適切に処理する必要があります。
   - 単にエラーメッセージを表示するのではなく、ログに記録したり、管理者に通知を送ったりするなどの対策が求められます。
5. **定期的な監視とアップデート**
   - セキュリティ上の問題は常に発生する可能性があるため、定期的に監視しアップデートを適用する必要があります。
   - 公開されているセキュリティ情報を逐次チェックし、プラグインのコードを常に最新の状態に保つ努力が不可欠です。
自作のプラグインであれば、このようなセキュリティ対策を組み込むことで、グローバル変数の影響を最小限に抑え、安全性を高めることができます。ただし、セキュリティには絶対はありませんので、常に注意を払い続ける必要があります。

どのファイルが入れ替わるかわからないので、必ず全て事前に保管しておくこと!