JMDCでエンジニアをしている堀です。
私の所属するデータウェアハウス開発部 医療機関基盤グループでは、医療機関から受領したデータを取り込んで医療データ分析に利用するシステム開発と保守運用を行なっています。受領データには様々な種類があるのですが、その中から検査値データを処理しているチームの取組について紹介します。
そもそも検査値データとは?
医療機関で検査を受けられた経験はどなたにもあると思います。その検査結果を集めてビッグデータにすれば多様な分析やサービスに利用が可能です。しかし、各医療機関から提出される検査値データのフォーマットは決まっていないため、使えるビッグデータにするのも一筋縄ではいきません。 当社では臨床検査で利用されるJLAC10コードを適用してデータの標準化を図っております。
システム構成
検査値データはAWSで構築されたシステムで処理しています。
Railsアプリでは処理状況を管理しており、ブラウザ上の操作でアウトプットを作れるようになっています。データの取込み処理については割愛しますが、取込んだデータはAthena / S3で処理しています。これにより処理速度と拡張性を両立できています。
さらに、医療データの編集を行うチームは医療系専門職出身のメンバーが多く、非エンジニアです。扱うデータはExcelファイルがメインなので、Google DriveとGoogle Apps Scriptを利用してシステムにデータを取り込めるようにしてあります。
運用しながら改善していく試み
運用フェーズに入るとデータを漫然と処理するだけに陥りがち、そしてトラブルもおきます。
時には、たった1文字の文字コードが異なるせいで(「〜」とか「ー」とか!)、
時には、想定外のデータを取り込んでしまったせいで(重複レコードがランダムに入ってるとか!そもそもデータが違うとか!)、
時には、非エンジニアとの連携による齟齬とか(お互い様です;;)、、、
etc...
こうした日々のタスクに忙殺されることも多く、運用を行うエンジニアのモチベーション維持は大切です。
そこでチームの指標を設定して、振り返りとアクションを起こしていけるような仕組み作りを模索しています。
毎月のサイクルで月初にチェックポイントを設けて、以下の内容のレポートを共有するようにしました。
- 毎月のデータ量とかかったコストを可視化
- チームで処理したタスクと所要時間をデータ化
これらをチェックポイントで共有して振り返りつつ、新たな問題点を抽出して次月までにこなすタスクを作成して、PDCAサイクルを回します。現場ではKPIを忘れがちなので、指標を明確にしてメンバーに認識させることに意義があると思います。このサイクルを回して、受け身なチームではなく能動的なチーム体制で運用していきたいです。
実際に先日行った振返りの場では、システムから大量に通知されるSlackメッセージについての問題提起をするメンバーがいました。通知が大量にくるため、逆に見落としが発生しているとのこと。必要な情報を適切に通知する改修をしたので、確認に無駄にかかっていた時間が短縮できるようなったはずです。
まとめ
検査値データの運用について紹介しましたが、如何でしょうか?
医療系ならではの融通の効かなさを感じる場面がないと言ったら嘘になりますが、運用方法の改善や新技術の導入で難しい局面も乗り越えていけます。エンジニア的には、大量の医療ビッグデータを迅速に捌くシステムの開発運用はチャレンジしがいがあり、埋もれていたデータを付加価値を持ったデータにすることに面白みがあると思っています。少しでも興味を持っていただけたら幸いです。
医療ビッグデータ、と一言でいっても取り組まないといけない課題がまだまだたくさんあります。難易度が高いミッションですが、同時に社会貢献性が高くやりがいがあります。
弊社の事業に興味をお持ちの方おりましたら、ぜひ弊社へのご応募をお待ちしております!