こんにちは。
私は現在3次救急病院で勤務している現役の外傷整形外科医です。
私自身、プログラミング言語Pythonを10年以上前に勉強し始め、今でも臨床や研究、日常生活に広く活用しています。
この記事では現場で働きながらプログラミングを活用している医師の立場から
ということについてまとめました。
今回は医師・医療関係者が学ぶべきプログラミングについて記事を書きました。
1.どんな人がプログラミングを学ぶべきなのか?
世の中のIT化が進む現在、世間はプログラミングブームで、
小学校でも授業でプログラミング学習が取り扱われています。
医療業界でも当然、
「プログラミングってどういうもの?」
「面白そうだし、研修医の空いた時間にちょっとやってみようかな?」
「医学生の間にプログラミングやっとけばいつか使えるかな?」
って思う医療関連の人も増えてきています。
私自身は
プログラミングは医学生には必修の知識である
と考えています。
次のような人はぜひ独学でもプログラミングの勉強を始めるべきだと思います。
- 臨床の医師としてだけではなく、研究手法を増やして業績を伸ばしていきたい
- 手術を日々こなしているが、プラスアルファの技術でパワーアップしたい
- 研究を行っているが、エクセルで解析や統計処理をすることに限界を感じている
- 医学生・研修医で時間があって、将来役立ちそうな技術を学びたい
逆に、
- パソコンが嫌い
- 新しい技術を身につける時間がないと思う
という人に無理にすすめるものでもないと思っています。
2.どのプログラミング言語を学ぶべきか
では、どのプログラミング言語を学んだら良いのでしょうか?
あくまで個人的な意見ですが、医療への応用を目的として勉強するのであれば
「Python一択」
です。
Pythonというのは、プログラミング言語の一つで、
データの扱いに特にたけている言語です。
これには反対意見もあると思いますが、迷う人も多いのでここではあえて結論づけておきます。
「世間では他の言語をオススメって言ってるけど?」
と思う人もいるかも知れません。
ここで重要なのは、
「世間でブームのプログラミングと医師が必要とするプログラミング技術は異なる。」
ということを強調しておきます。
世間では、フリーランスや副業の人向けに
「Webプログラミング」、「Webマーケティング」、「Webアプリ開発」
を目的としたプログラミング学習が広く進められています。
最近ではYouTubeやブログのインフルエンサーが、これらの言語をススメているのをよく耳にします。
このプログラミング学習は、
「その技術に頼って稼いで生計を立てていくこと」
を目的にしています。
つまり、仕事をする時に、
「依頼主からの希望をプログラミングで実現化させる」
ためのプログラミング言語です。
その目的に主眼をおくと、
HTML, CSS, Javascript
といった、依頼主の多いWebサービス提供向けのプログラミング言語が選択肢となります。
しかし、臨床現場の医療と相性のよいプログラミング言語は、
「医療ツールとしてのプログラミング言語」
です。
目的が異なるので、学ぶべき言語は異なってきます。
この「ツールとしてのプログラミング言語」
として最適なのが
「Python」なのです。
3.Pythonでできること
Pythonというプログラミング言語でどのような事ができるのでしょうか?
たくさんありますが、代表的な事を紹介していきます。
- 統計・グラフなどデータ解析
- 画像解析(AI)
- 手術シミュレーション
- ソフト間のデータのやり取り
- その他日常での作業効率化
ここでは1つずつ簡単に説明していきます。
①.統計・グラフ
医療従事者であれば、1度は行うであろう
「データを整理してグラフにする」
という作業です。
エクセルでも可能ですが、
- データの数が多い
- 繰り返しの操作が多い
場合には作業が大変です。
Pythonにはmatplotlib, pandas, seabornという統計処理に優れたツールがあります。
少し勉強してそれらを使いこなせるようになれば、このようなグラフが一瞬で描けるようになります。
<searborn galleryより引用>
臨床的には昔から用いられているSPSSという有料ソフトがあります。
しかし、ほとんどの統計処理はPythonの「pandas」というツールでできます。
統計データの形式処理やファイル出力も考えるとPythonとpandasが使えればよっぽどフレクシブルにデータ活用、視覚化ができます。
昔の先生からSPSSをおすすめされることもありますが、時間があって勉強できるのであればPythonのほうが応用性が高いといえます。 繰り返しになりますが、Pythonは無料で使えます。
統計処理、表計算では「R」という優れている無料のプログラミング言語があります。
「R」では機械学習もできるため、いまでも「R」は多くの医療関係者に使用されています。
Pythonではこれに対応する機能pandasがあります。このツールのおかげで、Rにある多くの統計処理をPythonでも扱えるようになりました。
そして、Pythonは統計だけにとどまらず、他にもたくさんの用途に使えるためオススメなのです。
②.画像解析
近頃飛躍的に発展してきた画像診断AIの分野で、Pythonはダントツで使われているプログラミング言語です。
理由は複数ありますが、ディープラーニング、画像解析の分野では「行列計算」が必須です。
Pythonにはこの「行列計算」の実行で大変優れているからです。
この行列計算が用いられるのがAIを用いた画像解析です。
「腫瘍が悪性かどうか人工知能で病理画像を判断する」
「頭部CTから脳出血を判断する」
「レントゲンから骨折の有無を判断する」
といったことを人工知能で行います。
Pythonには機械学習、Deep learning用に開発されたKeras, TensorflowやPytorchというツールが存在します。
これらのツールを使うことはPythonという言語を学習し、画像データを解析することで可能になります。
③.手術シミュレーション
この技術は臨床現場でよく用いています。
私自身は整形外科なので、手術前に複雑な骨折を形状解析し、術前シミュレーションを行っています。
先程のAI同様、Pythonは、立体の構造分析や画像の処理にも優れています。
そしてデータを3Dプリントで出力することで非常に精度の高い手術を行うことが出来ます。
④. ソフト間のデータのやりとり
医療関係の分析ソフトはたくさんあります。画像解析ソフト、運動解析ソフト、手術の電子カルテ、外来の電カルテ・・・
無料ソフトから有料ソフトに至るまで、様々なソフトがあります。
これらのソフトの大部分はその中のデータを出力することができます。
しかし、各ソフトの出力形式や入力形式はまちまちで互換性がありません。
Pythonは
テキストファイルの読み書きが容易
という利点があります。
データを格納し、違うファイルにして書き出してやれば、こういったソフト間の橋渡しをすることも可能になります。
⑤. その他日常のいろいろ
Pythonではいろいろな日常作業を簡略化できます。
例えるとキリがありませんが、私の場合は、
- 手術のデータ整理をPythonで行う ー 基本文法のみ
- 患者アンケートの結果をWebに入力 ー スクレイピング(Selenium)
- PubmedなどWebから論文データを取得し、ChatGPTで自動翻訳する ー API
- 株価や仮想通貨などデータをページからとってきて分析 ー API、pandas, matplotlib
などなど
いろんなことに使えます。