ニートの言葉

元ニートがやってみたこと・その過程で学んだこと・考えたこと・技術メモあたりを主に書いています。情報革命が起きた後に訪れるであろう「一億総ニート時代」の生き方を考え中です。

オープンソースの電子カルテOpenDolphinとORCAの連携メモ

こんにちは、あんどうです。

最近、お医者さんからの案件で電子カルテを触ってみる機会があったため、オープンソースの電子カルテ「OpenDolphin」とレセコン「ORCA」を試してみたのですが、連携する際に苦戦したので経緯や解決策をメモしておきます。

需要は少ないと思いますが、世の中にはもしかしたら同じ問題にぶつかる人もいらっしゃるかもしれないので、基本的には自分用のメモとして残しておきます。*1

やりたかったこと

ORCAで受付を行った際にOpenDolphinへデータの連携

環境

  • サーバー:ubuntu16.04
  • クライアント:Mac/Win/Linuxどれでも対応できるように
  • ORCA:サーバーにインストール(のちにDockerコンテナ化)
  • OpenDolphin:Dockerで設置

問題

ORCAで患者を登録し、受付が完了した際にOpneDolphinでデータが受信ができなかった。(閉塞となっていた)

原因

おそらく直接的な原因としては、公式で提供されているOpenDolphinのイメージでは5002番のポートが開いていなかったことによってORCA→OpenDolphinのデータ連携が出来ない状態になっていたようです。

解決策

GithubにあったOpenDolphinの設定を変えた上で自前でビルドすることで解決しました。

以下は経緯と手順のメモとなります。

経緯と手順のメモ

ORCA

  • ORCAのインストールはDockerでも公式でもOK
  • DBへのアクセス権は設定する必要がある(postgresql.conf と pg_hba.conf の編集)
  • 医者・患者のデータは登録しておく必要がある

Open Dolphin

  • こちらの参考ページでは操作している端末のIPを指定しているため、公式のDockerイメージだとクライアント経由で通信することになってそう(未調査)
  • サーバー間で通信するためにはport5002で受け付けるようにcustom.propertiesの操作が必要になる
  • しかし、公式のDockerイメージではcustom.propertiesは読み込み専用になっており、操作不可だったためDockerイメージから手を加える必要がある
  • ところが、Githubに置いてあるDockerfileはそのままだとビルドに失敗する
  • エラーを見ていくと、OpenDolphinのビルド時に使っていたFROMイメージ(jboss/wildfly)のバージョンがずれていることが原因のよう
  • そこで、jdkやwildflyのバージョンを下げた(バージョンを下げるのは気乗りしないが、今回はモックアップ作成のために動かすことが目的なのでOK)
  • また、custom.propertiesのコードを変更し、bindIPを0.0.0.0にした(ここはdockerのコンテナに割り当てたIPで良いはず)
  • ここまでで5002で受付はOK。ドルフィン側のDBに登録されていることも確認。しかし、患者のデータはドルフィンのUIに出てこなかった
  • ドルフィンDBを確認したところ、ドルフィンの医療機関コードは1.3.6.1.4.1.9414.70.1に固定であるのに対し 公式のgithubにあるドルフィンイメージ内のcustom.propertiesでは1.3.6.1.4.1.9414.2.1となっていた
  • そこで、このIDを1.3.6.1.4.1.9414.70.1に合わせたところ、動作した

修正後のDockerfileはこんな感じです。
gist.github.com

以上です。

まとめ

OpenDolphinのGithubは4ヶ月前にも更新されているけれど、DockerImageの方はメンテナンスされてないのが問題だったみたい。 今回はバージョンを下げて対応したけれど、本来であれば最新のソースが動くコンテナイメージを作るべき。

参考にしたページ

ゼミの飛翔: ORCAとOpenDolphin

ORCA Project: 日医標準レセプトソフト Ubuntu 16.04 LTS(Xenial Xerus)のインストールドキュメント(HTML版)

受付から送って受付情報が閉塞で表示される - OpenDolphin - シンプルな電カル OpenDolphin の導入を支援します

GitHub - dolphin-dev/OpenDolphin: Open Source EHR Application

*1:お問い合わせいただきましても返答出来かねますのでご了承ください

24時間生放送をし続ける人工知能youtuberを作る その3「コメント取得・会話」

こんにちは、あんどう(@t_andou)です。

24時間生放送をし続ける人工知能Youtuberを作る企画、第3回目の記事です。
前回はコメントを取得しようとして失敗しましたので、その続きです。

今回も技術よりの記事になります。

前回の記事

blog.takuya-andou.com

今回やること

前回失敗に終わったコメント取得をし続けるものを作ります。

やり方はいくつか案がありましたが、Selenium/Chrome/Pythonを使うことにします。

作り方

1.こちらのページを参考にselenium+chrome+Pythonの環境を構築

2.Pythonのスクリプトを書く(下記のような処理にしています)

  1. chromeを起動
  2. Youtubeへアクセスし、チャット部分のURL(iframe)を取得
  3. チャットにアクセスし、毎秒新しいコメントが無いかをチェック
  4. 新しいコメントがあったらprintする

完成

一晩放置して稼働させてみたところ、無事動きました。


24時間生放送をする人工知能を作る「一晩放置するテスト放送」

ソース

githubにソースをあげました。使い方はREADMEに書いています。

github.com

参考にしたページ

Docker上でSeleniumとHeadless ChromeとPython3を動かす - Qiita

次回

今回まであまり人工知能っぽくない内容になりましたが、次回から人工知能らしい内容(顔の変換・声の変換あたり)に触れていきたいと思います。 

24時間生放送をし続ける人工知能youtuberを作る その2「コメント取得・会話」

こんにちは、あんどう(@t_andou)です。

24時間生放送をし続ける人工知能Youtuberを作る企画、第2回目の記事です。
前回は概要を書きましたが、今回から実際に作っていきます。

今回はちょっとだけ技術よりの記事になります。

前回の記事

blog.takuya-andou.com

今回やること

前回の終わりにも記載しましたが

・YoutubeLiveで投稿されたコメントを取得
・コメントに対して反応をするものを組み込む
・画面上に表示するようにする

この三つをやっていきます。

作り方

作り方を載せておきます。

ソース

githubにソースをあげました。使い方はREADMEを読んで下さい。

github.com

参考にしたページ

この辺りのページを参考にしました。

YoutubeLiveで投稿されたコメントを取得

メモ帳 | Youtube LiveStreaming APIで配信のコメントを取得する

【 メモ 】YoutubeLiveのコメント取得 ( Python ) : エンジニア速報

コメントに対して反応をするものを組み込む

まずは簡単に使えそうなリクルートさんの対話APIを使ってみました

TalkAPI|PRODUCT|A3RT

docomoさんの方が履歴に沿った対話を出来るようですので、いずれは変えるかもしれないです。

画面上に表示するようにする

ここに関してはOBSを利用しターミナルの画面をキャプチャして映しました。

完成(でも失敗)

動くところまでは出来ました。しかし、後述する原因で30分程度で停止してしまいました。

Youtubeの公式サイトでアーカイブ動画を見ると生放送時のチャットの様子が見えます。

youtu.be

失敗した原因

YoutubeDataAPIで1日に叩ける上限が10,000回?なのに対して、0.5秒おきに叩いていたのですぐに使い切ってしまったようです。

これでは24時間放送を続けるというのは難しいので、何か対策を考えないといけないです。

対策案

メモ程度に今の考えを載せておきます。

案1:コメビュとうまく連携出来ないかを考える

vip-jikkyo.net

案2:seleniumを使う

チャット部分の変化を監視し続けてコメントを取り出せないか。
技術的には可能そうなので、これから進めてみるのが無難か。

案3:Youtube以外でコメントを受け付ける

そもそもコメントの受付はYoutubeの外で行うようにすれば良いのでは?と言う考え。

でも、出来ればYoutube内で完結させたいため最終手段としたい。

次回

引き続きコメント取得をして反応する部分を作ります。 → 作りました

blog.takuya-andou.com

 

 

24時間生放送をし続ける人工知能youtuberを作る その1

こんにちは、あんどう(@t_andou)です。

少し前ですが、こんなニュースが話題になっていました。
詳細は深追いしていませんが、ニュースキャスターの人物モデルをコンピューターで再現して音声も読み上げさせているようです。

japan.cnet.com

また、政治やエロ方面で問題になっていましたが、deepfakesと言う「顔をすごくリアルに入れ替えることができる技術」も話題になっています。
japanese.engadget.com

去年は3Dモデルを使った『Vtuber』が流行りましたが、今後はこう言ったリアルなアバター?がいろんな方面で出てくるんでしょうね。

と言うことで、今回からその基礎になるようなものを作ってみたいと思います。*1
とは言え、ただリアルな見た目・リアルな声のYoutuberだとしたら、実写で良いのでは?と突っ込まれそうですので、 生身だと出来ないこと…具体的には『24時間生放送をする人工知能Youtuber』を最初の完成形として目指したいと思います。

完成形のイメージ

すごくザックリとこんなイメージです

・視聴者からコメントが来たらそれに対して返答をする
・表情や声は出来るだけ実際の人物っぽく
・BGMも人工知能で生成したものを使う
・24時間放送し続ける

将来的にはニュースとかお笑いなどの要素を取り入れていけたら面白いかもしれないですが、そこまで先のことは考えずにやってみます 

どうやって作るのか

こんな流れでイメージしていますが、壁にぶつかった場合はやり方を変えて行くこともあると思います。

その辺りは臨機応変に進めていきますので、ご了承ください。

次回

・YoutubeLiveで投稿されたコメントを取得
・コメントに対して反応をするものを組み込む
・画面上に表示するようにする

この辺りまで作っていきたいと思います

→書きました 

blog.takuya-andou.com

 

チャンネル登録お願いします

このチャンネルで放送しますので、良ければチャンネル登録をよろしくお願いいたします。

www.youtube.com

*1:出来るかどうかは分からないですが、とりあえず挑戦していくスタンス

サービスを作りたい人のための「あんどう開発室(仮)」を作りました

こんにちは、あんどう(@t_andou)です。

この度、サービスを自分で作りたい人のためのコミュニティあんどう開発室(仮)」を作りましたのでご紹介させてください。(参加無料です)

この記事の内容

  • あんどう開発室(仮)を作りました
  • 概要
    • どんなもの?
    • 何をするの?
    • 入るのに条件はある?
    • 向いてる人
  • 参加するには
  • 最後に
続きを読む

副業で作り始めたwebサービスの1年を振り返る

こんにちは、あんどう(@t_andou)です。

副業でスタートしたwebサービスですが、作り始めて1年が経過しました。

まだ成功とも失敗とも言えない状況ですので物語としては大して面白くもないとは思いますが、備忘録としてこの1年の振り返りをまとめておきたいと思います。

この記事に書いてあること

  • 何を作ったのか
    • なぜ作ったのか
    • なぜ競艇なのか
  • 経緯
    • 2017年9月
    • 2017年10月
    • 2017年11月
    • 2017年12月
    • 2018年1月
    • 2018年2月
    • 2018年3月
    • 2018年4月
    • 2018年5月
    • 2018年6月
    • 2018年7月
    • 2018年10月
    • 2018年11月
    • 2018年12月1日
  • 現在の状況 
    • メンバーについて
    • 収支について
    • ユーザー数について
    • PVについて
  • 良かったこと
    • その1.完成度はともかく公開してみたこと
    • その2.有料のサービスにしたこと
  • 最後に

対象読者

・Webサービスを作ってみたい人
・自分のサービスで生きていきたい人
・サービス作りの流れに興味がある人

続きを読む

競艇予想人工知能「みずはのめ」の今後について

こんにちは、あんどう(@t_andou)です。

この1年ほど開発を続けてきた競艇予想AI「みずはのめ」ですが、大幅にバージョンアップしていますので、今後の方針についてここで発表させてください。*1

開発中のサイト
v2.mizuhanome.net

この記事の内容

  • 今後の方針
    • これまで 
    • これから
    • 将来的には
  • 大きな更新点
    • 1.チャットが出来ました
    • 2.ユーザーフォーラムを設置しました 
    • 3.皆様の予想を投稿出来るようになりました
    • 4.予想を販売することが出来るようになりました
    • 5.ユーザー予想ランキング
  • その他の更新点
    • 1.直前予想を出すようにしました
      • 直前情報無しの予想(例1)
      • 直前情報を取り入れた予想(例1)
      • 直前情報無しの予想(例2)
      • 直前情報を取り入れた予想(例2)
    • 2.結果が分かるようになりました
    • 3.当日以外のデータが見れるようになりました
    • 4.バックテストの期間が変わります
    • 5.バックテストで選べる条件が増えました
    • 6.デザインがオシャレになりました 
  • 今後
    • 1.予想売買のプラットフォームへ
    • 2.自動購入
    • 3.データの提供→競艇×機械学習のプラットフォームへ 
    • 4.予想投稿用APIの作成
  • まとめ

*1:※画面は開発中のものですので、今後変更になります。

続きを読む