$30 off During Our Annual Pro Sale. View Details »

新型コロナウイルス感染者情報管理 by Redmine

Ysaku
May 22, 2021

新型コロナウイルス感染者情報管理 by Redmine

redmine.tokyo 第20回勉強会にて発表した資料です(一部修正しています)

https://redmine.tokyo/issues/1230

Ysaku

May 22, 2021
Tweet

Other Decks in Programming

Transcript

  1. 新型コロナウイルス感染者情報管理
    by Redmine
    redmine.tokyo 第20回勉強会
    Ysaku, 2021/5/22

    View Slide

  2. 自己紹介
    • 居住地: 山梨県
    • 業種: 製造業・生産技術
    • Redmine 使用歴: 約2年
    • 様々な業務上での課題の進捗管理に活用

    View Slide

  3. 目次
    • サイトの作成経緯
    • サイトの紹介
    • 概要
    • 動作環境
    • プラグイン
    • パッチ
    • 更新の仕組み
    • 山梨県
    • 長野県
    • 課題
    • 展望

    View Slide

  4. サイトの作成経緯
    山梨県/新型コロナウイルス感染症に関する発生状況等
    https://www.pref.yamanashi.jp/koucho/coronavirus/info_coronavirus_prevention.html
    問題点
    • 関連情報の追跡が困難
    • 特定の情報の抽出が困難
    抜粋
    Redmine の項目に当てはめれば
    見やすくなるのでは…?














    ただの文字列

    View Slide

  5. サイトの紹介
    https://cov19jp.info
    Theme:
    • PurpleMine2
    Plugins:
    • redmine_cfreport 0.0.4※
    • redmine_custom_auto_complete 0.0.1
    • redmine_issue_title_changer 0.0.1※
    • redmine_message_customize 0.1.0
    • redmine_tags 4.0.0※
    • view_customize 2.7.0
    Patch:
    • QA #1192: Redmineの活動画面に、チケット
    の変更を全て表示する。 - Unofficial Redmine
    Cooking - redmine.tokyo
    ※独自カスタマイズ

    View Slide

  6. サイトの紹介
    都道府県一覧
    (プロジェクト一覧)
    感染者一覧
    (チケット一覧)
    感染者情報
    (チケット)
    カレンダー表示

    View Slide

  7. 動作環境
    • サーバー:
    • Conoha VPS(最小構成: 682円/月(1.1円/時))
    • メモリ: 512MB
    • CPU: 1Core
    • OS:
    • CentOS 8
    • Redmine:
    • RedMica version 1.2.0.devel.f2cb1f1 (based on Redmine 4.1.1.devel.20401)
    • DB:
    • PostgreSQL 10.14

    View Slide

  8. プラグイン
    • Redmine message
    customize plugin
    • View Customize plugin
    • Redmine Tags
    • Redmine Custom Auto-
    Complete plugin
    • Redmine CFReport
    plugin
    • Redmine Issue Title
    Changer plugin

    View Slide

  9. プラグイン
    一部抜粋
    225行のYAMLで管理
    • Redmine message
    customize plugin
    • View Customize plugin
    • Redmine Tags
    • Redmine Custom Auto-
    Complete plugin
    • Redmine CFReport
    plugin
    • Redmine Issue Title
    Changer plugin
    source:
    https://github.com/ishikawa999/redmine_message_customize

    View Slide

  10. プラグイン
    • Redmine message
    customize plugin
    • View Customize plugin
    • Redmine Tags
    • Redmine Custom Auto-
    Complete plugin
    • Redmine CFReport
    plugin
    • Redmine Issue Title
    Changer plugin
    様々なJavaScript/CSSを適用中
    source:
    https://github.com/onozaty/redmine-view-customize

    View Slide

  11. プラグイン
    • Redmine message
    customize plugin
    • View Customize plugin
    • Redmine Tags
    • Redmine Custom Auto-
    Complete plugin
    • Redmine CFReport
    plugin
    • Redmine Issue Title
    Changer plugin
    感染者一覧表示画面
    ID列非表示
    モバイル環境で
    表示を切り替え
    IDを題名に置き換え
    https://cov19jp.info/projects/nagano/issues
    source:
    https://github.com/onozaty/redmine-view-customize
    タイトル(〇〇例目)
    をIDのデザインに変更

    View Slide

  12. プラグイン
    • Redmine message
    customize plugin
    • View Customize plugin
    • Redmine Tags
    • Redmine Custom Auto-
    Complete plugin
    • Redmine CFReport
    plugin
    • Redmine Issue Title
    Changer plugin
    詳細表示画面
    履歴非表示
    https://cov19jp.info/issues/5340
    source:
    https://github.com/onozaty/redmine-view-customize

    View Slide

  13. プラグイン
    • Redmine message
    customize plugin
    • View Customize plugin
    • Redmine Tags
    • Redmine Custom Auto-
    Complete plugin
    • Redmine CFReport
    plugin
    • Redmine Issue Title
    Changer plugin
    詳細表示画面(一覧表示画面、カレンダーでも対応)
    https://cov19jp.info/issues/5849
    source:
    https://github.com/onozaty/redmine-view-customize

    View Slide

  14. プラグイン
    • Redmine message
    customize plugin
    • View Customize plugin
    • Redmine Tags
    • Redmine Custom Auto-
    Complete plugin
    • Redmine CFReport
    plugin
    • Redmine Issue Title
    Changer plugin
    症状等をタグで分類 サマリー表示
    (独自カスタマイズ)
    https://cov19jp.info/projects/nagano/issues
    source:
    https://github.com/sk-ys/redmine_tags/tree/test

    View Slide

  15. プラグイン
    or フィルター
    (標準)
    and フィルター
    (独自カスタマイズ)
    ※JavaScript 必須
    • Redmine message
    customize plugin
    • View Customize plugin
    • Redmine Tags
    • Redmine Custom Auto-
    Complete plugin
    • Redmine CFReport
    plugin
    • Redmine Issue Title
    Changer plugin
    https://cov19jp.info/projects/nagano/issues
    source:
    https://github.com/sk-ys/redmine_tags/tree/test

    View Slide

  16. プラグイン
    • Redmine message
    customize plugin
    • View Customize plugin
    • Redmine Tags
    • Redmine Custom Auto-
    Complete plugin
    • Redmine CFReport
    plugin
    • Redmine Issue Title
    Changer plugin
    テキスト書式カスタムフィールドを検索可能に
    (View Customize Plugin で暫定カスタマイズ)
    https://cov19jp.info/projects/yamanashi/issues
    source:
    https://github.com/taikii/redmine_custom_auto_complete
    ViewCustomize#23
    • 非公開(ソースコードでは確認可能)
    • 可能であればプラグインへ反映したい…

    View Slide

  17. プラグイン
    • Redmine message
    customize plugin
    • View Customize plugin
    • Redmine Tags
    • Redmine Custom Auto-
    Complete plugin
    • Redmine CFReport
    plugin
    • Redmine Issue Title
    Changer plugin
    カスタムフィールドを
    レポート表示
    …課題
    https://cov19jp.info/projects/nagano/issues/report
    source:
    https://github.com/sk-ys/redmine_cfreport

    View Slide

  18. プラグイン
    • Redmine message
    customize plugin
    • View Customize plugin
    • Redmine Tags
    • Redmine Custom Auto-
    Complete plugin
    • Redmine CFReport
    plugin
    • Redmine Issue Title
    Changer plugin
    4031例目 - 長野県 - 新型コロナウイルス感染者情報(非公式)
    報告 #5340: 4031例目 - 長野県
    - 新型コロナウイルス感染者情報(非公式)
    コメント:
    暫定的に作成したが、汎用性を持たせたプラグインとして
    公開出来れば…
    source:
    https://github.com/sk-ys/redmine_issue_title_changer

    View Slide

  19. パッチ
    • QA #1192: Redmineの活動画面に、
    チケットの変更を全て表示する。 -
    Unofficial Redmine Cooking -
    redmine.tokyo
    https://cov19jp.info/projects/yamanashi/activity?from=2021-05-20
    カスタム
    フィールド
    https://redmine.tokyo/issues/1192

    View Slide

  20. 更新の仕組み - 山梨県
    www.pref.yamanashi.jp cov19jp.info
    ローカル
    • WEBから感染者情報を取得
    • 山梨県/新型コロナウイルス感染症に関する発生状況等
    • https://www.pref.yamanashi.jp/koucho/coronavirus/info_coronavirus_prevention.html
    差分確認
    Beautiful Soup
    • 情報取得経路
    • で情報取得~Redmineの更新を行う

    View Slide

  21. 例 - 山梨県 https://cov19jp.info/issues/5105
    ↓ ※更新がある場合、書き換えとなる

    View Slide

  22. 例 - 山梨県 https://cov19jp.info/issues/5105
    ↓ ※更新がある場合、書き換えとなる

    View Slide

  23. 例 - 山梨県 https://cov19jp.info/issues/5105
    ↓ ※更新がある場合、書き換えとなる
    カテゴリー
    カスタムフィールド
    (長いテキスト)
    開始日
    期日
    題名
    関連するチケット
    ステータス
    重要度
    感染, 回復, 死亡,
    回復または死亡,
    不明, 取り下げ
    カスタムフィールド
    説明

    View Slide

  24. 更新の仕組み - 長野県
    • 以下のサイトから情報を取得
    • 発生状況オープンデータ
    • https://www.pref.nagano.lg.jp/hoken-
    shippei/kenko/kenko/kansensho/joho/documents/200000_nagano_covid19_patients.csv
    • 性別、年代、居住地、職業、感染状況、回復フラグ等
    • ファイルタイプ: CSV
    • プレスリリース一覧
    • https://www.pref.nagano.lg.jp/kansensho-taisaku/happyou/20210210.html
    • 性別、年代、居住地、職業、症状、経過、行動歴、接触者、市No.等
    • ファイルタイプ: PDF
    • データに関して
    • 公開方法の変更が多い
    • (以前はWeb、RSSから取得していた時期もあった)
    • フォーマットの変更が多い
    • PDFは表記ゆれが多いため、なるべく共通項目はCSVから取得

    View Slide

  25. 更新の仕組み - 長野県
    www.pref.nagano.lg.jp
    cov19jp.info
    差分確認
    長野県
    長野市
    松本市
    オープンデータ
    ローカル
    オープンデータ
    x3
    PowerQuery
    • 情報取得経路
    • で情報取得~Redmineの更新を行う

    View Slide

  26. Pythonでの更新の様子

    View Slide

  27. 例 – 長野県(松本市)
    https://cov19jp.info/issues/5944
    No 4472
    都道府県名 長野県
    市区町村名 松本市
    事例確定_年月日 2021/5/19
    患者_居住地 松本市
    患者_年代 20代
    患者_性別 女性
    患者_職業 自営業従業員
    患者_状態 無症状
    患者_渡航歴の有無フラグ 0
    患者_退院等済フラグ 0
    備考
    オープンデータ
    PDF

    View Slide

  28. No 4472
    都道府県名 長野県
    市区町村名 松本市
    事例確定_年月日 2021/5/19
    患者_居住地 松本市
    患者_年代 20代
    患者_性別 女性
    患者_職業 自営業従業員
    患者_状態 無症状
    患者_渡航歴の有無フラグ 0
    患者_退院等済フラグ 0
    備考
    例 – 長野県(松本市)
    https://cov19jp.info/issues/5944
    オープンデータ
    PDF

    View Slide

  29. 課題
    • 一部が手動対応のまま
    • 県や市の更新情報の反映 … 突然フォーマットが変更になるため完全自動化が困難
    • 関連する感染者の追加 … 頑張ればできそう、「100~105例目」等への対応
    • タグの追加 … 表記ゆれへの対応、Redmine Tags プラグインのAPI対応
    • サマリー関連
    • 表示の崩れ、表示速度、モバイル最適化
    • サーバーが貧弱
    • 暫定的にJavaScript で書き換えている部分が多い → 本体のカスタマイズが必要
    • 更新用Python スクリプトが公開できる状態にない

    View Slide

  30. 展望
    • 対応都道府県の追加
    • サーバー増強
    • 更新者の追加
    • (各都道府県市町村担当者に対応いただくのが理想?)
    • グラフの追加
    • 統計情報の充実
    • 関連する感染者のグラフ表示
    • 地図表示
    • 新型コロナウイルスの一日も早い収束

    View Slide