2016年6月29日水曜日

中間発表に向けての準備

いよいよ中間発表が迫ってきました。今日はその準備です。まず中間発表の流れを考えます。
  • これまでやってきたこと(3年生秋学期~今日まで)
    • VMware上にLinuxインストール
    • Javascriptの勉強
    • PHP+MySQL
    • 成果:ボールゲーム(オープンキャンパスでパネルからリンク)
  • 卒研テーマ:在宅医療を支援するための医事会計システム(ORCA)連携スマホアプリの開発
    • 概要:
    • 研究の目的(この研究は何のためにやるのか):
    • 目標(卒研でどこまでを目標とするか):
    • 現状(どこまで研究が進んでいるか、今後何をしなければならないか、何か問題はないか):
      • これについては、現在Monacaで開発中のスマホアプリを報告する
      • 患者一覧→患者の受診履歴

VMwareのインストール


VMwareの初期画面

VMwareはWindowsパソコンでLinuxを利用するために必要なコンピュータの仮想化ソフトウェアです。使用したのはVMware Workstation 12 Playerです。

CentOSのインストール

VMware上で稼働するCentOS 6.7

次にVMware上にCentOSをインストールしました。バージョンはCentOS 6.7です。これは、Javascriptの勉強をするためのWebサーバとして稼働させたものです。WebサーバにはApacheを用いました。

ボールゲームの作成

javascriptで開発したボールゲーム
javascriptを勉強するためにボールゲームを作成しました。このゲームは、画面上に3つのボール(バスケットボール、サッカーボール、赤いボール)を動かせ、バスケットボールを上下左右のボタンでコントロールし、サッカーボールにぶつけたら得点、赤玉にぶつけたら減点するというルールで一定の時間内に何点取れるかを競うゲームです。PCだけでなくスマホでも楽しめ、オープンキャンパスで展示しました。

在宅医療を支援するための医事会計システム(ORCA)連携スマホアプリの開発

次に4年生になってから卒研テーマを決定しました。テーマは、診療所内で動いている医療情報システムを、訪問診療の際に、スマホから利用できるようにするシステムを開発することです。なぜこのようなシステムを開発しようとしたかと言うと、医師が訪問先の患者宅や自宅で患者情報を確認したり、処方内容や検査内容を見たいとき、スマホで手軽に見ることができたら便利だと考えたからです。しかし、これはあくまでもで私たちが想像したことで、実際にそのような必要性があるかどうかはきちんと調査しなければなりません。
今回は、医療情報システムとして、日本医師会が開発した日医標準レセプトORCAを利用することにしました。これはいわゆる開業医向けのレセコンです。なぜ、ORCAを選んだかと言うと、ORCAは無料で使えるからです。それだけでなく、全国で1万6千を超えるユーザがいるので、開発したシステムが利用される可能性もあると考えたからです。また、ユーザが多い分、技術情報もたくさんネットから得られるます。しかし、何よりも魅力なのは、ORCAが日医標準レセプトAPIというWebAPIを提供していたことです。WebAPIがあれば、スマホのアプリから簡単にORCAの機能を利用できます。ORCAの内部構造を知らなくても簡単に連携ができるのです。

ORCAのクライアント(患者登録画面)

システム構成図

開発するシステムの構成は次のようになっています。

システム構成

スマホアプリからORCAサーバに向けて患者情報や受診履歴などのリクエストを行います。その際、スマホアプリは日医標準レセプトAPIを利用します。 今回、スマホアプリは3年次生の時に勉強したjavascriptで作成しました。開発環境としてはクラウド型スマホアプリ開発環境であるMonacaを利用しています。MonacaはHTML5+javascriptでハイブリッドスマホアプリを開発できる開発環境です。また、javascriptライブラリとしてはjQueryを利用しました。そのjavascriptを使ってHttpRequestを利用してORCAサーバにHTTPリクエストを送ります。すると、ORCAはリクエストに対するレスポンスをXML形式で返してきます。たとえば、次のXMLデータは、スマホが患者基本情報を要求したときのレスポンスデータです。

<?xml version="1.0" encoding="UTF-8"?>
<xmlio2>
  <patientinfores type="record">
    <Information_Date type="string">2016-06-29</Information_Date>
    <Information_Time type="string">09:18:03</Information_Time>
    <Api_Result type="string">00</Api_Result>
    <Api_Result_Message type="string">処理終了</Api_Result_Message>
    <Reskey type="string">Patient Info</Reskey>
    <Patient_Information type="record">
      <Patient_ID type="string">00001</Patient_ID>
      <WholeName type="string">川崎 太郎</WholeName>
      <WholeName_inKana type="string">カワサキ タロウ</WholeName_inKana>
      <BirthDate type="string">1958-07-06</BirthDate>
      <Sex type="string">1</Sex>
      <HouseHolder_WholeName type="string">川崎 太郎</HouseHolder_WholeName>
      <Relationship type="string">本人</Relationship>
      <Home_Address_Information type="record">
        <Address_ZipCode type="string">7010114</Address_ZipCode>
        <WholeAddress1 type="string">岡山県倉敷市松島</WholeAddress1>
        <PhoneNumber1 type="string">086-462-1234</PhoneNumber1>
        <PhoneNumber2 type="string">086-462-1111</PhoneNumber2>
      </Home_Address_Information>
      <Community_Cid_Agree type="string">False</Community_Cid_Agree>
      <FirstVisit_Date type="string">2016-06-11</FirstVisit_Date>
      <LastVisit_Date type="string">2016-06-12</LastVisit_Date>
      <HealthInsurance_Information type="array">
        <HealthInsurance_Information_child type="record">
          <Insurance_Combination_Number type="string">0001</Insurance_Combination_Number>
          <InsuranceCombination_Rate_Admission type="string">0.30</InsuranceCombination_Rate_Admission>
          <InsuranceCombination_Rate_Outpatient type="string">0.30</InsuranceCombination_Rate_Outpatient>
          <InsuranceProvider_Class type="string">060</InsuranceProvider_Class>
          <InsuranceProvider_Number type="string">330019</InsuranceProvider_Number>
          <InsuranceProvider_WholeName type="string">国保</InsuranceProvider_WholeName>
          <HealthInsuredPerson_Symbol type="string">あいう</HealthInsuredPerson_Symbol>
          <HealthInsuredPerson_Number type="string">123456</HealthInsuredPerson_Number>
          <HealthInsuredPerson_Assistance type="string">3</HealthInsuredPerson_Assistance>
          <HealthInsuredPerson_Assistance_Name type="string">3割</HealthInsuredPerson_Assistance_Name>
          <RelationToInsuredPerson type="string">1</RelationToInsuredPerson>
          <HealthInsuredPerson_WholeName type="string">川崎 太郎</HealthInsuredPerson_WholeName>
          <Certificate_StartDate type="string">2016-06-05</Certificate_StartDate>
          <Certificate_ExpiredDate type="string">9999-12-31</Certificate_ExpiredDate>
          <Insurance_CheckDate type="string">2016-06-05</Insurance_CheckDate>
        </HealthInsurance_Information_child>
      </HealthInsurance_Information>
    </Patient_Information>
  </patientinfores>
</xmlio2>
スマホアプリは受け取ったXMLデータを画面にレンダリングします。
なぜこのようなシステムを開発するのか
私たちのゼミではなぜスマホを使ったこうしたシステムを開発するのか説明しておきましょう。私たちのゼミでは、3年前からスマホを使って在宅医療を支援するシステムの開発を行ってきました。昨年はPACSサーバを構築して、訪問診察など外出先からスマホを使って画像を送ったり検索・閲覧したりするシステムを開発しました。 画像ができたので、じゃあ、今度は電子カルテをスマホから利用できるようにしたいと思い、今年のテーマに選びました。しかし、診療所向きで私たちが入手できる電子カルテがありませんでした。そこで、日本医師会が無料で提供しているORCAに注目したのです。ORCAは医事会計システム(レセプトシステム:レセコン)で、電子カルテではありません。したがって、医師が書く診療録は入っていません。患者情報と診療行為のみです。しかも、診療報酬に必要なデータしか入っていないので、例えば検査結果などは入っていません。ですから在宅診療に利用するには機能はかなり限定的です。しかし、手法自体はスマホが連携する相手がORCAであろうが電子カルテであろうが変わりません。つまり、今回の研究は実用性を目指すというよりも方法論を示すための研究です。この方法でうまくスマホ連携ができれば、あとはこの考え方で様々なシステムを連携を図ればよいのです。ですから、今回の研究の目的は「スマホを使って在宅医療を支援する」ですが、目標は「スマホとORCAの情報連携を確立する」ということになります。その際に利用するのがWebAPIというわけです。

0 件のコメント:

コメントを投稿