夏休みの宿題

夏休み前の最後のゼミで、サーバからXML形式の患者一覧データと患者受診履歴データを受け取って、画面に表示するプログラムを作りました。夏休みの宿題として、その応用プログラムを作成します。考え方は同じです。違うのはサーバから帰ってくるXMLデータだけです。このXMLデータはORCAのAPIが返すのと同じ形式のXMLデータです。
まず、ORCAが返す情報にはどのようなものがあるかについては下記のサイトを確認してください。
日医標準レセプトソフトAPI仕様
ご覧のように、ORCAは様々な情報を返すことができます。今回は、その中でも、患者番号一覧の取得患者基本情報の取得についてプログラムを作成します。
処理の流れは以下の通りです。
  1. アプリ起動時に患者番号一覧の取得を行う
  2. 取得した患者番号一覧を画面に一覧表示する
  3. 患者一覧画面から患者をタップすると、その患者の基本情報の取得を行う
  4. 取得した患者基本情報を画面に表示する
流れ自体はこれまで作成してきたプログラムと同じです。違いは、サーバへのリクエストのURLと、サーバからのレスポンスです。レスポンスはXMLのタグが違うだけでなく、項目も異なります。どのような項目が返ってくるかについては日医標準レセプトソフトAPI仕様に詳細な説明があるので、それを参照してください。

患者番号一覧(patientlst1v2.xml)

つぎのURLで患者番号一覧を取得できます。
http://172.16.108.250/~semi2015/ORCA/patientlst1v2.xml
<?xml version="1.0" encoding="UTF-8"?>
<xmlio2>
  <patientlst1res type="record">
    <Information_Date type="string">2016-07-26</Information_Date>
    <Information_Time type="string">11:24:49</Information_Time>
    <Api_Result type="string">00</Api_Result>
    <Api_Result_Message type="string">処理終了</Api_Result_Message>
    <Reskey type="string">Patient Info</Reskey>
    <Target_Patient_Count type="string">0007</Target_Patient_Count>
    <Patient_Information type="array">
      <Patient_Information_child type="record">
        <Patient_ID type="string">00002</Patient_ID>
        <WholeName type="string">倉敷 梅子</WholeName>
        <WholeName_inKana type="string">クラシキ ウメコ</WholeName_inKana>
        <BirthDate type="string">1972-07-11</BirthDate>
        <Sex type="string">2</Sex>
        <CreateDate type="string">2016-06-05</CreateDate>
        <UpdateDate type="string">2016-06-05</UpdateDate>
        <TestPatient_Flag type="string">0</TestPatient_Flag>
      </Patient_Information_child>
      <Patient_Information_child 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>
        <CreateDate type="string">2016-06-05</CreateDate>
        <UpdateDate type="string">2016-06-12</UpdateDate>
        <TestPatient_Flag type="string">0</TestPatient_Flag>
      </Patient_Information_child>
      <Patient_Information_child type="record">
        <Patient_ID type="string">00003</Patient_ID>
        <WholeName type="string">川崎 次郎</WholeName>
        <WholeName_inKana type="string">カワサキ ジロウ</WholeName_inKana>
        <BirthDate type="string">1995-12-01</BirthDate>
        <Sex type="string">1</Sex>
        <CreateDate type="string">2016-06-16</CreateDate>
        <UpdateDate type="string">2016-06-16</UpdateDate>
        <TestPatient_Flag type="string">0</TestPatient_Flag>
      </Patient_Information_child>
      <Patient_Information_child type="record">
        <Patient_ID type="string">00007</Patient_ID>
        <WholeName type="string">犬飼 佑太</WholeName>
        <WholeName_inKana type="string">イヌカイ ユウタ</WholeName_inKana>
        <BirthDate type="string">1994-06-25</BirthDate>
        <Sex type="string">1</Sex>
        <CreateDate type="string">2016-06-22</CreateDate>
        <UpdateDate type="string">2016-06-22</UpdateDate>
        <TestPatient_Flag type="string">0</TestPatient_Flag>
      </Patient_Information_child>
      <Patient_Information_child type="record">
        <Patient_ID type="string">00006</Patient_ID>
        <WholeName type="string">在本 璃奈</WholeName>
        <WholeName_inKana type="string">アリモト リナ</WholeName_inKana>
        <BirthDate type="string">2016-01-06</BirthDate>
        <Sex type="string">2</Sex>
        <CreateDate type="string">2016-06-22</CreateDate>
        <UpdateDate type="string">2016-06-22</UpdateDate>
        <TestPatient_Flag type="string">0</TestPatient_Flag>
      </Patient_Information_child>
      <Patient_Information_child type="record">
        <Patient_ID type="string">00005</Patient_ID>
        <WholeName type="string">臼井 彰生</WholeName>
        <WholeName_inKana type="string">ウスイ アキオ</WholeName_inKana>
        <BirthDate type="string">1994-09-22</BirthDate>
        <Sex type="string">1</Sex>
        <CreateDate type="string">2016-06-22</CreateDate>
        <UpdateDate type="string">2016-06-22</UpdateDate>
        <TestPatient_Flag type="string">0</TestPatient_Flag>
      </Patient_Information_child>
      <Patient_Information_child type="record">
        <Patient_ID type="string">00004</Patient_ID>
        <WholeName type="string">中村 綾斗</WholeName>
        <WholeName_inKana type="string">ナカムラ アヤト</WholeName_inKana>
        <BirthDate type="string">1994-10-24</BirthDate>
        <Sex type="string">1</Sex>
        <CreateDate type="string">2016-06-22</CreateDate>
        <UpdateDate type="string">2016-06-22</UpdateDate>
        <TestPatient_Flag type="string">0</TestPatient_Flag>
      </Patient_Information_child>
    </Patient_Information>
  </patientlst1res>
</xmlio2>
画面に表示する項目は
  • 患者ID
  • 漢字氏名
  • カナ氏名
  • 生年月日
の4項目です。

患者の基本情報(patientgetv2.php?patientId=[患者ID])

つぎのURLで患者IDが00001の患者の基本情報を取得できます。
http://172.16.108.250/~semi2015/ORCA/patientgetv2.php?patientId=00001
ここで、タップされた患者に応じてパラメタpatientIdにしている患者IDを変えます。
<?xml version="1.0" encoding="UTF-8"?>
<xmlio2>
  <patientinfores type="record">
    <Information_Date type="string">2016-07-26</Information_Date>
    <Information_Time type="string">11:34:58</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>
画面に表示する項目は、
  • 患者ID
  • 漢字氏名
  • カナ氏名
  • 生年月日
  • 性別
  • 世帯主
  • 続柄
  • 住所
  • 電話
  • 禁忌
  • アレルギー
  • 感染症
  • 初回受診日
  • 最終受診日
などです。

0 件のコメント:

コメントを投稿